About Apple Pay

What is Apple Pay


Logo

Info

Apple Pay is a digital wallet for storing payment details, providing an easy and secure way to pay in iOS applications, websites running on Safari browser and contactless POS terminals. In applications and on websites, users can quickly and securely provide their payment, shipping, and contact information to check out with just one touch using Apple’s Touch ID.  Apple Pay’s simplicity increases conversion rates and new user adoption that come with it.

TypePayments by eWallet


Pay-Jet’s Apple Pay solution supports following scenarios:

  • In-application payments (also part of the Pay-Jet SDK)
  • Web payments

Notice: Regarding the liability shift in case of the card processing, please contact your Acquirer directly. Because Pay-Jet is not a direct contract partner, your Acquirer should specify the liability shift rules for each card brand.

Web payment

Apple Pay on the Web enables purchases while using Safari web browser. For shopping on iPhone or iPad, after selecting checkout with Apple Pay, a payment sheet appears, prompting the customer to confirm payment via Touch ID. For shopping on Mac, customers need to have an iOS device in close range, and they'll be prompted on that device to authorize the payment, which will then synchronize to the browser. The latest Mac Book Pro allows customers to authorize payment directly on the Mac Book.

Apple Pay requirements:

  • iOS 10. Apple Pay Web payments are supported on all iOS devices with a Secure Element.
  • macOS 10.12. Apple Pay Web payments are supported in Safari.
    • The user must have an iPhone or Apple Watch that can authorize the payment.
    • On the latest Mac Book Pro payments can be authorized directly via Touch ID
  • All pages that incorporate Apple Pay must be served over HTTPS.
  • Your website must comply with the Apple Pay guidelines. For more information, see Apple Pay on the Web Acceptable Use Guidelines
  • Server requirements

In-app payment

Apple Pay can be used for payments within the iOS applications. The main advantage of Apple Pay is that it is frictionless process with no need to re-type credit card data, shipping or billing address, which can be cumbersome on the smaller iPhone screens. Customer just choose to checkout with Apple Pay and confirms the payment with Touch ID.

Merchants can also use Pay-Jet’s SDK for facilitating the in-app payment integration, making it easier and faster.

Apple Pay requirements:

  • Apple Pay in-app payments are supported on all iOS devices with a Secure Element.

Process flow chart

Apple Pay process flow


Presenting the Apple Pay button

Within apps, PassKit provides the API’s that your app will use to determine if it is running on a device with a Secure Element and if the device has been provisioned with payment cards that you support. On websites, WebKit provides APIs that allow your website to check if the individual has an Apple Pay capable device and if it is set up.

If the device is Apple Pay enabled you should present the Buy with Apple Pay button using APIs supplied within PassKit within apps and Webkit within Safari.

 

Presenting the Payment Sheet

When your user selects goods or services to buy, and selects Apple Pay as the payment method, you create a payment request and ask PassKit in apps or Webkit on your website to present the payment sheet to the user. The payment sheet must immediately follow the user tapping the Apple Pay button, without any interim screens or pop-ups except to prompt for necessary product details, such as size or quantity.

Your app specifies the contents of the payment sheet but it does not control the user’s interaction with the sheet. You must decide if it makes sense to present shipping and billing information, shipping method, and other line items to the user. You should only request the information necessary to process the transaction.

 

Processing Payments

Once authorized by the user with Touch ID (and bank PIN code in China), your app receives a payment token from PassKit. The payment token encapsulates the information needed to complete a payment transaction, including the device-specific account number, the amount, and a unique, one-time-use cryptogram. The encrypted payment bundle will be decrypted by Pay-Jet, which then handles the whole processing of the transaction.

On this page


Step by Step Set-Up Guide for Apple Pay

 

