Skip to main content
Most error bodies follow ASP.NET problem details (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:
Design for incremental sync and webhooks. Do not poll list endpoints every few seconds.

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 include X-Om-Event-Id. Treat that as an idempotency key on your side so retries do not double-process. See Webhooks.