Purpose
This method initiates the beginning of the payment process for a customer (purchase). However, the customer will remain within the pages of the external application. All needed data (incl. payment card details) will be collected and submitted to myPOS Checkout API by the external application. The method can be used both for a recurring transaction with an already stored card or for an initial card payment. The myPOS Checkout API will return an XML with the result.
Please NOTE:
To use this method without a tokenized card, you should comply with PCI SAQ-D requirements. Since all the cardholder data is processed on your side, you should also take care of the communication with the issuing bank's ACS. For that purpose, we recommend using an MPI plugin for 3D Secure communication.
If you want to use the method with a tokenized card, myPOS will need to test and evaluate the usage (whether in your website or in-app) and enable the functionality in Production Environment.
As an alternative, you may tokenize a card using IPCPurchase and adding CardTokenRequest = 1. Then call IPCIAPurchase from within your app with the card token as a parameter.
myPOS Checkout API will check for:
- Valid myPOS Account number (also referred to as Client number)
- Valid Checkout Store ID corresponding with this myPOS Account number
- Valid status of the Checkout (enabled)
- Valid currency and total amount
- Valid KeyIndex & corresponding Signature
Method properties
Property |
Typical value |
Type |
Required |
Description |
---|---|---|---|---|
OrderID |
20120331999999 |
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 80 characters. |
Amount |
23.45 |
Double |
YES |
The amount of payment requested. |
Currency |
EUR |
A(3) |
YES |
ISO 3-character currency code. The currency for the payment should be registered and approved. |
SID |
000000000000010 |
String |
YES |
Store ID (SID) - Reference number for the Merchant Store in the myPOS system |
WalletNumber |
61938166610 |
String |
YES |
myPOS Client Number |
KeyIndex |
1 |
Int |
YES |
Indicates which key pair is being used. |
CardType |
1 |
N(1) |
Conditional |
Conditional. CardType is required when CardToken is not provided in the request. Please refer to Card Types. |
PAN |
Byte[] |
BASE64 |
Conditional |
Conditional. PAN is required when CardToken is not provided in the request. |
CardholderName |
John Smith |
String (30) |
Conditional |
Conditional. CardholderName is required when CardToken is not provided in the request. |
ExpDate |
Byte[] |
BASE64 |
Conditional |
Conditional. ExpDate is required when CardToken is not provided in the request. |
CVC |
Byte[] |
BASE64 |
Conditional |
Conditional. CVC is required when CardToken is not provided in the request. |
ECI |
6 |
N(1) |
Conditional |
Conditional. ECI is required when CardToken is not provided in the request. |
AVV |
Byte[] |
BASE64 |
Conditional |
Conditional. AVV is required when CardToken is not provided in the request and the card is 3DS enabled. |
XID |
Byte[] |
BASE64 |
Conditional |
Conditional. AVV is required when CardToken is not provided in the request and the card is 3DS enabled. |
CardToken |
Byte[] |
BASE64 |
Conditional |
Conditional. The CardToken is required when the card is already stored and no additional data is sent for the card within the request. |
AccountSettlement |
11111111119 |
N(11) |
NO |
Account for payment settlement |
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 myPOS Checkout payment page. |
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”. |
Cart Logical Record
Cart logical record consists of standard POST parameters with the form name=value. For each 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. |
Price |
2.34 |
Double |
Price of a single unit. |
Amount |
4.68 |
Double |
Quantity*Price for the article. |
Currency |
EUR |
A(3) |
It should be the same currency as in the purchase amount. |
Response properties
Property |
Typical value |
Type |
Description |
---|---|---|---|
Amount |
23.45 |
Double |
Echo from IPCIAPurchase |
Currency |
EUR |
A(3) |
Echo from IPCIAPurchase |
OrderID |
201203319999999 |
string |
Echo from IPCIAPurchase |
IPC_Trnref |
12345678923 |
String |
Used to uniquely identify a transaction in IPC. Used as a parameter for a subsequent refund of reversal if needed. |
PaymentReference |
MTCOR0123456XXK7 |
String |
Payment Reference of the transaction |
Example of the XML response
<ipc_response is-array="true">
<IPCmethod>IPCIAPurchase</IPCmethod>
<IPC_Trnref>131753</IPC_Trnref>
<PaymentReference>MTCOR0124565XXK7</PaymentReference>
<Amount>50</Amount>
<Currency>EUR</Currency>
<Status>0</Status>
<StatusMsg>Success</StatusMsg>
<Signature>K6E5HZd21zGWVB4aEBwVOp1XuQMwGZiVk57FFu3sSnkD/M0v30XHFYL3dh7yKifKeOICQIrmzi3XKgnhwPMb/TgeNCOafgZ4EW9I4faP0TTmM0QrvAoayZjb4PG/tIcMgFiUKBr+K/Cbqcw7yLkDEzavfWBy5IT4Hmv92CAPKo8=</Signature>
</ipc_response>