Error Codes & Server Responses
Introduction into Smobilpay Error Categories
Error Code Category | Description | When it can occur | How are they transmitted |
---|---|---|---|
API Errors |
|
|
|
Payment Errors |
|
|
|
API Error Codes
Find below a list of error codes that could be returned by the Smobilpay S3P API during processing of requests in the HTTP response object.
HTTP Error Message Object
All errors are returned as a valid JSON object and contain the following information:
Field | Description |
---|---|
devMsg | Verbose, plain language description of the problem for the app developer with hints about how to fix it, if applicable. |
usrMsg | High level error message that can be passed on to the actual user - if required. |
respCode | Unique error response code identifying the issue. We recommend you use this code for internal error handling. |
Link | Link to documentation for this error response code – if available |
Example
GET /ping HTTP 1.1
status code: 400
{
"devMsg" : "Access token invalid",
"usrMsg" : "Authentication error when connecting to service",
"respCode" : 4009,
"link" : "http://support.maviance.com/"
}
Common Error Codes
These error codes can occur on any endpoint, usually due to wrong or invalid parameter values being sent
Error Code | HTTP Code | Message / Meaning | Recommended Action |
---|---|---|---|
4000 | 400 | Authorization HTTP header is provided, but invalid | Correct Authentication Implementation
|
4001 | 400 | Authorization HTTP header is missing in request | Correct Authentication Implementation
|
4002 | 400 | One or more HTTP header parameters are incorrect | Correct Authentication Implementation
|
4005 | 400 | Nonce already used | Correct Authentication Implementation
|
4006 | 400 | Signature does not pass server validation | Correct Authentication Implementation
|
4007 | 400 | Signature method not supported | Correct Authentication Implementation
|
4008 | 400 | Timestamp is too old | Correct Authentication Implementation
|
4009 | 400 | Access token used in authorization is invalid | Ensure correct credentials are being used |
40003 | 401 | User token is not recognized | Ensure correct credentials are being used |
4105 | 400 | One or more mandatory parameters are missing | Correct error in request and retry |
4106 | 400 | One or more mandatory parameters are empty | Correct error in request and retry |
60020 | 400 | Access outside configured workhours | Retry during workhours. Contact support to adapt configuration if necessary |
40001 | 400 | HTTP Type not supported | Correct error in request and retry |
40002 | 500 | Internal service exception | Contact support for details |
40004 | 401 | User account does not have access to this API | Ensure correct credentials are being used |
40005 | 401 | Internal service authentication error | Contact support for details |
40007 | 400 | Internal service communication error | Contact support for details |
40010 | 400 | Missing mandatory fields in request | Correct error in request and retry |
40014 | 400 | Company is not yet enabled | Contact support for details to activate your collector company account |
40015 | 400 | User provide in credentials does not exist | Contact support for details |
40302 | 400 | One or more input parameters are invalid or contain invalid values | Check error message and correct accordingly |
40602 | 400 | Service unknown. You likely used an incorrect or no longer active service id | Correct error in request and retry. Please validate input against configuration details of service. |
40603 | 400 | Merchant unknown. You likely used an incorrect or no longer active merchant code | Correct error in request and retry. Please validate input against configuration details of service. |
5000 | 500 | Server Error | Contact support for details |
5010 | 500 | Server error | Contact support for details |
50000 | 500 | Server exception | Contact support for details |
Endpoint Specific HTTP Resposne Errors
The error codes below are specific to the context of the endpoint called
GET /v2/verify
Error Code | HTTP Code | Message / Meaning | Recommended Action |
---|---|---|---|
40408 | 400 | This service does not allow a precollection verification of the service number | Correct error in request and retry. Please validate input against configuration details of service. |
GET /v2/historystd
Error Code | HTTP Code | Message / Meaning | Recommended Action |
---|---|---|---|
4107 | 400 | Too many optional filter parameters were provided in the request. | Correct error in request and retry |
4201 | 400 | Invalid service id | Correct error in request and retry |
40011 | 400 | Error when requesting a search with more than 1 filter | Correct error in request and retry |
GET /v2/subscription
Error Code | HTTP Code | Message / Meaning | Recommended Action |
---|---|---|---|
4107 | 400 | Too many optional filter parameters were provided in the request. | Correct error in request and retry |
4201 | 400 | Invalid service id | Correct error in request and retry |
40011 | 400 | Error when requesting a search with more than 1 filter | Correct error in request and retry |
40605 | 400 | Service type of service does not match requested type. You have passed in a service that is not supported by the endpoint | Correct error in request and retry |
40611 | 400 | Service temporarily deactivated for maintenance work | Try again later |
41004 | 400 | Gateway to service provider temporarily unavailable. | Try again later |
GET /v2/bill
Error Code | HTTP Code | Message / Meaning | Recommended Action |
---|---|---|---|
4201 | 400 | Invalid service id | Correct error in request and retry |
4210 | 400 | Wrong service type for endpoint | Correct error in request and retry |
40011 | 400 | Error when requesting a search with more than 1 filter | Correct error in request and retry |
40013 | 400 | Endpoint is called with empty search parameters | Contact support for details |
40301 | 400 | Item no longer available for payment | Time between search and payment was to great. Restart payment process from beginning |
40605 | 400 | Service type of service does not match requested type. You have passed in a service that is not supported by the endpoint | Correct error in request and retry |
40611 | 400 | Service temporarily deactivated for maintenance work | Try again later |
41004 | 400 | Gateway to service provider temporarily unavailable. | Try again later |
POST /v2/collectstd
Error Code | HTTP Code | Message / Meaning | Recommended Action |
---|---|---|---|
4202 | 400 | Invalid email address | Correct error in request and retry |
4204 | 400 | Invalid phone number | Correct error in request and retry |
40201 | 400 | Insufficient account balance | Topup your account with Smobilpay |
40202 | 400 | Collection limit exceeded | Contact support to discuss raising your limit |
40301 | 400 | Item no longer available for payment | Time between search and payment was to great. Restart payment process from beginning |
40303 | 400 | Error during collection process | Check error message and correct accordingly |
40305 | 400 | Destination blocked | The destination chose has been blocked by the system due to suspected fraud. Contact support for details |
40609 | 400 | This payment item id is no longer valid or has already been used for another payment | Re-retrieve the payment item id from the appropriate endpoint and restart the process |
40611 | 400 | Service temporarily deactivated for maintenance work | Try again later |
41004 | 400 | Gateway to service provider temporarily unavailable. | Try again later |
POST /v2/quotestd
Error Code | HTTP Code | Message / Meaning | Recommended Action |
---|---|---|---|
4203 | 400 | Invalid merchant code | Correct error in request and retry |
4207 | 400 | Invalid payment item id. Improper format | Correct error in request and retry |
40304 | 400 | Error with pricing calculation for the selected payment item | Contact support for details |
40402 | 400 | No pricing has been setup for the service you are trying to execute a payment for | Contact support for details |
40404 | 400 | The amount provided is not valid for this entity. You are injecting a custom price for a fixed price package. | Correct error in request and retry. Please validate input against configuration details of service. |
40405 | 400 | Amount is too small for collections | Correct amount and retry |
40406 | 400 | The amount provided is not valid for this entity. Partial payments are not allowed | Correct error in request and retry. Please validate input against configuration details of service. |
40407 | 400 | The amount provided is not valid for this entity. Overpayments are not allowed | Correct error in request and retry. Please validate input against configuration details of service. |
40409 | 400 | Payment amount outside of allowed range or proper denomination for this service | Correct error in request and retry. Please validate input against configuration details of service. |
40606 | 400 | The Payment Item Id provide is synactically incorrect | Re-retrieve the payment item id from the appropriate endpoint and restart the process |
40610 | 400 | Quote could not be created | Re-request a new quote |
40611 | 400 | Service temporarily deactivated for maintenance work | Try again later |
44001 | 400 | AML Block Service amount exceeds maximum allowed AML amount limit for a single transaction | Correct amount in request and retry |
Payment Errors
Payment errors are errors that are usually directly related with a payment transaction (bill payment, collection, cash-in/cash-out etc) providing details as to why a transaction was accepted but ulitmately failed to be exeucted. You will only find these error codes in the errorCode
property of the response object
Find below a list of error codes in the transaction object returned by
/verifytx
endpoint/historystd
endpoint
Note: These error codes below will not be returned as an HTTP response error code!
Sample Responses for different error endpoints
GET /v2/verifytx
GET /verifytx HTTP 1.1
status code: 200
{
"ptn": "99999164577717700069821234567890",
"merchant": "CMMTNMOMO",
"serviceid": "90003",
"timestamp": "2022-02-25T08:19:37+00:00",
"receiptNumber": "9999931234567890",
"veriCode": "5411da",
"clearingDate": null,
"trid": "1234567800",
"priceLocalCur": 35000.00,
"priceSystemCur": 35000.00,
"localCur": "XAF",
"systemCur": "XAF",
"pin": null,
"status": "ERRORED",
"payItemId": "S-113-948-CMMTNMOMO-90003-200544-1",
"payItemDescr": null,
"errorCode": 702102
}
GET /v2/historystd
GET /historystd HTTP 1.1
status code: 200
{
"ptn": "99999164577717700069821234567890",
"merchant": "CMMTNMOMO",
"serviceid": "90003",
"timestamp": "2022-02-25T08:19:37+00:00",
"receiptNumber": "9999931234567890",
"veriCode": "5411da",
"clearingDate": null,
"trid": "1234567800",
"priceLocalCur": 35000.00,
"priceSystemCur": 35000.00,
"localCur": "XAF",
"systemCur": "XAF",
"pin": null,
"status": "ERRORED",
"payItemId": "S-113-948-CMMTNMOMO-90003-200544-1",
"payItemDescr": null,
"errorCode": 702102
}
Callback Response Body
POST /{exampleEndpoint} HTTP/1.1
X-Delivery: 72d3162e-cc78-11e3-81ab-4c9367dc0958
X-Ptn: 99999152778369900057856272351928
X-Signature: 13c3bda9ff43530abc8ae63755d9bb101e554c94
Content-Type: application/json
Content-Length: 89
{
"timestamp":"2018-05-31 16:21:40",
"trid":"13550",
"errorCode": "702102",
"status":"ERRORED"
}
Error Codes
Error Code | Description | Recommended Action |
---|---|---|
0 | Transaction processing did not trigger an error - it’s either still being processed or was already successfully processed. | No error. Check the payment status. |
2 | Transaction is under investigation | Contact support for details |
3 | Transaction has been reversed | Contact support for details |
40401 | No free vouchers available | No free vouchers available |
40701 | Payment ran into timeout during execution and was errored | Re-request a new quote and retry |
41002 | Gateway balance insufficient | Try again later. Contact support if issue persists |
41004 | Gateway to service provider temporarily unavailable. | Try again later |
60001 | No open agent session | Contact support for details |
60003 | Company session is not open | Contact support for details |
60010 | Invalid drawer assignment | Contact support for details |
702000 | Transaction failed due to a general payment error | Contact support for details |
702100 | Transaction failed when initializing communications with the service provider | Contact support if this error persists during retry |
702101 | Destination does not match expected value range. For example: The MSISDN may not within the number range accepted by the Service Provider | Correct error in request and retry. Please validate input against configuration details of service. |
702102 | The transaction was rejected because the amount is below the acceptable threshold | Correct error in request and retry. Please validate input against configuration details of service. |
702103 | The transaction was rejected because the amount is above the acceptable threshold | Correct error in request and retry. Please validate input against configuration details of service. |
702105 | The transaction timeout at the level of Service Provider | Check the payment status. It has to be moved to a clear ERROR or SUCCESS and act accordingly. |
702106 | Transaction failed. The Service Provider could not be reached temporarily (during transaction initialization phase) | Try again later. Contact support if issue persists. |
703000 | Transaction failed due to a general business error. | Contact support for details |
703020 | The Service Provider could not be reached temporarily (after transaction initialization phase) | Try again later. Contact support if issue persists. |
703100 | Invalid input in request - one or more fields of the payment input request are invalid and were rejected | Correct error in request and retry. Please validate input against configuration details of service. |
703102 | Service Provider has rejected the transaction | Try again. Contact support for details if issue persists. |
703103 | Recipient account with Service Provider is blocked | Inform customer |
703104 | Sender account with Service Provider is blocked | Inform customer |
703105 | Service Provider does not know the recipient (account) of the transaction | Inform customer |
703106 | Service provider does not know the Sender/Initiator Account of the transaction | Inform customer |
703107 | Recipient Account does not have sufficient funds with the Service Provider to perform this transaction. | Inform customer |
703108 | Initiator (sender) Account does not have sufficient funds with the Service Provider to perform this transaction | Inform customer |
703109 | Service Provider rejected the transaction because the amount is below the threshold allowed | Correct error in request and retry. Please validate input against configuration details of service. |
703110 | Service Provider rejected the transaction because the amount is above the threshold allowed | Correct error in request and retry. Please validate input against configuration details of service. |
703111 | Sender/Initiator account has exceeded the limit (daily, weekly, monthly etc) with the Service Provider | Inform customer |
703112 | Recipient account has exceeded the limit (daily, weekly, monthly etc) with the Service Provider | Inform customer |
703113 | Payment Item (e.g. for bill payments) is no longer available for payment or has already been paid | Retrieve currently available payment item id based on service type |
703114 | The Service Provider has rejected the transaction amount. Invalid Amount in the transaction | Correct error in request and retry. Please validate input against configuration details of service. |
703117 | The Service Provider does not support the Account number in the transaction. | Inform customer |
703201 | Payment requires a customer confirmation to complete. Confirmation has not been given by customer. | Inform customer |
703202 | Customer has rejected the payment / denied the approval of the transaction. The transaction cannot complete without the customer confirmation. | Inform customer. Retry payment. |
703203 | Customer has provided Wrong/Invalid approval credentials which resulted in a rejection of the transaction by the Service Provider (e.g. wrong/invalid PIN, expired OTP, etc.). The transaction cannot complete without the customer confirmation. | Inform customer. Retry payment. |
703401 | Error indicating that the connector could not find the transaction in the Service Provider System when performing a status check. | Contact support for details |
703501 | Technical error during validation of payment with service provider | Contact support for details |
703503 | Service provider system is under maintenance | Try again. Contact support for details if issue persists. |
704000 | Technical error | Contact support for details |
704003 | Payment processing error | Contact support for details |
704004 | The time between searching for and paying for a payable item was too long and has expired. | Please retry from start |
704005 | Technical error during validation of payment with service provider | Contact support for details |
704006 | Unknown response provided by Service Provider | Contact support for details |
705000 | Unexpected technical error | Contact support for details |
705010 | Timeout during communication with service provider | Try again later. Contact support if issue persists. |
705020 | Timeout during communication with service provider | Try again later. Contact support if issue persists. |
705030 | Timeout during communication with service provider | Try again later. Contact support if issue persists. |
90000 | Internal server error | Try again later. Contact support if issue persists. |