• No results found

ipay Checkout API (IPC API)

N/A
N/A
Protected

Academic year: 2021

Share "ipay Checkout API (IPC API)"

Copied!
53
0
0

Loading.... (view fulltext now)

Full text

(1)

iPay Checkout API

(IPC API)

Accepting e-commerce payments for

merchants

Version 2.1

(2)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 2

Table of Contents

Introduction ... 9

Scope ... 10

the merchant / commercial decision makers ... 10

the IT specialists and developers ... 10

Structural features of the handbook ... 10

Terms and descriptions... 11

Where to start ... 12

Payment Gateway details ... 12

Implementation basics ... 12

Interaction Diagram ... 13

Payment process in steps ... 14

iPay Checkout payment page ... 15

Refund transactions ... 16

Use of Trademarks on Merchant’s website ... 16

Currencies accepted at iPay Checkout API ... 17

Security and availability ... 17

3-D Secure payment ... 18

Important security requirements for making requests to the iPay Checkout API ... 18

Security restrictions ... 19

Signature and public/private key pairs ... 19

The functions of iPay Checkout API ... 20

General ... 20

(3)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 3

Successful payment notification (API call: IPCPurchaseNotify / IPCPurchaseOK) ... 21

Cancelation of payment notification (API call: IPCPurchaseCancel)... 21

Notification for Rollback of previous executed payment (API call: IPCPurchaseRollback) ... 21

Get transaction status for previously executed payment (API call: IPCGetTxnStatus) ... 22

Make a refund for previously executed payment (API call: IPCRefund) ... 22

Make a credit note to an iPayWallet (API call: IPCCredit) ... 22

Make an original credit transaction to a cardholder’s account by a reference from a previously executed payment via IPG API (API call: IPCCreditIPG) ... 22

Business iPayWallet details ... 23

Applying for iPay Checkout ... 23

Reviewing and manage online stores ... 23

Review and approval from the Risk Assessment department ... 23

Setting up the new online store ... 23

Editing the online store data ... 25

E-commerce transactions ... 25

Overview ... 25

Details of e-commerce transactions ... 25

Making a refund ... 25

Reserve ... 26

Overview ... 26

Details ... 26

Frequently asked questions ... 27

Overview ... 31

HTTP POST ... 31

(4)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 4

Data type formats ... 31

Signature and authentications ... 32

Example for PHP 5.x.x ... 32

Signature verification example for PHP 5.x.x ... 33

Test environment... 34

Overview ... 34

Testing data ... 34

POST parameters example ... 34

Test scenarios ... 35

Production environment ... 35

The process ... 36

Understanding transmission mechanism ... 36

Method standard properties ... 37

Response standard properties ... 37

The calls ... 37

Purchase with iPayWallet/payment card (API call: IPCPurchase) ... 38

Purpose ... 38

Method properties ... 38

Cart Logical Record... 39

Example ... 40

Successful payment notification (API call: IPCPurchaseNotify / IPCPurchaseOK)... 41

Purpose ... 41

Method properties ... 41

Example ... 41

(5)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 5

Purpose ... 42

Method properties ... 42

Rollback of previous notification (API call: IPCPurchaseRollback) ... 42

Purpose ... 42

Method properties ... 42

Get transaction status for previously executed payment (API call: IPCGetTxnStatus) ... 43

Purpose ... 43

Method properties ... 43

Example of the xml response ... 43

Make a refund for previously executed payment (API call: IPCRefund) ... 46

Purpose ... 46

Method properties ... 46

Example of the xml response ... 47

Make a credit note to an iPayWallet (API call: IPCCredit) ... 47

Purpose ... 47

Method properties ... 47

Example of the xml response ... 48

Make an original credit transaction by a reference from a previously executed payment via IPG API (API call: IPCCreditIPG) ... 48

Purpose ... 48

Method properties ... 48

Example of the xml response ... 49

Appendix I – Error messages ... 50

Appendix II – Testing data ... 51

(6)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 6

iPay test public certificate ... 51

Appendix III – Example for successful payment notification ... 52

Result POST data ... 52

Appendix IV – Connection between IPCCreditIPG and IPG API ... 53

Result POST data from IPGPurchase call (IPG API) ... 53

Request POST data for IPCCreditIPG call (IPC API) ... 53

(7)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 7 Version control

N: Author Description Date posted

1 Milena Dyankova Version 1.0 (obsolete) 24.09.2012 2 Milena Dyankova Version 2.0 06.02.2013 3 Milena Dyankova Version 2.1.

New calls added – IPCCredit & IPCCreditIPG

(8)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 8

PART 1: GENERAL OVERVIEW

(9)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 9

Introduction

iPay Checkout API is a customer friendly interface for e-commerce payment solutions for your Online store. The API will let your customers to pay for goods and services quickly and securely using their iPayWallet or paying directly from debit or credit card.

The API will gain access to the entry point of iPayment Gateway managed by Intercard Finance AD (iCARD). By using hosted checkout secure pages, the merchant adhere to compliance rules for handling customer data in a secure way: data is stored on iCARD security servers so that it is not exposed to compromise.

The API enables you quickly and easily to integrate iPay Checkout into all your online stores as a method of payment. The integration will give you the opportunity to receive money from your customers instantly, in multi-currencies, to track and manage your payments from all your online stores in a single place and to manage your online stores settings. Therewith the API will give convenience to all your customers to choose their preferred payment method from a single source.

Using the iPay Checkout API your customers will be temporary redirected to

https://www.ipay.eu/checkout/. The iPayment Gateway will handle and guide the customer during the payment process, will check the card sensitive data and will process a payment transaction through card schemes (VISA, MasterCard, JCB) or via iPayWallet.

Once the payment is complete, the customer will be returned to the merchant’s website. You will receive notification about the payment along with the transaction details.

iPay Checkout API will provide:

 Secured page and Secured communication channel with the merchant;

 Storing of merchant private data (shopping cart, amount, payment method, transaction details etc.);

 Financial transactions to VISA, MasterCard, JCB (if applicable);

 Operations for the front-end: Purchase transaction, Manage online stores settings;  3D secure processing for direct payments with Debit or Credit Cards.

(10)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 10

Scope

This handbook is aimed at the operators of e-commerce companies who would like to optimize their payment processes using an innovative and complete payment solution.

The purpose of this document is to specify the iPay Checkout API Interface and demonstrate how it is used in the most common way, therewith to provide technical details about the system integration. It is intended to be utilized by:

the merchant / commercial decision makers

Certain sections describe the functions, main requirements and processes of the iPay Checkout payment system from the stance of e-commerce Business development managers. The document provides guidance on what is an iPay Checkout API, how it works, getting started, setting up an iPayWallet Number, main benefits of the API and FAQs.

the IT specialists and developers

Other sections of this manual describe the technical background of the iPay Checkout system. The document provides guidance on technical integration of the API with detailed working examples, use cases and error codes.

Structural features of the handbook

Important notes are indicated by the pictogram on the left.

References to another point in the text or to another document are indicated by the pictogram on the left.

