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
| Field | Type | Description | Validations |
|---|---|---|---|
erp_voucher_id | String | Voucher ID in ERP | Cannot be empty. Must exist in Vouchers. A voucher’s payments are replaced in full on every upload |
erp_invoice_id | String | Invoice ID in ERP | Cannot be empty. Must exist in Invoices — see below |
amount | Float | Payment amount | Decimal number greater than 0 |
currency | String | Payment currency | Cannot be empty. Stored as given — it is not compared against the invoice currency |
payment_method | String | Payment method | Mandatory and non-empty. Free text — see below |
Optional Fields
| Field | Type | Description | Default |
|---|---|---|---|
erp_cost_center_id | String | Cost center for payment | null |
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 value | Inputs mapped to it |
|---|---|
cash | cash, efectivo, dinero en efectivo |
bank_transfer | bank_transfer, transfer, transferencia, transferencia bancaria, wire |
check | check, cheque |
credit_card | credit_card, credit, tarjeta de credito, tarjeta crédito |
debit_card | debit_card, debit, tarjeta de debito, tarjeta débito |
other | Any 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