> For the complete documentation index, see [llms.txt](https://docs.bunny.com/guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.bunny.com/guide/advanced-guides/integrations/plaid.md).

# Plaid

As a B2B business, it's not uncommon that customers pay invoices via other payment methods than credit cards, especially for larger payments such as annual subscriptions. With the Plaid integration, you can connect Bunny to your bank accounts and have deposits automatically synchronized to Bunny. Bunny will try and automatically match those payments with outstanding invoices and let you approve each match to get manual payment entries created and the invoices marked as paid.&#x20;

{% hint style="info" %}
The Plaid integration currently only supports financial institutions in the United States.&#x20;
{% endhint %}

### Installation

1. In Bunny, click **Settings** in the left side menu, then **Integrations**. Select the **Available Integrations** tab, and click the "Download" button on the Paid integration panel:<br>

   <figure><img src="/files/SBfue5EQa6Oio5y5Jxxk" alt="" width="327"><figcaption></figcaption></figure>

2. This brings up the configuration screen for the Plaid integration: <br>

   <figure><img src="/files/Bhv7jSvlFwKqk5Iy0HJT" alt=""><figcaption></figcaption></figure>

3. In the **Entities** dropdown, select which entity the integration is for. Each entity can have multiple Plaid integrations, but each Plaid integration can only belong to one entity.&#x20;

4. In the **Synchronization start date** date picker, select the date from when the integration should start pulling in deposits. You will likely set this in the past to get payments you have not already manually consolidated.

5. Click the **Enabled** toggle, followed by **Save**. A couple of new actions appear on the page:<br>

   <figure><img src="/files/AMRl3ehv2O2PShRuwAym" alt=""><figcaption></figcaption></figure>

6. Click **Link a bank account** to authorize Bunny with Plaid and your bank.

7. Plaid will ask for a phone number for the Plaid side of the integration. This doesn't have to the phone number of the person associated with the bank account(s). This is optional. You can also click "Continue without a phone number"<br>

   <figure><img src="/files/rRG5J3VYmfpIU1LhTpYM" alt="" width="375"><figcaption></figcaption></figure>

8. Next, select the financial institution where the bank account is:<br>

   <figure><img src="/files/vbGdGYwGJsoHfcCcJ1Sk" alt="" width="375"><figcaption></figcaption></figure>

9. Depending on the financial instituion, the steps wary, but generally you will be asked to log in to your bank, after which you will be guided through a number of steps to approve the integration as well as select which exact accounts Bunny will be reading from.

10. Once back in Bunny, click **Sync now** to start the initial import. Depending on the number of deposits to read, this will typically take less than a minute.

### Payment matching and approval

Once the initial synchronization has completed, Bunny will attempt to automatically match the payments with outstanding invoices using the following steps:

1. Locate the account based on the memo or name of the bank transaction. Bunny will look for similarly named transactions that were already matched with invoices to facilitate this.&#x20;
2. If succesfull, find the oldest unpaid invoice what matches the payment amount.&#x20;
3. If unsuccessful, Bunny will look for invoices where the total is the exact amount received. If only one invoice exists for that amount, it will suggest pairing the payment with that invoice.&#x20;
4. If multiple invoices exist with the exact amount, Bunny will attempt to match the accounts with the memo field using fuzzy name matching, and pick the highest scoring account over a certain threshold score.
5. If still unsuccesful, Bunny will use AI as a final attempt at matching the account names to the payment memo.

{% hint style="info" %}
Bunny will not attempt to automatically match a payment with multiple invoices.&#x20;
{% endhint %}

If a payment is successfully matched to an invoice, the payment state will be set to **Suggested**. If unable to match, the state will be set to **Unmatched**.

<figure><img src="/files/q3oOuHzIkOENLgJWeXJd" alt=""><figcaption></figcaption></figure>

For each of the payments, do the following:

1. Click a payment that is in the **Suggested** state. This will bring up the payment drawer:<br>

   <figure><img src="/files/V312ucxvKKmIfCzZHmdo" alt="" width="375"><figcaption></figcaption></figure>

2. If the suggested invoice is the correct one, click **Approve selected invoices**. This will generate the manual payment and use it to pay the invoice in Bunny.

3. If the suggested invoice is incorrect, click the action menu in the top right corner and select **Reject suggestion**. This will unlink the payment from the suggested invoice.\
   &#x20;

   <figure><img src="/files/sZisK5PnCkMWlnDEdQgH" alt="" width="320"><figcaption></figcaption></figure>

4. When a payment in **Unmatched**, the drawer will show all unpaid invoices from all accounts. Use the search function to search for the correct invoice.<br>

   <figure><img src="/files/E4dloU6ChLBWU85AARh6" alt="" width="375"><figcaption></figcaption></figure>

5. Search for the correct invoice either by **account name** or **invoice number,** click the checkbox next to the invoice and click **Approved selected invoice**.<br>

   <figure><img src="/files/va11jVA4lksUSFOGtolC" alt="" width="375"><figcaption></figcaption></figure>

6. If the payment is for multiple invoices, select the invoices and click **Approve selected invoices**.

7. If a deposit is **not relevant** in Bunny, click **Ignore** in the action menu. This will hide the payment from the default view. Note that you can remove the default filter to see both **Ignored** and **Approved** payments.&#x20;

8. If a payment was approved in error, use **Unapprove** from the action menu to disassociate the payment from the invoice. The invoice will return to either **not due** or **due**, depending on it's original due date.&#x20;

### Synchronization schedule

The synchronization will run daily at 2AM in the timezone configured on the entity.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.bunny.com/guide/advanced-guides/integrations/plaid.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
