Refund Issues
How long does it take for refunds to arrive?
Refund arrival time depends on multiple factors:
- Instant Refund: After refund request succeeds, funds are immediately deducted from merchant account
- Cardholder Receipt: Usually takes 3-10 business days, specific time depends on:
- Issuing bank’s processing speed
- Card organization’s settlement cycle
- Original transaction’s payment method
It’s recommended to inform customers that refunds may take 1-7 business days to arrive, to avoid frequent customer inquiries.
How to initiate a refund?
Initiate Refund via API
POST /api/v1/payments/refundSee Refund API Documentation for details
Initiate Refund via BizHub
- Log in to BizHub merchant portal
- Go to “Transaction Management” page
- Search and find the transaction to refund
- Click “Refund” button
- Enter refund amount (supports partial refund)
- Confirm refund information and submit
Does it support partial refunds?
Yes, SUNBAY supports partial refunds:
- Multiple Partial Refunds: Can initiate multiple partial refunds for the same transaction
- Total Refund Limit: Sum of all refund amounts cannot exceed original transaction amount
- Tip Handling: Can choose whether to refund tip when refunding
Example:
- Original transaction amount: $100.00
- First refund: $30.00
- Second refund: $20.00
- Remaining refundable amount: $50.00
Common Reasons for Refund Failure
1. Original Transaction Status Not Allowed
Error Message: Transaction status not allowed
Reason: Can only initiate refund for transactions with status SUCCESS
Solution:
- Check original transaction status
- Ensure original transaction status is
SUCCESS - If transaction status is
PROCESSING, wait for transaction to complete before refunding
2. Refund Amount Exceeds Limit
Error Message: Refund amount exceeds original transaction amount
Reason: Refund amount (including historical refunds) exceeds original transaction amount
Solution:
- Query original transaction amount and refunded amount
- Adjust refund amount to ensure it doesn’t exceed refundable balance
3. Insufficient Merchant Balance
Error Message: Insufficient merchant balance
Reason: Merchant account balance insufficient to pay refund
Solution:
- Check merchant account balance
- Contact SUNBAY customer service to top up or adjust settlement cycle
4. Original Transaction Already Fully Refunded
Error Message: Transaction already fully refunded
Reason: This transaction has already been fully refunded, cannot refund again
Solution:
- Query transaction’s refund history
- Confirm if refund has been completed
5. Refund Period Expired
Error Message: Refund period expired
Reason: Some card organizations have time limits for refunds (usually 180 days)
Solution:
- Check original transaction date
- If period expired, need to refund to customer through other means (such as bank transfer)
How to query refund status?
Method 1: Query via API
Use Query API to query refund transaction status:
{
"transactionId": "REFUND_TXN_ID"
}Method 2: Query via BizHub
- Log in to BizHub merchant portal
- Go to “Transaction Management” page
- Enter refund transaction ID in search box
- View transaction details and status
Refund Status Description
Refund transactions use standard transaction statuses:
INITIAL: Refund request createdPROCESSING: Refund processingSUCCESS: Refund successfulFAIL: Refund failedCLOSED: Refund closed
See Transaction Status for details
How to notify customers after refund?
1. Webhook Notification
Configure Webhook to receive refund event notifications:
{
"transactionId": "REFUND_TXN_ID",
"transactionRequestId": "REQ202512160002",
"referenceOrderId": "ORDER_10002",
"transactionStatus": "S",
"transactionType": "REFUND",
"createTime": "2025-01-08T10:30:00",
"completeTime": "2025-01-08T10:30:10",
"priceCurrency": "USD",
"orderAmount": 5000,
"transactionAmount": 5000,
"taxAmount": 0,
"surchargeAmount": 0,
"tipAmount": 0,
"cashbackAmount": 0,
"maskedPan": "411111******1111",
"cardNetworkType": "VISA",
"paymentMethod": "CARD",
"subPaymentMethod": "CREDIT",
"batchNo": 1,
"voucherNo": "000124",
"stan": "000457",
"rrn": "123456789013",
"authCode": "A12346",
"entryMode": "CHIP",
"authenticationMethod": "PIN",
"transactionResultCode": "00",
"transactionResultMsg": "Approved",
"terminalSn": "SN1234567890",
"description": "Refund for order ORDER_10002",
"attach": "custom_data_example"
}See Webhook Documentation for details
2. Active Query
Regularly call Query API to query refund status and notify customers via email or SMS
3. BizHub Export
Export refund records from BizHub for batch customer notification processing
How to handle refund disputes?
If customer has dispute about refund:
- Verify Refund Records: Query refund transaction details in BizHub
- Check Bank Statement: Confirm refund has been deducted from merchant account
- Contact Issuing Bank: If refund initiated but customer hasn’t received, recommend customer contact issuing bank to inquire
- Provide Proof: Provide refund transaction ID and timestamp to customer as proof
- Contact Customer Service: If issue cannot be resolved, contact SUNBAY customer service for assistance