1. Home
  2. Servicios
  3. Timbrado V4
  4. Timbrado V4 – CustomID

Timbrado V4 – CustomID

El servicio de timbrado recibe un CFDI en formato XML o JSON para su procesamiento, incluyendo complementos de CFDI, y es compatible con la versión vigente. Junto con el comprobante, se requiere un encabezado denominado CustomID, el cual actúa como un filtro adicional para prevenir duplicaciones en caso de fallos no controlados durante el envío.

El CustomID es un valor definido por el usuario, con un máximo de 100 caracteres. No tiene restricciones de formato y su vigencia es de 72 horas a partir de su primer uso.

ℹ️Recomendamos colapsar los espacio en blanco del customid a enviar.

💡Nota Importante: 👉 Por motivos de compatibilidad, aunque el path de nuestros servicios indique /cfdi33, este mismo endpoint acepta la versión actual del CFDI.

URL´s

🛠️ Pruebas:
🚀 Productivo:

Emisión Timbrado

Servicio de timbrado que sella y timbra un comprobante CFDI 4.0 en formato XML. Es requerido cargar los certificados del emisor previamente a la cuenta de timbrado.

🔗 Endpoint

MétodoRuta
POST/v4/cfdi33/issue/{version}/{format}
Nota: Aunque el path dice /cfdi33, el servicio es compatible con la versión vigente del CFDI. El nombre se conserva por compatibilidad.

🔐 Autenticación y Headers

HeaderValue
AuthorizationBearer Token
Content-Typemultipart/form-data
customid$string

📍 Parámetros Path

PropiedadUsoDescripción
versionRequeridoVersión de la respuesta que devolverá el servicio.
formatOpcional(Default=b64) Parámetro para especificar si el XML esta en formato base 64.

🧾 Parámetros Form

PropiedadUsoDescripción
xmlRequeridoXML del comprobante a ser timbrado.

Ejemplo Request

curl --request POST \
  --url http://services.test.sw.com.mx/v4/cfdi33/issue/v4 \
  --header 'Authorization: Bearer $token' \
  --header 'Content-Type: multipart/form-data' \
  --header 'customid: myCustomId' \
  --form 'xml=@cfdi.xml'

Ejemplo Response

