DOCUMENTACION API COMERCIAL

Guías para facturar desde tu sistema o aplicación

TIMBRA TU COMPROBANTE

Para crear un Comprobante Fiscal Digital (CFDI) válido, el Servicio de Administración Tributaria (SAT) tiene que timbrar el comprobante. El siguiente diagrama representa el proceso de timbrado que realiza nuestra API Comercial en cuestión de segundos.




Timbrado en el entorno de producción

Al recibir una solicitud de Timbrado de CFDI en el entorno de producción, nuestra API realiza las siguientes acciones:

  1. Validación de los datos para asegurar que el comprobante cumpla con las leyes fiscales vigentes.
  2. Sellado del comprobante con el Certificado de Sello Digital (CSD) del emisor.
  3. Envío del comprobante al SAT. La conexión con el SAT se realiza mediante Proveedores Autorizados de Certificación (PAC).
    El SAT timbra y regresa el comprobante con su sello digital.
  4. Generación del CFDI timbrado en los siguientes formatos:
    • Un archivo XML
    • Un archivo PDF
  5. Envío del comprobante a tu sistema o aplicación.
    Dentro de la respuesta de la API se encuentra toda la información del timbrado así como las ligas para descargar el CFDI en formatos XML y PDF.

Timbrado en el entorno de prueba

Una solicitud de timbrado en el entorno de prueba genera un CFDI en formatos XML y PDF y emula sellos digitales en el archivo PDF. El CFDI generado en el entorno de prueba no tiene valor fiscal y no es enviado al SAT.

A partir del 1 de enero de 2022 entra en vigor la versión 4.0 del CFDI, existiendo un periodo de convivencia entre la versión 3.3 y la versión 4.0 el cual comprende del 1 de enero al 30 de abril de 2022.

La API Comercial te permite timbrar CFDI en versión 3.3. Enlace Fiscal está trabajando para actualizar la API Comercial y permitir el timbrado de CFDI versión 4.0.

Contenido de la página

En esta página encontrarás el siguiente contenido:

Requisitos

Este tutorial asume que ya tienes los siguientes elementos:

  • Una cuenta configurada con la modalidad de API activada. Si aún no tienes tu cuenta configurada, consulta la Guía de Inicio Rápido.
  • Tus credenciales para consumir la API. Para más información sobre cómo obtener y utilizar tus credenciales en el encabezado de tu petición, consulta la sección de Autenticación.

Puedes realizar una petición de timbrado en los siguientes casos:

  • Si tienes una cuenta gratis: Puedes emitir hasta 5 CFDI con validez fiscal dentro de los 30 días después de la creación de la cuenta gratis y antes de pasar al esquema de prepago. Además, puedes generar una cantidad ilimitada de CFDI sin validez fiscal para probar la integración de la API con el entorno de prueba.
  • Si tienes saldo en tu cuenta: Puedes emitir la cantidad de comprobantes fiscales que requieras mientras tengas saldo en tu cuenta, tanto en el entorno de prueba como en el entorno de producción. Para consultar tu saldo disponible, puedes realizar una petición al endpoint POST https://api.enlacefiscal.com/v6/obtenerSaldo.

Petición POST generarCfdi

En este tutorial se muestra cómo hacer una petición API de timbrado de una factura electrónica con IVA de 16% en versión CFDI 3.3 en el entorno de producción. Si quieres generar un comprobante en el entorno de prueba, solo necesitas cambiar el valor del parámetro modo a debug.

Endpoint

POST https://api.enlacefiscal.com/v6/generarCfdi

Elementos de la petición

