Invoice types
The type field follows the AEAT Veri*Factu nomenclature. Some types are created with POST /invoices; derived types only come from an action on an issued invoice.
Catalogue
type | Name | How it is produced |
|---|---|---|
F1 | Ordinary invoice with an identified recipient | POST /invoices |
F2 | Simplified invoice or receipt | POST /invoices |
F3 | Replacement for one or more F2 invoices | POST /invoices/{id}/actions/replace |
R1 | Corrective invoice for a legal error or Spanish VAT Act art. 80 One, Two, and Six | POST /invoices/{id}/actions/rectify |
R2 | Corrective invoice for insolvency proceedings | …/actions/rectify |
R3 | Corrective invoice for bad debts | …/actions/rectify |
R4 | Corrective invoice for other causes | …/actions/rectify |
R5 | Correction of a simplified invoice | …/actions/rectify |
Only F1 and F2 are created directly
R1–R5 and F3 inherit data and relations from the original invoice. See Correcting or cancelling invoices.
F1 — ordinary invoice
Requires an identified recipient through partner_id. Omitting it returns 400 (invoices.partner_required).
curl -X POST https://api.test.bilteo.com/api/v1/invoices \
-H "Authorization: Bearer bk_live_xxx" -H "Content-Type: application/json" \
-d '{ "type": "F1", "partner_id": "…",
"lines": [{ "description": "Consulting", "quantity": "1", "unit_price": "1000.00" }] }'F2 — simplified invoice
The recipient does not need to be identified, so partner_id is optional. If the customer later needs a full invoice, issue an F3 replacement.
curl -X POST https://api.test.bilteo.com/api/v1/invoices \
-H "Authorization: Bearer bk_live_xxx" -H "Content-Type: application/json" \
-d '{ "type": "F2",
"lines": [{ "description": "Counter sale", "quantity": "1", "unit_price": "30.00" }] }'F3 — replacement invoice
The replace action on an issued F2 creates a draft F3, links both invoices, and rebuilds the lines by grouping bases by tax combination. See F2 to F3 replacement.
R1–R5 — corrective invoices
The rectify action creates them from the original invoice. The R type is derived from rectification_cause and the original type. See Corrective invoices.
Series and numbering
Each invoice receives an immutable sequential number from a compatible series:
Series (type) | Invoice types |
|---|---|
normal | F1, F3 |
simplified | F2 |
rectified | R1–R5 |
quote | Quotes; outside the public API |
codeis unique per tenant (409 serie.code_taken).resets_per_fiscal_yearcontrols whether numbering resets each fiscal year.- After the first numbered document, only
nameandis_activemay change (serie.numbering_started). typeis immutable (serie.type_immutable).- A series with documents, or the last series of its type, cannot be deleted.
Starting number (start_number)
To continue existing numbering, provide start_number when creating the series:
{ "code": "F26", "name": "Invoices 2026", "type": "normal",
"prefix": "F26-", "num_size": 4, "start_number": 1250 }It only seeds the first numbering period and remains editable until the series numbers its first document. If serie_id is omitted, Bilteo follows the default cascade.