Verify a CLABE before payout

🇲🇽

Mexico only.

What you'll build

Before paying a real amount, Fintoc sends a 0.01 MXN micro-deposit to the target standardized Mexican bank account number (CLABE). The receipt returns the holder's real name and Mexican tax ID (RFC), so you can compare those values against what your user typed. This check helps you catch typos and compare the destination holder against your compliance rules.

When to use it

Use this verification in these flows:

  • Withdrawals to a user-entered CLABE.
  • Peer-to-peer transfers to a user-entered CLABE.
  • Vendor onboarding and marketplace seller setup.
  • Any payout where a misdirected transfer is hard to reverse, such as a vendor settlement or a one-time withdrawal.

How it works

The verification runs in five steps:

sequenceDiagram
    autonumber
    participant You as Your backend
    participant Fintoc
    participant Dest as Destination bank

    You->>Fintoc: POST /v2/account_verifications (JWS)
    Fintoc->>Dest: 0.01 MXN micro-deposit
    Dest-->>Fintoc: Receipt with holder info
    Fintoc->>You: account_verification.succeeded (holder_id, holder_name)
    You->>You: Compare against what your user typed

Implementation checklist

  1. Create the verification. API details and payload: Verify CLABEs.
  2. Compare holder fields. Use fuzzy matching on holder_name (real-world name variants exist). Use holder_id (RFC) as a stricter signal.
  3. Cache the result. Holder info is stable per CLABE. Many teams verify once at onboarding and skip on subsequent payouts to the same account.

Test the integration

In test mode, run a verification against a published test CLABE and confirm the holder fields come back on the webhook:

  • Use your test secret key (sk_test_...) and a test CLABE such as 000000000000000000.
  • Expect an account_verification object in pending status on the initial response, with holder_name and holder_id still null.
  • Expect an account_verification.succeeded webhook whose counterparty carries the populated holder_name and holder_id. See Verify CLABEs for the full payload and Test your integration for the available test CLABEs.