Payment Docs
Payment methods

Apple Pay / Google Pay

Wallet payments through the hosted payment page

Before you start

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:

FieldTypeDescription
extraParamsstringSelects the wallet. The exact value depends on your integration variant
customerobjectPayer 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.

VariantApple PayGoogle PayRequired customer fields
Standardapple-paygoogle-paycountry, email, firstName, lastName, ip
Full billing detailsAPPLEPAYGOOGLEPAYemail, phone, firstName, lastName, country, city, state, postcode, address
Email onlyapple_paygoogle_payemail
Email and IPapplepaygooglepayemail, ip
FieldTypeRequiredDescription
countrystring✅ YesPayer country, ISO 3166-1 alpha-2
emailstring✅ YesPayer email
firstNamestring✅ YesFirst name
lastNamestring✅ YesLast name
ipstring✅ YesPayer 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".

FieldTypeRequiredDescription
emailstring✅ YesPayer email
phonestring✅ YesPhone number
firstNamestring✅ YesFirst name
lastNamestring✅ YesLast name
countrystring✅ YesCountry, ISO 3166-1 alpha-2
citystring✅ YesCity
statestring✅ YesState or region
postcodestring✅ YesPostal code
addressstring✅ YesStreet 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".

FieldTypeRequiredDescription
emailstring✅ YesPayer 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".

FieldTypeRequiredDescription
emailstring✅ YesPayer email
ipstring✅ YesPayer 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 customer field 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.

Next steps

On this page