Guides • Accept Payments
Implementation checklist
doc

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:

Basics

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.

note

Some of these checks are optional, be aware of which ones apply to your specific implementation.

Customer management

  • Create a customer:

    1. Create a customer with minimal required parameters (email), with the Sandbox Secret API key in the request header.
    EXPECTED RESULT:

    Customer created successfully.

Order management

  • Create and pay for order:

    1. Create order with minimal required parameters (amount, currency), with the Sandbox Secret API key in the request header.

    2. Use your implemented payment method to pay for the order you created. Either using:

    EXPECTED RESULT:
  • Capture order later:

    1. Create order with minimal required parameters (amount, currency) and capture_mode set to manual, with the Merchant Secret API key in the request header.
    2. Use your implemented payment method to pay for the order you created.
    3. Log in to your Sandbox Merchant account to capture the payment:
      1. Select the uncaptured transaction.
      2. Click Capture to capture the amount.
    EXPECTED RESULT:
  • Cancel order (without capture later):

    1. Create order with minimal required parameters (amount, currency), with the Sandbox Secret API key in the request header.
    2. Do not pay for the order.
    3. Cancel the order using the order's ID.
    EXPECTED RESULT:
    • Order created successfully.
    • Order's state is cancelled.
  • Cancel uncaptured order:

    1. Create order with minimal required parameters (amount, currency) and capture_mode set to manual, with the Merchant Secret API key in the request header.

    2. Use your implemented payment method to pay for the order you created.

    3. Log in to your Sandbox Merchant account to cancel the payment:

      1. Select the uncaptured transaction.
      2. Click Cancel to cancel transaction.
      3. In the popup click Cancel payment.
    EXPECTED RESULT:
  • Manage billing and delivery information:

    1. 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_address object.

Refunds

  • Refund order:

    1. Create and pay for order to have an order in completed state, get the order's id.
    2. 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: refund is created.
    • Refund order's status is completed.
    • Refund transaction status is Completed in your Revolut Merchant account.
  • Manage partial refund:

    1. Create and pay for order to have an order in completed state, get the id.
    2. 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: refund is created.
    • Refund order's status is completed.
    • Refund transaction status is Completed in your Revolut Merchant account.
  • Manage multiple partial refunds:

    1. Create and pay for order to have an order in completed state, get the id.
    2. Refund order with minimal required parameters (amount), provide partial amount, with the Sandbox Secret API key in the request header.
    3. Repeat as many times you want to test.
    EXPECTED RESULT:
    • New orders with type: refund are created for each partial refund.
    • Refund order's states are completed.
    • Refund transactions statuses are Completed in your Revolut Merchant account.
  • Refund order fully by partial refunds:

    1. Create and pay for order to have an order in completed state, get the id.
    2. Refund order with minimal required parameters (amount), provide partial amount, with the Sandbox Secret API key in the request header.
    3. Repeat until the order is fully refunded.
    EXPECTED RESULT:
    • New orders with type: refund are 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.

Webhooks

  • Set and listen to Revolut webhooks:

    1. Set a webhook to listen to events in your payment flow, with the Sandbox Secret API key in the request header.
    2. 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:

    1. In case your server is blocking the IPs Revolut sends its notifications from, the merchant has to allowlist the following IPs:
      • 35.246.21.235
      • 34.89.70.170
    2. Set and listen to Revolut webhooks to test if allowlisting was successful.
    EXPECTED RESULT:

    Merchant's server receives webhook event information.

What's next

success

If your implementation passed all relevant checks, you are ready to go live!

Was this page helpful?