Timbrado, Lenguajes, PHP,JAVA,implementacion de ERP

Timbra XML

Si tu desarrollo tiene la capacidad de construir un xml conforme a las especificaciones del SAT, accede a nuestro web service para timbrar tus CFDI's, una de las soluciones de integración más elegantes y económicas, ya sea para consumo de tu empresa o de tus clientes.

Requisitos para timbrar archivos xml

  • Tener un programador o área de sistemas que implemente la conexión (para el caso de desear conectarse por webservice)
  • ERP propio con posibilidad de actualizarlo y que genere sus propios archivos XML v.4.0 válidos de acuerdo al anexo 20.
  • Tener los certificados de sello digital CSD de los emisores para subirlos al sistema, en caso de desear subir su información y timbrarla directamente desde nuestra página.

Ejemplos de código para implementación de timbrado desde xml

Cliente en VB.NET
                            
                                Dim webServices As New WSTimbradoTexto.wsTimbradoTexto4 'referenciaWsLocal.wsTimbradoTexto()
                                Dim respuesta As New WSTimbradoTexto.resultado4 'referenciaWsLocal.resultado()
                                'Cargar en contenido el Archivo que contiene la cadena de texto
                                contenido
                                respuesta=webServices.TimbrarPorTexto4("demo.sifec@gmail.com","Acceso$01","511110", contenido)
                                'Manejo de ERRORES
                                If respuesta.errores<>""Then
                                    TextBox1.Text=(respuesta.errores.ToString)
                                Else
                                    TextBox1.Text=respuesta.folioUUID
                                    'para descargar el xml timbrado
                                    File.WriteAllBytes(RUTA+"\PruebaXMLTimbrado.xml",respuesta.XML)
                                    'bajando el pdf formato generico
                                    If respuesta.PDF IsNot Nothing Then
                                        File.WriteAllBytes(RUTA+"\PruebaXMLPDFTimbrado.pdf",respuesta.PDF)
                                    End If
                                    TextBox1.Text=("Creacion exitosa")
                                End If
                            
                        
