Skip to main content
B2B orders support a simpler notification mechanism than retailer webhooks: pass callbackUrl on POST /b2b/orders and Wizzgift sends a single plain JSON POST when the order reaches a terminal status (completed, partial, or failed).
This callback is not signed and not retried — one attempt, fire-and-forget. Unlike retailer webhooks, the payload contains full fulfillment data including card codes. If you use it, protect the URL: https only, an unguessable path, and treat inbound payloads as untrusted until you re-fetch the order via the API.

Payload

errorMessage fields on failed fulfillments are customer-safe mapped messages, the same as the API returns.

Recommendations

  • Prefer polling GET /b2b/orders/{checkoutId} for reliability — the callback has no retries, so a transient failure on your side means you miss it entirely. Poll as the source of truth; treat the callback as an optimization that ends polling early.
  • Never rely on the callback’s codes alone. Since it is unsigned, re-fetch the order via the authenticated API before delivering anything.
  • Need reliable, signed notifications? The retailer surface’s signed webhooks provide HMAC signatures, retries, and a delivery log.