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 |
| 1000 | 200 | success | Request was successful. |
| 2001 | 200 | userinputrequired | User confirmation required. |
| 2002 | 200 | userinputrequired | Missing information that requires user input. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 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. |
| 3145 | 403 | rejected | Cannot have opt ins in when confirmation page is none |
| 3200 | 403 | rejected | Invalid currency and amount combination according to account policy |
| 5000 | 403 | rejected | This action is currently unsupported |
Notification API - subscription status (deprecated)
reasonid and reasontext are sent in notifications from the Charge To Account Gateway to your application's notification URL, but they are deprecated; your application should interpret the subscription outcomeReasonId codes below instead.
| reasonid | reasontext |
| 4000 | A technical error has occurred |
| 4001 | No applicable payment method could be found |
| 4100 | Subscription has been unsubscribed. No further actions can occur. |
| 4101 | Subscription has been cancelled or failed to confirm. No actions can be made at this time. |
| 4102 | Subscription is concluding. No actions can be made at this time. |
| 4200 | Subscription charge rejected: Subscription is already billing |
| 4201 | Subscription charge rejected: General error |
| 4210 | Subscription cancel rejected: General error |
| 4211 | Subscription cancel rejected: Subscription has already been confirmed. |
| 4220 | Subscription confirm rejected: General error |
| 4221 | Subscription confirm rejected: Subscription has already been confirmed. |
| 4222 | Subscription subscribe failed: Authorization/confirmation timed out |
| 4230 | Subscription conclude rejected: General error |
| 4231 | Subscription conclude rejected: Subscription is currently billing. |
| 4240 | Subscription restore rejected: Subscription is not concluding or suspended |
| 4250 | Subscription unsubscribe rejected: Subscription is not currently subscribed |
| 4260 | Subscription subscribe rejected: General error |
| 4261 | Subscription subscribe failed: First charge failed. |
| 4271 | Subscription unsubscribed: Subscription has reached end of defined duration |
| 4281 | Subscription subscribe failed: Authorization timed out |
| 4291 | Subscription subscribe failed: User input timed out |
| 5001 | Subscription restoration successful |
| 5002 | Subscription conclude successful |
| 5003 | Subscription cancel successful |
| 5005 | Subscription unsubscribe successful |
| 5006 | Subscription subscribe successful |
| 5007 | Arbitary Subscription billing complete |
| 5008 | Timed Subscription billing complete |
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 (i.e. one-off or ad hoc charges), 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 | ||||||||
| 0x04 | Geographical address did not match account | ||||||||
| 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 | ||||||||
| 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 | User Input | 0x00 | Timed out | 0x00 | Userinput timed out | ||||
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 |
|
|
|
|
|
|
0x02 |
Subscription unsubscribe rejected |
0x00 |
Subscription is not currently subscribed |
|
|
|
|
|
|
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 |
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 | ||||||||
| 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 |
0x00 |
Ad hoc charge |
0x00 |
Ad hoc charge: billing successful |
|
|
|
|
|
|
|
|
0x01 |
Ad hoc charge: billing failure permitted. |
|
|
|
|
|
|
0x01 |
Timed charge |
0x00 |
Timed 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 |