(11)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 11

Terms and descriptions

API - Application Programming Interface for implementation of the iPay Checkout system in the

merchant e-commerce application.

iPayWallet number - Unique identifier for the Business iPayWallet of the merchant.

Online store ID – Unique Identifier for any online store (website) of the merchant which will use the

iPay Checkout API as a payment method.

PAN - Unique payment card number, which identifies the Issuer and the particular cardholder account. Call – Call by the merchant’s e-commerce system to iPay Checkout API.

Card Validation Code (CVC) or Card Verification Value (CVV) – Three digits encrypted in the magnetic

stripe on the back of the card. This is used as a method of verification during credit card processing.

Request - Query or request from the merchant e-commerce system to iPay Checkout API

Response - Response from iPay Checkout API to a Call from the e-commerce system.

3-D Secure™ (3DS) - Technical standard developed by Visa, MasterCard and JBC, designed to combat

online credit card fraud. Cardholders who have registered for Verify by Visa®, MasterCard SecureCode® or J/Secure® use their password to validate their identity whenever they make a purchase on a participating site.

XML - XML (Extensible Markup Language) is a generally available data format which iPay Checkout API

(12)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 12

Where to start

In order to sign up as an iPay Checkout API merchant and start using the iPayment Gateway, you need to have a Business iPayWallet first and to apply for a review as a merchant.

1. Sign in to your iPayWallet and go to the Profile / Online stores menu.

2. Click on the link Add new online store, fill in the information and submit the form.

3. One of our customer service representatives will review your data. We will start a procedure for Risk assessment management of your company and for every single website which you’ve added.

4. Once any of your websites is approved, you will be notified in your iPayWallet.

Payment Gateway details

Implementation basics

The API requires the merchants to modify their payment page at the shopping cart so to include iPay Checkout as a payment option. When the customer chooses iPay Checkout as a payment method he will actually submit a HTML form to the iPayment Gateway secure web servers using HTTPS protocol. The submitted form will contain all needed information about the payment (such as iPayWallet number, online store ID, shopping cart data, currency, amount, etc.)

Once the iPay Checkout API processes the payment, the system will pass the result to merchant web server and will grant customer with two options: to be redirected to the online store “checkout result” page or to log in one’s iPayWallet.

(13)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 13

Interaction Diagram

Detailed diagram with all communications and messages between the merchant website and iPay Checkout API is presented in the Part 2: Technical integration of this document.

(14)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 14

Payment process in steps

1. Internet customer chooses iPay Checkout as a payment method at the merchant’s online store checkout page.

2. Merchant web server initiates payment through the iPayment Gateway.

3. Customer web browser is redirected to iPay Checkout payment link along with the payment details.

4. If customer cancels the payment, he will be redirected to the merchant’s “Cancel payment” page.

5. The customer could choose:

a. To pay directly with his debit or credit card; or b. To log in his iPayWallet.

6. If the customer chooses:

a. To pay directly, he needs to fill in his payment data and to click the button “Confirm”. b. To login in their iPayWallet, he could see different states depending on his cash balance

and his preferred payment method. He could pay with his iPay Balance, from a Linked card in his iPayWallet or from new debit or credit card.

Most of the customer data will be automatically filled in and the customer will need to complete just few of the fields.

7. iPayment gateway system receives the details for the payment – successful or declined.

8. iPayment gateway system passes the result to merchant web server and the customer web browser is directed to the iPay Checkout result page.

9. If the customer clicks on the “Return to ..” button he will be redirected to the merchant’s result page.

(15)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 15

iPay Checkout payment page

The iPay Checkout payment page will have the following main elements:

(16)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 16

Refund transactions

The merchant could initiate a refund transaction for any previously executed payment. This functionality is available in his Business iPayWallet / transaction details.

In case where the customer has lodged a justified complaint or the merchant is unable to deliver the goods, he could refund any partial amount of the payment back to the customer.

iPay always books the refund back in the originally used payment method. In any cases where this is not possible (or it is not supported by the particular payment method), iPay books the value back in the form of e-money in the customer’s iPayWallet.

The maximum refunded amount is 100 percent of the original amount.

Use of Trademarks on Merchant’s website

The Merchant needs to follow the instructions below: 1. General requirements

The iPay logo and all related with the iPay Checkout API logos may not be altered, modified, or changed in any way, without the prior written permission of iCARD. These logos may not be used in a manner that refers disparagingly to iCARD or the iPay Checkout service.

The iPay Checkout payment option must be shown along with any other payment method on the

merchant’s website. The service must be presented in a manner which shows service in equality with all other payment methods.

The merchant may not use any of the Card scheme logos (VISA, MasterCard, JCB) separately without the iPay logo, except in case where the merchant has personal agreement with a specific Card scheme. The merchant must comply with iCARD any text descriptions of the iPay Checkout service and/or iCARD before publishing them online.

The merchant may use on his website any logo available on ipay.eu website / e-commerce / Integration. If the merchant needs custom size or solution, he must contact iPay Customer service department.

2. Payment method page

If the merchant has separate payment method page on his website, he needs to describe the iPay Checkout service, complying with the above General requirements.

(17)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 17 3. Checkout page

The iPay Checkout payment method must be presented on the merchant’s checkout page complying with the above General requirements.

4. Redirecting page

If the merchant has a redirecting page between his checkout page and the iPay Checkout payment page, the merchant needs to have the following attributes on this page:

- https://www.ipay.eu

- Payments processed by iPay.eu or iPay logo

Example:

Please wait, you are now being redirected to https://www.ipay.eu/checkout/.

You are about to pay via secure payments processed by iPay using e-money or a debit or credit card. If you are not redirected within 5 seconds, please click here.

5. Other places on the merchant’s website

The iPay logos must be placed in clear and visible place on the homepage complying with the above General requirements.

The Verified by VISA & MasterCard SecureCode & J/Secure logos could be placed separately in accordance with the requirements of the Card scheme.

Currencies accepted at iPay Checkout API

iPay Checkout API is accepting payments and making payouts in all currencies available for iPayWallet. Please refer to www.ipay.eu in order to see the current list with all available currencies.

If the merchant needs to accept payments in any other currency, he will need to contact his customer service representative for more information.

Security and availability

Connection between the merchant and the iPay Checkout API is handled through internet using HTTPS protocol (SSL over HTTP). Requests and responses are digitally signed both. iCARD host is located at Tier IV datacenter in Luxembourg. Public address for iPay Checkout API is BGP enabled and available through all first level internet providers.

(18)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 18 iCARD supplies an emergency support line via e-mail or phone which is 7x24 enabled and reaches certified engineers.

3-D Secure payment

To make online transactions using credit cards safer and more secure, iCARD as an acquiring bank, supports 3-D secure payments.

The service is available for merchant’s accounts which support 3-D secure and in case the customer credit card is 3-D secure.

Depending on the Card scheme and the Issuing bank, the customer will see an additional step in the iPay Checkout payment page. Please take a look at the VISA example below:

