Skip to content

Google Pay Alternative

GW 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.
  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.

Payment

Request

Send a payment request with the following additional parameters:

Parameter Type Description
request object
amount * required
bigInteger Transaction amount in minimal currency units, for example, 5000 (50 euros).
return_url * required
string URL to return the customer to when the transaction is completed.
ip * required
string The customer's IP address.
method object A section of the payment method.
type * required
string google_pay_alt
customer object A section of the customer details.
phone string The customer's phone number.
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.
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"
        }
    }
}
Response

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

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": []
        }
    }
}

TW 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 response with the form object with parameters to build a form to complete the payment.
  4. The merchant redirects the customer to the form.
  5. The customer completes the payment using Google Pay.
  6. PaySage.io sends a webhook notification to the merchant.

Info

This integration option supports only EUR currency.

Payment

Request

Send a payment request with the following additional parameters:

Parameter Type Description
request object
amount * required
bigInteger Transaction amount in minimal currency units, for example, 5000 (50 euros).
return_url * required
string URL to return the customer to when the transaction is completed.
method object A section of the payment method.
type * required
string google_pay_alt
ip string The customer's IP address.
customer object A section of additional information about the customer.
country string (2) The customer's country in the ISO 3166-1 Alpha-2 format. For example, AT.
phone string The customer's phone number.
email string The customer's email address.
first_name string The customer's first name.
last_name string The customer's last name.
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.
birth_date string The customer's date of birth in the ISO 8601 format (YYYY-MM-DD).
Request example
{
    "request": {
        "amount": 500,
        "currency": "EUR",
        "description": "test description",
        "test": false,
        "tracking_id": "your_uniq_number21212",
        "return_url": "https://example.com/return",
        "method": {
            "type": "google_pay_alt"
        },
        "customer": {
            "email": "example@example.com"
        }
    }
}
Response

Redirect your customer to an HTML form that is built following the example below using the values from the form object in the response.

<form action="https://tw-integration-option/transaction/PGRRedirect?gw=XPV2&trackingId=52104859" method="POST">
    <input type="hidden" name="TermUrl" value="https://tw-integration-option/transaction/PGRRedirect?gw=XPV2&trackingId=52104859">
    <input type="hidden" name="XPV2" value="">
    <input type="submit" value="Submit">
</form>
Response example
{
    "transaction": {
        "uid": "c95498bc-6c70-434c-b083-91a1b63b1bc9",
        "type": "payment",
        "status": "pending",
        "amount": 1000,
        "currency": "EUR",
        "description": "test description",
        "created_at": "2024-12-19T07:18:03Z",
        "updated_at": "2024-12-19T07:18:09Z",
        "method_type": "google_pay_alt",
        "receipt_url": "https://backoffice.paysage.io/customer/transactions/c95498bc-6c70-434c-b083-91a1b63b1bc9/b61efa9b947bbd9942938684465c48349edc3242ccf0207f3bae6a3ec2927728",
        "payment": {
            "status": "pending",
            "gateway_id": 4752,
            "ref_id": "52104859",
            "message": "Transaction is pending",
            "bank_code": "10004"
        },
        "google_pay_alt": {
            "type": "google_pay_alt"
        },
        "customer": {
            "email": "example@example.com",
            "ip": null
        },
        "manually_corrected_at": null,
        "version": 0,
        "message": "Transaction is pending",
        "tracking_id": "your_uniq_number21212",
        "test": false,
        "billing_address": {
            "email": "example@example.com"
        },
        "additional_data": {
            "payment_method": {
                "type": "alternative"
            }
        },

        "gateway": {
            "iframe": false
        },
        "form": {
            "action": "https://tw-integration-option/transaction/PGRRedirect?gw=XPV2&trackingId=52104859",
            "method": "POST",
            "fields": [
                {
                    "name": "TermUrl",
                    "value": "https://tw/pay/f2a3feae-831c-470e-bbf4-05df69ebb16e/select-payment-method/google-pay/69a68e24-2da5-4b7b-901b-20c360d92503/"
                },
                {
                    "name": "XPV2",
                    "value": ""
                }
            ]
        }
    }
}

Refund

Request

Send a standard refund request. The amount value must not exceed the amount of the parent transaction.

TW2 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 response with the form object with parameters to build a form to complete the payment.
  4. The merchant redirects the customer to the form.
  5. The customer completes the payment using Google Pay.
  6. PaySage.io sends a webhook notification to the merchant.

Info

This integration option supports only EUR currency.

Payment

Request

Send a payment request with the following additional parameters:

Parameter Type Description
request object
amount * required
bigInteger Transaction amount in minimal currency units, for example, 5000 (50 euros).
return_url * required
string URL to return the customer to when the transaction is completed.
method object A section of the payment method.
type * required
string google_pay_alt
ip string The customer's IP address.
customer object A section of additional information about the customer.
country string (2) The customer's country in the ISO 3166-1 Alpha-2 format. For example, AT.
phone string The customer's phone number.
email string The customer's email address.
first_name string The customer's first name.
last_name string The customer's last name.
city string (120) The customer's billing city.
zip string (40) The customer's billing ZIP or postal code.
state string The customer's two-letter billing state only if the billing address country is US, CA or IN.
address string (510) The customer's billing address.
Request example
{
    "request": {
        "amount": 100,
        "currency": "EUR",
        "description": "test description",
        "test": false,
        "tracking_id": "your_uniq_number21212",
        "return_url": "https://your-success.url",
        "method": {
            "type": "google_pay_alt"           
        },
        "customer": {
            "phone": "123456789",
            "country": "DE",
            "city": "Berlin",
            "address": "Friedrichstrasse, 8",
            "first_name": "Helen",
            "last_name": "Kohl",
            "email": "helen@example.com"
        }
    }
}
Response

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": "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": "tw-2/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

Request

Send a standard refund request. The amount value must not exceed the amount of the parent transaction. 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.