DigiChat Documentation
Errors & troubleshooting

Common errors and quick fixes.

Errors & Troubleshooting

We use standard HTTP status codes to indicate the success or failure of your API requests. In general:

  • 2xx: Success
  • 4xx: Client error (check your input, auth, or limits)
  • 5xx: Server error (our fault or upstream issue)

All error responses return a JSON object with error (code) and message (human-readable) fields.

400 Bad Request

401 Unauthorized

Error Code Meaning
missing_auth_headers Headers X-Token are missing.
invalid_token The API Token provided is invalid.
token_inactive The API Token exists but is currently disabled.
token_expired The API Token has expired.
unauthorized Generic authentication failure.
missing_signature Signature header is missing.
invalid_signature Signature is invalid.
signature_expired Signature timestamp is too old.

402 Payment Required

Error Code Meaning
insufficient_balance Your wallet balance is insufficient for this operation. Top up your wallet in the dashboard.

403 Forbidden

Error Code Meaning
ip_not_allowed Request IP is not in your allowlist.
token_deleted The API Token has been deleted.
no_api_access You do not have API access. Activate a subscription or top up your wallet.

409 Conflict

Error Code Meaning
payg_confirm_required This action requires explicit confirmation that it will charge your wallet (PAYG).

422 Unprocessable Entity

Validation errors or domain-specific logic failures.

Error Code Meaning
validation_error One or more inputs failed validation.
already_exists The resource you are trying to create already exists.
invalid_json The request body or specific field contains invalid JSON.
invalid_amount_format The amount format is invalid.
invalid_otp The provided OTP is invalid.
otp_expired The OTP has expired.
test_message_failed Sending the test message failed.

429 Too Many Requests

Error Code Meaning
rate_limit_exceeded You have exceeded the global rate limit. Slow down.
plan_limit_reached You have reached the usage limit of your current plan.
payg_limit_reached You have reached your set PAYG spending limit.
otp_wait_required You must wait before requesting another OTP.
otp_resend_limit You have reached the maximum OTP resend attempts.
too_many_attempts Too many failed attempts.

500 Internal Server Error

Error Code Meaning
internal_error An unexpected internal error occurred. Please contact support.

502 Bad Gateway

Connectivity issues.

Error Code Meaning
send_message_failed Failed to send message.
send_media_failed Failed to send media.

503 Service Unavailable

Error Code Meaning
server_down The server is down or unreachable.
session_not_ready The WhatsApp session is starting or not ready yet.
maintenance_mode The application is currently in maintenance mode.