Cards & Wallets · Digital Wallets · Google Pay

Google Pay Payments

Take a payment with a Google Pay payment method — authorised and captured in one step.

When using Your Payment Page

Use our payments API to make payments with Google Pay payment methods. You will first need to integrate with Google to retrieve the payment method data. See Getting started with Google Pay for more details.

You should ensure that an email address is always set on your customer or provided in the API request as this will be required for Google Pay non-tokenized card payment methods that need to go through 3-D Secure. Transactions may be rejected if this is not set.

The payment endpoint

Send the payment to POST /acceptor/rest/transactions/{instId}/payment, with the payment method data Google returned — or a saved account token — in paymentMethod.googlepay. The full request and response definition is on Cards API endpoints.

The response depends on the authorisation method of the payment method your customer chose, which you do not know when you send the request, so you should handle both of the flows below.

Non-tokenized cards and 3-D Secure

A non-tokenized card payment method (PAN_ONLY) has had no Strong Customer Authentication (SCA) performed on it, so the payment goes through 3-D Secure on our platform: the response suspends the transaction with the data your customer needs to be challenged with, and you resume it once they have been authenticated. That round trip is the same as it is for a card payment — see 3D Secure for the request and response of each stage.

Your merchant account must be configured for 3-D Secure to process payment methods of this type.

Android device tokens

An Android device token (CRYPTOGRAM_3DS) is already authenticated with a 3-D Secure cryptogram, so the payment is authorised in a single request with no challenge.

