# API Error codes

Movider API of <http://api.movider.co> might return the error codes:

### Internal error

| Code | Name | Description |
| :--- | :--- | :--- |
| 1 | **ERR\_SYSTEM\_FAILURE** | System failure. |
| 4 | **ERR\_DB\_RECOVERING** | Database recovering. |
| 5 | **ERR\_DB\_RECOVERED\_FAIL** | Database recovered fail. |
| 6 | **ERR\_Q\_RECOVERING** | Queue recovering. |
| 7 | **ERR\_Q\_RECOVERED\_FAIL** | Queue recovered fail. |
| 8 | **ERR\_CACHE\_RECOVERING** | Cache recovering. |
| 9 | **ERR\_CACHE\_RECOVERED\_FAIL** | Cache recovered fail |
| 10 | **ERR\_CONNECTION\_TIMEOUT** | Connection timeout. |
| 11 | **ERR\_CONNECTION\_REFUSED** | Connection refused. |
| 12 | **ERR\_CONNECTION\_FAILURE** | Connection failure. |
| 13 | **ERR\_DB\_FAILURE** | Database failure. |
| 14 | **ERR\_Q\_FAILURE** | Queue failure. |
| 15 | **ERR\_CACHE\_FAILURE** | Cache failure |
| 50 | **ERR\_JSON\_MARSHAL** | Json marshal fail. |
| 51 | **ERR\_JSON\_UNMARSHAL** | Json unmarshal fail. |
| 52 | **ERR\_GIN\_VARIABLE\_NOT\_FOUND** | Gin variable not found. |
| 53 | **ERR\_QUERY\_STRING** | Querystring values fail. |
| 54 | **ERR\_MAKE\_REQUEST** | Can't make request for request to client. |
| 55 | **ERR\_IO\_BODY** | Can't read response from client. |
| 60 | **ERR\_POINTER** | Pointer is nil |
| 407 | **ERR\_IP\_WHITELIST\_FAILURE** | IP whitelist Error. |
| 447 | **ERR\_SENDER\_FAILURE** | Cannot get sender name. |
| 449 | **ERR\_BAD\_COUNTRY\_SPECIFIC\_CONDITION** | Something went wrong of country-specific service condition. |
| 450 | **ERR\_TAG** | Can't create new tag. |
| 455 | **ERR\_RESERVED\_WORD** | Reserved word failed. |
| 457 | **ERR\_GATEWAY\_CONFIG\_ROUTE** | Cannot get gateway config route. |
| 459 | **ERR\_DELIVERY\_VERIFY\_LOG\_DAILY\_FAILURE** | DeliveryLogsVerifyDailyModel: InsertDuplicateKey return error |
| 463 | **ERR\_SMS\_SCHEDULE\_CREATE** | Failed to create a new SMS bulk schedule |
| 464 | **ERR\_SMS\_SCHEDULE\_DETAIL\_CREATE** | Failed to create a new SMS schedule for the phone number |
| 465 | **ERR\_SMS\_SCHEDULE\_STATUS\_UDATE** | Failed to update the SMS schedule status |
| 468 | **ERR\_SMS\_SCHEDULE\_QUERY** | SMS schedule query error |
| 471 | **ERR\_COUNTRY** | Country Unavailable |
| 478 | **ERR\_SENDER\_TH\_FAILURE** | Cannot find sender of Thailand in your sender list. Please contact support to add a new sender of Thailand. |
| 479 | **ERR\_CONTACTS** | Something went wrong about contacts number. |
| 480 | **ERR\_CONTACTS\_BLOCKLIST** | Something went wrong about contacts blocklist number. |
| 481 | **ERR\_CONTACTS\_BLOCKED** | The number is contacts blocked. |
| 482 | **ERR\_GRPC\_SMS\_API** | SMS Sending Procedure has error |
| 483 | **ERR\_GRPC\_SMS\_API** | Can't Set cache for Jasmin DLR |
| 484 | **ERR\_GRPC\_SMS\_API** | Hit rate limit |

### Error code can be

