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 ]]
Evelyn Velazquez
Mensajes: 1
Registrado: Mié Mar 27, 2013 1:44 pm

Re: Cancelacion CFDi

Mensajepor Evelyn Velazquez » Mié Mar 27, 2013 1:53 pm

hola
como estas_?
Cual es tu problema? haber dime y veo si te puedo ayudar?

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

Re: Cancelacion CFDi

Mensajepor iarturo » Mié Oct 23, 2013 1:25 pm

Hola a todos...
Estamos iniciando con CFDI y estamos atorados en la cancelación...

Estamos usando el servicio de WEBServices de IOFacturo, pero me comentan que para cancelar, el XML debe de llevar "el Sello".

Revisando el Anexo 20 vemos que si lleva el SelloEmisor, mi pregunta es, como se genera esto ??

En la factura el sello se genera partiendo de la cadena original, aqui como se hace la cadena o que datos se usan para generar el sello...

Gracias a todos !!

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: Cancelacion CFDi

Mensajepor Dado » Mié Oct 23, 2013 1:32 pm

Nop, "el sello" que requiere el XML de cancelacion NO es el sello del emisor, es uno mucho mas complejo

Lee TOOODOS los mensajes de este foro (si, necesitas poner de tu parte) tambien busca la palabra "sello cancelacion" aqui en el foro, hay incluso tutoriales en PDF de paso a paso como debes sellarlo, por cierto, tampoco involucra alguna "cadena original"

_____________
pd. borre tus mensajes duplicados, por favor no repitas el mensaje
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

poseidon24
Mensajes: 24
Registrado: Mar Abr 12, 2011 6:56 pm
Contactar:

Re: Cancelacion CFDi

Mensajepor poseidon24 » Mié Oct 23, 2013 1:54 pm

¿Hola arturo en que lenguaje estas programando? si es Java te puedo ayudar.

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

Re: Cancelacion CFDi

Mensajepor iarturo » Mié Oct 23, 2013 2:16 pm

Hola Poseidon, gracias por tu respuesta y atención...
Estoy usando PHP para enviar por el Tunel PAC y programando en VB.
Pero por más que leo documentación sigo sin entender la cancelación.

Entiendo que se debe de generar un XML de cancelación

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:27" RfcEmisor="XXX000000XXX" xmlns="http://cancelacfd.sat.gob.mx">
  <Folios>
    <UUID>XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX</UUID>
  </Folios>
</Cancelacion>


Pero el PAC me comento que debo de incluir el sello...

Un tema mas, los XML que mandes a timbrar y/o cancelar deben de estar ya firmados, ya que ustedes tienen los certificados de sus clientes.


Sin encambio haciendo la prueba con el XML que acabo de poner arriba, la respuesta del PAC en su modulo de pruebas es esta...

Código: Seleccionar todo


<?xml version="1.0" encoding="utf-8"?>
<AcuseCancelacion>
  <Acuse xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" RfcEmisor="XXX000000XXX" Fecha="2013-10-23T14:11:50.6406319" CodEstatus="302">
    <Signature Id="SelloSAT" 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/2001/04/xmldsig-more#hmac-sha512" />
        <Reference URI="">
          <Transforms>
            <Transform Algorithm="http://www.w3.org/TR/1999/REC-xpath-19991116">
              <XPath>not(ancestor-or-self::*[local-name()='Signature'])</XPath>
            </Transform>
          </Transforms>
          <DigestMethod Algorithm="http://www.w3.org/2001/04/xmlenc#sha512" />
          <DigestValue>9ghUvJ7rip3wOLh83pjVukc0zu2TVXRp4ywDpQ0N2OaxLxCsAdNCVDhba9fsquKzDvmGvddOgJBTX6A0ZGMTMA==</DigestValue>
        </Reference>
      </SignedInfo>
      <SignatureValue>WfmVVQufseDEsVoAcZ1NfDy9bpZdIEQxHjQTwKC0WgrZ4oLqsPx7D852sJcD+LOaC/j8D4nUDGEDF+VbEh5maA==</SignatureValue>
      <KeyInfo>
        <KeyName>00001088888800000093</KeyName>
        <KeyValue>
          <RSAKeyValue>
            <Modulus>yxMvUucuS+s3aeWTFZvJrrFWIdes7kIDJmO7DA5DP+ZTapofNt37fgeIHlTUdAVvd/fDKhfiwNSh+vbrNbD58X3UEdQor3ngb6zpjrDjgYsedckPLv6fro4DO0NXLCdALFqhN8ARyX77kYBnvIj1fOSVp401Vc3urLUtiEm16Kle3tOyWhfjgFzdK3oAIXF8oeei/GburWbJnpP+NeGaHVE5bkxLCBp5757nKVonXwzpfpEGuBp204NGkI2/jyA2EH8wyRN4yUvzjT7IJYrHng23klRDlJoRYwa98QQPdQSTpcrlNu8nLhpQdI/zMTLoNF2NiBCkQNuAMacKhnvlVw==</Modulus>
            <Exponent>AQAB</Exponent>
          </RSAKeyValue>
        </KeyValue>
      </KeyInfo>
    </Signature>
  </Acuse>
