1. Change Log... 3 2. Introduction... 4 3. Flow summary... 4 3.1 Flow Overview... 4 3.2 Premium SMS flow... 6 3.3 Pin Flow... 7 3.4 Redirect Flow...

Similar documents
ipayment Gateway API (IPG API)

AIRTEL INDIA OPEN API. Application Developer Guide for OAuth2 Authentication and Authorization. Document Version 1.1

Spryng Making Business Mobile Mobile Terminated Premium SMS Gateway. Contents:

Technical Specification Premium SMS gateway

Fairsail REST API: Guide for Developers

Technical Specification WAP Billing

QIWI Wallet Pull Payments API

SOPG (Service Oriented Prepaid Gateway - xml based protocol) Documentation. Version Date Description Author

Bitcoin Payment Gateway API

EHR OAuth 2.0 Security

Technical Specification Premium SMS gateway

MONETA.Assistant API Reference

Configuring Single Sign-on for WebVPN

OAuth 2.0 Developers Guide. Ping Identity, Inc th Street, Suite 100, Denver, CO

Merchant Reporting Tool

vcloud Air Platform Programmer's Guide

Technical documentation

Startup guide for Zimonitor

Jobs Guide Identity Manager February 10, 2012

GoCoin: Merchant integration guide

Mandiri e-cash Online

Offline Payment Methods

DigiCert User Guide. Version 4.1

Cofred Automated Payments Interface (API) Guide

PROCESS TRANSACTION API

HireDesk API V1.0 Developer s Guide

Technical Specification Normal SMS gateway

Installation Guide ARGUS Symphony 1.6 and Business App Toolkit. 6/13/ ARGUS Software, Inc.

Riverbed Cascade Shark Common REST API v1.0

Manual. Netumo NETUMO HELP MANUAL Copyright Netumo 2014 All Rights Reserved

Using WhatCounts Publicaster Edition To Send Transactional s

Table of Contents. Open-Xchange Authentication & Session Handling. 1.Introduction...3