Important security requirements for making requests to the iPay Checkout API

All requests to the API are standard HTTPS requests. The 'User-Agent' HTTP request header is required by iPay Checkout API.

It is a means of verification of the program on the client host and if the client does not send this string, it cannot be verified nor logged and will result in iPay Checkout error page with the following text: “The online store has sent iPay a shopping cart with errors in it. We will contact the Merchant with a request to fix this problem. As this could be a temporary issue, you can go back to try checking out again.” and a link to the merchant’s website.

(19)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 19 Sending the 'User-Agent' is one of the principle rules of our network security and is usually a simple setting in client programs. If you are against sending the header for tracking reasons, we inform you that this is used as a loophole by potential attackers.

Security restrictions

Enable/Disable payments for a specific merchant’s online store

By default, the online payment processing for any approved merchant’s online store is disabled. To enable the store the merchant needs to log in his Business iPayWallet, to go to the Profile / Online stores menu and to click on the button “Enable” beside the particular online store.

The merchant could use the “Enable/ Disable” functionality at any convenient time.

Request URLs

This iPay feature aims to further increase the security level of the merchant’s account, protecting it from unauthorized request attempts.

The merchant must specify at least one URL from which request to the iPay Checkout API will be made.

All requests from any other URLs will be denied.

The merchant could add new URLs at any time, however all new URLs will be reviewed and approved first.

Signature and public/private key pairs

In every message a signature is supplied.

For signing process, both IPC API and the merchant generate public/private key pairs and exchange the public certificate. Key pairs are generated using RSA algorithm. The certificates must be PEM-encoded PKCS7 file. Every of the parties are using the private key to sign the message and the opposite side authenticate the sender with corresponding public certificate.

The IPC API provides different iPay public certificate to everyone online store of the merchant. They are available for download at Profile / Online stores / Keys menu.

(20)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 20 IPC API requires from merchant to upload his public certificate so that his digital signature can be verified from the system. The merchant can upload few public certificates and specify which one is in use at any time.

The online store public certificate can be changed at any time from the Profile / Online stores / Keys menu.

The functions of iPay Checkout API

General

This chapter describes the main functions of the applications implemented in iPay Checkout API. The function calls are the core elements of the payment API. The IT specialists and e-commerce system developers will be provided with an initial introduction to the technical background of the API.

The complete API reference is shown in the Part 2: Technical integration of this document.

API function call Description

MERCHANT TO IPC

IPCPurchase This is the standard method for checkout at web shop. Customer interaction.

IPCRefund Credit to customer, e.g. return money. No customer interaction needed.

IPCGetTxnStatus Returns the status and the parameters of a previously executed payment.

No customer interaction needed.

IPCCredit Credit note to an iPayWallet. No customer interaction needed.

IPCCreditIPG Original credit transaction to a cardholder’s account by a reference from

previously executed payment via IPG API. No customer interaction needed.

IPC TO MERCHANT

IPCPurchaseNotify IPC will respond with this method on successful payment. The call will be

made on previously supplied URL_Notify.

IPCPurchaseOK IPC will redirect with this method on successful payment. The call will be

made on previously supplied URL_OK.

IPCPurchaseCancel IPC will redirect with this method when the customer chooses cancel

payment. The call will be made on previously supplied URL_Cancel.

IPCPurchaseRollback

IPC will notify that a reversal is passed for previous successful authorization. The merchant should mark the order as not paid (in case, the merchant has received IPCPurchaseNotify method). This is used when IPC do not receive and HTTP OK from the merchant as a response for IPCPurchaseNotify method.

(21)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 21

Individual transaction / purchase (API call: IPCPurchase)

This is the standard method for checkout. If the customer has decided to pay via iPay Checkout, the merchant’s e-commerce system transmits an IPCPurchase call to iPay system. The customer is redirected to the iPay Checkout payment page.

iPay Checkout will check for: - Valid iPayWallet number

- Valid Online Store ID corresponding with this iPayWallet number - Valid status of the Online store (enabled)

- Valid currency and total amount - Valid signature

Successful payment notification (API call: IPCPurchaseNotify / IPCPurchaseOK)

This call is used by iPay Checkout API to notify the merchant for a successful payment and to pass all needed parameters for the payment on URL_Notify. After successful response to this call the API will redirect the customer browser to URL_OK and will pass the same parameters as IPCPurchaseOK call.

Cancelation of payment notification (API call: IPCPurchaseCancel)

This call is used by iPay Checkout API to notify the merchant that the customer has cancelled the payment. The API will redirect with this call when the customer choose cancel payment. The call will be made on previously supplied URL_Cancel.

Notification for Rollback of previous executed payment (API call: IPCPurchaseRollback)

This call is used by iPay Checkout API to notify that a reversal is passed for previous successful authorization. The merchant should mark the order as not paid (in case, the merchant has received IPCPurchaseNotify call). This is used when IPC API does not receive an HTTP OK from the merchant as a response from IPCPurchaseNotify call. The call will be posted to URL_Notify.

(22)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 22

Get transaction status for previously executed payment (API call: IPCGetTxnStatus)

This call is used by merchant to get the current status of previously executed payment. The IPC API will return an xml with detailed information about a specific OrderID. This call is intended to be utilized by the Merchant in his website back-end. The merchant could decide whether or not to use this method.

Make a refund for previously executed payment (API call: IPCRefund)

This call is used by merchant to initiate a refund of previously executed payment. The IPC API will return an xml with the result. This call is intended to be utilized by the merchant in his website back-end. The merchant could decide whether or not to use this method.

Make a credit note to an iPayWallet (API call: IPCCredit)

This call is used by merchant to initiate a credit note to an iPay customer. The IPC API will return an xml with the result. This call is intended to be utilized by the merchant in his website back-end. The merchant could decide whether or not to use this method.

Make an original credit transaction to a cardholder’s account by a reference from a previously executed payment via IPG API (API call: IPCCreditIPG)

This method is used by Merchant to initiate an original credit request to a cardholder’s account. The request can be initialized only by a reference of a previously executed payment transaction via the IPG API. The IPC API will return an xml with the result. This method is intended to be utilized by the Merchant in his website back-end. The merchant could decide whether or not to use this method.

(23)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 23

Business iPayWallet details

Applying for iPay Checkout

The merchant can apply for new iPay Checkout using one of the following options: 1. From the menu Profile / Online stores / Add new online store button 2. From the menu Profile / My requests / Open iPay Checkout

If the merchant does not have a Business iPayWallet, he will need to fill in the Business iPayWallet join form first.

Reviewing and manage online stores

Review and approval from the Risk Assessment department

Once the merchant fills in the IPC request form the Risk assessment department will review and approve the new online store and all its data. The merchant can see the details of every one IPC request along with its status at Profile / My requests menu in real time.

Setting up the new online store

When the IPC request is approved from the Risk department, the new online store will be visible at the Profile / Online stores menu. The new online store will be with status “Disabled”. The merchant needs to:

1. activate the store once he is ready with the test integration with the IPC API by clicking on the appropriate button beside the store;

