JSON con Complementos

JSON con Complementos

A continuación te explicaremos cómo debes construir el archivo JSON cuando necesites hacer uso de un complemento fiscal.

Teniendo como base la estructura principal de un archivo JSON para la emisión de un CFDI simple, debemos identificar a nivel de concepto y a nivel del documento las etiquetas llamadas "complementos", en este ejemplo se encontrarán sombreadas en color amarillo.

  1. {
      "origen": "4",
      "doctype": "PAGO",
      "numero_interno": "",
      "nota_comprobante_cabecera": "T.C. Fecha de pago: 19.0878 ",
      "nota_comprobante_pie": "",
      "usuario": "usuario del ERP",
      "emisor": {
        "rfc": "JES900109Q90",
        "razon_social": "Solvmex S.A.",
        "direccion_fiscal": {
          "calle": "Calle San Juan ",
          "num_exterior": "12",
          "num_interior": "",
          "colonia": "Fracc. Ind. La Presa",
          "municipio": "San Juan Ixhuatepec",
          "estado": "Estado de México",
          "pais": "México",
          "codigo_postal": "54180",
          "localidad": "",
          "referencia": ""
        },
        "regimen_fiscal": "601",
        "lugar_expedicion": "54180",
        "correo": "",
        "cuenta_pago": "",
        "confirmacion": "",
        "sucursal": "ABB"
      },
      "receptor": {
        "rfc": "RFC RECEPTOR",
        "razon_social": "RAZÓN SOCIAL RECEPTOR",
        "rfc_extranjero": "",
        "residencia_fiscal": "",
        "correo": "",
        "direccion_fiscal": {
          "calle": "TENERIFE ",
          "num_exterior": "MANZANA 1",
          "num_interior": "LOTE 17 SIN NUMERO",
          "colonia": "EJIDOS DE TULPETLAC",
          "municipio": "ECATEPEC",
          "estado": "ESTADO DE MEXICO",
          "pais": "MEXICO",
          "codigo_postal": "55400",
          "localidad": "",
          "referencia": ""
        },
        "uso_cfdi": "P01"
      },
      "conceptos": [
        {
          "UUID": "",
          "ID": 0,
          "Description": "Pago",
          "ListPrice": "0",
          "Discount": "0",
          "Unit": "",
          "ClaveProdServ": "84111506",
          "ClaveUnidad": "ACT",
          "InfoAduanera": "",
          "CuentaPredial": "",
          "Qty": "1",
          "Amount": "0",
          "Identificacion": "",
          "complementos": null,
          "addendas": null,
          "Taxes": null,
          "Partes": null,
          "Descripcion_Ampliada": ""
        }
      ],
      "totales": {
        "total": "0",
        "subtotal": "0",
        "descuento": "0.00",
        "moneda": "XXX|0",
        "factor_cambio": "",
        "impuestos_trasladados": "0",
        "impuestos_retenidos": "0"
      },
      "fecha_emision": "",
      "serie": "A",
      "folio": "1",
      "metodo_pago": "",
      "forma_pago": "",
      "confirmacion": "",
      "condiciones_pago": "",
      "cfdi_relacionados": null,
      "complementos": null,
      "addendas": null
    }

Ya que las haya identificado, ahora debe agregar en estas mismas la siguiente información:

"complementos" a nivel de concepto:
  1. "complementos": [
        {
          "name": "nombre_del_complemento",
          "content": "Base64 de la estructura JSON proporcionada por MYSuite"
        }
      ],

"complementos" a nivel del documento:
  1. "complementos": [
        {
          "name": "nombre_del_complemento",
          "content": "Base64 de la estructura JSON proporcionada por MYSuite"
        }
      ],

Dependiendo del tipo de complemento, considere que algunos son a nivel de concepto y algunos son a nivel de comprobante, teniendo esto en cuenta, ejemplificaremos el complemento de pago, el cual es a nivel de documento (o comprobante).

Para saber qué debe expresar en cada etiqueta, le mostramos a continuación lo que se solicita en la estructura de JSON a nivel del documento para un ejemplo del complemento de pago y que debe estar codificado en Base64:
  1. [
      {
        "UUID": "",
        "FechaPago": "2020-02-26  12:00:00",
        "FormaDePagoP": "03",
        "MonedaP": "MXN|2",
        "MonedaPDesc": "Peso Mexicano",
        "TipoCambioP": "",
        "Monto": "29924.26",
        "NumOperacion": "1",
        "RfcEmisorCtaOrd": "",
        "NomBancoOrdExt": "",
        "CtaOrdenante": "",
        "RfcEmisorCtaBen": "",
        "CtaBeneficiario": "",
        "TipoCadPago": "",
        "CertPago": "",
        "CadPago": "",
        "SelloPago": "",
        "Documentos": [
          {
            "UUID": "574c8916-09ce-4f63-b6c8-6485662b401f",
            "IdDocumento": "574c8916-09ce-4f63-b6c8-6485662b401f",
            "Serie": "F",
            "Folio": "145137 PAC: 38277",
            "MonedaDR": "USD",
            "TipoCambioDR": 0.0551,
            "MetodoDePagoDR": "PPD",
            "NumParcialidad": "1",
            "ImpSaldoAnt": "589.51",
            "ImpPagado": "589.51",
            "ImpSaldoInsoluto": "0.00"
          },
          {
            "UUID": "5e947134-cee7-4a34-a8a3-0628af82c529",
            "IdDocumento": "5e947134-cee7-4a34-a8a3-0628af82c529",
            "Serie": "F",
            "Folio": "145146 PAC: 38285",
            "MonedaDR": "USD",
            "TipoCambioDR": 0.0551,
            "MetodoDePagoDR": "PPD",
            "NumParcialidad": "1",
            "ImpSaldoAnt": "1064.88",
            "ImpPagado": "1064.88",
            "ImpSaldoInsoluto": "0.00"
          }
        ]
      }
    ]

A continuación mostramos cómo debe quedar estructurado su archivo JSON ya con las etiquetas de complementos:
  1. {
      "origen": "4",
      "doctype": "PAGO",
      "numero_interno": "",
      "nota_comprobante_cabecera": "T.C. Fecha de pago: 19.0878 ",
      "nota_comprobante_pie": "",
      "usuario": "usuario del ERP",
      "emisor": {
        "rfc": "JES900109Q90",
        "razon_social": "Solvmex S.A.",
        "direccion_fiscal": {
          "calle": "Calle San Juan ",
          "num_exterior": "12",
          "num_interior": "",
          "colonia": "Fracc. Ind. La Presa",
          "municipio": "San Juan Ixhuatepec",
          "estado": "Estado de México",
          "pais": "México",
          "codigo_postal": "54180",
          "localidad": "",
          "referencia": ""
        },
        "regimen_fiscal": "601",
        "lugar_expedicion": "54180",
        "correo": "",
        "cuenta_pago": "",
        "confirmacion": "",
        "sucursal": "ABB"
      },
      "receptor": {
        "rfc": "RFC DE RECEPTOR",
        "razon_social": "RAZÓN SOCIAL DE RECEPTOR",
        "rfc_extranjero": "",
        "residencia_fiscal": "",
        "correo": "",
        "direccion_fiscal": {
          "calle": "TENERIFE ",
          "num_exterior": "MANZANA 1",
          "num_interior": "LOTE 17 SIN NUMERO",
          "colonia": "EJIDOS DE TULPETLAC",
          "municipio": "ECATEPEC",
          "estado": "ESTADO DE MEXICO",
          "pais": "MEXICO",
          "codigo_postal": "55400",
          "localidad": "",
          "referencia": ""
        },
        "uso_cfdi": "P01"
      },
      "conceptos": [
        {
          "UUID": "",
          "ID": 0,
          "Description": "Pago",
          "ListPrice": "0",
          "Discount": "0",
          "Unit": "",
          "ClaveProdServ": "84111506",
          "ClaveUnidad": "ACT",
          "InfoAduanera": "",
          "CuentaPredial": "",
          "Qty": "1",
          "Amount": "0",
          "Identificacion": "",
          "complementos": null,
          "addendas": null,
          "Taxes": null,
          "Partes": null,
          "Descripcion_Ampliada": ""
        }
      ],
      "totales": {
        "total": "0",
        "subtotal": "0",
        "descuento": "0.00",
        "moneda": "XXX|0",
        "factor_cambio": "",
        "impuestos_trasladados": "0",
        "impuestos_retenidos": "0"
      },
      "fecha_emision": "",
      "serie": "A",
      "folio": "1",
      "metodo_pago": "",
      "forma_pago": "",
      "confirmacion": "",
      "condiciones_pago": "",
      "cfdi_relacionados": null,
      "complementos": [
        {
          "name": "pagos",
          "content": "Base64 de la estructura JSON proporcionada por MYSuite"
        }
      ],

      "addendas": null
    }

No todos los complementos llevan estructura a nivel de concepto, en caso de que se encuentre con alguna así, sólo debe expresar a nivel del documento la estructura del complemento y dejar con valor null la etiqueta a nivel de concepto:
"complementos": null,
En caso de que el complemento sea a nivel de concepto, debe hacer el paso anterior de manera inversa, esto es, llenar la etiqueta "complementos": a nivel de concepto y dejar en null la etiqueta "complementos" a nivel del documento.

Los complementos fiscales deben adicionarse al json nativo que regularmente conforman desde su sistema, es importante considerar para su llenado la información que la autoridad fiscal publica, en el siguiente enlace encontrará todos los complementos fiscales vigentes y no vigentes:
 
 
Cada enlace del complemento los dirigirá a una sección principal, para descargar documentación (guías de llenado, catálogos, etc.), debe dirigirse y presionar el botón “Iniciar”.

 

Ejemplo:





Se recomienda ampliamente que, para integrar los complementos fiscales en su sistema, sean consideradas las matrices de error de cada uno de los complementos a utilizar, esto permite diseñar de mejor manera el módulo de facturación en su sistema y evitar que en la generación/certificación del CFDI se tengan notificaciones de error respecto a las reglas de validación aplicadas.

A continuación se adjuntan todos las complementos fiscales que actualmente tenemos en el servicio EndPoint.

En caso de no encontrar alguno, por favor indíquelo a través de un ticket en el siguiente enlace:

http://mysuitemex.com/banner/formulario/formato_casos.html



    • Related Articles

    • JSON con Complementos

      A continuación te explicaremos cómo debes construir el archivo JSON cuando necesites hacer uso de un complemento fiscal. Teniendo como base la estructura principal de un archivo JSON para la emisión de un CFDI simple, debemos identificar a nivel de ...
    • JSON con Addenda

      A continuación te explicaremos cómo debes construir el archivo JSON cuando necesites hacer uso de una addenda comercial. Teniendo como base la estructura principal de un archivo JSON para la emisión de un CFDI simple, debemos identificar a nivel de ...
    • JSON con Addenda

      A continuación te explicaremos cómo debes construir el archivo JSON cuando necesites hacer uso de una addenda comercial. Teniendo como base la estructura principal de un archivo JSON para la emisión de un CFDI simple, debemos identificar a nivel de ...
    • INTEGRACIÓN DE COMPLEMENTOS FISCALES

      En MYSuite tenemos todos los complementos fiscales que los contribuyentes necesitan para sus operaciones, integrarlos en sus sistemas ERP’s y/o soluciones administrativas es muy sencillo. Contamos con un esquema XSD que rige la correcta construcción ...
    • INTEGRACIÓN DE COMPLEMENTOS FISCALES

      En MYSuite tenemos todos los complementos fiscales que los contribuyentes necesitan para sus operaciones, integrarlos en sus sistemas ERP’s y/o soluciones administrativas es muy sencillo. Contamos con un esquema XSD que rige la correcta construcción ...