Merchant API: Implementation checklists
Before going live with your chosen payment method to accept payments, check if you completed everything that is required for a successful implementation.
Each implementation has its own specific differences, but there are some general requirements your implementation should meet.
This page contains additional use cases, which are not mentioned at specific implementation scenarios:
- Web implementations:
- Mobile implementations:
Basics
- Create a Revolut Merchant account
- Get Public and Secret API key
- Use API versioning where applicable
- Complete the tutorial for your desired implementation:
- Customize your configuration:
- Set up Sandbox environment for testing
Test your implementation in Sandbox
To test whether your implementation is ready for production deployment, check against the following use cases in Sandbox environment.
Use this list of use cases to test if the corresponding process works with the Merchant API. To see if your application handles these use cases as expected, the corresponding API calls should be made by your backend without errors. While changes you make should be present in the Merchant API.
For more information about the API calls, see: Merchant API.
Some of these checks are optional, be aware of which ones apply to your specific implementation.
Customer management
-
Create a customer:
- Create a customer with minimal required parameters (
email), with the Sandbox Secret API key in the request header.
EXPECTED RESULT:Customer created successfully.
- Create a customer with minimal required parameters (
-
Update customer details:
- Create a customer.
- Update the created customer's details using its ID.
EXPECTED RESULT:Customer's details updated successfully.
-
Delete customer:
- Create a customer.
- Delete the created customer using its ID.
EXPECTED RESULT:Customer is deleted successfully.
Order management
-
Create and pay for order:
-
Create order with minimal required parameters (
amount,currency), with the Sandbox Secret API key in the request header. -
Use your implemented payment method to pay for the order you created. Either using:
- test cards for Sandbox, or
- test Revolut Accounts for Sandbox, you created. For more information, see: Merchant API: Create a customer.
EXPECTED RESULT:- Order created successfully.
- Order's state is
completed. - Transaction status is Completed in your Sandbox Merchant account.
-
-
Capture order later:
- Create order with minimal required parameters (
amount,currency) andcapture_modeset tomanual, with the Merchant Secret API key in the request header. - Use your implemented payment method to pay for the order you created.
- Log in to your Sandbox Merchant account to capture the payment:
- Select the uncaptured transaction.
- Click Capture to capture the amount.
EXPECTED RESULT:- Order created successfully.
- Order's state is
completed. - Transaction status is Completed in your Sandbox Merchant account.
- Create order with minimal required parameters (
-
Cancel order (without capture later):
- Create order with minimal required parameters (
amount,currency), with the Sandbox Secret API key in the request header. - Do not pay for the order.
- Cancel the order using the order's ID.
EXPECTED RESULT:- Order created successfully.
- Order's state is
cancelled.
- Create order with minimal required parameters (
-
Cancel uncaptured order:
-
Create order with minimal required parameters (
amount,currency) andcapture_modeset tomanual, with the Merchant Secret API key in the request header. -
Use your implemented payment method to pay for the order you created.
-
Log in to your Sandbox Merchant account to cancel the payment:
- Select the uncaptured transaction.
- Click Cancel to cancel transaction.
- In the popup click Cancel payment.
EXPECTED RESULT:- Order created successfully.
- Order's state is
cancelled. - Transaction status is Cancelled in your Revolut Merchant account.
-
-
Manage billing and delivery information:
- Create order with the following parameters, with the Sandbox Secret API key in the request header:
{
"amount": 50000,
"currency": "GBP",
"customer_id": "<ID of customer>",
"shipping_address": {
"country_code": "GB",
"postcode": "E145AB"
}
}EXPECTED RESULT:Order contains
shipping_addressobject.
Refunds
-
Refund order:
- Create and pay for order to have an order in
completedstate, get the order'sid. - Refund order with minimal required parameters (
amount), provide full amount for total refund, with the Sandbox Secret API key in the request header.
EXPECTED RESULT:- New order with type:
refundis created. - Refund order's status is
completed. - Refund transaction status is Completed in your Revolut Merchant account.
- Create and pay for order to have an order in
-
Manage partial refund:
- Create and pay for order to have an order in
completedstate, get theid. - Refund order with minimal required parameters (
amount), provide partial amount, with the Sandbox Secret API key in the request header.
EXPECTED RESULT:- New order with type:
refundis created. - Refund order's status is
completed. - Refund transaction status is Completed in your Revolut Merchant account.
- Create and pay for order to have an order in
-
Manage multiple partial refunds:
- Create and pay for order to have an order in
completedstate, get theid. - Refund order with minimal required parameters (
amount), provide partial amount, with the Sandbox Secret API key in the request header. - Repeat as many times you want to test.
EXPECTED RESULT:- New orders with type:
refundare created for each partial refund. - Refund order's states are
completed. - Refund transactions statuses are Completed in your Revolut Merchant account.
- Create and pay for order to have an order in
-
Refund order fully by partial refunds:
- Create and pay for order to have an order in
completedstate, get theid. - Refund order with minimal required parameters (
amount), provide partial amount, with the Sandbox Secret API key in the request header. - Repeat until the order is fully refunded.
EXPECTED RESULT:- New orders with type:
refundare created for each partial refund. - Refund order's states are
completed. - Refund transactions statuses are Completed in your Revolut Merchant account.
- Posting a refund after full amount is refunded returns an error.
- Create and pay for order to have an order in
Webhooks
-
Set and listen to Revolut webhooks:
- Set a webhook to listen to events in your payment flow, with the Sandbox Secret API key in the request header.
- Create and pay for order to check if your backend receives the events you specified.
EXPECTED RESULT:Webhook is sending event information to your backend.
-
Allowlist Revolut webhook IPs:
-
In case your server is blocking the IPs Revolut sends its notifications from, the merchant has to allowlist the following IPs:
Production webhook IPs:
35.246.21.23534.89.70.170
Sandbox webhook IPs:
35.242.130.24235.242.162.241
-
Set and listen to Revolut webhooks to test if allowlisting was successful.
EXPECTED RESULT:Merchant's server receives webhook event information.
-
What's next
If your implementation passed all relevant checks, your integration is complete!