Once you have decided to support Apple Pay, there is a set of steps that need to be completed:

  1. Validate if the Acquirer supports Apple Pay
    1. Not all Acquirers are supporting Apple Pay for in-app and web payments
    2. Pay-Jet can provide information about supporting Acquirers

  2. Create Merchant ID, unique identifier that represents a merchant for Apple Pay
    1. Access your Apple Developer Account and visit the Certificates, Identifiers & Profiles section of the Apple member center. You can then navigate to Merchant IDs and click add.
    2. Set your Merchant ID. The identifier you enter should be a reverse DNS style identifier prefixed with the word "merchant".




  3. Create Payment Processing Certificate, used to securely transfer payment data. Apple Pay servers use the payment processing certificate’s public key to encrypt the payment data.
    1. Obtaining Certificate Signing Request (CSR) from Pay-Jet
      1. Contact Pay-Jet Support and ask for Apple Pay CSR. Provide us with information about your Apple Merchant ID.
      2. CSR will be needed by Apple to generate actual certificate for signing Payment Token
    2. Upload CSR at Apple
      1. In Member Center, select Certificates, Identifiers & Profiles. Under Identifiers, select Merchant IDs. Select the merchant ID from the list, and click Edit.
      2. Click Choose File, select the CSR received from Pay-Jet and click Generate.
      3. Download the certificate by clicking Download, and click Done.




    3. Return Certificate to Pay-Jet
      1. Send the downloaded Certificate (CER file) together with your Apple Merchant ID to Pay-Jet Support

     

  4. Enable Apple Pay for your app in Xcode
    1. Open Capabilities pane
    2. Select the switch in the Apple Pay row, and then select the merchant IDs you want the app to use.


  5. (WEB ONLY) Create Merchant Identity Certificate. A Transport Layer Security (TLS) certificate used to authenticate your merchant sessions with the Apple Pay servers.

    To register and verify your domain, and create your Merchant Identity Certificate:

    1. In Member Center, select Certificates, Identifiers and Profiles.
    2. Under Identifiers, select Merchant IDs.
    3. Select the merchant ID from the list, and click Edit.
    4. In the Apple Pay on the Web section, click the Add Domain

    5. Enter your fully qualified domain name, and click Continue.

    6. The site creates a file and makes it available to download. Download this file and host it at the provided location.

    7. As soon as the file is available on your server, click the Verify button. If the verification succeeds, the site returns to the iOS Merchant ID Settings page and shows a green Verified status label.
    8. In the Apple Pay on the Web section, click the Create Certificate Follow the instructions to create and download your Merchant Identity Certificate. Use this certificate when requesting a merchant session during payment validation. For more information, see Merchant Validation in ApplePaySession.

     

  6. Integrate Apple Pay at your application or web shop
    1. Follow guidelines: https://developer.apple.com/apple-pay
    2. Important: When creating PKPaymentRequest, request.merchantCapabilities = PKMerchantCapability3DS. Pay-Jet only supports 3DS types.


Cockpit interface

Definitions

Data formats

Format

Description

a

alphabetical

as

alphabetical with special characters

n

numeric

an

alphanumeric

ans

alphanumeric with special characters

ns

numeric with special characters

bool

boolean expression (true or false)

3

fixed length with 3 digits/characters

..3

variable length with maximum 3 digits/characters

enum

enumeration of allowed values

dttm

ISODateTime (YYYY-MM-DDThh:mm:ss)


Abbreviations

Abbreviation

Description

Comment

CND

condition


M

mandatory

If a parameter is mandatory, then it must be present

O

optional

If a parameter is optional, then it can be present, but it is not required

C

conditional

If a parameter is conditional, then there is a conditional rule which specifies whether it is mandatory or optional


Notice: Please note that the names of parameters can be returned in upper or lower case.


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:


Notice: For security reasons, Pay-Jet Cockpit rejects all payment requests with formatting errors. Therefore, please use the correct data type for each parameter.

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.

Oops, it seems that you need to place a table or a macro generating a table within the Table Filter macro.

The table is being loaded. Please wait for a bit ...

KeyFormatCNDDescriptionBeschreibung

MerchantID

ans..30

M

MerchantID, assigned by Pay-Jet. Additionally this parameter has to be passed in plain language too.

HändlerID, die von Pay-Jet vergeben wird. Dieser Parameter ist zusätzlich auch unverschlüsselt zu übergeben.

KeyFormatCNDDescriptionBeschreibung
TransID

ans..64

MTransactionID provided by you which should be unique for each paymentIhre eigene TransaktionsID, die für jede Zahlung eindeutig sein muss

