NeavisiónDocs
Contratos JSON

Facturas de compra

Facturas de proveedores, cuotas y detalle de mercadería.

Recurso JSONinvoices

Modelo 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

HTTP
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

JSON
{
  "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.

CampoTipo / valoresCondiciónSignificado y restricciones
receivingRequiredbooleanOpcionalIndica mercadería pendiente de detallar; no implica recepción física.
linesarrayOpcionalDetalle embebido; no existe una tabla independiente de líneas. Máx. 500 elementos.
lines[].idstringObligatorioIdentificador 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"OpcionalClasificación del registro; los valores permitidos dependen del recurso.
lines[].productIduuidOpcionalUUID de products.
lines[].descriptionstringObligatorioDescripción registrada. Máx. 1000 caracteres.
lines[].quantitystringObligatorioCantidad 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[].unitstringObligatorioUnidad textual exacta. No hay conversiones automáticas. Máx. 1000 caracteres.
lines[].orderReferencestringOpcionalReferencia textual del pedido. Máx. 1000 caracteres.
lines[].supplierCodestringOpcionalCódigo de proveedor opcional. Coincidencia exacta cuando ambas líneas lo informan. Máx. 1000 caracteres.
orderReferencesarrayOpcionalReferencias documentadas de pedidos; no son claves foráneas. Máx. 100 elementos.
externalIdstringOpcionalIdentidad opcional del sistema de origen. Única por recurso entre registros activos. Máx. 500 caracteres.
notesstringOpcionalObservaciones registradas. Máx. 10000 caracteres.
amountstringObligatorioImporte original positivo, string decimal con hasta 2 decimales. Patrón: ^(0|[1-9]\d{0,12})(\.\d{1,2})?$
currency"ARS" | "USD"ObligatorioMoneda original: ARS o USD. No sumar monedas distintas.
documentIdsarrayOpcionalUUID de los respaldos. No contiene imágenes ni archivos. Máx. 100 elementos.
recurrenceIduuidOpcionalUUID de recurrences.
occurrenceDatestringOpcionalFecha exacta de la ocurrencia asociada a la recurrencia. Patrón: ^\d{4}-\d{2}-\d{2}$
supplierIduuidObligatorioUUID de suppliers; distingue la cuenta del proveedor.
numberstringObligatorioNúmero de comprobante conservado como texto, con sus ceros y formato. Máx. 1000 caracteres.
issuerTaxIdstringOpcionalCUIT del emisor, 11 dígitos como texto. Patrón: ^\d{11}$
invoiceTypestringOpcionalTipo de factura conservado como texto. No es un catálogo cerrado. Máx. 50 caracteres.
originalMissingbooleanOpcionalEl original de la factura falta; no usarlo como indicador de impago.
issueDatestringObligatorioFecha civil de emisión, YYYY-MM-DD. Patrón: ^\d{4}-\d{2}-\d{2}$
dueDatestringOpcionalVencimiento comercial; no sustituye los vencimientos de cuotas. Patrón: ^\d{4}-\d{2}-\d{2}$
reconciliationStatus"confirmed" | "unreviewed"Opcionalconfirmed o unreviewed: conciliación financiera, independiente de recepción.
reconciliationReasonstringOpcionalMotivo documentado de conciliación. Máx. 1000 caracteres.
conceptstringObligatorioDescripción comercial del movimiento. Máx. 1000 caracteres.
categorystringObligatorioRubro como texto libre, sin tabla de categorías. Máx. 1000 caracteres.
expenseIduuidOpcionalGasto asociado. Factura y gasto representan una misma obligación.
installmentsarrayOpcionalCuotas. Sus importes suman exactamente el total del comprobante. Máx. 360 elementos.
installments[].idstringObligatorioIdentificador textual estable dentro de la lista de líneas, cuotas o anticipos; no es un UUID global. Máx. 100 caracteres.
installments[].dueDatestringObligatorioVencimiento comercial; no sustituye los vencimientos de cuotas. Patrón: ^\d{4}-\d{2}-\d{2}$
installments[].amountstringObligatorioImporte original positivo, string decimal con hasta 2 decimales. Patrón: ^(0|[1-9]\d{0,12})(\.\d{1,2})?$
iduuidServidorIdentificador UUID estable del registro. No usar el número de comprobante como ID.
versionintegerServidorVersión entera para detectar cambios sobre este registro. Mín. 1.
createdAtdate-timeServidorMomento de creación, ISO 8601 con zona.
updatedAtdate-timeServidorÚltima modificación del registro; no implica que un saldo derivado se haya mantenido igual.
voidedAtdate-timeServidorMomento de anulación; null o ausente indica registro activo.
paidstringRespuestaImporte aplicado calculado; consultar la definición del recurso.
balancestringRespuestaSaldo calculado del comprobante.
overdueAmountstringRespuestaSaldo vencido calculado de compras/gastos.
nextDueDatedateRespuestaPróximo vencimiento con saldo pendiente al corte; respeta cuotas e imputaciones. dueDate conserva la fecha original del documento.
hasReceiptbooleanRespuestaIndicador derivado de respaldo; no prueba por sí solo pago o recepción.
hasInvoicebooleanRespuestaIndicador derivado de factura respaldada.
statusstringRespuestaEstado registrado o calculado, según el recurso y endpoint.

Buscar documentación