Skip to navigation

Modelo de datos

Jerarquía de objetos en Supay, de arriba hacia abajo. Cada nivel pertenece al anterior y hereda su tenant: nunca se mezclan datos entre empresas.

Jerarquía

NivelQué esClaves
Tenant / EmpresaTu empresa (NIT + razón social). Dueña de una o más API keysnit, business_name, ambiente, modalidad
SucursalCasa matriz o sucursales (codigo_sucursal, 0 = matriz)company_id, name
Punto de ventaCaja o terminal que emite (codigo_punto_venta auto)branch_id, name, description
Certificado P12Firma digital ante el SIAT (≤ 5 MB, alertas a 30/15/7 días)p12_file, p12_password
CUIS / CUFDCódigos SIAT del POS (se renuevan automáticamente)Vía siat.setup
ClienteReceptor (se crea desde el snapshot de cada factura)document_number + name
FacturaDocumento fiscal (id, cuf, invoice_number, status)point_of_sale_id, customer, items
Evento de contingenciaRespaldo oficial cuando cae la red SIATcontingency_event_id

Reglas del modelo

  • company_id se hereda: sucursal → POS → factura. Un ID de otro tenant responde 404 (enmascarado por seguridad, nunca 403).
  • codigo_punto_venta se asigna solo (MAX+1); no lo inventes.
  • El cliente no se da de alta antes: viaja como snapshot en cada factura (customer.id está prohibido).
  • Cada POST de creación inicia otra factura (sin idempotencia): guarda id + cuf y concilia por ID.
  • Estados de factura: PENDING → SENDING → ACCEPTED | OBSERVED | REJECTED, más OFFLINE (contingencia), SENT (solo lotes) y CANCELLED (anulación).

Alta paso a paso: Onboarding.