There are a few factors, unique to crypto payments, that can cause payment errors. Those factors are:
- Customers send payment from their wallet, they can enter the wrong amount.
- Once a crypto payment is sent, it cannot be reversed, refunded or taken back by the customer.
- ForumPay can only guarantee their exchange rate for 15 minutes, however a customer can send crypto after that (paying for a cancelled transaction).
As a result three types of payment errors can occur:
- Underpayment - the customer sent less crypto than they were asked to send.
- Overpayment - the customer sent more crypto than they were asked to send.
- Late Payment - the customer sent the crypto, but after the payment timed out (15 minutes).
Each of these scenarios is handled differently by ForumPay's system. Let's take a look at each one.
By default, ForumPay will not confirm an underpayment. Since less money was sent than was expected, we wait for our merchant to tell us if they want to accept the lower amount, or refund it back to the customer. Either of these options can be executed either manually via the Merchant Dashboard or automated via our API.
For API users, there is an additional feature to allow merchants to override the default behavior and automatically accept an underpayment (with our without a minimum).
The API also allows merchants to include the customer's email address when starting a payment. If an email address is provided, the customer will receive an email after an underpayment and have the option to complete the refund process themselves.
Overpayments on the other hand are confirmed by ForumPay for the amount invoiced. Any overpayment must be refunded back to the customer via the Merchant Dashboard or API.
Much like underpayments, API users also have the ability to tell ForumPay to accept any overpayment. This will cause the system to accept the full amount, including the overage, and settle that amount to the merchant.
Finally, there can be late payments. By default a late payment will not be confirmed. Due to fluctuations in exchange rates, the payment is no longer worth the fiat value it was originally initiated for. Therefore, the merchant must let us know if they want to accept the new value or send the crypto back to their customer. Either of these options can be executed either manually via the Merchant Dashboard or automated via our API.