Facturas de compra
Facturas de proveedores, cuotas y detalle de mercadería.
invoicesModelo y significado
La cabecera contiene el importe total. lines identifica cantidades y productos, pero no registra precio unitario, IVA, neto gravado, descuentos ni subtotal por renglón. Una factura histórica puede no tener líneas.
Su identidad fiscal se compara por CUIT del emisor (si está disponible), tipo normalizado y número normalizado; también por proveedor, tipo y número. El valor original no cambia. expenseId vincula el gasto equivalente para evitar duplicar la obligación.
En listas y detalle, paid, balance, overdueAmount, nextDueDate, status y los indicadores de respaldos son derivados. paid puede incluir pagos y créditos aplicados: no interpretarlo automáticamente como efectivo desembolsado. La conciliación financiera y la recepción son estados independientes.
Consulta del recurso
GET https://finanzas.neavision.com.ar/api/v1/agent/invoices
Authorization: Bearer <token-de-integracion>Requiere invoices:read. Respuesta de lista: { data: [...], page: { total, nextCursor } }. El detalle se consulta con /invoices/{id}. Ver paginación y filtros.
Ejemplo estructurado
{
"id": "20000000-0000-4000-8000-000000000001",
"version": 1,
"createdAt": "2026-10-01T12:00:00Z",
"updatedAt": "2026-10-01T12:00:00Z",
"voidedAt": null,
"supplierId": "10000000-0000-4000-8000-000000000001",
"number": "00001-00000042",
"invoiceType": "A",
"issueDate": "2026-10-01",
"dueDate": "2026-10-31",
"amount": "100000.00",
"currency": "ARS",
"concept": "Compra de armazones",
"category": "Mercadería",
"reconciliationStatus": "confirmed",
"receivingRequired": true,
"lines": [
{
"id": "linea-1",
"kind": "goods",
"productId": "30000000-0000-4000-8000-000000000001",
"description": "Armazón modelo ejemplo",
"quantity": "10",
"unit": "unidad",
"supplierCode": "ARM-001"
}
]
}Diccionario de campos
Obligatorio / Opcional: campos del registro de negocio; dentro de una lista u objeto, se aplica cuando ese contenedor está presente. Servidor: identidad y auditoría. Respuesta: campos agregados o administrados por el servidor; no enviarlos como una edición ordinaria. La presencia de los calculados depende del endpoint.
| Campo | Tipo / valores | Condición | Significado y restricciones |
|---|---|---|---|
receivingRequired | boolean | Opcional | Indica mercadería pendiente de detallar; no implica recepción física. |
lines | array | Opcional | Detalle embebido; no existe una tabla independiente de líneas. Máx. 500 elementos. |
lines[].id | string | Obligatorio | Identificador textual estable dentro de la lista de líneas, cuotas o anticipos; no es un UUID global. Máx. 1000 caracteres. |
lines[].kind | "goods" | "charge" | Opcional | Clasificación del registro; los valores permitidos dependen del recurso. |
lines[].productId | uuid | Opcional | UUID de products. |
lines[].description | string | Obligatorio | Descripción registrada. Máx. 1000 caracteres. |
lines[].quantity | string | Obligatorio | Cantidad decimal exacta. En entradas de líneas/movimientos es positiva, hasta 4 decimales. Patrón: ^(0|[1-9]\d{0,9})(\.\d{1,4})?$ |
lines[].unit | string | Obligatorio | Unidad textual exacta. No hay conversiones automáticas. Máx. 1000 caracteres. |
lines[].orderReference | string | Opcional | Referencia textual del pedido. Máx. 1000 caracteres. |
lines[].supplierCode | string | Opcional | Código de proveedor opcional. Coincidencia exacta cuando ambas líneas lo informan. Máx. 1000 caracteres. |
orderReferences | array | Opcional | Referencias documentadas de pedidos; no son claves foráneas. Máx. 100 elementos. |
externalId | string | Opcional | Identidad opcional del sistema de origen. Única por recurso entre registros activos. Máx. 500 caracteres. |
notes | string | Opcional | Observaciones registradas. Máx. 10000 caracteres. |
amount | string | Obligatorio | Importe original positivo, string decimal con hasta 2 decimales. Patrón: ^(0|[1-9]\d{0,12})(\.\d{1,2})?$ |
currency | "ARS" | "USD" | Obligatorio | Moneda original: ARS o USD. No sumar monedas distintas. |
documentIds | array | Opcional | UUID de los respaldos. No contiene imágenes ni archivos. Máx. 100 elementos. |
recurrenceId | uuid | Opcional | UUID de recurrences. |
occurrenceDate | string | Opcional | Fecha exacta de la ocurrencia asociada a la recurrencia. Patrón: ^\d{4}-\d{2}-\d{2}$ |
supplierId | uuid | Obligatorio | UUID de suppliers; distingue la cuenta del proveedor. |
number | string | Obligatorio | Número de comprobante conservado como texto, con sus ceros y formato. Máx. 1000 caracteres. |
issuerTaxId | string | Opcional | CUIT del emisor, 11 dígitos como texto. Patrón: ^\d{11}$ |
invoiceType | string | Opcional | Tipo de factura conservado como texto. No es un catálogo cerrado. Máx. 50 caracteres. |
originalMissing | boolean | Opcional | El original de la factura falta; no usarlo como indicador de impago. |
issueDate | string | Obligatorio | Fecha civil de emisión, YYYY-MM-DD. Patrón: ^\d{4}-\d{2}-\d{2}$ |
dueDate | string | Opcional | Vencimiento comercial; no sustituye los vencimientos de cuotas. Patrón: ^\d{4}-\d{2}-\d{2}$ |
reconciliationStatus | "confirmed" | "unreviewed" | Opcional | confirmed o unreviewed: conciliación financiera, independiente de recepción. |
reconciliationReason | string | Opcional | Motivo documentado de conciliación. Máx. 1000 caracteres. |
concept | string | Obligatorio | Descripción comercial del movimiento. Máx. 1000 caracteres. |
category | string | Obligatorio | Rubro como texto libre, sin tabla de categorías. Máx. 1000 caracteres. |
expenseId | uuid | Opcional | Gasto asociado. Factura y gasto representan una misma obligación. |
installments | array | Opcional | Cuotas. Sus importes suman exactamente el total del comprobante. Máx. 360 elementos. |
installments[].id | string | Obligatorio | Identificador textual estable dentro de la lista de líneas, cuotas o anticipos; no es un UUID global. Máx. 100 caracteres. |
installments[].dueDate | string | Obligatorio | Vencimiento comercial; no sustituye los vencimientos de cuotas. Patrón: ^\d{4}-\d{2}-\d{2}$ |
installments[].amount | string | Obligatorio | Importe original positivo, string decimal con hasta 2 decimales. Patrón: ^(0|[1-9]\d{0,12})(\.\d{1,2})?$ |
id | uuid | Servidor | Identificador UUID estable del registro. No usar el número de comprobante como ID. |
version | integer | Servidor | Versión entera para detectar cambios sobre este registro. Mín. 1. |
createdAt | date-time | Servidor | Momento de creación, ISO 8601 con zona. |
updatedAt | date-time | Servidor | Última modificación del registro; no implica que un saldo derivado se haya mantenido igual. |
voidedAt | date-time | Servidor | Momento de anulación; null o ausente indica registro activo. |
paid | string | Respuesta | Importe aplicado calculado; consultar la definición del recurso. |
balance | string | Respuesta | Saldo calculado del comprobante. |
overdueAmount | string | Respuesta | Saldo vencido calculado de compras/gastos. |
nextDueDate | date | Respuesta | Próximo vencimiento con saldo pendiente al corte; respeta cuotas e imputaciones. dueDate conserva la fecha original del documento. |
hasReceipt | boolean | Respuesta | Indicador derivado de respaldo; no prueba por sí solo pago o recepción. |
hasInvoice | boolean | Respuesta | Indicador derivado de factura respaldada. |
status | string | Respuesta | Estado registrado o calculado, según el recurso y endpoint. |