Cliente en C# Cliente en Java
                            
                                public static void main(String[] args) {
                                    //declaramos nuestras variables
                                    String ruta="K:\\miruta\\";
                                    String correo="demo.sifec@gmail.com";
                                    String pass="Acceso$01";
                                    String rfc="AAA010101AAA";
                                    boolean pdf=true;
                                    String passCer="12345678a";
                                    try {
                                        //KEY RUTA
                                        //Cargar los archivos a las variables
                                        cerFile,keyFile,passCer     
                                        Resultado timbrarNomina=timbradoPorTextoNomina(correo,pass,rfc,cerFile,keyFile,passCer,contenidoArchivo,pdf,"Pruebas","3.2-1.2");
                                        if (timbrarNomina.getErrores().equals("")) {
                                            //si no existen errores
                                            System.out.println("\n\n\t RESULTAOD EXITOSO\n ");
                                            //RUTA DE SALIDA DE PDF
                                            FileOutputStream fos= new FileOutputStream(ruta+"SalidaTimbre.pdf");
                                            fos.write(timbrarNomina.getPDF());
                                            fos.close();
                                            //RUTA DE SALIDA DE XML TIMBRADO
                                            FileOutputStream fos2= new FileOutputStream(ruta+"SalidaTimbre.xml");
                                            fos2.write(timbrarNomina.getXML());
                                            fos2.close();
                                        }
                                        else{
                                            System.out.println("Se generaron los siguientes errores: "+timbrarNomina.getErrores() );
                                        }           
                                    } 
                                    catch (Exception e) {
                                        System.out.println(" ERRORES ****** : "+e);
                                    }  
                                }
                                private static org.tempuri.Resultado timbradoPorTextoNomina(String correo, String pass, String rfc, byte[] cerFile, byte[] keyFile,
String passCer, byte[] contenidoArchivo, boolean pdf, String ambiente,String version) { org.tempuri.WsTimbradoTexto service = new org.tempuri.WsTimbradoTexto(); org.tempuri.WsTimbradoTextoSoap port = service.getWsTimbradoTextoSoap12(); return port.timbradoPorTextoNomina(correo, pass, rfc, cerFile, keyFile, passCer, contenidoArchivo, pdf, ambiente, version); }
Cliente en PHP
                            
                                <?php 
                                    header('Content-Type: text/html; charset=UTF-8'); 	
                                    //Creamos el objeto con el que mandaremos a Timbrar 
                                    $soapclient=new SoapClient('http://pruebas40.facturaselectronicascfdi.com/WsTimbrado4.asmx?WSDL');
                                    //Creamos el objeto con el que se mandara a cancelar los folios
                                    $soapclientc=new SoapClient('http://pruebas40.facturaselectronicascfdi.com/wsCancelar4.asmx?WSDL');
                                    $ResultText='';
                                    $CanceText='';
                                    if(isset($_POST['SellarTimbrar4'])){
	                                    //Cargamos nuestro archivo xml este tiene que tener los atributos de NoCetificado=""Certificado=""Sello=""
	                                    $file1="Xml_Sin_Sello_40.xml";
	                                    $open=fopen($file1,"r");
	                                    $size=filesize($file1);
	                                    $Xml=fread($open,$size);
	                                    //Cargamos el Certificado que se utilizara en este xml
	                                    $file2="certificado.cer";
	                                    $open=fopen($file2,"r");
	                                    $size=filesize($file2);
	                                    $Cer=fread($open,$size);
	                                    //Cargamos el Key que se utilizara en este xml
	                                    $file3="csd.key";
	                                    $open=fopen($file3,"r");
                                        $size=filesize($file3);
	                                    $Key=fread($open,$size);
	                                    $Correo="demo.sifec@gmail.com";
	                                    $Pass='Acceso$01';
	                                    $Proceso="410110";
	                                    $ClaveKey='12345678a';	
	                                    //SellarTimbrar4(Correo,Pass,xml,Proceso,cer,key,clavekey);
	                                    //Correo:Este campo debe de incluir el correo con el que fue habilitada su cuenta
	                                    //Pass:Su contraseña 
	                                    //XML:Xml en Bytes
	                                    //Proceso:Este numero de proceso se le proporcionara dependiendo de su tipo de timbrado
	                                    //-210100 Solo Sellado Timbrado 
	                                    //-410110 Sellado Timbrado Mas PDF
	                                    //Cer:Certificado en Bytes
	                                    //Key:Key en Bytes
	                                    //Clave Key:Clave de su key 
	                                    $params=array('curCorreo'=>$Correo,'password'=>$Pass,'xml'=>$Xml,'Proceso'=>$Proceso,'CerFile'=> $Cer,
'KeyFile'=>$Key,'PassCsd'=>$ClaveKey); try{ $response=$soapclient->SellarTimbrar4($params); if(empty($response->SellarTimbrar4Result->errores)){ $ResultText='<br>El timbrado fue correcto <br>UUID:'.$response->SellarTimbrar4Result->folioUUID; $file="XmlTimbrado.pdf"; $miarch=fopen($file,"w"); fwrite($miarch,$response->SellarTimbrar4Result->PDF); fclose($miarch); $file="XmlTimbrado.xml"; $miarch=fopen($file,"w"); fwrite($miarch,$response->SellarTimbrar4Result->XML); fclose($miarch); } else{ $ResultText='<br>El timbrado tuvo errores<br>Errores:'.$response->SellarTimbrar4Result>errores; } } catch(Exception$e){ $ResultText="Se genero el siguiente error: <br>".$response->Timbrar4Result->errores; } } if(isset($_POST['Tibrar4'])){ //Cargamos nuestro archivo xml este tiene que tener los atributos de NoCetificado=""Certificado =""Sello ="" $file1="Xml_Sin_Sello_4.xml"; $open=fopen($file1,"r"); $size=filesize($file1); $Xml=fread($open,$size); //SellarTimbrar4(Correo,Pass,xml,Proceso,cer,key,clavekey); //Correo:Este campo debe de incluir el correo con el que fue habilitada su cuenta //Pass:Su contraseña //XML:Xml en Bytes //Proceso:Este numero de proceso se le proporcionara dependiendo de su tipo de timbrado //-210100 Solo Sellado Timbrado //-410110 Sellado Timbrado Mas PDF //Cer:Certificado en Bytes //Key:Key en Bytes //Clave Key:Clave de su key $Correo="demo.sifec@gmail.com"; $Pass='Acceso$01'; $Proceso="410110"; $ClaveKey='12345678a'; $params=array('curCorreo'=>$Correo,'password'=>$Pass,'xml'=>$Xml,'Proceso'=>$Proceso); //var_dump($params); try{ $response=$soapclient->Timbrar4($params); //var_dump($response); //if (empty($response->timbrarResult->errores)) if (empty($response->Timbrar4Result->errores)){ $ResultText="<br>El timbrado fue correcto<br>UUID:".$response->Timbrar4Result->folioUUID $file="XmlTimbrado.pdf"; $miarch=fopen($file,"w"); fwrite($miarch,$response->Timbrar4Result->PDF); fclose($miarch); $file="XmlTimbrado.xml"; $miarch=fopen($file,"w"); fwrite($miarch,$response->Timbrar4Result->XML); fclose($miarch); } else{ $ResultText="<br>El timbrado tuvo errores<br>Errores:".$response->Timbrar4Result->errores; } } catch(Exception $e){ $ResultText="Se genero el siguiente error:<br>".$response->Timbrar4Result->errores; } } if(isset($_POST['Cancelar'])){ $Correo="demo.sifec@gmail.com"; $Pass='Acceso$01'; $params=array('curCorreo'=>$Correo,'password'=>$Pass,'RfcEmisor'=>'LAN7008173R5','UUID'=>'691a62ce-f987-421a-a8c4-be851d59b17a'); try{ $response=$soapclientc->Cancelar4($params); if(empty($response->Cancelar4Result->errores)){ $CanceText="<br>Cancelacion fue correcto <br>"; } else{ $CanceText="<br>El cancelar tuvo errores<br>Errores:".$response->Cancelar4Result->errores; } } catch (Exception $e){ $CanceText="Se genero el siguiente error:<br>".$e->getMessage(); } } if(isset($_POST['CancelarEncode'])){ $Correo="demo.sifec@gmail.com"; $Pass='Acceso$01'; //Cargamos el Certificado que se utilizara para cancelar este xml $file2="certificado.cer"; $open=fopen($file2,"r"); $size=filesize($file2); $Cer=fread($open,$size); //Cargamos el Key con el cual procesaremos el Encode $convert=exec('openssl pkcs8-inform DER-in csd.key-passin pass:12345678a-out Encode.pem',$salida,$valor); if($valor==127){ $CanceText="no Funcionó"; } else{ $CanceText="Se ejecutó correctamente"; } $file="Encode.pem"; $open=fopen($file,"r"); $size=filesize($file); $pem=fread($open,$size); $pem2=str_replace("-----BEGIN PRIVATE KEY-----","",$pem); $Encode=str_replace("-----END PRIVATE KEY-----","",$pem2); $params=array('curCorreo'=>$Correo,'password'=>$Pass,'RfcEmisor'=>'LAN7008173R5','UUID'=>'7dbd76b1-ac3b-4251-a919-c03a509ff5ec',
'CerFile'=>$Cer,'KeyEncode64'=>$Encode); try{ $response=$soapclientc->Cancelar4($params); if(empty($response->Cancelar4Result->errores)){ $CanceText="<br>Cancelacion fue correcto<br>"; } else{ $CanceText="<br>El cancelar tuvo errores <br>Errores:".$response->Cancelar4Result->errores; } } catch (Exception $e){ $CanceText="Se genero el siguiente error:<br>".$e->getMessage(); } } ?> <html> <head> <title>Cliente del Web Server para timbrado de CFDI. v4.0</title> </head> <body> <div>Cliente del Web Server para timbrado de CFDI.v4.0</div> <br> <form method="post"action="soapcfdi2.php"> <br>Metodos Para el Timbrado <br> <table border="1px"> <tr> <td align="center"> <input type="submit"name="SellarTimbrar4"value="SellarTimbrar4"> </td> <td> <p>-SellarTimbrar4(Correo,Pass,xml,Proceso,cer,key,clavekey);</p> <p>-Este metodo SellarTimbrar4 requiere un.cer y .key con el que se mandara timbrar el xml estos tiene que coincidir con el Emisor</p> <p>-Recolecta el cer y key en caso de timbrar correctamente deposita el xml y pdf en caso de existir</p> </td> </tr> <tr> <td align="center"><input type="submit"name="Tibrar4"value="Tibrar4"></td> <td> <p>-Timbrar4(Corre,Pass,xml,Proceso);</p> <p>-Este metodo requiere que el Emisor del Xml carge su cer y key en la plataforma web para poder realizar
el sellado del xml enviado</p> <p>-El xml a timbrar tiene que tener los siguientes atributos vacios NoCetificado=""Certificado=""Sello=""
ya que el ws se encargara de sellar con el cer y key cargados,Este metodo regresar el xml timbrado</p> </td> </tr> <tr> <td colspan="2"> <p>Resultado de Timbrado</p> </td> </tr> <tr> <td colspan="2"> <p><?php echo $ResultText;?></p> <br> </td> </tr> </table> </br> <br> Metodo de Cancelacion <table border="1px"> <tr> <td align="center"><input type="submit"name="Cancelar"value="Cancelar"></td> <td> <br> <p>Cancelar4(Correo, Pass, RFC, UUID); cer y key configurados en porta web</p> <br> </td> </tr> <tr> <td align="center"><input type="submit"name="CancelarEncode"value="CancelarEncode"></td> <td> <br> <p>Cancelar4EncodeCSD(Correo,Pass,RFC,UUID,Cer,Pem);cer y pem se generan por su sistema</p> <br> </td> </tr> <tr> <td colspan="2"> <p><?php echo$CanceText;?></p> <br> </td> </tr> </table> </form> </body> </html>

Nuestros precios

Nuestros paquetes de precios estan diseñados deacuerdo a lo que necesites

$890/1000 folios

Timbrado de XML sin PDF

  • *Precios no incluyen IVA
  • CFDI
  • Nómina
Ver más precios

$$1130/1000 folios

Timbrado de XML con PDF

  • *Precios no incluyen IVA
  • CFDI
  • Nómina
Ver más precios

$1600/ pago unico

Conexión Web Service

  • * Precios no incluyen IVA
  • En la compra de 15,000 Folios o más conexión gartis
  • Timbrado de CFDI
  • Timbrado para CFDI de nómina
Ver más precios

COMPRAR

Puedes realizar compra directa solo da ¡CLICK!

Facturación inowebs

Multiempresa, Multiemisor

Desde una sola cuenta de usuario podrás usar distintos emisores ya sean personas físcas o morales

Contamos con dos esquemas para administrar los folios

  • Independiente: Podrás transferir folios de tu cuenta a la de otros usuarios y ver el consumo que realizan
  • Centralizada: indistintamente del emisor, todos los folios los consumirán