{
    "data": {
        "tfd": "<?xml version=\"1.0\" encoding=\"utf-8\"?><tfd:TimbreFiscalDigital xsi:schemaLocation=\"http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd\" Version=\"1.1\" UUID=\"2792f0a0-0fbf-4c1d-a1ab-6a6221cf1cf9\" FechaTimbrado=\"2022-07-29T16:51:15\" RfcProvCertif=\"SPR190613I52\" SelloCFD=\"XsIqF+xyHbPtthsTZfdsaxpkn09+FZpG4Iwi0wQvZNhjzH2G9s5I2iLnIOzKntPap/GPz0SVbOLtcayk0XzyEqc2Kx5hAKeDoWapi0gdVqfP/znIA2apJu56f3/Mi54IaIan2JHavn7vSBjn4LhjU/bjOpUjL/eT1MZj3N42oEoe5FNdjO40tU5JiFjPUvtt9tlwxwa1lpusAYKZxMdh2KHd+r2HYxW+HXMpQJCPzUV5T51cd2LCH2KE3Crx99hWR7K+Ngz9IHNSi+WCoWkKDEtSXcn4RDWZkEU0VsbVbGW0hGvC6rQUZvNnBESzxc7mYJ99pgaSNSmzhcHIDuPrcQ==\" NoCertificadoSAT=\"30001000000400002495\" SelloSAT=\"KeifnQUrZ9CgO09evnDR9oyamQ4BELh0ZlTCJU2Jw2na8W9Opy5pWZpSwOIqyLdZ/NjAkPVCVq7jfXppGg+naL4ySHuXvtJXkN6LhnDnEx/U7tq6A2Oq1Xe8Xl9Mj0bciM9f4oTPYrW89Wxt5kPkNcaABkHZen6N6PaCKjL/TPci6evM/M/oGsgbkOEevsd6tv11rcSFIWDJVxLwZP98aDUWCgAujyZJUM+ialOK69J2ZolahYCGXUjEV5TQmmAwti8xdDG1W4pX83ijjpu2kulpYQO83ZDJQbczuJA411gK5FT1VGQ1ZZTh5bSf/iOCx5qUoE5bu457MXtfBUpo6A==\" xmlns:tfd=\"http://www.sat.gob.mx/TimbreFiscalDigital\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" />"
    },
    "status": "success"
}
{
    "message": "CFDI3307 - Timbre duplicado. El customId proporcionado está duplicado.",
    "messageDetail": null,
    "data": {
        "tfd": "<?xml version=\"1.0\" encoding=\"utf-8\"?><tfd:TimbreFiscalDigital xsi:schemaLocation=\"http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd\" Version=\"1.1\" UUID=\"554cb265-7518-4178-88e2-640292783c8a\" FechaTimbrado=\"2022-07-29T15:38:12\" RfcProvCertif=\"SPR190613I52\" SelloCFD=\"cwRfM2OzgKqIuB+TgNdyM1U13K/EssjG/wxUnSjMJPbhPmoRL3kVVOMfDwLtZL3F4aDSifKTgKSDAQ98gcZtum64TDLuIdh133BI6lGQRE2xqY/b1HlINZbkl0X/KntkZYYFSA9OZIrQ+FgQ8MX8FJeMR/HlMDI+EvhclPRc9bDMpbq8H9zuTdqmEMs9/LRY8M0c+nwtJG1C5vqOMXn6XgbnnN9tTep7PzWg2p2/OghmloSfiRrMT2/vj4AkMyV2Qa+aiZp3TWCFZPjpLgIefsu/Rmygqv/REJNDr3B9803CMpqHHn34ktFLrFSOfkLBAnjxGDxGAoV40OnpAwyfDg==\" NoCertificadoSAT=\"30001000000400002495\" SelloSAT=\"lJHFjHiUWL0Yqm5uIIU4ws+9IzFekxzo5A82/Sr4SuwpfZqcDVHEIYZjy/aYB1TFq8JWjWBOSojP1XLfgOg1gdzpyoFsnW4eeJHgiJgPF5T4ZrYHaH6DQn644/DwQRiX9BKGt76QxxUQr0sz4wzzeMiiTiFjSx3EfPoCEypwxOcmckPcHne7e5mQMaTCquhb0C71HG8rSDbeBmSPNjVerwx+nEl69C68u0EqAM3lool/Z9Jzenoc4KI6QgolDyboPkFjC8ZjCB7FUQ5f3WvyU5pY7mI8xiXc1Drp47m462mIK5G6SSCNCVQ53x+//1yd6EOUPOeTEqJ8Rah7V/Xm/A==\" xmlns:tfd=\"http://www.sat.gob.mx/TimbreFiscalDigital\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" />",
        "cfdi": ""
    },
    "status": "error"
}
AtributoTipoDescripción
messageStringCódigo regresado cuando existe un error.
messageDetailStringMensaje más descriptivo del error cuando existe uno.
dataobject/nullObjeto de datos referente al timbrado cuando es exitoso. Los parámetros varían según la versión de respuesta.
statusString“success” o “error”

Emisión Timbrado JSON

Servicio de timbrado que sella y timbra un comprobante CFDI 4.0 en formato JSON. Es requerido cargar los certificados del emisor previamente a la cuenta de timbrado.

🔗 Endpoint

MétodoRuta
POST/v4/cfdi33/issue/json/{version}
Nota: Aunque el path dice /cfdi33, el servicio es compatible con la versión vigente del CFDI. El nombre se conserva por compatibilidad.

🔐 Autenticación y Headers

HeaderValue
AuthorizationBearer Token
Content-Typeapplication/jsontoxml
customid$string

📍 Parámetros Path

PropiedadUsoDescripción
versionRequeridoVersión de la respuesta que devolverá el servicio.

🧾 Parámetros JSON

PropiedadUsoDescripción
dataRequeridoJSON del comprobante a ser timbrado.

Ejemplo Request

