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

# Bank Account Events

> Webhooks for a user's bank accounts.

## Events

| Event | Sent when | Additional fields |
| - | - | - |
| `payment_method.bank.added` | A bank account is added, or a manually added one is connected instantly. | `bank`, `status` (`active`) |
| `payment_method.bank.add_failed` | The hosted add-bank page finished without adding a bank account. | `failure_reason`, `failure_message` |
| `payment_method.bank.relink_required` | The user must sign in to their bank again. | `status`, `reason` |
| `payment_method.bank.relinked` | The user reconnected the bank. | `status` (`relinked`) |

`payment_method.bank.added` is sent for banks added with [Add account Instantly](https://developer.finogates.com/api-reference/bank-accounts/add-account-instantly.md) and [Add a Bank Account From an Existing Connection](https://developer.finogates.com/api-reference/bank-accounts/add-account-from-connection.md). A manually added bank that is later connected instantly keeps its `payment_method_id` and is sent again.

After `relink_required`, payments from the bank fail with `bank_relink_required` until the user reconnects using [Get Bank Account Relink Link](https://developer.finogates.com/api-reference/bank-accounts/get-bank-account-relink-link.md). A bank added from an existing connection is reconnected in your app instead.

## Example

```json theme={null}
{
  "id": "6f1d2c8e-4b7a-4e0f-9a51-2c3d4e5f6a7b",
  "type": "payment_method.bank.added",
  "event_type": "payment_method.bank.added",
  "created_at": "2026-10-13T09:15:22.481203+00:00",
  "data": {
    "event_id": "0b9c8d7e-6f5a-4b3c-8d2e-1f0a9b8c7d6e",
    "event_type": "payment_method.bank.added",
    "created_at": "2026-10-13T09:15:22.402115+00:00",
    "platform_id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
    "tenant_id": "c1d2e3f4-a5b6-4c7d-8e9f-0a1b2c3d4e5f",
    "user_id": "b3a9b622-cc63-4d3c-aad6-2d8e29e6f9d4",
    "payment_method_id": "9e8d7c6b-5a4f-4e3d-2c1b-0a9f8e7d6c5b",
    "payment_method_type": "bank",
    "bank": {
      "account_mask": "6789",
      "routing_last4": "0021",
      "account_type": "checking",
      "account_holder_name": "John Doe",
      "bank_name": "JPMorgan Chase Bank"
    },
    "status": "active"
  }
}
```

## Data Fields

**payment\_method\_id** `string`

The bank account's id. `null` on `add_failed`.

**user\_id** `string`

The user the bank account belongs to.

**bank** `object`

Masked details: `account_mask`, `routing_last4`, `account_type`, `account_holder_name`, `bank_name`. Full numbers are never sent.

**failure\_reason** `string`

On `add_failed`, e.g. `bank_already_added`.

**reason** `string`

On `relink_required`, always `bank_relink_required`.

**platform\_id** `string`

Your platform id. `tenant_id` has the same value.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.