Process Android device token payment
EndpointDefinition
POST /acceptor/rest/transactions/{instId}/payment
Request body
{
  "transaction" : {
    "currency" : "GBP",
    "amount" : 1000.0,
    "description" : "Sample Transaction",
    "merchantRef" : "mer_txn_1234556",
    "commerceType" : "ECOM"
  },
  "paymentMethod" : {
    "googlepay" : {
      "apiVersion" : "2.0",
      "paymentData" : {
        "token" : "{\"signature\":\"MEQCIC6X7dBK/aDqzbV+kfAgr6zDWkvBOco2eVIvtE8uywC0AiBcuh9IU2zTvzpvka2EJb1RzTlC7hKsDYUCsE8mLnP46A\\u003d\\u003d\",\"intermediateSigningKey\":{\"signedKey\":\"{\\\"keyValue\\\":\\\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE3ylg/VC+JOe89+7X3sRmVQyP1tnQ78ZeRzAQFfjk8+1Tenx8i0BQBh/L6E0eMtIsbaYpY9ADz5k3bOOQyUmOtg\\\\u003d\\\\u003d\\\",\\\"keyExpiration\\\":\\\"1621652902428\\\"}\",\"signatures\":[\"MEYCIQD3km1nISvDudS/yo9SdLgrRSYO/ZO35/7NBla+IjRyngIhAPg3Dyei0aEPlXuPOa1e674Y7pZLZPmPC67B/4TciB3c\"]},\"protocolVersion\":\"ECv2\",\"signedMessage\":\"{\\\"encryptedMessage\\\":\\\"tOWWejMA9w04BOOtfrI0zSQIJlMj4mu77+6yWDeqzYuU7SXQ+bB02DJoyIpByScqj27W6s8SqaLXDwgrZaUsHrevq5Ae8oTbJla/R9HthZhXsT2yM+e2dFfqxNnqngc2lfjusz4YvFu2Kx7P6leKZ96YRUFEdy1y9gtf2d9Jv0KZrOMh7+cuVDfdy84t1R4ay//dthPDeEffu7QeFhGFoaotctzRcWGeFKojfS1cYVJrljZNzvbd/1RbnuEIvuXOKwmrW/AQI9Cbxu9SIVVA6ZnyYGC/ultNqnsMerXLVCJYPyGYS3eOxp1S+YdBNZ0sXtLfzRBOgQeO3J/PQ75oX6h5Vs3IFx63eESeUfgRfoyKCdW6hLSx6sheBSrnSAzWAhzN7T1JZ3AH8T+RxMPDivUGkzjSJWSgmPmiURWAODLBI5Ls9/X/dK7Rm5w3KrtIoz64+2ap5Rn57sCf8Z/Dq4WUa1w4qNbas9A5yp0Ch91d6AMVB+pZg3vSQWUiwDBDET3owvwx/wLGj3fUZCN4pH6WR5ePIhDAuknLZDpkO8s4rSocIJVxZrG60Iy0nPJkQvwZ\\\",\\\"ephemeralPublicKey\\\":\\\"BEhJT8grtFPE4XXuQ0Y7KPZgV7SDL4VPNnEySFcgBjIR4bXTrlo84zLMmDE2tI8tYqHbEt50weOZrySJvKjnqtU\\\\u003d\\\",\\\"tag\\\":\\\"Q3AYAE65qbrbFJzN83tAU2R6slXvRqxn8/sOcVyYswc\\\\u003d\\\"}\"}"
      },
      "paymentMethod" : {
        "displayName" : "Visa •••• 2222",
        "network" : "VISA",
        "details" : "2222",
        "cardHolderName" : "Mr Test"
      }
    }
  },
  "customer" : {
    "merchantRef" : "mer_cust_131241412",
    "displayName" : "Mr Test",
    "billingAddress" : {
      "line1" : "1 Some Street",
      "city" : "Metropolis",
      "postcode" : "AA1 1AA",
      "countryCode" : "GBR"
    },
    "email" : "[email protected]",
    "dateOfBirth" : "1995-11-20",
    "telephone" : "0123 456 789",
    "defaultCurrency" : "GBP",
    "ip" : "212.58.253.67"
  }
}
cURL
curl -X POST "{targetEnvironmentPath}/acceptor/rest/transactions/{instId}/payment" \
  -u "{apiUser}:{apiPassword}" \
  -H "Content-Type: application/json" \
  -d '{
  "transaction" : {
    "currency" : "GBP",
    "amount" : 1000.0,
    "description" : "Sample Transaction",
    "merchantRef" : "mer_txn_1234556",
    "commerceType" : "ECOM"
  },
  "paymentMethod" : {
    "googlepay" : {
      "apiVersion" : "2.0",
      "paymentData" : {
        "token" : "{\"signature\":\"MEQCIC6X7dBK/aDqzbV+kfAgr6zDWkvBOco2eVIvtE8uywC0AiBcuh9IU2zTvzpvka2EJb1RzTlC7hKsDYUCsE8mLnP46A\\u003d\\u003d\",\"intermediateSigningKey\":{\"signedKey\":\"{\\\"keyValue\\\":\\\"MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE3ylg/VC+JOe89+7X3sRmVQyP1tnQ78ZeRzAQFfjk8+1Tenx8i0BQBh/L6E0eMtIsbaYpY9ADz5k3bOOQyUmOtg\\\\u003d\\\\u003d\\\",\\\"keyExpiration\\\":\\\"1621652902428\\\"}\",\"signatures\":[\"MEYCIQD3km1nISvDudS/yo9SdLgrRSYO/ZO35/7NBla+IjRyngIhAPg3Dyei0aEPlXuPOa1e674Y7pZLZPmPC67B/4TciB3c\"]},\"protocolVersion\":\"ECv2\",\"signedMessage\":\"{\\\"encryptedMessage\\\":\\\"tOWWejMA9w04BOOtfrI0zSQIJlMj4mu77+6yWDeqzYuU7SXQ+bB02DJoyIpByScqj27W6s8SqaLXDwgrZaUsHrevq5Ae8oTbJla/R9HthZhXsT2yM+e2dFfqxNnqngc2lfjusz4YvFu2Kx7P6leKZ96YRUFEdy1y9gtf2d9Jv0KZrOMh7+cuVDfdy84t1R4ay//dthPDeEffu7QeFhGFoaotctzRcWGeFKojfS1cYVJrljZNzvbd/1RbnuEIvuXOKwmrW/AQI9Cbxu9SIVVA6ZnyYGC/ultNqnsMerXLVCJYPyGYS3eOxp1S+YdBNZ0sXtLfzRBOgQeO3J/PQ75oX6h5Vs3IFx63eESeUfgRfoyKCdW6hLSx6sheBSrnSAzWAhzN7T1JZ3AH8T+RxMPDivUGkzjSJWSgmPmiURWAODLBI5Ls9/X/dK7Rm5w3KrtIoz64+2ap5Rn57sCf8Z/Dq4WUa1w4qNbas9A5yp0Ch91d6AMVB+pZg3vSQWUiwDBDET3owvwx/wLGj3fUZCN4pH6WR5ePIhDAuknLZDpkO8s4rSocIJVxZrG60Iy0nPJkQvwZ\\\",\\\"ephemeralPublicKey\\\":\\\"BEhJT8grtFPE4XXuQ0Y7KPZgV7SDL4VPNnEySFcgBjIR4bXTrlo84zLMmDE2tI8tYqHbEt50weOZrySJvKjnqtU\\\\u003d\\\",\\\"tag\\\":\\\"Q3AYAE65qbrbFJzN83tAU2R6slXvRqxn8/sOcVyYswc\\\\u003d\\\"}\"}"
      },
      "paymentMethod" : {
        "displayName" : "Visa •••• 2222",
        "network" : "VISA",
        "details" : "2222",
        "cardHolderName" : "Mr Test"
      }
    }
  },
  "customer" : {
    "merchantRef" : "mer_cust_131241412",
    "displayName" : "Mr Test",
    "billingAddress" : {
      "line1" : "1 Some Street",
      "city" : "Metropolis",
      "postcode" : "AA1 1AA",
      "countryCode" : "GBR"
    },
    "email" : "[email protected]",
    "dateOfBirth" : "1995-11-20",
    "telephone" : "0123 456 789",
    "defaultCurrency" : "GBP",
    "ip" : "212.58.253.67"
  }
}'
Response
HTTP/1.1 201