curl --request POST \
  --url http://services.test.sw.com.mx/v4/cfdi33/issue/json/v4 \
  --header 'Authorization: Bearer $token' \
  --header 'Content-Type: application/jsontoxml' \
  --header 'customid: myCustomId' \
  --data "{\n  \"Version\": \"4.0\",\n  \"Serie\": \"Serie\",\n  \"Folio\": \"Folio\",\n  \"Fecha\": \"2022-07-27T00:02:00\",\n  \"FormaPago\": 99,\n  \"CondicionesDePago\": \"CondicionesDePago\",\n  \"SubTotal\": 2000,\n  \"Descuento\": 1,\n  \"Moneda\": \"MXN\",\n  \"TipoCambio\": 1,\n  \"Total\": 1999.16,\n  \"TipoDeComprobante\": \"I\",\n  \"Exportacion\": \"01\",\n  \"MetodoPago\": \"PUE\",\n  \"LugarExpedicion\": \"20000\",\n  \"Emisor\": {\n    \"Rfc\": \"EKU9003173C9\",\n    \"Nombre\": \"ESCUELA KEMPER URGATE\",\n    \"RegimenFiscal\": 601\n  },\n  \"Receptor\": {\n    \"Rfc\": \"URE180429TM6\",\n    \"Nombre\": \"UNIVERSIDAD ROBOTICA ESPAÑOLA\",\n    \"DomicilioFiscalReceptor\": \"65000\",\n    \"RegimenFiscalReceptor\": 601,\n    \"UsoCFDI\": \"S01\"\n  },\n  \"Conceptos\": [\n    {\n      \"Impuestos\": {\n        \"Traslados\": [\n          {\n            \"Base\": 1,\n            \"Impuesto\": \"002\",\n            \"TipoFactor\": \"Tasa\",\n            \"TasaOCuota\": 0.16,\n            \"Importe\": 0.16\n          }\n        ]\n      },\n      \"ClaveProdServ\": \"01010101\",\n      \"Cantidad\": 1,\n      \"ClaveUnidad\": \"H87\",\n      \"Unidad\": \"Servicio\",\n      \"Descripcion\": \"Servicio\",\n      \"ValorUnitario\": 2000,\n      \"Importe\": 2000,\n      \"Descuento\": 1,\n      \"ObjetoImp\": \"02\",\n      \"ComplementoConcepto\": {\n        \"Any\": [\n          {\n            \"ventavehiculos:VentaVehiculos\": {\n              \"@xmlns:ventavehiculos\": \"http://www.sat.gob.mx/ventavehiculos\",\n              \"@version\": \"1.1\",\n              \"@ClaveVehicular\": \"1231234\",\n              \"@Niv\": \"12332\"\n            }\n          }\n        ]\n      }\n    }\n  ],\n  \"Impuestos\": {\n    \"Traslados\": [\n      {\n        \"Base\": 1,\n        \"Impuesto\": \"002\",\n        \"TipoFactor\": \"Tasa\",\n        \"TasaOCuota\": 0.16,\n        \"Importe\": 0.16\n      }\n    ],\n    \"TotalImpuestosRetenidos\": 0,\n    \"TotalImpuestosTrasladados\": 0.16\n  }\n}"

Ejemplo Response

{
    "data": {
        "tfd": "<?xml version=\"1.0\" encoding=\"utf-8\"?><tfd:TimbreFiscalDigital xsi:schemaLocation=\"http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd\" Version=\"1.1\" UUID=\"bde802a5-3434-4ce1-967c-1a28844d1340\" FechaTimbrado=\"2022-07-29T16:53:05\" RfcProvCertif=\"SPR190613I52\" SelloCFD=\"XMDpYUF2bHQSis57spGdNhi+h80magYokm6Ni8ZtebbtMEvXxHh2yiXh40xvQ8eYv6vDqYX70w+B0dzt1jsrLqoCWLwxVlNHcmYfxXnBgnMlgUjTcudqGj2WSECbFqqhppHZgTgkSdn7WvMb6LgZC1pwry5lcYMiJS2IVcmQeiPbH1nQ8zA8vGXLKPxDR6nP1/1M7jIVOmptkMRKGdT7SwM4RaD9VNgvtKkutDPVaxvqhN9BoS0IWRAKiyMTIHZLkP7vZN56br0rzWXK6/zH+Kh8Fkc87A4nVm9kfe1dUxVLKP04zNyyuosHsCrrY61KzlkyuA0BwkipMC/Z0NxZXQ==\" NoCertificadoSAT=\"30001000000400002495\" SelloSAT=\"Xo3B8zPpbUCEkhWO9nOr7+yMKFoyLGeKf7CCBVTqDveEIuMa4/H7Nf1fNUwQjoljo7+K1UfhSrF7tMYjhNZfBaWB/fiLDFKofmc6cuoPv49YlTyc1jKp/SpvCRG0knv4FtuzlkF7c7MO0gHoCMccksfNGHstLOmHQhr1v1Iny4AicY7pF4ZDeTcD1BZAfvOBBS8cnDC20E+CR90TKFuJfyRq05dASS3+gMK8KjRjeVtaV6hkLD8czi6iKGE6BzcAoJbtNqt7EW7nm09XXgH6Q4qrIH+LBYojfhpMQVSwPOswG9qcXfahBCa02GztOpAFSqgmoiQGrbuOrYmaqMPwGw==\" xmlns:tfd=\"http://www.sat.gob.mx/TimbreFiscalDigital\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" />"
    },
    "status": "success"
}
{
  "message": "Xml CFDI no proporcionado o viene vacio.",
  "messageDetail": null,
  "data": null,
  "status": "error"
}
AtributoTipoDescripción
messageStringCódigo regresado cuando existe un error.
messageDetailStringMensaje más descriptivo del error cuando existe uno.
dataobject/nullObjeto de datos referente al timbrado cuando es exitoso. Los parámetros varían según la versión de respuesta.
statusString“success” o “error”

