Skip to main content
Errors return a consistent bilingual envelope with a machine-readable code, English and Arabic messages, a request id for support, and a docs link:
Always branch on error_code (stable), not the message text.

HTTP statuses

Error codes

The complete code list (including OTP, webhook, session, and Nafath codes) is in the API Reference Error schema.

Request id

Every response carries a request_id. Include it when contacting support — it lets us find the exact request in the logs.