How To Use Kiteworks On A Microsoft Webmail Account On A Pc Or Macbook Or Ipad (For A Webmail Password) On A Webcomposer (For An Ipad) On An Ipa Or Ipa (For

Clickatell two-way technical guide v2.0

ISL Online Integration Manual

Service for checking whether an is operative or not. Validate ids in your databases.

Gateway Direct Post API

PAYFORIT SCHEME RULES TRANSA PAYFORIT SCHEME RULES 5.0

Easy CollECt and the transaction ManagEr interface

Merchant Implementation Guide

Cloud Elements ecommerce Hub Provisioning Guide API Version 2.0 BETA

Klarna Magento module

Payment Response Guide. Version 4.3 September 2012 Business Gateway

How To Get A Certificate From Digicert On A Pc Or Mac Or Mac (For Pc Or Ipa) On A Mac Or Ipad (For Mac) On Pc Or Pc Or Pb (For Ipa Or Mac) For Free

Cloud Elements! Events Management BETA! API Version 2.0

COMP28112 Exercise 2: Wedding Planner Duration: 3 sessions

Issue 2EN. Nokia and Nokia Connecting People are registered trademarks of Nokia Corporation

Spryng Making Business Mobile (0) Spryng Headquarters: Herengracht BW Amsterdam - The Netherlands

Cre-X-Mice Database. User guide

Platron API. Technical description. version 3.5

Qualys API Limits. July 10, Overview. API Control Settings. Implementation

Network Merchants Inc (NMI) Integration Resources. Direct Post API Documentation April 2010

Contents. 2 Alfresco API Version 1.0

Message Containers and API Framework

Corporate Telephony Toolbar User Guide

Three Step Redirect API V2.0 Patent Pending

FTP API Specification V2.6

Bank and SecurePay Response Codes

Vodafone Bulk Text. User Guide. Copyright Notice. Copyright Phonovation Ltd

SmartSantander Open Data access using FI-WARE G.E. [ORION]

int_adyen Version

Credomatic Integration Resources. Browser Redirect API Documentation June 2007

Order Notifications - reporting a payment status

1 of 21 9/22/11 10:41 AM

SVEA HOSTED SERVICE SPECIFICATION V1.13

1: 2: : 3.1: 3.2: 4: 5: & CAPTCHA

NASDAQ Web Security Entitlement Installation Guide November 13, 2007

Clickatell Communicator2 Help Gui

Refer to the Integration Guides for the Connect solution and the Web Service API for integration instructions and issues.

UpCloud API Documentation. API version Updated Aug 13, 2013

SMS Notify! API Frequently Asked Questions

Yandex.Money API API for Apps

Telephony Toolbar Corporate. User Guide

CAMPAIGNS...5 LIST BUILDER FORMS...

Direct Payment Protocol Errors A Troubleshooter

Online signature API. Terms used in this document. The API in brief. Version 0.20,

Coveo Platform 7.0. Oracle Knowledge Connector Guide

Three Step Redirect API

Configuration Guide. SafeNet Authentication Service. SAS Agent for Microsoft Internet Information Services (IIS)

Merchant One Payment Systems Integration Resources. Direct Post API Documentation June 2007

Audi Virtual Payment Client Integration Manual

LiveText Agent for Salesforce Installation Guide

i-mobile Multi-Factor Authentication

Payment Processor Errors A Troubleshooter

Login with Amazon. Developer Guide for Websites

4.0. Mogreet Messaging System (MoMS) API. version

XenDesktop 5 (SP1) Broker Event Log Messages. This article contains information on XenDesktop 5 (SP1) Broker Event Log Messages.

emobile Bulk Text User Guide Copyright Notice Copyright Phonovation Ltd

Fax. Problems with Fax Delivery to Users CHAPTER

Manage Workflows. Workflows and Workflow Actions

Ciphermail Gateway PDF Encryption Setup Guide

Agent Configuration Guide

ACR Connect Authentication Service Developers Guide

ACCREDITATION COUNCIL FOR PHARMACY EDUCATION. CPE Monitor. Technical Specifications

Getting Started with the icontact API

OAuth2lib. implementation

A BETTER WAY TO PAY Unified Merchants API (UMAPI).Net Integration Manual

AusCERT Remote Monitoring Service (ARMS) User Guide for AusCERT Members

Mechanics Bank Mobile Banking Mobile Finance Manager (MFM) Application Windows Mobile Phone Installation

Transcription:

Payment API

1. Change Log... 3 2. Introduction... 4 3. Flow summary... 4 3.1 Flow Overview... 4 3.2 Premium SMS flow... 6 3.3 Pin Flow... 7 3.4 Redirect Flow... 8 3.5 SMS Handshake Flow... 9 4. One-time payment API... 10 4.1 Step 1: Payment Initialization... 10 4.2 Exception / Mid step for Singapore... 12 4.3 Step 2: Payment Flow notification... 15 4.4 Payment flow and status information... 16 4.5 Step 3: Payment data update... 17 4.6 Step 4: Payment update status... 19 4.7 Step 5: Final Payment result notification(??)... 19 5. Mobile subscriptions API... 21 5.1 Subscription initiation example... 21 5.2 Unsubscribe initiation example... 23 5.3 Administration unsubscribe example... 25 5.4 Subscription status... 27 6. Obtaining price identificators... 28 6.1 Obtaining packages example... 28 6.2 Obtaining intervals example... 31 6.3 Obtaining MNO codes... 33 6.4 Obtaining service info... 35

1. Change Log Version Description Date 1.1 Upgrade of system from version 1.0 26.07.2013. Added parameters revenuepreferred and currencypreferred in 02.09.2013. Obtatining price packages [6.1] 1.2 Upgrade of system from version 1.1 25.09.2013. 1.3 Added returnurl parameter 25.10.2013 1.4 18.06.2014

2. Introduction This API document describes web and mobile initiated purchase flows and parameters. At this moment we have described 4 different purchase flows that user might encounter during the purchase process with our service. These flows are heavily dependent on technology provided by the mobile network operators. However we are constantly improving the flows and purchase experience. Partner might not implement all the supported flows since some targeted destinations / countries might use only limited number of flows. You might also use Centili Identification service document in case of wap channel. Please refer to Identification service document for further instructions. 3. Flow summary 1. Merchant calls Payment API restful web service and initiates payment 2. Charge notification is asynchronously delivered on server notification URI (configured in Partner Panel) Requirements Centili exposes following web service: Centili API web service (Payment API URI) Merchant must expose following web service: Payment Notification web service (notification URI) 3.1 Flow Overview Step 1 Every payment transaction is initiated via IntitiatePayment web method with MSISDN as one of the parameters. In case of mobile flow this parameter can be omitted. Centili system will query this MSISDN against our HLR lookup system internally in order to resolve the home network of the subscriber. Step 2 Once the home network and the flow are resolved on Centili side, partner response url will be invoked with the detailed flow parameters. Steps 3 and 4 Furthermore depending on the flow type partner might or might not implement the steps 3 and 4 as they are specific for One Time Pin flow and in case of other flows they can be omitted. Step 5 Finally each transaction is finalized by triggering notification URL with actual payment result.

Figure bellow represents logical overview of the integration points between partner and Centili system. Web Payments:Centili provides support for 4 separate flows for Web payments: 1. Premium SMS flow. For backward compatibility reasons, we do support the flow with premium SMS reply for some territories. 2. Pin Flow. This flow is the preferred flow for mobile payments on the web. One- Time-Pin is generated on Centili side and sent to the user. 3. Redirect. In this case Partner is required to redirect the user to the operator landing page in order to complete the transaction. 4. SMS Handshake. This flow actually uses direct billing interface with MO SMS confirmation from the user. Wap/OneTap Payments on mobile devices: 1. Redirect Flow to Operator landing page.

3.2 Premium SMS flow There are two different flows in premium SMS technology that can be provided by Mobile Network Operators: Flows in which payments are made immediately after the message is sent to a provided short code (MO flow) Flows in which payments are made after final message is received on the mobile phone (MT flow) Centili platform provides support for both of these cases depending on Partner business needs. MO billing: When user enters phone number and initiates payment he will be provided with -short code, CENT-keyword). After Mobile Network Operator (MNO) receives this MO SMS from the user it charges him for the service and informs Centili about successful payment. In the next step Centili will replay on it with MT notification to the User witch can be customized by Partner. At this point process is completed and we will send payment notification to our Partner. MT billing: When Mobile Network Operator (MNO) receives MO SMS from the user it just forwards it to Centili. Then we will replay with MT notification message which is chargeable for the end user. After processing of this MT SMS MNO will charge the user and return delivery report to Centili about result of payment. At the end we will send payment notification to our Partner. Steps required for implementation: 1, 2 and 5. Figure above represents the actuall steps with premium flow.