</AcuseCancelacion>


Revisando la documentación, esta todo OK, pero me queda la duda si realmente necesito generar tal sello para poder Cancelar...
Gracias !!

poseidon24
Mensajes: 24
Registrado: Mar Abr 12, 2011 6:56 pm
Contactar:

Re: Cancelacion CFDi

Mensajepor poseidon24 » Mié Oct 23, 2013 2:22 pm

Así es Arturo, faltaría sellar la petición de cancelación, es un proceso algo laborioso, cuento con cierto código en java y también lo logre obtener mediante C# de .NET.

En PHP desconozco, pero igual tengo entendido que se puede invocar rutinas de una librería java desde php.

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

Re: Cancelacion CFDi

Mensajepor iarturo » Mié Oct 23, 2013 2:32 pm

Ok Poseidon...

No tengo problemas para el Sello, pues lo hago para las facturas, pero lo que no encuentro es la teoria para la cancelación...
Es decir...

Para sellar una factura, se genera la cadena original y en base a la cadena original se genera el sello, hasta ahi no tengo problema...

Mi duda especifica es la cancelación...

La cancelación solo lleva 3 datos
Fecha, RFC, UUID

Esos como se arman o como se hace una "cadena original" o que tengo que hacer para sellar, esa es mi duda y no encuentro información al respecto...

Muchas gracias nuevamente por tu atención.

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: Cancelacion CFDi

Mensajepor Dado » Mié Oct 23, 2013 2:39 pm

NO se usa cadena original............

No has intentado BUSCAR aqui en el foro el tutorial paso a paso publicado EN PDF que te comento?

Los pasos para firmar el XML de cancelacion es :

1. Armar el XML basico
2. Canonizar el XML (si, asi como lo lees, "canonizarlo")
3. Firmar ese XML (sin usar cadena original, se firma TODO EL XML con su hash y todo eso)
4. Insertar la firma en el mismo XML

Hay algunas utilerias/librerias/lenguajes que hacen todo automatico en un solo paso, pero siempre es bueno saber que esta pasando internamente.
ADDENDAS? VALIDACION? CODIGO PARA PROGRAMAR TU PROPIA SOLUCION? TODO LO TENEMOS EN WWW.VALIDACFD.COM VISITANOS !!

poseidon24
Mensajes: 24
Registrado: Mar Abr 12, 2011 6:56 pm
Contactar:

Re: Cancelacion CFDi

Mensajepor poseidon24 » Mié Oct 23, 2013 2:47 pm

Ok, lo que sucede es que estas confundiendo 2 temas diferentes. Para la petición de cancelación sellada tienes que investigar acerca del tema "XML Signature", a diferencia de un simple "signature" de una cadena. Busca información acerca de ello.

Si buscas "XMLSignature PHP" en Google la segunda referencia creo que podría ayudarte. También veo un link donde te puede dar idea de como queda un XML Signature, de una página llamada "adictosaltrabajo". No coloco las ligas directamente aquí por que desconozco si van contra las reglas del foro.

Lo que tienes realizado donde colocas el RFC, fecha y Folios, es lo inicial, falta aplicarle a todo ello un XML Signature.

Avatar de Usuario
Dado
Mensajes: 15824
Registrado: Mar Jul 06, 2010 8:56 pm

Re: Cancelacion CFDi

Mensajepor Dado » Mié Oct 23, 2013 2:55 pm

gracias poseidon24 por tu colaboracion.

mientras no sean ligas comerciales (que ofrezcan servicios o productos de forma comercial) puedes publicarlas

mmmh, y de hecho el tutorial del que insisto es obtenido de una libreria comercial llamada Cryptosys......mira ..... mientras no sea demasiado abierto y descarado la intencion comercial puedes publicar ligas, no hay problema.
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 7 invitados