Create Refund

Creating Refund for Multi-merchant is done on 2 steps

Multi-merchants can create refunds on behalf of a sub-merchant

  • Multi-merchant refunds are made from the respective sub-merchant accounts (Sub-merchant IBAN will identify the sub-vendor account from which the refund must be made)
  • Multi-merchant refunds are possible only if there is sufficient 'Balance in Hand' in the sub-merchant's account
  • If the balance is not sufficient in the Sub-merchant's UPay account, the Sub-merchant will have to top up their balance to process the refunds successfully
  • The top up amount will be used for refund purposes only, and the remaining amount, if any, will be returned to the account within the next Deposit cycle.
  • The refund will automatically reach your customer's account within 1 working day for K-NET transactions and up to 10 working days for Credit Card, Apple Pay, Samsung Pay, Google Pay, and all other payment methods

Step 1:

Create a single refund


Step 2:

If isMultiVendorRefund is true, call multivendorrefund and pass the refund payload that was received in the single refund response

The request is a POST request with the following parameters:

Input ParameterTypeLengthDescription
orderIdstring, mandatory255Pass order ID received in Create Single Refund API. Single refund request must be created and sent.
refundPayloadarray, mandatory
refundPayload.refundRequestIdstring, mandatory255Pass refund request ID received in Create Single Refund API.
refundPayload.ibanNumberstring, mandatory255Pass Sub-merchant IBAN number received in Create Single Refund API.
refundPayload.totalPaidstring, mandatory255Pass total paid which is received in Create Single Refund API.
refundPayload.refundedAmountfloat, mandatory10,2Pass refunded amount received in Create Single Refund API.
refundPayload.remainingLimitfloat, mandatory10,2Pass the remaining amount received in Create Single Refund API.
refundPayload.amountToRefundfloat, mandatory10,2Pass how much amount you want refund to the merchant
refundPayload.merchantTypestring, mandatory255Pass merchant type received in Create Single Refund API.
receiptIdstring, optional255You can pass the receipt ID here for your reference
customerFirstNamestring, optional255Pass customer first name
customerEmailstring, optional255Pass customer email address
customerMobileNumberstring, optional255Pass customer mobile number
referencestring, optional255You can pass the reference here
notifyUrlstring, optional255You will get webhook data on this URL

Request Model

{
    "orderId": "ME3OdxVO6m20221010125525514466916880191941658236257649d20fa014b0",
    "refundPayload": [
        {
            "refundRequestId": "WEVsTGo0ZTlOMg==",
            "ibanNumber": "KW91KFHO0000000000051010173254",
            "totalPaid": "10.000",
            "refundedAmount": 0,
            "remainingLimit": 10,
            "amountToRefund": 1,
            "merchantType": "vendor"
        },
        {
            "refundRequestId": "RVc3OFhCRFoxSg==",
            "ibanNumber": "KW31NBOK0000000000002010177457",
            "totalPaid": "10.000",
            "refundedAmount": 0,
            "remainingLimit": 10,
            "amountToRefund": 1,
            "merchantType": "vendor"
        }
    ],
    "receiptId": "NHDBC55214",
    "customerFirstName": "Jhon Smith",
    "customerEmail": "[email protected]",
    "customerMobileNumber": "+96512345678",
    "reference": "HCNHD1425KSM",
    "notifyUrl": "https://upayments.com"
}

Response Model

{
    "status": true,
    "message": "success",
    "data": {
        "responseData": {
            "generated": [
                {
                    "generatedInvoiceId": "bHo0SmxubGE2dg==",
                    "amount": 1,
                    "orderId": "k4eJmnNR8pME3OdxVO6m20221010125525514466916880191941658236257649d20fa014b0HGHHDwCEVkIzdHmYmvbE1zg3SEytjmWS",
                    "refundOrderId": "HGHHDwCEVkIzdHmYmvbE1zg3SEytjmWS",
                    "refundArn": "20230613132906948529208806612"
                },
                {
                    "generatedInvoiceId": "eUtZUjBNOWFxOQ==",
                    "amount": 1,
                    "orderId": "k4eJmnNR8pk4eJmnNR8pME3OdxVO6m20221010125525514466916880191941658236257649d20fa014b0HGHHDwCEVkIzdHmYmvbE1zg3SEytjmWSBUxEwUOEGGrGEyBs18p1HfX4LY4MGBvc",
                    "refundOrderId": "BUxEwUOEGGrGEyBs18p1HfX4LY4MGBvc",
                    "refundArn": "20230613132906948529208806612"
                }
            ],
            "dataTempered": [],
            "refundIssue": [],
            "insufficientBalance": []
        }
    }
}

Data flow diagram for Multi-merchant refunds