En esta sección se describen los elementos que contiene la petición.

  • Información General del Comprobante
    Se refiere a los datos que envías a Enlace Fiscal para especificar qué versión y modo se usan. También incluye datos generales de la factura (Serie, Folio, Fecha Emisión, etc). Los datos incluyen:
    • modo (opcional)
    • versionEF
    • serie
    • folioInterno
    • fechaEmision
    • subTotal
    • Total
    • rfc
    • DatosDePago
    • formaDePago
  • Impuestos y Totales
    En estas etiquetas se manda la información de los impuestos totales de la factura (la sumatoria de impuestos por tipo de impuesto y Tasa). También incluye la suma de los totales desglosando impuestos y descuentos.
    Para obtener información detallada de cómo calcular los impuestos, consulta la guía para calcular impuestos.
    • Totales
      • traslados
      • Impuestos
        • Tipo
        • claveImpuesto
        • tipoFactor
        • tasaOCuota
        • importe": "3.20"

Como desarrollador, sólo necesitas enviarnos la petición hecha con datos planos en formato JSON.

Para obtener información detallada de cada etiqueta de la petición, consulta la referencia de la API Comercial de Enlace Fiscal.

Ejemplo de petición

El siguiente es un código de ejemplo de la petición de timbrado para una factura con IVA 16% en formato JSON:


curl "https://api.enlacefiscal.com/v6/probarConexion"
--request "POST"
--header "Content-Type:application/json"
--header "x-api-key:<X-API-KEY>"
--user "<USUARIO>:<TOKEN>"
--data '{
  "CFDi": {
    "modo": "produccion",
    "versionEF": "6.0",
    "serie": "FAA",
    "folioInterno": "1",
    "fechaEmision": "2021-12-01 11:03:43",
    "subTotal": "20.00",
    "total": "23.20",
    "rfc": "AAA010101AAA",
    "DatosDePago": {
      "formaDePago": "03"
    },
    "Receptor": {
      "rfc": "XAXX010101000",
      "nombre": "Empresa Demo's",
      "usoCfdi": "adquisicion_mercancias"
    },
    "Partidas": [
      {
        "cantidad": "1",
        "claveUnidad": "KGM",
        "claveProdServ": "42171606",
        "descripcion": "1 Kg de arroz",
        "valorUnitario": "20.00",
        "importe": "20.00",
        "Impuestos": [
          {
            "tipo": "traslado",
            "claveImpuesto": "IVA",
            "tipoFactor": "tasa",
            "tasaOCuota": "0.16",
            "baseImpuesto": "20.00",
            "importe": "3.20"
          }
        ]
      }
    ],
    "Impuestos": {
      "Totales": {
        "traslados": "3.20"
      },
      "Impuestos": [
        {
          "tipo": "traslado",
          "claveImpuesto": "IVA",
          "tipoFactor": "tasa",
          "tasaOCuota": "0.16",
          "importe": "3.20"
        }
      ]
    }
  }
}

Respuesta

La respuesta que recibes de nuestra API está en formato JSON. Dentro de la respuesta encuentras las URL para descargar los archivos XML y PDF de tus comprobantes.

Elementos de la respuesta

Los elementos que componen la respuesta son:

