Facturas
Administra facturas de cuentas por cobrar.
Facturas de cuentas por cobrar emitidas a clientes.
Dependencia: Requiere cargar Clientes primero.
Endpoint
POST /full-csv-integration/upload-invoices
- Campo de Formulario:
invoicesFile
Campos Requeridos
| Campo | Tipo | Descripción | Validaciones |
|---|---|---|---|
erp_customer_id | String | ID del cliente en ERP | Debe existir en Clientes. Las filas cuyo cliente no exista se descartan en silencio y la carga se reporta igualmente como exitosa |
erp_invoice_id | String | ID de la factura en ERP | La columna debe estar presente |
currency | String | Código de moneda | ej., COP, USD, EUR. La columna debe estar presente |
original_amount | Float | Monto original de la factura | Número decimal |
pending_amount | Float | Monto pendiente | Número decimal |
status | String | Estado de la factura | OPEN (Abierta) o CLOSED (Cerrada), en mayúsculas — open y closed son rechazados |
issue_date | Date | Fecha de emisión de la factura | Se recomienda YYYY-MM-DD. Se aceptan otros formatos y las fechas que no se puedan interpretar se guardan vacías en lugar de generar error |
due_date | Date | Fecha de vencimiento del pago | Se recomienda YYYY-MM-DD. Se aceptan otros formatos y las fechas que no se puedan interpretar se guardan vacías en lugar de generar error |
Campos Opcionales
| Campo | Tipo | Descripción | Validaciones | Por Defecto |
|---|---|---|---|---|
advance_amount | Float | Pago anticipado aplicado | Número decimal. Si se omite o va vacío se guarda como 0.00 | 0.00 |
allow_collection | Boolean | Permitir cobro | 1 o 0. El valor por defecto solo aplica al crear la factura; una celda vacía se interpreta como 0, y en actualizaciones se conserva el valor existente | 1 |
invoice_url | String | URL al documento de la factura | - | null |
cost_center_1_erp_id | String | ID del centro de costo 1 | Debe proporcionar el _pct correspondiente | null |
cost_center_1_pct | Float | Porcentaje del centro de costo 1 | Solo se registran los valores mayores a 0 | null |
cost_center_2_erp_id | String | ID del centro de costo 2 | Debe proporcionar el _pct correspondiente | null |
cost_center_2_pct | Float | Porcentaje del centro de costo 2 | Solo se registran los valores mayores a 0 | null |
cost_center_3_erp_id | String | ID del centro de costo 3 | Debe proporcionar el _pct correspondiente | null |
cost_center_3_pct | Float | Porcentaje del centro de costo 3 | Solo se registran los valores mayores a 0 | null |
cost_center_4_erp_id | String | ID del centro de costo 4 | Debe proporcionar el _pct correspondiente | null |
cost_center_4_pct | Float | Porcentaje del centro de costo 4 | Solo se registran los valores mayores a 0 | null |
cost_center_5_erp_id | String | ID del centro de costo 5 | Debe proporcionar el _pct correspondiente | null |
cost_center_5_pct | Float | Porcentaje del centro de costo 5 | Solo se registran los valores mayores a 0 | null |
Distribución por centros de costo
Se aceptan hasta 5 pares de centros de costo. Para cada par i:
- Si envías
cost_center_i_erp_idocost_center_i_pct, debes enviar ambas columnas; de lo contrario la carga falla. - Solo las filas con un porcentaje mayor a 0 generan una distribución.
- Los porcentajes no se validan: no es necesario que sumen 100 y los valores por encima de 100 no se rechazan.
cost_center_i_erp_idse guarda tal cual — no se verifica que exista en Centros de Costo.- Las distribuciones se reemplazan por factura en cada carga: envía juntos todos los centros de costo de una factura.
Ejemplo CSV
erp_customer_id,erp_invoice_id,currency,original_amount,pending_amount,status,issue_date,due_date,advance_amount,allow_collection,cost_center_1_erp_id,cost_center_1_pct,cost_center_2_erp_id,cost_center_2_pct
CUST001,INV001,COP,1000000.00,500000.00,OPEN,2024-01-15,2024-02-15,0.00,1,CC001,60.0,CC002,40.0
CUST002,INV002,COP,500000.00,0.00,CLOSED,2024-01-20,2024-02-20,0.00,1,CC001,100.0,,