> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cryptoprocessing.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Configure underpayment handling

export function Available({to, except}) {
  const roles = <Tooltip tip="Roles determine what each user can see and do in the portal." cta="See role descriptions" href="/merchant-administration/add-a-user#determine-which-role-to-use">roles</Tooltip>;
  if (to) {
    return <><strong>Available to {roles}:</strong> {to.map(role => <>{" "}<Badge color="blue">{role}</Badge></>)}</>;
  } else {
    return <><strong>Available to all {roles} except</strong> {except.map(role => <>{" "}<Badge color="blue">{role}</Badge></>)}</>;
  }
}

<Available to={["Owner"]} />

Customers may sometimes send slightly less than requested — for example, because they entered the amount incorrectly or didn't account for a fee deducted by their wallet or exchange.

If receiving the exact requested amount is not critical for your business, you can accept such payments within a certain tolerance instead of automatically refunding them. This can help reduce the number of failed payments.

The amount requested and the amount actually paid are both reported in the [API callback](/api-reference/callbacks/payment-request-callbacks).

## Configure underpayment handling rules

<Steps>
  <Step>
    Go to **Settings → Payment requests**.
  </Step>

  <Step>
    On the **Payment handling rules** tab, click **Manage**.
  </Step>

  <Step>
    Choose how underpayments should be handled:

    * **Reject & refund automatically** — any payment below the requested amount is considered unsuccessful, regardless of the underpaid amount. The received funds are automatically [refunded](/payment-requests/refunds).

    * **Accept underpayments** — payments are accepted if the difference is within your configured tolerance. The amount actually received is added to your balance.

      The tolerance can be set as a percentage of the requested amount or as a EUR equivalent (calculated when the payment request times out). If both conditions are set, the stricter one applies.

    <Tip>
      **Start with a small tolerance**

      If you’re enabling underpayments for the first time, consider starting with 0.1% or 0.2% and adjusting the threshold based on your payment data and business needs.
    </Tip>
  </Step>

  <Step>
    Enter your 2FA code and click **Save changes**.

    The updated settings take effect immediately and also apply to the payment requests that are already in progress.
  </Step>
</Steps>

## Calculation examples

For a 1000 EUR payment request:

* With a **2% tolerance**, the customer must pay **980 EUR or more**.
* With a **10 EUR tolerance**, the customer must pay **990 EUR or more**.
* With a **2%/10 EUR tolerance**, the stricter condition applies, so the customer must pay **990 EUR or more**.
