> ## Documentation Index
> Fetch the complete documentation index at: https://docs.onepay.la/llms.txt
> Use this file to discover all available pages before exploring further.

# Escenarios de prueba

> Simula diferentes resultados de transacciones en ambiente de pruebas.

## Escenarios de prueba

Los escenarios de prueba te permiten simular diferentes resultados de transacciones para verificar el comportamiento de tu integración antes de pasar a producción.

### ¿Cómo usarlos?

Al crear un cargo con `POST /charges`, envía el campo `test_scenario` con el código del escenario que quieres simular:

```bash theme={null}
curl https://api.onepay.la/v1/charges \
  -X POST \
  -H "Authorization: Bearer sk_test_xxx" \
  -H "Content-Type: application/json" \
  -H "x-idempotency: test-scenario-001" \
  -d '{
    "title": "Prueba de error",
    "customer_id": "9dd4158b-0e45-42bc-b56f-a4c1f856814d",
    "amount": 50000,
    "card_id": "9e5ccd4a-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
    "test_scenario": "INSUFFICIENT_FUNDS"
  }'
```

<Warning>
  Los escenarios de prueba solo funcionan con llaves de ambiente **test** (`sk_test_`). En producción, el campo `test_scenario` es ignorado.
</Warning>

### Escenarios disponibles

#### Errores de tarjeta

| Escenario            | Descripción                              |
| -------------------- | ---------------------------------------- |
| `CARD_NUMBER`        | Número de tarjeta inválido               |
| `CARD_EXPIRED`       | Tarjeta expirada                         |
| `CARD_DATE`          | Fecha de expiración inválida             |
| `CARD_CVV`           | Código de seguridad (CVV) incorrecto     |
| `CARD_VELOCITY`      | Tarjeta bloqueada por exceso de intentos |
| `CARD_GENERIC_ERROR` | Error genérico de tarjeta                |
| `CARD_RESTRICTED`    | Tarjeta restringida por el emisor        |

#### Errores de fondos y fraude

| Escenario            | Descripción                          |
| -------------------- | ------------------------------------ |
| `INSUFFICIENT_FUNDS` | Fondos insuficientes en la cuenta    |
| `FRAUDULENT`         | Transacción marcada como fraudulenta |
| `STOLEN`             | Tarjeta reportada como robada        |

#### Errores de cuenta bancaria

| Escenario                             | Descripción                                    |
| ------------------------------------- | ---------------------------------------------- |
| `ACCOUNT_NOT_CONNECTED`               | Cuenta no vinculada o sin autorización         |
| `ACCOUNT_BLOCKED`                     | Cuenta bloqueada por el banco                  |
| `ACCOUNT_CLOSED`                      | Cuenta cerrada                                 |
| `ACCOUNT_FAILED`                      | Error al procesar la cuenta                    |
| `ACCOUNT_IS_NOT_AUTHORIZED`           | La cuenta no está autorizada para débitos      |
| `ACCOUNT_DOES_NOT_BELONG_TO_CUSTOMER` | La cuenta no pertenece al cliente especificado |

#### Errores de transacción

| Escenario                        | Descripción                                |
| -------------------------------- | ------------------------------------------ |
| `TRANSACTION_NOT_FOUND`          | Transacción no encontrada en el procesador |
| `TRANSACTION_EXPIRED`            | Transacción expirada por tiempo            |
| `TRANSACTION_REJECTED`           | Transacción rechazada por el banco         |
| `TRANSACTION_TEMPORALLY_BLOCKED` | Transacción bloqueada temporalmente        |

#### Errores generales

| Escenario                | Descripción                               |
| ------------------------ | ----------------------------------------- |
| `INTERNAL_ERROR`         | Error interno del sistema                 |
| `CURRENCY_NOT_SUPPORTED` | Moneda no soportada                       |
| `MIN_AMOUNT`             | Monto menor al mínimo permitido           |
| `MAX_AMOUNT`             | Monto mayor al máximo permitido           |
| `BANK_IS_NOT_AVAILABLE`  | Banco no disponible en este momento       |
| `CUSTOMER_DATA_INVALID`  | Datos del cliente inválidos o incompletos |
| `UNKNOWN`                | Error desconocido                         |
