Complemento de pago

El complemento de pago es solo una factura normal con algunos campos menos y los campos de pago adicionales. El cambio mas notorio entre una factura normal y un complemento de pago es El total de la factura siempre es $0.
Sin embargo, nosotros solo requerimos los conceptos de pago,los demás campos se generan automáticamente.

Si estas cambiando CFDI 3.3 a 4.0 solamente hay dos campos de receptor que debes agregar marcados en azul a continuación. El complemento de pago 2.0 (para CFDO 4.0) ya no requiere datos bancarios y es mas sencillo de emitir.

Los complementos de pago Siempre se deben emitir contra una factura que tenga metodo de pago PPD y forma de pago 99. La ruta para emitir un complemento de pago es diferente de las factuas normales.

POST: https://api.fiscalpop.com/api/v1/cfdi/payment/:authToken

Campos del Request

  • lugarExpedicion:Código postal del emisor de la factura, este campo sobrescribe el valor del perfil del cliente.

  • serie: Serie de la factura de complemento de pago.

  • folio: Folio de la factura de complemento de pago, igual que las facturas normales.

  • receptor: Un solo objeto que representa al receptor con las siguientes características.

    • receptor.nombre: Razón social del receptor de la factura.

    • receptor.rfc: RFC del receptor de la factura (Ejemplo muestra RFC de venta a mostrador).

    • receptor.usoCFDI: Clave del uso de lafactura. Consultar catálogo SAT

    • receptor.regimen: (CFDI 4.0) Clave del Régimen del receptor. Consultar catálogo SAT

    • receptor.zip: (CFDI 4.0) Código postal del Receptor, en caso de RFC genérico se usa el Lugar de Expedición del Emisor Debe ser un String de 5 carácteres numéricos

  • pagos[ ]: Un array de complementos de pago.

    • pagos.fecha: Fecha cuando se realizó el pago, tal como dice el comprobante de pago o voucher si fue transferencia o tarjeta.

    • pagos.formaDePago: Forma de pago aplicable, '01' | '02' | '03', etc

    • pagos.monto: El monto total del pago, ya que se puede generar un solo pago que cubra una o más facturas, aqui se declara el total pagado.

    • pagos.facturaRelacionada [ ]: Un array de Facturas relacionadas, cuando hay mas de una factura relacionada (se paga dos facturas o mas) se debe especificar el monto.
      Cuando solamente hay una factura relacionada (Array de un solo elemento) no es necesario especificar el monto.

      • pagos.facturaRelacionada.uuid: El UUID que se está relacionando en el complemento de pago.

      • pagos.facturaRelacionada.importePagado: (Solo al usar mas de 1 factura relacionada) De el monto total, cuanto es de esta factura.

      • pagos.facturaRelacionada.numParcialidad: (opcional) ¿Que parcialidad es? este es un campo completamente opcional, nosotros aplicamos el numero de parcialidad automático considerando los demas complementos de pago que se han generado para aplicar una secuencia.
        Hay pocas razones para declarar numParcialidad, pero si hubo un problema en la secuencia de la facturación, podría mandarse para reemplazar la secuencia que tenemos nosotros.

Campos de la Respuesta

  • uuid: El ID de la factura, la clave unica para identificar un CFDI.

  • created: Cuando fue creada la factura, indistinto de la fecha de la factura

  • json: Representación del XML en JSON, en el caso de complementos de pago, contiene información importante para obtener el estado de pago de las facturas

    • json.["cfdi:Complemento"]["pago10:Pagos"]["pago10:Pago"]["pago10:DoctoRelacionado"]["@"].NumParcialidad: El numero de parcialidad secuencial, automáticamente va incrementando según se entreguen pagos.

    • json.["cfdi:Complemento"]["pago10:Pagos"]["pago10:Pago"]["pago10:DoctoRelacionado"]["@"].ImpSaldoAnt: El saldo anterior, saldo pendiente antes de realizar el pago.

    • json.["cfdi:Complemento"]["pago10:Pagos"]["pago10:Pago"]["pago10:DoctoRelacionado"]["@"].ImpPagado: El monto pagado para este documento, como se estableció en el request.

    • json.["cfdi:Complemento"]["pago10:Pagos"]["pago10:Pago"]["pago10:DoctoRelacionado"]["@"].ImpSaldoInsoluto: Saldo pendiente por loquidar después del pago, la factura no se habrá saldado hasta que llegue a $0.

  • xml: El string del XML de la factura, el cual es el CFDI en si.

  • authToken: El token del cliente emisor, usado para relacionar facturas con su emisor.

  • status: true | false True significa que la factura está vigente, false cuando la factura está cancelada.

  • sandbox: true | false Si la factura fué generada por cliente de prueba o producción, false es de producción, true es una factura de prueba.

Un concepto importante, Los pagos no manejan impuestos, por lo que se considera que el pago incluye impuestos.

CFDI Emitir

JSON

Cuerpo del request

(application/json)


