Saltearse al contenido

Esquemas

Modelos de datos comunes utilizados en las APIs de Kreyo.

Estructura de datos principal de una factura:

interface InvoiceData {
number: string;
date: string; // ISO 8601
due_date?: string;
currency?: string; // por defecto: "EUR"
seller: Party;
buyer: Party;
lines: InvoiceLine[];
subtotal?: number;
vat_breakdown?: VatEntry[];
vat_total?: number;
total: number;
}

Información del emisor o receptor:

interface Party {
nif: string; // NIF español
name: string;
address?: string;
city?: string;
postal_code?: string;
country?: string; // por defecto: "ES"
email?: string;
}

Línea de detalle individual:

interface InvoiceLine {
description: string;
quantity: number;
unit_price: number;
total: number;
vat_rate?: number; // p. ej., 21 para el 21%
}

Entrada del desglose de IVA:

interface VatEntry {
rate: number; // 0, 4, 10, 21
base: number;
amount: number;
}

Datos de registro específicos de VeriFactu:

interface VeriFactuRecord {
type: 'Alta' | 'Modificacion' | 'Anulacion';
invoice: InvoiceData;
certificate_id: string;
modification_reason?: string;
}

Opciones de generación de FacturaE:

interface FacturaEOptions {
schema_version?: '3.2.2';
modality?: 'I' | 'L';
invoice_issuer_type?: 'EM' | 'RE' | 'TR';
self_billing?: boolean;
}