Refunds & disputes

Refund Revolut Pay payments and handle disputes.

View as MarkdownInstall skills

Revolut Pay payments support full and partial refunds through the standard VINR refund API. Disputes follow a different process than card chargebacks.

RefundsAsk

Refund a completed Revolut Pay payment in full or in part. The refunded amount is returned to the customer's Revolut account balance, typically within a few minutes.

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

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

const refund = await vinr.refunds.create({
  payment: 'pay_ABC123',
  amount: 1600,                        // partial refund of €16.00; omit for full
  reason: 'requested_by_customer',
});

// refund.status → "pending" then "completed"

Listen for the refund.completed event to confirm the refund has settled:

if (event.type === 'refund.completed') {
  const refund = event.data;
  await updateOrderStatus(refund.metadata.orderId, 'refunded');
}

Refund timing

StateTiming
refund.pendingCreated immediately
refund.completedTypically within minutes; funds arrive in the customer's Revolut account within seconds of completion

Multiple partial refunds can be issued against the same payment, up to the original payment amount.

DisputesAsk

Revolut Pay disputes differ from card chargebacks. Because the payment is made from a Revolut account balance rather than through a card network, there is no standard chargeback process. Instead, dispute claims are handled directly between Revolut and the merchant through VINR.

When a dispute is opened, a dispute.opened event is fired and the disputed amount is temporarily held from your VINR balance. You can respond to disputes with evidence in the VINR Dashboard under Payments → Disputes.

Revolut Pay disputes that are decided in the customer's favour result in a permanent debit from your VINR balance. Respond to disputes with supporting evidence as early as possible.

See alsoAsk

Was this page helpful?
Edit on GitHub

Last updated on

On this page