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.

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

  • 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.numOperacion: (opcional) El folio o clave de rastreo del pago cuando se genera por SPEI, en caso de tarjeta o cheque seria el folio del voucher.

    • pagos.bancoOrdenante: (opcional) El nombre del banco en texto libre, como referencia solamente (BBVA o BBVA Bancomer está bien).

    • pagos.cuentaOrdenante: (opcional) La clave de la cuenta que realizó del pago, de donde salió el dinero.

    • pagos.cuentaBeneficiario: (opcional) Como indica el nombre, es la cuenta o CLABE donde se depositó el dinero.

    • 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 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": "P01"
    },
    "pagos": [
        {
            "fecha": "2020-09-02T00:52:15.362Z",
            "formaDePago": "03",
            "monto": 3712,
            "numOperacion": "9999999999999999",
            "bancoOrdenante": "Santander",
            "cuentaOrdenante": "55555550892",
            "cuentaBeneficiario": "0123456278999999999",
            "facturaRelacionada": [
                {
                    "uuid": "...",
                    "importePagado": 1712 
                },
                {
                    "uuid": "...",
                    "importePagado": 2000,
                    "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/3",
                "xmlns:xsi": "http://www.w3.org/2001/XMLSchema-instance",
                "xmlns:pago10": "http://www.sat.gob.mx/Pagos",
                "xsi:schemaLocation": "http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd http://www.sat.gob.mx/Pagos http://www.sat.gob.mx/sitio_internet/cfd/Pagos/Pagos10.xsd",
                "Version": "3.3",
                "Serie": "FESL",
                "Folio": "01-01",
                "TipoDeComprobante": "P",
                "SubTotal": "0",
                "Total": "0",
                // OTROS CAMPOS CFDI NORMALES
            },
            "cfdi:Conceptos": {
                "cfdi:Concepto": [
                    {
                        "@": {
                            "ClaveProdServ": "84111506",
                            "ClaveUnidad": "ACT",
                            "Cantidad": "1",
                            "Descripcion": "Pago",
                            "ValorUnitario": "0",
                            "Importe": "0"
                        }
                    }
                ]
            },
            "cfdi:Complemento": {
                "pago10:Pagos": [
                    {
                        "@": {
                            "Version": "1.0"
                        },
                        "pago10:Pago": {
                            "@": {
                                "FechaPago": "2020-08-28T10:20:33",
                                "FormaDePagoP": "03",
                                "MonedaP": "MXN",
                                "Monto": "3712.00",
                                "NumOperacion": "9999999999999999",
                                "NomBancoOrdExt": "Santander",
                                "CtaOrdenante": "55555550892",
                                "CtaBeneficiario": "0123456278999999999"
                            },
                            "pago10:DoctoRelacionado": [
                                {
                                    "@": {
                                        "IdDocumento": "...",
                                        "MetodoDePagoDR": "PPD",
                                        "NumParcialidad": "1",
                                        "MonedaDR": "MXN",
                                        "ImpSaldoAnt": "4212.00",
                                        "ImpPagado": "1712.00",
                                        "ImpSaldoInsoluto": "2500.00",
                                        "Serie": "A",
                                        "Folio": "01"
                                    }
                                },
                                {
                                    "@": {
                                        "IdDocumento": "...",
                                        "MetodoDePagoDR": "PPD",
                                        "NumParcialidad": "2",
                                        "MonedaDR": "MXN",
                                        "ImpSaldoAnt": "3000.00",
                                        "ImpPagado": "2000.00",
                                        "ImpSaldoInsoluto": "1000.00",
                                        "Serie": "A",
                                        "Folio": "01"
                                    }
                                }
                            ]
                        }
                    }
                ]
            }
        },
        "xml":"...",
        "authToken": "...",
        "status": false,
        "sandbox": false
    }
]