Skip to content

Mobile wallets

A secure and easy way for your customers to pay. Integrate Apple Pay and Google Pay into your business.

Why offer mobile wallets?

  • Fast-track your customer to the payment without requiring an account/registration.
  • Mobile wallet providers share the billing and shipping address on your customer's behalf.
  • Low PCI requirements.
  • SCA (Strong Customer Authentication) compliant - built-in two-factor authentication.
  • We decrypt, ensuring a simpler integration with the mobile wallet providers.

Capabilities

Take a payment - we decrypt Payout to a wallet - we decrypt
  1. Integrate with your mobile wallet provider: Apple Pay and Google Pay.
  2. Integrate with our Card Payments API:
  1. Integrate with your mobile wallet provider: Apple Pay and Google Pay.
  2. Integrate with our Card Payments API:
  • Use our customerInitiatedTransactions endpoint with your encrypted payload, including the customerAgreement object.
  • You receive a tokens:token in your response.
  • Integrate with our Card Payouts API and use your token to make a payout with payoutInstrument "type": "card/tokenized".
Note

Payouts to a wallet is currently only supported for Visa and Mastercard branded payouts.

Card metadata

Mobile wallet payment authorizations use network tokens for increased security and risk reduction benefits. These payment instruments are sometimes referred to as a Device Primary Account Number (DPAN), or Merchant Primary Account Number (MPAN).

This means that the last four digits returned in your payment authorization response contains the last four digits of the network token, rather than the actual (or funding) card number. The funding card number (commonly referred to as the funding PAN, or FPAN) is the number of the card that was added to your customer's Apple or Google wallet.

You may optionally send the last four digits of the funding card number where this is returned to you by the mobile wallet provider.

Apple Pay

Apple returns the last four digits of the FPAN along with the card brand in paymentMethod.displayName:

{
    "paymentMethod": {
        "type": "credit",
        "network": "Visa",
        "displayName": "Visa 1111"
    },
    "paymentData": {
        "data": "JcSb4dG6H5ELVet3oJiYBO=",
        "signature": "MIAGVSqGRICB+lelK0RexAAAA==",
        "header": {
            "publicKeyHash": "h/ffJj1ZUo=",
            "ephemeralPublicKey": "MFkwEwYOHWZ/Xmx3iyA==",
            "transactionId": "4d3cf2d31a"
        },
        "version": "EC_v1"
    },
    "transactionIdentifier": "4d2cf2d73a0621cf5d7ee5f35546d562ec5b6401d9b38ae92f866f9ea210001b"
}

Google Pay

Google returns the last four digits of the FPAN in info.cardDetails:

{
  "type": "CARD",
  "description": "Visa •••• 1234",
  "info": {
    "cardNetwork": "VISA",
    "cardDetails": "1234"
  },
  "tokenizationData": {
    "type": "PAYMENT_GATEWAY",
    "token": "examplePaymentMethodToken"
  }
}

Neither Apple nor Google guarantee that the last four digits of the FPAN will be returned in every payment response.

Submitting card metadata to Worldpay

Coming soon
Preview only. Not yet available in production.

Submit fpanLastFour in your payment request:

{
  "instruction": {
    ...
    "paymentInstrument": {
      "type": "card/wallet+applepay",
      "walletToken": "{\"version\": \"EC_v1\",\"data\": \"kdHd..GQ==\",\"signature\": \"MIAGCSqGSIb3DQEH...AAA\",\"header\": {\"transactionId\": \"d3b28af..f8\",\"ephemeralPublicKey\": \"MFkwE..Q==\",\"publicKeyHash\": \"dxCK..6o=\" }}",
      "fpanLastFour": "1111"
    }
  }
}

Query

Coming soon
Preview only. Not yet available in production.

Our Payment Queries API returns the fpanLastFour where this was submitted in your authorization request.


Next steps

We decrypt

Take a payment with a wallet
Payout to a wallet


You decrypt

If you want to send the decrypted payload yourself, you can use the decrypted model outlined in our guides.

Apple Pay - create a payment/payout with a decrypted payload
Google Pay - create a payment with a decrypted payload