Two products: Public API and Verifactu Direct API
Bilteo provides two integration products for different problems. They share the same REST API (/api/v1), API-key or OAuth2 authentication, Veri*Factu chain, and webhooks, but use different data models and serve different purposes. You can use either or both in the same tenant.
The deciding question is: who issues the invoice?
| Bilteo Public API | Verifactu Direct API | |
|---|---|---|
| In one sentence | Bilteo is your invoicing system | Bilteo is your Veri*Factu gateway |
| Who issues? | Bilteo | Your software; the invoice already exists |
| Numbering and series | Managed by Bilteo | Supplied by you |
| Data model | Customers, products, series, activities, and tax engine | Flat, pre-classified Veri*Factu record |
| Lifecycle | draft → issued → cancel or correct | No draft: register what you already issued |
| Tax classification | Derived by Bilteo from your catalogue | Supplied by you: S1/S2/N1/N2, exemption, and regime |
| Customer document | PDF, Facturae, and email with QR | No; your software already generated it |
| Main endpoint | /invoices and related catalogues | /external-invoices |
| Scopes | invoices:* | verifactu:write / verifactu:read |
Both products produce a fingerprint-chained Veri*Factu record, submit it to the AEAT, and report the outcome through the same webhooks.
Public API: Bilteo issues
You create a draft invoice. On issuance, Bilteo assigns the next number from a legal series, calculates taxes, generates and submits the Veri*Factu record, and produces the PDF or Facturae document with QR.
The flow is POST /invoices → edit lines → POST /invoices/:id/actions/issue. You can also manage customers, products, series, and economic activities. Start with Getting started and the invoice lifecycle.
Invoices created through the API appear in the same Bilteo app tenant. Your team can inspect, download, email, or manage them manually without duplicating data.
Typical uses:
- Vertical SaaS, e-commerce, or marketplaces without their own fiscal engine.
- Businesses automating invoicing from an internal back office.
Verifactu Direct API: your software issues
/external-invoices registers invoices already issued by another application in Veri*Factu. You supply the series, number, date, type, and pre-classified tax breakdown; Bilteo chains and submits the record. There are no Bilteo drafts, catalogues, or customer documents.
The flow is POST /external-invoices → pending → AEAT outcome through verifactu.* webhooks. Cancellation, correction of rejected records, and bulk registration are also available. See Verifactu Direct API.
Typical uses:
- ERP, POS, or industry software that already numbers and generates invoices.
- Migration from another Veri*Factu provider without changing issuance.
Which product do I need?
- Should Bilteo generate, number, and produce the invoice? → Public API.
- Has your software already generated and numbered it? → Verifactu Direct API.
You can use both for separate flows in the same tenant.
What they share
- Authentication and scopes.
verifactu.*webhooks for the AEAT outcome.- Idempotency, pagination, and error conventions.
- A test environment using the AEAT test service.