- METHOD TYPEE-wallet
- PAYMENTS
- PAYOUTS
- REFUNDS
- RECURRING
Introduction
Revolut Pay is a fast, easy, and secure way for a customer to make payments to businesses directly from a Revolut account.
Supported Countries
Supported Currencies
Web SDK 1.0
Payment Flow
Nuvei Web SDK 1.0 can display Revolut Pay in the merchant checkout. Revolut Pay must be enabled for the Nuvei merchant account, the transaction country, and the transaction currency.
- The merchant initializes a merchant Nuvei Web SDK 1.0 session.
- The merchant calls
'RevolutsdkCheckout', including session information, amount, currency, the Revolut'publicToken', and the container in which to render the ‘Revolut Pay’ button. - Nuvei Web SDK 1.0 loads Revolut Pay
The ‘Revolut Pay’ button is displayed in the specified container. - The customer selects the ‘Revolut Pay’ button.
- Nuvei Web SDK 1.0 creates the Nuvei payment.
- Revolut opens the Revolut app if it is installed or opens the Revolut-hosted payment page.
- The customer authenticates, if required, and confirms the payment.
- The merchant
'RevolutsdkCheckout'callback receives the payment result. - Nuvei sends a DMN containing the final transaction status.
Example Revolut Pay initialization
nuveiWebSDK.RevolutsdkCheckout(
{
sessionToken: sessionData.sessionToken, // from /openOrder
publicToken: "YOUR_REVOLUT_PUBLIC_KEY", // from your Revolut account
renderTo: "#revolut-button",
amount: amount,
currency: currency,
buttonStyle: {
size: "small",
variant: "dark",
radius: "small",
action: "buy",
cashback: true
},
savePaymentMethodForMerchant: false
},
function (result) {
console.log(result);
}
);Parameters
The following parameters are available for 'RevolutsdkCheckout(params, callback)':
| Parameter Name | Description | Data Type | Mandatory | Default |
|---|---|---|---|---|
| sessionToken | Session token returned by '/openOrder' | string | Yes | |
| publicToken | Your Revolut public key for the applicable environment. | string | Yes | |
| renderTo | CSS selector of the container where the Revolut Pay button is rendered. For example, '#revolut-button'. | string | Yes | |
| amount | Payment amount. The value must match the amount sent in '/openOrder'. | number | Yes | |
| currency | ISO currency code. The currency must be supported by Revolut Pay. | string | Yes | |
| locale | Language of the Revolut screens. | string | No | en |
| buttonStyle | Revolut Pay button appearance. The object can contain 'height', 'size', 'radius', 'variant', 'action', and 'cashback'. | object | No | Revolut default |
| customer | Customer details passed to Revolut. Include this object to enable the faster, frictionless flow for eligible returning customers. | object | No | |
| savePaymentMethodForMerchant | Indicates whether Revolut can save the customer's Revolut Pay payment method for future merchant-initiated payments, such as subscription payments. Set to 'true' only after obtaining the customer's consent. | boolean | No | false |
| redirectUrls | Redirect URLs for desktop browser payment flows, including success, failure, and cancel destinations. | object | No | |
| mobileRedirectUrls | Redirect URLs for mobile browser payment flows, including success, failure, and cancel destinations. | object | No |
Standard payment fields that the merchant provides, such as 'userTokenId' or 'billingAddress', are passed through to the payment.
Example buttonStyle
buttonStyle: {
height: "46px",
size: "large",
radius: "small",
variant: "dark",
action: "pay",
cashback: false
}Available 'buttonStyle' values include:
'height': string'size':'large'or'small''radius':'none','small','large', or'round''variant':'dark','light', or'light-outlined''action':'donate','pay','subscribe', or'buy''cashback': boolean
Handling the Result
The result returned to the callback can be 'PENDING'. Do not fulfil an order based only on the callback result. Nuvei also sends a DMN containing the final transaction status.
Simply Connect 1.0
Payment Flow
Simply Connect 1.0 displays Revolut Pay in the Payment Method Gallery and manages the Revolut payment journey internally. Add the Revolut Pay configuration to 'apmConfig' when you call 'checkout()', and receive the checkout result through 'onResult'.
Before starting the payment:
- Ensure that Revolut Pay is enabled for your Nuvei merchant account and for the applicable country and currency.
- Call
'/openOrder'on your server and obtain a'sessionToken'. - Obtain your Revolut
'publicToken'. - Pass the
'publicToken'in'apmConfig.apmgw_RevolutPay'.
The payment flow is:
- Your server calls
'/openOrder'and obtains a'sessionToken'. - Load
'checkout.js'and call'checkout()'. - Simply Connect displays Revolut Pay in the Payment Method Gallery when the payment method is enabled and the session country and currency are supported.
- The customer selects the Revolut Pay tile.
- Simply Connect loads Revolut Pay and displays the Revolut Pay button inside the tile.
- The customer selects the Revolut Pay button, and Simply Connect creates the payment.
- Revolut opens the Revolut app if it is installed or opens its hosted payment page.
- The customer authenticates, if required, and confirms the payment.
- Simply Connect passes the checkout result to
'onResult'. - Nuvei sends a DMN containing the final transaction status.
Example Simply Connect configuration
checkout({
sessionToken,
merchantId,
merchantSiteId,
env,
amount,
currency,
country,
locale,
renderTo,
payButton,
showResponseMessage,
onResult,
apmConfig: {
apmgw_RevolutPay: {
publicToken: "YOUR_REVOLUT_PUBLIC_KEY",
buttonStyle: {
height: "44px"
},
redirectUrls: {
successUrl,
failureUrl,
cancelUrl
},
mobileRedirectUrls: {
successUrl,
failureUrl,
cancelUrl
},
savePaymentMethodForMerchant: false,
customer: {
// Customer details
}
}
}
});Configuration
The Revolut Pay configuration can include:
'publicToken': Required. Your Revolut public key for the applicable environment.'buttonStyle': Optional. Uses the same button-style options as Web SDK. Simply Connect uses'{height: "44px"}'by default.'customer': Optional. Customer information passed to Revolut. Include this object to enable the faster, frictionless flow for eligible returning customers.'savePaymentMethodForMerchant': Optional. Set to'true'only after obtaining the customer’s consent to save the payment method for future merchant-initiated payments.'redirectUrls': Optional. Redirect destinations for desktop browser flows.'mobileRedirectUrls': Optional. Redirect destinations for mobile browser flows.
You can control whether Revolut Pay appears in the Payment Method Gallery using 'pmWhitelist' or 'pmBlacklist' with 'apmgw_RevolutPay'. Do not send both lists in the same request.
The 'prePayment' event is triggered for Revolut Pay before the payment is created.
Handling the Result
Simply Connect passes the checkout result through 'onResult'. Nuvei also sends a DMN containing the final transaction status. Do not fulfil an order based only on the client-side result.
DMN
TBD: Add the standard DMN example/code used for APM pages.
User Experience
The Revolut Pay experience depends on the customer’s device and whether the Revolut app is available.
- The customer selects Revolut Pay.
- Revolut opens its app if it is installed or opens the Revolut-hosted payment page.
- The customer completes authentication when required.
- The customer confirms the payment.
- The customer returns to the merchant experience and sees the payment result.
ADD APPROVED SCREENSHOTS FOR THE STANDARD FLOW. DO NOT ADD RETURNING-CUSTOMER SCREENSHOTS YET.
Returning Customers
A returning customer can use a faster, frictionless Revolut Pay flow when the merchant sends a 'customer' object and none of Revolut’s SCA thresholds has been exceeded. A new customer always completes SCA.
Revolut can require SCA again under the following conditions:
- After five consecutive payments without SCA.
- When the cumulative value of payments since the previous SCA exceeds EUR 100.
- When an individual payment exceeds GBP 25 or EUR 30.
Insufficient Funds
Revolut does not provide a bank-transfer fallback when the customer’s Revolut account has insufficient funds. Revolut prompts the customer to add funds. If the customer does not add funds, the payment is declined.
Name Check
For transactions above Revolut’s internal threshold, Revolut can perform a customer-name check. A mismatch can result in a decline with 'customer_name_mismatch'.
Testing
To obtain the information required to test Revolut Pay, contact the Nuvei Integration team.
ADD STANDARD TESTING NOTE IF REQUIRED BY THE PAGE TEMPLATE.