Verify CLABEs

Verify an account holder's information before sending them a full payout

Account verification confirms a Mexican bank account identified by its standardized Mexican bank account number (CLABE). Fintoc sends a 0.01 MXN micro-deposit from your account balance to the target CLABE. When the verification completes, Fintoc returns the account holder's information.

Create an account verification

An account verification creates a 0.01 MXN Transfer from your root Account to retrieve the target account holder's information. Because this call moves money from your account, you must sign the request with a JSON Web Signature (JWS). See setting up JWS keys.

curl --request POST \
     --url https://api.fintoc.com/v2/account_verifications \
     --header 'Authorization: sk_test_9c8d8CeyBTx1VcJzuDgpm4H' \
     --header 'Fintoc-JWS-Signature: YOUR_JWS_SIGNATURE' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "account_number": "000000000000000000"
}
'
const verification = await fintoc.v2.accountVerifications.create({
  account_number: '000000000000000000',
});
verification = client.v2.account_verifications.create(
    account_number="000000000000000000"
)

When you request an account verification, the API returns an account_verification object in pending status. The holder fields are blank in this initial response; they populate once the verification succeeds. The response looks like this:

{
  "id": "accv_a1b2c3d4e5f6g7h8",
  "object": "account_verification",
  "status": "pending",
  "reason": null,
  "transfer_id": "tr_a1b2c3d4e5f6g7h8",
  "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
}

Monitor verification status

When Fintoc retrieves the transfer and account holder information, it sends an account_verification.succeeded webhook. This event includes the account holder's information in a succeeded account_verification object. The event looks like this:

{
  "id": "evt_a4xK32BanKWYn",
  "type": "account_verification.succeeded",
  "object": "event",
  "mode": "test",
  "created_at": "2020-04-17T00:00:00.000Z",
  "data": {
    "account_verification_id": "accv_a1b2c3d4e5f6g7h8",
    "object": "account_verification",
    "status": "succeeded",
    "reason": null,
    "transfer_id": "tr_a1b2c3d4e5f6g7h8",
    "counterparty": {
      "account_number": "000000000000000000",
      "holder_id": "AAA010101AAA",
      "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, you receive an account_verification.failed webhook with a reason field explaining why the verification failed.

For more on receiving webhooks with Fintoc, see the webhooks guide.