{
    "lugarExpedicion": "48290",
    "serie": "FESL",
    "folio": "01-01",
    "receptor": {
        "nombre": "EMPRESA SOCIEDAD LIMITADA",
        "rfc": "EMP880708J21",
        "usoCFDI": "S01",
        "regimen": "601",       // COMPLEMENTO PAGO 2.0
        "zip": "20928"          // COMPLEMENTO PAGO 2.0
    },
    "pagos": [
        {
            "fecha": "2020-09-02T00:52:15.362Z",
            "formaDePago": "03",
            "monto": 1237,
            "facturaRelacionada": [
                {
                    "uuid": "...",
                    "importePagado": 1237,
                    "numParcialidad": 2 
                }
            ]
        }
    ]
}

Respuesta correcta


[
    {
        "created": "2018-09-07T17:54:26.150Z",
        "uuid": "3407BE43-651B-45B2-A721-D41295ED587B",
        "json": {
            "@": {
                "xmlns:cfdi": "http://www.sat.gob.mx/cfd/4",
                "xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
                "xsi:schemaLocation": "http://www.sat.gob.mx/cfd/4 http://www.sat.gob.mx/sitio_internet/cfd/4/cfdv40.xsd http://www.sat.gob.mx/Pagos20 http://www.sat.gob.mx/sitio_internet/cfd/Pagos/Pagos20.xsd",
                "Version": "4.0",
                "Serie": "PAGO",
                "Folio": "02-21",
                "Fecha": "2022-05-03T23:06:34",
                "TipoDeComprobante": "P",
                "LugarExpedicion": "48290",
                "SubTotal": "0",
                "Total": "0",
                "Moneda": "XXX",
                "Sello": "Of1DjUGZyfyZEnjBsgrcN32pbdSzdaEG94AjmQOHYYdEUvijRZTljMwXE9FpR+k4eunngfv2S2jQcltDxgtKlK9MjKj/5JaLH8clGLGl1rcElPbHMwqGZUVoJcxaSIsghpgI9WkgZ+ZQTUbNtdIuzCrALzu6kjjD9AGpwJ3OdP11mslp3fAmGl5t/WtA0smJVGU+F4UFZT80fbggrxcKbyiSGF5fPzB+daqRy/AhrPbgkfT73RPzPNJvH30biBLnyWJYM0b0g3SoVKy9tDZsWb+0p1M1Nu3yYwcIh5KE/KzkJE7UWCdl5DmPMm2P+TJx+UHE4W157ZxLTp6T6Ls+lQ==",
                "Certificado": "MIIF0jCCA7qgAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDI0MzgwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNjE3MjAwNDEyWhcNMjMwNjE3MjAwNDEyWjCB+TEpMCcGA1UEAxMgSU5OT1ZBQ0lPTiBWQUxPUiBZIERFU0FSUk9MTE8gU0ExKTAnBgNVBCkTIElOTk9WQUNJT04gVkFMT1IgWSBERVNBUlJPTExPIFNBMSkwJwYDVQQKEyBJTk5PVkFDSU9OIFZBTE9SIFkgREVTQVJST0xMTyBTQTElMCMGA1UELRMcSVZEOTIwODEwR1UyIC8gS0FITzY0MTEwMUIzOTEeMBwGA1UEBRMVIC8gS0FITzY0MTEwMUhOVExLUzA2MS8wLQYDVQQLFCZJTk5PVkFDSdNOIFZBTE9SIFkgREVTQVJST0xMTyBTQSBERSBDVjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAIKn3U4zMIEGfAICsDCSD4EQwQbabWJOdQpXdnAeCqwIH/vAbnv4t7Rc1NFMJg2OeCK5L6g+Pj/DlWftOeqRo8KIzW04xtq6rWSxXXuhGDm9hdRF15JEoxJnpDmkqKLEpbLJqZ4mOdKOHdmEdQ4O3dd0njeNGdjhU5+Vl4J9rHVjA4BoJpsP75BQeIwDdFIVxcb60sKna0mG58lMq5tNK6CtozeyrC94IED9GARG0gKuXlswTrWrI1N3/VOI7jjZY6YeIeO5jcbXrCiqGxGduJrGHqyrxGPTIXlZ7iW8zMT1G8QRF5rWutg4+MysIsjrcFrexbP5TMaRBYyASeBd94kCAwEAAaMdMBswDAYDVR0TAQH/BAIwADALBgNVHQ8EBAMCBsAwDQYJKoZIhvcNAQELBQADggIBAJVqgdQ+NOSIBKbWBBSARmX5C0wiq0BfRz4Ub7dVGguHoPAB4dJAtL540b3Klid90EwtNSCCFSc9OPQ0mWVRkCz0OtceLKAXzKqzVOcXrxmydlbT0brNBkULDV54Gdup1B42mmCh0hoRaNvr0QkJnKEMTmHt3m47xnV9XfOeUcSDciCTMV4wRns3JdCr7g0PMyWpV5yRLJNr8w9YCm6YesSqCJLZIvWbFGRuDhHfgsyImtMuTNbclbI7XFue2B4awi3a9H8yfgf33bGgeLhVCAbILd63LQv67zGdt3H8s2Xe4umQmh+9gyJG4fmbZmUd3wFl/fY9kmdTxZfufqPbdyV/G7g0Hq3mmzS1TuRG2Hj+y4lVzLOV6RXJjIQ+Qp+5ePKl4d/oeAIsTzmWsZc0c+yJ1MMbCn6CHTlNvdwROOhpanNjEHJ2kLwh5nhoVSRbRF/owuBreO5FbJKZE+L+8mzYEIhKUiD03WW03BOPCCQFFvBFC0AoN7wS0zFm1g2gNV95pgZwp1LsqlwBSAVF9SS/MKiE7Mv0UryWEBYllo66XY8VMFzZYAjSuEudoK3xSsCdjaA/Wjx85/3RCEV3J7LO5m6mwYgrQIaTwuYWuCTUE8XKxj7cjNo1UF6LbL77nzbYmS3sUXE4Jly8xxOYsyDX8B+8TNW++g1mB3bt+OHv",
                "NoCertificado": "30001000000400002438",
                "Exportacion": "01",
                "xmlns:pago20": "http://www.sat.gob.mx/Pagos20"
            },
            "cfdi:Emisor": {
                "@": {
                    "Nombre": "INNOVACION VALOR Y DESARROLLO",
                    "Rfc": "IVD920810GU2",
                    "RegimenFiscal": "601"
                }
            },
            "cfdi:Receptor": {
                "@": {
                    "Nombre": "EMPRESA SOCIEDAD LIMITADA",
                    "Rfc": "EMP880708J21",
                    "UsoCFDI": "CP01",
                    "DomicilioFiscalReceptor": "20928",
                    "RegimenFiscalReceptor": "601"
                }
            },
            "cfdi:Conceptos": {
                "cfdi:Concepto": [
                    {
                        "@": {
                            "ClaveProdServ": "84111506",
                            "ClaveUnidad": "ACT",
                            "Cantidad": "1",
                            "Descripcion": "Pago",
                            "ValorUnitario": "0",
                            "Importe": "0",
                            "ObjetoImp": "01"
                        }
                    }
                ]
            },
            "cfdi:Complemento": {
                "pago20:Pagos": {
                    "@": {
                        "Version": "2.0"
                    },
                    "pago20:Totales": {
                        "@": {
                            "MontoTotalPagos": "1237.74",
                            "TotalRetencionesIVA": "125.34",
                            "TotalTrasladosBaseIVA16": "1175.07",
                            "TotalTrasladosImpuestoIVA16": "188.01"
                        }
                    },
                    "pago20:Pago": [
                        {
                            "@": {
                                "FechaPago": "2022-05-03T23:06:34",
                                "FormaDePagoP": "03",
                                "MonedaP": "MXN",
                                "Monto": "1237.74",
                                "TipoCambioP": "1"
                            },
                            "pago20:DoctoRelacionado": [
                                {
                                    "@": {
                                        "Serie": "A",
                                        "Folio": "01",
                                        "IdDocumento": "48928C7D-0A94-5F1F-89BE-722B5C6E3081",
                                        "NumParcialidad": "3",
                                        "MonedaDR": "MXN",
                                        "ImpSaldoAnt": "1237.74",
                                        "ImpPagado": "1237.74",
                                        "ImpSaldoInsoluto": "0.00",
                                        "ObjetoImpDR": "02",
                                        "EquivalenciaDR": "1"
                                    },
                                    "pago20:ImpuestosDR": {
                                        "pago20:RetencionesDR": {
                                            "pago20:RetencionDR": [
                                                {
                                                    "@": {
                                                        "BaseDR": "1175.07",
                                                        "ImporteDR": "125.34",
                                                        "ImpuestoDR": "002",
                                                        "TasaOCuotaDR": "0.106667",
                                                        "TipoFactorDR": "Tasa"
                                                    }
                                                }
                                            ]
                                        },
                                        "pago20:TrasladosDR": {
                                            "pago20:TrasladoDR": [
                                                {
                                                    "@": {
                                                        "BaseDR": "1175.07",
                                                        "ImporteDR": "188.01",
                                                        "ImpuestoDR": "002",
                                                        "TasaOCuotaDR": "0.160000",
                                                        "TipoFactorDR": "Tasa"
                                                    }
                                                }
                                            ]
                                        }
                                    }
                                }
                            ],
                            "pago20:ImpuestosP": {
                                "pago20:RetencionesP": {
                                    "pago20:RetencionP": [
                                        {
                                            "@": {
                                                "ImporteP": "125.34",
                                                "ImpuestoP": "002"
                                            }
                                        }
                                    ]
                                },
                                "pago20:TrasladosP": {
                                    "pago20:TrasladoP": [
                                        {
                                            "@": {
                                                "BaseP": "1175.07",
                                                "ImporteP": "188.01",
                                                "ImpuestoP": "002",
                                                "TasaOCuotaP": "0.160000",
                                                "TipoFactorP": "Tasa"
                                            }
                                        }
                                    ]
                                }
                            }
                        }
                    ]
                }
            }
        },
        "xml":"...",
        "authToken": "...",
        "status": false,
        "sandbox": false
    }
]