NeavisiónDocs
Contratos JSON

Reglas de integración

Cómo conservar importes, estados y existencias sin duplicar movimientos.

Formatos comunes

Importes positivos como strings decimales de hasta 13 dígitos enteros y 2 decimales. Cantidades de entrada positivas con hasta 10 dígitos enteros y 4 decimales. Sin separadores de miles ni coma decimal. Un saldo derivado puede ser cero o negativo: no validarlo como una entrada money positiva.

Usar Decimal o tipos decimales exactos. Fechas de negocio YYYY-MM-DD; eventos ISO 8601 con zona. No transformar una fecha civil argentina a UTC para guardarla como otro día. Campos opcionales ausentes expresan dato no registrado; no reemplazarlos automáticamente por cero.

Saldos e imputaciones

Preservar cada importe con ARS o USD. Las cuotas deben sumar el total; una imputación por cuota usa su ID. Una imputación general se distribuye por vencimiento; en ventas y candidatos de órdenes el ID de cuota desempata el orden. No aplicar pagos a otra moneda ni superar la obligación.

Compras: evitar duplicar invoices y expenses vinculados. Distinguir completed de scheduled y crédito de dinero efectivamente pagado. Ventas: balance = amount − cobros aplicados − créditos aplicados. Los cobros sin asignación conservan un saldo sin aplicar.

Estado de respaldo, conciliación financiera y recepción física son dimensiones distintas. Falta de original no prueba impago; un remito recibido no prueba pago.

Cálculo de stock

Regla
stock(producto, corte) =
  Σ líneas de remitos activos con status=received y date ≤ corte
  + Σ movimientos activos in con date ≤ corte
  − Σ movimientos activos out con date ≤ corte

Todos los términos usan productId y la unidad exacta del catálogo. No sumar además invoices.lines ni matches. La factura expresa lo facturado; matches expresa conciliación; el remito expresa ingreso físico. Una venta no descuenta automáticamente stock: se requiere el movimiento de salida correspondiente.

Estados de recepción

unlinked
Parte recibida sin factura asignada.
pending
Sin recepción o detalle pendiente.
partial
Recibido menor a lo facturado.
complete
Cantidades coincidentes, identidad compatible.
excess
Recibido mayor a lo facturado.
mismatch
Vínculo incompatible: producto, unidad, proveedor, código, factura o línea.

Sin detalle, invoicedQuantity/missingQuantity pueden ser null: cantidad desconocida. Nunca interpretarlas como cero. Los cargos kind=charge se excluyen de la recepción física.

Ejemplo completo

La factura de ejemplo registra 10 unidades por $100.000. El remito recibe 6; el pago completed aplica $40.000. Sin otros créditos ni movimientos: saldo financiero $60.000, recepción partial, faltan 4 unidades y stock recibido 6. Si se registra una salida de 1, el stock queda en 5. Son cálculos independientes.

Buscar documentación