# Pago LatAm

Pagar en moneda local en otros países de América Latina.

El riel `latam` paga por transferencia local en la moneda de cada país. Los datos de la cuenta cambian por país, y el pago se confirma cuando el banco de destino lo acredita.

## Requisitos

| Requisito | Valor |
|---|---|
| `rail` | `latam` |
| País | Ver [Requisitos por país](#requisitos-por-país) |
| Moneda del pago | La del país |
| Datos de la cuenta | Cuenta local, según el país |
| Disponible si | `latam` aparece en `rails` de [`GET /v1/limits`](/docs/operaciones/consultar-limites/), y tu empresa tiene el riel activo. Si no, `403 rail_not_enabled` o `403 not_enabled` |
| Cuenta de prueba | No se simula: responde `403 rail_not_enabled` |

## Requisitos por país

| País | `country` | `currency` | `account_number` | `entity` | `account_type` | `document_type` |
|---|---|---|---|---|---|---|
| Argentina | `AR` | `ARS` | CBU o CVU, 22 dígitos | No | No | `DNI`, `CUIL`, `CUIT` |
| Bolivia | `BO` | `BOB` | De 5 a 20 dígitos | Obligatorio | Opcional | `CED_CIU`, `NIT` |
| Chile | `CL` | `CLP` | De 5 a 20 dígitos | Obligatorio | Opcional | `RUT`, `PP` |
| Perú | `PE` | `PEN` | CCI, 20 dígitos | No | Obligatorio | `DNI`, `RUC`, `CED_EXT` |

La tabla orienta. [`GET /v1/latam/countries`](/docs/operaciones/listar-paises-latam/) manda: sólo trae los países de tu empresa, con la configuración vigente, y `available` dice si alguno está restringido por ahora.

- [`GET /v1/latam/countries`](/docs/operaciones/listar-paises-latam/) dice qué pide cada país: moneda, documentos, largo del número, `entity_required` y `account_type_required`.
- `entity` es el código del banco, en los países que no lo deducen del número de cuenta. Los valores salen de [`GET /v1/latam/countries/{country}/entities`](/docs/operaciones/listar-bancos-latam/): envía su `code` tal cual.
- `account_type` es `checking` o `savings`. Perú lo exige: sin él, el alta se rechaza.
- `document_type` y `document` identifican al titular. Si los envías, usa un tipo de la tabla: otro valor lo rechaza el banco o el riel.
- `country` lleva 2 letras y `currency` 3. La moneda debe ser la del país.

## Registra el beneficiario

| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `account_number` | texto | Sí | Número de cuenta. [`GET /v1/latam/countries`](/docs/operaciones/listar-paises-latam/) dice qué pide cada país. De 4 a 40 caracteres. |
| `account_type` | texto | No | Tipo de cuenta, si el país lo pide. [`GET /v1/latam/countries`](/docs/operaciones/listar-paises-latam/) dice qué pide cada país. `checking`: Cuenta de cheques o corriente. `savings`: Cuenta de ahorro. |
| `country` | texto | Sí | País de la cuenta, en código de 2 letras. 2 caracteres. |
| `currency` | texto | Sí | Moneda de la cuenta, en código de 3 letras. 3 caracteres. |
| `document` | texto | No | Documento del titular, si el país lo pide. Hasta 30 caracteres. |
| `document_type` | texto | No | Tipo de documento del titular, si el país lo pide. [`GET /v1/latam/countries`](/docs/operaciones/listar-paises-latam/) dice qué pide cada país. Hasta 20 caracteres. |
| `entity` | texto | No | Banco o entidad, si el país lo pide. Los valores salen de [`GET /v1/latam/countries/{country}/entities`](/docs/operaciones/listar-bancos-latam/). Hasta 40 caracteres. |
| `holder_name` | texto | Sí | Titular de la cuenta destino. Hasta 140 caracteres. |
| `rail` | texto | Sí | Riel de pago. Decide qué campos se piden. `latam`: Transferencia local en otros países de América Latina. |

```json
{
  "rail": "latam",
  "holder_name": "PROVEEDOR FICTICIO SPA",
  "country": "CL",
  "currency": "CLP",
  "account_number": "00000000",
  "entity": "000",
  "document_type": "RUT",
  "document": "00000000-0"
}
```

Para Perú, con `account_type` y sin `entity`:

```json
{
  "rail": "latam",
  "holder_name": "PROVEEDOR FICTICIO SAC",
  "country": "PE",
  "currency": "PEN",
  "account_number": "00000000000000000000",
  "account_type": "savings",
  "document_type": "RUC",
  "document": "00000000000"
}
```

Un alta `latam` con datos inválidos responde `422 invalid_beneficiary` al momento, sin dejar beneficiario. Corrige los datos y usa una clave nueva: la misma repite ese rechazo. `202 processing` significa que el alta aún no se confirma, por un corte o una falla temporal, no que los datos estén mal: repite con la misma clave.

## Paga

Aprueba el beneficiario en el panel y crea el pago con [`POST /v1/payments`](/docs/operaciones/crear-pago/), en la moneda de la cuenta. `USD` no aplica en este riel y responde `422 currency_not_supported`.

- `CLP` no lleva decimales: `1500.50` responde `400 invalid_request`.
- El débito se calcula al crear el pago. Para fijar un tope, cotiza con [`POST /v1/quotes`](/docs/operaciones/crear-cotizacion/).
- `completed` exige la confirmación del banco de destino: mientras no llegue, el pago sigue en `processing`. Ver [Qué confirma un `completed`](/docs/conceptos/#qué-confirma-un-completed).
- Un pago `latam` no se cancela: [`POST /v1/payments/{id}/cancel`](/docs/operaciones/cancelar-pago/) responde `409 not_cancellable`.

## Errores comunes

- `403 not_enabled`: el riel no está activado para tu empresa.
- `422 amount_below_minimum`: el monto queda por debajo del mínimo aplicable. Usa una clave nueva.
- `422 rail_unavailable`: el país no está disponible por ahora. Repite más tarde con la misma clave.

## Qué sigue

[Pago masivo](/docs/recetas/pago-masivo/).
