Accept Revolut Pay

Enable Revolut Pay on your VINR account and add it to your checkout.

View as MarkdownInstall skills

Revolut Pay works with the VINR hosted checkout — no custom UI is required. Once enabled, the Revolut Pay button appears automatically for eligible customers.

Enable Revolut PayAsk

Go to Settings → Payment methods in the VINR Dashboard and toggle Revolut Pay to enabled. There is no additional merchant registration or API key required.

Hosted checkout (no code)Ask

Once enabled, Revolut Pay appears in the VINR hosted checkout alongside cards and other active payment methods. Customers with a Revolut account will see it automatically.

API integrationAsk

To create a payment that includes Revolut Pay as an option, pass revolut_pay in the methods array, or use auto to let VINR surface it when appropriate:

import { Vinr } from '@vinr/sdk';

const vinr = new Vinr({ secretKey: process.env.VINR_SECRET_KEY });

const payment = await vinr.payments.create({
  amount: 3200,
  currency: 'EUR',
  description: 'Order #2087',
  methods: ['revolut_pay', 'card'],   // or omit methods for auto
  returnUrl: 'https://yoursite.com/checkout/complete',
  metadata: { orderId: '2087' },
});

// Redirect the customer to payment.checkoutUrl

To restrict a checkout to Revolut Pay only — for example, on a dedicated campaign page:

const payment = await vinr.payments.create({
  amount: 3200,
  currency: 'EUR',
  description: 'Order #2087',
  methods: ['revolut_pay'],
  returnUrl: 'https://yoursite.com/checkout/complete',
});

Handling the returnAsk

After the customer approves or cancels in Revolut, they are redirected to your returnUrl with a payment_id query parameter. Always confirm the final state from the webhook rather than the URL parameter:

// POST /webhooks/vinr
const event = vinr.webhooks.verify(rawBody, req.headers['x-vinr-signature']);

if (event.type === 'payment.completed') {
  const payment = event.data;
  // payment.method → "revolut_pay"
  await fulfillOrder(payment.metadata.orderId);
}

if (event.type === 'payment.failed') {
  // Customer cancelled or Revolut declined — surface an error and allow retry
}

Testing in sandboxAsk

In the VINR sandbox, the Revolut Pay redirect opens a VINR test page where you choose Approve or Decline instead of the real Revolut app. No Revolut account is needed for sandbox testing.

Revolut Pay sandbox approvals resolve immediately — there is no delay simulating Revolut's confirmation. In production, confirmation typically takes under 2 seconds.

See alsoAsk

Was this page helpful?
Edit on GitHub

Last updated on

On this page