Cancelacion CFDi

Foro dedicado para discutir la parte tecnica de como es el timbrado
[[ FORO CERRADO DEBIDO A QUE YA LA INFORMACION YA NO ES VIGENTE ]]
jasistemas
Mensajes: 155
Registrado: Mié Ene 11, 2012 4:08 pm
Contactar:

Re: Cancelacion CFDi

Mensajepor jasistemas » Mié Oct 23, 2013 4:46 pm

Mientras que para el CFD, el SAT únicamente solicita que sea la CADENA ORIGINAL la que se encripte y de allí obtener el sello, al parecer para el caso de las cancelaciones se uso un método mas común.. el de firmar todo el XML (XML signature).

En Brasil, por ejemplo, las facturas electrónicas se firman todo el XML, no solo una "cadena original"... en este post puse código fuente VB al final donde se ven las instrucciones con que obtuve el XML Signature, una googleada tampoco caera mal.

viewtopic.php?f=17&t=1846&p=17611#p17611

iarturo
Mensajes: 9
Registrado: Mié Oct 23, 2013 1:20 pm

Re: Cancelacion CFDi

Mensajepor iarturo » Mié Oct 23, 2013 10:37 pm

Hola !!
Gracias a todos por su apoyo y dejo mi solución por si a alguien le sirve para enteder el todo referente a la cancelación en CFDI...

De entrada se debe de canonizar el "mini XML"

Código: Seleccionar todo

<?xml version="1.0" encoding="utf-8"?>
<Cancelacion xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" Fecha="2013-10-22T20:24:39" RfcEmisor="XXX000000XXX" xmlns="http://cancelacfd.sat.gob.mx">
<Folios>
<UUID>XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX</UUID>
</Folios>
</Cancelacion>


Esto lo logramos con el siguiente PHP

Código: Seleccionar todo

<?php
$XML = $_POST["XML"];

$dom = new DOMDocument(); 

$yourXML = $XML;
$dom->loadXML($yourXML);
$canonicalized = $dom->C14N();
$digest = base64_encode(pack("H*", sha1($canonicalized))); 

echo $digest
?>


Una vez canonizado, se agrega la respuesta al siguiente pedazo del XML.

Código: Seleccionar todo

<SignedInfo xmlns="http://www.w3.org/2000/09/xmldsig#" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"></CanonicalizationMethod>
<SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"></SignatureMethod>
<Reference URI="">
<Transforms>
<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></Transform>
</Transforms>
<DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"></DigestMethod>
<DigestValue>Agregar Respuesta Canonizada Aquí</DigestValue>
</Reference>
</SignedInfo>


Este XML se debe de sellar de la manera en como se sella una factura comun y corriente, para generar el ultimo XML y el final el cual será nuestra solicitud de cancelación.

Código: Seleccionar todo

<?xml version="1.0" encoding="UTF-8"?>
<Cancelacion xmlns="http://cancelacfd.sat.gob.mx" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Fecha="2013-10-22T20:24:39" RfcEmisor="XXX000000XXX">
  <Folios>
    <UUID>XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX</UUID>
  </Folios>
  <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
    <SignedInfo>
      <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />
      <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" />
      <Reference URI="">
        <Transforms>
          <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />
        </Transforms>
        <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" />
        <DigestValue>Agregar Respuesta Canonizada Aquí</DigestValue>
      </Reference>
    </SignedInfo>
    <SignatureValue>Agregar aquí el sello que obtuvimos del XML Anterior.</SignatureValue>
    <KeyInfo>
      <X509Data>
        <X509Certificate>Agregamos aquí nuestro certificado en Base64</X509Certificate>
      </X509Data>
    </KeyInfo>
  </Signature>
</Cancelacion>


Espero que esta información les ayude para los que estan como ya estaba jejejeje

Victorh2000
Mensajes: 2
Registrado: Mar Abr 26, 2011 7:42 pm

Re: Cancelacion CFDi

Mensajepor Victorh2000 » Mar Nov 26, 2013 8:57 pm

Hola a todos, tengo problemas para generar el archivo pfx, con openssl, el detalle ocurre solamente con los NUEVOS certificados del sello digita, ya ven que cambiaron de version el solcedi y ahora me marca unos errores al querer hacer el PEM del Certificado con la siguiente instruccion.

openssl x509 -inform DER -in certificado.cer -out certificado.pem

El detalle es que con certificados anteriores no tengo problema, solo con los certificados recientes en este caso tengo un certificado de este mes.

Código: Seleccionar todo