{
  "processing" : {
    "model" : "MANAGE",
    "authResponse" : {
      "acquirerName" : "Chase Paymentech",
      "gatewayReference" : "110gbp9421da9ad74aa0aACee1000z00",
      "gatewayCode" : "000.000.000",
      "gatewayMessage" : "Transaction succeeded",
      "status" : "AUTHORISED"
    },
    "route" : "PAYON"
  },
  "paymentMethod" : {
    "registered" : true,
    "googlepay" : {
      "displayName" : "Visa •••• 2222",
      "cardScheme" : "VISA",
      "savedAccountToken" : "MT_QR7nYNupRz-bpKFDt1pFSA",
      "cardDetails" : "2222",
      "cardHolderName" : "Mr Test"
    },
    "billingAddress" : { },
    "paymentClass" : "CARD",
    "reuse" : {
      "storage" : "NEW",
      "agreement" : "ADHOC",
      "receivedSchemeReference" : "110gbp9421da9ad74aa0aACee1000z00"
    }
  },
  "customFields" : {
    "fieldState" : [ ]
  },
  "customer" : {
    "id" : "10503",
    "merchantRef" : "mer_cust_131241412"
  },
  "transaction" : {
    "transactionId" : "13770307916",
    "merchantRef" : "mer_txn_1234556",
    "merchantDescription" : "Sample Transaction",
    "status" : "SUCCESS",
    "stage" : "COMPLETE",
    "type" : "PAYMENT",
    "amount" : 1000.00,
    "consumerSpend" : 1000.00,
    "currency" : "GBP",
    "transactionTime" : "2021-05-14T10:29:20.910+01:00",
    "receivedTime" : "2021-05-14T10:29:20.910+01:00",
    "customerInitiated" : true
  },
  "outcome" : {
    "status" : "SUCCESS",
    "reasonCode" : "S100",
    "reasonMessage" : "Authorised"
  },
  "trace" : "T5Pmj1c-uQgxRMa-gl-z3ZQ",
  "link" : [ {
    "rel" : "transaction",
    "href" : "https://secure.mite.pay360.com/acceptor/rest/transactions/111111/13770307916"
  } ]
}

Saved account token payments

Where the payment method was registered on an earlier transaction you can send its saved account token instead of the Google Pay payment data. The request is the same for both authorisation methods; the response carries only the data relevant to the one the token came from.

