sello in v3.2 becomes Sello in v3.3.
Be careful to change the attribute argument in any calls to GetXMLAttribute.
FirmaSAT ATTRIBUTE -d -a sello -e Comprobante -i cfdv33-signed-tfd.xml Attribute=[sello] Element=[Comprobante] Error code -21: Match not found/No se pudo encontrar datos coincidente
FirmaSAT ATTRIBUTE -d -a Sello -e Comprobante -i cfdv33-signed-tfd.xml Nm+AyKSlay8Lg5Z++uSHQNLC6FUGB9KInjk9cm0I+n4Jwxwp2SwdEaRP6hTH+f2veoqm6Z ...aFplBE3LQrPda+DjM2296Mje0mvoX+KtQpHAUOZoCg==
TimbreFiscalDigital element is required to be version 1.1 for CFD v3.3. The data for the QR image is different, too.
sha256WithRSAEncryption also known as RSA-SHA256).
In FirmaSAT,
the hash algorithm used to form digests and signatures is chosen automatically. So SHA-256 is used automatically for v3.3 signatures, and SHA-1 is used for v3.2.
Do not use the options to force a particular hash algorithm.
NoCertificado node is now included in the pipe string (cadena original) and must be completed before computing the digest or signing the document.
This must match the actual certificate used for signing.
In v3.2 you could use 00000000000000000000 as a placeholder: this no longer applies with v3.3.
NoCertificado and Certificado)
before doing further work.
XMLOK) functions do not attempt to lookup exact matches in the ridiculously huge catCFDI.xsd catalog.
The XMLOK functions will check that the XML is well-formed, has a valid XML structure, and that the data types and patterns are approximately valid.
This may give false negatives compared to a strict XSD parser.
It will check that, say, a c_ClaveProdServ type consists of exactly 8 digits (i.e. the regex pattern [0-9]{8}) and will give an error if the value is not of that form.
However, it does not check that, say, 01010101 is in the catalog list and 01010111 is not. There are about 53,000 items in that particular list!
For more information or to comment on this page please send us a message.
This page last updated 10 September 2025