Error opening Certificate 00001000000301337622.cer
3528:error:02001002:system library:fopen:No such file or directory:.\crypto\bio\
bss_file.c:398:fopen('00001000000301337622.cer','rb')
3528:error:20074002:BIO routines:FILE_CTRL:system lib:.\crypto\bio\bss_file.c:40
0:
unable to load certificate

este es el mensaje de error

iarturo
Mensajes: 9
Registrado: Mié Oct 23, 2013 1:20 pm

Re: Cancelacion CFDi

Mensajepor iarturo » Mar Nov 26, 2013 11:16 pm

Hola @Victorh2000
Este es el proceso que yo uso con OpenSSL para Windows...
Espero te sirva esta información, yo no he tenido problemas con los certificados recientes...

Código: Seleccionar todo


C:\CertSAT>C:\OpenSSL-Win32\bin\openssl x509 -in 00001000000301337622.cer -inform DER -out 00001000000301337622.pem -outform PEM

C:\CertSAT>C:\OpenSSL-Win32\bin\openssl pkcs8 -in 00001000000301337622.key -inform DER -out 00001000000301337622_key.pem
Enter Password: EL DEL SAT

C:\CertSAT>C:\OpenSSL-Win32\bin\openssl pkcs12 -export -out 00001000000301337622.pfx -in 00001000000301337622.pem -inkey 00001000000301337622_key.pem
Loading 'screen' into random state - done
Enter Export Password:
Verifying - Enter Export Password:

C:\CertSAT>

corsoduke
Mensajes: 14
Registrado: Vie Feb 04, 2011 3:56 pm
Ubicación: Mazatlán
Contactar:

Re: Cancelacion CFDi

Mensajepor corsoduke » Mié Dic 11, 2013 3:39 pm

Arturo que tal, he realizado los pasos que corresponden a tu cancelación con ATEB, que es practicamente el mismo que con el SAT, aun no logro pasar del error 302 que me dice que mi sello esta mal formado, espero me puedas echar la mano, gracias de antemano

iarturo
Mensajes: 9
Registrado: Mié Oct 23, 2013 1:20 pm

Re: Cancelacion CFDi

Mensajepor iarturo » Mié Dic 11, 2013 3:59 pm

Hola @corsoduke
Podrias compartir tu XML de como quedo al final, listo para enviarse a cancelar ??
Ya formado completo...

corsoduke
Mensajes: 14
Registrado: Vie Feb 04, 2011 3:56 pm
Ubicación: Mazatlán
Contactar:

Re: Cancelacion CFDi

Mensajepor corsoduke » Mié Dic 11, 2013 6:28 pm

si mira:

Código: Seleccionar todo