3.3 Pin Flow When user initiates payment Centili will generate PIN and send it via SMS to the user. This PIN will not be sent to our Partner. When the user receives PIN he will have to enter it if he wants to finish the payment. This PIN will be sent to the Partner and he will redirect it to Centili for validation. If the PIN is valid Centili will invoke payment process and user will be charged using Operator's Billing system. In case of wrong PIN we will notify and enable PIN re-entering process. As a final step, Centili notifies Partner about payment result, so he can take appropriate actions related to his own business. Steps required for implementation:1, 2, 3, 4 and 5. Figure above represents the actuall steps with pin flow.

3.4 Redirect Flow In some cases Mobile Network Operator insists on redirecting the user to his own payment page. The reason for this approach is increased level of security. Centili will provide the payment process is over, the Operator will inform Centili and we will forward payment confirmation to the Partner. Steps required for implementation: 1, 2 and 5. Figure above represents the actuall steps with redirect flow.

3.5 SMS Handshake Flow SMS Handshake represents MT-MO SMS exchange flow. When user initiates payment he will receive MT message which will ask him to reply on that message in order to confirm the payment. After the user replies with MO SMS, he will be charged using Operator's Billing system. As a final step, Centili notifies Partner about payment result, and Partner can take appropriate actions related to his own business. Steps required for implementation:1, 2 and 5. Figure above represents the actuall steps with SMS handshake flow.

4. One-time payment API Centili exposes Payment API web service on following URI: https://api.centili.com/api/payment/1_3/transaction 4.1 Step 1: Payment Initialization In order to initiate payment request must be sent as HTTPS POST request. As Content-Type you ca use application/json or application/xml. POST https://api.centili.com/ api/payment/1_3/transaction HTTP/1.1 Host: api.centili.com:443 Content-Type: application/json } "apikey": "918no8a7sdrh50o05ah43ej000", "msisdn":"9991234567", "price":"10" Parameters Required apikey Application key Centili issued priceid Payment price identificator Numeric (If you choose to put this parametar then the price parametar will be unnecessary) price Payment price Numeric (19.3) (If you choose to put this parametar then the only needed parameter besides this one will be msisdn/mccmnc) wallet Wallet identificator msisdn mccmnc mno Message sender s MSISDN. Conforms to the following format: (example: Vodafone DE MSISDN 491626839553) Country code (49) National Destination Code (162) Subscriber Number (6839553) Mobile country and mobile network code (If you choose to put this parametar than the msisdn parametar will be unnecessary) which end user belongs to (ex. FR_ORANGE) (If you choose to put this parametar than the msisdn parametar will be unnecessary) Numeric, max. 17 digits, more than 5 digits

NOTE: If the flow is DMB or HANDSHAKE then msisdn is mandatory! Otherwise, transaction will be rejected. Optional username Account username password Account password paymenttype that user accessed channel is WAP you should set this parameter to country paramethers clientid Custom ID assigned by Merchant to payment transaction. It will be returned in payment notification and can be used as reference. wapid For wap payment type this is wapid reference retireved from wap idetification service (only if language country Country ISO- (2) returnurl URL to final page on which end user will be redirected after end of payment coutries in which mobile operators require this) The response content type can be JSON or XML: 200 Success response body: HTTP/1.1 200 OK Content-Type: application/json } "status":"accepted", "errormessage":null, "transactionid":88739, "clientid":null, "redirecturl":null, "params":null

