In-App Store Card
Securely Store a Customer's Card for Future Use
Purpose
This method is used by myPOS Checkout API to allow the cardholder to securely store card data which will be used for recurring payments or pre-authorizations afterwards. The cardholder will remain within the pages of the external application. The Merchant has to be PCI SAQ-D compliant and process the card details. All needed data (incl. payment card details) will be collected and submitted to myPOS Checkout API by the external app. The myPOS Checkout API will return an XML/JSON with the result.
Method Properties
| Property | Typical Value | Type | Required | Description |
|---|---|---|---|---|
| CardType | 1 | N(1) | YES | Refer to myPOS Card Types |
| PAN | Byte[] | BASE64 | YES | Card Number (Base64 encoded) |
| CardholderName | John Smith | String (30) | YES | Full name as shown on the card |
| ExpDate | Byte[] | BASE64 | YES | Expiry date in MMYY format (Base64 encoded) |
| CVC | Byte[] | BASE64 | YES | Card verification code (Base64 encoded) |
| ECI | 6 | N(1) | YES | Electronic Commerce Indicator |
| AVV | Byte[] | BASE64 | Conditional | Required when the card is 3DS enabled |
| XID | Byte[] | BASE64 | Conditional | Required when the card is 3DS enabled |
| CardVerification | 2 | N(2) | YES | Specify whether the inputted card data to be verified or not before storing. |
| Amount | 3.50 | Double | Conditional | Amount of the transaction. Used if CardVerification = 2. |
| Currency | EUR | A(3) | Conditional | ISO 3-character currency code. Used if CardVerification = 2. |
| OutputFormat | xml | String | NO | Output format of data. Can be “xml” or “json”. Default is “xml”. |
Partner Identification
If you are part of our Partners Program, you will need to submit these two additional parameters with each of your requests to the API. This will provide you with analytics about the usage in your myPOS Partners Portal account and help our support teams assist you better.
This requires you to set the API version of your requests to 1.4.1. No other changes in the code/requests are necessary.
| Property | Typical Value | Type | Description |
|---|---|---|---|
| PartnerID | mps-p-XXXXXXXX | String | Identical number for the partner |
| ApplicationID | mps-app-XXXXXXXX | String | Identical number for the application |
Response Properties
| Property | Typical Value | Type | Description |
|---|---|---|---|
| CardToken | 1041333312721BC752C1AB7743D0821AA1C9CA09 | String (50) | Uniquely generated token of the PAN of the card |
| PAN | 4885 | N(4) | Last four digits of the account number (PAN) |
| ExpDate | 1703 | N(4) | Card's expiry date. Format YYMM |
| CardType | 1 | N(1) | Refer to Card Types |
| Trn_ref | 4798689 | N(7) | Transaction reference |
Important Notes
- You must be PCI SAQ-D compliant to use this method, as you're handling raw card data.
- For 3D Secure cards,
AVVandXIDmust be provided. - If you're not PCI certified, consider using
IPCPurchasewithCardTokenRequest = 1to tokenize the card instead.
Example Request
<IPC_response>
<IPCmethod>IPCIAStoreCard</IPCmethod>
<CardToken>70b2214c43814a99f66266c1f1f1e5ec4a8e2a01</CardToken>
<PAN>4885</PAN>
<ExpDate>1703</ExpDate>
<CardType>1</CardType>
<Trn_ref>4798689</Trn_ref>
<Status>0</Status>
<StatusMsg>Success</StatusMsg>
</IPC_response>