FacturaApiRequestDto
Schema completo del request body de POST /api/v1/facturas.
interface FacturaApiRequestDto {
/** OBLIGATORIO. Tipo de comprobante a emitir. */
tipo: "FacturaElectronica" | "TiqueteElectronico" | "NotaCredito" | "NotaDebito";
/** Receptor. Obligatorio para FE/NC/ND. Opcional para TE. */
cliente?: FacturaApiClienteDto | null;
/** Código condición de venta. Ver catálogo Hacienda. Default "01" (Contado). */
condicionVenta: string;
/** Plazo en días si condicionVenta="02". */
plazoCredito?: number;
/** Código medio de pago. Ver catálogo Hacienda. Default "01" (Efectivo). */
medioPago: string;
/** Código moneda ISO. Default "CRC". */
moneda: string;
/** Tipo de cambio. Si moneda="USD" y se omite, se consulta del BCCR. */
tipoCambio?: number | null;
/** Código actividad económica del emisor. Si se omite, usa la principal del tenant. */
codigoActividad?: string | null;
/** Código actividad económica del receptor. */
codigoActividadReceptor?: string | null;
/** Texto libre con comentarios visibles en el PDF y XML. */
comentario?: string | null;
/** OBLIGATORIO. Al menos 1 línea. */
lineas: FacturaApiLineaDto[];
/** OBLIGATORIO para NC/ND. Opcional para FE/TE. */
referencias: FacturaApiReferenciaDto[];
}Validaciones por campo
| Campo | Regla | Error si falla |
|---|---|---|
tipo | Debe ser uno de los 4 valores del enum TipoComprobanteApi. | 400 |
cliente | Presente y con idCliente válido cuando tipo es FE, NC o ND. | 400 — Factura electrónica requiere cliente. |
condicionVenta | String de 2 caracteres según catálogo Hacienda. | 400 o validación Hacienda 9015 |
plazoCredito | ≥ 0. Se usa solo si condicionVenta = "02". | — |
medioPago | String de 2 caracteres según catálogo Hacienda. | 400 o validación Hacienda |
moneda | "CRC", "USD" o código interno ("01" / "02"). | — |
tipoCambio | > 0 si está presente. | — |
lineas | Array con al menos un elemento. | 400 — Debe incluir al menos una línea. |
referencias | Requerido (≥ 1) cuando tipo es NC o ND. | 400 |