Process a saved account token payment from a Google Pay non-tokenized card payment method (FPAN)
EndpointDefinition
POST /acceptor/rest/transactions/{instId}/payment
Request body
{
  "transaction" : {
    "currency" : "GBP",
    "amount" : 1000.0,
    "description" : "Sample Transaction",
    "merchantRef" : "mer_txn_1234556",
    "commerceType" : "ECOM"
  },
  "paymentMethod" : {
    "googlepay" : {
      "savedAccountToken" : "MT_KzyCn12bSmSAa5JUPx8zhw"
    }
  },
  "customer" : {
    "merchantRef" : "mer_cust_131241412",
    "displayName" : "John Smith",
    "billingAddress" : {
      "line1" : "1 Some Street",
      "city" : "Metropolis",
      "postcode" : "AA1 1AA",
      "countryCode" : "GBR"
    },
    "email" : "[email protected]",
    "dateOfBirth" : "1995-11-20",
    "telephone" : "0123 456 789",
    "defaultCurrency" : "GBP",
    "ip" : "212.58.253.67"
  }
}
cURL
curl -X POST "{targetEnvironmentPath}/acceptor/rest/transactions/{instId}/payment" \
  -u "{apiUser}:{apiPassword}" \
  -H "Content-Type: application/json" \
  -d '{
  "transaction" : {
    "currency" : "GBP",
    "amount" : 1000.0,
    "description" : "Sample Transaction",
    "merchantRef" : "mer_txn_1234556",
    "commerceType" : "ECOM"
  },
  "paymentMethod" : {
    "googlepay" : {
      "savedAccountToken" : "MT_KzyCn12bSmSAa5JUPx8zhw"
    }
  },
  "customer" : {
    "merchantRef" : "mer_cust_131241412",
    "displayName" : "John Smith",
    "billingAddress" : {
      "line1" : "1 Some Street",
      "city" : "Metropolis",
      "postcode" : "AA1 1AA",
      "countryCode" : "GBR"
    },
    "email" : "[email protected]",
    "dateOfBirth" : "1995-11-20",
    "telephone" : "0123 456 789",
    "defaultCurrency" : "GBP",
    "ip" : "212.58.253.67"
  }
}'
Response
HTTP/1.1 201

{
  "processing" : {
    "model" : "MANAGE",
    "authResponse" : {
      "acquirerName" : "Chase Paymentech",
      "gatewayReference" : "110gbpfa70a8f27e1b550ACee1000z00",
      "gatewayCode" : "000.000.000",
      "gatewayMessage" : "Transaction succeeded",
      "status" : "AUTHORISED"
    },
    "route" : "PAYON"
  },
  "paymentMethod" : {
    "registered" : true,
    "card" : {
      "cardToken" : "MT_KzyCn12bSmSAa5JUPx8zhw",
      "cardFingerprint" : "Q1MtNjNkYTQ2ZWItZjMxOS00NzE2LThmODQtMjZkZDUwZjE5NjA3",
      "new" : false,
      "cardType" : "VISA_CREDIT",
      "cardUsageType" : "CREDIT",
      "cardScheme" : "VISA",
      "cardCategory" : "CREDIT",
      "maskedPan" : "411111******1111",
      "expiryDate" : "1226",
      "issuer" : "UNKNOWN",
      "issuerCountry" : "GBR",
      "cardHolderName" : "Mr Test",
      "source" : "GOOGLEPAY"
    },
    "billingAddress" : { },
    "paymentClass" : "CARD",
    "reuse" : {
      "storage" : "EXISTING",
      "agreement" : "ADHOC",
      "originalSchemeReference" : "100gbpf39a2c237254943ACee1000z00",
      "receivedSchemeReference" : "110gbpfa70a8f27e1b550ACee1000z00"
    }
  },
  "customFields" : {
    "fieldState" : [ ]
  },
  "customer" : {
    "id" : "10503",
    "merchantRef" : "mer_cust_131241412"
  },
  "transaction" : {
    "transactionId" : "13770307926",
    "merchantRef" : "mer_txn_1234556",
    "merchantDescription" : "Sample Transaction",
    "status" : "SUCCESS",
    "stage" : "COMPLETE",
    "type" : "PAYMENT",
    "amount" : 1000.00,
    "consumerSpend" : 1000.00,
    "currency" : "GBP",
    "transactionTime" : "2021-05-17T16:59:02.793+01:00",
    "receivedTime" : "2021-05-17T16:59:02.793+01:00",
    "customerInitiated" : true
  },
  "outcome" : {
    "status" : "SUCCESS",
    "reasonCode" : "S100",
    "reasonMessage" : "Authorised"
  },
  "trace" : "TKjPYdxgebC1Qcx1UmpAaZQ",
  "link" : [ {
    "rel" : "transaction",
    "href" : "https://secure.mite.pay360.com/acceptor/rest/transactions/111111/13770307926"
  } ]
}
Process a saved account token payment from a Google Pay Android device token payment method (DPAN)
EndpointDefinition
POST /acceptor/rest/transactions/{instId}/payment
Request body
{
  "transaction" : {
    "currency" : "GBP",
    "amount" : 1000.0,
    "description" : "Sample Transaction",
    "merchantRef" : "mer_txn_1234556",
    "commerceType" : "ECOM"
  },
  "paymentMethod" : {
    "googlepay" : {
      "savedAccountToken" : "MT_qRUctdGGQ6GYOoBUpOWUeQ"
    }
  },
  "customer" : {
    "merchantRef" : "mer_cust_131241412",
    "displayName" : "John Smith",
    "billingAddress" : {
      "line1" : "1 Some Street",
      "city" : "Metropolis",
      "postcode" : "AA1 1AA",
      "countryCode" : "GBR"
    },
    "email" : "[email protected]",
    "dateOfBirth" : "1995-11-20",
    "telephone" : "0123 456 789",
    "defaultCurrency" : "GBP",
    "ip" : "212.58.253.67"
  }
}
cURL
curl -X POST "{targetEnvironmentPath}/acceptor/rest/transactions/{instId}/payment" \
  -u "{apiUser}:{apiPassword}" \
  -H "Content-Type: application/json" \
  -d '{
  "transaction" : {
    "currency" : "GBP",
    "amount" : 1000.0,
    "description" : "Sample Transaction",
    "merchantRef" : "mer_txn_1234556",
    "commerceType" : "ECOM"
  },
  "paymentMethod" : {
    "googlepay" : {
      "savedAccountToken" : "MT_qRUctdGGQ6GYOoBUpOWUeQ"
    }
  },
  "customer" : {
    "merchantRef" : "mer_cust_131241412",
    "displayName" : "John Smith",
    "billingAddress" : {
      "line1" : "1 Some Street",
      "city" : "Metropolis",
      "postcode" : "AA1 1AA",
      "countryCode" : "GBR"
    },
    "email" : "[email protected]",
    "dateOfBirth" : "1995-11-20",
    "telephone" : "0123 456 789",
    "defaultCurrency" : "GBP",
    "ip" : "212.58.253.67"
  }
}'
Response
HTTP/1.1 201

