Skip to content

Google Pay Alternative

General Integration option

Payment flow

  1. Customer initiates Google Pay payment on the merchant's website.
  2. Merchant sends the payment request to PaySage.io
  3. PaySage.io returns a payment link to the merchant or the form object with parameters to build a form to complete the payment.
  4. The merchant redirects the customer to the payment link. The link opens the page which displays the transaction amount along with a button to make a payment using Google Pay.
  5. The customer completes the payment using Google Pay.
  6. PaySage.io sends a webhook notification to the merchant.

Info

This integration option only supports EUR currency. FR integration option additionally supports USD currency.

Payment

Request

Send a payment request with the following additional parameters:

object
amount
required
bigInteger
Transaction amount in minimal currency units, for example, 5000 (50 euros).
currency
required
string
EUR
description
required
string(255)
A short description of the order.
return_url
required
string
URL to return the customer to when the transaction is completed.
ip
string
The customer's IP address.
object
A section of the payment method.
type
required
string
google_pay_alt
object
A section of information about the customer.
phone
required
string
The customer's phone number including the country code.
email
required
string
The customer's email address.
first_name
string
The customer's first name.
last_name
string
The customer's last name.
middle_name
string
The customer's middle name.
country
string (2)
The customer's country in the ISO 3166-1 Alpha-2 format. For example, DE.
state
string
The customer's two-letter billing state only if the submitted billing address country is US, CA or AU.
city
string (120)
The customer's billing city.
zip
string (40)
The customer's billing ZIP or postal code.
address
string (510)
The customer's billing address.
external_id
string (10)
The customer's identifier in the merchant's system, up to 10 digits.
birth_date
string
The customer's date of birth in the ISO 8601 format (YYYY-MM-DD).
Request example
 {
    "request": {
        "amount": 200,
        "currency": "EUR",
        "description": "description",
        "return_url": "https://your_return_url.com",
        "ip": "127.0.0.1",
        "method": {
            "type": "google_pay_alt"
        },
        "customer": {
            "phone": "0123456789",
            "email": "email@example.com",
            "country": "DE",
            "city": "Berlin",
            "address": "Friedrichstrasse, 8",
            "first_name": "Helen",
            "last_name": "Kohl",
            "middle_name": "Maria",
            "zip": "10115",
            "birth-date": "1990-01-01",
            "external_id": "1234567"  
        }
    }
}
Response

Redirect your customer to the URL received as the value of the form.action parameter.

For TW and TW2 integration options, build an HTML form based on the parameters in the form object. Redirect the customer to the form to finalize the payment.