Timbrado

Servicio de timbrado que timbra un comprobante CFDI 4.0 previamente sellado en formato XML.

🔗 Endpoint

MétodoRuta
POST/v4/cfdi33/stamp/{version}/{format}
Nota: Aunque el path dice /cfdi33, el servicio es compatible con la versión vigente del CFDI. El nombre se conserva por compatibilidad.

🔐 Autenticación y Headers

HeaderValue
AuthorizationBearer Token
Content-Typemultipart/form-data
customid$string

📍 Parámetros Path

PropiedadUsoDescripción
versionRequeridoVersión de la respuesta que devolverá el servicio.
formatOpcional (Default=b64) Parámetro para especificar si el XML esta en formato base 64.

🧾 Parámetros Form

PropiedadUsoDescripción
xmlRequeridoXML del comprobante a ser timbrado.

Ejemplo Request

curl --request POST \
  --url http://services.test.sw.com.mx/v4/cfdi33/stamp/v4 \
  --header 'Authorization: Bearer $token' \
  --header 'Content-Type: multipart/form-data' \
  --header 'customid: myCustomId' \
  --form 'xml=@cfdi.xml'

Ejemplo Response

{
    "data": {
        "tfd": "<?xml version=\"1.0\" encoding=\"utf-8\"?><tfd:TimbreFiscalDigital xsi:schemaLocation=\"http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd\" Version=\"1.1\" UUID=\"0df8f3b8-db17-4560-8357-5afdfb288b6e\" FechaTimbrado=\"2022-07-29T16:58:53\" RfcProvCertif=\"SPR190613I52\" SelloCFD=\"fJYopF7i4PrAQ4XDw6ne34n2BGN6F+VrFt6gPdzhF14u12R9O1DjpGA3auCvA64osrcbTqX1+d5GMDagBQJW1uwIoqHx3SWqdl0yFWvH2UTVjlOwuAz5L6INChyi0xYEY7yLJj/JNNDxQ5icGqK1noRruNnJZxVp+ul+6rOHYvgg+iGCX3r6TOr0gfZR04NrzulNrTIck0lOlF9VP0vJKAJ4xeRlsjlu2QgjKMJ0hOreGopYnhTtpnQpKG7HD0GCYhBNLb4icWk3EVDr5hCD1AXXr+FRhx+GCvuDwK3GfFdXkrZC8nk0iJjXilEpWOPus1spSXXzjPPdNP4TI/FakA==\" NoCertificadoSAT=\"30001000000400002495\" SelloSAT=\"sADdUQR4NCY8Ln7K8TM4iAQtsA6vybAg5kEk9nT/Cii7/m1ucTVTaDFvVMN/Nn+67lu1mDTwcgFRPSWhpK1fCvbb1Uq1z07oycnym9AI0dK4QnEXNhaU+1M2kfZOZ/913xUjJ/EKOO9KOs0zJUg4Vud4llm188XepH1+E2Gc9j5ChYYGMEGoH9v3K9vyVS5X93Yvaq6AUuszpL2f+QYy3bhVuMaOnvn2CpJnAFkGdkkEbE86CLKq4ziGYG40/KPBKvTTm1k0z62EHm50Xw2RYulBkGZJr46aZl9u3a1WrPn8AhJEbmHxhKo5OTNid1B5Y5MBCRVr3cmrQcLmJLwSdg==\" xmlns:tfd=\"http://www.sat.gob.mx/TimbreFiscalDigital\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" />"
    },
    "status": "success"
}
{
    "message": "CFDI3307 - Timbre duplicado. El customId proporcionado está duplicado.",
    "messageDetail": null,
    "data": {
        "tfd": "<?xml version=\"1.0\" encoding=\"utf-8\"?><tfd:TimbreFiscalDigital xsi:schemaLocation=\"http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd\" Version=\"1.1\" UUID=\"0df8f3b8-db17-4560-8357-5afdfb288b6e\" FechaTimbrado=\"2022-07-29T16:58:53\" RfcProvCertif=\"SPR190613I52\" SelloCFD=\"fJYopF7i4PrAQ4XDw6ne34n2BGN6F+VrFt6gPdzhF14u12R9O1DjpGA3auCvA64osrcbTqX1+d5GMDagBQJW1uwIoqHx3SWqdl0yFWvH2UTVjlOwuAz5L6INChyi0xYEY7yLJj/JNNDxQ5icGqK1noRruNnJZxVp+ul+6rOHYvgg+iGCX3r6TOr0gfZR04NrzulNrTIck0lOlF9VP0vJKAJ4xeRlsjlu2QgjKMJ0hOreGopYnhTtpnQpKG7HD0GCYhBNLb4icWk3EVDr5hCD1AXXr+FRhx+GCvuDwK3GfFdXkrZC8nk0iJjXilEpWOPus1spSXXzjPPdNP4TI/FakA==\" NoCertificadoSAT=\"30001000000400002495\" SelloSAT=\"sADdUQR4NCY8Ln7K8TM4iAQtsA6vybAg5kEk9nT/Cii7/m1ucTVTaDFvVMN/Nn+67lu1mDTwcgFRPSWhpK1fCvbb1Uq1z07oycnym9AI0dK4QnEXNhaU+1M2kfZOZ/913xUjJ/EKOO9KOs0zJUg4Vud4llm188XepH1+E2Gc9j5ChYYGMEGoH9v3K9vyVS5X93Yvaq6AUuszpL2f+QYy3bhVuMaOnvn2CpJnAFkGdkkEbE86CLKq4ziGYG40/KPBKvTTm1k0z62EHm50Xw2RYulBkGZJr46aZl9u3a1WrPn8AhJEbmHxhKo5OTNid1B5Y5MBCRVr3cmrQcLmJLwSdg==\" xmlns:tfd=\"http://www.sat.gob.mx/TimbreFiscalDigital\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" />",
        "cfdi": ""
    },
    "status": "error"
}
AtributoTipoDescripción
messageStringCódigo regresado cuando existe un error.
messageDetailStringMensaje más descriptivo del error cuando existe uno.
dataobject/nullObjeto de datos referente al timbrado cuando es exitoso. Los parámetros varían según la versión de respuesta.
statusString“success” o “error”

