Under- and Over-Payment Handling
If the customer sends less or more crypto than requested, Bead flags the payment with one of two status codes:
underpaid
Amount received <
amount requested
None – funds stay in the original asset
Customer must reclaim the unconverted amount
overpaid
Amount received >
amount requested
Requested portion converts; excess stays unconverted
Customer must reclaim the excess
Bead never auto-tops-up an underpayment or auto-refunds an overpayment. The reclaim flow ensures all residual funds return to the customer.
What Bead Does Automatically
Sets the payment
statusCode
tounderpaid
oroverpaid
.Emits a webhook with the full payment object.
If the customer entered an email (checkout or API request), sends instructions for reclaiming funds.
Integrator Workflow
Underpaid
Wait for the webhook (
statusCode = underpaid
).Display “Payment incomplete – reclaim required” message in your UI.
Do not ask the customer to send a top-up; they must initiate a new payment.
Customer follows the email link to reclaim the original transfer.
Overpaid
Webhook arrives with
statusCode = overpaid
.Confirm the requested amount has settled (
amounts.settleableAmount
).Display “Excess received – reclaim required” message in your UI.
Customer follows the email link to reclaim the excess funds.
Best Practices Checklist
Listen for underpaid
/ overpaid
via webhook instead of polling
Faster UI updates and fewer API calls
Surface a clear reclaim prompt (modal, banner, or email)
Minimizes support tickets about “where is my money?”
Instruct the customer to use Bead’s Claim Refund mechanism
Reduces merchant & integrator liability
Treat both events as terminal – start a fresh payment to complete the transaction
Maintains clean audit lineage
Log each occurrence with trackingId
, received amount, and reclaim completion date
Helps reconcile outstanding liabilities
Last updated