Process an Apple Pay Sale with Merchant Decryption

The topics in this section shows you how to process an Apple Pay sale with the
merchant decryption
implementation of Apple Pay.
A sale bundles an authorization and capture in a single transaction. Request the authorization and capture at the same time. The authorization and capture amounts must be the same.
The
REST
API message for a sale request is the same as the message for an authorization request, except that the sale request message must set the
processingInformation.capture
field to
true
.
IMPORTANT
In the example, the sale transaction is made using a
Visa card
, and the processor is
VDC National Australia Bank Ltd
.
National Australia Bank
supports the
VDC National Australia Bank Ltd
processor.
For general information about sale transactions, see the "Standard Payments Processing" section of the .

Basic Steps: Processing a Sale with Merchant Decryption

  1. Follow these steps to process an Apple Pay sale transaction with merchant decryption:
  2. Create the request message with the required
    REST
    API fields.
  3. Send the message to one of these endpoints:
    • Production:
      POST
      https://nabgateway-api.nab.com.au
      /pts/v2/payments
    • Test:
      POST
      https://nabgateway-api-test.nab.com.au
      /pts/v2/payments
  4. Verify the response messages to make sure that the request was successful.

    ADDITIONAL INFORMATION

    A 200-level HTTP response code indicates success. See the .

Fields Required to Process a Sale with Merchant Decryption

As a best practice, include these
REST API
fields in your request for a combined authorization and capture (sale) transaction with the
VDC NAB
decryption implementation of Apple Pay.
Depending on your processor, your geographic location, and whether the relaxed address verification system (RAVS) is enabled for your account, some of these fields might not be required. It is your responsibility to determine whether an API field can be omitted from the transaction you are requesting.
For information about tbe relaxed requirements for address data and expiration dates in payment transactions, see the
.
clientReferenceInformation.code
orderInformation.amountDetails.currency
orderInformation.amountDetails.totalAmount
orderInformation.billTo.address1
orderInformation.billTo.administrativeArea
orderInformation.billTo.country
orderInformation.billTo.email
orderInformation.billTo.firstName
orderInformation.billTo.lastName
orderInformation.billTo.locality
orderInformation.billTo.postalCode
paymentInformation.tokenizedCard.cryptogram
Token authentication verification value cryptogram.
The value for this field must be a 28-character, Base64-encoded string (the encoding method for Apple Pay transactions).
paymentInformation.tokenizedCard.expirationMonth
Set the value to month in which the token expires. Format:
MM
Possible values:
01
through
12
.
paymentInformation.tokenizedCard.expirationYear
Set the value to the year in which the token expires. Format:
yyyy
.
paymentInformation.tokenizedCard.number
Set the value to customer's payment network token value that contains the customer's credit card number.
For
VDC National Australia Bank Ltd
, set this field to the value that indicates the type of transaction that provided the payment network token data. Possible values:
  • 1
    : In-app transaction.
  • 2
    : Near-field communication (NFC) transaction. The customer’s mobile device provided the token data for a contactless EMV transaction.
  • 3
    : A transaction using stored customer credentials on
    VDC National Australia Bank Ltd
    , whether for merchant-initiated transactions (MITs) or customer-initiated transactions (CITs).
IMPORTANT
This value does not specify the token service provider. It specifies the entity that provided you with information about the token.
paymentInformation.tokenizedCard.type
Three-digit value that indicates the card type. Possible values:
  • 001
    : Visa
  • 002
    : Mastercard
  • 003
    : American Express
  • 004
    : Discover
  • 005
    : Diners Club
  • 007
    : JCB
  • 062
    : China UnionPay
processingInformation.capture
Set the value to
true
to include a capture with the authorization.
processingInformation.commerceIndicator
Type of transaction. Some payment card companies use this information when determining discount rates. Possible values:
  • aesk
    : American Express SafeKey authentication.
  • dipb
    : Discover card type.
  • internet
    : Default value for authorizations. E-commerce order placed from a website.
  • js
    : JCB J/Secure authentication.
  • spa
    : Mastercard Identity Check authentication.
  • vbv
    : Visa Secure authentication
processingInformation.paymentSolution
Set the value to
001
to identify Apple Pay as the digital payment solution.

REST Example: Process a Sale with Merchant Decryption

Request
{ "clientReferenceInformation": { "code": "TC_1231223" }, "processingInformation": { "commerceIndicator": "internet", "paymentSolution": "001", "capture": true }, "paymentInformation": { "tokenizedCard": { "number": "4111111111111111", "expirationMonth": "12", "expirationYear": "2031", "cryptogram": "AceY+igABPs3jdwNaDg3MAACAAA=", "transactionType": "1", "type": "001" } }, "orderInformation": { "amountDetails": { "totalAmount": "10", "currency": "AUD" }, "billTo": { "firstName": "John", "lastName": "Doe", "address1": "901 Metro Center Blvd", "locality": "Foster City", "administrativeArea": "CA", "postalCode": "94404", "country": "US", "email": "[email protected]" } } }
Response to a Successful Request
{ "_links": { "void": { "method": "POST", "href": "/pts/v2/payments/7359627932726161403954/voids" }, "self": { "method": "GET", "href": "/pts/v2/payments/7359627932726161403954" } }, "clientReferenceInformation": { "code": "TC_1231223" }, "id": "7359627932726161403954", "orderInformation": { "amountDetails": { "totalAmount": "10.00", "authorizedAmount": "10.00", "currency": "AUD" } }, "paymentAccountInformation": { "card": { "type": "001" } }, "paymentInformation": { "tokenizedCard": { "expirationYear": "2031", "prefix": "411111", "expirationMonth": "12", "suffix": "1111", "type": "001" }, "card": { "type": "001" } }, "processingInformation": { "paymentSolution": "001" }, "processorInformation": { "systemTraceAuditNumber": "417802", "approvalCode": "831000", "merchantAdvice": { "code": "01", "codeRaw": "M001" }, "responseDetails": "ABC", "networkTransactionId": "016153570198200", "retrievalReferenceNumber": "500303417802", "consumerAuthenticationResponse": { "code": "2", "codeRaw": "2" }, "transactionId": "016153570198200", "responseCode": "00", "avs": { "code": "Y", "codeRaw": "Y" } }, "reconciliationId": "7359627932726161403954", "status": "AUTHORIZED", "submitTimeUtc": "2025-01-04T03:53:13Z" }