Create a Refund

To process a refund you will need to make a request to the /refunds endpoint. This request is made using the checkout Id returned by Twisto in your /checkouts API call.

Refund is only available after charge has been captured. Refer to the status flow for more details.

This API call will contain:

  • Reference (optional) - is required only in case of manual refund settlement to be used in bank transfer
  • Checkout_id
  • Reason
  • Amount

The Twisto API response will contain:

  • Id - a unique reference for your refund
  • Checkout_Id - The original charge id of the refunded order
  • Reason
  • Amount refunded
  • Created date time

This /refunds API call should be made from your server and not directly from the client front end. Generally this is triggered from your order management system.

sequenceDiagram actor Staff Staff->>Client: Select order to refund Client->>Server: Send refund information Server->>Twisto: POST<br/>/refunds using checkoutID Twisto->>Server: Return success with ID Server->>Client: Return Refund success Client->>Staff: Mark order as Refunded

Checkout Id

Twisto requires the original order checkout ID to process a refund. This will have been obtained from the initial checkout API call to Twisto

Here is an example of how this information can be passed:

{ "checkout_id": "string" }

Bulk vs 1:1 payments

There are 2 types of refund processing: bulk (for batch settlement) and manual (for 1:1 settlement).

In case you are using bulk payments, the refund will automatically get reduced from your daily batch payment.

In case of manual refunds, you will have to send the money to us manually. Please set the bank transfer id to exact value of reference in the refund API call.

Partial and full refunds

Full or partial refunds can be processed against the original order.

We call the refund full when the refund amount equals to the order amount.

We also support partial refunds, in which the refund amount is lower than order refund, e.g. when returning one out of many items in the order. If the customer is to return a single item from a purchase that included multiple items, only the value of the item to be refunded should be passed to Twisto in refund request.

If one checkout already contains a refund (e.g. checkout amount was 100CZK and 20CZK are already refunded) and the customer wants to return the rest of the checkout items, the refund request value should equal the remaining order amount (80CZK), otherwise the API will respond with the error.

Refund Reason

The refund reason is passed for your reference purposes if recalling the refund data from Twisto at a later time.

Here is an example of how this information can be passed:

{ "reason": "Unwanted item", "amount": 5 }

The full request

An example payload can be found below:

{ "reference": "string", "reason": "Unwanted item", "amount": 5, "checkout_id": "string" }