You can accept Revolut Pay through a hosted payment link without building the Revolut Merchant API integration yourself. Connect your own approved Revolut Merchant account to PayRequest, add its production API credentials and webhook signing secret, then share a PayRequest payment page. Eligible customers see Revolut Pay at checkout and the funds settle to the Revolut Merchant account you connected.
This setup is for businesses that already use, or plan to open, a Revolut Merchant account. It is different from sharing a personal Revolut.me request: the checkout creates a merchant order, verifies its final status and keeps the payment connected to the right PayRequest transaction.
What You Need Before You Start
You need an approved Revolut Merchant account under Revolut Business. A regular Revolut Business account alone is not enough for production card or Revolut Pay acceptance; the Merchant account must also be approved.
From Revolut Business → Settings → APIs → Merchant API, collect these three values:
- Production Public API key beginning with `pk_`
- Production Secret API key beginning with `sk_`
- Webhook signing secret from the webhook details page
The public key initializes browser checkout. The secret key belongs only in a secure server-side connection. The webhook signing secret is a third, separate credential used to verify that payment events came from Revolut. Never paste the `sk_` key into a webpage, payment link or support message.
Revolut's official web integration guide normally requires a server endpoint for order creation, the Merchant Web SDK and server-side webhook handling. PayRequest supplies that integration layer while keeping each merchant connected to their own Revolut account.
Connect Revolut Pay to PayRequest
- Sign in to PayRequest and open Settings → Providers.
- Open the Revolut Pay provider card and choose Connect.
- Enter the Public API key and Secret API key.
- Select Production for production credentials, or Sandbox only when using sandbox credentials.
- Add the webhook signing secret.
- Choose Connect Revolut. The credentials are encrypted before storage and are not shown again in full.
The connection is tenant-scoped. PayRequest does not route your customers through a shared Revolut merchant account: the Revolut Pay button appears only on payment pages belonging to a merchant with an active connection.
Configure the Payment Webhook
Create a Merchant API webhook in Revolut with this endpoint:
Subscribe at minimum to these events:
- `ORDER_COMPLETED`
- `ORDER_CANCELLED`
- `ORDER_FAILED`
- `ORDER_PAYMENT_DECLINED`
- `ORDER_PAYMENT_FAILED`
Copy the signing secret shown for that webhook into the PayRequest provider form. Do not substitute the Merchant Secret API key. PayRequest verifies the raw request body, HMAC-SHA256 signature and a five-minute timestamp window before processing an event.
This matters because a browser success screen is not reliable fulfillment evidence. A customer can close the tab, lose connectivity or return through an incomplete redirect. Revolut likewise recommends using webhooks rather than a browser callback for critical backend work such as updating an order or releasing goods in its webhook guide.
Create and Test the Payment Link
Create a simple PayRequest payment page that lets the customer enter or use a one-time amount. Open the public link in a private browser window and complete the required amount, name and email fields. The dark Revolut Pay button should appear after those details are valid.
Run this launch check before sharing the link:
| Check | Pass condition |
|---|---|
| Account scope | The page belongs to the PayRequest merchant with the Revolut connection |
| Environment | Production keys use Production; sandbox keys use Sandbox |
| Checkout | Revolut Pay opens and displays the expected amount and currency |
| Payment state | A completed payment appears against the matching PayRequest transaction |
| Settlement | The order is visible in the connected Revolut Merchant account |
| Failure path | A cancelled or failed attempt does not mark the transaction paid |
Use a small real production payment where practical, then reconcile the PayRequest record with the Revolut Merchant order. Sandbox is useful for integration checks, but Revolut's sandbox uses a simulated account-creation experience because there is no sandbox version of the retail Revolut app.
What Happens After the Customer Pays
The checkout creates a Revolut order on demand through PayRequest's server. After successful authorization, the reliable flow is:
- Revolut sends an `ORDER_COMPLETED` webhook.
- PayRequest retrieves the order server-side and verifies its final state.
- The matching transaction is marked paid idempotently, so a repeated webhook does not create a second payment.
- The customer returns to the PayRequest success page.
The buyer can use Revolut Pay and the other methods enabled in the Revolut Merchant checkout. Settlement goes directly to your connected Merchant account; PayRequest remains the payment-page and transaction-management layer.
Revolut's Own Link or a PayRequest Link?
Revolut also lets merchants create hosted payment links directly in the Business dashboard without API keys. Its official payment-link guide is the simplest choice when you only need a standalone Revolut-hosted checkout.
Choose a PayRequest link when you want the payment to live in the same branded payment-page workflow as your other connected providers and PayRequest transactions. You can connect Revolut Pay alongside Mollie, Stripe, PayPal and Payoneer, while each provider still settles to the account you connected.
| Need | Better starting point |
|---|---|
| One basic Revolut-hosted link | Revolut Business payment link |
| PayRequest page with your own connected Revolut Merchant account | PayRequest + Revolut Pay |
| Full custom checkout and engineering control | Direct Merchant API and Web SDK integration |
| Recurring or product-fulfillment flow | Use a currently supported provider until Revolut support covers that flow |
Current Revolut Pay Scope in PayRequest
The current first phase supports one-time amounts on simple payment pages. It does not yet appear on product URLs such as `?product=123`, subscriptions, deposits or existing invoice checkouts. Those paths require additional product fulfillment or recurring-payment handling before they can be enabled safely.
Do not promise a Revolut Pay option on every PayRequest checkout yet. Test the exact public URL you plan to send and keep another connected provider available when the customer's flow falls outside this first-phase scope.
Start Accepting Revolut Pay
If you already have an approved Revolut Merchant account, create your free PayRequest account, connect Revolut under Settings → Providers, and build a simple payment page. The Free plan includes the standard platform features; PayRequest charges 2% per successful payment, capped at €25 per transaction, in addition to any Revolut merchant fees. Check the current PayRequest pricing and the rates shown for your Revolut Business account before going live.
