NAV Navbar
shell php
  • Introducción
  • Autenticación
  • Probar Conexión
  • Obtener Saldo
  • Timbrado CFDi 3.3
  • Cancelar CFDi 3.3
  • Timbrado Recibo Electrónico de Pago
  • Catálogos SAT CFDi 3.3
  • Introducción

    A continuación encontrarás la documentación completa para poder consumir el API de Enlace Fiscal. Nuestro API se especializa en la generación y timbrado de Comprobantes Fiscales Digitales por Internet (CFDi), el tipo de comprobante fiscal más conocido es la Factura Electrónica pero se puede emitir cualquier tipo de comprobante incluyendo Recibos de Donativos y Nómina Electrónica. Nuestro API ya soporta la versión 3.3 del SAT que entró en vigor el 1 de Julio de 2017.

    Endpoints

    Los endpoints o funciones disponibles en nuestro API son los siguientes:

    Generales

    CFDi Comerciales

     Nómina

    Autenticación

    # Realizar la petición desde shell es muy sencillo utilizando CURL  
    
    curl "https://api.enlacefiscal.com/v6/probarConexion" 
      --request "POST" 
      --header "Content-Type:application/json"
      --header "x-api-key:7aa16d2e055554fcf3d182758db23c91"
      --user "AAA010101AAA:7aa16d2e055554fcf3d182758db23c91"
      --data '{"Solicitud" : {"modo" : "produccion", "rfc" : "AAA010101AAA", "accion": "probarConexion" } }'
    

    Nuestro API utiliza autenticación vía headers de HTTP. Cada petición a nuestro API deben ser enviada con un usuario, un token y un API Key para que pueda ser autenticada.

    Probar Conexión

    Probar Conexión

    
    curl "https://api.enlacefiscal.com/v6/probarConexion" 
      --request "POST" 
      --header "Content-Type:application/json"
      --header "x-api-key:7aa16d2e055554fcf3d182758db23c91"
      --user "AAA010101AAA:7aa16d2e055554fcf3d182758db23c91"
      --data '{"Solicitud" : { "rfc" : "AAA010101AAA", "accion": "probarConexion" } }'
    
    <?php
    
    $aAuth = array('User' => 'AAA010101AAA',
                   'Pass' => '7aa16d2e055554fcf3d182758db23c91');
    
    $sUrl = "https://api.enlacefiscal.com/v6/probarConexion";
    
    $aData = array();
    
    $aData = array('Solicitud' => array('rfc'  => 'AAA010101AAA',
                                        'accion' => 'probarConexion'));
    
    $ch = curl_init();
    
    curl_setopt($ch, CURLOPT_URL, $sUrl);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
    
    $sDataJson =  json_encode($aData);
    
    curl_setopt($ch, CURLOPT_POSTFIELDS, $sDataJson);
    
    $nContentLenght = strlen($sDataJson);
    
    curl_setopt($ch, CURLOPT_HEADER, 0);
    
    curl_setopt($ch, CURLOPT_HTTPHEADER, array(
        'Content-Type: application/json',
        'x-api-key: ' . $aAuth['Pass'],
        'Content-Length: ' . $nContentLenght
    ));
    
    curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
    curl_setopt($ch, CURLOPT_USERPWD, "{$aAuth['User']}:{$aAuth['Pass']}");
    
    $sOutput = curl_exec($ch);
    curl_close($ch);
    
    echo $sOutput;
    ?>
    

    Probar Conexión - Request:

    {
        "Solicitud": {
            "rfc": "AAA010101AAA",
            "accion": "probarConexion"
        }   
    }
    

    Probar Conexión - Response:

    {
        "AckEnlaceFiscal": {
            "numeroReferencia": 1,
            "estatusDocumento": "aceptado",
            "fechaMensaje": "2017-08-25 23:04:40",
            "version": "1.0"
        }
    }
    

    El servicio más sencillo para consumir es el de prueba de conexión, es por eso que la recomendación es empezar a consumir primero éste servicio para asegurarnos que la conexión es exitosa y que los datos de autenticación son los correctos.

    API Endpoint

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


    rfc Es el RFC de la cuenta que está consumiendo el API, se utiliza como elemento adicional de autenticación. No debe contener guiones ni espacios.

    Tipo de Dato Ocurrencia Longitud Ejemplo
    string Requerido 12 caracteres - Persona Moral
    13 caracteres - Persona Física
    AAA010101AAA


    accion Campo que nos permite indicar el método que queremos consumir vía el API.

    Tipo de Dato Ocurrencia Valor Requerido Ejemplo
    enum Requerido probarConexion probarConexion


    Obtener Saldo

    Obtener Saldo

    
    curl "https://api.enlacefiscal.com/v6/obtenerSaldo" 
      --request "POST" 
      --header "Content-Type:application/json"
      --header "x-api-key:7aa16d2e055554fcf3d182758db23c91"
      --user "AAA010101AAA:7aa16d2e055554fcf3d182758db23c91"
      --data '{"Solicitud" : {"rfc" : "AAA010101AAA", "modo" : "produccion"} }'
    

    Obtener Saldo - Request:

    {
        "Solicitud" : {
            "rfc" : "AAA010101AAA", 
            "accion": "obtenerSaldo"
        } 
    }
    

    Obtener Saldo - Response:

    {
        "AckEnlaceFiscal": {
            "numeroReferencia": "622",
            "estatusDocumento": "aceptado",
            "fechaMensaje": "2017-08-16 13:51:03",
            "version": "1.0",
            "saldo": "9689.01",
            "fechaUltimoAbono": "2017-08-16",
            "montoUltimoAbono": "0.00"
        }
    }
    

    Enlace Fiscal funciona en un esquema de prepago y es necesario tener saldo disponible para poder utilizar nuestros servicios. Puedes utilizar ésta función para consultar tu saldo disponible.

    API Endpoint

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


    rfc Es el RFC de la cuenta que está consumiendo el API, se utiliza como elemento adicional de autenticación. No debe contener guiones ni espacios.

    Tipo de Dato Ocurrencia Longitud Ejemplo
    string Requerido 12 caracteres - Persona Moral
    13 caracteres - Persona Física
    AAA010101AAA


    accion Campo que nos permite indicar el método que queremos consumir vía el API.

    Tipo de Dato Ocurrencia Valor Requerido Ejemplo
    enum Requerido obtenerSaldo obtenerSaldo


    Timbrado CFDi 3.3

    A continuación encontrarás la documentación completa de todos los elementos que componen la petición de generación y timbrado de un comprobante fiscal digital (CFDi versión 3.3).

    Requisitos:

    Información General

    Este servicio (RESTful API), permite generar y timbrar un comprobante fiscal digital en el esquema CFDi 3.3. Algunos de los elementos son opcionales y permiten una mayor personalización del CFDi versión 3.3.

    Generar CFDi - Request:

    {
        "CFDi": {
            "modo": "debug",
            "versionEF": "6.0",
            "serie": "FAA",
            "folioInterno": "1",
            "fechaEmision": "2017-07-20 11:22:01",
            "subTotal": "1500.00",
            "descuentos": "50.00",
            "total": "1587.00",
            "tipoMoneda": "MXN",
            "nombreDisenio": "Diseño Compacto",
            "rfc": "AAA010101AAA",
            ...
    
    

    API Endpoint

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

    CFDi Encabezado del Comprobante


    modo Es la modalidad del API en la que se va a generar el comprobante fiscal digital, siendo las opciones posibles: debug o produccion.

    Tipo de Dato Ocurrencia Valores Posibles Valor Predeterminado Ejemplo
    enum Opcional produccion
    debug
    produccion debug


    versionEF Versión del API de Enlace Fiscal

    Tipo de Dato Ocurrencia Valor Requerido Ejemplo
    enum Requerido 6.0 6.0


    serie Es la serie de folios que se asignará al comprobante fiscal digital para poder identificarlo de una manera sencilla. Se utiliza para control interno.

    Tipo de Dato Ocurrencia Ejemplo
    string Requerido FAA


    folioInterno Se utiliza para identificar el comprobante fiscal digital generado, es para control interno.

    El folio interno junto con la serie asignada se utilizan como método de control para evitar timbrar un mismo comprobante más de una vez. Si por error se llega a enviar la petición de timbrado de un mismo folio y serie en varias ocasiones, nuestro API no la timbra otra vez, simplemente se envía la información del timbrado original.

    Tipo de Dato Ocurrencia Ejemplo
    string Requerido 1


    fechaEmision Fecha de emisión del comprobante fiscal digital, debe corresponder con la hora local donde se expide el comprobante. El tiempo máximo que se tiene entre la fecha de emisión y la petición de timbrado es de 72 horas por disposición oficial.

    Tipo de Dato Ocurrencia Formato Ejemplo
    datetime Requerido Y-m-d H:i:s 2017-07-20 11:22:01


    subTotal Es la suma de los importes antes de descuentos e impuestos, no se permiten valores negativos.

    Tipo de Dato Ocurrencia Ejemplo
    float Requerido 1500.00


    descuentos Es el importe total de los descuentos aplicables antes de impuestos, no permite valores negativos.

    Tipo de Dato Ocurrencia Ejemplo
    float Condicional 50.00


    total Es la suma del subtotal, menos los descuentos aplicables, más las contribuciones recibidas, menos los impuestos retenidos (federales o locales). No se permiten valores negativos.

    Tipo de Dato Ocurrencia Ejemplo
    float Requerido 1587.00


    tipoMoneda Es la clave de la moneda utilizada conforme al catálogo publicado por el SAT.

    Tipo de Dato Ocurrencia Opciones Valor Predeterminado Ejemplo
    enum Opcional Se muestran en el catálogo de monedas MXN MXN


    tipoCambio Tipo de cambio conforme a la moneda utilizada. Es requerido cuando la moneda es distinta a Peso Mexicano (MXN) y a la clave (XXX).

    Tipo de Dato Ocurrencia Ejemplo
    float Condicional 18.21


    nombreDisenio Nombre del diseño que se utilizará para generar el PDF del comprobante fiscal.

    Tipo de Dato Ocurrencia  Valor Predeterminado Ejemplo
    string Opcional El diseño predeterminado de la cuenta Diseño Compacto


    rfc Registro Federal de Contribuyentes correspondiente al emisor del comprobante fiscal digital. No debe contener guiones ni espacios.

    El RFC que se utilice deberá estar en la lista de RFC inscritos no cancelados en el SAT (l_rfc). Para corroborar que el RFC que desea utilizar se encuentre en ésta lista, puede utilizar la herramienta de cfdi.ninja

    Tipo de Dato Ocurrencia Longitud Ejemplo
    string Requerido 12 caracteres - Persona Moral
    13 caracteres - Persona Física
    AAA010101AAA

    Datos de Pago

    En esta sección se incluye la información sobre el pago del comprobante fiscal digital emitido. Esta sección es requerida en la petición.

    Datos de Pago [requerido] :

    {
        "CFDi": {
        ...
    
            ...
            "DatosDePago": {
                "metodoDePago": "PUE", 
                "formaDePago": "03", 
                "referenciaBancaria": "3444232132"
            }
            ...
    

    metodoDePago Elemento para especificar la Clave que corresponda al método de pago utilizado.

    Tipo de Dato Ocurrencia Opciones Valor Predeterminado Ejemplo
    enum Opcional Consultar el cátalogo de métodos de pago del SAT PUE PUE


    formaDePago Dato para expresar la Clave o Clave Texto que corresponda a la forma de pago utilizada para el pago de los bienes, servicios o la forma en que se recibe el donativo.

    Tipo de Dato Ocurrencia Opciones Ejemplo
    enum Condicional Las opciones se muestran en el catálogo de forma de pago del SAT 03


    referenciaBancaria Dato opcional para incorporar al menos los cuatro últimos dígitos del número de cuenta con la que se realizó el pago.

    Tipo de Dato Ocurrencia Ejemplo
    string Opcional 3444232132


    Comprobantes Relacionados

    En esta sección se incluirá la información de los comprobantes fiscales relacionados con el que se está generando.

    Comprobantes Relacionados [condicional]:

    {
        "CFDi": {
        ..
    
            ...
            "ComprobantesRelacionados": {
                "tipoRelacion": "nota_credito",
                "Comprobantes": [
                        "eeca15af-e9b1-4a45-9861-8d51c4fa8219",
                        "FA-250"
                ]
            }
            ...
    
    


    tipoRelacion Tipo de relación que existe entre el comprobante que se está generando y los generados previamente.

    Tipo de Dato Ocurrencia Opciones Ejemplo
    enum Requerido Se muestran en el catálogo de tipos relación, se puede utilizar Clave o Clave Texto nota_credito


    Comprobantes Es un arreglo con la información de los comprobantes relacionados.

    Tipo Ocurrencia Opciones Ejemplo
    string  Requerido  UUID o Serie-Folio eeca15af-e9b1-4a45-9861-8d51c4fa8219
    FA-230

    Receptor

    Esta sección contiene los datos correspondientes al receptor del comprobante fiscal.

    Receptor [requerido]

    {
        "CFDi": {
        ...
    
            ...
            "Receptor": {
                "rfc": "AAA010101AAA",
                "nombre": "Empresa Demo, S.A. de C.V.",
                "residenciaFiscal": "USA",
                "numeroRegistroIdTributario": "121585958",
                "usoCfdi": "adquisicion_mercancias",
                "IdentificadorCliente": {
                    "nombreCampo": "Número de Matrícula",
                    "valorCampo": "A12332"
                },
                "DomicilioFiscal": {
                    "calle": "Rayo",
                    "noExterior": "2835",
                    "noInterior": "1-A",
                    "colonia": "Jardines del norte",
                    "localidad": "Guadalajara",
                    "municipio": "Guadalajara",
                    "estado": "Jalisco",
                    "pais": "México",
                    "cp": "44580"
                }
            },
           ...
    
    
    


    rfc Registro Federal de Contribuyentes correspondiente al receptor del comprobante, debe ir sin guiones ni espacios.

    El RFC que se utilice deberá estar en la lista de RFC inscritos no cancelados en el SAT (l_rfc). Para corroborar que el RFC que desea utilizar se encuentre en ésta lista, puede utilizar la herramienta de cfdi.ninja

    Tipo de Dato Ocurrencia Longitud Ejemplo
    string Requerido 12 caracteres - Persona Moral
    13 caracteres - Persona Física
    AAA010101AAA


    nombre Es el nombre fiscal del receptor (cliente) del comprobante.

    Tipo de Dato Ocurrencia Longitud Ejemplo
    string Requerido Longitud Mínima: 1 Caracter
    Longitud Máxima: 255 Caracteres
    Empresa Demo, S.A. de C.V.


    residenciaFiscal Es el país de residencia fiscal del receptor (cliente) del comprobante, éste dato es requerido si se incluye el Complemento de Comercio Exterior o si se agrega en Número de Registro de Identidad Tributario.

    Tipo de Dato Ocurrencia Opciones Ejemplo
    enum Condicional Se encuentran en el catálogo de países del SAT USA


    numeroRegistroIdTributario Es el número de registro de identidad fiscal del receptor cuando sea residente en el extranjero. Es requerido cuando se incluya el Complemento de Comercio Exterior.

    Tipo de Dato Ocurrencia Longitud Ejemplo
    int Condicional Longitud Mínima: 1 Caracter
    Longitud Máxima: 40 Caracteres
    121585958


    usoCfdi Es la clave o descripción del uso que dará a esta factura el receptor del CFDi.

    Tipo de Dato Ocurrencia Opciones  Ejemplo
    enum Requerido Se encuentran en el catálogo de UsoCFDI del SAT, se puede mandar la Clave o Clave texto  adquisicion_mercancias


    Receptor / IdentificadorCliente [opcional]

    {
        "CFDi": {
        ...
    
            ...
            "Receptor": {
                ...
    
                "IdentificadorCliente": {
                    "nombreCampo": "Número de Matrícula",
                    "valorCampo": "A12332"
                },
    
                ...
    
            },
           ...
    
    

    IdentificadorCliente

    Es un arreglo opcional para agregar un identificador personalizado del receptor. La información del identificador únicamente aparece en la versión PDF del comprobante fiscal en la sección de datos del receptor.


    nombreCampo Elemento que especifica el nombre del identificador que se usará.

    Tipo de Dato Ocurrencia  Ejemplo
    string Requerido  Número de Matrícula


    valorCampo Es el valor del identificador del receptor.

    Tipo de Dato Ocurrencia  Ejemplo
    string Requerido  A12332


    Receptor / DomicilioFiscal [opcional]

    {
        "CFDi": {
        ...
    
            ...
            "Receptor": {
                ...
                "IdentificadorCliente": {
                    ...
                },
                "DomicilioFiscal": {
                    "calle": "Rayo",
                    "noExterior": "2835",
                    "noInterior": "1-A",
                    "colonia": "Jardines del norte",
                    "localidad": "Guadalajara",
                    "municipio": "Guadalajara",
                    "estado": "Jalisco",
                    "pais": "México",
                    "cp": "44580"
                }
            },
           ...
    
    
    

    DomicilioFiscal

    Bloque opcional para agregar la dirección del receptor del comprobante. Ésta información únicamente aparece en la versión PDF del comprobante fiscal.


    calle Elemento que indica el nombre de la vialidad del domicilio fiscal del receptor.

    Tipo de Dato Ocurrencia  Ejemplo
    string Requerido  Rayo


    noExterior Elemento que contiene el valor del número exterior del domicilio fiscal del receptor.

    Tipo de Dato Ocurrencia  Ejemplo
    string Requerido  2835


    noInterior Elemento que contiene el valor del número interior del domicilio fiscal del receptor.

    Tipo de Dato Ocurrencia  Ejemplo
    string Opcional  1-A


    colonia Elemento que contiene el nombre de la colonia o asentamiento del domicilio fiscal del receptor.

    Tipo de Dato Ocurrencia  Ejemplo
    string Opcional  Jardines del norte


    localidad Elemento que contiene el nombre de la localidad (poblado o ciudad) del domicilio fiscal del receptor.

    Tipo de Dato Ocurrencia  Ejemplo
    string Opcional  Guadalajara


    municipio Elemento que contiene el nombre del municipio o delegación (en el caso de la Ciudad de México) del domicilio fiscal del receptor.

    Tipo de Dato Ocurrencia  Ejemplo
    string Opcional  Guadalajara


    estado Elemento que indica el estado (o equivalente en caso de extranjeros) del domicilio fiscal del receptor.

    Tipo de Dato Ocurrencia  Ejemplo
    string Requerido  Jalisco


    pais Elemento que indica el país del domicilio fiscal del receptor.

    Tipo de Dato Ocurrencia  Ejemplo
    string Requerido  México


    cp Elemento que indica el código postal (o equivalente en caso de extranjeros) del domicilio fiscal del receptor.

    Tipo de Dato Ocurrencia  Ejemplo
    string Opcional  44580

    Partidas del Comprobante

    Bloque requerido que agrupa a todas las partidas del Comprobante Fiscal Digital (CFDi 3.3)

    Partidas [requerido]

    {
        "CFDi": {
        ...
    
            ...
            "Partidas": [
                {
                    "cantidad": "10",
                    "claveUnidad": "E48",
                    "unidad": "Unidad de servicio",
                    "claveProdServ": "80101500",
                    "noIdentificacion": "421412321212321",
                    "descripcion": "Servicios de consultoría de negocios y administración corporativa",
                    "valorUnitario": "100.00",
                    "importe": "1000.00",
                    "descuento": "50.00",
                    "Impuestos": [
                        {
                            "tipo": "traslado",
                            "claveImpuesto": "IVA",
                            "tipoFactor": "tasa",
                            "tasaOCuota": "0.16",
                            "baseImpuesto": "950.00",
                            "importe": "152.00"
                        },
                        {
                            "tipo": "retencion",
                            "claveImpuesto": "ISR",
                            "tipoFactor": "tasa",
                            "tasaOCuota": "0.10",
                            "baseImpuesto": "950.00",
                            "importe": "95.00"
                        }
                    ],
                    "numeroCuentaPredial": "49199",
                    "InformacionAduanera": {"numeroPedimento": "15  48  3009  0001234"}
                },
                {
                    "cantidad": "1",
                    "claveUnidad": "C62",
                    "unidad": "Uno",
                    "claveProdServ": "84101700",
                    "noIdentificacion": "4214123212123212",
                    "descripcion": "Manejo de deuda",
                    "valorUnitario": "500.00",
                    "importe": "500.00",
                    "Impuestos": [{
                        "tipo": "traslado",
                        "claveImpuesto": "IVA",
                        "tipoFactor": "tasa",
                        "tasaOCuota": "0.16",
                        "baseImpuesto": "500.00",
                        "importe": "80.00"
                    }],
                    "numeroCuentaPredial": "49199",
                    "InformacionAduanera": {"numeroPedimento": "15  48  3009  0001234"}
                }
            ],
            ...
    
    
    

    Partidas


    cantidad Es el número de articulos o servicios de la partida, puede tener hasta seis números decimales.

    Tipo de Dato Ocurrencia  Ejemplo
    float Requerido  10


    claveUnidad Es la clave de unidad de medida estandarizada conforme el cátalogo c_ClaveUnidad del SAT. La unidad debe corresponder con la descripción de la partida.

    Tipo de Dato Ocurrencia Opciones  Ejemplo
    enum Requerido Se especifican en el catálogo de unidades del SAT (c_ClaveUnidad)  E48


    unidad Campo para indicar la unidad de medida propia de la operación del emisor. La unidad debe corresponder con el producto o servicio de la partida.

    Tipo de Dato Ocurrencia  Ejemplo
    string Opcional  Unidad de servicio


    claveProdServ Clave que permite clasificar el producto o servicio que se indica en la partida. Se debe utilizar una de las claves del catálogo c_ClaveProdServ publicado por el SAT.

    Te recomendamos utilizar la herramienta de cfdi.ninja para encontrar fácilmente la clave del producto o servicio en el catálogo del SAT _ClaveProdServ.

    Tipo de Dato Ocurrencia  Ejemplo
    enum Requerido  80101500


    noIdentificacion Es el código o clave de identificación de los bienes o servicios de la partida. Este dato también se conoce como "SKU".

    Tipo de Dato Ocurrencia  Ejemplo
    string Opcional  421412321212321


    descripcion Es la descripción del bien o servicio de la partida. En este campo se puede incluír cualquier tipo de información o texto que detalle de lo que se trata la partida.

    Tipo de Dato Ocurrencia  Ejemplo
    string Requerido  Servicios de consultoría de negocios y administración corporativa


    valorUnitario Es el valor o precio unitario de los bienes o servicios de la partida.

    Tipo de Dato Ocurrencia Rango de valores  Ejemplo
    float Requerido Mínimo: 0.01
    Máximo: 9,223,372,036,854  
    100.00


    importe Es el importe total de los bienes o servicios descritos en la partida.

    Tipo de Dato Ocurrencia Rango de valores  Ejemplo
    float Requerido Mínimo: 0.01
    Máximo: 9,223,372,036,854  
    1000.00


    descuento Es el importe de los descuentos aplicables a cada partida.

    Tipo de Dato Ocurrencia Rango de valores  Ejemplo
    float Opcional Mínimo: 0.01
    Máximo: 9,223,372,036,854  
    50.00


    numeroCuentaPredial Es el número de cuenta predial con el que fue registrado el inmueble en el sistema catastral de la entidad federativa de que se trate o bien se pueden indicar los datos de identificación del certificado de participación inmobiliaria no amortizable.

    Tipo de Dato Ocurrencia Longitud  Ejemplo
    int Condicional  Se pueden registrar de 1 a 150 dígitos  49199


    Partidas / Impuestos [condicional]

    {
        "CFDi": {
        ...
    
            ...
            "Partidas": [
                {
                    ...
                    "Impuestos": [
                        {
                            "tipo": "traslado",
                            "claveImpuesto": "IVA",
                            "tipoFactor": "tasa",
                            "tasaOCuota": "0.16",
                            "baseImpuesto": "950.00",
                            "importe": "152.00"
                        },
                    ],
                    ...
    
    
    

    Partidas / Impuestos

    Esta sección contiene la información detallada de los impuestos federales retenidos y trasladados de la partida. Es requerido indicar los impuestos que aplican conforme al servicio o producto que se describe en la partida.


    tipo Es el tipo de impuesto conforme a los disponibles en el catálogo c_Impuesto del SAT.

    Tipo de Dato Ocurrencia  Opciones Ejemplo
    enum Requerido retencion
    traslado
     traslado


    claveImpuesto Es la clave de impuesto de la partida conforme al catálogo c_Impuesto del SAT.

    Tipo de Dato Ocurrencia  Opciones Ejemplo
    enum Requerido Se muestra en el cátalogo de Impuestos del SAT. Se puede utilizar la Clave o Clave Texto  IVA


    tipoFactor Es el tipo de factor que se aplica a la base del impuesto de la partida.

    Tipo de Dato Ocurrencia  Opciones Ejemplo
    enum Requerido tasa
    cuota
    exento
     tasa


    tasaOCuota Es el valor de la tasa o cuota que aplica para la partida. Éste campo es requerido cuando el campo tipoFactor sea tasa o cuota.

    Tipo de Dato Ocurrencia Ejemplo
    float Condicional  0.16


    baseImpuesto Es el valor base para el cálculo del impuesto de la partida.

    Tipo de Dato Ocurrencia Ejemplo
    float Requerido  500.00


    importe Es el importe del impuesto que aplica a la partida.

    Tipo de Dato Ocurrencia Ejemplo
    float Condicional  80.00


    Partidas / InformacionAduanera [condicional]

    {
        "CFDi": {
        ...
    
            ...
            "Partidas": [
                {
                    ...
    
                    "InformacionAduanera": {"numeroPedimento": "15  48  3009  0001234"}
                },
                ...
            ],
            ...
    

    Partidas / InformacionAduanera

    Esta sección contiene la información aduanera aplicable cuando se trate de ventas de primera mano de mercancías importadas o se trate de operaciones de comercio exterior de bienes o servicios.

    Es condicional porque solo se debe incluir si el producto que se está comercializando es de importación y no se incluye el Complemento de Comercio Exterior.


    numeroPedimento Es el número de pedimiento correspondiente a la importación del bien.

    Las reglas de formación de éste dato (iniciando por la izquierda) son las siguientes:

    Últimos dos dígitos del año de validación seguidos por dos espacios, 2 dígitos de la aduana de despacho seguidos por dos espacios, 4 dígitos del número de la patente seguidos por dos espacios, 1 dígito que corresponde al último dígito del año en curso, salvo que se trate de un pedimento consolidado, iniciado en el año inmediato anterior o del pedimento original de una rectificación, seguido de 6 dígitos de la numeración progresiva por aduana.

    Tipo de Dato Ocurrencia   Ejemplo
    string Requerido 15  48  3009  0001234


    Partidas / Partes [opcional]

    {
        "CFDi": {
            ...
    
            "Partidas": [
                {
    
    
                    ...
    
                    "Partes": [
                        {
                            "cantidad": "10",
                            "claveProdServ": "27111731",
                            "unidad": "Pieza",
                            "noIdentificacion": "R-DSA2332",
                            "descripcion": "Desarmador",
                            "valorUnitario": "100.00",
                            "importe": "1000.00"
                        },
                        {
                            "cantidad": "5",
                            "claveProdServ": "27111750",
                            "unidad": "Pieza",
                            "noIdentificacion": "R-DSC2345",
                            "descripcion": "Pinzas",
                            "valorUnitario": "50.00",
                            "importe": "250.00",
                            "InformacionAduanera": {"numeroPedimento": "15  48  3009  0001234"}
                        }
                    ]
                }
            ],
            ...
    
    

    Partidas / Partes

    En esta sección opcional se pueden expresar las partes o componentes que integrarán la totalidad del concepto expresado en la partida del CFDi.


    cantidad Es el número de artículos o servicios correspondiente a la parte.

    Tipo de Dato Ocurrencia   Ejemplo
    float Requerido 10


    claveProdServ Es la clave del producto o servicio correspondiente a la parte. Se deben de utilizar las claves incluidas en el cátalogo C_ClaveProdServ publicado por el SAT.

    Te recomendamos utilizar la herramienta de cfdi.ninja para encontrar fácilmente la clave del producto o servicio en el catálogo del SAT _ClaveProdServ.

    Tipo de Dato Ocurrencia   Ejemplo
    enum Requerido 50401800


    unidad Es la unidad de medida del bien o servicio propia de la operación del emisor aplicada a la parte.

    Tipo de Dato Ocurrencia   Ejemplo
    string Opcional Pieza


    noIdentificacion Se puede registrar el número de serie, número de parte o identificador del producto o servicio descrita en la parte.

    Tipo de Dato Ocurrencia   Ejemplo
    string Opcional R-DSA2332


    descripcion Es la descripción del bien o servicio correspondiente a la parte.

    Tipo de Dato Ocurrencia   Ejemplo
    string Requerido Desarmador


    valorUnitario Es el valor o precio unitario del bien o servicio que corresponde a la parte, debe de ser mayor a cero.

    Tipo de Dato Ocurrencia   Ejemplo
    float Requerido 100.00


    importe Es el importe total de los bienes o servicios correspondientes a la parte. Debe ser igual a la multiplicación de la cantidad por el valor unitario.

    Tipo de Dato Ocurrencia   Ejemplo
    float Requerido 1000.00


    Partidas / Partes / InformacionAduanera [condicional]

    {
        "CFDi": {
            ...
    
            "Partidas": [
                {
    
                    ...
    
                    "Partes": [
                        {
                            ...
                            "InformacionAduanera": {"numeroPedimento": "15  48  3009  0001234"}
                        }
                    ]
                }
            ],
            ...
    
    

    Partidas / Partes / InformacionAduanera

    Esta sección de la parte, contiene la información aduanera aplicable cuando se trate de ventas de primera mano de mercancías importadas o se trate de operaciones de comercio exterior de bienes o servicios.

    Es condicional porque solo se debe incluir si la parte que se está comercializando es de importación y no se incluye el Complemento de Comercio Exterior.


    numeroPedimento Es el número de pedimiento correspondiente a la importación del bien.

    Las reglas de formación de éste dato (iniciando por la izquierda) son las siguientes:

    Últimos dos dígitos del año de validación seguidos por dos espacios, 2 dígitos de la aduana de despacho seguidos por dos espacios, 4 dígitos del número de la patente seguidos por dos espacios, 1 dígito que corresponde al último dígito del año en curso, salvo que se trate de un pedimento consolidado, iniciado en el año inmediato anterior o del pedimento original de una rectificación, seguido de 6 dígitos de la numeración progresiva por aduana.

    Tipo de Dato Ocurrencia   Ejemplo
    string Requerido 15  48  3009  0001234


    Impuestos del Comprobante

    Impuestos [condicional]

    {
        "CFDi": {   
        ...
    
            ...
            "Impuestos": {
                "Totales": {
                    "retenciones": "95.00",
                    "traslados": "232.00"
                },
                "Impuestos": [
                    {
                        "tipo": "traslado",
                        "claveImpuesto": "IVA",
                        "tipoFactor": "tasa",
                        "tasaOCuota": "0.16",
                        "importe": "232.00"
                    },
                    {
                        "tipo": "retencion",
                        "claveImpuesto": "ISR",
                        "tipoFactor": "tasa",
                        "tasaOCuota": "0.10",
                        "importe": "95.00"
                    }
                ]
            },
            ...
    
    
    

    Impuestos / Totales

    Esta sección contiene la información relacionada con los impuestos federales retenidos y trasladados del CFDi. Es requerido incluirla siempre que los productos y/o servicios del comprobante tengan impuestos, que en la práctica es la mayoría de las veces.


    Totales / retenciones Es el total de los impuestos de retenciones federales. Se debe incluir solo si el comprobante incluye impuestos de retención. En caso contrario, no es necesario incluir el campo.

    Tipo de Dato Ocurrencia  Ejemplo
    float Condicional  95.00


    Totales / traslados Es el total de los impuestos de trasladados federales. Se debe incluir solo si el comprobante incluye impuestos de traslado. En caso contrario, no es necesario incluir el campo.

    Tipo de Dato Ocurrencia  Ejemplo
    float Condicional  232.00


    Impuestos / Impuestos


    tipo Es el tipo de impuesto conforme a los disponibles en el catálogo c_Impuesto del SAT.

    Tipo de Dato Ocurrencia  Opciones Ejemplo
    enum Condicional retencion
    traslado
     traslado


    claveImpuesto Es la clave de impuesto del comprobante conforme al catálogo c_Impuesto del SAT.

    Tipo de Dato Ocurrencia  Opciones Ejemplo
    enum Requerido Se muestra en el cátalogo de Impuestos del SAT. Se puede utilizar la Clave o Clave Texto  IVA


    tipoFactor Es el tipo de factor que se aplica a la base del impuesto del comprobante.

    Tipo de Dato Ocurrencia  Opciones Ejemplo
    enum Requerido tasa
    cuota
    exento
     tasa


    tasaOCuota Es el valor de la tasa o cuota que aplica para la partida. Éste campo es requerido cuando el campo tipoFactor sea tasa o cuota.

    Tipo de Dato Ocurrencia Ejemplo
    float Condicional  0.16


    importe Es el importe del impuesto que aplica a la partida.

    Tipo de Dato Ocurrencia Ejemplo
    float Condicional  232.00

    Bloques de Información Adicional

    Esta sección opcional permite agregar a la versión PDF del comprobante bloques de información no fiscal. Dado que se trata de información no fiscal los campos pueden contener cualquier texto libre siempre y cuando no cause confusión ni contradiga la información fiscal que contiene el resto del comprobante.

    Bloques de Información Adicional [opcional]

    {
        "CFDi": {
        ...
    
            ...
            "BloquesInfoAdicional": {
                "BloqueSuperior": {
                    "titulo": "Información",
                    "texto": "Condiciones: Contado Vencimiento: 17/12/2016"
                },
                "BloqueInferior": {
                    "titulo": "Observaciones",
                    "TextoRenglones": [
                        "Folio del contrato: C1008008. Factura que ampara el pago de la(s)",
                        "transaccion(es): Pago Transacción 7/48"
                    ]
                }
            },
            ...
    
    


    BloquesInfoAdicional / BloqueSuperior

    Nodo que contiene la información del bloque superior de información adicional (no fiscal) que aparecerá por encima de las partidas del comprobante en la versión PDF.


    BloquesInfoAdicional / BloqueInferior

    Nodo que contiene la información del bloque inferior de información adicional (no fiscal) que aparecerá por debajo de los totales del comprobante en la versión PDF.


    titulo Es el campo que contiene el título del bloque superior o inferior de información adicional.

    Tipo de Dato Ocurrencia  Ejemplo
    string Requerido  Información


    texto Elemento que contiene el texto que se incluirá en el cuerpo del bloque de información ya sea superior o inferior. En caso de que sea un texto largo, este tendrá saltos de línea naturales al final de cada renglón.

    Tipo de Dato Ocurrencia  Ejemplo
    string Opcional  Condiciones: Contado Vencimiento: 17/12/2016


    TextoRenglones

    Arreglo que contiene los renglones individuales que aparecerán en el cuerpo del bloque de información adicional ya sea superior o inferior. Se recomienda utilizar éste en caso de que se requiera un control más exacto del texto y saltos de línea en el bloque de información. Es necesario dividir cada uno de los renglones con una coma.

    Tipo de Dato Ocurrencia  Ejemplo
    string Opcional  "Folio del contrato: C1008008. Factura que ampara el pago de la(s)",
    "transaccion(es): Pago Transacción 7/48"

    Enviar CFDi

    Esta sección opcional contiene la información necesaria para enviar los comprobantes por correo electrónico a los receptores (clientes). Los correos adoptan el diseño del comprobante (indicado en el nodo nombreDiseno) e incluyen el logotipo en caso de que el diseño cuente con uno.

    Enviar CFDi [opcional]

    {
        "CFDi": {
        ...
    
            ...
            "EnviarCFDI": {
                "Correos": [
                    "facturas@enlacefiscal.com",
                    "cuentasxpagar@enlacefiscal.com"
                ],
                "mensajeCorreo": "Mensaje personalizado que se incluirá en el cuerpo del correo a enviar."
            }
            ...
    }
    

    Correos Arreglo para especificar la dirección o direcciones de correo electrónico a la cual se enviará la liga para descargar los archivos PDF y XML del comprobante.

    Tipo de Dato Ocurrencia  Ejemplo
    array Requerido  cuentasxpagar@enlacefiscal.com


    mensajeCorreo Elemento para agregar un mensaje opcional que puede incluir el correo electrónico enviado para la descarga del comprobante.

    Tipo de Dato Ocurrencia  Ejemplo
    string Opcional  Mensaje personalizado que se incluirá en el cuerpo del correo a enviar


    tipo Elemento para indicar el tipo de receptor del correo.

    Tipo de Dato Ocurrencia Opciones Valor Predeterminado Ejemplo
    enum Opcional persona
    sistema
    persona persona

    Campos Personalizados

    Cuando se desea incluir información adicional (no fiscal) a un comprobante, se pueden utilizar los campos personalizados. Estos son campos de información más cortos en comparación con los Bloques de Información Adicional, se puede incluir información como: Número de Vendedor, Número de Pedido, Vía de Embarque, Ruta, etc.

    Campos Personalizados [opcional]

    {
        "CFDi": {
        ...
    
            ...
            "Personalizados": [
                {
                    "nombreCampo": "Número de Pedido",
                    "valor": "345673"
                },
                {
                    "nombreCampo": "Vendedor",
                    "valor": "Juan Pérez"
                }
            ],
            ...
    
    
    

    nombreCampo Es el campo que contiene el título del campo corto.

    Tipo de Dato Ocurrencia  Ejemplo
    string Requerido  Número de Pedido


    valor Es el campo que contiene el dato del campo personalizado.

    Tipo de Dato Ocurrencia  Ejemplo
    string Requerido  Juan Pérez

    Pagaré

    De manera opcional se puede incluir la información de un Pagaré en el comprobante. El texto que se utiliza está estandarizado, solo es necesario indicar la fecha de vencimiento y la tasa de interés moratorio que se aplicará en caso de incumplimiento.

    Pagaré [opcional]

    {
        "CFDi": {
        ...
    
            ...
            "Pagare": {
                "fecha": "2017-04-01",
                "tasaInteresMoratorio": "5.58"
            }
            ...
    
    
    

    fecha Es la fecha de vencimiento del pagaré.

    Tipo de Dato Ocurrencia Formato  Ejemplo
    date Requerido Y-m-d  2017-04-01


    tasaInteresMoratorio Es la tasa de interés moratorio que se cobraría en caso de que el pago se realice después de la fecha de vencimiento.

    Tipo de Dato Ocurrencia  Ejemplo
    float Requerido  5.58

    Ejemplo Básico

    Ejemplo con el mínimo de campos que puede tener una petición para el timbrado de CFDi.

    Ejemplo Básico - Request:

    {
      "CFDi": {
        "versionEF": "6.0",
        "serie": "FAA",
        "folioInterno": "1",
        "fechaEmision": "2017-02-22 11:03:43",
        "subTotal": "20.00",
        "total": "23.20",
        "rfc": "AAA010101AAA",
        "DatosDePago": {
          "formaDePago": "03"
        },
        "Receptor": {
          "rfc": "BBB010101BB1",
          "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"
            }
          ]
        }
      }
    }
    

    Ejemplo Básico - Response:

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

    Ejemplo Completo

    Ejemplo con la mayoría de campos que puede tener una petición.

    Ejemplo Completo Timbrado - Request:

    {
        "CFDi": {
            "modo": "debug",
            "versionEF": "6.0",
            "serie": "FAA",
            "folioInterno": "1",
            "fechaEmision": "2017-07-20 11:22:01",
            "subTotal": "1500.00",
            "descuentos": "50.00",
            "total": "1587.00",
            "tipoMoneda": "MXN",
            "nombreDisenio": "Diseño Compacto",
            "rfc": "AAA010101AAA",
            "DatosDePago": {
                "metodoDePago": "PUE",
                "formaDePago": "03",
                "referenciaBancaria": "3444232132"
            },
            "ComprobantesRelacionados": {
                "tipoRelacion": "nota_credito",
                "Comprobantes": [
                    "eeca15af-e9b1-4a45-9861-8d51c4fa8219",
                    "FA-250"
                ]
            },
            "Receptor": {
                "rfc": "AAA010101AAA",
                "nombre": "Empresa Demo, S.A. de C.V.",
                "residenciaFiscal": "USA",
                "numeroRegistroIdTributario": "121585958",
                "usoCfdi": "adquisicion_mercancias",
                "IdentificadorCliente": {
                    "nombreCampo": "Número de Matrícula",
                    "valorCampo": "A12332"
                },
                "DomicilioFiscal": {
                    "calle": "Rayo",
                    "noExterior": "2835",
                    "noInterior": "1-A",
                    "colonia": "Jardines del norte",
                    "localidad": "Guadalajara",
                    "municipio": "Guadalajara",
                    "estado": "Jalisco",
                    "pais": "México",
                    "cp": "44580"
                }
            },
            "Partidas": [
                {
                    "cantidad": "10",
                    "claveUnidad": "E48",
                    "unidad": "Unidad de servicio",
                    "claveProdServ": "80101500",
                    "noIdentificacion": "421412321212321",
                    "descripcion": "Servicios de consultoría de negocios y administración corporativa",
                    "valorUnitario": "100.00",
                    "importe": "1000.00",
                    "descuento": "50.00",
                    "Impuestos": [
                        {
                            "tipo": "traslado",
                            "claveImpuesto": "IVA",
                            "tipoFactor": "tasa",
                            "tasaOCuota": "0.16",
                            "baseImpuesto": "950.00",
                            "importe": "152.00"
                        },
                        {
                            "tipo": "retencion",
                            "claveImpuesto": "ISR",
                            "tipoFactor": "tasa",
                            "tasaOCuota": "0.10",
                            "baseImpuesto": "950.00",
                            "importe": "95.00"
                        }
                    ],
                    "numeroCuentaPredial": "49199",
                    "InformacionAduanera": {"numeroPedimento": "15  48  3009  0001234"}
                },
                {
                    "cantidad": "1",
                    "claveUnidad": "C62",
                    "unidad": "Uno",
                    "claveProdServ": "84101700",
                    "noIdentificacion": "4214123212123212",
                    "descripcion": "Manejo de deuda",
                    "valorUnitario": "500.00",
                    "importe": "500.00",
                    "Impuestos": [{
                        "tipo": "traslado",
                        "claveImpuesto": "IVA",
                        "tipoFactor": "tasa",
                        "tasaOCuota": "0.16",
                        "baseImpuesto": "500.00",
                        "importe": "80.00"
                    }],
                    "numeroCuentaPredial": "49199",
                    "InformacionAduanera": {"numeroPedimento": "15  48  3009  0001234"}
                }
            ],
            "Impuestos": {
                "Totales": {
                    "retenciones": "95.00",
                    "traslados": "232.00"
                },
                "Impuestos": [
                    {
                        "tipo": "traslado",
                        "claveImpuesto": "IVA",
                        "tipoFactor": "tasa",
                        "tasaOCuota": "0.16",
                        "importe": "232.00"
                    },
                    {
                        "tipo": "retencion",
                        "claveImpuesto": "ISR",
                        "tipoFactor": "tasa",
                        "tasaOCuota": "0.10",
                        "importe": "95.00"
                    }
                ]
            },
            "BloquesInfoAdicional": {
                "BloqueSuperior": {
                    "titulo": "Información",
                    "texto": "Condiciones: Contado Vencimiento: 17/12/2016"
                },
                "BloqueInferior": {
                    "titulo": "Observaciones",
                    "TextoRenglones": [
                        "Folio del contrato: C1008008. Factura que ampara el pago de la(s)",
                        "transaccion(es): Pago Transacción 7/48"
                    ]
                }
            },
            "EnviarCFDI": {
                "Correos": [
                    "facturas@enlacefiscal.com",
                    "cuentasxpagar@enlacefiscal.com"
                ],
                "mensajeCorreo": "Mensaje personalizado que se incluirá en el cuerpo del correo a enviar."
            },
            "Personalizados": [
                {
                    "nombreCampo": "Número de Pedido",
                    "valor": "345673"
                },
                {
                    "nombreCampo": "Vendedor",
                    "valor": "Juan Pérez"
                }
            ],
            "Pagare": {
                "fecha": "2017-04-01",
                "tasaInteresMoratorio": "5.58"
            }
        }
    }  
    

    Ejemplo Completo Timbrado - Response:

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

    Cancelar CFDi 3.3

    Cancelar CFDi

    
    curl "https://api.enlacefiscal.com/v6/cancelarCfdi" 
      --request "POST" 
      --header "Content-Type:application/json"
      --header "x-api-key:7aa16d2e055554fcf3d182758db23c91"
      --user "AAA010101AAA:7aa16d2e055554fcf3d182758db23c91"
      --data '{"Solicitud": {"modo": "debug" , "rfc": "AAA010101AAA" , "accion": "cancelarCfdi", "CFDi": { "serie": "B", "folio": 798, "justificacion": "Error en descripción de producto"} } }'
    

    Cancelar CFDi - Request:

    {
      "Solicitud": {
        "modo": "debug",
        "rfc": "AAA010101AAA",
        "accion": "cancelarCfdi",
        "CFDi": {
          "serie": "B",
          "folio": 798,
          "justificacion": "Error en descripción de producto"
        }
      }
    }
    

    Cancelar CFDi - Response:

    {
      "AckEnlaceFiscal": {
        "numeroReferencia": 423,
        "estatusDocumento": "aceptado",
        "fechaMensaje": "2017-10-31 10:43:22",
        "version": "1.0",
        "estatusCancelacion": "Cancelado",
        "fechaCancelacion": "2017-10-31T10:43:21",
        "uuid": "1E296C4E-160B-4471-ABB3-1C6D172916FA",
        "folio": 798,
        "serie": "B"
      }
    }
    

    El servicio de cancelación permite cancelar comprobantes ante el SAT.

    Es recomendable esperar al menos 5 minutos antes de intentar cancelar un comprobante que recién se acaba de timbrar. Esto se debe a que es necesario que un comprobante esté registrado ante el SAT antes de poderlo cancelar.

    Cuando ya se cuente con al menos un CFDi del tipo Recibo Electrónico de Pago, el CFDi emitido por el total de la contraprestación no podrá cancelarse, las correcciones deberán realizarse mediante la emisión de Notas de Crédito (Egreso) por devoluciones, descuentos y bonificaciones.

    CFF, artículos 29 y 29-A y Reglamento del Código Fiscal de la Federación (RCFF), artículo 37.

    API Endpoint

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


    modo Es la modalidad del API en la que se va cancelar el comprobante fiscal digital, siendo las opciones posibles: debug o produccion.

    Tipo de Dato Ocurrencia Valores Posibles Valor Predeterminado Ejemplo
    enum Opcional produccion
    debug
    produccion debug


    rfc Es el RFC de la cuenta que está consumiendo el API, se utiliza como elemento adicional de autenticación. No debe contener guiones ni espacios.

    Tipo de Dato Ocurrencia Longitud Ejemplo
    string Requerido 12 caracteres - Persona Moral
    13 caracteres - Persona Física
    AAA010101AAA


    accion Campo que nos permite indicar el método que queremos consumir vía el API.

    Tipo de Dato Ocurrencia Valor Requerido Ejemplo
    enum Requerido cancelarCfdi cancelarCfdi


    CFDi

    serie Es la serie asignada al comprobante fiscal que se desea cancelar.

    Tipo de Dato Ocurrencia Ejemplo
    string Requerido B


    folioInterno Es el folio que se asignó al comprobante que se va a cancelar.

    Tipo de Dato Ocurrencia Ejemplo
    string Requerido 798


    justificacion En éste campo se puede indicar la razón por la cual se va a cancelar el comprobante. La información que se indica en éste campo no viaja al SAT, solo es para control interno.

    Tipo de Dato Ocurrencia Longitud Ejemplo
    string Opcional Mínima: 1 caracter
    Máxima: 255 caracteres
    Error en la descripción del producto

    Timbrado Recibo Electrónico de Pago

    El Recibo Electrónico de Pago o Comprobante con Complemento para Recepción de Pagos es un documento que sirve para especificar el detalle de un pago recibido, se debe emitir cuando se presente alguno de los siguientes escenarios:

    Según las reglas que especifica el SAT, el Recibo Electrónico de Pago se deberá emitir a más tardar el décimo día natural del mes siguiente al que corresponda el pago recibido.

    Se emitirá un Recibo Electrónico de Pago por pago recibido. Por ejemplo: Si recibes un pago por $10,000.00 pesos, se emite un Recibo Electrónico de Pago por el monto total ($10,000) y se especifica el o los comprobantes CFDi a los que se aplicará el pago en la sección de documentos relacionados, puede ser uno o varios.

    API Endpoint

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

    Encabezado del Comprobante

    Generar Recibo Electrónico de Pago - Request:

    {
        "CFDi": {
            "modo": "debug",
            "versionEF": "6.0",
            "serie": "RE",
            "folioInterno": "11",
            "fechaEmision": "2017-10-31 00:00:01",
            "nombreDisenio": "Diseño predeterminado",
            "rfc": "AAA010101AAA",
            ...
    

    CFDi

    modo Es la modalidad del API en la que se va a generar el comprobante fiscal digital, siendo las opciones posibles: debug o produccion.

    Tipo de Dato Ocurrencia Valores Posibles Valor Predeterminado Ejemplo
    enum Opcional produccion
    debug
    produccion debug


    versionEF Versión del API de Enlace Fiscal

    Tipo de Dato Ocurrencia Valor Requerido Ejemplo
    enum Requerido 6.0 6.0


    serie Es la serie de folios que se asignará al comprobante fiscal digital para poder identificarlo de una manera sencilla. Se utiliza para control interno.

    Tipo de Dato Ocurrencia Ejemplo
    string Requerido RE


    folioInterno Se utiliza para identificar el comprobante fiscal digital generado, es para control interno.

    El folio interno junto con la serie asignada se utilizan como método de control para evitar timbrar un mismo comprobante más de una vez. Si por error se llega a enviar la petición de timbrado de un mismo folio y serie en varias ocasiones, nuestro API no la timbra otra vez, simplemente se envía la información del timbrado original.

    Tipo de Dato Ocurrencia Ejemplo
    string Requerido 1


    fechaEmision Fecha de emisión del comprobante fiscal digital, debe corresponder con la hora local donde se expide el comprobante. El tiempo máximo que se tiene entre la fecha de emisión y la petición de timbrado es de 72 horas por disposición oficial.

    Tipo de Dato Ocurrencia Formato Ejemplo
    datetime Requerido Y-m-d H:i:s 2017-07-20 11:22:01


    nombreDisenio Nombre del diseño que se utilizará para generar el PDF del comprobante fiscal.

    Tipo de Dato Ocurrencia  Valor Predeterminado Ejemplo
    string Opcional El diseño predeterminado de la cuenta Diseño Compacto


    rfc Registro Federal de Contribuyentes correspondiente al emisor del comprobante fiscal digital. No debe contener guiones ni espacios.

    El RFC que se utilice deberá estar en la lista de RFC inscritos no cancelados en el SAT (l_rfc). Para corroborar que el RFC que desea utilizar se encuentre en ésta lista, puede utilizar la herramienta de cfdi.ninja

    Tipo de Dato Ocurrencia Longitud Ejemplo
    string Requerido 12 caracteres - Persona Moral
    13 caracteres - Persona Física
    AAA010101AAA

    Comprobantes Relacionados Recibo Electrónico Pago

    En el caso de que se haya tenido que cancelar un Recibo Electrónico Pago por un error en la información, en ésta sección se incluirá la información del comprobante fiscal que se está sustituyendo.

    Comprobantes Relacionados Recibo Electrónico Pago [condicional]:

    {
        "CFDi": {
        ..
    
            ...
            "ComprobantesRelacionados": {
                "tipoRelacion": "sustitucion",
                "Comprobantes": [
                        "eeca15af-e9b1-4a45-9861-8d51c4fa8219"
                    ]
            }
            ...
    
    


    tipoRelacion Tipo de relación que existe entre el comprobante que se está generando y los generados previamente.

    Tipo de Dato Ocurrencia Valor Requerido Ejemplo
    enum Requerido sustitucion sustitucion


    Comprobantes Es un arreglo con la información de los comprobantes relacionados.

    Tipo Ocurrencia Opciones Ejemplo
    string  Requerido  UUID o Serie-Folio eeca15af-e9b1-4a45-9861-8d51c4fa8219
    FA-230

    Receptor Recibo Electrónico Pago

    Esta sección contiene los datos correspondientes al receptor del comprobante fiscal.

    Receptor [requerido]

    {
        "CFDi": {
        ...
    
            ...
            "Receptor": {
                "rfc": "XEXX010101000",
                "nombre": "Empresa Demo, S.A. de C.V.",
                "residenciaFiscal": "AFG",
                "numeroRegistroIdTributario": "31289312983219",
                "usoCfdi": "por_definir",
                "IdentificadorCliente": {
                    "nombreCampo": "ID Cliente",
                    "valorCampo": "AER-4785"
                },
                "DomicilioFiscal": {
                    "calle": "Rayo",
                    "noExterior": "2835",
                    "noInterior": "1-A",
                    "colonia": "Jardines del norte",
                    "localidad": "Guadalajara",
                    "municipio": "Guadalajara",
                    "estado": "Jalisco",
                    "pais": "México",
                    "cp": "44580"
                }
            },
           ...
    
    
    


    rfc Registro Federal de Contribuyentes correspondiente al receptor del comprobante, debe ir sin guiones ni espacios.

    El RFC que se utilice deberá estar en la lista de RFC inscritos no cancelados en el SAT (l_rfc). Para corroborar que el RFC que desea utilizar se encuentre en ésta lista, puede utilizar la herramienta de cfdi.ninja

    Tipo de Dato Ocurrencia Longitud Ejemplo
    string Requerido 12 caracteres - Persona Moral
    13 caracteres - Persona Física
    BBB010101BB1


    nombre Es el nombre fiscal del receptor (cliente) del comprobante.

    Tipo de Dato Ocurrencia Longitud Ejemplo
    string Requerido Longitud Mínima: 1 Caracter
    Longitud Máxima: 255 Caracteres
    Empresa Demo, S.A. de C.V.


    residenciaFiscal Es el país de residencia fiscal del receptor (cliente) del comprobante, éste dato es requerido si se incluye una clave de RFC genérica extranjera.

    Tipo de Dato Ocurrencia Opciones Ejemplo
    enum Condicional Se encuentran en el catálogo de países del SAT USA


    numeroRegistroIdTributario Es el número de registro de identidad fiscal del receptor cuando sea residente en el extranjero. Es requerido cuando se incluya el campo de residenciaFiscal.

    Tipo de Dato Ocurrencia Longitud Ejemplo
    int Condicional Longitud Mínima: 1 Caracter
    Longitud Máxima: 40 Caracteres
    121585958


    usoCfdi Es la clave o descripción del uso que dará a este comprobante el receptor del CFDi. Para emisión de Recibo Electrónico de Pago el valor requerido será "por_definir".

    Tipo de Dato Ocurrencia Valor Requerido  Ejemplo
    enum Requerido por_definir  por_definir


    Receptor / IdentificadorCliente [opcional]

    {
        "CFDi": {
        ...
    
            ...
            "Receptor": {
                ...
    
                "IdentificadorCliente": {
                    "nombreCampo": "Número de Matrícula",
                    "valorCampo": "A12332"
                },
    
                ...
    
            },
           ...
    
    

    IdentificadorCliente

    Es un arreglo opcional para agregar un identificador personalizado del receptor. La información del identificador únicamente aparece en la versión PDF del comprobante fiscal en la sección de datos del receptor.


    nombreCampo Elemento que especifica el nombre del identificador que se usará.

    Tipo de Dato Ocurrencia  Ejemplo
    string Requerido  Número de Matrícula


    valorCampo Es el valor del identificador del receptor.

    Tipo de Dato Ocurrencia  Ejemplo
    string Requerido  A12332


    Receptor / DomicilioFiscal [opcional]

    {
        "CFDi": {
        ...
    
            ...
            "Receptor": {
                ...
                "IdentificadorCliente": {
                    ...
                },
                "DomicilioFiscal": {
                    "calle": "Rayo",
                    "noExterior": "2835",
                    "noInterior": "1-A",
                    "colonia": "Jardines del norte",
                    "localidad": "Guadalajara",
                    "municipio": "Guadalajara",
                    "estado": "Jalisco",
                    "pais": "México",
                    "cp": "44580"
                }
            },
           ...
    
    
    

    DomicilioFiscal

    Bloque opcional para agregar la dirección del receptor del comprobante. Ésta información únicamente aparece en la versión PDF del comprobante fiscal.


    calle Elemento que indica el nombre de la vialidad del domicilio fiscal del receptor.

    Tipo de Dato Ocurrencia  Ejemplo
    string Requerido  Rayo


    noExterior Elemento que contiene el valor del número exterior del domicilio fiscal del receptor.

    Tipo de Dato Ocurrencia  Ejemplo
    string Requerido  2835


    noInterior Elemento que contiene el valor del número interior del domicilio fiscal del receptor.

    Tipo de Dato Ocurrencia  Ejemplo
    string Opcional  1-A


    colonia Elemento que contiene el nombre de la colonia o asentamiento del domicilio fiscal del receptor.

    Tipo de Dato Ocurrencia  Ejemplo
    string Opcional  Jardines del norte


    localidad Elemento que contiene el nombre de la localidad (poblado o ciudad) del domicilio fiscal del receptor.

    Tipo de Dato Ocurrencia  Ejemplo
    string Opcional  Guadalajara


    municipio Elemento que contiene el nombre del municipio o delegación (en el caso de la Ciudad de México) del domicilio fiscal del receptor.

    Tipo de Dato Ocurrencia  Ejemplo
    string Opcional  Guadalajara


    estado Elemento que indica el estado (o equivalente en caso de extranjeros) del domicilio fiscal del receptor.

    Tipo de Dato Ocurrencia  Ejemplo
    string Requerido  Jalisco


    pais Elemento que indica el país del domicilio fiscal del receptor.

    Tipo de Dato Ocurrencia  Ejemplo
    string Requerido  México


    cp Elemento que indica el código postal (o equivalente en caso de extranjeros) del domicilio fiscal del receptor.

    Tipo de Dato Ocurrencia  Ejemplo
    string Opcional  44580

    Complemento para Recepción de Pagos

    En ésta sección se indica la información detallada del pago que se está recibiendo, la cual será incluida en el Complemento para Recepción de Pagos de su CFDi.

    Complemento Pago [requerido]

    {
        "CFDi": {
        ...
    
            ...
            "ComplementoPago": {
                "Pago": {
                    "fechaPago": "2017-10-31 00:00:01",
                    "formaDePago": "03",
                    "tipoMoneda": "USD",
                    "tipoCambio": "18.50",
                    "monto": "1000.00",
                    "numeroOperacion": "0000051",
                    "rfcCtaOrden": "XEXX010101000",
                    "nombreBancoOrdExt": "city bank",
                    "ctaOrdenante": "123456789101112131",
                    "rfcEmisorCtaBen": "BMN930209927",
                    "ctaBeneficiario": "123456789101114558",
                    "tipoCadPago": "01",
                    "certPago": "...",
                    "cadenaPago": "...",
                    "selloPago": "...",
                    "DocumentosRelacionados": [{
                        "idDocumento": "431044D8-6CA5-FACE-EB18-4558ad859874",
                        "serie": "FA",
                        "folioInterno": "41",
                        "tipoMoneda": "USD",
                        "tipoCambio": "18.50",
                        "metodoDePago": "PPD",
                        "numParcialidad": "2",
                        "saldoAnterior": "900.00",
                        "importePagado": "100.00",
                        "impoSaldoInsoluto": "800.00"
                      },
                     {
                        "idDocumento": "1B361EAE-161A-43BE-9BC3-07E450825175",
                        "serie": "FA",
                        "folioInterno": "42",
                        "tipoMoneda": "MXN",
                        "tipoCambio": "1",
                        "metodoDePago": "PPD",
                        "numParcialidad": "4",
                        "saldoAnterior": "2000.00",
                        "importePagado": "500.00",
                        "impoSaldoInsoluto": "1500.00"
                      }
                    ]
                }
            },
           ...
    
    
    


    Pago

    En éste bloque de información se detalla la información del pago que se está recibiendo.

    fechaPago Elemento que permite especificar la fecha y hora en la que se recibe el pago. En caso de no contar con la hora se debe registrar 12:00:00.

    Por ejemplo, el 15 de Noviembre de 2017 se recibió un pago pero el Recibo Electrónico de Pago se emite hasta el 10 de Diciembre de 2017. El campo de fechaEmision deberá tener la fecha en la que se emite el comprobante y el campo de fechaPago tendrá la fecha en al que efectivamente se realizó el pago:

    fechaEmision: 2017-12-10 11:21:03
    fechaPago: 2017-11-15 12:00:00


    Tipo de Dato Ocurrencia Formato  Ejemplo
    datetime Requerido Y-m-d H:i:s  2017-10-31 00:00:01


    formaDePago Dato para expresar la Clave o Clave Texto que corresponda a la forma de pago utilizada para el pago de los bienes o servicios.

    Tipo de Dato Ocurrencia Opciones Ejemplo
    enum Requerido Las opciones se muestran en el catálogo de forma de pago del SAT 03


    tipoMoneda Es la clave de la moneda utilizada conforme al catálogo publicado por el SAT.

    Tipo de Dato Ocurrencia Opciones Valor Predeterminado Ejemplo
    enum Opcional Se muestran en el catálogo de monedas MXN MXN


    tipoCambio Tipo de cambio conforme a la moneda utilizada a la fecha en la que se recibió el pago. Es requerido cuando la moneda es distinta a Peso Mexicano (MXN).

    Tipo de Dato Ocurrencia Ejemplo
    float Condicional 21.23


    monto Es el importe del pago que se está recibiendo. El valor debe ser mayor a cero y menor o igual a la suma de los importes pagados de los documentos relacionados.

    Tipo de Dato Ocurrencia Ejemplo
    float Requerido 1000.00


    numeroOperacion Es el número de cheque, número de autorización, número de referencia, clave de rastreo en caso de ser SPEI, línea de captura o algún número de referencia o identificación que permita identificar la operación correspondiente al pago efectuado.

    Tipo de Dato Ocurrencia Longitud Ejemplo
    string Opcional Longitud mínima: 1 Caracter
    Longitud máxima: 100 Caracteres
    0000051


    rfcCtaOrden Es un dato opcional para registrar la clave del RFC de la entidad emisora de la cuenta origen, es decir la operadora, banco, institución financiera, emisor de monedero electrónico, entre otros. En caso de ser residente en el extranjero, se debe registrar la clave genérica XEXX010101000.

    Por ejemplo, si la cuenta desde la que se realizó el pago está en el banco: BBVA Bancomer S.A., el RFC a indicar en éste campo sería: BBA830831LJ2

    El RFC que se utilice deberá estar en la lista de RFC inscritos no cancelados en el SAT (l_rfc). Para corroborar que el RFC que desea utilizar se encuentre en ésta lista, puede utilizar la herramienta de cfdi.ninja

    Nota: La clave genérica XEXX010101000 no se encuentra en la lista (l_rfc) del SAT ya que es una clave especial y no pertenece a un contribuyente real.

    Tipo de Dato Ocurrencia Longitud Ejemplo
    string Opcional 12 caracteres - Persona Moral
    13 caracteres - Persona Física
    XEXX010101000


    nombreBancoOrdExt Campo condicional para indicar el nombre del banco ordenante. Solo es requerido en el caso que el banco emisor sea extranjero y se indique el RFC XEXX010101000 en el campo de rfcCtaOrden.

    Tipo de Dato Ocurrencia Longitud Ejemplo
    string Condicional Longitud mínima: 1 Caracter
    Longitud máxima: 300 Caracteres
    city bank


    ctaOrdenante Campo opcional para indicar el número de cuenta con la que se realizó el pago.

    Tipo de Dato Ocurrencia Longitud Ejemplo
    string Opcional Longitud mínima: 10 Caracteres
    Longitud máxima: 50 Caracteres
    123456789101112131


    rfcEmisorCtaBen Es un dato opcional para registrar la clave del RFC de la entidad operadora de la cuenta destino, es decir la operadora, banco, institución financiera, emisor de monedero electrónico, entre otros.

    Por ejemplo, si la cuenta donde se recibirá el pago está en el banco: Banco Mercantil del Norte, S.A. (Banorte), el RFC a indicar en éste campo sería: BMN930209927.

    El RFC que se utilice deberá estar en la lista de RFC inscritos no cancelados en el SAT (l_rfc). Para corroborar que el RFC que desea utilizar se encuentre en ésta lista, puede utilizar la herramienta de cfdi.ninja

    Tipo de Dato Ocurrencia Longitud Ejemplo
    string Opcional 12 caracteres - Persona Moral
    13 caracteres - Persona Física
    BMN930209927


    ctaBeneficiario Campo opcional para indicar el número de cuenta donde se recibió el pago.

    Tipo de Dato Ocurrencia Longitud Ejemplo
    string Opcional Longitud mínima: 10 Caracteres
    Longitud máxima: 50 Caracteres
    123456789101114558


    tipoCadPago Campo opcional para indicar el tipo de cadena de pago que genera la entidad receptora del pago.

    Tipo de Dato Ocurrencia Opciones Ejemplo
    enum Opcional Las opciones se muestran en el catálogo de tipo cadena de pago del SAT 01


    certPago Campo condicional para indicar el certificado que corresponde al pago, se debe incluir como una cadena de texto en formato base 64.

    Tipo de Dato Ocurrencia Ejemplo
    string Condicional mEQNUQ7x1RB2nZdNZp3npijE3gEB1Y3JDiKjINMMjPa/RE+MvUqBDyhaFae2v3


    cadenaPago Campo condicional para indicar la cadena original del comprobante de pago generado por la entidad emisora de la cuenta beneficiaria.

    Tipo de Dato Ocurrencia Ejemplo
    string Condicional ||Pago|Banco|300.00||


    selloPago Campo condicional para indicar el sello digital que se asocie con el pago. La entidad financiera receptora del pago genera ésta información y se debe indicar en la petición como cadena de texto en formato base 64.

    Tipo de Dato Ocurrencia Ejemplo
    string Condicional ZQF8p0EnIkoa+Ty4llSRHgj1OLayIYi7y+VSwLOkcJwHxHbxUYp4Su

    Documentos Relacionados

    En ésta sección se indican los documentos relacionados con los pagos de la operación inicial.

    Por ejemplo, si recibo un pago por $10,000 pesos para saldar la deuda de las facturas FA-45 por $7,000 pesos y FA-70 por $3,000 pesos. En ésta sección se indicará el detalle de los comprobantes FA-45 y FA-70 y los saldos involucrados.

    Documentos Relacionados [requerido]

    {
        "CFDi": {
        ...
    
    
                "DocumentosRelacionados": [{
                        "idDocumento": "431044D8-6CA5-FACE-EB18-4558ad859874",
                        "serie": "FA",
                        "folioInterno": "41",
                        "tipoMoneda": "USD",
                        "tipoCambio": "18.50",
                        "metodoDePago": "PPD",
                        "numParcialidad": "2",
                        "saldoAnterior": "900.00",
                        "importePagado": "100.00",
                        "impoSaldoInsoluto": "800.00"
                      },
                     {
                        "idDocumento": "1B361EAE-161A-43BE-9BC3-07E450825175",
                        "serie": "FA",
                        "folioInterno": "42",
                        "tipoMoneda": "MXN",
                        "tipoCambio": "1",
                        "metodoDePago": "PPD",
                        "numParcialidad": "4",
                        "saldoAnterior": "2000.00",
                        "importePagado": "500.00",
                        "impoSaldoInsoluto": "1500.00"
                      }
                    ]
            ...
    
    


    Pago / DocumentosRelacionados

    Es el nodo que agrupa los documentos relacionados del comprobante que se está emitiendo. Se debe de indicar un registro por comprobante fiscal relacionado y se debe de indicar al menos un comprobante.


    idDocumento Es el folio fiscal del comprobante que se está relacionando.

    Tipo de Dato Ocurrencia Longitud Ejemplo
    string Requerido Longitud mínima: 16 Caracteres
    Longitud máxima: 36 Caracteres
    431044D8-6CA5-FACE-ER18-4558kl859874


    serie Es la serie de folios que se asignó al comprobante que se está relacionando.

    Tipo de Dato Ocurrencia Longitud Ejemplo
    string Opcional Longitud mínima: 1 Caracter
    Longitud máxima: 25 Caracteres
    FA


    folioInterno Es el folio interno que se asignó al comprobante que se está relacionando.

    Tipo de Dato Ocurrencia Longitud Ejemplo
    string Opcional Longitud mínima: 1 Caracter
    Longitud máxima: 40 Caracteres
    41


    tipoMoneda Es la clave de la moneda utilizada en el comprobante que se está relacionando conforme al catálogo publicado por el SAT.

    Tipo de Dato Ocurrencia Opciones Valor Predeterminado Ejemplo
    enum Opcional Se muestran en el catálogo de monedas MXN MXN


    tipoCambio Es el tipo de cambio correspondiente a la moneda registrada en el documento relacionado. Es requerido cuando la moneda del documento relacionado es distinta a la moneda del Recibo Electrónico de Pago.

    Se debe registrar el número de unidades de la moneda señalada en el documento relacionado que equivalen a una unidad de la moneda del pago.

    Por ejemplo, en el documento relacionado en el campo tipoMoneda se registra en USD (Dolar americano) y en el campo monto el pago se realiza por 100 EUR (Euros), por lo tanto en este campo se debe registrar 1.114700 USD/EUR y en el campo importePagado se debe registrar 111.47 USD, dato que se obtiene de la siguiente manera:

    100 EUR * 1.114700 USD/EUR = 111.47 USD. DocumentosRelacionados/tipoCambio= 1.114700

    Tipo de Dato Ocurrencia Ejemplo
    float Condicional 21.23


    metodoDePago Elemento para especificar la Clave que corresponda al método de pago utilizado en el documento relacionado.

    Tipo de Dato Ocurrencia Valor Requerido Ejemplo
    enum Requerido PPD PPD


    numParcialidad Es el número de parcialidad que corresponde al pago.

    Tipo de Dato Ocurrencia Valor Predeterminado Ejemplo
    int Opcional 1 1


    saldoAnterior Es el monto del saldo insoluto de la parcialidad anterior. En otras palabras, es el saldo que se debía justo antes de realizar el pago que refleja el comprobante que se está emitiendo. En el caso de que sea la primera parcialidad, éste campo debe contener el importe total del documento relacionado.

    En el caso de que se reciba el pago diferido, se debe registrar el monto total de la operación del documento relacionado.

    Ejemplo 1: Se realizó una compra de una televisión por $20,000.00 pesos y se pagará en 5 parcialidades. Si se emite el comprobante de la primera parcialidad el monto de éste campo debe de ser $20,000.00.

    Ejemplo 2: Se compra un refrigerador por $15,000.00 y se pagará en 3 mensualidades de $5,000.00 pesos. El Recibo Electrónico de Pago que se emita por la segunda parcialidad deberá tener un saldoAnterior de $10,000.00.

    Tipo de Dato Ocurrencia Ejemplo
    float Requerido 900.00


    importePagado Es el importe pagado que corresponde al documento relacionado.

    Ejemplo: Se realiza un pago de $10,000.00 que se abonará a las facturas FA-5 y FA-9. A la factura FA-5 se le abonan $7,000.00 pesos y a la factura FA-9 se le abonan $3,000.00 pesos.

    El valor del campo importePagado del documento relacionado de la factura FA-5 será de $7,000.00 y el campo importePagado del documento relacionado de la factura FA-9 será de $3,000.00

    Tipo de Dato Ocurrencia Ejemplo
    float Condicional 100.00


    impoSaldoInsoluto Es la diferencia entre el importe del saldo anterior y el monto pagado.

    Tipo de Dato Ocurrencia Ejemplo
    float Requerido 100.00

    Bloques de Información Adicional Recibo Electrónico Pago

    Ésta sección opcional permite agregar a la versión PDF del comprobante bloques de información no fiscal. Dado que se trata de información no fiscal los campos pueden contener cualquier texto libre siempre y cuando no cause confusión ni contradiga la información fiscal que contiene el resto del comprobante.

    Bloques de Información Adicional [opcional]

    {
        "CFDi": {
        ...
    
            ...
            "BloquesInfoAdicional": {
                "BloqueSuperior": {
                    "titulo": "Información",
                    "texto": "Condiciones: Contado Vencimiento: 17/12/2016"
                },
                "BloqueInferior": {
                    "titulo": "Observaciones",
                    "TextoRenglones": [
                        "Folio del contrato: C1008008. Factura que ampara el pago de la(s)",
                        "transaccion(es): Pago Transacción 7/48"
                    ]
                }
            },
            ...
    
    


    BloquesInfoAdicional / BloqueSuperior

    Nodo que contiene la información del bloque superior de información adicional (no fiscal) que aparecerá por encima de las partidas del comprobante en la versión PDF.


    BloquesInfoAdicional / BloqueInferior

    Nodo que contiene la información del bloque inferior de información adicional (no fiscal) que aparecerá por debajo de los totales del comprobante en la versión PDF.


    titulo Es el campo que contiene el título del bloque superior o inferior de información adicional.

    Tipo de Dato Ocurrencia  Ejemplo
    string Requerido  Información


    texto Elemento que contiene el texto que se incluirá en el cuerpo del bloque de información ya sea superior o inferior. En caso de que sea un texto largo, este tendrá saltos de línea naturales al final de cada renglón.

    Tipo de Dato Ocurrencia  Ejemplo
    string Opcional  Condiciones: Contado Vencimiento: 17/12/2016


    TextoRenglones

    Arreglo que contiene los renglones individuales que aparecerán en el cuerpo del bloque de información adicional ya sea superior o inferior. Se recomienda utilizar éste en caso de que se requiera un control más exacto del texto y saltos de línea en el bloque de información. Es necesario dividir cada uno de los renglones con una coma.

    Tipo de Dato Ocurrencia  Ejemplo
    string Opcional  "Folio del contrato: C1008008. Factura que ampara el pago de la(s)",
    "transaccion(es): Pago Transacción 7/48"

    Enviar CFDi Recibo Electrónico Pago

    Esta sección opcional contiene la información necesaria para enviar los comprobantes por correo electrónico a los receptores (clientes). Los correos adoptan el diseño del comprobante (indicado en el nodo nombreDiseno) e incluyen el logotipo en caso de que el diseño cuente con uno.

    Enviar CFDi [opcional]

    {
        "CFDi": {
        ...
    
            ...
            "EnviarCFDI": {
                "Correos": [
                    "facturas@ef.com",
                    "cuentasxpagar@ef.com"
                ],
                "mensajeCorreo": "Mensaje personalizado que se incluirá en el cuerpo del correo a enviar."
            }
            ...
    }
    

    Correos Arreglo para especificar la dirección o direcciones de correo electrónico a la cual se enviará la liga para descargar los archivos PDF y XML del comprobante.

    Tipo de Dato Ocurrencia  Ejemplo
    array Requerido  cuentasxpagar@ef.com


    mensajeCorreo Elemento para agregar un mensaje opcional que puede incluir el correo electrónico enviado para la descarga del comprobante.

    Tipo de Dato Ocurrencia  Ejemplo
    string Opcional  Mensaje personalizado que se incluirá en el cuerpo del correo a enviar


    tipo Elemento para indicar el tipo de receptor del correo.

    Tipo de Dato Ocurrencia Opciones Valor Predeterminado Ejemplo
    enum Opcional persona
    sistema
    persona persona

    Campos Personalizados Recibo Electrónico Pago

    Cuando se desea incluir información adicional (no fiscal) a un comprobante, se pueden utilizar los campos personalizados. Estos son campos de información más cortos en comparación con los Bloques de Información Adicional, se puede incluir información como: Número de Vendedor, Número de Pedido, Vía de Embarque, Ruta, etc.

    Campos Personalizados [opcional]

    {
        "CFDi": {
        ...
    
            ...
            "Personalizados": [
                {
                    "nombreCampo": "Número de Pedido",
                    "valor": "345673"
                },
                {
                    "nombreCampo": "Vendedor",
                    "valor": "Juan Pérez"
                }
            ]
            ...
    
    
    

    nombreCampo Es el campo que contiene el título del campo corto.

    Tipo de Dato Ocurrencia  Ejemplo
    string Requerido  Número de Pedido


    valor Es el campo que contiene el dato del campo personalizado.

    Tipo de Dato Ocurrencia  Ejemplo
    string Requerido  Juan Pérez

    Ejemplo Básico Recibo Electrónico Pago

    Ejemplo con el mínimo de campos que puede tener una petición.

    Ejemplo Básico Timbrado Recibo Electrónico Pago - Request:

    {
        "CFDi": {
            "modo": "debug",
            "versionEF": "6.0",
            "serie": "RE",
            "folioInterno": "17",
            "fechaEmision": "2017-10-31 00:00:01",
            "rfc": "AAA010101AAA",
            "Receptor": {
                "rfc": "XAXX010101000",
                "nombre": "Empresa Demo, S.A. de C.V.",
                "usoCfdi": "por_definir"
            },
            "ComplementoPago": {
                "Pago": {
                    "fechaPago": "2017-10-31 00:00:01",
                    "formaDePago": "03",
                    "tipoMoneda": "MXN",
                    "monto": "1000.00",
                    "numeroOperacion": "0000051",
                    "rfcCtaOrden": "BBA830831LJ2",
                    "ctaOrdenante": "123456789101112131",
                    "rfcEmisorCtaBen": "BMN930209927",
                    "ctaBeneficiario": "123456789101114558",
                    "DocumentosRelacionados": [{
                        "idDocumento": "431044D8-6CA5-FACE-EB18-4558ad859874",
                        "serie": "FA",
                        "folioInterno": "41",
                        "tipoMoneda": "MXN",
                        "metodoDePago": "PPD",
                        "numParcialidad": "2",
                        "saldoAnterior": "900.00",
                        "importePagado": "100.00",
                        "impoSaldoInsoluto": "800.00"
                      }
                    ]
                }
            },
            "EnviarCFDI": {
                "Correos": [
                    "facturas@ef.com"
                ],
                "mensajeCorreo": "Mensaje personalizado que se incluirá en el cuerpo del correo a enviar."
            }
        }
    } 
    

    Ejemplo Básico Timbrado Recibo Electrónico Pago - Response:

    {
        "AckEnlaceFiscal": {
            "numeroReferencia": 547,
            "estatusDocumento": "aceptado",
            "fechaMensaje": "2017-10-31 22:13:08",
            "version": "1.0",
            "folioInterno": "17",
            "folioFiscalUUID": "eb84bd56-a5a0-4c06-a907-44ec8af87ea3",
            "serie": "RE",
            "noSerieCertificado": "20001000000200001428",
            "noSerieCertificadoSAT": "20001000000200001428",
            "selloCFDi": "nPv+OUsiA+lCWu/dIAjD0Me8JW1b1toTWC...5BYOEYg9DUGRduabgOcDhl2cshA6kyLVpPGZKLA=",
            "selloSAT": "NN94K5/X+Q19Y0+FsPEs+5v...LSqh99zM=",
            "cadenaTFD": "||1.1|eb84bd56-a5a0-4c06-a907-44ec8af87ea3|2017-10-31T22:13:07|nPv+OUsiA+lCWu/dIAjD0Me8JW1b1toTWCU0irOXf7hjK80BFyT3lV83eS21Cjn4U7cUQgVF6enI1iJDS2pgd0pLzNd0PqqW/A3v2EuADIJAEoslhgwgiQ3h4tv2bd0lA9OQ5BYOEYg9DUGRduabgOcDhl2cshA6kyLVpPGZKLA=|20001000000200001428||",
            "fechaGeneracionCFDi": "2017-10-31 00:00:01",
            "fechaTFD": "2017-10-31T22:13:07",
            "estadoCFDi": "vigente",
            "archivoQR": "iVBORw0KGgoAAAANSUhEUgAAAasAAAGrAQMAAABE3youAAAABlBMVEUAAAD///+l2Z/dAAA...WDWGAKYumT4kkKXUT/OcKmqsFPuOXNBSFasCoaB01ZH2KW9qrA7jokrBT5pWtfSjVOP/dKb5RrSS5+cgjZVgfwB9dqtB7kI1hwAAAABJRU5ErkJggg==",
            "descargaArchivoQR": "https://descarga.enlacefiscal.com/v6/qr/?i=QUFBMDEwMTAxQUFBLS1BQUEwMTAxMDFBQUEtMjAxNzEwMzEtUkUxNy5wbmctLTIwMTYtLTQ3&b=1",
            "descargaArchivoPDF": "https://descarga.enlacefiscal.com/v6/pdf/?i=V2xkSk5FNUhTbXRPVkZsMFdWUldhRTFETURCWmVrRXlURmRGTlUxRVkzUk9SRkpzV1hwb2FGcHFaek5hVjBWNkxTMU5ha0Y0VG1jOVBTMHRUa1JqUFMwdFVWVkdRazFFUlhkTlZFRjRVVlZHUWt4VVNYZE5WR040VFVSTmVFeFdTa1pOVkdOMVkwZFNiUT09&b=1",
            "xmlCFDi": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbm...4K",
            "descargaXmlCFDi": "https://descarga.enlacefiscal.com/v6/cfdi/?i=QUFBMDEwMTAxQUFBLS1BQUEwMTAxMDFBQUEtMjAxNzEwMzEtUkUxNy54bWwtLTIwMTYtLTQ3&b=1"
        }
    }
    

    Ejemplo Completo Recibo Electrónico Pago

    Ejemplo con la mayoría de campos que puede tener una petición.

    Ejemplo Completo Timbrado Recibo Electrónico Pago - Request:

    {
        "CFDi": {
            "modo": "debug",
            "versionEF": "6.0",
            "serie": "RE",
            "folioInterno": "1",
            "fechaEmision": "2017-10-31 00:00:01",
            "nombreDisenio": "Diseño predeterminado",
            "rfc": "AAA010101AAA",
            "ComprobantesRelacionados": {
                "tipoRelacion": "sustitucion",
                "Comprobantes": [
                        "eeca15af-e9b1-4a45-9861-8d51c4fa8219"
                    ]
            },
            "Receptor": {
                "rfc": "XEXX010101000",
                "nombre": "Empresa Demo, S.A. de C.V.",
                "residenciaFiscal": "AFG",
                "numeroRegistroIdTributario": "31289312983219",
                "usoCfdi": "por_definir",
                "IdentificadorCliente": {
                    "nombreCampo": "ID Cliente",
                    "valorCampo": "AER-4785"
                },
                "DomicilioFiscal": {
                    "calle": "Rayo",
                    "noExterior": "2835",
                    "noInterior": "1-A",
                    "colonia": "Jardines del norte",
                    "localidad": "Guadalajara",
                    "municipio": "Guadalajara",
                    "estado": "Jalisco",
                    "pais": "México",
                    "cp": "44580"
                }
            },
            "ComplementoPago": {
                "Pago": {
                    "fechaPago": "2017-10-31 00:00:01",
                    "formaDePago": "03",
                    "tipoMoneda": "USD",
                    "tipoCambio": "18.50",
                    "monto": "1000.00",
                    "numeroOperacion": "0000051",
                    "rfcCtaOrden": "XEXX010101000",
                    "nombreBancoOrdExt": "city bank",
                    "ctaOrdenante": "123456789101112131",
                    "rfcEmisorCtaBen": "BMN930209927",
                    "ctaBeneficiario": "123456789101114558",
                    "tipoCadPago": "01",
                    "certPago": "...",
                    "cadenaPago": "...",
                    "selloPago": "...",
                    "DocumentosRelacionados": [{
                        "idDocumento": "431044D8-6CA5-FACE-EB18-4558ad859874",
                        "serie": "FA",
                        "folioInterno": "41",
                        "tipoMoneda": "USD",
                        "tipoCambio": "18.50",
                        "metodoDePago": "PPD",
                        "numParcialidad": "2",
                        "saldoAnterior": "900.00",
                        "importePagado": "100.00",
                        "impoSaldoInsoluto": "800.00"
                      },
                     {
                        "idDocumento": "1B361EAE-161A-43BE-9BC3-07E450825175",
                        "serie": "FA",
                        "folioInterno": "42",
                        "tipoMoneda": "MXN",
                        "tipoCambio": "1",
                        "metodoDePago": "PPD",
                        "numParcialidad": "4",
                        "saldoAnterior": "2000.00",
                        "importePagado": "500.00",
                        "impoSaldoInsoluto": "1500.00"
                      }
                    ]
                }
            },
            "BloquesInfoAdicional": {
                "BloqueSuperior": {
                    "titulo": "Información",
                    "texto": "Condiciones: Contado Vencimiento: 17/12/2013 Pedido interno: , A 1 SIIL: FA 1 17/12/2013 17:56:15"
                },
                "BloqueInferior": {
                    "titulo": "Información",
                    "texto": "Condiciones: Contado Vencimiento: 17/12/2013 Pedido interno: , A 1 SIIL: FA 1 17/12/2013 17:56:15"
                }
            },
            "EnviarCFDI": {
                "Correos": [
                    "facturas@ef.com",
                    "cuentasxpagar@ef.com"
                ],
                "mensajeCorreo": "Mensaje personalizado que se incluirá en el cuerpo del correo a enviar."
            },
            "Personalizados": [
                {
                    "nombreCampo": "Número de Pedido",
                    "valor": "345673"
                },
                {
                    "nombreCampo": "Vendedor",
                    "valor": "Juan Pérez"
                }
            ]
        }
    } 
    

    Ejemplo Completo Timbrado Recibo Electrónico Pago - Response:

    {
      "AckEnlaceFiscal": {
        "numeroReferencia": "123",
        "estatusDocumento": "aceptado",
        "fechaMensaje": "2017-10-31 00:00:02",
        "version": "1.0",
        "folioInterno": "1",
        "folioFiscalUUID": "4E80053F-74B9-4004-B7B6-09B30781B4F6",
        "serie": "RE",
        "noSerieCertificado": "20001000000200001111",
        "noSerieCertificadoSAT": "20001000000100001111",
        "selloCFDi": "...",
        "selloSAT": "...",
        "cadenaTFD": "...",
        "fechaGeneracionCFDi": "2017-10-31 00:00:02",
        "fechaTFD": "2017-10-31T00:00:02",
        "estadoCFDi": "vigente",
        "archivoQR": "iVBORw0KGgoAAAA...",
        "descargaArchivoQR": "https://descarga.enlacefiscal.com/v6/qr/?i=QUFBMDEwMTAxQUFBLS1BQUEwMTAxMDFBQUEtMjAxNzEwMzEtUkUxMC5wbmctLTIwMTYtLTQw&b=1",
        "descargaArchivoPDF": "https://descarga.enlacefiscal.com/v6/pdf/?i=VGtkRk1WbDZVbTFaTWxGMFQwUmthMDFwTURCTlZFSnFURmRHYVU5WFZYUk9WMHBxV1ZkT2FGcEVTVE5hVkdjMExTMU5ha0Y0VG1jOVBTMHRUa1JCUFMwdFVWVkdRazFFUlhkTlZFRjRVVlZHUWt4VVNYZE5WR040VFVSTmVFeFdTa1pOVkVGMVkwZFNiUT09&b=1",
        "xmlCFDi": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVV....lPgo=",
        "descargaXmlCFDi": "https://descarga.enlacefiscal.com/v6/cfdi/?i=QUFBMDEwMTAxQUFBLS1BQUEwMTAxMDFBQUEtMjAxNzEwMzEtUkUxMC54bWwtLTIwMTYtLTQw&b=1"
      }
    }
    

    Catálogos SAT CFDi 3.3

    En esta sección podrás encontrar los Catálogos del SAT necesarios para poder realizar peticiones al API de Enlace Fiscal.

    Forma De Pago

    En éste catálogo se describen las opciones que se pueden utilizar para la etiqueta de formaDePago, en la petición se puede incluir el campo de Claveo Clave Texto.

    La opción de Clave Texto es más sencilla ya que indica de manera más clara la opción del catálogo. En caso de utilizar ésta opción, el API de Enlace Fiscal lo traduce de manera automática a la clave del catálogo del SAT para cumplir con las reglas del Anexo 20 de la Resolución Miscelánea Fiscal.

    Catálogo de Forma de Pago (c_FormaPago)

    Clave Tipo Clave Texto
    01 Efectivo efectivo
    02 Cheque nominativo cheque
    03 Transferencia electrónica de fondos transferencia
    04 Tarjeta de crédito tarjeta_credito
    05 Monedero electrónico monedero
    06 Dinero electrónico dinero_electronico
    08 Vales de despensa vales
    12 Dación en pago dacion
    13 Pago por subrogación pago_subrogacion
    14 Pago por consignación pago_consignacion
    15 Condonación condonacion
    17 Compensación compensacion
    23 Novación novacion
    24 Confusión confusion
    25 Remisión de deuda remision
    26 Prescripción o caducidad prescripcion
    27 A satisfacción del acreedor satisfaccion_acreedor
    28 Tarjeta de débito tarjeta_debito
    29 Tarjeta de servicios tarjeta_servicio
    30 Aplicación de anticipos aplicacion_anticipos
    99 Por definir otro

    Impuestos

    En éste catálogo se describen las opciones que se pueden utilizar para la etiqueta de claveImpuesto, en la petición se puede incluir el campo de Claveo Clave Texto.

    La opción de Clave Texto es más sencilla ya que indica de manera más clara la opción del catálogo. En caso de utilizar ésta opción, el API de Enlace Fiscal lo traduce de manera automática a la clave del catálogo del SAT para cumplir con las reglas del Anexo 20 de la Resolución Miscelánea Fiscal.

    Catálogo de Impuestos (c_Impuesto)

    Clave Descripción Retencion Traslado Clave Texto
    001 Impuesto Sobre la Renta Si No ISR
    002 Impuesto al Valor Agregado Si Si IVA
    003 Impuesto Especial sobre Producción y Servicios Si Si IEPS

    Método de Pago

    En éste catálogo se describen las opciones que se pueden utilizar para la etiqueta de metodoDePago.

    Catálogo de Método de Pago (c_MetodoPago)

    Clave Descripción
    PUE Pago en una sola exhibición
    PPD Pago en parcialidades o diferido

    Países

    En éste catálogo se describen las opciones de países que se pueden utilizar para la etiqueta de pais.

    Países más utilizados

    Clave País
    DEU Alemania
    ARG Argentina
    BRA Brasil
    CAN Canadá
    CHL Chile
    USA Estados Unidos (los)
    MEX México
    ITA Italia
    JPN Japón

    Cátalogo de Países (c_Pais)

    Clave País
    AFG Afganistán
    ALA Islas Åland
    ALB Albania
    DEU Alemania
    AND Andorra
    AGO Angola
    AIA Anguila
    ATA Antártida
    ATG Antigua y Barbuda
    SAU Arabia Saudita
    DZA Argelia
    ARG Argentina
    ARM Armenia
    ABW Aruba
    AUS Australia
    AUT Austria
    AZE Azerbaiyán
    BHS Bahamas (las)
    BGD Bangladés
    BRB Barbados
    BHR Baréin
    BEL Bélgica
    BLZ Belice
    BEN Benín
    BMU Bermudas
    BLR Bielorrusia
    MMR Myanmar
    BOL Bolivia, Estado Plurinacional de
    BIH Bosnia y Herzegovina
    BWA Botsuana
    BRA Brasil
    BRN Brunéi Darussalam
    BGR Bulgaria
    BFA Burkina Faso
    BDI Burundi
    BTN Bután
    CPV Cabo Verde
    KHM Camboya
    CMR Camerún
    CAN Canadá
    QAT Catar
    BES Bonaire, San Eustaquio y Saba
    TCD Chad
    CHL Chile
    CHN China
    CYP Chipre
    COL Colombia
    COM Comoras
    PRK Corea (la República Democrática Popular de)
    KOR Corea (la República de)
    CIV Côte d'Ivoire
    CRI Costa Rica
    HRV Croacia
    CUB Cuba
    CUW Curaçao
    DNK Dinamarca
    DMA Dominica
    ECU Ecuador
    EGY Egipto
    SLV El Salvador
    ARE Emiratos Árabes Unidos (Los)
    ERI Eritrea
    SVK Eslovaquia
    SVN Eslovenia
    ESP España
    USA Estados Unidos (los)
    EST Estonia
    ETH Etiopía
    PHL Filipinas (las)
    FIN Finlandia
    FJI Fiyi
    FRA Francia
    GAB Gabón
    GMB Gambia (La)
    GEO Georgia
    GHA Ghana
    GIB Gibraltar
    GRD Granada
    GRC Grecia
    GRL Groenlandia
    GLP Guadalupe
    GUM Guam
    GTM Guatemala
    GUF Guayana Francesa
    GGY Guernsey
    GIN Guinea
    GNB Guinea-Bisáu
    GNQ Guinea Ecuatorial
    GUY Guyana
    HTI Haití
    HND Honduras
    HKG Hong Kong
    HUN Hungría
    IND India
    IDN Indonesia
    IRQ Irak
    IRN Irán (la República Islámica de)
    IRL Irlanda
    BVT Isla Bouvet
    IMN Isla de Man
    CXR Isla de Navidad
    NFK Isla Norfolk
    ISL Islandia
    CYM Islas Caimán (las)
    CCK Islas Cocos (Keeling)
    COK Islas Cook (las)
    FRO Islas Feroe (las)
    SGS Georgia del sur y las islas sandwich del sur
    HMD Isla Heard e Islas McDonald
    FLK Islas Malvinas [Falkland] (las)
    MNP Islas Marianas del Norte (las)
    MHL Islas Marshall (las)
    PCN Pitcairn
    SLB Islas Salomón (las)
    TCA Islas Turcas y Caicos (las)
    UMI Islas de Ultramar Menores de Estados Unidos (las)
    VGB Islas Vírgenes (Británicas)
    VIR Islas Vírgenes (EE.UU.)
    ISR Israel
    ITA Italia
    JAM Jamaica
    JPN Japón
    JEY Jersey
    JOR Jordania
    KAZ Kazajistán
    KEN Kenia
    KGZ Kirguistán
    KIR Kiribati
    KWT Kuwait
    LAO Lao, (la) República Democrática Popular
    LSO Lesoto
    LVA Letonia
    LBN Líbano
    LBR Liberia
    LBY Libia
    LIE Liechtenstein
    LTU Lituania
    LUX Luxemburgo
    MAC Macao
    MDG Madagascar
    MYS Malasia
    MWI Malaui
    MDV Maldivas
    MLI Malí
    MLT Malta
    MAR Marruecos
    MTQ Martinica
    MUS Mauricio
    MRT Mauritania
    MYT Mayotte
    MEX México
    FSM Micronesia (los Estados Federados de)
    MDA Moldavia (la República de)
    MCO Mónaco
    MNG Mongolia
    MNE Montenegro
    MSR Montserrat
    MOZ Mozambique
    NAM Namibia
    NRU Nauru
    NPL Nepal
    NIC Nicaragua
    NER Níger (el)
    NGA Nigeria
    NIU Niue
    NOR Noruega
    NCL Nueva Caledonia
    NZL Nueva Zelanda
    OMN Omán
    NLD Países Bajos (los)
    PAK Pakistán
    PLW Palaos
    PSE Palestina, Estado de
    PAN Panamá
    PNG Papúa Nueva Guinea
    PRY Paraguay
    PER Perú
    PYF Polinesia Francesa
    POL Polonia
    PRT Portugal
    PRI Puerto Rico
    GBR Reino Unido (el)
    CAF República Centroafricana (la)
    CZE República Checa (la)
    MKD Macedonia (la antigua República Yugoslava de)
    COG Congo
    COD Congo (la República Democrática del)
    DOM República Dominicana (la)
    REU Reunión
    RWA Ruanda
    ROU Rumania
    RUS Rusia, (la) Federación de
    ESH Sahara Occidental
    WSM Samoa
    ASM Samoa Americana
    BLM San Bartolomé
    KNA San Cristóbal y Nieves
    SMR San Marino
    MAF San Martín (parte francesa)
    SPM San Pedro y Miquelón
    VCT San Vicente y las Granadinas
    SHN Santa Helena, Ascensión y Tristán de Acuña
    LCA Santa Lucía
    STP Santo Tomé y Príncipe
    SEN Senegal
    SRB Serbia
    SYC Seychelles
    SLE Sierra leona
    SGP Singapur
    SXM Sint Maarten (parte holandesa)
    SYR Siria, (la) República Árabe
    SOM Somalia
    LKA Sri Lanka
    SWZ Suazilandia
    ZAF Sudáfrica
    SDN Sudán (el)
    SSD Sudán del Sur
    SWE Suecia
    CHE Suiza
    SUR Surinam
    SJM Svalbard y Jan Mayen
    THA Tailandia
    TWN Taiwán (Provincia de China)
    TZA Tanzania, República Unida de
    TJK Tayikistán
    IOT Territorio Británico del Océano Índico (el)
    ATF Territorios Australes Franceses (los)
    TLS Timor-Leste
    TGO Togo
    TKL Tokelau
    TON Tonga
    TTO Trinidad y Tobago
    TUN Túnez
    TKM Turkmenistán
    TUR Turquía
    TUV Tuvalu
    UKR Ucrania
    UGA Uganda
    URY Uruguay
    UZB Uzbekistán
    VUT Vanuatu
    VAT Santa Sede[Estado de la Ciudad del Vaticano] (la)
    VEN Venezuela, República Bolivariana de
    VNM Viet Nam
    WLF Wallis y Futuna
    YEM Yemen
    DJI Yibuti
    ZMB Zambia
    ZWE Zimbabue
    ZZZ Países no declarados

    Tipo de Cadena de Pago

    Catálogo que describe las opciones de tipo de cadena de pago que se pueden utilizar para la etiqueta tipoCadPago. Ésta etiqueta se utiliza en el Recibo Electrónico de Pago.

    Catálogo Tipo de Cadena de Pago (c_TipoCadenaPago)

    Clave Descripción
    01 SPEI

    Tipo de Monedas

    En éste catálogo se describen las opciones de moneda que se pueden utilizar para la etiqueta de tipoMoneda.

    La columna Número de decimales indica el número máximo de decimales que soporta cierta moneda. En el caso de que se tenga un importe con más decimales de los permitidos por la moneda, se tiene que hacer un redondeo.

    La columna Porcentaje de variación indica el rango de variación permitido en el tipo de cambio para no tener que solicitar un código de confirmación para poder emitir un comprobante.

    Monedas más utilizadas

    Clave Descripción Número de Decimales Porcentaje de Variación
    MXN Peso Mexicano 2 500%
    USD Dolar americano 2 500%
    CAD Dolar Canadiense 2 500%
    EUR Euro 2 500%

    Catálogo de Monedas (c_Moneda)

    Clave Descripción Número de Decimales Porcentaje de Variación
    AED Dirham de EAU 2 500%
    AFN Afghani 2 500%
    ALL Lek 2 500%
    AMD Dram armenio 2 500%
    ANG Florín antillano neerlandés 2 500%
    AOA Kwanza 2 500%
    ARS Peso Argentino 2 500%
    AUD Dólar Australiano 2 500%
    AWG Aruba Florin 2 500%
    AZN Azerbaijanian Manat 2 500%
    BAM Convertibles marca 2 500%
    BBD Dólar de Barbados 2 500%
    BDT Taka 2 500%
    BGN Lev búlgaro 2 500%
    BHD Dinar de Bahrein 3 500%
    BIF Burundi Franc 0 500%
    BMD Dólar de Bermudas 2 500%
    BND Dólar de Brunei 2 500%
    BOB Boliviano 2 500%
    BOV Mvdol 2 500%
    BRL Real brasileño 2 500%
    BSD Dólar de las Bahamas 2 500%
    BTN Ngultrum 2 500%
    BWP Pula 2 500%
    BYR Rublo bielorruso 0 500%
    BZD Dólar de Belice 2 500%
    CAD Dolar Canadiense 2 500%
    CDF Franco congoleño 2 500%
    CHE WIR Euro 2 500%
    CHF Franco Suizo 2 500%
    CHW Franc WIR 2 500%
    CLF Unidad de Fomento 4 500%
    CLP Peso chileno 0 500%
    CNY Yuan Renminbi 2 500%
    COP Peso Colombiano 2 500%
    COU Unidad de Valor real 2 500%
    CRC Colón costarricense 2 500%
    CUC Peso Convertible 2 500%
    CUP Peso Cubano 2 500%
    CVE Cabo Verde Escudo 2 500%
    CZK Corona checa 2 500%
    DJF Franco de Djibouti 0 500%
    DKK Corona danesa 2 500%
    DOP Peso Dominicano 2 500%
    DZD Dinar argelino 2 500%
    EGP Libra egipcia 2 500%
    ERN Nakfa 2 500%
    ETB Birr etíope 2 500%
    EUR Euro 2 500%
    FJD Dólar de Fiji 2 500%
    FKP Libra malvinense 2 500%
    GBP Libra Esterlina 2 500%
    GEL Lari 2 500%
    GHS Cedi de Ghana 2 500%
    GIP Libra de Gibraltar 2 500%
    GMD Dalasi 2 500%
    GNF Franco guineano 0 500%
    GTQ Quetzal 2 500%
    GYD Dólar guyanés 2 500%
    HKD Dolar De Hong Kong 2 500%
    HNL Lempira 2 500%
    HRK Kuna 2 500%
    HTG Gourde 2 500%
    HUF Florín 2 500%
    IDR Rupia 2 500%
    ILS Nuevo Shekel Israelí 2 500%
    INR Rupia india 2 500%
    IQD Dinar iraquí 3 500%
    IRR Rial iraní 2 500%
    ISK Corona islandesa 0 500%
    JMD Dólar Jamaiquino 2 500%
    JOD Dinar jordano 3 500%
    JPY Yen 0 500%
    KES Chelín keniano 2 500%
    KGS Som 2 500%
    KHR Riel 2 500%
    KMF Franco Comoro 0 500%
    KPW Corea del Norte ganó 2 500%
    KRW Won 0 500%
    KWD Dinar kuwaití 3 500%
    KYD Dólar de las Islas Caimán 2 500%
    KZT Tenge 2 500%
    LAK Kip 2 500%
    LBP Libra libanesa 2 500%
    LKR Rupia de Sri Lanka 2 500%
    LRD Dólar liberiano 2 500%
    LSL Loti 2 500%
    LYD Dinar libio 3 500%
    MAD Dirham marroquí 2 500%
    MDL Leu moldavo 2 500%
    MGA Ariary malgache 2 500%
    MKD Denar 2 500%
    MMK Kyat 2 500%
    MNT Tugrik 2 500%
    MOP Pataca 2 500%
    MRO Ouguiya 2 500%
    MUR Rupia de Mauricio 2 500%
    MVR Rupia 2 500%
    MWK Kwacha 2 500%
    MXN Peso Mexicano 2 500%
    MXV México Unidad de Inversión (UDI) 2 500%
    MYR Ringgit malayo 2 500%
    MZN Mozambique Metical 2 500%
    NAD Dólar de Namibia 2 500%
    NGN Naira 2 500%
    NIO Córdoba Oro 2 500%
    NOK Corona noruega 2 500%
    NPR Rupia nepalí 2 500%
    NZD Dólar de Nueva Zelanda 2 500%
    OMR Rial omaní 3 500%
    PAB Balboa 2 500%
    PEN Nuevo Sol 2 500%
    PGK Kina 2 500%
    PHP Peso filipino 2 500%
    PKR Rupia de Pakistán 2 500%
    PLN Zloty 2 500%
    PYG Guaraní 0 500%
    QAR Qatar Rial 2 500%
    RON Leu rumano 2 500%
    RSD Dinar serbio 2 500%
    RUB Rublo ruso 2 500%
    RWF Franco ruandés 0 500%
    SAR Riyal saudí 2 500%
    SBD Dólar de las Islas Salomón 2 500%
    SCR Rupia de Seychelles 2 500%
    SDG Libra sudanesa 2 500%
    SEK Corona sueca 2 500%
    SGD Dolar De Singapur 2 500%
    SHP Libra de Santa Helena 2 500%
    SLL Leona 2 500%
    SOS Chelín somalí 2 500%
    SRD Dólar de Suriname 2 500%
    SSP Libra sudanesa Sur 2 500%
    STD Dobra 2 500%
    SVC Colon El Salvador 2 500%
    SYP Libra Siria 2 500%
    SZL Lilangeni 2 500%
    THB Baht 2 500%
    TJS Somoni 2 500%
    TMT Turkmenistán nuevo manat 2 500%
    TND Dinar tunecino 3 500%
    TOP Pa'anga 2 500%
    TRY Lira turca 2 500%
    TTD Dólar de Trinidad y Tobago 2 500%
    TWD Nuevo dólar de Taiwán 2 500%
    TZS Shilling tanzano 2 500%
    UAH Hryvnia 2 500%
    UGX Shilling de Uganda 0 500%
    USD Dolar americano 2 500%
    USN Dólar estadounidense (día siguiente) 2 500%
    UYI Peso Uruguay en Unidades Indexadas (URUIURUI) 0 500%
    UYU Peso Uruguayo 2 500%
    UZS Uzbekistán Sum 2 500%
    VEF Bolívar 2 500%
    VND Dong 0 500%
    VUV Vatu 0 500%
    WST Tala 2 500%
    XAF Franco CFA BEAC 0 500%
    XAG Plata 0 500%
    XAU Oro 0 500%
    XBA Unidad de Mercados de Bonos Unidad Europea Composite (EURCO) 0 500%
    XBB Unidad Monetaria de Bonos de Mercados Unidad Europea (UEM-6) 0 500%
    XBC Mercados de Bonos Unidad Europea unidad de cuenta a 9 (UCE-9) 0 500%
    XBD Mercados de Bonos Unidad Europea unidad de cuenta a 17 (UCE-17) 0 500%
    XCD Dólar del Caribe Oriental 2 500%
    XDR DEG (Derechos Especiales de Giro) 0 500%
    XOF Franco CFA BCEAO 0 500%
    XPD Paladio 0 500%
    XPF Franco CFP 0 500%
    XPT Platino 0 500%
    XSU Sucre 0 500%
    XTS Códigos reservados específicamente para propósitos de prueba 0 500%
    XUA Unidad ADB de Cuenta 0 500%
    XXX Los códigos asignados para las transacciones en que intervenga ninguna moneda 0 500%
    YER Rial yemení 2 500%
    ZAR Rand 2 500%
    ZMW Kwacha zambiano 2 500%
    ZWL Zimbabwe Dólar 2 500%

    Tipo de Relación

    En éste catálogo se describen las opciones que se pueden utilizar para la etiqueta de tipoRelacion, en la petición se puede incluir el campo de Claveo Clave Texto.

    La opción de Clave Texto es más sencilla ya que indica de manera más clara la opción del catálogo. En caso de utilizar ésta opción, el API de Enlace Fiscal lo traduce de manera automática a la clave del catálogo del SAT para cumplir con las reglas del Anexo 20 de la Resolución Miscelánea Fiscal.

    Catálogo de Tipo de Relación (c_TipoRelacion)

    Clave Tipo Clave Texto
    01 Nota de crédito de los documentos relacionados nota_credito
    02 Nota de débito de los documentos relacionados nota_debito
    03 Devolución de mercancía sobre facturas o traslados previos devolución
    04 Sustitución de los CFDI previos sustitucion
    05 Traslados de mercancias facturados previamente traslado_mercancias
    06 Factura generada por los traslados previos factura_traslados_previos
    07 CFDI por aplicación de anticipo cfdi_aplicacion_anticipo
    08 Factura generada por pagos en parcialidades factura_pagos_parcialidades
    09 Factura generada por pagos diferidos factura_pagos_diferidos

    Uso CFDi

    En éste catálogo se describen las opciones que se pueden utilizar para la etiqueta de usoCfdi, en la petición se puede incluir el campo de Claveo Clave Texto.

    La opción de Clave Texto es más sencilla ya que indica de manera más clara la opción del catálogo. En caso de utilizar ésta opción, el API de Enlace Fiscal lo traduce de manera automática a la clave del catálogo del SAT para cumplir con las reglas del Anexo 20 de la Resolución Miscelánea Fiscal.

    Catálogo Uso de CFDi (c_UsoCFDI)

    Clave Nombre Clave Texto Persona Física Persona Moral
    G01 Adquisición de mercancias adquisicion_mercancias Si Si
    G02 Devoluciones, descuentos o bonificaciones devolucion_desc_bonif Si Si
    G03 Gastos en general gastos Si Si
    I01 Construcciones construcciones Si Si
    I02 Mobilario y equipo de oficina por inversiones mobilario Si Si
    I03 Equipo de transporte equipo_transporte Si Si
    I04 Equipo de computo y accesorios equipo_computo Si Si
    I05 Dados, troqueles, moldes, matrices y herramental herramientas Si Si
    I06 Comunicaciones telefónicas comunicaciones_telefonicas Si Si
    I07 Comunicaciones satelitales comunicaciones_satelitales Si Si
    I08 Otra maquinaria y equipo otra_maquinaria Si Si
    D01 Honorarios médicos, dentales y gastos hospitalarios. gastos_medicos Si No
    D02 Gastos médicos por incapacidad o discapacidad gastos_medicos_incapacidad Si No
    D03 Gastos funerales. gastos_funerales Si No
    D04 Donativos. donativos Si No
    D05 Intereses reales efectivamente pagados por créditos hipotecarios (casa habitación). intereses_hipotecarios Si No
    D06 Aportaciones voluntarias al SAR. aportaciones_sar Si No
    D07 Primas por seguros de gastos médicos. primas_seguro_gastos_medicos Si No
    D08 Gastos de transportación escolar obligatoria. gastos_transportacion_escolar Si No
    D09 Depósitos en cuentas para el ahorro, primas que tengan como base planes de pensiones. depositos_ahorro Si No
    D10 Pagos por servicios educativos (colegiaturas) colegiaturas Si No
    P01 Por definir por_definir Si Si