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.

💡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 Producción : https://services.sw.com.mx

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

Response Ok
{
    "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"
}
Response Error
{
    "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"
}

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

Response Ok
{
    "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"
}

Response Error
{
  "message": "Xml CFDI no proporcionado o viene vacio.",
  "messageDetail": null,
  "data": null,
  "status": "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

Response Ok
{
    "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"
}
Response Error
{
    "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"
}

Versiones de Respuesta Timbrado V4 CustomId

Respuestas Exitosas

VersiónRespuesta
v1Timbre Fiscal Digital
v2Timbre Fiscal Digital y CFDI timbrado
v3CFDI timbrado
v4Todos los datos del timbrado

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 DigitalTimbre Fiscal Digital y CFDI Timbrado
v2Timbre Fiscal DigitalTimbre Fiscal Digital y CFDI Timbrado
v3Timbre Fiscal DigitalTimbre 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 junio 17, 2025

Related Articles