> For the complete documentation index, see [llms.txt](https://startbutton.gitbook.io/startbutton-product-api/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://startbutton.gitbook.io/startbutton-product-api/collections/under-and-overpayments.md).

# Under & Overpayments

This solution addresses payment discrepancies in NGN transactions where customers pay more or less than expected via the bank transfer channel.

### What is regarded as an overpayment?

* A payment received that is above the expected/ initiated amount is referred to as an Overpayment.

<figure><img src="https://1557893349-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUqWQm9P8bCQ5XoJYg64l%2Fuploads%2Fgs8ZNxJ45XrQbCxR7e8Z%2FIMG_2331.png?alt=media&amp;token=2b6759ac-184b-4333-832e-24567f18dbaf" alt=""><figcaption></figcaption></figure>

### What is an underpayment?

* A payment received that is below the expected/ initiated amount is referred to as an Underpayment.

<figure><img src="https://1557893349-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FUqWQm9P8bCQ5XoJYg64l%2Fuploads%2FahB7xJpGssg4jacFAv4D%2FIMG_2342.png?alt=media&amp;token=a21de470-dc85-4d5f-a0ba-77a1981c01a1" alt=""><figcaption></figcaption></figure>

### How Does This Work?

* Our system automatically detects discrepancies between the `expected` and `received` amounts during bank transfer transactions.
* Payments that do not match the `expected` amount are tagged as follows:
  * **Underpayment**: For payments below the expected amount.
  * **Excess Payment**: For payments above the expected amount.

Webhook notification is sent to help you address any discrepancies.

**How to Identify an Overpayment or Underpayment:**

* An underpaid transaction appears as a new transaction with a unique reference (tagged as underpayment) and is marked `successful`.
* An excess payment is recorded as a new transaction with a unique reference (tagged as an overpayment) and is marked `successful`.

**How to Handle Overpayments and Underpayments:**

For `excess payment`, you can initiate a part/full refund from the dashboard. For `underpayment`, you can initiate a full of the received fund.

To initiate a Refund you will need to the `original transaction` ref.

* To get their original transaction ref/ order number. Follow the steps below:
  * Click the "…" button
  * ⁠Select “view detail”
  * you will find “summary” & “refunds” tab
  * ⁠Select the “Refunds” tab, and you will see the original transaction ref.

#### **Initiating a Refund**

Refunds can be initiated via the dashboard by clicking the “refund” button or via API. See [Refunds](/startbutton-product-api/payouts/refunds.md#to-initiate-refunds-for-a-transaction).

#### Webhook for Under and Overpayments

You can now identify Under and Overpayment via webhook notifications. This will help you promptly treat the payments as required. For more details, see [Under/Overpayment Webhook Behavior](/startbutton-product-api/webhooks/collection-events/under-overpayment-webhook-behavior.md).
