Skip to content

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 ​

typeNameHow it is produced
F1Ordinary invoice with an identified recipientPOST /invoices
F2Simplified invoice or receiptPOST /invoices
F3Replacement for one or more F2 invoicesPOST /invoices/{id}/actions/replace
R1Corrective invoice for a legal error or Spanish VAT Act art. 80 One, Two, and SixPOST /invoices/{id}/actions/rectify
R2Corrective invoice for insolvency proceedings…/actions/rectify
R3Corrective invoice for bad debts…/actions/rectify
R4Corrective invoice for other causes…/actions/rectify
R5Correction 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).

bash
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.

bash
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
normalF1, F3
simplifiedF2
rectifiedR1–R5
quoteQuotes; outside the public API
  • code is unique per tenant (409 serie.code_taken).
  • resets_per_fiscal_year controls whether numbering resets each fiscal year.
  • After the first numbered document, only name and is_active may change (serie.numbering_started).
  • type is 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:

json
{ "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.

Bilteo · Documentation