Error Codes
Error code reference for the SmartOTP. Covers every code returned by the API. Codes raised by the Mobile SDK are out of scope for this page.
How to Read an Error
WARNING
SmartOTP uses code: 1 for success, unlike eKYC, eID and FaceAuthen which use code: 0. Sharing one response handler across all four services will misread every SmartOTP result.
json
{
"success": true,
"code": 1,
"message": "Success"
}Error messages are returned in Vietnamese. They are reproduced verbatim below, with an English gloss.
Error Code Table
| Code | Message | Meaning |
|---|---|---|
1 | Success (OTP hợp lệ) | Success |
3 | Parameter invalid | Invalid parameter |
103 | Thông tin Partner không chính xác. | Wrong partner_id or partner_key |
121 | Yêu cầu vượt giới hạn. Vui lòng thử lại sau ít phút. | Rate limit exceeded |
123 | Yêu cầu vượt giới hạn. Vui lòng thử lại sau ít phút. | Rate limit exceeded |
124 | OTP không hợp lệ. | Wrong OTP code |
125 | OTP hết hạn sử dụng. | OTP has expired |
126 | Có lỗi xảy ra vui lòng thử lại. | Unspecified error |
129 | Token không hợp lệ. | Device token wrong or expired |
190001 | Thông tin không hợp lệ, device_id đã kích hoạt Soft-OTP | Device already activated |
190005 | SmartOTP đang kích hoạt trên một thiết bị khác. | Retire the old device first |
190108 | Tài khoản chưa hoạt động. | SmartOTP not activated |
190201 | Không thể tạo transaction hoặc transaction_id đã tồn tại | Duplicate transaction_id |
190203 | Không tìm thấy transaction. | Wrong transaction_id |
190301 | Period không chính xác. | Wrong period parameter |
190303 | Client time không chính xác. | Device clock drift |
Error Codes by Endpoint
| Endpoint | Possible codes |
|---|---|
| Register | 3 103 121 126 190001 |
| Activate | 3 103 121 123 124 125 126 129 |
| Get Status | 103 190005 |
| Retire | 3 103 126 129 |
| Create Transaction | 3 103 126 129 190108 190201 |
| Get Transaction | 3 103 126 129 190108 190203 |
| Get Latest Transaction | 3 103 129 190108 190203 |
| Sync Time | 103 129 190108 190301 190303 |
| Validate OTP | 103 121 123 124 126 129 190108 190203 |
Common Failures
| Situation | Code | What to do |
|---|---|---|
| User enters a correct OTP but it is rejected | 124 | Usually clock drift — call Sync Time |
| Cannot activate a new device | 190005 | Call Retire on the old device first |
| Create transaction fails | 190201 | Generate a new transaction_id; do not retry the same value |
| Activation key expired | 125 | Call Register again for a fresh key |
Next Steps
- Validate OTP — where most errors originate
- Sync Time — resolving clock drift that causes OTP failures