JSON Success response parameters errormessage message with status description status ACCEPTED Payment request is accepted! INVALID_REQUEST Invalid request parameters INVALID_SERVICE Invalid service (apikey is invalid) UNAUTHORIZED Invalid auth.: username,password,ip BANNED IP address is banned INVALID_MSISDN msisdn is invalid INVALID_PRICE price is invalid INACTIVE service is inactive SERVER_ERROR all other server errors transactionid Unique transaction identifier assigned to this particular transaction, it Numeric will be returned every time in payment transaction notification clientid Custom ID assigned by Merchant to payment transaction redirecturl URL on which end user is redarected after successful payment params - 4.2 Exception / Mid step for Singapore In some countries after initiating a payment process you must confirm that process by asking user for confirmation. When payment process is started for country Singapore user must be asked to confirm started payment process. Merchant will be informed about this midstep by notifcation which is subbmited to merchant payment notification URI. Payment proces will look like this: Merchant starts payment process If payment proces is started in Singapore, user must confirm payment proces Merchant is notified on notification URL with parameter flow=custom_page After receiving notification Merchant needs to ask customer for confirmation about payment proces After user confirms payment proces Merchant submits confirmation with HTTPS POST request payment data update with parameter confirmed=yes After this steps everything contiues like described in point 4.3. Example of notification when user confirmation is needed Payment notification for confirmation is submitted as HTTP POST with Content-Type: application/x-www-form-urlencoded composed of parameters with associated values. POST http://<merchant URI> HTTP/1.1 Accept: application/json Host: <MERCHANT HOST>:80 Content-Type: application/x-www-form-urlencoded

xxxxxx Parameters Required msisdn Phone number of the subscriber in international format without Number the plus sign. For Example 4366124567 clientid Unique ID of the client that you have supplied to us. This parameter is sent back to you so that you can connect the payment with the exact unique user or resource in your system transactionid Unique payment id generated by our system. You should keep this Number id in your database apikey Service identifier. It uniquely identifies the service which has been defined with the service creation wizard flow CUSTOM_PAGE Example of payment data update with confirmation parameter Payment confirmation notification is submitted as HTTP POST with Content-Type: application/xwww-form-urlencoded composed of parameters with associated values. POST https://api.centili.com/api/payment/1_3/transaction/<transaction-id> HTTP/1.1 Host: api.centili.com:443 Content-Type: application/x-www-form-urlencoded apikey=xxxxx&username=xxxxx&password=xxxxxx&confirmed=yes&paymenttype=mobile Parameters Required apikey Application key Centili issued username Account username password Account password confirmed Yes or No depending on user decision paymenttype mobile wap. In case that Identification service has confirmed that user accessed channel is WAP you should set this parameter to wap

The response content type is application/json. 200 Success response body: HTTP/1.1 200 OK Content-Type: application/json "message" : "Request accepted", "status" : "ACCEPTED", "transactionid" : "xxxxx", } JSON Success response parameters message message with status description status ACCEPTED Payment request is accepted! INVALID_REQUEST Invalid request parameters INVALID_SERVICE Invalid service (apikey is invalid) UNAUTHORIZED Invalid auth.: username,password,ip BANNED IP address is banned INVALID_MSISDN msisdn is invalid INVALID_PRICE price is invalid INACTIVE service is inactive SERVER_ERROR all other server errors transactionid Unique transaction identifier assigned to this particular transaction, it will be returned every time in payment transaction notification Numeric

4.3 Step 2: Payment Flow notification Payment flow notification is submitted as HTTP POST with Content-Type: application/x-www-formurlencoded composed of parameters with associated values. Notifcation is subbmited to Merchant payment notification URI. POST http://<merchant URI> HTTP/1.1 Accept: application/json Host: <MERCHANT HOST>:80 msisdn=491626839553&transactionid=505478&flow=premium&apikey=<apikey>&clientid=ab123d NB Parameters Required msisdn Phone number of the subscriber in international format without Number the plus sign. For Example 4366124567 clientid Unique ID of the client that you have supplied to us. This parameter is sent back to you so that you can connect the payment with the exact unique user or resource in your system transactionid Unique payment id generated by our system. You should keep this Number id in your database apikey Service identifier. It uniquely identifies the service which has been defined with the service creation wizard flow premium, pin, url_redirect, handshake, error Optional service_number Short code number on which user must send MO message in order to confirm payment for premium flow message_text Exact sms message text that user has to send to shortcode for premium flow redirect_url Url on which uers must be redirected in order to perform payment for url redirect flow message_info Information text that can be presented to user payment instruction message in local language (valid for premium, pin, sms handshake flow)