Response example
{
    "transaction": {
        "uid": "5658d7ca-6f8c-4050-ac19-05980b8356e5",
        "type": "payment",
        "status": "pending",
        "amount": 200,
        "currency": "EUR",
        "description": "description",
        "created_at": "2024-08-14T14:51:59Z",
        "updated_at": "2024-08-14T14:52:01Z",
        "method_type": "google_pay_alt",
        "receipt_url": "https://backoffice.paysage.io/customer/transactions/5658d7ca-6f8c-4050-ac19-05980b8356e5/96003c2fd2601e204900b4df53b549a471743e262b15a3d8d8109d6c8ea1b1f7",
        "payment": {
            "status": "pending",
            "gateway_id": 4379,
            "ref_id": "363698704",
            "message": "Transaction was initialized."
        },
        "google_pay_alt": {
            "type": "google_pay_alt"
        },
        "customer": {
            "email": "email@example.com",
            "phone": "0123456789",
            "ip": "127.0.0.1"
        },
        "manually_corrected_at": null,
        "version": 0,
        "message": "Transaction was initialized.",
        "test": false,
        "billing_address": {
            "email": "email@example.com",
            "phone": "0123456789"
        },
        "additional_data": {
            "payment_method": {
                "type": "alternative"
            }
        },       
        "gateway": {
            "iframe": false
        },
        "form": {
            "action": "https://example.com/url-for-redirect",
            "method": "GET",
            "fields": []
        }
    }
}
Response example for TW and TW2 integration options
{
  "transaction": {
    "uid": "0b26a3de-8753-47e1-9181-ff422285afdc",
    "type": "payment",
    "status": "pending",
    "amount": 100,
    "currency": "EUR",
    "description": "test description",
    "created_at": "2025-03-19T09:41:08Z",
    "updated_at": "2025-03-19T09:41:08Z",
    "method_type": "google_pay_alt",
    "receipt_url": "https://backoffice.paysage.io/customer/transactions/0b26a3de-8753-47e1-9181-ff422285afdc/52a0a76f39f30cb3979f21906e8cf62808eab230e4d5b94dceddaa6761228f1d",
    "payment": {
      "status": "pending",
      "gateway_id": 5091,
      "message": "Transaction was initialized."
    },
    "google_pay_alt": {
      "type": "google_pay_alt"
    },
    "customer": {
      "first_name": "Helen",
      "last_name": "Kohl",
      "email": "helen@example.com",
      "country": "DE",
      "city": "Berlin",
      "address": "Friedrichstrasse, 8",
      "phone": "123456789",
      "ip": null
    },
    "manually_corrected_at": null,
    "version": 0,
    "message": "Transaction was initialized.",
    "tracking_id": "your_uniq_number21212",
    "test": false,
    "billing_address": {
      "first_name": "Helen",
      "last_name": "Kohl",
      "email": "helen@example.com",
      "country": "DE",
      "city": "Berlin",
      "address": "Friedrichstrasse, 8",
      "phone": "123456789"
    },
    "additional_data": {
      "payment_method": {
        "type": "alternative"
      }
    },    
    "gateway": {
      "iframe": false
    },
    "form": {
      "action": "/transaction/Checkout",
      "method": "POST",
      "fields": [
        {
          "name": "memberId",
          "value": "13106",
          "type": "hidden"
        },
        {
          "name": "terminalid",
          "value": "6093",
          "type": "hidden"
        },
        {
          "name": "partnerId",
          "value": "39",
          "type": "hidden"
        },
        {
          "name": "checksum",
          "value": "7d0a47520e551b544f7e31e2e83455eb",
          "type": "hidden"
        },
        {
          "name": "merchantTransactionId",
          "value": "0b26a3de-8753-47e1-9181-ff422285afdc",
          "type": "hidden"
        },
        {
          "name": "amount",
          "value": "1.00",
          "type": "hidden"
        },
        {
          "name": "currency",
          "value": "EUR",
          "type": "hidden"
        },
        {
          "name": "paymentBrand",
          "value": "GOOGLEPAY",
          "type": "hidden"
        },
        {
          "name": "paymentMode",
          "value": "EW",
          "type": "hidden"
        },
        {
          "name": "orderDescription",
          "value": "test description",
          "type": "hidden"
        },
        {
          "name": "country",
          "value": "DE",
          "type": "hidden"
        },
        {
          "name": "city",
          "value": "Berlin",
          "type": "hidden"
        },
        {
          "name": "postcode",
          "value": "15239-5452",
          "type": "hidden"
        },
        {
          "name": "street",
          "value": "Friedrichstrasse, 8",
          "type": "hidden"
        },
        {
          "name": "firstName",
          "value": "Helen",
          "type": "hidden"
        },
        {
          "name": "lastName",
          "value": "Kohl",
          "type": "hidden"
        },
        {
          "name": "email",
          "value": "helen@example.com",
          "type": "hidden"
        },
        {
          "name": "merchantRedirectUrl",
          "value": "https://api.paysage.io/beyag/transactions/returns/88c70e7191aa823ac0588a279d22ef5722fc26712f6eac23ab76b53a65019c48/0b26a3de-8753-47e1-9181-ff422285afdc",
          "type": "hidden"
        },
        {
          "name": "notificationUrl",
          "value": "https://api.paysage.io/beyag/transactions/notifications/88c70e7191aa823ac0588a279d22ef5722fc26712f6eac23ab76b53a65019c48/0b26a3de-8753-47e1-9181-ff422285afdc",
          "type": "hidden"
        },
        {
          "name": "totype",
          "value": "TW",
          "type": "hidden"
        },
        {
          "name": "phone",
          "value": "456789",
          "type": "hidden"
        },
        {
          "name": "telnocc",
          "value": "123",
          "type": "hidden"
        }
      ]
    }
  }
}

Refund

Refunds are available for TW, TW2, FR, PS and CR integration options.

For TW and CR integration options, the amount value must not exceed the amount of the parent transaction.

For TW2, FR and PS integration options, it is possible to make multiple refunds for the same payment transaction, in this case the sum of refund amounts must not exceed the amount of the corresponding payment transaction.

Request

Send a standard refund request.