Late Payments

Receiving payments after they have expired

Late payments occur when cryptocurrency arrives after a payment has already expired or been marked as COMPLETE or UNDERPAID. This situation can arise if:

  • The blockchain confirmation is delayed.
  • The user sends funds late.
  • They attempt to top up an already finalised payment.

Why and when do payments expire?

We don’t want to leave payments in the PENDING state indefinitely if a user never sends any funds. Therefore, each payment has an expiry window:

  • If you specify expiryMinutes and the payment is still in a PENDING or PROCESSING state after that time, it will expire once that many minutes elapse without reaching a COMPLETE or UNDERPAID status.
  • If you don’t specify expiryMinutesin the payment request, your default expiration period, as configured in your merchant settings, will be used.
  • The default expiry time of 180 minutes will be used for payments:
    • That require an FX conversion between the currency that is being paid and the currency of your MID wallet, and
    • With no expiryMinutes specified, and
    • No default expiration setting configured.

For greater flexibility of when end users send their funds and how much, use cryptocurrency top-ups.

How do I know the payment has expired?

Once a payment expires, you receive a statusChanged webhook with the status field showing EXPIRED.

How do I know a payment is a late payment?

You will receive a transactionLate webhook, meaning funds have been received for a payment with the status of expired, complete, or underpaid. The walletCurrency.actual value is the credited amount in your wallet currency.

📘

Payment states

In most cases, the payment's status remains EXPIRED status after funds have been received. If an additional payment is received for a COMPLETE or UNDERPAID payment this is still categorised as 'late' and the payments will remain in those states.

Late payments exception flows

The summary of the flow for three different outcomes is given below:

Configuration

Balance impact

Status

Settle Merchant Wallet

Received amount is credited to your MID wallet in your wallet currency. No further action required.

For more information on a MID wallet, refer to the Create Your First Merchant guide.

EXPIRED

Handle Manually

Received amount received is deposited into the merchant cryptocurrency wallet. This allows you to refund these funds to users if you choose to do so.
You can also convert this cryptocurrency amount into your MID wallet using a spot FX rate on the BVNK portal.

EXPIRED

Auto Refund

Late payment amount is attributed to a new refund payout that will be auto-created for your MID wallet.

EXPIRED
PENDING(refund)

Late payments process flow

Late payments process flow

📘

To change your configuration or learn more, contact your Account or Integration Manager.