4.4 Payment flow and status information In case that service does not have notification URL set we provide a method which can be called for obtaining the information about the flow and transaction status in the same time. GET https://api.centili.com/ api/payment/1_3/transaction/<transaction-id> HTTP/1.1 Host: api.centili.com:443 Parameters Required transactionid Optional Unique payment id generated by our system. You should keep this id in your database Number username Account username password Account password The response content type can be JSON or XML: 200 Success response body: HTTP/1.1 200 OK Content-Type: application/json "status":"accepted", "errormessage":null, "transactionid":12830, "sessionid":12387, "apikey":"1cdf6af85d9fa192051b9d012da34d9f", "chargeurl":"http://inspectb.in/cbde43d3", "wap":false, "price":104.0, "clientid":null, "countrycode":"rs", "msisdn":"38160xxxxxxx", "mnocode":"rs_vip", "mcc":"220", "mnc":"05", "walletcode":null,

} "action":"pin", "sessionstatus":"pending", "urlredirect":null, "pin_pattern":null, "premiuminstructions":null, "handshakeinstructions":null, "shortcode":null, "mtshortcode":null, "smsbody":null, "message":null, "popup":false, "urlsufix":null, "width":0, "height":0, "scrollx":0, "scrolly":0, "paymentapicustompageruledto":null 4.5 Step 3: Payment data update Optional Step needed only for Pin flow In order to update payment data request must be sent as HTTPS POST. URI for sending payment update https://api.centili.com/api/payment/1_3/transaction/<transaction-id> where <transactionid> is id of payment transaction for which updated data are submitted. This method is used both for One Time service transactions and Subscription service transactions (OPT-IN, OPT-OUT). POST https://api.centili.com/ api/payment/1_3/transaction/<transaction-id> HTTP/1.1 Host: api.centili.com:443 Content-Type: application/json, application/xml } "pin": "98739"

Parameters Required apikey Application key Centili issued pin User obtained pin value (only in case of PIN flow) confirmed Yes or No depending on user decision (alternative to pin) The response content type can be JSON or XML. 200 Success response body: HTTP/1.1 200 OK Content-Type: application/json "status":"accepted", "errormessage":null, "transactionid":12832, "clientid":xxxxxxxxxxxxxx, "redirecturl":null, "params":null } JSON Success response parameters message message with status description status ACCEPTED Payment request is accepted! INVALID_REQUEST Invalid request parameters INVALID_SERVICE Invalid service (apikey is invalid) UNAUTHORIZED Invalid auth.: username,password,ip BANNED IP address is banned INVALID_MSISDN msisdn is invalid INVALID_PRICE price is invalid INACTIVE service is inactive SERVER_ERROR all other server errors transactionid Unique transaction identifier assigned to this particular transaction, it Numeric will be returned every time in payment transaction notification clientid Custom ID assigned by Merchant to payment transaction redirecturl URL on which end user is redarected after successful payment params -

4.6 Step 4: Payment update status Optional Step executed only for Pin flow if user has entered invalid Pin. Payment flow notification is submitted as HTTP POST with Content-Type: application/x-www-formurlencoded composed of parameters with associated values. Notifcation is subbmited to Merchant payment notification URI. POST http://<merchant URI> HTTP/1.1 Accept: application/json Host: <MERCHANT HOST>:80 Content-Type: application/x-www-form-urlencoded msisdn=491626839553&transactionid=505478&flow=pin&apikey=<apikey>&clientid=ab123dnb&s tatus=data_invalid Parameters Required msisdn transactionid apikey clientid status Phone number of the subscriber in international format without the plus sign. For Example 4366124567 Unique transaction identifier assigned to this particular transaction, Service identifier. It uniquely identifies the service which has been defined with the service creation wizard Unique ID of the client that you have supplied to us. This parameter is sent back to you so that you can connect the payment with the exact unique user or resource in your system DATA_INVALID (wrong pin is submitted, you should try again) or FATAL_ERROR (transaction failed due to too many failed pin submit attempts, you should not try again) Number 4.7 Step 5: Final Payment result notification Payment notification web service receives call when payment is finished. Notification is submitted to Merchant payment notification URI as HTTP POST with Content-Type: application/x-www-formurlencoded composed of parameters with associated values. POST http://<merchant URI> HTTP/1.1 Accept: application/json Host: <MERCHANT HOST>:80 Content-Type: application/x-www-form-urlencoded msisdn=491626839553&transactionid=505478&service=<apikey>&clientid=ab123dnb&country=de &status=success&event_type=one_off&enduserprice=10.00

Parameters Required msisdn Phone number of the subscriber in international format without the Number plus sign. For Example 4366124567 country The country code of the subscriber's mobile operator. We are using ISO 3166-1standard for the code. For example FR for France, ES for Spain etc. mno Mobile Network Operator which end user belongs to. Mobile country code and mobile network code (mcc + mnc concatenated), e.g. 50219. In some cases (WAP,..) this parameter will not be sent through payment result notification mnocode belongs to, e.g. FR_ORANGE amount Amount of credits purchased (for subscriptions it will always be 1) Number status Status of the payment. This parameter will be either success or failed as it defines the outcome of the transaction. You should always check this parameter clientid Unique ID of the client that you have supplied to us. This parameter is sent back to you so that you can connect the payment with the exact unique user or resource in your system enduserprice End user price that the user has paid in local currency with VAT Number included, decimal number. (example: 8.000) transactionid Unique payment id generated by our system. You should keep this id Number in your database service Service identifier. It uniquely identifies the service which has been defined with the service creation wizard event_type This parameter actually identifies the event type during the subscription process.possible values: one_off (default), opt_in, opt_out, recurring_billing. We are expecting that payment confirmation page returns HTTP status 200. In that case we are treating the transaction as completed. However if your server goes offline or any other error occurs we will keep retrying to notify you during the next 24 hours. Undelivered transactions will be marked in the partner panel transaction log and you will also be able to resend them to your server manually.

