Demonstrates how to compose the pipe string (cadena original) for the file cfdv33-base.xml. This example has every possible node completed, both required and optional. The values are random, but the XML is valid. See the SAT specification document cfdv33.pdf* pp 61-63 for details of the Secuencia de Formación.
* From ANEXO 20 de la Segunda Resolución de modificaciones a la Resolución Miscelánea Fiscal para 2017, publicada el 18 de julio de 2017, pdf document (2.38 MB) dated 2017-08-02.
| Secuencia de Formación | XML | Cadena Original |
|---|---|---|
| 1. Información del nodo Comprobante | <cfdi:Comprobante xmlns:cfdi="http://www.sat.gob.mx/cfd/3" | || |
| a. Version | Version="3.3" | 3.3| |
| b. Serie | Serie="A" | A| |
| c. Folio | Folio="123ABC" | 123ABC| |
| d. Fecha | Fecha="2017-05-01T01:23:59" | 2017-05-01T01:23:59| |
| e. FormaPago | FormaPago="02" | 02| |
| f. NoCertificado | NoCertificado="40001000000300000337" | 40001000000300000337| |
| g. CondicionesDePago | CondicionesDePago="CONDICIONES" | CONDICIONES| |
| h. Subtotal | SubTotal="1000" | 1000| |
| i. Descuento | Descuento="0.00" | 0.00| |
| j. Moneda | Moneda="MXN" | MXN| |
| k. TipoCambio | TipoCambio="1.0" | 1.0| |
| l. Total | Total="1500" | 1500| |
| m. TipoDeComprobante | TipoDeComprobante="I" | I| |
| n. MetodoPago | MetodoPago="PUE" | PUE| |
| o. LugarExpedicion | LugarExpedicion="45079" | 45079| |
| p. Confirmacion | Confirmacion="Az123" | Az123| |
| > | ||
| 2. Información del nodo CFDIRelacionados | <cfdi:CfdiRelacionados | |
| a. TipoRelacion | TipoRelacion="02" | 02| |
| b. Información de cada nodo CFDIRelacionado | > <cfdi:CfdiRelacionado | |
| nota: esta secuencia debe ser repetida por cada nodo InformacionAduanera [sic] | ||
| a. UUID | UUID="ED1752FE-E865-4FF2-BFE1-0F552E770DC9" | ED1752FE-E865-4FF2-BFE1-0F552E770DC9| |
| /> </cfdi:CfdiRelacionados> | ||
| 3. Información del nodo Emisor | <cfdi:Emisor | |
| a. Rfc | Rfc=" AAA010101AAA" | AAA010101AAA| |
| b. Nombre | Nombre="Esta es una demostración" | Esta es una demostración| |
| c. RegimenFiscal | RegimenFiscal="622" | 622| |
| /> | ||
| 4. Información del nodo Receptor | <cfdi:Receptor | |
| a. Rfc | Rfc="BASJ600902KL9" | BASJ600902KL9| |
| b. Nombre | Nombre="Juanito Bananas De la Sierra" | Juanito Bananas De la Sierra| |
| c. ResidenciaFiscal | ResidenciaFiscal="MEX" | MEX| |
| d. NumRegIdTrib | NumRegIdTrib="987654321" | 987654321| |
| e. UsoCFDI | UsoCFDI="G03" | G03| |
| /> | ||
| 5. Información de cada nodo Concepto | <cfdi:Conceptos><cfdi:Concepto | |
| nota: esta secuencia debe ser repetida por cada nodo Concepto relacionadoz | ||
| a. ClaveProdServ | ClaveProdServ="01010101" | 01010101| |
| b. NoIdentificacion | NoIdentificacion="00001" | 00001| |
| c. Cantidad | Cantidad="1.5" | 1.5| |
| d. ClaveUnidad | ClaveUnidad="C81" | C81| |
| e. Unidad | Unidad="TONELADA" | TONELADA| |
| f. Descripcion | Descripcion="ACERO" | ACERO| |
| g. ValorUnitario | ValorUnitario="1500000" | 1500000| |
| h. Importe | Importe="2250000" | 2250000| |
| i. Descuento | ||
| j. Impuestos Traslado | > <cfdi:Impuestos> <cfdi:Traslados><cfdi:Traslado | |
| nota: esta secuencia debe ser repetida por cada nodo Impuesto | ||
| a. Base | Base="2250000" | 2250000| |
| b. Impuesto | Impuesto="002" | 002| |
| c. TipoFactor | TipoFactor="Tasa" | Tasa| |
| d. TasaOCuota | TasaOCuota="1.600000" | 1.600000| |
| e. Importe | Importe="360000" | 360000| |
| /> </cfdi:Traslados> | ||
| k. Impuesto Retencion | <cfdi:Retenciones> <cfdi:Retencion | |
| nota: esta secuencia debe ser repetida por cada nodo Impuesto | ||
| a. Base | Base="2250000" | 2250000| |
| b. Impuesto | Impuesto="001" | 001| |
| c. TipoFactor | TipoFactor="Tasa" | Tasa| |
| d. TasaOCuota | TasaOCuota="0.300000" | 0.300000| |
| e. Importe | Importe="247500" | 247500| |
| /> </cfdi:Retenciones> </cfdi:Impuestos> | ||
| l. InformacionAduanera | ||
| nota: esta secuencia debe ser repetida por cada nodo InformacionAduanera | ||
| a. NumeroPedimento | ||
| j. Información del nodo CuentaPredial | <cfdi:CuentaPredial | |
| a. Numero | Numero="51888" | 51888| |
| [Concepto repeats] | /> </cfdi:Concepto> <cfdi:Concepto | |
| a. ClaveProdServ | ClaveProdServ="95141904" | 95141904| |
| b. NoIdentificacion | NoIdentificacion="00002" | 00002| |
| c. Cantidad | Cantidad="1.6" | 1.6| |
| d. ClaveUnidad | ClaveUnidad="WEE" | WEE| |
| e. Unidad | Unidad="TONELADA" | TONELADA| |
| f. Descripcion | Descripcion="ALUMINIO" | ALUMINIO| |
| g. ValorUnitario | ValorUnitario="1500" | 1500| |
| h. Importe | Importe="2400" | 2400| |
| i. Descuento | ||
| j. Impuestos Traslado | > <cfdi:Impuestos> <cfdi:Traslados><cfdi:Traslado | |
| nota: esta secuencia debe ser repetida por cada nodo Impuesto | ||
| a. Base | Base="2400" | 2400| |
| b. Impuesto | Impuesto="002" | 002| |
| c. TipoFactor | TipoFactor="Tasa" | Tasa| |
| d. TasaOCuota | TasaOCuota="1.600000" | 1.600000| |
| e. Importe | Importe="384" | 384| |
| /> </cfdi:Traslados> | ||
| k. Impuesto Retencion | <cfdi:Retenciones> <cfdi:Retencion | |
| nota: esta secuencia debe ser repetida por cada nodo Impuesto | ||
| a. Base | Base="2400" | 2400| |
| b. Impuesto | Impuesto="001" | 001| |
| c. TipoFactor | TipoFactor="Tasa" | Tasa| |
| d. TasaOCuota | TasaOCuota="0.300000" | 0.300000| |
| e. Importe | Importe="264" | 264| |
| /> </cfdi:Retenciones> </cfdi:Impuestos> | ||
| l. InformacionAduanera | <cfdi:InformacionAduanera | |
| nota: esta secuencia debe ser repetida por cada nodo InformacionAduanera | ||
| a. NumeroPedimento | NumeroPedimento="15 48 4567 6001234" | 15 48 4567 6001234| |
| [repeats] | /> </cfdi:Concepto> <cfdi:Concepto | |
| a. ClaveProdServ | ClaveProdServ="84101604" | 84101604| |
| b. NoIdentificacion | NoIdentificacion="00003" | 00003| |
| c. Cantidad | Cantidad="1.7" | 1.7| |
| d. ClaveUnidad | ClaveUnidad="G66" | G66| |
| e. Unidad | Unidad="TONELADA" | TONELADA| |
| f. Descripcion | Descripcion="ZAMAC" | ZAMAC| |
| g. ValorUnitario | ValorUnitario="10000" | 10000| |
| h. Importe | Importe="17000" | 17000| |
| i. Descuento | Descuento="0" | 0| |
| j. Impuestos Traslado | > <cfdi:Impuestos> <cfdi:Traslados><cfdi:Traslado | |
| nota: esta secuencia debe ser repetida por cada nodo Impuesto | ||
| a. Base | Base="17000" | 17000| |
| b. Impuesto | Impuesto="002" | 002| |
| c. TipoFactor | TipoFactor="Tasa" | Tasa| |
| d. TasaOCuota | TasaOCuota="1.600000" | 1.600000| |
| e. Importe | Importe="2720" | 2720| |
| /> </cfdi:Traslados> | ||
| k. Impuesto Retencion | <cfdi:Retenciones> <cfdi:Retencion | |
| nota: esta secuencia debe ser repetida por cada nodo Impuesto | ||
| a. Base | Base="17000" | 17000| |
| b. Impuesto | Impuesto="001" | 001| |
| c. TipoFactor | TipoFactor="Tasa" | Tasa| |
| d. TasaOCuota | TasaOCuota="0.300000" | 0.300000| |
| e. Importe | Importe="1870" | 1870| |
| /> </cfdi:Retenciones> </cfdi:Impuestos> | ||
| k. Información del nodo ComplementoConcepto de acuerdo con lo expresado en el Rubro III.C. | [not used in this example] | |
| l. Información de cada nodo Parte | <cfdi:Parte | |
| nota: esta secuencia debe ser repetida por cada nodo Parte relacionado | ||
| a. ClaveProdServ | ClaveProdServ="25201513" | 25201513| |
| b. NoIdentificacion | NoIdentificacion="055155" | 055155| |
| c. Cantidad | Cantidad="1.0" | 1.0| |
| d. Unidad | Unidad="UNIDAD" | UNIDAD| |
| e. Descripcion | Descripcion="PARTE EJEMPLO" | PARTE EJEMPLO| |
| f. ValorUnitario | ValorUnitario="1.00" | 1.00| |
| g. Importe | Importe="1.00" | 1.00| |
| h. InformacionAduanera | > <cfdi:InformacionAduanera | |
| nota: esta secuencia debe ser repetida por cada nodo InformacionAduanera | ||
| a. NumeroPedimento | NumeroPedimento="15 48 4567 6001235" | 15 48 4567 6001235| |
| /> </cfdi:Parte> </cfdi:Concepto> </cfdi:Conceptos> | ||
| 6. Información de cada nodo Impuestos:Retencion | <cfdi:Impuestos><cfdi:Retenciones><cfdi:Retencion | |
| nota: esta secuencia debe ser repetida por cada nodo Retención relacionado | ||
| a. Impuesto | Impuesto="001" | 001| |
| b. Importe | Importe="247000" | 247000| |
| [repeats] | /> <cfdi:Retencion | |
| a. Impuesto | Impuesto="003" | 003| |
| b. Importe | Importe="500" | 500| |
| /> </cfdi:Retenciones> | ||
| 7. Información del nodo Impuestos. | [Caution: node out of order] | |
| a. TotalImpuestosRetenidos | [TotalImpuestosRetenidos="247500"] | 247500| |
| 8. Información de cada nodo Traslado | <cfdi:Traslados> <cfdi:Traslado | |
| nota: esta secuencia debe ser repetida por cada nodo Traslado relacionado. | ||
| a. Impuesto | Impuesto="002" | 002| |
| b. TipoFactor | TipoFactor="Tasa" | Tasa| |
| b. TasaOCuota | TasaOCuota="1.600000" | 1.600000| |
| c. Importe | Importe="360000" | 360000| |
| /> </cfdi:Traslados> | ||
| 9. Información del nodo Impuestos. | [Caution: node out of order] | |
| a. TotalImpuestosTrasladados | [TotalImpuestosTrasladados="360000"] | 360000| |
| </cfdi:Impuestos> | ||
| </cfdi:Comprobante> | | | |
The full pipe string (cadena original) is:
||3.3|A|123ABC|2017-05-01T01:23:59|02|40001000000300000337|CONDICIONES|1000|0.00|MXN|1.0|1500|I|PUE|45079|Az123|02|ED1752FE-E865-4FF2-BFE1-0F552E770DC9|AAA010101AAA|Esta es una demostración|622|BASJ600902KL9|Juanito Bananas De la Sierra|MEX|987654321|G03|01010101|00001|1.5|C81|TONELADA|ACERO|1500000|2250000|2250000|002|Tasa|1.600000|360000|2250000|001|Tasa|0.300000|247500|51888|95141904|00002|1.6|WEE|TONELADA|ALUMINIO|1500|2400|2400|002|Tasa|1.600000|384|2400|001|Tasa|0.300000|264|15 48 4567 6001234|84101604|00003|1.7|G66|TONELADA|ZAMAC|10000|17000|0|17000|002|Tasa|1.600000|2720|17000|001|Tasa|0.300000|1870|25201513|055155|1.0|UNIDAD|PARTE EJEMPLO|1.00|1.00|15 48 4567 6001235|001|247000|003|500|247500|002|Tasa|1.600000|360000|360000||
The SHA-256 digest of the cadena original expressed in hexadecimal is
0fc5c2312270ad4e5e12b757faa3934dc223cd83292d2d52d96fced494ec7c85.
To compute these values using FirmaSAT in the command line, do the following:
>FirmaSAT PIPESTRING cfdv33-base.xml ||3.3|A|123ABC|2017-05-01T01:23:59|02|40001000000300000337|CONDICIONES|...[cut]...|360000|360000|| >FirmaSAT FORMDIGEST cfdv33-base.xml 0fc5c2312270ad4e5e12b757faa3934dc223cd83292d2d52d96fced494ec7c85
This page first published 9 May 2017. Last updated 10 September 2025.