> ## 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.

# Payins on dedicated Account Numbers

## What you'll build

Each customer (or each order) gets its own Account Number, which is a standardized Mexican bank account number (CLABE) in Mexico. When money lands at that Account Number, Fintoc sends you a webhook carrying the `metadata` you attached when you created the Account Number. The webhook tells you which customer paid, without parsing bank statements or matching amounts.

## When to use it

Use dedicated Account Numbers for these flows:

* Lending installments, insurance premiums, SaaS subscriptions.
* Any flow with identifiable customers who pay you repeatedly.
* Marketplaces where each buyer needs a stable place to deposit.

## How it works

```
1. Your backend creates an Account Number with metadata.customer_id.
2. Fintoc returns an Account Number.
3. Your customer sends a Transfer to that Account Number.
4. Fintoc fires transfer.inbound.succeeded with your metadata attached.
5. Your backend marks the invoice paid.
```

```mermaid theme={null}
sequenceDiagram
    autonumber
    participant You as Your backend
    participant Fintoc
    participant Customer

    You->>Fintoc: Create Account Number (with metadata.customer_id)
    Fintoc-->>You: Account Number 738969…
    You-->>Customer: Show this Account Number on the invoice
    Customer->>Fintoc: SPEI/TEF to that Account Number
    Fintoc->>You: transfer.inbound.succeeded (includes your metadata)
    You->>You: Mark invoice paid
```

## One CLABE per customer, or one per order?

Both patterns work; the right choice depends on how you reconcile payments:

|                | One per customer               | One per order             |
| -------------- | ------------------------------ | ------------------------- |
| CLABEs needed  | `# of customers`               | `# of open orders`        |
| Reconciliation | Match by customer, then amount | One-to-one match          |
| Cleanup        | Delete when customer offboards | Delete when order is paid |

Fintoc supports both patterns. One per order gives the strongest reconciliation. Disable or delete the CLABE as soon as the order is paid to prevent double payments.

## Implementation checklist

1. **Create the Account Number** with metadata. See [Receive transfers → Create an Account Number](/docs/transfers/inbound-transfers).
2. **Handle the webhook.** Subscribe to `transfer.inbound.succeeded`; read `data.account_number.metadata`. Payload reference: [Receive transfers → Webhook payload](/docs/transfers/inbound-transfers).
3. **Harden with business rules.** Set `options.min_amount` / `max_amount` to auto-reject wrong amounts, and disable the CLABE after payment. See [Add logic to Account Numbers](/docs/transfers/inbound-transfers/add-logic-to-clabes).
4. **Clean up unused Account Numbers** as customers offboard or orders close. See [Manage your Account Numbers](/docs/transfers/inbound-transfers/manage-your-clabes). You can have up to 1,000,000 Account Numbers. If you've created Account Numbers you no longer use, disable or delete them. Stale Account Numbers keep accepting transfers, which can pollute your reconciliation and statements.