| Code | Name | Description | Possible Cause | Next Action |
| :--- | :--- | :--- | :--- | :--- |
| 0 | **NO\_ERROR** | No error. |  |  |
| 2 | **ERR\_METHOD\_NOT\_ALLOWED** | Method Not Allowed. | The HTTP method is not supported for this endpoint. | Verify that you are using the correct HTTP method (GET/POST) according to the API documentation. |
| 3 | **ERR\_NOT\_FOUND** | Not Found. | The requested endpoint or resource does not exist. | Verify the API endpoint URL and ensure it is correct. |
| 400 | **ERR\_INVALID\_SENDMSG\_FORM** | Send sms form is invalid. | One or more required parameters are missing or invalid. | Review the request body and ensure all mandatory parameters are provided in the correct format. |
| 401 | **ERR\_INVALID\_APIKEY** | api\_key field of send sms form is invalid. | The API Key is invalid or does not exist. | Verify the API Key configured in your application. |
| 402 | **ERR\_INVALID\_APISECRET** | api\_secret field of send sms form is invalid. | The API Secret is invalid. | Verify the API Secret configured in your application. |
| 403 | **ERR\_AUTHENTICATION\_FAILED** | Authentication failed. | The API Key and API Secret combination is incorrect. | Verify both API credentials. If the issue persists, regenerate your API credentials or contact Movider Support via help@movider.co |
| 404 | **ERR\_MEMBER\_NOTFOUND** | Member not found. | The account associated with the API credentials cannot be found. | Verify your account information or contact Movider Support via help@movider.co |
| 405 | **ERR\_MEMBER\_BANNED** | Member has been banned. | The account has been permanently banned. | Contact Movider Support for further assistance via help@movider.co. |
| 406 | **ERR\_MEMBER\_SUSPENDED** | Member has been suspended. | The account has been temporarily suspended. | Contact Movider Support to reactivate your account via help@movider.co |
| 408 | **ERR\_IP\_WHITELIST\_NOT\_ALLOWED** | Your IP not allowed. | The current IP address is not included in your IP Whitelist. | Send the request from an approved IP address or update the whitelist. |
| 409 | **ERR\_INVALID\_TO** | to field of send sms form is invalid. | The destination number parameter is missing or invalid. | Verify the destination number and ensure it follows E.164 format. |
| 410 | **ERR\_RECEIVER\_NUMBER\_OVER\_LIMIT** | Receiver number over limit. | Too many recipient numbers were included in one request. | Reduce the number of recipients per request according to the API limit. |
| 411 | **ERR\_INVALID\_RECEIVER\_NUMBER** | Receivers number are invalid. | One or more recipient numbers are invalid. | Verify the phone number format and country code. |
| 412 | **ERR\_INVALID\_TEXT** | text field of send sms form is invalid. | The message content is empty or contains unsupported characters. | Ensure the message is not empty and contains valid text. |
| 413 | **ERR\_INVALID\_CALLBACK\_URL** | callback\_url of send sms form is invalid. | The callback URL format is invalid or unreachable. | Verify the callback URL and ensure it is publicly accessible. |
| 414 | **ERR\_INVALID\_TAG** | tag of send sms form is invalid. |  |  |
| 415 | **ERR\_REGION\_NOT\_SUPPORT** | Region code not does not support. | SMS service is not supported in the requested region. | Verify that the destination country is supported by Movider. |
| 416 | **ERR\_INSUFFICIENT\_BALANCE** | Insufficient balance | Your available balance is insufficient to send SMS. | Top up your account before sending additional messages. |
| 417 | **ERR\_BALANCE\_EXPIRED** | Credit balance expired. | Your balance has expired. | Renew or top up your balance to continue using the service. |
| 418 | **ERR\_INVALID\_CODE\_LENGTH** | Please choose code\_length between 4 or 6 numbers. | The verification code length is outside the supported range. | Configure the verification code length according to API requirements. |
| 419 | **ERR\_INVALID\_PIN\_EXPIRE** | The pin\_expire field must be on range 120s - 600s | The PIN expiration time is invalid. | Set the PIN expiration time within the supported range. |
| 420 | **ERR\_INVALID\_NEXT\_EVENT\_WAIT** | The next\_event\_wait field must be on range 60s - (pin\_expire-60)s | The waiting interval between verification events is invalid. | Configure a valid wait time according to the API documentation. |
| 421 | **ERR\_LANG\_NOT\_SUPPORT** | The language code does not support. | The specified language is not supported. | Use one of the supported language codes. |
| 422 | **ERR\_ACKNOWLEDGE\_FORM\_INVALID** | Acknowledge verify sms form is invalid. | The acknowledge request contains invalid or missing parameters. | Verify the request parameters before retrying. |
| 423 | **ERR\_CODE\_INVALID** | Code is invalid. | The verification code entered is incorrect. | Verify the code and try again. |
| 424 | **ERR\_REQUEST\_ID\_INVALID** | Request id is invalid. | The Request ID is invalid or does not exist. | Verify the Request ID generated during the verification request. |
| 425 | **ERR\_VERIFY\_SMS\_NOTFOUND** | Verify SMS not found. | No verification SMS record was found. | Verify the Request ID and ensure the verification request exists. |
| 426 | **ERR\_VERIFY\_SMS\_ALREADY\_VERIFIED** | Verify SMS has already verified. | This verification request has already been completed successfully. | No further action is required. Generate a new verification request if needed. |
| 427 | **ERR\_VERIFY\_SMS\_EXPIRED** | Verify SMS has expired. | The verification code has expired. | Generate a new verification code and retry the verification process. |
| 428 | **ERR\_VERIFY\_SMS\_INPROGRESS** | Verify SMS in progress. | The verification process is still active. | Wait until the current verification process completes before retrying. |
| 429 | **ERR\_VERIFY\_SMS\_FAILED** | Verify SMS failed. | The verification process failed. | Verify the code and request information, then retry the verification. |
| 430 | **ERR\_CACHE\_APIKEY\_FORM\_INVALID** | Cache api\_key form is invalid. |  |  |
| 431 | **ERR\_CACHE\_IPWHITELIST\_FORM\_INVALID** | Cache ip\_whitelist form is invalid. |  |  |
| 432 | **ERR\_CACHE\_R\_FORM\_INVALID** | Cache rates of sms form is invalid. |  |  |
| 433 | **ERR\_CACHE\_RV\_FORM\_INVALID** | Cache rates of voice form is invalid. |  |  |
| 434 | **ERR\_CACHE\_RVS\_FORM\_INVALID** | Cache rates of verify successful form is invalid. |  |  |
| 435 | **ERR\_CACHE\_MR\_FORM\_INVALID** | Cache rates for member of sms form is invalid. |  |  |
| 436 | **ERR\_CACHE\_MRV\_FORM\_INVALID** | Cache rates for member of voice sms form is invalid. |  |  |
| 437 | **ERR\_CACHE\_MRVS\_FORM\_INVALID** | Cache rates for member of verify sms form is invalid. |  |  |
| 438 | **ERR\_CACHE\_G\_FORM\_INVALID** | Cache sms gateway form is invalid. |  |  |
| 439 | **ERR\_CACHE\_GV\_FORM\_INVALID** | Cache voice sms gateway form is invalid. |  |  |
| 440 | **ERR\_CACHE\_VT\_FORM\_INVALID** | Cache verify template form is invalid. |  |  |
| 441 | **ERR\_NUMBER\_IS\_VERIFYING** | The receiver number is verifying. | The phone number is currently undergoing another verification process. | Wait for the current verification process to finish before submitting another request. |
| 442 | **ERR\_CANCEL\_FORM\_INVALID** | Cancel verify sms form is invalid. | The cancellation request contains invalid parameters. | Verify the cancellation request format and required parameters. |
| 443 | **ERR\_VERIFY\_NOT\_MATCHED** | Request id and code are not matched. | The verification code does not match the requested verification record. | Verify the code entered by the user and try again. |
| 444 | **ERR\_VERIFY\_SMS\_CANCELLED** | Verify SMS cancelled. | The verification request has already been cancelled. | Generate a new verification request if verification is still required. |
| 445 | **ERR\_INVALID\_CALLBACK\_METHOD** | You can choose callback\_method between POST or GET method. | The callback HTTP method is invalid. | Use a supported callback method (e.g., POST). |
| 446 | **ERR\_OFTEN\_WRONG\_APIKEY** | This api\_key often wrong request. Please wait for a while or contact admin. | Multiple invalid authentication attempts have been detected. | Verify your API credentials before retrying. Contact Support if your account has been temporarily restricted via help@movider.co |
| 448 | **ERR\_COUNTRY\_SPECIFIC\_CONDITION** | This country-specific service condition. | Required country-specific conditions have not been satisfied. | Review the destination country's requirements (e.g., Sender Registration, template approval, URL whitelist). |
| 451 | **ERR\_TAG\_EXIST** | This tag exist. |  |  |
| 452 | **ERR\_TAG\_TOO\_LONG** | Tag is too long 50 characters. |  |  |
| 453 | **ERR\_BALANCE\_FORM** | Balance form is invalid. | The balance request contains invalid parameters. | Verify the request format and required fields. |
| 454 | **ERR\_RESERVED\_WORD\_NOT\_FOUND** | Reserved word not found. |  |  |
| 456 | **ERR\_MEMBER\_TRAIL** | You are a trial member that can use the registered phone number only. | The account is using a trial plan that does not support this operation. | Upgrade your account to access this feature. |
| 458 | **ERR\_USE\_VOICE** | use\_voice possible are Y or N |  |  |
| 460 | **ERR\_SENDER** | Sender is invalid. | The sender name is invalid, missing, or not registered. | Verify the sender name format and ensure it is registered if required by the destination country. |
| 461 | **ERR\_DELIVERY\_DATETIME\_REQUIRED** | Delivery datetime is required | A scheduled delivery time is required but was not provided. | Specify a valid delivery date and time. |
| 462 | **ERR\_DELIVERY\_DATETIME\_AFTER\_CURRENT\_DATETIME** | Delivery datetime must be after current datetime | The scheduled delivery time is earlier than the current time. | Specify a future delivery date and time. |
| 466 | **ERR\_SMS\_SCHEDULE\_ID\_INVALID** | SMS schedule id is invalid | The Schedule ID is invalid. | Verify the Schedule ID before retrying. |
| 467 | **ERR\_SMS\_SCHEDULE\_NOT\_FOUND** | SMS schedule not found | The specified Schedule ID could not be found. | Verify the Schedule ID exists. |
| 469 | **ERR\_INVALID\_API\_KEY\_SECRET** | Invalid API key or secret | The API Key or API Secret is incorrect. | Verify both API credentials before retrying. |
| 470 | **ERR\_SMS\_SCHEDULE\_NOT\_ALLOWED\_CANCEL** | SMS schedule delivery status not allowed to cancel | The scheduled SMS cannot be cancelled because its current status does not allow cancellation. | Verify the schedule status. Only pending or scheduled messages can be cancelled. |
| 472 | **ERR\_COUNTRY\_UNAVAILABLE** | Contact help@movider.co to send to your target country |  |  |
| 485 | **ERR\_RATE\_LIMIT** | Hit rate limit |  |  |
| 486 | **ERR\_SMS\_OUTBOUND\_URL\_THSENDER** | URL detected in the message for Thailand. Please register the URL template with the sender before use by contacts us (help@movider.co) |  |  |
| 487 | **ERR\_INVALID\_TEMPLATE\_TEXT** | Text field template doesn't exist, Please contact contacts us (help@movider.co). |  |  |
| 488 | **ERR\_INVALID\_CHANNEL\_NAME** | Cannot find channel name. |  |  |
| 489 | **ERR\_INVALID\_TEMPLATE** | Template was invalid. |  |  |
| 490 | **ERR\_MISSING\_DYNAMIC\_FIELDS** | The request is missing required dynamic field values for the selected template. |  |  |
| 491 | **ERR\_WALLET\_NOT\_FOUND** | Your wallet are not found. |  |  |
| 492 | **ERR\_TEMPLATE\_NOT\_FOUND** | Your whatsapp template are not found. |  |  |
| 493 | **ERR\_TEMPORARILY\_RESTRICTED\_MESSAGE** | Action temporarily restricted for security reasons. |  |  |

Following properties:

* `code` **integer**: Error code
* `name` **string**: Error name
* `description` **string**: Readable error description
* `possible_cause` **string** (optional): Likely reason for the error, when available
* `next_action` **string** (optional): Suggested fix, when available

```json
{
  "error": {
    "code": 462,
    "name": "ERR_DELIVERY_DATETIME_AFTER_CURRENT_DATETIME",
    "description": "Delivery datetime must be after current datetime",
    "possible_cause": "The scheduled delivery time is earlier than the current time.",
    "next_action": "Specify a future delivery date and time."
  }
}
```