2. read carefully and agree with the General terms and conditions and the Tariff for this store. 3. set key pairs for this particular website;

4. enable the store by clicking on the appropriate button beside the store.

(24)
(25)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 25

Editing the online store data

The merchant can change the main information of every online store using the “Edit” functionality at the Profile / Online stores / My online stores. All changes will be submitted as an IPC change request. The merchant can see the details of his change request along with its status at Profile / My requests menu in real time. All changes will become visible at the online store once the Risk department approves them.

E-commerce transactions

Overview

All e-commerce transactions will be visible in the merchant’s Business iPayWallet in the same way all other transaction types are. The merchant could filter and see only the transactions which come from IPC or from a specific online store.

Details of e-commerce transactions

The merchant will see the following type of details for the e-commerce transactions:  Payment details – such as payment origin and used payment method;

 Transaction details – transaction reference, exchange rate, amount, transaction fee;  Reserve – reserve amount from the specific transaction and reimbursement date;

 Cart details – all data from the shopping cart shown to the customer during the checkout, i.e. item name, price, quantity, order total and note;

 Refund details / functionality – refund functionality with which the merchant could initiate partial or full amount refund transaction to a previously executed payment. If there is at least one refund transaction for the initial payment the merchant will see it here together with refund transaction reference and refund amount and fee.

Making a refund

In case where the customer has lodged a justified complaint or the Merchant is unable to deliver the goods, he could refund any amount of the payment back to the customer. The merchant can refund up to 100 percent of the original amount.

(26)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 26 When the merchant initiate a refund, a reference will be added to the original transaction details along with new row for the refund transaction.

Once the merchant issues a refund, it cannot be cancelled.

If the corresponding iPay balance has insufficient funds, the refund transaction will be denied.

If the iPay balance becomes negative as a result of deducted refunds or chargebacks, iPay will collect funds from the merchant in accordance with the iPay General terms and conditions.

Reserve

Overview

The reserve is a percentage of money that must remain in the merchant’s iPayWallet for a specific period of time to cover any payment reversals that may be received like chargebacks, claims, and disputes.

The reserve rate and period is specified in the merchant’s tariff and depends on the risk assessment of the particular online store. They will be reviewed regularly and adjusted when necessary.

If the merchant Business iPayWallet is blocked by Issuer or closed for any reason, iPay may hold the reserve for up to 180 days after the date of the last transaction with iPay Checkout.

Details

The merchant can track the accumulated currency reserve amount and how exactly they are calculated at any time on the Currencies menu. He can filter and a see all transactions which were calculated in it and when the particular amount will be reimbursed.

(27)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 27

Frequently asked questions

Why choose iPay Checkout API? What are the main benefits of the API?

- The iPay Checkout ensures secure transactions to be transmitted over the Internet. - It is easy to be implemented in a website.

- Ability to support multiple payment methods and multi payment service providers (card schemes) with a single implementation.

- No need of additional organization, collection and storing of sensitive customer data on Security servers, respectively to meet all the requirements for these procedures. All this saves time and reduces the costs.

- Best way to provide convenience to your customers.

How can I integrate my e-commerce platform to accept payment with iPay Checkout?

You could find all needed information for your integration in the iPay Checkout section of the website. iPay provides full Integration manual both with detailed working examples, usage cases, error codes and test environment.

Do I need to have a separate merchant account?

No, you don’t. You need only to have a Business iPayWallet and to apply for e-commerce payment processing. Once you get an approval as an e-merchant you could start using the iPay Checkout.

Do I need to have a separate Business iPayWallet in order to be able to accept online payments on different websites?

No, there are no restrictions about how many websites you will link to your Business iPayWallet.

When and where I will receive my money?

You will receive all your payments (from all your approved online stores) in your Business iPayWallet instantly.

Will I get the full amount of all my payments instantly?

Yes, you will get all payments into your Business iPayWallet instantly. However a small amount will be unavailable for active operations for a specific period of time depending on your contract. This is your Reserve balance. These funds can be used to prevent transactions loss that may occur from payment reversals like chargebacks and disputes filed by the buyers.

(28)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 28 Whenever you want to transfer money to your bank account, you need to use the “Transfers” functionalities in your iPayWallet. There will be no automatically set transfers from your iPayWallet.

What if I need to cancel the online payment service? Do I need to cancel the Business iPayWallet too?

You can terminate your use of iPay Checkout at any time without any cancelation fees or long-term commitment. If you want to, you can keep using your Business iPayWallet.

How much does it cost to use iPay Checkout API on my website?

The price could depend on the Risk Assessment of your company and the websites you want to be acquired. Please refer to our standard tariff or contact our Customer service department.

Will the iPay Checkout API going to collect any additional fees from the customer for every transaction?

No. The iPay Checkout API will not collect any fees from the customers.

Do my clients need an iPayWallet to pay me?

No. They can pay with their debit or credit card (which are branded with VISA, VISA Electron, Vpay, MasterCard, Maestro or JCB) – all without having an iPayWallet in advance.

Is it possible for me to cancel an order received from a customer? Are there any charges for such cancellation?

Yes, you could initiate a partial or full refund transaction for any previously processed transaction using the Refund functionality in your Business iPayWallet. Regarding the charges please refer to our tariff or to your contract.

How can I issue a Refund for my client?

Login to your Business iPayWallet, find the transaction you want to refund on the Transactions page and open the details. At the bottom of the details you will see a "Refund" button. If you click on it, you will see new window where you could specify the amount and reason of the refund and confirm the operation.

How long does it take for a transaction to take place?

Transactions submitted to the iPay Checkout API are processed in real time and take approximately 1-3 seconds to return a response.

(29)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 29 No, there are no restrictions how many transactions you will process during a month. However in some cases there could be some processing restrictions depending on the Risk assessment of your company and online stores.

Will I be able to see all transactions and turnover in my iPayWallet?

Yes, you will see all your transactions and account details (incl. statements) in your Business iPayWallet.

Is it possible to add new or edit the approved currencies in which I could accept payments on my online store?

Yes. You could change them at any time using your online store settings in the Business iPayWallet. However they will be reviewed and approved first.

How do I manage my store settings?

Once you have an approval of any online store you need to go to Profile / Online stores menu and: - set the keys for this store – to download the iPay public certificate and to upload your public certificate.

- edit your store so to include all URLs from which you will send IPC requests to the iPay. Please have in mind that all changes of the online stores become active after an approval.

(30)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 30

PART 2: TECHNICAL INTEGRATION

(31)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 31

Overview

HTTP POST

Data transfer between Merchant and IPC is made by HTTP POST. All the parameters for the requests are in the body in [parameter=value] form. Separator between tokens is [&]. The body is URL Encoded. Character encoding is UTF-8.

Example: POST /somescript.php HTTP/1.1 Host: www.somesite.com User-Agent: Mozilla/4.0 Content-Length: 27 Content-Type: application/x-www-form-urlencoded userid=joe&password=guessme&user_type=1

Data type formats

Data Type in document

Description Example

