Revolut
Revolut Pay is Revolut's wallet payment method, built on top of the Revolut Business Merchant API. The customer authorizes the payment either directly from the Revolut app (debiting their Revolut account) or by entering a card in the Revolut Pay popup.
Source: https://developer.revolut.com/docs/guides/merchant/accept-payments/online-payments/revolut-pay/webAvailable integrations
Embed
Redirection
Pop-in
Available operations
| Operation | Total | Partial | Multiple |
|---|---|---|---|
| Capture | |||
| Refund | |||
| Void |
Information
- CAPTURE requires the order to be in the authorised state (capture_mode: manual). Partial capture is supported, but any uncaptured remainder is automatically cancelled - there is no multiple capture, an order can only be captured once.
- REFUND is only possible once the order is completed. Partial and multiple refunds are supported, cumulatively capped at the original order amount.
- VOID is only possible while the order is pending or authorised. Once the order is completed, cancellation must go through a refund instead.
Payment Method specifics
| Payment flow (capture_mode: automatic) | 1-step Payment flow |
| Payment flow (capture_mode: manual) | 2-step Payment flow |
Features
| Feature | Supported |
|---|---|
| Save token | |
| Pay token | |
| CIT - MIT | |
| Information request - MIT | |
| MIT with non Purse CIT | |
| MOTO | |
| Smart Retry |
How to test?
Information
Test cards only work in the Sandbox environment (https://sandbox-merchant.revolut.com). Use any 3-digit CVV and any future expiry date (MM/YY) with every card below. When testing with authorisation_type: pre_authorisation, all cards - including the error cards below - result in an authorised payment state in Sandbox: the normal declined/failed outcomes are bypassed at both the authorisation and capture steps.
Test cards for successful payments
| Card PAN | Brand |
|---|---|
| 4929420573595709 | |
| 5281438801804148 |
Test cards for error cases
| Card PAN | Case | Decline reason | Payment state |
|---|---|---|---|
| 4242424242424242 | Payment failed due to a 3DS verification error. Orders below GBP 25.00 (or the equivalent, e.g. EUR 30.00) are exempt from 3DS and succeed instead - use an amount of at least 2500 (GBP), 3000 (EUR), or the equivalent in other currencies, to trigger the failure. | customer_challenge_failed | failed |
| 4929573638125985 | Payment declined due to insufficient funds. | insufficient_funds | declined |
| 4532336743874205 | Payment declined due to the card being expired. | expired_card | declined |
| 2720998837779594 | Payment declined due to Do Not Honour - the customer's bank declined the transaction for internal reasons (e.g. fraud rules triggered, temporary hold). | do_not_honour | declined |
| 5215674115127070 | Payment failed because the issuing bank requires additional verification; a message is returned from the bank that should be displayed to the cardholder. | customer_challenge_failed | failed |
| 2223000010479399 | Order and payment stuck in the processing state - useful to test behaviour when an order takes longer than expected to complete. | (none returned) | authorisation_started |