# API de Pagos para Rentals

Documentación de integración de pagos para plataformas de alquiler vacacional que operan con **EPN (Ecopaynet)** como pasarela de cobro y **Payphone** para dispersión de fondos a propietarios.

#### Arquitectura

```
Cliente (PMS) → PayHub API → EPN (cobro) → Payphone (dispersión a propietarios)
```

#### Flujo de pago completo

1. **Programar pagos** (`POST /reservations`) — asocia N cobros futuros a una reserva.
2. **Ejecución automática** — AWS EventBridge ejecuta cada cobro en la fecha programada.
3. **Cobro vía EPN** — se ejecuta la operación Sale con token de tarjeta.
4. **Dispersión Payphone** — si el cobro es exitoso, PayHub encola las dispersiones:
   * **Pagos Masivos**: transferencias entre cuentas Payphone (Business/Personal).
   * **Payouts**: transferencias a cuentas bancarias Ecuador.
5. **Batch diario** — las dispersiones se ejecutan en lote cada día.

#### Autenticación

Todos los endpoints (excepto webhooks) requieren un token JWT Bearer:

```
Authorization: Bearer <access_token>
```

Los tokens se obtienen en `/auth/token` y **no expiran**.

#### Códigos de error

| Código | Significado                             |
| ------ | --------------------------------------- |
| `400`  | Datos inválidos o faltantes             |
| `401`  | Token JWT ausente o inválido            |
| `402`  | Pago rechazado por la pasarela          |
| `404`  | Recurso no encontrado                   |
| `409`  | Conflicto (schedule ya ejecutado, etc.) |
| `502`  | Error en pasarela externa (EPN)         |
