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

# Verify CLABEs

> Verify a CLABE and its account holder on Fintoc's legacy v2023-11-15 Transfers API before sending a full payout, to avoid rejections and misdirected funds.

Account verification lets you verify a standardized Mexican bank account number (CLABE) before sending a payout. Fintoc sends a 0.01 MXN microdeposit from your account balance and retrieves the account holder's information from the transaction receipt.

# Create an account verification

Creating an account verification sends a 0.01 MXN transfer from your root `Account` to retrieve the target account holder's information. Because this request moves money from your account, you must include a [JSON Web Signature (JWS)](/v2023-11-15/guides/transfers/setting-up-jws-keys).

```bash theme={null}
curl --request POST \
     --url https://api.fintoc.com/v2/account_verifications \
     --header 'Authorization: sk_test_9c8d8CeyBTx1VcJzuDgpm4H' \
     --header 'Fintoc-JWS-Signature: CNMaYaDGU3ZhFV1ve6p3sAdYXhEklej8DVIAMqIWCkpNmT6Jp7iigcndXwH5q3WQFHiswgIQU5-_-4rV3jKGptCROmEyWPW8_elhYH1apzAyjOjyZ55ygv37xKHzIFhixzAwmXlAv4pfD4lVelYWVNOSN7REA0QJeCy2vKdqZ5cjqCXQ1lkQUlzOE7dpuNoAkhAhAJJ8HaamFKy7Gl7uwmqbIr-dVYv21d_9O7mO26n0gy3zWXD2nJDxU5Mzl2pZd8-sFvUr9Kmp_YkeRMh4bSe0fr1Uc_YgkjpmYUyu7kaxRWTbAdJ3GwqWFMUDiyfhHdzvZPZyU4VkWreimoydMA' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "account_number": "000000000000000000"
}
'
```

The API returns an `account_verification` object with a `pending` status when the verification process starts. The initial response sets the account holder information to `null`:

```json theme={null}
{
  "id": "accv_fdsjklsdjkls",
  "object": "account_verification",
  "status": "pending",
  "reason": null,
  "transfer_id": "tr_fdskjldasjkl",
  "counterparty": {
    "account_number": "000000000000000000",
    "holder_id": null, 
    "holder_name": null,
    "account_type": "clabe",
    "institution": {
      "id": "mx_banco_bbva",
      "name": "BBVA Mexico",
      "country": "mx" 
    }
  },
  "mode": "test",
  "receipt_url": null,
  "transaction_date": null
}
```

## Use the SDKs

The following examples verify an account using the Python and Node SDKs:

```python theme={null}
verification = client.v2.account_verifications.create(
	account_number = "000000000000000000"
)
```

```javascript Node theme={null}
const verification = await fintoc.v2.accountVerifications.create({
  account_number: '000000000000000000',
});
```

# Monitor verification status

Fintoc sends an `account_verification.succeeded` webhook after retrieving the transfer and account holder information. The event includes the account holder information in an `account_verification` object with a `succeeded` status:

```json theme={null}
{
  "id": "evt_a4xK32BanKWYn",
  "type": "account_verification.succeeded",
  "object": "event",
  "mode": "test",
  "created_at": "2020-04-17T00:00:00.000Z",
  "data": {
    "account_verification_id": "accv_fdsjklsdjkls",
    "object": "account_verification",
    "status": "succeeded",
    "reason": null,
    "transfer_id": "tr_fdskjldasjkl",
    "counterparty": {
      "account_number": "000000000000000000",
      "holder_id": "AAAA010101AAA", 
      "holder_name": "Test Customer 1",
      "account_type": "clabe",
      "institution": {
        "id": "mx_banco_bbva",
        "name": "BBVA Mexico",
        "country": "mx" 
      }
    },
    "mode": "test",
    "receipt_url": "https://www.banxico.org.mx/cep/",
    "transaction_date": "2020-04-17T00:00:00.000Z"
  }
}
```

If Fintoc cannot retrieve the information, Fintoc sends an `account_verification.failed` webhook. The `reason` field explains why the verification failed.

For more information about receiving webhooks, see the [webhooks guide](/v2023-11-15/guides/resources/webhooks-walkthrough).
