Status Codes
The following tables describe status code values the Charge To Account Gateway may return in:
- HTTP API request outcomes
- Notification API - subscription status
- Notification API - outcomeReasonId codes
HTTP API request outcomes
When your application makes a request to the Charge To Account Gateway using the HTTP API, the gateway indicates the outcome of the request in the HTTP response. The HTTP status code returned indicates the general outcome. outcomeReasonId, outcome and outcomeReasonText are included in the body of the response.
| outcomeReasonId | HTTP status code | outcome | outcomeReasonText | Notes |
| 1000 | 200 | success | Request was successful. | |
| 2001 | 200 | userinputrequired | User confirmation required. | |
| 2002 | 200 | userinputrequired | Missing information that requires user input. | This means that the end user's mobile browser must visit the supplied redirectUrl. |
| 3000 | 403 | rejected | Missing username. | |
| 3001 | 403 | rejected | Missing password. | |
| 3002 | 403 | rejected | Missing action. | |
| 3003 | 403 | rejected | Missing transactionMode. | |
| 3004 | 403 | rejected | Missing transactionId. | |
| 3005 | 403 | rejected | Missing subscriptionId. | |
| 3006 | 403 | rejected | Missing product information. | |
| 3007 | 403 | rejected | Missing unique user identifier. | |
| 3032 | 403 | rejected | Missing product name. | |
| 3033 | 403 | rejected | Missing product description. | |
| 3034 | 403 | rejected | Missing product category. | |
| 3035 | 403 | rejected | Missing product subcategory. | |
| 3036 | 403 | rejected | Missing product group. | |
| 3037 | 403 | rejected | Missing amount. | |
| 3038 | 403 | rejected | Missing currency. | |
| 3039 | 403 | rejected | Missing isAdult. | |
| 3040 | 403 | rejected | Missing subscription duration. | |
| 3041 | 403 | rejected | Missing subscription period. | |
| 3042 | 403 | rejected | Missing subscription period units. | |
| 3043 | 403 | rejected | Missing subscription free period units. | |
| 3044 | 403 | rejected | Missing subscription grace period units. | |
| 3045 | 403 | rejected | Missing subscription suspended period units. | |
| 3046 | 403 | rejected | Missing subscription duration units. | |
| 3047 | 403 | rejected | Missing subscription permitted inactivity period units. | |
| 3048 | 403 | rejected | Missing subscription permitted billing failure period units. | |
| 3100 | 403 | rejected | Invalid username or password. | |
| 3102 | 403 | rejected | Invalid action. | |
| 3103 | 403 | rejected | Invalid transactionMode. | |
| 3104 | 403 | rejected | Invalid transactionId. | |
| 3105 | 403 | rejected | Invalid subscriptionId. | |
| 3106 | 403 | rejected | Invalid productId - product not found. | |
| 3107 | 403 | rejected | Invalid productId - product specified is not a subscription. | |
| 3108 | 403 | rejected | Invalid msisdn | |
| 3110 | 403 | rejected | Invalid Provider or Provider Type(s) according to account permissions. | |
| 3111 | 403 | rejected | Invalid Provider or Provider Type(s) specified - no provider to support request found. | |
| 3112 | 403 | rejected | Invalid Provider Type. | |
| 3113 | 403 | rejected | Invalid brand | |
| 3114 | 403 | rejected | Invalid service delivery message | |
| 3116 | 403 | rejected | Only a charity brand can use gift aid | |
| 3130 | 403 | rejected | Invalid note. | |
| 3131 | 403 | rejected | Invalid subaccount. | |
| 3132 | 403 | rejected | Invalid product name. | |
| 3133 | 403 | rejected | Invalid product description. | |
| 3134 | 403 | rejected | Invalid product category. | |
| 3135 | 403 | rejected | Invalid product subcategory. | |
| 3136 | 403 | rejected | Invalid product group. | |
| 3137 | 403 | rejected | Invalid amount. | |
| 3138 | 403 | rejected | Invalid currency. | |
| 3139 | 403 | rejected | Invalid isAdult. | |
| 3140 | 403 | rejected | Invalid subscription duration. | |
| 3141 | 403 | rejected | Invalid subscription period. | |
| 3142 | 403 | rejected | Invalid subscription period units. | |
| 3143 | 403 | rejected | Invalid subscription free period units. | |
| 3144 | 403 | rejected | Invalid subscription free period. | |
| 3145 | 403 | rejected | Cannot have opt ins in when confirmation page is none | |
| 3146 | 403 | rejected | Invalid subscription grace period. | |
| 3147 | 403 | rejected | Invalid subscription grace period units. | |
| 3148 | 403 | rejected | Invalid subscription suspended period. | |
| 3149 | 403 | rejected | Invalid subscription suspended period units. | |
| 3150 | 403 | rejected | Invalid parameter(s) for subscription. | |
| 3151 | 403 | rejected | Invalid parameter(s) for subscription. | |
| 3152 | 403 | rejected | Invalid subscription duration units. | |
| 3153 | 403 | rejected | Invalid subscription permitted billing failures. | |
| 3154 | 403 | rejected | Invalid subscription permitted inactivity period. | |
| 3155 | 403 | rejected | Invalid subscription permitted inactivity period units. | |
| 3156 | 403 | rejected | Invalid subscription permitted billing failure period. | |
| 3157 | 403 | rejected | Invalid subscription permitted billing failure period units. | |
| 3158 | 403 | rejected | Invalid subscription charge validity. | |
| 3159 | 403 | rejected | Invalid network. | |
| 3160 | 403 | rejected | Invalid post confirmation page. | |
| 3161 | 403 | rejected | Brand does not support single click charges. | |
| 3162 | 403 | rejected | Invalid channel. | |
| 3163 | 403 | rejected | Brand does not support crediting. | |
| 3164 | 403 | rejected | Insufficient credit. | |
| 3165 | 403 | rejected | Maximum credit for that user exceeded | |
| 3166 | 403 | rejected | The IP address is not allowed | |
| 3167 | 403 | rejected | Maximum verifications for that user exceeded | |
| 3168 | 403 | rejected | Maximum verifications for this account | |
| 3170 | 403 | rejected | Brand does not support user charges | |
| 3200 | 403 | rejected | Invalid currency and amount combination according to account policy | |
| 3301 | 403 | rejected | Invalid ageverification parameter | |
| 4000 | 403 | rejected | A technical error has occurred | |
| 4001 | 403 | rejected | No applicable mobile payment method could be found. | |
| 4300 | 403 | rejected | Transaction notify not possible ; either the transaction is not serviceable directly or is in the wrong state. | |
| 4400 | 403 | rejected | Subscription notify not possible ; either the subscription is not serviceable directly or is in the wrong state. | |
| 5000 | 403 | rejected | This action is currently unsupported | |
Notification API - outcomeReasonId codes
Notifications from the Charge To Account Gateway to your application's notification URL use an outcomeReasonId code to provide a detailed reason for a failure or status change.
There is one set of codes for outcomes of transactions and another set for subscription status changes. The tables below give the meanings of the codes.
The outcomeReasonId is sent by the gateway in decimal, but needs to be converted to hexadecimal for interpretation. The bytes are then counted from left to right. For example, an outcome code of 197121 would equal 0x00030201 in hexadecimal; the first byte is 0x00, the second byte is 0x03, the third byte is 0x02 and the fourth byte is 0x01.
Additional failure reason codes may be added in future. Where possible the codes will be structured to fit into the existing second, third and fourth bytes. However, other values may need to be introduced.
Transaction failure outcomeReasonId codes
| First byte | Second byte | Third byte | Fourth byte | ||||||
| First nibble | Second nibble | ||||||||
| 0x0 | Failure | 0x0 | Transaction | 0x00 | Account failure | 0x00 | Invalid account | 0x00 | Account number is not valid |
| 0x01 | Start date is incorrect | ||||||||
| 0x02 | Expiry date is incorrect | ||||||||
| 0x03 | CVV is incorrect | ||||||||
| 0x01 | Not billable | 0x00 | Account barred | ||||||
| 0x01 | Account type not supported: Billing of Pre-Pay account not supported | ||||||||
| 0x02 | Account type not supported: Issuer/Reseller does not support billing | ||||||||
| 0x03 | No applicable payment method could be found | ||||||||
| 0x04 | No applicable mobile payment method could be found | ||||||||
| 0x06 | Account barred by corporate policy | ||||||||
| 0x02 | Holder not accepted | 0x00 | The account holder did not accept the charge | ||||||
| 0x03 | Not verified | 0x00 | Account holder not verified to receive this class of Adult content | ||||||
| 0x01 | Credit control | 0x00 | Insufficient credit | 0x00 | Insufficient credit in account | ||||
| 0x01 | Credit limit exceeded | 0x00 | Daily credit limit exceeded | ||||||
| 0x01 | Monthly credit limit exceeded | ||||||||
| 0x02 | Other credit limit exceeded | ||||||||
| 0x02 | Fraud control | 0x00 | Blacklisted | 0x00 | Account is blacklisted | ||||
| 0x01 | Duplicate | 0x00 | Transaction appears to be a duplicate | ||||||
| 0x03 | Permanent system failure | 0x01 | At provider | 0x00 | System failure | ||||
| 0x01 | System failure - mobile | ||||||||
| 0x02 | At MX Telecom | 0x00 | System failure | ||||||
| 0x04 | Temporary system failure | 0x00 | At account | 0x00 | Sim card full | ||||
| 0x01 | At provider | 0x00 | System failure | ||||||
| 0x01 | System failure - mobile | ||||||||
| 0x02 | At MX Telecom | 0x00 | System failure | ||||||
| 0x05 | Time out | 0x00 | User | 0x00 | User input timed out | ||||
| 0x01 | System | 0x00 | Authorization timed out | ||||||
| 0x01 | Confirmation timed out | ||||||||
| 0x02 | Age Verification timed out | ||||||||
| 0x06 | Single Click | 0x00 | Single Click charge failure | 0x00 | Single click image not viewed | ||||
| 0x01 | Single click image mismatch |
||||||||
| 0x02 | Single click charge expired | ||||||||
| 0x03 | Single click charge invalid | ||||||||
| 0x07 | Web Payforit | 0x00 | Unable to validate request | 0x00 | Incorrect pin entered | ||||
Examples of transaction failure reason codes:
| Reason Code (decimal) |
Reason Code (hexadecimal) |
First byte | Second byte | Third byte | Fourth byte | Reason |
|---|---|---|---|---|---|---|
| 257 | 0x00000101 | 0x00 | 0x00 | 0x01 | 0x01 | Prepay billing account not supported |
| 65793 | 0x00010101 | 0x00 | 0x01 | 0x01 | 0x01 | Monthly credit limit exceeded |
| 327680 | 0x00050000 | 0x00 | 0x05 | 0x00 | 0x00 | Userinput timed out |
Subscription status outcomeReasonId codes
| First byte | Second byte | Third byte | Fourth byte | ||||||
| First nibble | Second nibble | ||||||||
0x0 |
Failure |
0x1 |
Subscription |
0x00 |
Account failure |
0x00 |
|
0x00 |
Account failure |
|
|
|
|
|
|
0x01 |
Not billable |
0x03 |
No applicable payment method could be found |
|
|
|
|
|
|
|
|
0x04 |
No applicable mobile payment method could be found |
|
|
|
|
|
|
|
|
0x05 |
Handset not using a WAP connection |
|
|
|
|
|
|
0x03 |
Not verified |
0x00 |
Account holder not verified to receive this class of Adult content |
|
|
|
|
0x03 |
Permanent system failure |
0x00 |
At account |
0x00 |
Sim card full |
|
|
|
|
|
|
0x01 |
At provider |
0x00 |
System failure |
|
|
|
|
|
|
0x02 |
At MX Telecom |
0x00 |
System failure |
|
|
|
|
0x04 |
Temporary system failure |
0x00 |
At account |
0x00 |
Sim card full |
|
|
|
|
|
|
0x01 |
At provider |
0x00 |
System failure |
|
|
|
|
|
|
0x02 |
At MX Telecom |
0x00 |
System failure |
|
|
|
|
0x05 |
Subscription status error |
0x00 |
Subscription ending or terminated |
0x00 |
Subscription has been unsubscribed. No further actions can occur |
|
|
|
|
|
|
|
|
0x01 |
Subscription has been cancelled or failed to confirm. No further actions can occur |
|
|
|
|
|
|
|
|
0x02 |
Subscription is concluding. No further actions can occur |
|
|
|
|
|
|
|
|
0x03 |
Subscription unsubscribed: Subscription has reached end of defined duration |
|
|
|
|
|
|
0x01 |
Subscription subscribe failed |
0x00 |
Authorization timed out |
|
|
|
|
|
|
|
|
0x01 |
Confirmation timed out |
|
|
|
|
|
|
|
|
0x02 |
Userinput timed out |
|
|
|
|
|
|
|
|
0x03 |
First charge failed |
|
|
|
|
|
|
|
|
0x04 |
General error |
|
|
|
|
|
|
|
|
0x05 |
Authorization timed out |
|
|
|
|
|
|
0x02 |
Subscription unsubscribe rejected |
0x00 |
Subscription is not currently subscribed |
|
|
|
|
|
|
0x01 |
General error |
||
|
|
|
|
|
|
0x03 |
Subscription conclude rejected |
0x00 |
Subscription is currently billing |
|
|
|
|
|
|
|
|
0x01 |
General error |
|
|
|
|
|
|
0x04 |
Subscription restore rejected |
0x00 |
Subscription is not currently concluding or suspending |
|
|
|
|
|
|
|
|
0x01 |
General error |
| 0x02 | Cannot restore when user requested STOP. | ||||||||
|
|
|
|
|
|
0x05 |
Subscription cancel rejected |
0x00 |
Subscription has already been confirmed |
|
|
|
|
|
|
|
|
0x01 |
General error |
|
|
|
|
|
|
0x06 |
Subscription confirm rejected |
0x00 |
Subscription already confirmed |
|
|
|
|
|
|
|
|
0x01 |
General error |
|
|
|
|
0x06 |
|
0x00 |
Subscription charge rejected |
0x00 |
Maximum number of pending charges reached |
|
|
|
|
|
|
|
|
0x01 |
General error |
|
|
|
|
|
|
0x01 |
Subscription charge unsuccessful |
0x00 |
Charge validity period expired before previous charge completed |
|
|
|
|
|
|
|
|
0x01 |
General error |
|
|
|
|
0x07 |
Web Payforit error |
0x00 |
Subscription subscribe failed |
0x00 |
Incorrect pin entered |
0x1 |
Success |
0x1 |
Subscription |
0x01 |
Subscription status |
0x00 |
Subscribe success |
0x00 |
Subscription subscribe request successful |
|
|
|
|
|
|
0x01 |
Subscription unsubscribed |
0x00 |
Subscription unsubscribe request successful |
|
|
|
|
|
|
|
|
0x01 |
Suspended period timeout |
|
|
|
|
|
|
|
|
0x02 |
Permitted inactivity period timeout |
|
|
|
|
|
|
|
|
0x03 |
Permitted billing failure period timeout |
|
|
|
|
|
|
|
|
0x04 |
Permitted number of consecutive billing failures exceeded |
|
|
|
|
|
|
|
|
0x05 |
Permitted number of consecutive failed SMS exceeded |
|
|
|
|
|
|
|
|
0x06 |
Concluded |
| 0x07 | User requested STOP | ||||||||
| 0x08 | Subscription unsubscribe network request successful | ||||||||
| 0x02 | Subscription concluded | 0x00 | Request successful | ||||||
| 0x01 | User requested STOP | ||||||||
|
|
|
|
|
|
0x03 |
Subscription restored |
0x00 |
Request successful |
|
|
|
|
|
|
0x04 |
Subscription cancelled |
0x00 |
Request successful |
|
|
|
|
|
|
0x05 |
Subscription confirmed |
0x00 |
Request successful |
|
|
|
|
0x02 |
Charge status |
0x01 |
Charged |
0x00 |
Billing complete: billing successful. |
Examples of subscription failure reason codes:
| Reason Code (decimal) |
Reason Code (hexadecimal) |
First byte | Second byte | Third byte | Fourth byte | Reason |
|---|---|---|---|---|---|---|
| 16777477 | 0x01000105 | 0x01 | 0x00 | 0x01 | 0x05 | Handset not using a WAP connection |
| 17039360 | 0x01040000 | 0x01 | 0x04 | 0x00 | 0x00 | Sim card full |
| 285278464 | 0x11010100 | 0x11 | 0x01 | 0x01 | 0x00 | Subscription subscribe request successful |
Crediting failure outcomeReasonId codes
| First byte | Second byte | Third byte | Fourth byte | ||||||
| First nibble | Second nibble | ||||||||
| 0x0 | Failure | 0x3 | Crediting | 0x01 | Credit Control | 0x00 | 0x00 | Insufficient credit on account | |
| 0x01 | 0x02 | Credit total for this network exceeded. | |||||||
| 0x01 | 0x03 | Credit total for this MSISDN exceeded. | |||||||
| 0x03 | Permanent system failure | 0x01 | At Mobile Network | 0x00 | General failure | ||||
| 0x01 | MSISDN is barred from crediting | ||||||||
| 0x02 | MSISDN unrecognised by Network | ||||||||
| 0x03 | Network exceeded crediting capacity | ||||||||
| 0x04 | Network exceeded crediting capacity for this MSISDN | ||||||||
| 0x05 | Unsupported billing type | ||||||||
| 0x06 | Unsupported MVNO | ||||||||
| 0x02 | At MX Telecom | 0x00 | General failure | ||||||
| 0x01 | Invalid price point | ||||||||
| 0x02 | Mobile network is supported but not configured on your account | ||||||||
| 0x04 | Temporary system failure | 0x01 | At Mobile Network | 0x00 | General failure, failed after multiple retries | ||||
| 0x01 | Unable to connect to mobile network | ||||||||
| 0x02 | Mobile network exceeded crediting capacity | ||||||||
| 0x03 | Mobile network exceeded crediting capacity for this MSISDN | ||||||||
| 0x04 | Mobile network unable to identify billing type | ||||||||
| 0x02 | At MX Telecom | 0x00 | General failure | ||||||
| 0x01 | Unrecognised mobile network | ||||||||

