Skip to content

Apple Pay Alternative

GW Integration option

Payment flow

  1. Customer initiates Apple 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 Apple Pay.
  5. The customer completes the payment using Apple 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:

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
string
The customer's IP address.
object
A section of the payment method.
type
required
string
apple_pay_alt
object
A section of information about the customer.
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.
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": "apple_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": "apple_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."
        },
        "apple_pay_alt": {
            "type": "apple_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 Apple 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 Apple 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:

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.
object
A section of the payment method.
type
required
string
apple_pay_alt
ip
string
The customer's IP address.
object
A section of 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</div
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": true,
        "tracking_id": "your_uniq_number21212",
        "return_url": "https://return-url",
        "method": {
            "type": "apple_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=52159906" method="POST">
    <input type="hidden" name="TermUrl" value="https://tw/pay/4914ea64-519e-4b64-bbbb-188a0054a6fa/select-payment-method/apple-pay/aa269d0f-de8c-427d-a8d5-f0d79f43f23f/">
    <input type="hidden" name="XPV2" value="">
    <input type="submit" value="Submit">
</form>
Response example
{
    "transaction": {
        "uid": "ce424e47-105c-4334-a0cb-72084cb37ebf",
        "type": "payment",
        "status": "pending",
        "amount": 500,
        "currency": "EUR",
        "description": "test description",
        "created_at": "2024-12-19T15:39:23Z",
        "updated_at": "2024-12-19T15:39:24Z",
        "method_type": "apple_pay_alt",
        "receipt_url": "https://backoffice.paysage.io/customer/transactions/ce424e47-105c-4334-a0cb-72084cb37ebf/7199af77e9120455f3375f0722957a1660be09f73cb6fa7f92befdc05da7cbb8",
        "payment": {
            "status": "pending",
            "gateway_id": 4754,
            "ref_id": "52159906",
            "message": "Transaction is pending",
            "bank_code": "10004"
        },
        "apple_pay_alt": {
            "type": "apple_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": true,
        "billing_address": {
            "email": "example@example.com"
        },
        "additional_data": {
            "payment_method": {
                "type": "alternative"
            }
        },
        "smart_routing_verification": {
            "status": "skipped",
            "data": null
        },
        "gateway": {
            "iframe": false
        },
        "form": {
            "action": "https://tw-integration-option/transaction/PGRRedirect?gw=XPV2&trackingId=52159906",
            "method": "POST",
            "fields": [
                {
                    "name": "TermUrl",
                    "value": "https://tw/pay/4914ea64-519e-4b64-bbbb-188a0054a6fa/select-payment-method/apple-pay/aa269d0f-de8c-427d-a8d5-f0d79f43f23f/"
                },
                {
                    "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 Apple 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 Apple 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:

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.
object
A section of the payment method.
type
required
string
apple_pay_alt
ip
string
The customer's IP address.
object
A section of 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": "apple_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": "e4e7b7d6-62d0-4ea8-bd82-d2efed7b6704",
    "type": "payment",
    "status": "pending",
    "amount": 100,
    "currency": "EUR",
    "description": "test description",
    "created_at": "2025-03-19T10:22:02Z",
    "updated_at": "2025-03-19T10:22:02Z",
    "method_type": "apple_pay_alt",
    "receipt_url": "https://backoffice.paysage.io/customer/transactions/e4e7b7d6-62d0-4ea8-bd82-d2efed7b6704/ec405e5dd1336204b386dfd8a746479ced99d88537a131ebeaa25b9ec31110df",
    "payment": {
      "status": "pending",
      "gateway_id": 5091,
      "message": "Transaction was initialized."
    },
    "apple_pay_alt": {
      "type": "apple_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": "08d44bc275e526b1fc86d3773be4eb91",
          "type": "hidden"
        },
        {
          "name": "merchantTransactionId",
          "value": "e4e7b7d6-62d0-4ea8-bd82-d2efed7b6704",
          "type": "hidden"
        },
        {
          "name": "amount",
          "value": "1.00",
          "type": "hidden"
        },
        {
          "name": "currency",
          "value": "EUR",
          "type": "hidden"
        },
        {
          "name": "paymentBrand",
          "value": "APPLEPAY",
          "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": "89836-1589",
          "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/e4e7b7d6-62d0-4ea8-bd82-d2efed7b6704",
          "type": "hidden"
        },
        {
          "name": "notificationUrl",
          "value": "https://api.paysage.io/beyag/transactions/notifications/88c70e7191aa823ac0588a279d22ef5722fc26712f6eac23ab76b53a65019c48/e4e7b7d6-62d0-4ea8-bd82-d2efed7b6704",
          "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.

PS Integration option

Payment flow

  1. Customer initiates the 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.
  5. The customer completes the payment using Apple 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:

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.
object
A section of the payment method.
type
required
string
apple_pay_alt
ip
string
The customer's IP address.
object
A section of information about the customer.
country
string (2)
The customer's country in the ISO 3166-1 Alpha-2 format. For example, GB.
phone
required
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.
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.
Request example
{
    "request": {
        "amount": 200,
        "currency": "EUR",
        "description": "description",
        "return_url": "https://your_return_url.com",
        "ip": "127.0.0.1",
        "method": {
            "type": "apple_pay_alt"
        },
        "customer": {
            "first_name": "John",
            "last_name": "Doe",
            "address": "First Str. 2",
            "country": "GB",
            "city": "London",
            "phone": "0123456789",
            "zip": "SE22 8FA",
            "email": "email@example.com"
        }
    }
}
Response

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

Response example
{
    "transaction": {
        "uid": "4fff056a-5987-4fd3-ae56-3aca33c51d4a",
        "type": "payment",
        "status": "pending",
        "amount": 200,
        "currency": "EUR",
        "description": "description",
        "created_at": "2025-05-28T09:07:18Z",
        "updated_at": "2025-05-28T09:07:19Z",
        "method_type": "apple_pay_alt",
        "receipt_url": "https://backoffice.paysage.io/customer/transactions/4fff056a-5987-4fd3-ae56-3aca33c51d4a/8f1f850881cc72b39e4c52f7f723b67028956ec4d69f863857724d7c5b515f8a",
        "payment": {
            "status": "pending",
            "gateway_id": 5404,
            "ref_id": "refId_1015",
            "message": "Transaction was initialized."
        },
        "apple_pay_alt": {
            "type": "apple_pay_alt"
        },
        "customer": {
            "first_name": "John",
            "last_name": "Doe",
            "email": "email@example.com",
            "country": "GB",
            "city": "London",
            "zip": "SE22 8FA",
            "address": "First Str. 2",
            "phone": "0123456789",
            "ip": "127.0.0.1"
        },
        "manually_corrected_at": null,
        "version": 0,
        "message": "Transaction was initialized.",
        "test": false,
        "billing_address": {
            "first_name": "John",
            "last_name": "Doe",
            "email": "email@example.com",
            "country": "GB",
            "city": "London",
            "zip": "SE22 8FA",
            "address": "First Str. 2",
            "phone": "0123456789"
        },
        "additional_data": {
            "payment_method": {
                "type": "alternative"
            }
        },       
        "gateway": {
            "iframe": true
        },
        "form": {
            "action": "link-to-payment_page",
            "method": "GET",
            "fields": []
        }
    }
}

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.

CR Integration option

Payment

Payment Flow

  1. The customer initiates the payment on the merchant's website.
  2. The merchant sends a payment request to PaySage.io.
  3. PaySage.io responds with a link to the payment page. The lifespan of the payment link is 60 minutes.
  4. The merchant redirects the customer to the payment page.
  5. The customer completes the payment.
  6. PaySage.io sends a webhook notification with the payment status to the merchant.

Info

This integration option supports only EUR currency.

Request

Send a payment request with the following additional data:

object
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
apple_pay_alt
object
A section of information about the customer.
first_name
string
The customer's first name.
last_name
string
The customer's last name.
email
string
The customer's email address.
country
string (2)
The customer's country in the ISO 3166-1 Alpha-2 format. For example, DE.
city
string
The customer's billing city.
address
string
The customer's billing address.
zip
string
The customer's billing ZIP or postal code.
Request example
{
  "request": {
    "amount": 666,
    "currency": "EUR",
    "description": "test",
    "test": false,
    "tracking_id": "your_uniq_number21212",
    "ip": "127.01.01.01",    
    "return_url": "https://your-return.url",
    "customer": {
      "first_name": "John",
      "last_name": "Doe"      
    },
    "method": {
      "type": "apple_pay_alt"
    }
  }
}
Response

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

Response example
{
  "transaction": {
    "uid": "5511abb5-5510-40aa-b011-33922ce90887",
    "type": "payment",
    "status": "pending",
    "amount": 666,
    "currency": "EUR",
    "description": "test",
    "created_at": "2025-07-02T09:16:00Z",
    "updated_at": "2025-07-02T09:16:00Z",
    "method_type": "apple_pay_alt",
    "receipt_url": "https://backoffice.paysage.io/customer/transactions/5511abb5-5510-40aa-b011-33922ce90887/7895b94a92406485ddbce7f7c1ea06271b66b4f68671a8637b2d13895d94f0ae",
    "payment": {
      "status": "pending",
      "gateway_id": 5538,
      "ref_id": "475",
      "message": "Transaction was initialized."
    },
    "apple_pay_alt": {
      "type": "apple_pay_alt"
    },
    "customer": {
      "last_name": "Doe",
      "first_name": "John",
      "email": null,
      "ip": "127.01.01.01"
    },
    "manually_corrected_at": null,
    "version": 1,
    "message": "Transaction was initialized.",
    "tracking_id": "your_uniq_number21212",
    "test": false,
    "billing_address": {
      "last_name": "Doe",
      "first_name": "John"
    },
    "additional_data": {
      "payment_method": {
        "type": "alternative"
      }
    },
    "gateway": {
      "iframe": false
    },
    "form": {
      "action": "payment-link",
      "fields": [],
      "method": "GET"
    }
  }
}

Refund

Request

Send a standard refund request. The amount value must equal the amount of the corresponding payment transaction.