int Integer 1

String String This is a string

Date ISO 8601 date string YYYY-MM-DD 2012-03-31

DateTime ISO 8601 datetime string YYYY-MM-DD HH:mm:SS 2012-03-31 23:59:59

A(n) Alpha string. [n] characters required Alpha string

AN(n) Alphanumeric string. [n] characters required Alphanumeric string N(n) Numeric string. [n] characters required. Number is

left-padded with zeroes.

000123 double Numeric string with decimal point. Only point is

used (no commas or other characters for decimal point)

34.56

BASE64 Sting used to pass binary data. The binary data should be converted to base64 standard.

YW55IGNhcm5hbCBwbGVhc3VyZQ==

XML Simple in place XML array. <body>

<param>1</param> <value>2</value> </body>

(32)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 32

Signature and authentications

Signatures are calculated using the following mechanism. All data in POST request without the Signature property are concatenated with dash and Base64 encoded. The string is signed with the private key using MD5 algorithm. Then the signature needs to be Base64 encoded. The signature property is added to the POST request.

The opposite side should concatenated all data in POST request without the Signature property, to Base64-encode the string and then to verify the obtained string with the sent signature property and the public key extracted from the iPay public certificate.

The Merchant should always verify the signature when receiving a call from IPC API!

Example for PHP 5.x.x

<?php

// The POST data array

$postData = array('IPCmethod'=>'IPCPurchase', ...); // This is an example of RSA private key

$privKey = '---BEGIN RSA PRIVATE KEY---

MIICXAIBAAKBgQCf0TdcTuphb7X+Zwekt1XKEWZDczSGecfo6vQfqvraf5VPzcnJ 2Mc5J72HBm0u98EJHan+nle2WOZMVGItTa/2k1FRWwbt7iQ5dzDh5PEeZASg2UWe hoR8L8MpNBqH6h7ZITwVTfRS4LsBvlEfT7Pzhm5YJKfM+CdzDM+L9WVEGwIDAQAB AoGAYfKxwUtEbq8ulVrD3nnWhF+hk1k6KejdUq0dLYN29w8WjbCMKb9IaokmqWiQ 5iZGErYxh7G4BDP8AW/+M9HXM4oqm5SEkaxhbTlgks+E1s9dTpdFQvL76TvodqSy l2E2BghVgLLgkdhRn9buaFzYta95JKfgyKGonNxsQA39PwECQQDKbG0Kp6KEkNgB srCq3Cx2od5OfiPDG8g3RYZKx/O9dMy5CM160DwusVJpuywbpRhcWr3gkz0QgRMd IRVwyxNbAkEAyh3sipmcgN7SD8xBG/MtBYPqWP1vxhSVYPfJzuPU3gS5MRJzQHBz sVCLhTBY7hHSoqiqlqWYasi81JzBEwEuQQJBAKw9qGcZjyMH8JU5TDSGllr3jybx FFMPj8TgJs346AB8ozqLL/ThvWPpxHttJbH8QAdNuyWdg6dIfVAa95h7Y+MCQEZg jRDl1Bz7eWGO2c0Fq9OTz3IVLWpnmGwfW+HyaxizxFhV+FOj1GUVir9hylV7V0DU QjIajyv/oeDWhFQ9wQECQCydhJ6NaNQOCZh+6QTrH3TC5MeBA1Yeipoe7+BhsLNr cFG8s9sTxRnltcZl1dXaBSemvpNvBizn0Kzi8G3ZAgc=

---END RSA PRIVATE KEY---';

// You need to concatenate all values from $postData and to Base64-encode the result $concData = base64_encode(implode('-', $_POST));

$privKeyObj = openssl_get_privatekey($privKey); // Signed data in binary

openssl_sign($concData, $signature, $privKeyObj, OPENSSL_ALGO_MD5); // Base64 encoding of the signature

(33)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 33 // Now you need to add the signature to the POST request

$postData['Signature'] = $signature; openssl_free_key($pubKeyId); ?>

Signature verification example for PHP 5.x.x

<?php

// Save POST request data in var $data $data = $_POST;

// iPay certificate

$cert = '---BEGIN CERTIFICATE---

MIIBkDCB+qADAgECAgAwDQYJKoZIhvcNAQEFBQAwDzENMAsGA1UEChMEaVBheTAe Fw0xMzAzMTMxMTI1MTFaFw0yMzAzMTExMTI1MTFaMA8xDTALBgNVBAoTBGlQYXkw gZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAML+VTmiY4yChoOTMZTXAIG/mk+x f/9mjwHxWzxtBJbNncNK0OLI0VXYKW2GgVklGHHQjvew1hTFkEGjnCJ7f5CDnbgx evtyASDGst92a6xcAedEadP0nFXhUz+cYYIgIcgfDcX3ZWeNEF5kscqy52kpD2O7 nFNCV+85vS4duJBNAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAFSfqJHH9Vp9Y4osJ sLg1Um5LOoTgn6u4JepHMFoSiwYE0n/N3D3JIgqAzjdVJ+1rZV95VAf/+TKzWzvP V8L01LJ8aRFkUaPGenVsGvBT2mtsbu34QUOlPgzCi3huidwk0ylMX7zo8uxu1cXv /bg5jBGe5SjvJP8Tq257QcAGgkA= ---END CERTIFICATE---'; // Save signature $signature = $dat['Signature'];

// Remove signature from POST data array unset($data['Signature']);

// Concatenate all values

$concData = base64_encode(implode('-', $data)); // Extract public key from certificate

$pubKeyId = openssl_get_publickey($cert); // Verify signature

$res = openssl_verify($concData, base64_decode($signature), $pubKeyId, OPENSSL_ALGO_MD5); //Free key resource

