Add Google Pay to Android apps for these supported countries.
The following Google Pay payments receive liability shift in SCA impacted regions:
- Mastercard
- Visa (where device PAN/"CRYPTOGRAM_3DS" is used)
- Read through the Google Pay Overview.
- Ask your Worldpay Implementation Manager to enable Google Pay.
- Your Worldpay Implementation Manager supplies you with a Gateway Merchant ID which you need to supply in your integration with Google Pay API.
- Follow the Google Pay tutorial and complete the Google Pay test checklist to ensure a successful integration.
- you must set the
allowedAuthMethodscard parameter to "CRYPTOGRAM_3DS" as described here. This is to ensure only network tokens and cryptogram are passed in a tokenized card payload. This means no step-up challenge is required - to be SCA compliant, you must provide the country code in your request to the Google Pay API when you process in an SCA impacted region
Set assuranceDetails to "true" in your request when integrating with the Google Pay API, to avoid attempting authentication on an SCA compliant token. A response containing "cardHolderAuthenticated": true indicates that authentication is not required and you can proceed directly to the authorization and reduce friction in your payment flow.
Here is an example of a Google Pay authorization request. For more information on taking a Google Pay payment, take a look at our Payments API documentation.
POST your authorization request to the customerInitiatedTransactions action link received in your payments root response to authorize a payment.
POST https://try.access.worldpay.com/cardPayments/customerInitiatedTransactions
{
"transactionReference": "Memory265-13/08/1876",
"merchant": {
"entity": "default"
},
"instruction": {
"requestAutoSettlement": {
"enabled": false
},
"narrative": {
"line1": "Mind Palace"
},
"value": {
"currency": "GBP",
"amount": 250
},
"paymentInstrument": {
"type": "card/wallet+googlepay",
"walletToken": "{\"protocolVersion\":\"ECv1\",\"signature\":\"MEQCIH6Q4OwQ0jAceFEkGF0JID6sJNXxOEi4r+mA7biRxqBQAiAondqoUpU/bdsrAOpZIsrHQS9nwiiNwOrr24RyPeHA0Q\\u003d\\u003d\",\"signedMessage\":\"{\\\"tag\\\":\\\"jpGz1F1Bcoi/fCNxI9n7Qrsw7i7KHrGtTf3NrRclt+U\\\\u003d\\\",\\\"ephemeralPublicKey\\\":\\\"BJatyFvFPPD21l8/uLP46Ta1hsKHndf8Z+tAgk+DEPQgYTkhHy19cF3h/bXs0tWTmZtnNm+vlVrKbRU9K8+7cZs\\\\u003d\\\",\\\"encryptedMessage\\\":\\\"mKOoXwi8OavZ\\\"}\"}"
}
},
"channel": "ecom"
}Your customer can use Google Pay to set up repeat payments (such as subscriptions). You must include the customerAgreement object in your Customer Initiated Transactions Google Pay request:
{
...
"instruction": {
...
"customerAgreement": {
"type": "subscription",
"storedCardUsage": "first"
}
}
}We convert the Google Pay encrypted payload into a Worldpay Token, which will be returned to you in the response to the above request. You may use that token to request subsequent recurring Merchant Initiated Transactions.
You receive:
- an HTTP code
201 - an
"outcome": "authorized" - a
paymentInstrument - links to cancel, settle, partially settle or query payment events
You receive:
- an
"outcome": "refused" - a refusal code
- a
descriptionthat gives additional context on the refusal - a
paymentInstrument
{
"outcome": "authorized",
"riskFactors": [{
"risk": "notChecked",
"detail": "postcode",
"type": "avs"
},
{
"risk": "notChecked",
"detail": "address",
"type": "avs"
}
],
"scheme": {
"reference": "schemeReference"
},
"paymentInstrument": {
"type": "card/network+masked",
"cardBin": "444433",
"lastFour": "1111",
"tokenNumber": "444433******1111",
"countryCode": "GB",
"expiryDate": {
"month": 2,
"year": 2028
},
"cardBrand": "visa",
"fundingType": "debit",
"category": "consumer",
"issuerName": "VALID_ISSUER",
"paymentAccountReference": "somePAR"
},
"_links": {
"cardPayments:cancel": {
"href": "https://try.access.worldpay.com/payments/authorizations/cancellations/eyJrIjoiazUyOTVhMSIsImxpbmtWZXJzaW9uIjoiMy4wLjAifQ==.7uyuNo1ShOgM5rTwStg86LXzb0a2wdLW1lwX:DIQ2Ecrp4gw65VLnHmjsAVqzpa2NcwixaBb2p8R2x5NPXdRpybJ2ndKlbkNOc9gj+ruN20iaTdYqv2FNgB3ZAw3g+yyUMUlQDFD8DU++ZswXpUQe8YTBHmTP8zHQUXrSORn9IaI6kzJnMu2HWwEJOqKnWLvRCMy:fr4ptatJJrmRVON8WTjisJL:sd3TJ9uDcO:gD+q+Q01y++Mzop0k8y3bDcnNBpsG:8xf4uKGGYO3EcAWA=="
},
"cardPayments:settle": {
"href": "https://try.access.worldpay.com/payments/settlements/full/eyJrIjoiazUyOTVhMSIsImxpbmtWZXJzaW9uIjoiMy4wLjAifQ==.7uyuNo1ShOgM5rTwStg86LXzb0a2wdLW1lwX:DIQ2Ecrp4gw65VLnHmjsAVqzpa2NcwixaBb2p8R2x5NPXdRpybJ2ndKlbkNOc9gj+ruN20iaTdYqv2FNgB3ZAw3g+yyUMUlQDFD8DU++ZswXpUQe8YTBHmTP8zHQUXrSORn9IaI6kzJnMu2HWwEJOqKnWLvRCMy:fr4ptatJJrmRVON8WTjisJL:sd3TJ9uDcO:gD+q+Q01y++Mzop0k8y3bDcnNBpsG:8xf4uKGGYO3EcAWA=="
},
"cardPayments:partialSettle": {
"href": "https://try.access.worldpay.com/payments/settlements/partials/eyJrIjoiazUyOTVhMSIsImxpbmtWZXJzaW9uIjoiMy4wLjAifQ==.7uyuNo1ShOgM5rTwStg86LXzb0a2wdLW1lwX:DIQ2Ecrp4gw65VLnHmjsAVqzpa2NcwixaBb2p8R2x5NPXdRpybJ2ndKlbkNOc9gj+ruN20iaTdYqv2FNgB3ZAw3g+yyUMUlQDFD8DU++ZswXpUQe8YTBHmTP8zHQUXrSORn9IaI6kzJnMu2HWwEJOqKnWLvRCMy:fr4ptatJJrmRVON8WTjisJL:sd3TJ9uDcO:gD+q+Q01y++Mzop0k8y3bDcnNBpsG:8xf4uKGGYO3EcAWA=="
},
"cardPayments:events": {
"href": "https://try.access.worldpay.com/payments/events/eyJrIjoiazUyOTVhMSIsImxpbmtWZXJzaW9uIjoiMy4wLjAifQ==.7uyuNo1ShOgM5rTwStg86LXzb0a2wdLW1lwX:DIQ2Ecrp4gw65VLnHmjsAVqzpa2NcwixaBb2p8R2x5NPXdRpybJ2ndKlbkNOc9gj+ruN20iaTdYqv2FNgB3ZAw3g+yyUMUlQDFD8DU++ZswXpUQe8YTBHmTP8zHQUXrSORn9IaI6kzJnMu2HWwEJOqKnWLvRCMy:fr4ptatJJrmRVON8WTjisJL:sd3TJ9uDcO:gD+q+Q01y++Mzop0k8y3bDcnNBpsG:8xf4uKGGYO3EcAWA=="
},
"tokens:token": {
"href": "https://access.worldpay.com/tokens/linkData"
},
"curies": [{
"name": "cardPayments",
"href": "https://try.access.worldpay.com/rels/payments/{rel}",
"templated": true
}]
}
}The paymentInstrument includes brand and fundingType. They can have the following values:
brand:
visavisaElectronmastercardmaestroamex
fundingType:
debitcredit
paymentAccountReference (PAR):
The payment account reference is a unique identifier associated with a specific cardholder PAN. This 29 character identification number can be used in place of sensitive customer identification fields. It can be transmitted across the payments ecosystem to facilitate customer identification.
You can use the payments:settle action link to settle the payment straight away. Alternatively, you can cache the response and use the link to settle the payment later.