# Pago ACH

Pagar en dólares a una cuenta de Estados Unidos por ACH.

Para pagar por ACH registras la cuenta con su domicilio, la apruebas en el panel y creas el pago en `USD`.

## Requisitos

| Requisito | Valor |
|---|---|
| `rail` | `usd_ach` |
| País | Estados Unidos |
| Moneda del pago | `USD` |
| Datos de la cuenta | Número de ruta, cuenta y domicilio |
| Disponible si | `usd_ach` aparece en `rails` de [`GET /v1/limits`](/docs/operaciones/consultar-limites/). Si no, `403 rail_not_enabled` |
| Cuenta de prueba | No se simula: responde `403 rail_not_enabled` |

## Registra el beneficiario

Con [`POST /v1/beneficiaries`](/docs/operaciones/crear-beneficiario/):

| Campo | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| `account_number` | texto | Sí | Número de cuenta, de 4 a 17 dígitos. |
| `account_type` | texto | Sí | Tipo de cuenta. `checking`: Cuenta de cheques o corriente. `savings`: Cuenta de ahorro. |
| `address` | objeto | Sí | Domicilio del titular. |
| `address.city` | texto | Sí | Ciudad. Hasta 100 caracteres. |
| `address.country` | texto | Sí | País, en código de 3 letras. 3 caracteres. |
| `address.postal_code` | texto | Sí | Código postal. Hasta 20 caracteres. |
| `address.state` | texto | Sí | Estado o provincia. Hasta 100 caracteres. |
| `address.street_line_1` | texto | Sí | Calle y número. De 4 a 35 caracteres. |
| `holder_name` | texto | Sí | Titular de la cuenta destino. Hasta 140 caracteres. |
| `rail` | texto | Sí | Riel de pago. Decide qué campos se piden. `usd_ach`: ACH, en Estados Unidos. |
| `routing_number` | texto | Sí | Número de ruta, 9 dígitos. |

```json
{
  "rail": "usd_ach",
  "holder_name": "PROVEEDOR FICTICIO LLC",
  "routing_number": "999999999",
  "account_number": "000123456789",
  "account_type": "checking",
  "address": {
    "street_line_1": "100 Calle Ficticia",
    "city": "Ciudad Ficticia",
    "state": "TX",
    "postal_code": "00000",
    "country": "USA"
  }
}
```

`address.street_line_1` debe incluir el número de la calle. Sin él, el alta responde `400 invalid_request` en `address`: se valida al registrar para que un pago no falle después por ese dato.

## Paga

Aprueba el beneficiario en el panel y crea el pago con [`POST /v1/payments`](/docs/operaciones/crear-pago/), con `currency` en `USD`. Si te importa el débito, cotiza antes con [`POST /v1/quotes`](/docs/operaciones/crear-cotizacion/). El resto del flujo es igual al de [Pago SPEI](/docs/recetas/pago-spei/).

## Errores comunes

- `400 invalid_request`: revisa `details.fields`; el caso típico es `address` sin número de calle.
- `403 rail_not_enabled`: el riel no está habilitado para tu cuenta.
- `422 currency_not_supported`: el pago no va en `USD`.

## Qué sigue

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