Skip to Content
ResourcesFAQRefund Issues

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/refund

See Refund API Documentation for details

Initiate Refund via BizHub

  1. Log in to BizHub merchant portal
  2. Go to “Transaction Management” page
  3. Search and find the transaction to refund
  4. Click “Refund” button
  5. Enter refund amount (supports partial refund)
  6. 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

  1. Log in to BizHub merchant portal
  2. Go to “Transaction Management” page
  3. Enter refund transaction ID in search box
  4. View transaction details and status

Refund Status Description

Refund transactions use standard transaction statuses:

  • INITIAL: Refund request created
  • PROCESSING: Refund processing
  • SUCCESS: Refund successful
  • FAIL: Refund failed
  • CLOSED: 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:

  1. Verify Refund Records: Query refund transaction details in BizHub
  2. Check Bank Statement: Confirm refund has been deducted from merchant account
  3. Contact Issuing Bank: If refund initiated but customer hasn’t received, recommend customer contact issuing bank to inquire
  4. Provide Proof: Provide refund transaction ID and timestamp to customer as proof
  5. Contact Customer Service: If issue cannot be resolved, contact SUNBAY customer service for assistance

Last updated on