Key

Format

CND

Description

Beschreibung

RefNr

ns..30

C

Unique reference number. Mandatory in case that this parameter is mandatory for merchant's card processing.Eindeutige Referenznummer. Pflicht, wenn dieser Parameter für die Kartentransaktion des Händlers Pflicht ist.

KeyFormatCNDDescriptionBeschreibung
Amount

n..10

M

Amount in the smallest currency unit (e.g. EUR Cent). Please contact the Pay-Jet Support, if you want to capture amounts <100 (smallest currency unit).

Betrag in der kleinsten Währungseinheit (z.B. EUR Cent). Bitte wenden Sie sich an den Pay-Jet Support, wenn Sie Beträge < 100 (kleinste Währungseinheit) buchen möchten.

KeyFormatCNDDescriptionBeschreibung
Currency

a3

M

Currency, three digits DIN / ISO 4217, e.g. EUR, USD, GBP. Please find an overview here: A1 Currency table EN

Währung, drei Zeichen DIN / ISO 4217, z.B. EUR, USD, GBP. Hier eine Übersicht: A1 Währungstabelle

KeyFormatCNDDescriptionBeschreibung

MAC

an64

M
Hash Message Authentication Code (HMAC) with SHA-256 algorithm. Details can be found here:
Hash Message Authentication Code (HMAC) mit SHA-256-Algorithmus. Details finden Sie hier:

KeyFormatCNDDescriptionBeschreibung
UserData

ans..1024

O

If specified at request, Cockpit forwards the parameter with the payment result to the shop.

Wenn beim Aufruf angegeben, übergibt das Cockpit die Parameter mit dem Zahlungsergebnis an den Shop.

Key

Format

CND

Description

Beschreibung

RTF

a1

O

Establishment of Credential on File Agreement (Cardholder agrees that his card data can be stored for further transactions).Einrichtung der Vereinbarung für hinterlegte Zugangsdaten (Karteninhaber stimmt zu, dass seine Kartendaten für weitere Transaktionen gespeichert werden dürfen).

KeyFormatCNDDescriptionBeschreibung
Capture

an..6

OM

Determines the type and time of capture.

Capture ModeDescription
AUTOCapturing immediately after authorisation (default value).
MANUALCapturing made by the merchant. Capture is normally initiated at time of delivery.
<Number>Delay in hours until the capture (whole number; 1 to 696).

Bestimmt Art und Zeitpunkt der Buchung (engl. Capture).

BuchungsartBeschreibung
AUTOBuchung sofort nach Autorisierung (Standardwert).
MANUALBuchung erfolgt durch den Händler - in der Regel die Buchung zum Zeitpunkt der Warenauslieferung bzw. Leistungserbringung.
<Zahl>Verzögerung in Stunden bis zur Buchung (ganze Zahl; 1 bis 696).

Key

Format

CND

Description

Beschreibung

OrderDesc

ans..64

M

Description of purchased goods, unit prices etc.Beschreibung der gekauften Waren, Einzelpreise etc.

KeyFormatCNDDescriptionBeschreibung
URLNotify

ans..256

M

Complete URL which Cockpit 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.

(info) Common notes:

  • We recommend to use parameter "response=encrypted" to get an encrypted response by Cockpit
  • However, fraudster may just copy the encrypted DATA-element which are sent to URLFailure and send the DATA to URLSuccess/URLNotify. Therefore ensure to check the "code"-value which indicates success/failure of the action. Only a result of "code=00000000" should be considered successful.

Vollständige URL, die das Cockpit aufruft, um den Shop zu benachrichtigen. Die URL darf nur über Port 443 aufgerufen werden. Sie darf keine Parameter enthalten: Nutzen Sie stattdessen den Parameter UserData.

(info) Allgemeine Hinweise:

  • Wir empfehlen, den Parameter "response=encrypted" zu verwenden, um eine verschlüsselte Antwort von Cockpit zu erhalten
  • Betrüger könnten das verschlüsselte DATA-Element kopieren, welches an URLFailure gesendet wurde, und betrügerisch dasselbe DATA an URLSuccess/URLNotify senden. Überprüfen Sie daher unbedingt den "code"-Wert des DATA-Elements. Nur eine Antwort mit "code=00000000" sollte als erfolgreich angesehen werden.

