Return & Refund Orders
Return/Refund an Order
Completed orders can be returned or refunded either fully or partially. Partial refunds are processed by specifying the particular items from the original order that need to be refunded. The total refund amount cannot exceed the original transaction amount.
Refund Types
Important Notes
- During refunds, the transaction fee is charged again
- For partial refunds, include only the items being refunded in the
orderLinesof the return order
Prerequisites
API-KEY, API-SECRET, and MERCHANT-ID
purchaseOrderId - The orderId of the original purchase transaction
For partial refunds, you also need:
- Details of items to be refunded
- Item information for
orderLines(name, quantity, unitPrice)
Full Refund
To process a complete refund for the entire order amount:
Example: Create Return Order
Example: Initiate Refund Payment
Partial Refunds
You can create partial refunds in two ways:
Using OrderLines
Using Total Amount
Refund specific items from the original order by creating a return order with those items in the orderLines. For example, if the original order contained multiple items (apple, coke, burger), you can refund just one item (burger) by including only that item in the return order.
Required Parameters for Partial Refunds
Method 1: Using OrderLines
Step 1: Create a return order by specifying the items to be refunded:
Step 2: Initiate refund payment using the returned orderId:
purchasePaymentId is required only when the original order was paid partially, regardless of payment type. It is not required for card-present refunds.
Method 2: Using Total Order Amount
Step 1: Create a return order by specifying the refund amount directly:
orderLines is required for both purchase and return orders. The only exception is when processing a partial refund using the totalOrderAmount field — in this case, orderLines is not needed.
Step 2: Initiate refund payment using the returned orderId:
Payment Method Requirements
Refunds must be processed using the corresponding refund method for the original payment:
Recommended: Use CARD_NP (Card Not Present) for card refunds. This processes the refund automatically without requiring the customer to tap their card on the terminal.
Check Refund Status
You can track refund status by:
- Listening to webhooks for real-time updates
- Using the Fetch Order Status API to check progress
Cancel a Payment
You can cancel a payment for an order if necessary, but only before the payment transfer is completed. Once the payment has been completed, you cannot cancel it directly — instead you will need to void the payment.
Prerequisites
API-KEY, API-SECRET, and MERCHANT-ID
paymentId from the Initiate Payment API
Cancel a Payment
Make a DELETE request to the Cancel Payment API using the paymentId:
Response Status
Void a Payment
Voiding a payment will stop the payment process before any money is moved from the customer’s account to the merchant’s account. This helps avoid issues with incorrect transactions soon after the payment is initiated.
Important
Voiding a payment is possible only before 23:00 UTC and cannot be done when the payment is not completed.
Prerequisites
API-KEY, API-SECRET, and MERCHANT-ID
paymentId from the Initiate Payment API
Void a Payment
Make a PUT request to the Void Payment API: