Conventions

These conventions apply to every endpoint: the response envelope, HTTP status codes, pagination, amount formatting, and how to handle asynchronous money movement.

Response envelope

Every JSON response is wrapped. On success:

Success envelope
{
  "success": true,
  "data": { /* per-endpoint shape */ }
}

On error:

Error envelope
{
  "success": false,
  "error": {
    "type": "VALIDATION_ERROR",
    "code": "INVALID_INPUT",
    "message": "amount must be positive",
    "details": {}
  }
}
  • success is always present.
  • data is present on success (the per-endpoint shapes are documented in the reference).
  • error is present on failure; see the Error Reference for the type catalog.
i
In the endpoint reference, "Response" blocks show the value of data in context the { "success": true, "data": … } wrapper is implied.

HTTP status codes

CodeMeaning
200OK
201Created (registration, deposits, withdrawals, disputes, freeze/unfreeze, webhook create)
400Validation error / sandbox-only endpoint called in production
401Missing/invalid org credentials or user session
403Partner account suspended/revoked, or cross-account access
404Resource not found or not owned by this user/partner
429Rate limit exceeded
500 / 502Internal error / upstream provider rejected the call

Pagination

List endpoints take limit (default 20, max 100 unless noted) and offset (default 0). Transaction listing additionally accepts page (1-indexed) which overrides offset when both are supplied. List responses include either a pagination object ({ limit, offset, total }) or inline count / has_next / has_previous / total_pages fields — documented per endpoint.

Amounts & currency

Money amounts are decimal dollars (e.g. 50.00), not cents. All amounts are USD. Deposit/withdrawal amount must be > 0.

Idempotency & polling

Money-movement results arrive asynchronously. After creating a deposit/withdrawal, either:

  • Poll the resource (GET …/deposits/:id) every 5–10 s for ~60 s, or
  • Subscribe to webhooks (recommended) and react to Payment.ACH.Completed / Payment.ACH.Failed.

Webhook deliveries can repeat in edge cases dedupe on the event envelope id (see Webhooks).