Facturas
Con autoVat=true (predeterminado), la API determina el IVA según el registro de IVA/OSS de su empresa y el país/NIF del cliente (doméstico / inversión del sujeto pasivo / OSS / exportación). La numeración es sin huecos y comparte secuencia con el panel. No hay borrado de facturas vía API — solo anulación.
| Escenario | Tipo | Nota |
|---|---|---|
| Empresa sin registro de IVA | 0 | taxRate>0 manual → 422 |
| Mismo país (doméstico) | Tipo del país vendedor | p. ej. EE 24 % |
| B2B intra-UE (con NIF-IVA) | 0 | Inversión del sujeto pasivo |
| B2C intra-UE + OSS | Tipo del país comprador | p. ej. DE 19 % |
| B2C intra-UE sin OSS | Tipo del país vendedor | |
| Venta fuera de la UE | 0 | Exención por exportación |
Endpoints
POST
/invoicesPermiso: write:invoicesFacturado (contador por factura)
Emite una factura. autoVat activado por defecto.
Ejemplo de solicitud
curl -X POST -H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
https://corpenza.com/api/external/accounting/invoices -d '{
"clientName": "Berlin GmbH",
"clientCountry": "DE",
"clientVatNumber": "DE123456789",
"items": [
{ "description": "Consulting", "quantity": 2, "unitPrice": 250 }
]
}'Ejemplo de respuesta
{
"id": "inv_...",
"invoiceNumber": "CRP-202606-0042",
"taxRate": 0,
"total": 500,
"vatNote": "Reverse Charge - ...",
"vatReason": "Intra-EU B2B — Reverse Charge"
}GET
/invoicesPermiso: read:invoicesLista de facturas (filtros status, from, to, page, limit).
Ejemplo de solicitud
curl -H "Authorization: Bearer $API_KEY" \
"https://corpenza.com/api/external/accounting/invoices?status=SENT&page=1&limit=20"GET
/invoices/{id}Permiso: read:invoicesDetalle de una factura (líneas + pagos).
POST
/invoices/{id}/cancelPermiso: write:invoicesAnula la factura (sin borrado). PAID no se puede anular (409).