Apple Pay / Google Pay
Wallet payments through the hosted payment page
Before you start
Authorization
How to sign your requests with the API token.
Create payment
The base order request that this page extends.
This payment method is not enabled for all merchants. Check availability with your manager.
Overview
Apple Pay and Google Pay are regular orders with two extra fields:
| Field | Type | Description |
|---|---|---|
extraParams | string | Selects the wallet. The exact value depends on your integration variant |
customer | object | Payer details. The required set depends on your integration variant |
The payer is redirected to paymentLink, where the wallet payment sheet is shown. Wallet payments work primarily on mobile devices and in Safari (Apple Pay) or Chrome (Google Pay).
Integration variants
Several providers are connected to the platform, and each expects its own extraParams value and payer data. Your terminal is connected to one of the variants below.
Ask your manager which variant is enabled for your account before integrating. Passing the wrong extraParams value results in a declined order.
| Variant | Apple Pay | Google Pay | Required customer fields |
|---|---|---|---|
| Standard | apple-pay | google-pay | country, email, firstName, lastName, ip |
| Full billing details | APPLEPAY | GOOGLEPAY | email, phone, firstName, lastName, country, city, state, postcode, address |
| Email only | apple_pay | google_pay | email |
| Email and IP | applepay | googlepay | email, ip |
| Field | Type | Required | Description |
|---|---|---|---|
country | string | ✅ Yes | Payer country, ISO 3166-1 alpha-2 |
email | string | ✅ Yes | Payer email |
firstName | string | ✅ Yes | First name |
lastName | string | ✅ Yes | Last name |
ip | string | ✅ Yes | Payer IP address (real) |
curl -X POST "https://api.riopay.online/v1/orders" \
-H "Content-Type: application/json" \
-H "X-Api-Token: YOUR_API_TOKEN" \
-d '{
"amount": "1500.00",
"externalId": "order_12345",
"purpose": "Payment for order #12345",
"extraParams": "apple-pay",
"customer": {
"country": "DE",
"email": "customer@example.com",
"firstName": "John",
"lastName": "Doe",
"ip": "192.168.1.1"
}
}'For Google Pay use "extraParams": "google-pay".
| Field | Type | Required | Description |
|---|---|---|---|
email | string | ✅ Yes | Payer email |
phone | string | ✅ Yes | Phone number |
firstName | string | ✅ Yes | First name |
lastName | string | ✅ Yes | Last name |
country | string | ✅ Yes | Country, ISO 3166-1 alpha-2 |
city | string | ✅ Yes | City |
state | string | ✅ Yes | State or region |
postcode | string | ✅ Yes | Postal code |
address | string | ✅ Yes | Street address |
{
"amount": "10.99",
"currency": "EUR",
"successUrl": "https://example.com/success",
"failUrl": "https://example.com/fail",
"extraParams": "APPLEPAY",
"customer": {
"email": "customer@example.com",
"phone": "1999999999",
"firstName": "Jane",
"lastName": "Doe",
"country": "PT",
"city": "Maia",
"state": "Porto",
"postcode": "4450",
"address": "Rua Example 1"
}
}For Google Pay use "extraParams": "GOOGLEPAY".
| Field | Type | Required | Description |
|---|---|---|---|
email | string | ✅ Yes | Payer email |
{
"amount": "10.99",
"currency": "EUR",
"successUrl": "https://example.com/success",
"failUrl": "https://example.com/fail",
"extraParams": "apple_pay",
"customer": {
"email": "customer@example.com"
}
}For Google Pay use "extraParams": "google_pay".
| Field | Type | Required | Description |
|---|---|---|---|
email | string | ✅ Yes | Payer email |
ip | string | ✅ Yes | Payer IP address (real) |
{
"amount": "10.99",
"currency": "EUR",
"successUrl": "https://example.com/success",
"failUrl": "https://example.com/fail",
"extraParams": "applepay",
"customer": {
"email": "customer@example.com",
"ip": "8.8.8.8"
}
}For Google Pay use "extraParams": "googlepay".
Response
The response is a standard order object. The order is created with the CREATED status; redirect the payer to paymentLink to complete the payment.
Order object fields
Recommendations
- Pass the payer's real IP address, not your server's.
- Fill in every required
customerfield for your variant; missing fields are the most common cause of declines. - Test on real devices: Apple Pay does not work in simulators or in non-Safari browsers on iOS.