status, title, and often message). Always branch on the HTTP status, not on a free-text title.
Status codes
Rate limits
Limits are per Client ID (defaults):
On 429, response headers include:
Wallet and subscription 400s
Routes that send eForms, KYC, AML, or onboardings may return 400 when the practice has no remaining subscription units or wallet balance. The API does not create the job or take a charge in that case. Ask the practice to top up, then retry.Idempotency for webhooks
Inbound webhook deliveries includeX-Om-Event-Id. Treat that as an idempotency key on your side so retries do not double-process. See Webhooks.