Skip to content

SatTimbrarCFDI

Issues and stamps a CFDI (Comprobante Fiscal Digital por Internet) version 4.0 with Mexico’s SAT. The node builds the receipt from the input JSON, validates basic catalogs, computes the original chain, seals it with the issuer’s CSD (Digital Seal Certificate) configured on the credential, and sends it to be stamped by the PAC (Authorized Certification Provider) also configured on the credential. The receipt only becomes fiscally valid once the PAC responds with the UUID (fiscal folio) and the SAT’s digital seal.

FieldTypeRequiredDescription
credentials_idcredentialsYesSAT credential (CSD + PAC)
cfdijsonNoReceipt as JSON: tipoDeComprobante, receptor, conceptos. If left empty, the input data from the previous node is used. The issuer always comes from the credential

Requires a sat credential type with:

  • CSD: digital seal certificate, as a .p12 file or the .cer + .key pair issued by the SAT
  • CSD password
  • Issuer RFC, legal name, fiscal regime and postal code
  • PAC: stamping provider (facturama, finkok or sw) and its access credentials (username/password or token)
  • Environment: test (PAC sandbox) or production (real stamping)
{
"success": true,
"uuid": "A1B2C3D4-E5F6-4A5B-9C8D-1234567890AB",
"estado": "stamped",
"serie": "FA",
"folio": "1001",
"total": 1160.00,
"totals": { "subTotal": 1000.00, "descuento": 0, "totalTraslados": 160.00, "total": 1160.00 },
"fechaTimbrado": "2026-08-05T12:34:56",
"xml": "Stamped cfdi:Comprobante XML (string)",
"pac": "facturama"
}
{
"credentials_id": "cred-sat-prod",
"cfdi": {
"tipoDeComprobante": "I",
"serie": "FA",
"folio": "1001",
"moneda": "MXN",
"formaPago": "03",
"metodoPago": "PUE",
"lugarExpedicion": "06600",
"receptor": {
"rfc": "XAXX010101000",
"nombre": "PUBLICO EN GENERAL",
"codigoPostal": "06600",
"regimenFiscal": "616",
"usoCFDI": "S01"
},
"conceptos": [
{
"claveProdServ": "81112100",
"descripcion": "Consulting service",
"cantidad": 1,
"claveUnidad": "E48",
"valorUnitario": 1000.00,
"iva": 0.16,
"objetoImp": "02"
}
]
}
}
  • Stamping in Mexico is NOT direct to the SAT: it always goes through a PAC (Facturama, Finkok or SW) configured on the credential.
  • The issuer (RFC, legal name, fiscal regime, postal code) always comes from the credential, never from the input JSON.
  • The CFDI is validated against basic SAT catalogs and persisted sealed BEFORE stamping, so there is traceability if the PAC rejects the receipt.
  • If the CSD is expired, the node returns an error without attempting to stamp.