Mobile Wallets

Check out how merchants can accept Apple Pay and Google Pay with Cards Connect

Mobile wallets are standard payment method for in-app online payments. Wallets use token-based payments under the hood, so, the transaction flow and properties are similar.

Cards Connect supports Apple Pay and Google Pay. Once you decrypt the wallet payload and have the token and the cryptogram, you can pass these values and the wallet provider in the Authorization API request to request a customer initiate wallet transaction.

A wallet transaction is initiated by setting the cardType as ApplePay or GooglePay depending on the cardholder's wallet provider, then setting the rest of the related properties in the request accordingly. These are:

cardNumber: The token number as "MM/YY"

expirationDate: Expiration date of the token.

tokenCryptogram: The cryptographic value that verifies the transaction. Similar to the network tokens, this is usually a 28 characters long value in Base64 format.

🚧

Google Pay Purchase on a Desktop Browser

When a customer tries to make a payment on a browser that doesn't offer a way to verify the transaction, such as biometric verification would do on a mobile device, you may receive the actual card number (FPAN) from Google Pay. There wouldn't be a cryptogram in this case, so, you should treat this not as a Google Pay wallet transaction but a standard, card-based customer initiated transaction.


{
  "reconciliationId": "e8dd3707-0d8f-4dde-8691-dec639ba6f5e",
  "orderId": "TEST00001",
  "amount": 550,
  "currency": "AUD",
  "paymentSource": "ECommerce",
  "statementDescriptor": {
    "name": "Test Merchant Pty Ltd",
    "description": "Drinks - Latte(Lrg)",
    "url": "https://www.example.com",
    "phoneNumber": "02xxxxxxxx",
    "city": "Castle Hill"
  },
  "cardDetails": {
    "cardType": "GooglePay",
    "cardholderName": "John Example",
    "cardNumber": "535318XXXXXX6466",
    "expirationDate": "09/30",
    "tokenCryptogram": "VGhpc0lzQW5FeGFtcGxlQ3J5cHRvZ3JhbQ=="
  },
  "externalBuyerId": "myBuyer",
  "billingDetails": {
    "firstName": "John",
    "lastName": "Smith",
    "emailAddress": "[email protected]",
    "phoneNumber": "04xxxxxxxx",
    "addressLine1": "1 Woolworths Way",
    "addressLine2": null,
    "city": "Sydney",
    "suburb": "Bella Vista",
    "state": "NSW",
    "postCode": "2153",
    "country": "Australia"
  },
  "merchantInitiated": false,
  "isSubsequentTransaction": false
}

Note that we expect the cardDetails object to be encrypted. The above representation is for illustration purposes only.