Payment Result Notification
The final step of every payment transaction, regardless of the service type, is to get notified of the outcome - i.e. whether the payment was successful or not. Payment result notification provides you with all the relevant data for your further processing.
In order to have this option activated you need to provide URL of notification handling endpoint (i.e. web service which handles notifications). Upon transaction reaching its final state, Centili will invoke provided notification handling endpoint, with the following parameters:
Parameter | Type | Description | Example | Availability |
---|---|---|---|---|
transactionid | String | Unique payment transaction identifier used on Centili Payment Platform. Used to identify any particular transaction within Centili system. Default value is encrypted, but on request it can be set to decrypted value. | ac8bd4a9c26fd94c c786be72cea3936f | Always |
phone | String | Mobile number of customer who paid or attempted to pay. It is in E.164 format excluding plus ("+") character. | 4366124567 | Always |
userid | String | Your user identifier. If the value is not set within payment request, this field will contain MSISDN of the particular customer. | usrId1983 NOTE: If the value is not set within payment request, this field will contain MSISDN of the particular customer. | Always |
country | String | The code of countryof the custoemr. For more details use official ISO list of country codes. | FR | Always |
mno | String | Mobile Network Operator which customer belongs to. This parameter is sent in format <mobile_country_code>< mobile_network_code> (mcc and mnc concatenated). | 50219 | In some cases (e.g. WAP flow) this parameter will not be sent through payment result notification. |
mnocode | String | Mobile Network Operator code in Centili’s system which customer belongs to. It is provided by Centili. | FR_ORANGE | Always |
amount | Integer | Quantity of purchased virtual goods. It depends on package configuration of the service. | 5 | Always |
status | String | Status of the payment. Defines the payment result of the transaction. According to this parameter you should implement your business logic (e.g. provide content to the customer or not). Possible values are: success canceled * failed | success | Always |
revenue | Decimal | The net payout received from the particular payment | 3.0567 | Always |
revenuecurrency | String | Currency in which revenue has been calculated (prefered currency under your Partner Panel account). | EUR | Always |
reference | String | Reference to customer or transaction at your side, sent by you in payment initiation step. NOTE: There are different ways how you can send this parameter to Centili depending on payment initiation type: MO initiation - it can be passed as additional word after the keyword (YOURKEYWORD 12345) Payment Page - it can be passed as a specific parameter (...&reference=12345) API - must be sent as clientid ("clientid":"12345") | 12345 | In some cases this parameter can be called clientid instead of reference. For more info, please contact Centili tech team. |
enduserprice | Decimal | Price paid (or should have been paid if transaction is failed) by the customer in local currency with VAT included. | 8.000 | Always |
service | String | Unique identifier of your service registered inside Centili Payment Platform (API key). | 3586a2363bcd51a2 b3c4d5f34918263a | Always |
errormessage | String | Error description in case of failed transaction request. Possible values: CHARGING_FAILED PIN_MAX_ATTEMPTS_EXCEEDED TRANSACTION_TIMEOUT NOT_ENOUGH_CREDIT * TRANSACTION_CANCELED_BY_USER | CHARGING_FAILED | Available in case of error |
event_type | String | Type of transaction depending on type of service. Possible values for one-time payments: one_off Possible values for subscription services: opt_in opt_out recurring_billing | opt_in | Always |
opt_in_channel | String | Channels through which the services were used. Possible values are: web wap * android | web | Available only in subscription services |
interval | String | Subscription interval according to service configuration. Possible values are: DAY WEEK * MONTH | day | Available only in subscription services |
sign | String | Hash value calculated using HMAC-SHA1 algorithm. The algorithm is applied on concatenated list of alphabetically sorted parameters. NOTE: Please refer to the signature key generation guide. | aee0ed6b191bbcef271 dfded5b5b3fa2fc1bf14 | Always |
subscriptionid | String | Unique identifier of a subscription in Centili Platform. All the transactions related to single subscription (opt_in, recurring_billing, opt_out) will have identical subscriptionid value. | 4300105998 | Available only in subscription services |
originalmessage | String | Original SMS message received from the customer. | GAME 2525 | Additional parameter for PSMS connections |
shortcode | String | Short number to which message has been sent. | 2525 | Additional parameter for PSMS connections |
momessage | String | Original keyword for registered service. | GAME | Additional parameter for PSMS connections |
Note
Parameters which will be sent in this notification can vary.
Please consult Centili tech team in order to get exact information related to your service.
Examples
- One-time payment notification sent using HTTP GET method:
http://www.example.com/notificationscript.php?phone=4366124567&country=es&mno=50219&mnocode=ES_VODAFONE&amount=5&status=success&reference=bBxUvIpDpqkTPuUiV8RknOxCSo&revenue=3.0567&revenuecurrency=EUR&enduserprice=8.000&transactionid=1488787&service=3586a2363bcd51a2b3c4d5f34918263a&event_type=one_off
- Subscription payment notification sent using HTTP GET method:
http://www.example.com/notificationscript.php&transactionid=1488787&phone=4366124567&errormessage=subscription_closed&interval=month&status=failed&event_type=recurring_billing&revenuecurrency=EUR&country=es&amount=5&reference=bBxUvIpDpqkTPuUiV8RknOxCSo&opt_in_channel=web&enduserprice=8.000&mno=50219&mnocode=ES_VODAFONE&transactionid=1488787&service=3586a2363bcd51a2b3c4d5f34918263a&revenue=0.0000
Payment Result Notification response
After invoking your notification handling endpoint on provided notification handling URL, we are expecting a HTTP response with one of the following statuses:
-
HTTP status 200
Result notification is sucessfully completed on your side. Transaction notification status is marked as success on transaction page in Centili Partner Panel.
-
HTTP status 406
Result notification is rejected (Not acceptable) and we will immediately discontinue notification for that transaction. Transaction notification status is marked as rejected on transaction page in Centili Partner Panel.
-
All other HTTP statuses
When neither http status 200 nor status 406 is returned (e.g. your server goes offline or any other error occurs), then Centili will keep retrying notifying you 3 times during the next 30 minutes. Undelivered payment result notification will be marked in Centili Partner Panel transactions page and you will also be able to resend them to your URL manually.
Resending undelivered payment result notifications
On Centili Partner Panel transactions page you can:
-
Resend single payment result notification
When there is payment result notification with status failed you can resend payment result notification for that transaction and this is done immediately.
-
Resend bulk payment result notification
When multiple transactions have the payment result notification status failed
you can resend payment result notification for multiple transactions together. All of the selected payment result notifications will be queued for sending.
Updated about 4 years ago