Skip to content

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.