Versiones de Respuesta Timbrado V4 CustomId

Respuesta exitosa

Versiones de respuesta en Respuestas exitosas
VersiónDescripción de la respuesta
v1Timbre Fiscal Digital.
v2Timbre Fiscal Digital y CFDI timbrado.
v3CFDI timbrado.
v4Todos los datos del timbrado.

Respuestas no exitosas

Respuestas Erróneas al duplicar CustomID o Sello

En caso de que se produzca un error al enviar en la solicitud el mismo CustomId o el mismo XML, el servicio proporciona versiones de respuesta especiales. Dependiendo de la versión de respuesta que utilices, la información devuelta será la siguiente:

Versión Respuesta al enviar mismo CustomIdRespuesta al enviar mismo XML/JSON (sello)
v1Timbre Fiscal Digital.Timbre Fiscal Digital y CFDI Timbrado.
v2Timbre Fiscal Digital.Timbre Fiscal Digital y CFDI Timbrado.
v3Timbre Fiscal Digital.Timbre Fiscal Digital y CFDI Timbrado.
v4Devuelve null en los datos y sólo el mensaje “Timbre duplicado. El customId proporcionado está duplicado.”Devuelve toda la información relevante del CFDI.

En SW® somos mejores para TI, es por ello que tu opinión es muy importantepor favor ayúdanos calificando este articulo y dejando tus comentarios.

How useful was this post?

Click on a star to rate it!

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?

Updated on agosto 11, 2025

Related Articles