Step by Step Set-Up Guide for Apple Pay
Onboarding
1) The Merchant create an Apple pay Merchant Identifier.
To generate your Apple Pay merchant identifier, you will find below the Apple Pay documentation.
Configure Apple Pay on the web - Configure capabilities - Account - Help - Apple Developer
Register a merchant domain
In Certificates, Identifiers & Profiles, click Identifiers in the sidebar, then select Merchant IDs from the pop-up menu on the top right.
On the right, select your merchant identifier.
Under Merchant Domains, click Add Domain.
Enter the fully qualified domain name, then click Save.
Click Download, place the downloaded file in the specified location, then click Verify.
Click Done
2) The merchant sends the Apple Pay Merchant Identifier to BNP Paribas Sales.
3) Axepta support starts the configuration and sends the CSR (Certificate Signing Request) by mail to the technical contact identified during onboarding phase.
4) The merchant needs to upload the Certificate Signing Request on his Marchant Apple Pay Account.
To upload the certificate signing request, you will find below the Apple Pay documentation.
Configure Apple Pay - Configure capabilities - Account - Help - Apple Developer
Upload a payment processing certificate
In Certificates, Identifiers & Profiles, click Identifiers in the sidebar.
Under Identifiers, select Merchant IDs using the filter on the top right.
On the right, select your merchant identifier.
Note: If a banner appears at the top of the page saying that you need to accept an agreement, click the Review Agreement button and follow the instructions before continuing.
Upload the Certificate signing request given by Axepta support.
Testing Apple pay transaction
Testing transaction with Apple pay test account
1) Axepta support can configure Apple pay on the Axepta merchant test MID.
Axepta Support needs the apple pay merchant identifier in order to configure Apple pay on the Axepta merchant test MID.
2) The Merchant creates a Sandbox Tester Account and add test card Number.
Apple pay documentation : Sandbox Testing - Apple Pay - Apple Developer
3) The merchant must send the parameter &orderdesc=Test:0000 in the payment request to simulate a success payment.
Paygate interface
Calling the interface
Two transactions are created when making a credit card payment via Apple Pay. In the Apple Pay transaction the required credit card data are determined first and the actual credit card transaction is then carried out automatically. This takes place via a server-to-server connection and supports all usual credit card transaction options. The difference here, however, is that you don't transmit the credit card information, which you don't know. Instead, you transmit the PKPaymentToken generated by Apple Pay, which contains the required credit card data in encrypted form.
In order to make a credit card payment with Apple Pay, go to the following URL:
https://paymentpage.axepta.bnpparibas/applepay.aspx |
Notice: For security reasons, Axepta rejects all payment requests with formatting errors, please use the correct data type for each parameters.
The following table describes the encrypted payment request parameters:
The table describes just basic parameters. It is also possible to include all credit card payment parameters (without credit card data). More information about this you can find within Card processing.
If you are processing Recurring or stored Credential on File transactions, please make sure to review all the necessary information in "COF Mandate Integration Guide".
If there are any specific parameters that are mandatory for credit card payment, these parameters are also mandatory for Apple Pay.
Parameters for Apple Pay
Key | Format | CND | Description | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
MerchantID | ans..30 | M | MerchantID, assigned by Axepta. Additionally this parameter has to be passed in plain language too. | ||||||||
TransID | ans..64 | M | TransactionID provided by you which should be unique for each payment | ||||||||
RefNr | an..12 | C | Merchant’s unique reference number, which serves as payout reference in the acquirer EPA file. Please note, without the own shop reference delivery you cannot read out the EPA transaction and regarding the additional settlement file (CTSF) we cannot add the additional payment data. Merchant’s unique reference number, which serves as payout reference in the acquirer EPA file. Please note, without the own shop reference delivery you cannot read out the EPA transaction and regarding the additional settlement file we cannot add the additional payment data. Notes:
The format depends on the available paymethods for your MerchantId and this parameter is used for card payments reconciliation. Please choose your format in that way that all paymethods are covered. We recommend to use the most restrictive format for this parameter (AN12 - M) and create unique RefNr. More details : Data reconciliation : Key Data | ||||||||
Amount | n..10 | M | Amount in the smallest currency unit (e.g. EUR Cent) 100 is the smallest currency unit | ||||||||
Currency | a3 | M | Currency, three digits DIN / ISO 4217, e.g. EUR, USD, GBP. | ||||||||
MAC | an64 | M | Hash Message Authentication Code (HMAC) with SHA-256 algorithm. | ||||||||
UserData | ans..1024 | O | If specified at request, Paygate forwards the parameter with the payment result to the shop. | ||||||||
RTF | a1 | O | Establishment of Credential on File Agreement (Cardholder agrees that his card data can be stored for further transactions). | ||||||||
Capture | an..6 | OM | Determines the type and time of capture.
| ||||||||
OrderDesc | ans..64 | M | Description of purchased goods, unit prices etc. | ||||||||
URLNotify | ans..256 | O | Complete URL which Paygate calls up in order to notify the shop about the payment result. The URL may be called up only via port 443. It may not contain parameters: Use the UserData parameter instead.
| ||||||||
MerchantIDExt | ans..128 | C | Merchant Identifier of Public Key Mandatory if more then one Merchant Identifiers are stored with Computop | ||||||||
TokenExt | ans..6000 | M | Apple Pay PKPaymentToken as JSON string in the Base64 format Example for TokenExt { "paymentData": { "data": "GiZiyzsI6r6lnPYUeceR6itk2PDyBozl2Xy77c5u2X8Ze7l5EasyyH4Q6BoAevrvBfe0FnUNARBEXRySLwqqnpUHO6Du/amZEECRXxlrH91wFqH4oXry2CTDRu7TaIlmnR+s3ien5JI8iWo9hoEW7hyJOE7QGaS6rfR1CtQ4DWJEUq/tFnW98tj3kwKU6iOAAvE467boopMDGBS1fK5HzGXs4hH/6r+LPRfSOKBi1L5VWAexs9Bzw3ByyG69i52doRuFb1xOcMOJbmPg40hap13IjBW6dnj1phbsqP2i/JxvWPV3EcuqpuIoVZr5w53w//pPsl54kmeXNddIjVD5dIhhOKZ8AznD4eL2dbzkp6bic8xScBf3G8hrKXTRTL7V+KT2S+TQliHN0SNXrFu6B6o=", "signature": "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", "header": { "publicKeyHash": "OgiD2qBTWYf/a+LDshFeQcPq6tOmePu0epHpP4ZkNicc=", "ephemeralPublicKey": "MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEc/HxA3lJZrC+B0ITom0Iji+gFdn7ivGtpI+fl2u8n8XByPgBaVK2b44qUvsGigoNd0OFLNXo0Q07R2B54eIdS3A==", "transactionId": "156632b2aadf355d4958d9051a42bf62e07aea5716e72083aa64247944f6e3e14d" }, "version": "EC_v1" }, "paymentMethod": { "displayName": "MasterCard 0063", "network": "MasterCard", "type": "debit" }, "transactionIdentifier": "156632B2AAD12F355D4958D9051A42BF62E07AE5716E720AA6424794F6E3E14567D" } | ||||||||
Channel | a..10 | O | Channel over which the order is processed. Allowed value : ECOM |
Result parameters for Apple Pay
The following table describes the result parameters with which Axepta responds to your system
- Please be prepared to receive additional parameters at any time and do not check the order of parameters
- The key (e.g. MerchantId, RefNr) should not be checked case-sentive
Key | Format | CND | Description |
---|---|---|---|
MID | ans..30 | M | MerchantID, assigned by Axepta |
PayID | an32 | M | ID assigned by Paygate for the payment, e.g. for referencing in batch files This ID refers to the credit card transaction unless an error occurs already at the Apple Pay transaction. |
XID | an32 | M | ID for all single transactions (authorisation, capture, credit note) for one payment assigned by Paygate |
TransID | ans..64 | M | TransactionID provided by you which should be unique for each payment |
refnr | ns..30 | O | Merchant’s unique reference number |
UserData | ans..1024 | O | If specified at request, Paygate forwards the parameter with the payment result to the shop. |
Status | a..50 | M | OK (URLSuccess) or FAILED (URLFailure) |
Description | ans..1024 | M | Further details in the event that payment is rejected. Please do not use the Description but the Code parameter for the transaction status analysis! |
Code | n8 | M | Error code according to Paygate Response Codes |
MAC | an64 | M | Hash Message Authentication Code (HMAC) with SHA-256 algorithm. |
schemeReferenceID | an64 | C | Card scheme specific transaction ID required for subsequent credential-on-file payments, delayed authorizations and resubmssions. |
Capture / Credit / Reversal
Captures, credits and reversals do not refer to the Apple Pay transaction but directly to the credit card transaction.
Batch processing via the interface
Captures, credits and reversals via batch do not refer to the Apple Pay transaction but directly to the credit card transaction.