CFDIv4 – API de Timbrado y Cancelación

Documentación SAT Reforma Fiscal 2022 | CFDI 4.0

A continuación te presentamos la documentación e información relevante respecto a nuestra API de timbrado y cancelación de CFDI’s en su versión 4 que entra en vigor este año 2022. Se recomienda visitar los siguientes 2 links del SAT que contienen mayor información respecto a esta actualización.

SAT – Portal Miscelanea Fiscal 2022 – CFDIv4

SAT – Reforma Fiscal 2022 – Actualización Facturación Electrónica

Información general del API CFDIv4

  • El API utiliza el estandar REST
  • El BODY de los Requests y Response es siempre JSON (Content Type: application/json)
  • Los métodos principales son los siguientes:
    • Login POST [URL]/api/cfdi/login
    • Timbrado POST [URL]/api/cfdi/v4/timbrar
    • Cancelar DELETE [URL]/api/cfdi/v4/[UUID]?motivo=XX&folio_sustitucion=[UUID]
    • Obtener XML GET [URL]/api/cfdi/xml/[UUID]
    • Obtener PDF GET [URL]/api/cfdi/pdf/[UUID]
    • DESCARGAR COLLECTION COMPLETA DE POSTMAN
  • Después del login debe enviarse el “token” obtenido en las siguientes peticiones dentro del header “Authorization: Bearer [TOKEN]”.
  • Nota: El método de timbrado es uno solo y sirve para cualquier tipo de comprobante: Ingreso, Egreso, Complemento de Pago, etc.
  • URL. La URL debe ser la específica para su empresa algo como https://demostracion.saasmexico.net y deben utilizar HTTPS.

Datos de conexión en ambiente de pruebas

URL: https://demostracion.saasmexico.net
ID de Empresa: 204
Usuario: cfdiv4
Password: 12345

Login

Endpoint: POST [URL]/api/cfdi/login

Request BODY:

{ “company”:”ID DE EMPRESA“, “user”:”USUARIO“, “pass”:”PASSWORD“}

ID de EMPRESA: Se puede obtener dentro de su sistema en la opción “Configuración de la Compañía” en la sección “API (INTEGRACIONES)”:

Response BODY:

{ “version“: “3.22.15”, “token“: “eyJ0eXAiOiJKV1QiLCJhbGcJ9fQ….x_EA3zgIb4qpsGQ23kU”, “expires“: 3600, “name“: “Demo ERP”, “username“: “admin”, “success“: true}

Timbrado

Endpoint: POST [URL]/api/cfdi/v4/timbrar

Request BODY:
Debe ir todo un comprobante cfdi válido en formato JSON, a continuación se muestra un abstracto a forma de ejemplo:

Aquí puedes descargar un JSON de ejemplo de cada request por tipo de comprobante:

Response BODY:

