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

# Test transfers

> Simulate inbound and outbound transfers on Fintoc's test environment to validate your integration end to end before switching to live API keys.

To confirm that your integration works correctly, simulate transfers without moving any money using test amounts and counterparty account numbers in `test` mode.

Use test API keys for every API call in `test` mode.

## Simulate an inbound transfer

Fintoc lets you simulate an inbound transfer through the API or the dashboard. You can only use account numbers created in `test` mode. To create an account number, see [Create an account number](/guides/business-accounts/inbound-transfers#step-1-create-an-account-number-clabe).

Simulate an inbound transfer with the API or an SDK. The following example simulates a transfer of \$1,020.00 MXN. Replace `YOUR_ACCOUNT_NUMBER_ID` with an account number created in `test` mode:

<CodeGroup>
  ```bash curl theme={null}
  curl --request POST \
    --url 'https://api.fintoc.com/v2/simulate/receive_transfer' \
    --header 'Authorization: YOUR_TEST_SECRET_KEY' \
    -d account_number_id=YOUR_ACCOUNT_NUMBER_ID \
    -d amount=102000 \
    -d currency='MXN'
  ```

  ```javascript Node theme={null}
  const simTransfer = await fintoc.v2.simulate.receiveTransfer({
      account_number_id: 'YOUR_ACCOUNT_NUMBER_ID',
      amount: 102000,
      currency: 'MXN'
  });
  ```

  ```python Python theme={null}
  transfer = client.v2.simulate.receive_transfer(
      amount=102000,
      currency="MXN",
      account_number_id="YOUR_ACCOUNT_NUMBER_ID",
  )
  ```

  ```json Response theme={null}
  {
    "id": "tr_2vF18OHZdXXxPJTLJ5qghpo1pdU",
    "object": "transfer",
    "account_number": {
      "id": "acno_2vF18OHZdXXxPJTLJ5qghpo1pdU",
      "object": "account_number",
      "account_id": "acc_000000000000000000",
      "created_at": "2026-06-23T12:00:00.000Z",
      "description": "Payins",
      "metadata": {},
      "mode": "test",
      "number": "000000000000000000"
    },
    "amount": 102000,
    "comment": "Test inbound transfer",
    "counterparty": {
      "account_number": "000000000000000001",
      "account_type": "clabe",
      "holder_id": "AAA010101AAA",
      "holder_name": "Test Customer 1",
      "institution": {
        "id": "mx_banco_bbva",
        "country": "mx",
        "name": "BBVA Mexico"
      }
    },
    "currency": "MXN",
    "direction": "inbound",
    "metadata": {},
    "mode": "test",
    "post_date": "2026-06-23T00:00:00.000Z",
    "receipt_url": "https://www.banxico.org.mx/cep/example",
    "reference_id": "000000",
    "return_reason": null,
    "status": "succeeded",
    "tracking_key": "TEST0000000000000001",
    "transaction_date": "2026-06-23T12:00:00.000Z"
  }
  ```
</CodeGroup>

<br />

<Info>
  **Simulate endpoint**

  The `/simulate/*` endpoints simulate production behavior and are available only in `test` mode.
</Info>

### Test returning an inbound transfer

The simulated inbound transfer's `amount` determines the return outcome in `test` mode:

| Return outcome                 | Inbound transfer `amount` (smallest currency unit) |
| :----------------------------- | :------------------------------------------------- |
| Transfer returned successfully | Any value except `9999`                            |
| Failed return                  | `9999` (99.99 MXN)                                 |

## Test outbound transfers

Fintoc provides counterparty test values for Mexico and Chile to simulate transfer outcomes. When you create a test outbound transfer, you receive the same webhooks you receive in `live` mode.

### Mexico 🇲🇽

To simulate different outbound transfer outcomes, use one of the following counterparties:

| Scenario                                                                                                                          | Counterparty test values                                                                                                                                                                     |
| --------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Regular `Transfer` flow. If you have enough funds, the transfer succeeds. Otherwise, the API returns an insufficient funds error. | `account_number`: Any account number at a non-Fintoc institution.<br />You can use these standardized Mexican bank account numbers (CLABEs):<br />012969100000000110<br />646969100000000214 |
| External errors cause the `Transfer` to fail.                                                                                     | `account_number`: 012969100000000013                                                                                                                                                         |
| The recipient institution returns the `Transfer`.                                                                                 | `account_number`: 012969100000000026                                                                                                                                                         |

<br />

### Chile 🇨🇱

Use one of the following counterparties to simulate transfers in Chile:

| Scenario                                                                                                                          | Counterparty test values                                                                                                                                                           |
| --------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Regular `Transfer` flow. If you have enough funds, the transfer succeeds. Otherwise, the API returns an insufficient funds error. | `holder_id`: Any valid Chilean tax ID (RUT)<br />`holder_name`: Any name<br />`account_number`: Any account number<br />`type`: Any type<br />`institution_id`: Any institution ID |
| Insufficient funds cause the `Transfer` to fail.                                                                                  | `holder_id`: 41579263-8<br />`holder_name`: Any name<br />`account_number`: Any account number<br />`type`: Any type<br />`institution_id`: Any institution ID                     |
| The Centro de Compensación Automatizado returns the `Transfer`.                                                                   | `holder_id`: 40427672-7<br />`holder_name`: Any name<br />`account_number`: Any account number<br />`type`: Any type<br />`institution_id`: Any institution ID                     |
