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

# Add logic to Account Numbers

> Reject all transfers directed to any specific Account Number.

You can use a Fintoc Account Number, called a standardized Mexican bank account number (CLABE) in Mexico, in different ways. You can assign an Account Number to a specific user's payments or create a single-use Account Number for a specific payment order. By the end of this guide, you can disable an Account Number and set minimum and maximum amount limits. These controls let Fintoc reject unwanted inbound transfers.

## Disable an Account Number

When you disable an Account Number, Fintoc automatically rejects every inbound transfer directed to that Account Number and returns it to the sender. If an Account Number should no longer receive payments, disable it so you avoid handling stray inbound transfers.

### Example use cases

* Your company assigns one Account Number per user, and a user has completed offboarding from your app. Disable that user's Account Number so payments made for the user are automatically returned and don't waste your operational resources.
* Your company assigns one Account Number per order, and a customer bought a product at your store. Disable that order's Account Number once the customer has paid to avoid receiving a double payment. If the customer misses the payment confirmation notice and pays twice, Fintoc returns the money automatically.

### Disable an Account Number with the API

```curl theme={null}
curl --request PATCH \
     --url https://api.fintoc.com/v2/account_numbers/acno_test_a1b2c3d4e5f6 \
     --header 'Authorization: sk_test_jKaHdEa3mfmP0D105H' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "status": "disabled"
}
'
```

```node theme={null}
const accountNumber = await fintoc.v2.accountNumbers.update(
  "acno_test_a1b2c3d4e5f6",
  { status: "disabled" }
);
```

```python theme={null}
account_number = client.v2.account_numbers.update(
  "acno_test_a1b2c3d4e5f6",
  status="disabled"
)
```

The API returns the updated Account Number with its `status` set to `disabled`:

```json theme={null}
{
  "id": "acno_test_a1b2c3d4e5f6",
  "object": "account_number",
  "account_id": "acc_test_b2c3d4e5f6g7",
  "created_at": "2026-06-22T12:00:00.000Z",
  "deleted_at": null,
  "description": "My payins",
  "is_root": false,
  "last_transfer_at": null,
  "metadata": {},
  "mode": "test",
  "number": "000000000000000000",
  "options": null,
  "status": "disabled",
  "updated_at": "2026-06-22T12:00:00.000Z"
}
```

## Set inbound transfer amount limits

You can restrict which inbound transfers an Account Number accepts. If a transfer does not meet the criteria you set, Fintoc rejects it. Rejected transfers do not appear on your account statements and do not incur fees. Set `min_amount` and `max_amount` in the smallest currency unit. For example, `30000` is 300.00 MXN. Fintoc supports three kinds of amount limits:

| Limit          | Description                                                                                                               |
| :------------- | :------------------------------------------------------------------------------------------------------------------------ |
| Minimum amount | Set `min_amount` to reject any transfer with an amount lower than this value.                                             |
| Maximum amount | Set `max_amount` to reject any transfer with an amount higher than this value.                                            |
| Exact amount   | Set both `min_amount` and `max_amount` to the same value to reject any transfer that does not match that specific amount. |

### Set limits with the API

```curl theme={null}
curl --request POST \
     --url https://api.fintoc.com/v2/account_numbers \
     --header 'Authorization: sk_test_jKaHdEa3mfmP0D105H' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "account_id": "acc_test_b2c3d4e5f6g7",
  "options": {
    "min_amount": 30000,
    "max_amount": 40000
  }
}
'
```

```node theme={null}
const accountNumber = await fintoc.v2.accountNumbers.create({
  account_id: "acc_test_b2c3d4e5f6g7",
  options: {
    min_amount: 30000,
    max_amount: 40000,
  },
});
```

```python theme={null}
account_number = client.v2.account_numbers.create(
  account_id="acc_test_b2c3d4e5f6g7",
  options={
    "min_amount": 30000,
    "max_amount": 40000,
  },
)
```

The API returns the new Account Number with the amount limits under `options`:

```json theme={null}
{
  "id": "acno_test_a1b2c3d4e5f6",
  "object": "account_number",
  "account_id": "acc_test_b2c3d4e5f6g7",
  "created_at": "2026-06-22T12:00:00.000Z",
  "deleted_at": null,
  "description": "My payins",
  "is_root": false,
  "last_transfer_at": null,
  "metadata": {},
  "mode": "test",
  "number": "000000000000000000",
  "options": {
    "max_amount": 40000,
    "min_amount": 30000
  },
  "status": "enabled",
  "updated_at": "2026-06-22T12:00:00.000Z"
}
```

## Test the integration

Confirm the disable and amount-limit behavior in `test` mode before going live. Use a `test` secret API key (`sk_test_...`) and the test Account Number you created above.

To test a disabled Account Number, disable it with the request above, then simulate an inbound transfer to its `number`. Fintoc rejects the transfer and returns it to the sender. The transfer does not appear on your account statement and incurs no fee.

To test amount limits, create an Account Number with `min_amount` set to `30000` and `max_amount` set to `40000`, then simulate two inbound transfers:

* A transfer of `35000` (350.00 MXN) falls within the limits, so Fintoc accepts it.
* A transfer of `20000` (200.00 MXN) falls below `min_amount`, so Fintoc rejects it and returns it to the sender.

You can simulate inbound transfers in `test` mode from the [Simulate receiving a transfer](/reference/transfers-api/simulation/transfers-simulate-receive) endpoint.
