Skip to main content
Every error response:
One top-level error string. No nested objects.

Status codes

400: Bad request

  • amount must be a positive number, not a string, zero, or negative.
  • For POST /api/merchant/pay, amount must be 0.01 to 10000.

401: Unauthorized

  • Header must be Authorization: Bearer ms_live_....
  • Verify the key in API Keys.

403: Forbidden

Key authenticated, but the merchant account is inactive. Contact support.

404: Not found

session_id (must start with cs_) or slug doesn’t match any record.

429: Rate limit

Slow down. X-RateLimit-Remaining shows how close you are. Contact support for higher limits.

500: Server error

Retry with exponential backoff. If persistent, contact support with the session_id or request timestamp.

Handling errors