5. Mobile subscriptions API Mobile subscriptions use the same mechanism as one-time payments, except payment initiation (Step 1). Instead of Step 1, subscriptions have two operations subscribe and unsubscribe exposed at following URIs: https://api.centili.com/ api/payment/1_3/subscribe https://api.centili.com/ api/payment/1_3/unsubscribe Both operations share the same process as one-time payments. 5.1 Subscription initiation example In order to initiate subscription, request must be sent as HTTPS. POST https://api.centili.com/ api/payment/1_3/subscribe HTTP/1.1 Host: api.centili.com:443 Content-Type: application/json, application/xml } Parameters Required "apikey": " de7c30e0f89cdaab62ee4af6bb498358", "msisdn":"999xxxxxxx", "priceid":"25" apikey Application key Centili issued priceid Subscription price/interval identificator Numeric price msisdn Message (example: Vodafone DE MSISDN 491626839553) Country code (49) National Destination Code (162) Subscriber Number (6839553) Numeric, max. 17 digits mccmnc mno Optional Mobile country and mobile network code (If you choose to put this parametar than the msisdn parametar will be unnecessary) user belongs to (ex. FR_ORANGE) (If you choose to put this parametar than the msisdn parametar will be unnecessary), more than 5 digits paymenttype mobile wap. In case that Identification service has confirmed that user accessed channel is WAP you should set this parameter to wap

clientid wapid Custom ID assigned by Merchant to payment transaction. It will be returned in payment notification and can be used as reference. For wap payment type this is wapid reference retireved from wap idetification service, max 30 characters The response content type can be JSON or XML. 200 Success response body: HTTP/1.1 200 OK Content-Type: application/json "status":"accepted", "errormessage":null, "transactionid":88744, } "redirecturl":null, "params":null JSON Success response parameters message message with status description status ACCEPTED Payment request is accepted! INVALID_REQUEST Invalid request parameters INVALID_SERVICE Invalid service (apikey is invalid) UNAUTHORIZED Invalid auth.: username,password,ip BANNED IP address is banned INVALID_MSISDN msisdn is invalid INVALID_PRICE price is invalid INACTIVE service is inactive SERVER_ERROR all other server errors transactionid Unique transaction identifier assigned to this particular transaction, it Numeric will be returned every time in payment transaction notification clientid Custom ID assigned by Merchant to payment transaction redirecturl URL on which end user is redarected after successful payment params -

In case that the subscription is valid and response to subscribe is HTTP 200 OK next steps will be: 1. Flow notification 2. Final result notification Parameters of these flows depend on payment flow type and will have different values because of the subscription process. 5.2 Unsubscribe initiation example In order to initiate unsubscribe operation, request must be sent as HTTPS POST with Content- Type: application/xwww-form-urlencoded composed of parameters with associated values. POST https://api.centili.com/ api/payment/1_3/unsubscribe HTTP/1.1 Host: api.centili.com:443 Content-Type: application/json, application/xml } "apikey": " de7c30e0f89cdaab62ee4af6bb498358", "msisdn":"999xxxxxxx", Parameters Required apikey Application key Centili issued msisdn Numeric, max. 17 (example: Vodafone DE MSISDN 491626839553) digits Country code (49) National Destination Code (162) Subscriber Number (6839553) mccmnc mno Mobile country and mobile network code (If you choose to put this parametar than the msisdn parametar will be unnecessary) user belongs to (ex. FR_ORANGE) (If you choose to put this parametar than the msisdn parametar will be unnecessary) The response content type can be JSON or XML 200 Success response body: HTTP/1.1 200 OK, more than 5 digits

Content-Type: application/json "status":"accepted", "errormessage":null, "transactionid":88745, } "redirecturl":null, "params":null JSON Success response parameters errormessage message with status description status ACCEPTED Payment request is accepted! INVALID_REQUEST Invalid request parameters INVALID_SERVICE Invalid service (apikey is invalid) UNAUTHORIZED Invalid auth.: username,password,ip BANNED IP address is banned INVALID_MSISDN msisdn is invalid INVALID_PRICE price is invalid INACTIVE service is inactive SERVER_ERROR all other server errors transactionid Unique transaction identifier assigned to this particular transaction, it Numeric will be returned every time in payment transaction notification clientid Custom ID assigned by Merchant to payment transaction redirecturl URL on which end user is redarected after successful payment params - In case that the subscription is valid and response to unsubscribe is HTTP 200 OK next steps will be: 1. Flow notification 2. Final result notification Parameters of these flows depend on payment flow type and will have different values because of subscription process.

