When you generate a checkout for a product or service with OpenNode, your customer may accidentally not enter enough Bitcoin to complete the checkout, resulting in an underpayment.

This often occurs when the payer forgets to include bitcoin network fees for an on-chain Bitcoin transaction. It also can take place when a user pays from a cryptocurrency exchange.

As a result of an underpayment, the payer will receive an email prompting them to either complete the payment or ask for a refund.

Best practices for how to avoid underpayments

Set up an underpaid threshold

OpenNode offers an underpaid threshold feature that allows you to set a limit on what you are willing or not willing to accept for an underpaid checkout.

👉 Learn more about our underpaid threshold feature here.

Encourage payers to use a proper Bitcoin/Lightning mobile wallet rather than paying from an exchange

It is best practice to instruct payers to use a Bitcoin/Lightning wallet application to complete payments by either scanning the QR code or copying/pasting the BTC address. Mobile wallets are purpose-built to manage network fee payments. Exchanges are not designed for payers to complete payments with. Please find some wallet recommendations here:

Blue wallet - A custodial wallet with On-chain and Lightning payment capability. Users also have the ability to purchase bitcoin directly on the wallet through P2P exchange HodlHodl. (Google Play/App Store)

Wallet Of Satoshi - A custodial wallet that supports Lightning payments. (Available Google Play/App Store)

Breez Wallet - An open-source non-custodial wallet with easy Lightning network channel set-up. (Google Play/App Store)


Suggest exchange users calculate their on-chain fees before completing the payment.

The reason exchange-using-payers have higher rates of failure is that the payer does not cover the network fee required to complete the payment. It is easy to calculate the fee using a block explorer like mempool.space. Adding just a few more BTC (0.0002 BTC) to the payment makes it significantly less likely to become underpaid.

Collect emails in the checkout flow to process underpayment returns and/or top-ups

Collection of customer emails as part of your checkout will allow OpenNode to contact payers about underpayments directly and offer the option to top up or request a refund.

Note: any top-ups must currently be completed within the initial 10-minute window during which the rate was locked.

How to resolve underpayments

You can find all pending underpayments in the underpayments control panel. You'll know that a payer has underpaid when you see this button in the top of your navigation bar:

Image of Underpayment notification on the OpenNode platform

Alternatively, you can navigate to https://app.opennode.com/underpayments. You will also receive an email each time that a payment is underpaid.

Once you reach the underpayments control panel, follow the following steps to resolve an underpayment:

  1. In the activity list, click the item in the activity list that you want to resolve.

  2. Clicking opens a modal like the one below. Inside the modal, you can decide how you want to resolve the underpayment.

  3. Choose if you'd like to Accept the underpayment or email the payer.

The Accept option means that you accept the underpaid amount as sufficient to complete the checkout. Refer to the partial payment received field in the modal to see how much the checkout was paid.

The email payer option will send the payer an email that prompts them to either:

  1. Request a refund of the underpaid amount.

  2. Top up the payment.

Of Note:

  • If a checkout from any of our E-commerce integrations is underpaid, an email will be automatically sent to the customer.

  • Sharing the checkout URL also allows the payer to request a refund or top up the payment.

👉 Learn more about underpayments for payers

Have Questions? Let us know!

In the case of any payment discrepancies, OpenNode will respond to merchant inquiries on a case-by-case basis. You can reach us at support@opennode.com or use the chatbot at the bottom right of any OpenNode page, 24/7.

Did this answer your question?