{ “version“: “3.22.11”, “data“: { “serie“: “TESTINGRESO”, “folio“: “1”, “uuid“: “1380bdf4-e98d-40e2-89b8-6c95f1165dd5”, “fechaTimbrado“: “2022-03-22T17:51:38”, “xml“: “<?xml version=\”1.0\” encoding=\”UTF-8\”?>\n<cfdi:Comprobante xmlns:xsi=\”http://www.w3.org/2001/XMLSchema-instance\” xmlns:cfdi=\”http://www.sat.gob.mx/cfd/4\” xsi:schemaLocation=\”http://www.sat.gob.mx/cfd/4 http://www.sat.gob.mx/sitio_internet/cfd/4/cfdv40.xsd\” Version=\”4.0\” Serie=\”TESTINGRESO\” Folio=\”1\” Fecha=\”2022-03-22T17:51:33\” Sello=\”jha/aTYj1LLdj….Xw==\” NoCertificado=\”00001000000505422144\” Certificado=\”MIIF+TCCA+GgAwIB…U0px3pPM\” CondicionesDePago=\”CondicionesDePago\” SubTotal=\”10.00\” Descuento=\”0.00\” Moneda=\”AMD\” TipoCambio=\”1\” Total=\”10.00\” TipoDeComprobante=\”I\” Exportacion=\”01\” LugarExpedicion=\”64000\”><cfdi:Emisor Rfc=\”PAU1207301E5\” Nombre=\”PILOTO AUTOMATICO\” RegimenFiscal=\”601\”/><cfdi:Receptor Rfc=\”PAU1207301E5\” Nombre=\”PILOTO AUTOMATICO\” DomicilioFiscalReceptor=\”64000\” RegimenFiscalReceptor=\”601\” UsoCFDI=\”G03\”/><cfdi:Conceptos><cfdi:Concepto ClaveProdServ=\”50211503\” NoIdentificacion=\”None\” Cantidad=\”1.0\” ClaveUnidad=\”H87\” Unidad=\”Pieza\” Descripcion=\”Cigarros\” ValorUnitario=\”10.000000\” Importe=\”10.00\” Descuento=\”0.00\” ObjetoImp=\”02\”><cfdi:Impuestos><cfdi:Traslados><cfdi:Traslado Base=\”1.00\” Impuesto=\”002\” TipoFactor=\”Tasa\” TasaOCuota=\”0.160000\” Importe=\”1.000000\”/></cfdi:Traslados><cfdi:Retenciones><cfdi:Retencion Base=\”1.00\” Impuesto=\”002\” TipoFactor=\”Tasa\” TasaOCuota=\”0.040000\” Importe=\”1.000000\”/></cfdi:Retenciones></cfdi:Impuestos></cfdi:Concepto></cfdi:Conceptos><cfdi:Impuestos TotalImpuestosRetenidos=\”1.00\” TotalImpuestosTrasladados=\”1.00\”><cfdi:Retenciones><cfdi:Retencion Impuesto=\”002\” Importe=\”1.00\”/></cfdi:Retenciones><cfdi:Traslados><cfdi:Traslado Base=\”1.00\” Impuesto=\”002\” TipoFactor=\”Tasa\” TasaOCuota=\”0.160000\” Importe=\”1.00\”/></cfdi:Traslados></cfdi:Impuestos><cfdi:Complemento><tfd:TimbreFiscalDigital xmlns:tfd=\”http://www.sat.gob.mx/TimbreFiscalDigital\” xmlns:xsi=\”http://www.w3.org/2001/XMLSchema-instance\” xsi:schemaLocation=\”http://www.sat.gob.mx/TimbreFiscalDigital http://www.sat.gob.mx/sitio_internet/cfd/TimbreFiscalDigital/TimbreFiscalDigitalv11.xsd\” Version=\”1.1\” UUID=\”1380bdf4-e98d-40e2-89b8-6c95f1165dd5\” FechaTimbrado=\”2022-03-22T17:51:38\” RfcProvCertif=\”SPR190613I52\” SelloCFD=\”jha/aTYj1L….KXw==\” NoCertificadoSAT=\”30001000000400002495\” SelloSAT=\”TJwC….34O/B6b/A==\”/></cfdi:Complemento></cfdi:Comprobante>\n”, “pdf“: “https://demostracion.saasmexico.net/api/cfdi/pdf/1380bdf4-e98d-40e2-89b8-6c95f1165dd5” }, “success“: true}

Cancelar

Endpoint: DELETE [URL]/api/cfdi/v4/[UUID]?motivo=XX&folio_sustitucion=[UUID]

Donde motivo es la clave del motivo del SAT () y el folio_sustitucion es opcional y debe incluir el UUID en caso de requerirse por ese motivo.

Motivos:

  • 01 = Comprobantes emitidos con errores con relación.
  • 02 = Comprobantes emitidos con errores sin relación.
  • 03 = No se llevó a cabo la operación.

Request BODY: Debe ir vacío

Obtener XML y PDF

Endpoint XML: GET [URL]/api/cfdi/xml/[UUID]

Response BODY: Misma respuesta que al timbrar, el xml viene dentro del atributo “xml”.

Endpoint PDF: GET [URL]/api/cfdi/pdf/[UUID]

Response BODY: El PDF en binario para guardarse como archivo directo.

Si tienes dudas o preguntas relacionadas con gusto podemos apoyarte en los siguientes canales de soporte:

Tel. +52 81 8383-8807
Email. soporte@saasmexico.com

Agenda Tour Virtual

× Ventas