Auto Refunds

An optional capability that automatically handles overpayments, underpayments, and late payments — either by refunding the customer or settling the funds received.

Auto Refunds is an opt-in capability. When enabled by BEEM on your merchant account, every inbound payment that hits an exception (overpayment, underpayment, or late payment) is handled automatically using rules BEEM configures for you. When the capability is off, exception payments retain their discrepancy status and require manual handling.

To enable Auto Refunds, contact your BEEM account manager.

Default behaviour (capability off)

By default, Auto Refunds is disabled on new merchant accounts. In that state:

  • The original pay-in retains the relevant exception status (UNDERPAID, OVERPAID, LATE) — see Payment Exceptions
  • Funds received sit in the receiving wallet
  • No refund is created automatically
  • Your team handles each exception manually — for example, by initiating a refund payout, contacting the customer, or accepting the partial amount

The merchant Portal shows all rules as under Wallets → [merchant account] → Payment exceptions when the capability is off.

When the capability is on

Once BEEM enables Auto Refunds for your merchant account, two things happen:

  1. BEEM configures a behaviour for each of the three exception types (overpayments, underpayments, late payments).
  2. BEEM configures a billing preference for who absorbs the fees on the refund leg.

The rules apply to every Channel payment and Payment Link In on that merchant — there is no per-channel or per-payment override.

Exception types

Three exception types are governed by Auto Refunds:

ExceptionWhen it fires
OverpaymentsThe recipient receives more than the requested amount.
UnderpaymentsThe recipient receives less than the requested amount.
Late paymentsFunds arrive after the inbound expiry window — see Payment Exceptions.

Behaviour options

Each exception type has its own behaviour setting. Two options are supported:

BehaviourWhat happens
Automatically refund sender walletBEEM creates an outbound refund and generates a refund URL. You send the URL to the customer; they nominate a refund address (and may choose the receiving asset).
Convert and settle to receiving walletBEEM converts the funds actually received into the requested asset and credits your merchant wallet. No refund is created and the pay-in settles.
📘

Per-exception independence

Each exception type can be configured independently — for example, overpayments could be set to "Convert and settle" while underpayments and late payments are set to "Automatically refund sender wallet".

The auto-refund flow

When Automatically refund sender wallet is the active behaviour, BEEM creates an outbound payment as a follow-up to the original pay-in. This appears as a separate transaction in your Payment Links list.

Refund transaction characteristics

FieldValue
typeOUT
subTypemerchantRefund
referenceREFUND-{original-reference}-{suffix} — easy to correlate to the original pay-in
redirectUrlA Payment Link Out — Without Detail URL the customer uses to nominate their refund address and asset
status (initial)Awaits the customer to provide refund details, then transitions through PROCESSING to COMPLETE

What the merchant does

  1. Detects the exception status on the original pay-in (via status-change webhook or the Portal).
  2. Retrieves the linked refund payout (same walletId, matching REFUND- reference).
  3. Sends the redirectUrl to the customer through your chosen channel (email, support ticket, in-app message).
  4. The customer opens the link, provides their refund address, and selects the asset they wish to receive.
  5. BEEM executes the refund and emits standard outbound webhooks.
📘

Worked example

A customer underpays a 100 USDT request, sending only 50 USDT. BEEM creates a refund payout for 49.833145 USDT (50 USDT less a refund processing fee of 0.166855 USDT). The customer is sent the refund URL, chooses to receive TRX on the Tron network, and provides their TRX address. BEEM converts the refund balance to TRX at the live rate and sends 153.858 TRX to the customer's nominated address.

Refund fees billed to

The Billing preference controls who pays the processing and network fees on the refund leg:

OptionBehaviour
MerchantRefund processing and network fees are debited from the merchant wallet in addition to the original refund amount. The customer receives the full amount back.
CustomerRefund fees are deducted from the refunded amount. The customer receives the original amount minus the fees.

The default is Merchant.

Convert and settle behaviour

When the rule is set to Convert and settle to receiving wallet, no refund is created. Instead:

  • The amount actually received is converted into the requested asset at the live rate
  • Your merchant wallet is credited with the converted amount
  • The original pay-in transitions to COMPLETE
  • Standard inbound webhooks fire (transaction-detected, transaction-confirmed, transaction-settled)

This is the simplest path for customers and removes the need for a refund URL handoff, at the cost of accepting whatever amount actually arrives.

In the merchant Portal

The active configuration shows under Wallets → [merchant account] → Payment exceptions with four read-only fields:

FieldDescription
OverpaymentsThe behaviour applied when the recipient receives more than the requested amount.
UnderpaymentsThe behaviour applied when the recipient receives less than the requested amount.
Late paymentsThe behaviour applied when funds arrive after the expiry window.
Refund fees billed toWho absorbs the processing and network fees on the refund leg — Merchant or Customer.

If any field shows , no rule has been configured for that exception type. Either the capability is off, or BEEM has not yet set a rule.

What's next