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

# Quickstart

> En unos diez minutos enviarás tu primera transferencia de prueba.

## Paso 1 — Obtén tus API keys de prueba

En el [Dashboard](https://dashboard.fintoc.com/), ve a **Developers → API Keys**. Verás dos pares de llaves: test (`sk_test_...`) y live (`sk_live_...`). Copia la **Secret Key** de prueba.

## Paso 2 — Registra las llaves JWS

Los endpoints que mueven dinero (crear transferencia, devolver transferencia, verificar CLABE) requieren que cada solicitud esté firmada. Sigue [Genera llaves JWS](/es/docs/transfers/transfers-setup/setting-up-jws-keys) para crear un par de llaves y subir la llave pública. Regresa aquí cuando termines.

## Paso 3 — Lista tus cuentas

Cada organización comienza con una cuenta raíz. Vamos a obtenerla.

```Text cURL theme={null}
curl --request GET \
     --url https://api.fintoc.com/v2/accounts \
     --header 'Authorization: sk_test_9c8d8CeyBTx1VcJzuDgpm4H' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
```

La respuesta debería verse así:

```coffeescript JSON theme={null}
[
  {
    "id": "acc_23JlasHas241",
    "object": "account",
    "mode": "test",
    "description": "My root account",
    "root_account_number": "738969123456789120",
    "root_account_number_id": "acno_Kasf91034gj1AD",
    "available_balance": 0,
    "currency": "MXN",
    "entity": {
          "id": "ent_4324qwkalsds",
          "holder_name": "ACME Inc.",
          "holder_id": "ND"
      }
	}
]
```

### Usando nuestro SDK

Si estás usando Python o Node, puedes instalar nuestro [SDK de Python](https://github.com/fintoc-com/fintoc-python) o [SDK de Node](https://github.com/fintoc-com/fintoc-node) para que sea más fácil interactuar con nuestra API. El SDK [genera automáticamente la firma JWS](/es/docs/transfers/transfers-setup/setting-up-jws-keys), maneja la paginación y ofrece muchas otras funciones útiles.

Primero instala nuestro SDK:

```shell Install Python SDK theme={null}
pip install fintoc
```

```shell Install Node SDK theme={null}
npm install fintoc
```

Ahora lista tus cuentas:

```python theme={null}
from fintoc import Fintoc

# You can provide a path to your PEM file or pass the PEM key directly as a string.
# jws_private_key = os.environ.get('JWS_PRIVATE_KEY')
jws_private_key = "./private_key.pem"

client = Fintoc("your_api_key", jws_private_key=jws_private_key)

for account in client.v2.accounts.list():
  print(account.id, account.description, account.root_account_number, account.available_balance)

```

```node Node theme={null}
const { Fintoc } = require('fintoc');

// You can provide a path to your PEM file or pass the PEM key directly as a string.
// const privateKey = process.env.JWS_PRIVATE_KEY;
const privateKey = './private_key.pem';

const fintoc = new Fintoc('your_api_key', privateKey);

const accounts = await fintoc.v2.accounts.list();
for await (const account of accounts) {
  console.log(account.id, account.description, account.root_account_number);
}
```

Guarda el `id` (`acc_...`) y el `root_account_number` de la respuesta: los usarás a continuación.

## Paso 4 — Fondea tu cuenta de prueba

Tu cuenta de prueba comienza vacía. Simula una transferencia entrante para tener dinero que enviar:

```bash theme={null}
curl --request POST \
     --url https://api.fintoc.com/v2/simulate/receive_transfer \
     --header 'Authorization: sk_test_9c8d8CeyBT1ajVcJzuDgpm4H' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "account_number_id": "acno_Kasf91034gj1AD",
  "amount": 59013,
  "currency": "MXN"
}
'
```

<Warning>
  **Las monedas se representan como enteros**

  La API de Fintoc representa las monedas en su unidad mínima posible sin decimales (como entero). Eso significa que un **monto de MXN \$590.13 se representa en Fintoc como 59013.**

  Si estás realizando una transferencia en pesos chilenos, como no hay decimales, si quieres transferir \$59013 simplemente representas ese monto como `59013`.

  Puedes [leer más sobre monedas aquí.](/es/docs/home/currencies).
</Warning>

Más recetas de simulación (fallos, devoluciones, payouts rechazados) están en [Prueba tu integración](/es/docs/transfers/transfers-setup/test-your-integration).

## Paso 5 — Envía tu primera transferencia

```curl theme={null}
curl --request POST \
     --url https://api.fintoc.com/v2/transfers \
     --header 'Authorization: YOUR_API_KEY' \
     --header 'Fintoc-JWS-Signature: YOUR_JWS_SIGNATURE' \
     --header 'accept: application/json' \
     --header 'content-type: application/json' \
     --data '
{
  "amount": 59013,
  "currency": "mxn",
  "account_id": "acc_M8sKf230BgHjD4",
  "comment": "Pago de credito 10451",
  "reference_id": "150195",
  "counterparty": {
    "account_number": "012969123456789120"
  },
}
```

## Paso 6 — Crea un endpoint de webhook

La mayoría de los flujos del mundo real están impulsados por webhooks. Ve a **Developers → Webhooks** en el Dashboard, agrega tu URL y suscríbete a `transfer.inbound.succeeded` y `transfer.outbound.succeeded`.