<?xml version="1.0"?>
<Cancelacion xmlns="http://cancelacfd.sat.gob.mx" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" RfcEmisor="VIFA8505073V4" Fecha="2013-12-11T16:28:56">
  <Folios>
    <UUID>2F028EC1-04EE-4FEA-B9F3-6D8E05B0F9EF</UUID>
  </Folios>
  <Signature xmlns="http://www.w3.org/2000/09/xmldsig#">
    <SignedInfo>
      <CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
      <SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/>
      <Reference URI="">
        <Transforms>
          <Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/>
        </Transforms>
        <DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
        <DigestValue>RtWsR+anHNL8v04UTil6PXKK3ks=</DigestValue>
      </Reference>
    </SignedInfo>
    <SignatureValue>OgFvlTymbQFrYL0TF7l0m/3cS4p3mSYXsyZ6r0CdWDRjZvXY084aP0fKtyI4GiF4msVKwKUt1Miba0g/RzGlkBqySZ3rMLwvCO/pm0FVWTFlYwSgwezVZekbFEsDkdfeYCYNk0abYvB0SJ1sikPKWY3dFYY/hupycsstSsshBpQ=</SignatureValue>
    <KeyInfo>
      <X509Data>
        <X509IssuerSerial>
          <X509IssuerName>OID.1.2.840.113549.1.9.2=Responsable: Cecilia Guillermina Garc&#xED;a Guerra, L=Cuauht&#xE9;moc, S=Distrito Federal, C=MX, PostalCode=06300, STREET=Av. Hidalgo 77, Col. Guerrero, E=asisnet@sat.gob.mx, O=Servicio de Administraci&#xF3;n Tributaria, CN=A.C. del Servicio de Administraci&#xF3;n Tributaria</X509IssuerName>
          <X509SerialNumber>275106190557734483187066766774039095065441482296</X509SerialNumber>
        </X509IssuerSerial>
        <X509Certificate>MIIEcDCCA1igAwIBAgIUMDAwMDEwMDAwMDAyMDE4MTU0NjgwDQYJKoZIhvcNAQEFBQAwggGVMTgwNgYDVQQDDC9BLkMuIGRlbCBTZXJ2aWNpbyBkZSBBZG1pbmlzdHJhY2nDs24gVHJpYnV0YXJpYTEvMC0GA1UECgwmU2VydmljaW8gZGUgQWRtaW5pc3RyYWNpw7NuIFRyaWJ1dGFyaWExODA2BgNVBAsML0FkbWluaXN0cmFjacOzbiBkZSBTZWd1cmlkYWQgZGUgbGEgSW5mb3JtYWNpw7NuMSEwHwYJKoZIhvcNAQkBFhJhc2lzbmV0QHNhdC5nb2IubXgxJjAkBgNVBAkMHUF2LiBIaWRhbGdvIDc3LCBDb2wuIEd1ZXJyZXJvMQ4wDAYDVQQRDAUwNjMwMDELMAkGA1UEBhMCTVgxGTAXBgNVBAgMEERpc3RyaXRvIEZlZGVyYWwxFDASBgNVBAcMC0N1YXVodMOpbW9jMRUwEwYDVQQtEwxTQVQ5NzA3MDFOTjMxPjA8BgkqhkiG9w0BCQIML1Jlc3BvbnNhYmxlOiBDZWNpbGlhIEd1aWxsZXJtaW5hIEdhcmPDrWEgR3VlcnJhMB4XDTEyMDgyMzIyMTczMFoXDTE2MDgyMzIyMTczMFowgbExIjAgBgNVBAMTGUFMQkVSVE8gVklEQUxFUyBGRVJOQU5ERVoxIjAgBgNVBCkTGUFMQkVSVE8gVklEQUxFUyBGRVJOQU5ERVoxIjAgBgNVBAoTGUFMQkVSVE8gVklEQUxFUyBGRVJOQU5ERVoxFjAUBgNVBC0TDVZJRkE4NTA1MDczVjQxGzAZBgNVBAUTElZJRkE4NTA1MDdIQlNEUkwwNjEOMAwGA1UECxMFdW5pY2EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMJkfEWqSwHyfKpdvhqS07UPgQ6BfIP+799IkwgsoB++QHGJmwFWpKIVrgsWRLhdEv7F9Iouqa7l+1dNzJ2XxnDlsHhqeSNjSwMIRqPwacoJPidnaZzMPxXdfAmStNdrNj9c2SzROilPaw4HuqXipxZnX2N1rhRes8YnoRycXjLPAgMBAAGjHTAbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMA0GCSqGSIb3DQEBBQUAA4IBAQBkDl33m1jjHGoeXIGG5+GlDaVNThogFlZDFezpzBXiQBPWVr94lbPR/xcoJ2Vwy+eCxhL4WyGIoI4fAMWa6sUwREhkxdcXs5DMBpyIF1WG+ovv5+jUT16spSrTt+KcHRqTNzSkzfB0qQ3IdNyFqQIMatZ4cj/2PagCHdj0AhQIgxNXFsY2PmHwMKYB7afHyrkhdfh+r6+ixgKvVajJiNA4OhsenL51NfvQ7eCBCzt1BeKur7B47wWM516i/izIqMjNVloaRLYtKmlLdabun7RSAn2CmcQVMd9Kg7ahpHzRtNM2ERuQRG/nm9GgJZp7D6gNZ5H3uPoMA0exCkT2nl4l</X509Certificate>
      </X509Data>
    </KeyInfo>
  </Signature>
</Cancelacion>

corsoduke
Mensajes: 14
Registrado: Vie Feb 04, 2011 3:56 pm
Ubicación: Mazatlán
Contactar:

Re: Cancelacion CFDi

Mensajepor corsoduke » Mié Dic 11, 2013 6:30 pm

Este es mi correo electronico viferalberto@gmail.com, de verdad ya agote todo recurso...

cris0334
Mensajes: 5
Registrado: Mar Mar 22, 2011 1:19 pm

Re: Cancelacion CFDi

Mensajepor cris0334 » Vie Dic 20, 2013 7:15 pm

No se si pueda preguntar esto aquí o tenga que hacer un nuevo tema.

Se pueden cancelar facturas de años pasados?

Avatar de Usuario
DADO
Mensajes: 13745
Registrado: Mar Jul 06, 2010 8:56 pm

Re: Cancelacion CFDi

Mensajepor DADO » Vie Dic 20, 2013 7:22 pm

Si es posible, el SAT no ha definido un plazo limite para la cancelacion
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!


Volver a “Envio para Timbrado”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado