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.
- {
"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:
- "complementos": [
{
"name": "nombre_del_complemento",
"content": "Base64 de la estructura JSON proporcionada por MYSuite"
}
],
"complementos" a nivel del documento:
- "complementos": [
{
"name": "nombre_del_complemento",
"content": "Base64 de la estructura JSON proporcionada por MYSuite"
}
],
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:
A continuación mostramos cómo debe quedar estructurado su archivo JSON ya con las etiquetas de complementos:
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.