Webhooks¶
Register a webhook to receive the fiscal result without polling.
Events¶
| Event | When |
|---|---|
invoice.fiscalized |
The V-SDC signed the invoice; journal, QR and URL are available. |
invoice.failed |
Fiscalization permanently failed after retries. |
Payload¶
{
"event": "invoice.fiscalized",
"request_id": "84cdb2803703ceb1f5b29392b6f594e0",
"shop_id": "shp_123",
"external_ref": "SO-1042",
"invoice_number": "DX73WJZV-KMVACKO0-7877",
"verification_url": "https://sandbox.taxcore.online/v/?vl=…",
"journal": "============ FISCAL INVOICE ============ …"
}
Verifying signatures¶
Every delivery is signed with HMAC-SHA256 over the raw body using your endpoint secret:
X-TaxBridge-Signature: sha256=8d…
import hmac, hashlib
def verify(secret: str, body: bytes, header: str) -> bool:
expected = "sha256=" + hmac.new(secret.encode(), body, hashlib.sha256).hexdigest()
return hmac.compare_digest(expected, header)
Deliveries are retried with backoff and dead-lettered after repeated failure; inspect them in the console.