Payments

Apply payments to invoices.


Individual payments applied to invoices.

Dependencies: Requires both Vouchers AND Invoices to be uploaded first.

⚠️ Important: When uploading payments for a voucher, you must include ALL payments associated with that voucher in the same file. Partial updates are not supported.

Endpoint

POST /full-csv-integration/upload-payments

  • Form Field: paymentsFile

Required Fields

FieldTypeDescriptionValidations
erp_voucher_idStringVoucher ID in ERPCannot be empty. Must exist in Vouchers. A voucher’s payments are replaced in full on every upload
erp_invoice_idStringInvoice ID in ERPCannot be empty. Must exist in Invoices — see below
amountFloatPayment amountDecimal number greater than 0
currencyStringPayment currencyCannot be empty. Stored as given — it is not compared against the invoice currency
payment_methodStringPayment methodMandatory and non-empty. Free text — see below

Optional Fields

FieldTypeDescriptionDefault
erp_cost_center_idStringCost center for paymentnull

Repeated rows and dropped rows

  • This file does not deduplicate: the same payment repeated in two rows creates two payments.
  • Rows whose invoice or voucher does not exist are dropped while the file is processed, and this is not reflected in the response, which had already confirmed the upload.

Payment Method

payment_method is free text. It is trimmed and stored on the payment exactly as you send it — there is no enum and no validation, so any non-empty value is accepted and preserved.

A normalisation to a fixed set applies in one place only: when an invoice has an active payment agreement, the system also generates a suggested payment, and that record stores a normalised method. This does not change what your payment record holds.

Normalised valueInputs mapped to it
cashcash, efectivo, dinero en efectivo
bank_transferbank_transfer, transfer, transferencia, transferencia bancaria, wire
checkcheck, cheque
credit_cardcredit_card, credit, tarjeta de credito, tarjeta crédito
debit_carddebit_card, debit, tarjeta de debito, tarjeta débito
otherAny other value, including an empty one

Matching is case-insensitive. Note card is not in the table, so a suggested payment would record it as other — your payment itself still stores card.

Example CSV

erp_voucher_id,erp_invoice_id,amount,currency,payment_method,erp_cost_center_id
VCH001,INV001,500000.00,COP,transfer,CC001
VCH002,INV002,500000.00,COP,cash,CC002
VCH003,INV001,300000.00,COP,check,CC001