STUDIO
Invoice
TEST-INV-00001
| Description | Qty. | Price | Amount |
|---|---|---|---|
| Consulting | 8 | €75.00 | €600.00 |
- Subtotal
- €600.00
- VAT 21%
- €126.00
- Total
- €726.00
Issue, correct, render, and register Spanish invoices through a REST API, including VERI*FACTU records.
No credit card required. Test every operation in a free sandbox.
Send the commercial facts. FiscalRail resolves the invoice machinery around them.
$ curl "https://api.fiscalrail.com/api/v1/invoices" \
-H "Authorization: Bearer ak_test_..." \
-H "Content-Type: application/json" \
-d '{
"customer": "cus_...",
"lines": [{
"description": "Consulting",
"quantity": "8",
"unit_price": "75.00",
"taxes": [{"tax": "vat", "rule": "general"}]
}]
}'
{
"id": "inv_...",
"object": "invoice",
"live": false,
"account": "acct_...",
"kind": "invoice",
"code": "TEST-INV-00001",
"series": "inv_ser_...",
"issue_date": "2026-08-11",
"supply_period": null,
"preceding_invoice": null,
"currency": "EUR",
"supplier": {
"source": {"type": "account", "id": "acct_..."},
"name": "Acme Studio SL",
"tax_id": {"country": "ES", "type": "es_nif", "value": "B02850360"},
"email": "billing@acme.example",
"phone": null,
"address": {
"line_1": "Example street 1",
"line_2": null,
"city": "Madrid",
"postal_code": "28001",
"state": null,
"country": "ES"
}
},
"customer": {
"source": {"type": "customer", "id": "cus_..."},
"name": "Example Client SL",
"tax_id": {"country": "ES", "type": "es_nif", "value": "B87654323"},
"email": "billing@client.example",
"phone": null,
"address": {
"line_1": "Example avenue 2",
"line_2": null,
"city": "Vigo",
"postal_code": "36201",
"state": "Pontevedra",
"country": "ES"
}
},
"lines": [{
"index": 1,
"description": "Consulting",
"quantity": "8.0",
"unit_price": "75.00",
"subtotal": "600.00",
"taxes": [{
"tax": "vat",
"rule": "general",
"effect": "added",
"treatment": "taxable",
"description": "IVA 21%",
"rate": "21%",
"taxable_base": "600.00"
}]
}],
"tax_totals": [{
"tax": "vat",
"rule": "general",
"effect": "added",
"treatment": "taxable",
"description": "IVA 21%",
"rate": "21%",
"taxable_base": "600.00",
"amount": "126.00"
}],
"totals": {
"subtotal": "600.00",
"tax": "126.00",
"total_with_tax": "726.00",
"withheld_tax": "0.00",
"payable": "726.00"
},
"created_at": "2026-08-11T09:30:00Z",
"tax_regime": {
"key": "es",
"es": {
"qr": {
"content": "https://fiscalrail.test/tax-regimes/es/mock-verifications/...",
"image_url": "https://fiscalrail.test/tax-regimes/es/invoice-qrs/..."
},
"verifactu": {
"registrations": [{
"id": "es_inv_reg_...",
"object": "verifactu_registration",
"live": false,
"invoice": "inv_...",
"kind": "alta",
"status": "pending",
"submitted_at": null,
"csv": null,
"error": null
}]
}
}
},
"amendments": []
}
TEST-INV-00001
| Description | Qty. | Price | Amount |
|---|---|---|---|
| Consulting | 8 | €75.00 | €600.00 |
Validate, number, calculate, and persist an invoice atomically.
Resolve VAT and withholding rules without trusting client-side arithmetic.
Render synchronous PDFs with your logo, language, and footer.
Keep automatic numbering and durable invoice facts you can retrieve later.
Issue linked credit notes and replacements without rewriting invoice history.
Receive verifiable invoice, tax-ID, PDF, and compliance events.
Register invoices with VERI*FACTU, render verification QR codes, and handle corrections.
Add balance when you are ready to issue live invoices. Sandbox usage is free.
to issue, register, and render a typical Spanish invoice
Rejected AEAT submissions and retries are free.
FiscalRail journal
Product updates, implementation guides, comparisons, and commentary on invoicing infrastructure.


VERI*FACTU governs invoicing systems and fiscal records; B2B e-invoicing governs structured exchange between businesses. Here is how they fit together.

Add validated bank-transfer details to invoices by default or per invoice, without changing past documents.
Tell us what you are building. We will help you make the first request.