5.3 Administration unsubscribe example In order to initiate unsubscribe operation, request must be sent as HTTPS POST. POST https:// api.centili.com/ api/payment/1_3/unsubscribeadmin HTTP/1.1 Host: api.centili.com:443 Content-Type: application/json, application/xml } "apikey": " de7c30e0f89cdaab62ee4af6bb498358", "msisdn":"999xxxxxxx", Parameters Required apikey Application key Centili issued msisdn (example: Vodafone DE MSISDN 491626839553) Country code (49) National Destination Code (162) Subscriber Number (6839553) Numeric, max. 17 digits The response content type can be JSOn or XML 200 Success response body: HTTP/1.1 200 OK Content-Type: application/json "status":"accepted", "errormessage":null, "transactionid": "24121" } JSON Success response parameters status ACCEPTED Payment request is accepted! INVALID_REQUEST Invalid request parameters INVALID_SERVICE Invalid service (apikey is invalid) UNAUTHORIZED Invalid auth.: username,password,ip BANNED IP address is banned INVALID_MSISDN msisdn is invalid status

INVALID_PRICE price is invalid INVALID_PIN the PIN is not valid on update transaction if required. EXISTING_SUBSCRIPTION trying to create new subscription for already subscribed msisdn on same service. NONEXISTING_SUBSCRIPTION trying to unsubscribe already unsubscribed number or never subscribed number on selected service. INACTIVE service is inactive SERVER_ERROR all other server errors errormessage Message with status description transactionid Unique transaction identifier assigned to this particular transaction, it will be returned every time in payment transaction notification Numeric In case that the subscription is valid and response to unsubscribe is HTTP 200 OK next steps will be: Final result notification Parameters of these flows depend on payment flow type and will have different values because of subscription process.

5.4 Subscription status In order to initiate subscription status check, request must be sent as HTTPS GET GET https://api.centili.com/api/payment/1_3/subscription?apikey=[apikey]&msisdn=xxxxxx Parameters Required apikey Application key Centili issued msisdn Numeric, max. 17 (example: Vodafone DE MSISDN 491626839553) digits Country code (49) National Destination Code (162) Subscriber Number (6839553) Optional username Account username password Account password paymenttype mobile, wap. In case that Identification service has confirmed that user accessed channel is WAP you should set this parameter to wap expires Date and time in UTC when subscription will expire if value is SUBSCRIBED, for any other value is NULL (??) Subscription status can be one of the following: Subscription for service and MSISDN never arrived - NOTSUBSCRIBED, Subscription created and active SUBSCRIBED, User unsubsrcribed-unsubscribed The response content type can be JSON or XML: 200 Success response body: HTTP/1.1 200 OK Content-Type: application/json } "status":"accepted", "errormessage":null, "subscriptionstatus":"unsubscribed", "expires":""

6. Obtaining price identificators Price identificators can be obtained through following URIs: https://api.centili.com/ api/payment/1_3/packages, for one-time payment services https://api.centili.com/ api/payment/1_3/intervals, for subscription services 6.1 Obtaining packages example This is request in order to fetch price identificators for one-time payment service. The response will contain all available packages for country, if country parameter is sent, and packages for resolved operator if any of other 3 paramethers is sent. GET https://api.centili.com/api/payment/1_3/packages?apikey=[apikey]&country=rs HTTP/1.1 Host: api.centili.com:443 Parameters Required apikey Application key Centili issued Required, only one of following (used to determine which payment packages are available and to return appropriate revenue) mccmnc Mobile country and mobile network code (example: 22005), more than 5 digits mno Mobile network operator code country ISO 3166 country code (if this parameter is passed, along with username and password, revenue will be approximated using revenues for MNOs in that country), exactly 2 characters msisdn Optional s MSISDN. Conforms to the following format: (example: Vodafone DE MSISDN 491626839553) Country code (49) National Destination Code (162) Subscriber Number (6839553) username Account username password Account password paymenttype confirmed that user accessed channel is WAP you should set Numeric, max. 17 digits The response content type can be JSON or XML:

200 Success response body: HTTP/1.1 200 OK Content-Type: application/json "status":"accepted", "errormessage":null, "name":"demo", "merchantname":"demo", "packages":[ "id":9016, "amount":1, "unit":"item", "price":104.0, "revenue":null, "currency":"rsd", "currencysign":null, "revenuepreferred":null, "currencypreferred":null, "type":"mobile", "operatorcode":null, "operatorname":null, "country":"rs" }, "id":9018, "amount":2, "unit":"item", "price":207.0, "revenue":null, "currency":"rsd", "currencysign":null, "revenuepreferred":null, "currencypreferred":null, "type":"mobile", "operatorcode":null, "operatorname":null, "country":"rs" } ] }