openssl_free_key($pubKeyId); if($res==1){ //success }else{ //not success } ?>

(34)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 34

Test environment

Overview

The IPC API test environment is self-contained, virtual testing environment. Once you are ready with the API integration you need to use it in order to make the appropriate tests of all your IPC API calls and communication with the system. The test environment will let you test the API integration without affecting any real iPay users or their real iPayWallets.

The IPC API test environment mimics iPay's production servers, so you can format and make all your Calls to the system as you will do in Production environment. The only difference between the Calls on both environments is that you need to use different user credentials and endpoints.

Before start using iPay Checkout into production, you should test the application with all case scenarios in IPC API test Environment.

Testing data

Test environment host: https://www.ipay.eu/checkout-test/

SID: 000000000000010 E-mail: [email protected]

Wallet number: 61938166610 Password: demo

Customer Email: [email protected] SMS code: 1111

To download iPay test public certificate and online store test private key please refer to www.ipay.eu -> iPay Checkout / Test environment menu.

POST parameters example

IPCmethod=IPCPurchase& IPCVersion=2.0& IPCLanguage=EN& WalletNumber= 61938166610& SID=000000000000010& Amount=23.45& Currency=978& OrderID=1854& URL_OK= http://site.ext/paymentOK& URL_Cancel=http://site.ext/paymentNOK& URL_Notify=http://site.ext/paymentNotify& CustomerIP=82.119.81.30& [email protected]& CustomerPhone=+23568956958& CustomerFirstNames= John Santamaria& CustomerFamilyName=Smith&

(35)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 35 CustomerCity=Hamburg&

CustomerZIPCode=20095&

CustomerAddress= Kleine Bahnstr. 41& Note=note&

CartItems=2&

Article_1=HP ProBook 6360b sticker& Quantity_1=2&

Price_1=2.34& Amount_1=4.68& Currency_1=978&

Article_2=HP ProBook 6360b sticker& Quantity_2=1&

Price_2=2.00& Amount_2=2.00& Currency_2=978

Please, have in mind that you could test with every debit or credit card number. In test environment all card transactions will be processed as successful payment. Your card will not be charged!

Test scenarios

In order to start testing the IPC API payments, you need to: 1. Implement the IPC API.

2. Send POST request with all data to the test host address. 3. Test the following scenarios:

• Error in the POST request – missing or invalid data; • Send wrong signature to IPC API;

• Check IPC API message signature for authenticity;

• The Customer terminates the process on the IPC payment page; • Customer pays successful;

• Customer pays successful, however the merchant’s website does not return HTTP OK to IPC API.

Production environment

Once you have everything implemented and tested, you need to set your online store keys to production environment and change your test data.

(36)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 36

The process

(37)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 37

Method standard properties

In every request there are several parameters that are always supplied. Bellow they are called ‘standard properties’. Once defined bellow they won’t be described in every single command listed in the specification, they should be considered as existing to every command.

Property Typical value Type Description

IPCmethod IPCPurchase String Name of the method requested for execution from IPC.

Signature Byte[] BASE64 SHA-256 HASH for all properties in the command. Signature is ALWAYS THE LAST PARAMETER IN THE

POST, as it is not used to calculate the hash.

IPCVersion 2.0 string Version of protocol used for transition.

IPCLanguage EN A(2) ISO 2-character code for the desired language on the payment page. If IPC cannot fulfill the requested language, it will set the English language as defaults. Currently supporting EN, FR, DE, BG, ES, RO.

WalletNumber 11111111111 N(11) iPayWallet Number

SID 000000000000010 AN(15) Site ID. Identifier of the website accepting payment.

Response standard properties

Upon HTTP request, the party should respond with header HTTP 200 OK with the following body content: “OK”. Every other response should be treated as communication error, call error, server error or system malfunctions.

The calls

API function call Description

MERCHANT TO IPC

IPCPurchase This is the standard method for checkout at web shop. Customer interaction.

IPCRefund Credit to customer, e.g. return money. No customer interaction needed.

IPCGetTxnStatus Returns the status and the parameters of a previously executed payment.

No customer interaction needed.

IPCCredit Credit note to iPayWallet. No customer interaction needed.

IPCCreditIPG Original credit transaction to a cardholder’s account by a reference from

previously executed payment via IPG API. No customer interaction needed.

IPC TO MERCHANT

IPCPurchaseNotify IPC will respond with this method on successful payment. The call will be

made on previously supplied URL_Notify.

IPCPurchaseOK IPC will redirect with this method on successful payment. The call will be

made on previously supplied URL_OK.

IPCPurchaseCancel IPC will redirect with this method when the customer chooses cancel

(38)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 38

IPCPurchaseRollback

IPC will notify that a reversal is passed for previous successful authorization. The merchant should mark the order as not paid (in case, the merchant has received IPCPurchaseNotify method). This is used when IPC does not receive and HTTP OK from the merchant as a response for IPCPurchaseNotify method.

All commands described below do not include the standard properties discussed in the previous topic. However the standard properties are mandatory for all commands.

Purchase with iPayWallet/payment card (API call: IPCPurchase)

Purpose

This method initiates the beginning of the payment process for a customer. The customer is placed on a page that requests entering payment card details.

IPC will check for:

- Valid iPayWallet number

- Valid Online Store ID corresponding with this iPayWallet number - Valid status of the Online store (enabled)

- Valid currency and total amount - Valid signature

Method properties

Property Typical value Type Required Description

Amount 23.45 Double YES The amount of the payment

requested.

Currency 978 N(3) YES ISO numeric currency code. The

currency for the payment should be registered and approved.

OrderID 201203319999999 String YES Placeholder for the merchant.

Used to put some data that will help the merchant to recognize for which order is the payment. Up to 255 characters.

URL_OK http://site.ext/paymentO

K

String YES The page where the cardholder should be redirected on successful payment.

URL_Cancel http://site.ext/paymentN OK

String YES The page where the cardholder should be redirected when <Cancel> is pressed on the payment page.

(39)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 39 URL_Notify http://site.ext/paymentN

otify

String YES Address supplied by the partner, where the IPCPurchaseNotify API call will send the parameters for the successful payment.

CustomerIP 82.119.81.30 String YES Dotted-decimal string, that holds

the customer IP address as reported at merchant web shop. CustomerEmail [email protected] String YES This is a customer’s email.

CustomerPhone +23568956958 String NO This is a customer’s phone.

CustomerFirstNames John Santamaria String YES All customer’s names without the surname.

CustomerFamilyName Smith String YES The customer’s surname.

CustomerCountry DEU String NO ISO country code

CustomerCity Hamburg String NO

CustomerZIPCode 20095 String NO

CustomerAddress Kleine Bahnstr. 41 String NO

Note String NO Text associated with the purchase.

CartItems 2 Int YES The number of rows (items) in the

logical record Cart.

If there will be some additional fees/taxes for the cardholder, they need to be added as new items.

Cart Logical Holder Logical

Record

YES Array provided by the Merchant. The array describes the content of the shopping cart. The content will be displayed on the IPC payment page.

*URL_OK, URL_Cancel and URL_Notify could be the same. IPC API will supply the proper method in the property “IPCmethod”.

Properties SID in combination with OrderID give a unique identifier for the request of a partner. IPC will reject duplicated transmission.

Cart Logical Record

Cart logical record consists of standard POST parameters with the form name=value. For every consequent item an index is added that shows the logical record number for the item (ex. Atricle_1). Indexes are from 1 to <CartItems>.

Property Typical value Type Description

Article HP ProBook 6360b

sticker

String Name of an article in the shopping cart.

Quantity 2 Int How many pieces of an article.

(40)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 40

Amount 4.68 Double Quantity*Price for the article.

Currency 978 N(3) Should be the same currency as in the purchase amount.

Example

New lines and tabulators are included for better reading and do not exist in the POST request. IPCmethod=IPCPurchase& IPCVersion=2.0& IPCLanguage=EN& WalletNumber=61938166610& SID=000000000000010& Amount=23.45& Currency=978& OrderID=201203319999999& URL_OK= http://site.ext/paymentOK& URL_Cancel=http://site.ext/paymentNOK& URL_Notify=http://site.ext/paymentNotify& CustomerIP=82.119.81.30& [email protected]& CustomerPhone=+23568956958& CustomerFirstNames= John Santamaria& CustomerFamilyName=Smith&

CustomerCountry= DEU& CustomerCity=Hamburg& CustomerZIPCode=20095&

CustomerAddress= Kleine Bahnstr. 41& Note=note&

CartItems=2&

Article_1=HP ProBook 6360b sticker& Quantity_1=2& Price_1=2.34& Amount_1=4.68& Currency_1=978& Article_2=Delivery& Quantity_2=1& Price_2=2.00& Amount_2=2.00& Currency_2=978

(41)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 41

Successful payment notification (API call: IPCPurchaseNotify / IPCPurchaseOK)

Purpose

This method is used by IPC to notify the merchant for a successful payment and to pass all needed parameters for the payment on URL_Notify. After successful response for this method IPC will redirect the customer browser to URL_OK and will pass same parameters with IPCPurchaseOK method.

Method properties

Property Typical value Type Description

Amount 23.45 Double Echo from IPCPurchase.

Currency 978 N(3) Echo from IPCPurchase.

CustomerIP 82.119.81.30 String Echo from IPCPurchase.

OrderID 201203319999999 string Echo from IPCPurchase.

IPC_Trnref 12345678923 String Used to uniquely identify a transaction in IPC. Used as a parameter for subsequent refund of reversal if needed.

RequestDateTime 2012-03-31 23:59:59 DateTime Date/time of the request

RequestSTAN 123456 N(6) Consequent number from 1 to 999999.

Used for request unique match.

Signature Byte[] BASE64 SHA-256 HASH for all properties in the

command. Signature is ALWAYS THE LAST

PARAMETER IN THE POST, as it is not used

to calculate the hash.

Example

HTTP/1.1 200 OK

Date: Mon, 11 Mar 2013 08:04:50 GMT Server: Apache/2.2.22 (Win32) PHP/5.2.17 X-Powered-By: PHP/5.2.17

Set-Cookie: PHPSESSID=a048e995f78f9e38b192f528f67d3cc3; path=/ Expires: Thu, 19 Nov 1981 08:52:00 GMT

Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache

Content-Length: 2 Connection: close

Content-Type: text/html; charset=utf-8 OK

(42)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 42

Cancelation of payment notification (API call: IPCPurchaseCancel)

Purpose

This method is used by IPC to notify the merchant that the customer has cancelled the payment. IPC will redirect with this method when the customer choose cancel payment. The call will be made on previously supplied URL_Cancel.

Method properties

Property Typical value Type Description

Amount 23.45 Double Echo from IPCPurchase.

Currency 978 N(3) Echo from IPCPurchase.

CustomerIP 82.119.81.30 String Echo from IPCPurchase.

OrderID 201203319999999 string Echo from IPCPurchase.

Signature Byte[] BASE64 SHA-256 HASH for all properties in the

command. Signature is ALWAYS THE LAST

PARAMETER IN THE POST, as it is not used

to calculate the hash.

Rollback of previous notification (API call: IPCPurchaseRollback)

Purpose

This method is used by IPC to notify that a reversal is passed for previous successful authorization. The merchant should mark the order as not paid (in case, the merchant has received IPCPurchaseNotify method). This is used when IPC does not receive and HTTP OK from the merchant as a response for IPCPurchaseNotify method. The call will be posted to URL_Notify.

Method properties

Property Typical value Type Description

Amount 23.45 Double Echo from IPCPurchase.

Currency 978 N(3) Echo from IPCPurchase.

CustomerIP 82.119.81.30 String Echo from IPCPurchase.

OrderID 201203319999999 string Echo from IPCPurchase.

Signature Byte[] BASE64 SHA-256 HASH for all properties in the

command. Signature is ALWAYS THE LAST

PARAMETER IN THE POST, as it is not used

(43)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 43

Get transaction status for previously executed payment (API call:

IPCGetTxnStatus)

Purpose

This method is used by Merchant to get the current status of previously executed payment. The IPC API will return an xml with detailed information about a specific OrderID. This method is intended to be utilized by the Merchant in his website back-end. The Merchant could decide whether or not to use this method.

Method properties

Property Typical value Type Required Description

OrderID 201203319999999 String YES Placeholder for the merchant. Used to put some data that will help the merchant to refer payments to orders. Up to 255 characters.

OutputFormat xml String NO Output format of data. The property can be “xml” or “json”. If it is not specified in the request, the default value is “xml”.

Example of the xml response

<ipc_response> <IPCmethod>IPCGetTxnStatus</IPCmethod> <OrderID>201203319999999</OrderID> <log> <item> <time>11.03.2013 09:42:56</time>

<action>Received new POST request</action> <result> <IPCmethod>IPCPurchase</IPCmethod> <Signature>WwSv6Hk3cH9VAnIfGxOkIY/Ph0psiWGywNuZl8dAYPQZa8qFrLDh5Ck1RDAE 7h1oSH0CZw5fVW7jAIhSGcjaOnk+wybGVbIMxP59aUEKEG8wW0N2CH6oft92W/APQ60 rZ6Qsdlge3uiAKchfvJEcy3buuWVb6C2D58isBvrMFik=</Signature> <IPCVersion>2.0</IPCVersion> <IPCLanguage>en</IPCLanguage> <SID>000000000000010</SID> <WalletNumber>61938166610</WalletNumber> <Amount>23.45</Amount> <Currency>978</Currency> <OrderID>201203319999999</OrderID> <URL_OK>http://site.ext/paymentOK<URL_OK> <URL_Cancel>http://site.ext/paymentNOK</URL_Cancel> <URL_Notify>http://site.ext/paymentNotify</URL_Notify> <CustomerIP>82.119.81.30</CustomerIP>

(44)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 44 <CustomerEmail>[email protected]</CustomerEmail> <CustomerPhone>+23568956958</CustomerPhone> <CustomerFirstNames>John Santamaria</CustomerFirstNames> <CustomerFamilyName>Smith</CustomerFamilyName> <CustomerCountry>DEU</CustomerCountry> <CustomerCity>Hamburg</CustomerCity> <CustomerZIPCode>20095</CustomerZIPCode>

<CustomerAddress>Kleine Bahnstr. 41</CustomerAddress> <Note>Some note here</Note>

<CartItems>2</CartItems>

<Article_1>HP ProBook 6360b sticker</Article_1> <Quantity_1>1</Quantity_1> <Price_1>20.00</Price_1> <Currency_1>978</Currency_1> <Amount_1>20.00</Amount_1> <Article_2>Delivery</Article_2> <Quantity_2>1</Quantity_2> <Price_2>3.45</Price_2> <Currency_2>978</Currency_2> <Amount_2>3.45</Amount_2> </result> </item> <item> <time>11.03.2013 09:42:56</time>

<action>Checking is purchase paid on Start page</action> <result>OK</result> </item> <item> <time>11.03.2013 09:42:56</time> <action>Checking version</action> <result>OK</result> </item> <item> <time>11.03.2013 09:42:56</time> <action>Checking method</action> <result>OK</result> </item> <item> <time>11.03.2013 09:42:56</time> <action>Checking signature</action> <result>OK</result> </item> <item> <time>11.03.2013 09:42:56</time> <action>Check post params</action> <result>OK</result>

</item> </item> <item>

(45)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 45 <time>11.03.2013 09:42:58</time> <action>Display page:</action> <result>Login</result> </item> <item> <time>11.03.2013 09:43:02</time> <action>Display page:</action> <result>Switch wallet</result> </item> <item> <time>11.03.2013 09:43:06</time> <action>Display page:</action>

<result>Login secure (SMS confirm)</result> </item>

<item>

<time>11.03.2013 09:43:26</time> <action>Display page:</action>

<result>Choose payment method</result> </item>

<item>

<time>11.03.2013 09:43:50</time> <action>Display page:</action>

<result>Choose payment method</result> </item>

<item>

<time>11.03.2013 09:44:00</time> <action>Getting unique STAN</action> <result>000102</result> </item> <item> <time>11.03.2013 09:44:00</time> <action>Payment status</action> <result>0</result> </item> <item> <time>11.03.2013 09:44:00</time>

<action>Sending POST request to Merchant with parameters:</action> <result> <IPCmethod>IPCPurchaseNotify</IPCmethod> <SID>000000000000010</SID> <Amount>23.45</Amount> <Currency>978</Currency> <CustomerIP>82.119.81.30</CustomerIP> <OrderID>201203319999999</OrderID> <IPC_Trnref>370</IPC_Trnref> <RequestSTAN>000102</RequestSTAN> <RequestDateTime>2013-03-11 09:44:01</RequestDateTime> <Signature>mE0wMCIbyhtkwS3NNccO8iJK+RT2tsDnj9XolA6xA3bh+bPqgIC4WBRD +IZFDRkIDFCh6tY4FvW8srbnmvIfwSOMmNqofe18mDnrdxAjy6Mj6yxCJReQsI0K

(46)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 46 lHTryAzAnEk7NbBBw/WcyptGQHFX9uBg3lsM/Pwn5E+lpxMiHxA=</Signature> </result> </item> <item> <time>11.03.2013 09:44:00</time>

<action>Connecting with URL_NOTIFY</action>

<result>Connection with http://site.ext/paymentNotify is OK</result> </item> <item> <time>11.03.2013 09:44:00</time> <action>Merchant response</action> <result>OK</result> </item> <item> <time>11.03.2013 09:44:00</time>

<action>View "Thank You - Success" page</action> <result>OK</result>

</item> <item>

<time>11.03.2013 09:44:02</time> <action>Display page:</action>

<result>Thank you page (Success)</result> </item>

</log>

<Status>0</Status>

<StatusMsg>Success</StatusMsg> </ipc_response>

Make a refund for previously executed payment (API call: IPCRefund)

Purpose

This method is used by Merchant to initiate a refund of previously executed payment. The IPC API will return an xml with the result. This method is intended to be utilized by the Merchant in his website back-end. The Merchant could decide whether or not to use this method.

Method properties

Property Typical value Type Required Description

IPC_Trnref 12345678923 String YES Used to uniquely identify a transaction in IPC. Used as a parameter for subsequent refund of reversal if needed.

(47)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 47

Currency 978 N(3) YES ISO numeric currency code. The currency

for the payment should be registered and approved.

OutputFormat xml String NO Output format of data. The property can be “xml” or “json”. If it is not specified in the request, the default value is “xml”.

Example of the xml response

<IPC_response> <IPCmethod>IPCRefund</IPCmethod> <IPC_Trnref>12345678923</IPC_Trnref> <Amount>23.45</Amount> <Currency>978</Currency> <Status>0</Status> <StatusMsg>Success</StatusMsg> </IPC_response>

Make a credit note to an iPayWallet (API call: IPCCredit)

Purpose

This method is used by the Merchant to initiate a credit note to iPayWallet. The IPC API will return an xml with the result. This method is intended to be utilized by the Merchant in his website back-end. The Merchant could decide whether or not to use the method.

Method properties

Property Typical value Type Required Description

CustomerWalletNumber 61938166610 AN(11) YES Identifier of iPayWallet number

Amount 23.45 N(18,2) YES The amount of the payment

requested.

Currency 978 N(3) YES ISO numeric currency code.

Reason Invoice num 123456 String Yes The reason for the transfer.

OutputFormat xml String NO Output format of data. The

property can be “xml” or “json”. If it is not specified in the request, the default value is “xml”.

(48)

CONFIDENTIAL Intercard Finance AD © 2007 - 2013 Page 48

Example of the xml response

<IPC_response> <IPCmethod>IPCCredit</IPCmethod> <Amount>23.45</Amount> <Currency>978</Currency> <CustomerWalletNumber>61938166610</CustomerWalletNumber> <Status>0</Status> <StatusMsg>Success</StatusMsg> </IPC_response>

Make an original credit transaction by a reference from a previously executed

payment via IPG API (API call: IPCCreditIPG)

Purpose

This method is used by the Merchant to initiate an original credit request to a cardholder account. The request can be initialized only by a reference from a previously executed payment transaction via the IPG API. The IPC API will return an xml with the result. This method is intended to be utilized by the Merchant in his website back-end.

Method properties

Property Typical value Type Required Description

IPGTrn 20130331141516123456 N(20) YES Unique transaction ID returned in the response of the authorization request from the IPG API.

OrderID 201203319999999 String YES Placeholder for the merchant. Used

to put some data that will help the merchant to recognize for which order is the payment. Up to 255 characters.

Amount 23.45 N(18,2) YES The amount of the payment

request.

Currency 978 N(3) YES ISO numeric currency code. The

currency for the payment must be equal to the currency of the MID.

MID 000000000099999 N(15) YES Card acceptor code assigned to the

site/outlet or to the merchant in the IPG API

References

Related documents

In addition, if I marked &#34;Yes&#34; to any of the above questions, I hereby authorize release of information from my Department of Transportation regulated drug and alcohol

22) K. Zeeberg “Stromal Composition And Hypoxia Modulate Pancreatic Ductal Adenocarcinoma Pdac Cancer Stem Cell Behavior And Plasticity By Controlling The Angiogenic Secretome”. 23)

ABSTRACT: The Gram-negative bacterial pathogen Pseudomonas aeruginosa uses three interconnected intercellular signaling systems regulated by the transcription factors LasR, RhlR,

b In cell B11, write a formula to find Condobolin’s total rainfall for the week.. Use Fill Right to copy the formula into cells C11

It is my contention that general corporate control lies in this group of 200,000 very probably and almost certainly lies in the combined group of 700,000 wealthiest

Thanks to the efforts of Don Ross and the other members of the Oklahoma Commission to Study the Tulsa Race Riot of 1921, the prevailing narrative preserved by Parrish and

We had a number of learning objectives for students: we wanted them to learn about and experience a number of different technologies and resources for learn- ing; to become

A ircraft parameter estimation consists of determining the values of unknown parameters in a known model structure to achieve the best match of model output to measured output data.