Subscribe to one transaction at a time and receive push updates as its status changes.Documentation Index
Fetch the complete documentation index at: https://docs.proof.community/llms.txt
Use this file to discover all available pages before exploring further.
Connection
Authentication
Authenticate with the sameclient_token you use for HTTP. Send it in the Authorization header on the upgrade request:
Open WebSocket connections from your backend server, not the browser. Browsers cannot send custom headers on the upgrade request, and
client_token must not be exposed to the frontend. Your backend subscribes and pushes status updates to the browser through your own channel (SSE, polling your API, or a WebSocket relay).Query parameters
| Parameter | Required | Description |
|---|---|---|
tx_id | Yes | A single merchant_transaction_id to subscribe to |
Events
tx.update
Fired on every status change for the subscribed transaction.
| Field | Type | Notes |
|---|---|---|
event | string | Always "tx.update" |
merchant_transaction_id | string | Echo of the subscription |
type | string | "buy" or "sell" |
status | string | Normalized status — see Transaction Status |
payment_method | string | Omitted if unknown |
currency | string | Crypto currency |
fiat_currency | string | Fiat currency |
fiat_amount | string | Fiat amount |
crypto_amount | string | Crypto amount (may be empty before processing) |
occurred_at | string | ISO 8601 timestamp of the status-change event |
Code examples
Node.js
Reconnection
Always implement reconnection with exponential backoff and a cap:Fallback to polling
If your environment cannot use WebSocket (proxy, ad blocker, browser without backend support), fall back to pollingGET /widget/transactions/{id} every 5–10 seconds.