Página 7 de 9

Re: Cancelacion CFDi

Publicado: Mié Mar 27, 2013 12:53 pm
por Evelyn Velazquez
hola
como estas_?
Cual es tu problema? haber dime y veo si te puedo ayudar?

Re: Cancelacion CFDi

Publicado: Mié Oct 23, 2013 12:25 pm
por iarturo
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 !!

Re: Cancelacion CFDi

Publicado: Mié Oct 23, 2013 12:32 pm
por Dado
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

Re: Cancelacion CFDi

Publicado: Mié Oct 23, 2013 12:54 pm
por poseidon24
¿Hola arturo en que lenguaje estas programando? si es Java te puedo ayudar.

Re: Cancelacion CFDi

Publicado: Mié Oct 23, 2013 1:16 pm
por iarturo
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 !!

Re: Cancelacion CFDi

Publicado: Mié Oct 23, 2013 1:22 pm
por poseidon24
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.

Re: Cancelacion CFDi

Publicado: Mié Oct 23, 2013 1:32 pm
por iarturo
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.

Re: Cancelacion CFDi

Publicado: Mié Oct 23, 2013 1:39 pm
por Dado
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.

Re: Cancelacion CFDi

Publicado: Mié Oct 23, 2013 1:47 pm
por poseidon24
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.

Re: Cancelacion CFDi

Publicado: Mié Oct 23, 2013 1:55 pm
por Dado
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.