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

# Update Tier 1 bank account

> Add or replace bank details for a Tier 1 verified customer

## Overview

Add or replace the bank account attached to a customer's completed Tier 1 KYC. Use this when the customer finished Tier 1 without bank details, when their previous bank details need to be corrected, or when an older verification needs the customer's phone number added.

This endpoint does not repeat BVN or selfie verification, and it does not create a funding account. It starts a new asynchronous Paystack bank account verification for the submitted details, even when the customer does not yet have a permanent NGN funding account. If Paystack is temporarily unavailable, Daya keeps the verification pending and starts it automatically after the provider recovers.

## Authentication

<ParamField header="X-Api-Key" type="string" required>
  Your merchant API key
</ParamField>

## Path Parameters

<ParamField path="id" type="string" required>
  Customer ID (UUID)
</ParamField>

## Request Body

<ParamField body="phone_number" type="string" required>
  Customer's phone number. Send the 11-digit national form or the `+234` international form.

  **Example:** `+2348012345678`
</ParamField>

<ParamField body="bank_account" type="object" required>
  NGN bank account belonging to the customer. This is not the funding account the customer will receive.

  <Expandable title="bank_account properties">
    <ParamField body="account_number" type="string" required>
      The customer's 10-digit NGN bank account number.
    </ParamField>

    <ParamField body="bank_code" type="string" required>
      The bank code returned by [`GET /v1/banks`](/api-reference/banks/list-banks).
    </ParamField>
  </Expandable>
</ParamField>

Before submitting `bank_account`, get the supported `bank_code` from [`GET /v1/banks`](/api-reference/banks/list-banks) and verify the account with [`POST /v1/banks/resolve`](/api-reference/banks/resolve-bank-account). Then send the verified `account_number` and `bank_code` together.

## Request Example

```bash theme={"dark"}
curl --request PATCH \
  --url https://api.daya.co/v1/customers/650e8400-e29b-41d4-a716-446655440000/tier1-verification \
  --header 'X-Api-Key: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "phone_number": "+2348012345678",
    "bank_account": {
      "account_number": "0123456789",
      "bank_code": "058"
    }
  }'
```

## Response

Returns the customer with `paystack_funding_account_readiness.status` set to `READY` when the bank details are accepted locally. This does not mean Paystack has completed verification.

```json 200 OK theme={"dark"}
{
  "id": "650e8400-e29b-41d4-a716-446655440000",
  "tier_1_kyc_complete": true,
  "paystack_funding_account_readiness": {
    "status": "READY",
    "bank_code": "058",
    "account_number_last4": "6789",
    "missing_fields": [],
    "updated_at": "2026-01-06T12:00:00Z"
  }
}
```

The response shows only the last four digits of the account number, not the full account number.

## Verification Result

Subscribe to:

* `customer.bank_account_verification.succeeded`
* `customer.bank_account_verification.failed`

Each result includes an `identity_version`. A later bank detail update increments the version, so ignore a result for an older version after you have received a newer result. Failed results include `failure_code` and `failure_message` that you can use to explain what the customer should correct.

If verification succeeds and the customer already has a permanent NGN funding account, Daya starts creating its Paystack instruction. Daya sends `funding_account.active` when Paystack makes a pending account usable, or `funding_account.updated` when another instruction was already active. If the customer does not have a permanent account, Daya retains the successful verification until you create one.

See [Bank Account Verification Events](/api-reference/webhooks/events#bank-account-verification-events) for the payload fields and examples.

## Next Steps

<CardGroup cols={2}>
  <Card title="Webhook Events" icon="bell" href="/api-reference/webhooks/events#bank-account-verification-events">
    Handle the asynchronous verification result
  </Card>

  <Card title="Create Funding Account" icon="arrow-up-right-dots" href="/api-reference/funding-accounts/create-funding-account">
    Create a permanent NGN funding account when the customer needs one
  </Card>
</CardGroup>