JSON Success response parameters id Price identificator Numeric currency Currency price is displayed in unit Unit name of goods being sold using that service amount Amount of units in that particular package Numeric price Package price Numeric revenue Revenue in returned currency (optional) Numeric revenuepreferred Revenue in merchant's payout currency (optional) currencypreferred Payout currency (optional) type Type of package: mobile, wallet or wap operatorcode mnocode if type is mobile and wallet value during initialization of transaction if type is wallet operatorname Name of mno or wallet via package can be charged country Selected country in which service is active Note: Now you can get both wallet and mobile packages in the following way: 1. If you put only mccmnc, you will get all wallet packages from that country (based on mcc) and mobile packages for that mccmnc. 2. If you put only msisdn the same effect as in 1. 3. If you put only country you will get all wallet and mobile packages but in that case you will not get operatorcode nor operatorname for mobile packages (the value will be value null). 4. If you put country &( msisdn OR mccmnc) it will act as only msisdn OR mccmnc are entered.

6.2 Obtaining intervals example This is request in order to fetch price identificators for subscription service. GET https://api.centili.com/api/payment/1_3/intervals?apikey=[apikey]&country=rs HTTP/1.1 Host: api.centili.com:443 Parameters Required apikey Application key Centili issued Required, only one of following (used to determine which payment packages are available and to return appropriate revenue) mccmnc mno country msisdn Mobile country and mobile network code (example: 22005) Code of Mobile user belongs to (ex. FR_ORANGE) ISO 3166 country code (if this parameter is passed, along with username and password, revenue will be approximated using revenues for MNOs in that country) s MSISDN. Conforms to the following format: (example: Vodafone DE MSISDN 491626839553) Country code (49) National Destination Code (162) Subscriber Number (6839553) Optional username Account username password Account password paymenttype. In case that Identification service has confirmed that user accessed channel is WAP you should set, more than 5 digits, exactly 2 characters Numeric, max. 17 digits The response content type can be JSON or XML: 200 Success response body: HTTP/1.1 200 OK Content-Type: application/json "status":"accepted", "errormessage":null, "name":"subscription Service 1", "merchantname":"demo",

} "intervals":[ }, }, ] "id":210, "interval":"month", "price":568.0, "revenue":null, "currency":"rsd", "currencysign":null, "active":true "id":211, "interval":"day", "price":114.0, "revenue":null, "currency":"rsd", "currencysign":null, "active":true JSON Success response parameters id Price identificator Numeric currency Currency price is displayed in active True if interval can be used Boolean price Package price Numeric revenue Revenue in returned currency Numeric interval Period on which basis customer will be charged Numeric

6.3 Obtaining MNO codes MNO codes can be obtained through following URI: https://api.centili.com/ api/payment/1_3/mnos GET https://api.centili.com/api/payment/1_3/mnos?apikey=[apikey]& country=rs HTTP/1.1 Host: api.centili.com:443 Parameters Required apikey Application key Centili issued country ISO 3166 country code, exactly 2 characters Optional username Account username password Account password The response content type can be JSON or XML: 200 Success response body: HTTP/1.1 200 OK Content-Type: application/json "status":"accepted", "errormessage":null, "mnos":[ "code":"rs_mts", "name":"m:ts Serbia", "mccmncs":[ "22003" ] }, "code":"rs_telenor", "name":"telenor Serbia",

} }, } ], "wallets":[ }, } ] "mccmncs":[ "22001" ] "code":"rs_vip", "name":"vip Mobile Serbia", "mccmncs":[ "22005" ] "code":"paypal", "name":"paypal" "code":"qiwi_rs", "name":"qiwi Serbia" JSON Success response parameters name MNO name Numeric code MNO code mccmncs List of mccmncs that MNO is using, more than 5 digits

6.4 Obtaining service info Information about service can be obtained through following URI: https://api.centili.com/ api/payment/1_3/service/<apikey> GET https://api.centili.com/api/payment/1_3/service/apikey=[apikey] HTTP/1.1 Host: api.centili.com:443 Parameters Required apikey Application key Centili issued The response content type can be JSON or XML: 200 Success response body: HTTP/1.1 200 OK Content-Type: application/json "status":"accepted", "errormessage":null, "countries":[ "code":"rs", "name":"serbia", "prefix":"381", "msisdnpreferred":true, "mnopreferred":false, "mnos":[ "code":"rs_mts", "name":"m:ts Serbia", "mccmncs":[ "22003" ] },

} } "code":"rs_telenor", "name":"telenor Serbia", "mccmncs":[ "22001" ] }, "code":"rs_vip", "name":"vip Mobile Serbia", "mccmncs":[ "22005" ] } ], "wallets":[ "code":"paypal", "name":"paypal" }, "code":"qiwi_rs", "name":"qiwi Serbia" } ]