RCS error codes
RCS message send acceptance errors, RCS-specific 150xxx codes, HTTP statuses and retry guidance.
This page lists the acceptance error codes of the RCS message send API . A call succeeds only when both HTTP 200 and code=000000 are met; acceptance is judged per item in data.messages[]. On partial success the outer code stays 000000, and failed items carry the corresponding six-digit code in status.
Common error codes
On failure, determine the cause from the HTTP status and the six-digit code, and keep traceId for troubleshooting. Do not branch on the message text; data=null when the whole request fails.
| HTTP | code | Meaning and handling |
|---|---|---|
| 400 | 010001 | Request body is not valid JSON or mismatches the declared Content-Type. |
| 400 | 010002 | Missing required fields: productKey, sender (for non-TEMPLATE/MMS messages), destinations, message.type, destinations[].to, smsFailover sub-fields, etc.; add them per the message hint. |
| 400 | 010003 | Field type, format, enum, length or range validation failed (phone format, message type, suggestion validations, invalid productKey, etc.); fix per the message hint. |
| 404 | 010005 | templateId does not exist or is not accessible to this account; verify the template ID and its account. |
| 400 | 010012 | destinations exceeds the per-request limit; split the request. |
| 401 | 020001 | Neither Authorization nor AppID was provided. |
| 401 | 020002 | API KEY does not exist, is disabled, or has expired. |
| 403 | 020005 | Egress IP is not in the allowlist; API Key auth mode enforces the allowlist, CheckSum mode only checks it when configured. |
| 401 | 020008 | CheckSum verification failed, or Nonce/CurTime/CheckSum missing or malformed; check API SECRET, algorithm and the raw signature input. |
| 401 | 020009 | CurTime deviates from server time by more than ±5 minutes; sync the clock and re-sign. |
| 429 | 040001 | Rate limit exceeded; slow down and honor the Retry-After header. |
| 500 | 050001 | Internal platform error; acceptance cannot be confirmed. Keep traceId and contact support — do not blindly resend. |
RCS-specific error codes (150xxx)
150xxx is the RCS/MMS pre-acceptance validation range: when hit, the corresponding item is not accepted. See 150xxx — RCS / MMS for details; 151xxx is reserved for delivery results and unused in this release.
| HTTP | code | Meaning and handling |
|---|---|---|
| 422 | 150001 | Destination requires template sending: an Indonesian number was sent without the TEMPLATE type; resend as a template message. |
| 422 | 150002 | Template variables missing: supply all parameters required by the template and resubmit. |
| 503 | 150003 | No available channel matched for the supplier template: retry later; contact support if it persists. |
| 422 | 150004 | No valid sender linked: configure senders for the app key in the console. |
| 503 | 150005 | No available channel matched for MMS: retry later; contact support if it persists. |
| 422 | 150006 | Duplicate content blocked: marketing content hit the duplicate-similarity rule; adjust the content and resubmit. |
| 422 | 150007 | Sending frequency blocked: marketing content hit the per-sender frequency rule; lower the frequency and retry. |
| 422 | 150008 | Template not approved: the template review status is not "approved"; use an approved template. |
| 422 | 150009 | Recipient on blocklist: stop sending to this number and follow your compliance process; do not auto-resend. |
For the RCS API contract see Send an RCS message; for the common code structure and other product ranges see the error code overview.
Last updated on