Quickstart¶
Fiscalize an invoice in three steps.
1. Try the demo endpoint (no auth)¶
The sandbox demo endpoint fiscalizes a synthetic invoice against the real Vanuatu V-SDC. Great for a first taste:
curl -X POST https://api.tax-bridge.cloud/v1/demo/fiscalize \
-H "Content-Type: application/json" \
-d '{
"lines": [{ "sku": "KAVA500", "qty": 1 }, { "sku": "COFFEE1K", "qty": 2 }],
"doc_type": "NORMAL",
"payment_type": "CASH"
}'
You get back a genuine fiscal result:
{
"request_id": "84cdb2803703ceb1f5b29392b6f594e0",
"status": "FISCALIZED",
"invoice_number": "DX73WJZV-KMVACKO0-7877",
"verification_url": "https://sandbox.taxcore.online/v/?vl=…",
"qr_gif_base64": "R0lGODlh…",
"journal": "============ FISCAL INVOICE ============ …"
}
2. Fiscalize your own invoice¶
Once you have an API key and a shop, post a canonical invoice:
curl -X POST https://api.tax-bridge.cloud/v1/fiscalize \
-H "Authorization: Bearer tbk_live_…" \
-H "Content-Type: application/json" \
-d '{
"shop_id": "shp_123",
"external_ref": "SO-1042",
"invoice_type": "NORMAL",
"transaction_type": "SALE",
"items": [{ "name": "Kava 500g", "quantity": 1,
"unit_price_incl": 1725.00, "total_incl": 1725.00, "tax_labels": ["D"] }],
"payments": [{ "type": "CASH", "amount": 1725.00 }]
}'
3. Get the result¶
The response is 200 OK with the full fiscal result — request_id, status
(FISCALIZED/FAILED), the verbatim journal, the qr_gif_base64 and the
verification_url. Look it up again any time with GET /v1/invoices/{request_id}.
See Fiscalize an invoice for the field-by-field contract.
Prices are tax-inclusive
unit_price_incl / total_incl include tax. The tax_labels array tells the
SDC which embedded rate applies — Tax-Bridge never invents tax rates locally.