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:

**transactionid**StringUnique 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 c786be72cea3936fAlways
**phone**StringMobile number of customer who paid or attempted to pay. It is in [E.164 format](🔗) excluding plus ("+") character.4366124567Always
**userid**StringYour 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**StringThe code of countryof the custoemr. _For more details use [official ISO list of country codes](🔗)._FRAlways
**mno**StringMobile Network Operator which customer belongs to. This parameter is sent in format _<mobile_country_code>< mobile_network_code>_ (**mcc** and **mnc** _concatenated_).50219In some cases (e.g. WAP [flow](🔗)) this parameter will not be sent through payment result notification.
**mnocode**StringMobile Network Operator code in Centili’s system which customer belongs to. It is provided by Centili.FR_ORANGEAlways
**amount**IntegerQuantity of purchased virtual goods. It depends on package configuration of the service.5Always
**status**StringStatus 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**successAlways
**revenue**DecimalThe net payout received from the particular payment3.0567Always
**revenuecurrency**StringCurrency in which revenue has been calculated (prefered currency under your Partner Panel account).EURAlways
**reference**StringReference 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")12345In some cases this parameter can be called _clientid_ instead of reference. For more info, please contact Centili tech team.
**enduserprice**DecimalPrice paid (or should have been paid if transaction is failed) by the customer in local currency with VAT included.8.000Always
**service**StringUnique identifier of your service registered inside Centili Payment Platform (API key).3586a2363bcd51a2 b3c4d5f34918263aAlways
**errormessage**StringError description in case of failed transaction request. Possible values: _ CHARGING_FAILED _ PIN_MAX_ATTEMPTS_EXCEEDED _ TRANSACTION_TIMEOUT _ NOT_ENOUGH_CREDIT * TRANSACTION_CANCELED_BY_USERCHARGING_FAILEDAvailable in case of error
**event_type**StringType 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_billingopt_inAlways
**opt_in_channel**StringChannels through which the services were used. Possible values are: _ web _ wap * androidwebAvailable only in subscription services
**interval**StringSubscription interval according to service configuration. Possible values are: _ DAY _ WEEK * MONTHdayAvailable only in subscription services
**sign**StringHash 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 dfded5b5b3fa2fc1bf14Always
**subscriptionid**StringUnique 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.4300105998Available only in subscription services
**originalmessage**StringOriginal SMS message received from the customer.GAME 2525Additional parameter for PSMS connections
**shortcode**StringShort number to which message has been sent.2525Additional parameter for PSMS connections
**momessage**StringOriginal keyword for registered service.GAMEAdditional parameter for PSMS connections


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:**

  • **Subscription payment notification sent using HTTP GET method:**

## 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.