Timbrado XML
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.3.3 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.wsTimbradoTexto33 'referenciaWsLocal.wsTimbradoTexto()
        Dim respuesta As New WSTimbradoTexto.resultado33 'referenciaWsLocal.resultado()
        'Cargar en contenido el Archivo que contiene la cadena de texto
        contenido
        respuesta=webServices.TimbrarPorTexto33("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://pruebas.facturaselectronicascfdi.com/WsTimbrado33.asmx?WSDL');
//Creamos el objeto con el que se mandara a cancelar los folios
$soapclientc=new SoapClient('http://pruebas.facturaselectronicascfdi.com/wsCancelar33.asmx?WSDL');
$ResultText='';
$CanceText='';
if(isset($_POST['SellarTimbrar33']))
{
	//Cargamos nuestro archivo xml este tiene que tener los atributos de NoCetificado=""Certificado=""Sello=""
	$file1="Xml_Sin_Sello_33.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';	
	//SellarTimbrar33(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->SellarTimbrar33($params); if(empty($response->SellarTimbrar33Result->errores)) { $ResultText='<br>El timbrado fue correcto <br>UUID:'.$response->SellarTimbrar33Result->folioUUID; $file="XmlTimbrado.pdf"; $miarch=fopen($file,"w"); fwrite($miarch,$response->SellarTimbrar33Result->PDF); fclose($miarch); $file="XmlTimbrado.xml"; $miarch=fopen($file,"w"); fwrite($miarch,$response->SellarTimbrar33Result->XML); fclose($miarch); }else{ $ResultText='<br>El timbrado tuvo errores<br>Errores:'.$response->SellarTimbrar33Result>errores; } } catch(Exception$e){ $ResultText="Se genero el siguiente error: <br>".$response->Timbrar33Result->errores; } } if(isset($_POST['Tibrar33'])) { //Cargamos nuestro archivo xml este tiene que tener los atributos de NoCetificado=""Certificado =""Sello ="" $file1="Xml_Sin_Sello_33.xml"; $open=fopen($file1,"r"); $size=filesize($file1); $Xml=fread($open,$size); //SellarTimbrar33(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->Timbrar33($params); //var_dump($response); //if (empty($response->timbrarResult->errores)) if (empty($response->Timbrar33Result->errores)) { $ResultText="<br>El timbrado fue correcto<br>UUID:".$response->Timbrar33Result->folioUUID $file="XmlTimbrado.pdf"; $miarch=fopen($file,"w"); fwrite($miarch,$response->Timbrar33Result->PDF); fclose($miarch); $file="XmlTimbrado.xml"; $miarch=fopen($file,"w"); fwrite($miarch,$response->Timbrar33Result->XML); fclose($miarch); }else{ $ResultText="<br>El timbrado tuvo errores<br>Errores:".$response->Timbrar33Result->errores; } } catch(Exception $e){ $ResultText="Se genero el siguiente error:<br>".$response->Timbrar33Result->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->Cancelar33($params); if(empty($response->Cancelar33Result->errores)) { $CanceText="<br>Cancelacion fue correcto <br>"; }else{ $CanceText="<br>El cancelar tuvo errores<br>Errores:".$response->Cancelar33Result->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->Cancelar33($params); if(empty($response->Cancelar33Result->errores)) { $CanceText="<br>Cancelacion fue correcto<br>"; }else { $CanceText="<br>El cancelar tuvo errores <br>Errores:".$response->Cancelar33Result->errores; } } catch (Exception $e) { $CanceText="Se genero el siguiente error:<br>".$e->getMessage(); } } ?> <html> <head> <title>Cliente del Web Server para timbrado de CFDI. v3.3</title> </head> <body> <div>Cliente del Web Server para timbrado de CFDI.v3.3</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="SellarTimbrar33"value="SellarTimbrar33"> </td> <td> <p>-SellarTimbrar33(Correo,Pass,xml,Proceso,cer,key,clavekey);</p> <p>-Este metodo SellarTimbrar33 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="Tibrar33"value="Tibrar33"></td> <td> <p>-Timbrar33(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>Cancelar33(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>Cancelar33EncodeCSD(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

$900/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