post
https://sandboxapi.upayments.com/api/v1/create-refund
Single refund from order id
Recent Requests
Log in to see full request history
| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Loading…
Refund Management
Funding & Balance
To successfully process a refund, your UPayments account must have a sufficient Balance.
-
Insufficient Funds: If your balance is too low, you must perform a top-up.
-
Top-up Usage: Funds added via top-up are reserved strictly for refund processing.
-
Residual Funds: Any remaining top-up balance will be automatically swept back to your settlement account during the next Deposit Cycle.
Processing Timelines
Once processed, funds are typically credited to the customer within the following windows:
-
K-NET: 1 working day.
-
Cards (MPGS/Cybersource): Up to 10 working days.
Gateway Retention Limits
Refunds can only be requested for transactions within the following historical windows:
| Payment Method | Retention Period |
|---|---|
| K-NET | 6 Months |
| MPGS | 2 Years |
| Cybersource (CYBS) | 2 Years |
Cancellation Policy
- Eligible for Cancellation: Refunds can only be deleted (cancelled) if the status is Initiated.
- Non-Cancellable: Once the status changes to Refunded, the action is final and cannot be reversed.
KNET refunds are done within 4 hours of refund initiation
CC refunds are done within 2-3 business days.
| Input Parameter | Type | Length | Description |
|---|---|---|---|
| orderId | string, mandatory | 255 | Pass refund order ID, which is received in Get Payment Status API. |
| totalPrice | float, mandatory | 10,2 | Enter refund amount |
| customerFirstName | string, optional | 255 | Pass the customer's first name |
| customerEmail | string, optional | 250 | Pass the customer's email |
| customerMobileNumber | string, optional | 10 | Pass the customer's mobile number |
| reference | string, optional | 255 | Pass order reference |
| notifyUrl | string, optional | 255 | Pass notification URL |
| requireApproval | boolean, optional | true/false | Pass true if the Refund request needs to be approved. |
| refundReason | string, optional | 255 | Pass the refund reason Note: required only when requireApproval is true |
Request Model
{
"orderId": "mv1GZnrG2l20221010125525514466916867376022022026038648992c2755f2",
"totalPrice": 10,
"customerFirstName": "Jhon",
"customerEmail": "[email protected]",
"customerMobileNumber": "+96512345678",
"reference": "11223344",
"notifyUrl": "https://upayments.com/en"
}Response Model
{
"status": true,
"message": "Refund invoice generated successfully",
"data": {
"orderId": "k4eJmnNR8pME3OdxVO6m202210101255255144669168674086486939107564899f80070d8HsUDgrRtCbzbuJFTdH9QyMLNkgaFcKMU",
"refundOrderId": "HsUDgrRtCbzbuJFTdH9QyMLNkgaFcKMU",
"refundArn": "202311074314067023726014116806"
}
}Data flow diagram for refunds