Key

Format

CND

Description

Beschreibung

MerchantIDExt

ans..128

C

Merchant Identifier of Public Key

Mandatory if more then one Merchant Identifiers are stored with Pay-Jet

Merchant Identifier des Public Keys

Pflicht, wenn mehr als ein Merchant Identifier bei Pay-Jet hinterlegt ist.

TokenExt

ans..6000

M

Apple Pay PKPaymentToken as JSON string in the Base64 format

Apple Pay PKPaymentToken als JSON-String im Base64-Format

Channel

a..10

O

Channel over which the order is processed.

Allowed values are WEBSITE and MOBILE_APP

Kanal, über den die Bestellung abgewickelt wird.

Erlaubt sind die Werte WEBSITE und MOBILE_APP

Parameters for Apple Pay


The following table describes the result parameters with which the Pay-Jet Cockpit responds to your system

(info) pls. be prepared to receive additional parameters at any time and do not check the order of parameters

(info) the key (e.g. MerchantId, RefNr) should not be checked case-sentive

Oops, it seems that you need to place a table or a macro generating a table within the Table Filter macro.

The table is being loaded. Please wait for a bit ...

KeyFormatCNDDescriptionBeschreibung

MID

ans..30

M

MerchantID, assigned by Pay-Jet

HändlerID, die von Pay-Jet vergeben wird

Key

Format

CND

Description

Beschreibung

PayID

an32

M

ID assigned by Cockpit 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.

Vom Cockpit vergebene ID für die Zahlung, z.B. zur Referenzierung in Batch-Dateien.

Diese ID bezieht sich auf die Kreditkarten-Transaktion, es sei denn, es kommt bereits bei der Apple-Pay-Transaktion zu einem Fehler.

KeyFormatCNDDescriptionBeschreibung
XID

an32

M

ID for all single transactions (authorisation, capture, credit note) for one payment assigned by Cockpit

Vom Cockpit vergebene ID für alle einzelnen Transaktionen (Autorisierung, Buchung, Gutschrift), die für eine Zahlung durchgeführt werden

KeyFormatCNDDescriptionBeschreibung
TransID

ans..64

MTransactionID provided by you which should be unique for each paymentIhre eigene TransaktionsID, die für jede Zahlung eindeutig sein muss

KeyFormatCNDDescriptionBeschreibung
refnr

ns..30

O

Merchant’s unique reference number

Eindeutige Referenznummer des Händlers

KeyFormatCNDDescriptionBeschreibung
UserData

ans..1024

O

If specified at request, Cockpit forwards the parameter with the payment result to the shop.

Wenn beim Aufruf angegeben, übergibt das Cockpit die Parameter mit dem Zahlungsergebnis an den Shop.

KeyFormatCNDDescriptionBeschreibung
Status

a..50

M

OK (URLSuccess) or FAILED (URLFailure)

OK (URLSuccess) oder FAILED (URLFailure)

KeyFormatCNDDescriptionBeschreibung
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!
Nähere Beschreibung bei Ablehnung der Zahlung. Bitte nutzen Sie nicht den Parameter Description, sondern Code für die Auswertung des Transaktionsstatus!

KeyFormatCNDDescriptionBeschreibung
Code

n8

M

Error code according to Cockpit Response Codes (A4 Error codes)

Fehlercode gemäß Cockpit Antwort-Codes (A4 Fehlercodes)

Key

Format

CND

Description

Beschreibung
schemeReferenceIDans..64CCard scheme specific transaction ID required for subsequent credential-on-file payments, delayed authorizations and resubmssions.Kartensystemspezifische Transaktions-ID, die für nachfolgende Zahlungen mit hinterlegten Daten, verzögerte Autorisierungen und Wiedereinreichungen erforderlich ist.

Result parameters for Apple Pay



Capture / Credit / Reversal

Captures, credits and reversals do not refer to the Apple Pay transaction but directly to the credit card transaction. More information about this you can find within Card processing.

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. More information about this you can find within the document Card processing.