Elemento Descripción Tipo
AckEnlaceFiscal Se refiere al nombre del objeto. Object
        numeroReferencia Muestra el número de referencia de la petición. Sirve para distinguir cada petición y poder identificarla en caso de error. Number
        estatusDocumento Devuelve información de si la petición fue aceptada o no. Los dos valores posibles son: “aceptado” o “rechazado”. String
        fechaMensaje Muestra información acerca de la fecha del mensaje. String
        version Muestra la versión del formato de respuesta de la API. String
        folioInterno Es el número de folio del comprobante. Se muestra en la respuesta sólo como referencia ya que es el mismo dato que está en la petición String
        folioFiscalUUID Devuelve el Folio Fiscal que asigna el SAT al comprobante que se acaba de timbrar. String
        serie Es la serie del comprobante. Se muestra en la respuesta sólo como referencia ya que es el mismo dato que está en la petición. String
        noSerieCertificado Es el número de serie del Certificado de Sello Digital (CSD) del contribuyente. Se utiliza como “sello” del contribuyente para el comprobante. String
        noSerieCertificadoSAT Es el número de serie del certificado de sello digital (CSD) del SAT. Se utiliza como “sello” del SAT para el comprobante. String
        selloCFDi Sello Digital que asigna el SAT al comprobante, sirve como firma electrónica del contribuyente. String
        selloSAT Sello Digital del SAT, sirve como firma electrónica del SAT. String
        cadenaTFD Cadena Original del comprobante en específico. Es la que “firma” electrónicamente el SAT. String
        fechaGeneracionCFD Es la fecha de generación. Se muestra en la respuesta sólo como referencia ya que es el mismo dato que está en la petición. String
        fechaTFD Fecha en la que el SAT creó el Timbre Fiscal Digital (Fecha de timbrado del comprobante). String
        estadoCFDi Muestra si el comprobante está vigente o si fue cancelado. String
        descargaArchivoQR URL donde se puede descargar el archivo QR del comprobante. Este archivo te sirve en caso de que desees hacer tu propio diseño de comprobantes en formato PDF. String
        descargaArchivoPDF URL donde se puede descargar la versión PDF del comprobante. Puedes personalizar el diseño de este archivo dentro del portal de Enlace Fiscal. String
        xmlCFDi Devuelve la Versión XML del comprobante codificado en BASE 64. String
        descargaXmlCFDi URL donde se puede descargar la versión XML del comprobante. String

Ejemplo de respuesta

El siguiente es un código de ejemplo de la respuesta a la petición de timbrado para una factura con IVA 16% en formato JSON:


   {
  "AckEnlaceFiscal": {
    "numeroReferencia": "123",
    "estatusDocumento": "aceptado",
    "fechaMensaje": "2017-07-20 11:22:02",
    "version": "1.0",
    "folioInterno": "1",
    "folioFiscalUUID": "4E80053F-74B9-4004-B7B6-09B30781B4F6",
    "serie": "FA",
    "noSerieCertificado": "20001000000200001111",
    "noSerieCertificadoSAT": "20001000000100001111",
    "selloCFDi": "...",
    "selloSAT": "...",
    "cadenaTFD": "...",
    "fechaGeneracionCFDi": "2017-03-27 17:03:09",
    "fechaTFD": "2017-03-27T18:55:05",
    "estadoCFDi": "vigente",
    "descargaArchivoQR": "https://descarga.enlacefiscal.com/QR/?i=QUFBMDEwMTAxQUFBLS0yMDE3XzE4XzRldsTNmLTc0YjktNDAwNC1iN2I2LTA5YjMwNzgxYjRmNi0tMS0tMTg=&b=0",
    "descargaArchivoPDF": "https://descarga.enlacefiscal.com/PDF/?i=YjMwNzgxYjRmNi0tMS0tMTg=&b=0",
    "xmlCFDi": "...",
    "descargaXmlCFDi": "https://descarga.enlacefiscal.com/CFDI/?i=QUFBMDEwMTAxQUFBLS0yMDE3XzE4XzRlODAwNTNmLTc0dssjktNDAwNC1iN2I2LTA5YjMwNzgxYjRmNi0tMS0tMTg=&b=0"
  }
}

Verificación de la validez fiscal del comprobante

Puedes verificar la validez fiscal del comprobante generado en el entorno de producción directamente en el portal del SAT ingresando los siguientes datos:

  • Folio fiscal del CFDI. Puedes encontrar esta información en la respuesta de la API bajo la etiqueta folioFiscalUUID.
  • RFC del emisor
  • RFC del receptor

Alternativamente, puedes escanear el archivo QR de la respuesta a la petición y así acceder al portal del SAT con esos mismos datos prellenados.

Los comprobantes generados en el entorno de prueba no tienen valor fiscal para el SAT.

¿Tienes preguntas?

Consulta nuestros artículos con preguntas frecuentes sobre facturación electrónica o contáctanos por correo.