{
  "processing" : {
    "model" : "MANAGE",
    "authResponse" : {
      "acquirerName" : "Chase Paymentech",
      "gatewayReference" : "110gbpb2cf70be4eebf3bACee1000z00",
      "gatewayCode" : "000.000.000",
      "gatewayMessage" : "Transaction succeeded",
      "status" : "AUTHORISED"
    },
    "route" : "PAYON"
  },
  "paymentMethod" : {
    "registered" : true,
    "googlepay" : {
      "displayName" : "Visa •••• 2222",
      "savedAccountToken" : "MT_qRUctdGGQ6GYOoBUpOWUeQ",
      "cardHolderName" : "Mr Card Holder"
    },
    "billingAddress" : { },
    "paymentClass" : "CARD",
    "reuse" : {
      "storage" : "EXISTING",
      "agreement" : "ADHOC",
      "receivedSchemeReference" : "110gbpb2cf70be4eebf3bACee1000z00"
    }
  },
  "customFields" : {
    "fieldState" : [ ]
  },
  "customer" : {
    "id" : "10503",
    "merchantRef" : "mer_cust_131241412"
  },
  "transaction" : {
    "transactionId" : "10910753506",
    "merchantRef" : "mer_txn_1234556",
    "merchantDescription" : "Sample Transaction",
    "status" : "SUCCESS",
    "stage" : "COMPLETE",
    "type" : "PAYMENT",
    "amount" : 1000.00,
    "consumerSpend" : 1000.00,
    "currency" : "GBP",
    "transactionTime" : "2021-05-17T17:29:20.192+01:00",
    "receivedTime" : "2021-05-17T17:29:20.192+01:00",
    "customerInitiated" : true
  },
  "outcome" : {
    "status" : "SUCCESS",
    "reasonCode" : "S100",
    "reasonMessage" : "Authorised"
  },
  "trace" : "TA63BsEK46fNMx_sMhNdJ8w",
  "link" : [ {
    "rel" : "transaction",
    "href" : "https://secure.mite.pay360.com/acceptor/rest/transactions/111111/10910753506"
  } ]
}

When using the PaySuite Payment Page

The PaySuite Payment Page has an integration to the Google Pay JavaScript API so you will not need to integrate directly with Google.

Using Google Pay on the PaySuite Payment Page is no different from using it for regular card payments; as long as your account is configured for Google Pay then you should see Google Pay as a payment option. See Take a Payment for full details and example requests.

You should ensure that an email address is always set on your customer or provided in the initialisation request as this will be required for Google Pay non-tokenized card payment methods that need to go through 3-D Secure. Transactions may be rejected if this is not set.