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

# Pruebas en sandbox

> Matriz de pruebas sin afectar producción

## Preparación

1. Usa `https://sandbox-api.cobrix.co/api`.
2. Crea el partner y la llave dentro de la empresa QA.
3. Usa referencias únicas por ejecución.
4. Configura un webhook exclusivo de pruebas.
5. No uses emails o teléfonos de clientes reales.

## API de integraciones

| Caso                                      | Resultado esperado                       |
| ----------------------------------------- | ---------------------------------------- |
| Bearer inválido                           | `401 invalid_api_key`                    |
| Firma alterada                            | `401 invalid_signature`                  |
| Timestamp vencido                         | `401 timestamp_out_of_tolerance`         |
| `POST` sin idempotencia                   | `400 missing_idempotency_key`            |
| Replay idéntico                           | Misma respuesta, sin duplicados          |
| Cliente y documento upsert                | `created`, luego `unchanged` o `updated` |
| Link con documentos de clientes distintos | `422`                                    |
| Pago verificado repetido                  | `already_processed` o replay original    |
| Pago multimoneda sin tasa                 | `needs_certified_rate`                   |

## Documentos de cobro públicos

| Caso                              | Resultado esperado                       |
| --------------------------------- | ---------------------------------------- |
| Crear USD 20,25                   | `201`, `amount: 20.25` y link de pago    |
| Replay idéntico                   | Mismo `id` y `payment_id`                |
| Misma clave, otro cuerpo          | `409 idempotency_error`                  |
| Actualizar pendiente 20 → 25 → 18 | Checkout reemplazado y ledger balanceado |
| Cambiar `provider`                | `422 errors.provider`                    |
| Actualizar con pago aplicado      | `409 errors.payment`                     |
| Cambiar monto pagado              | `409 errors.amount`                      |
| Anular pendiente                  | `204` y estado `DELETE_FROM_PROVIDER`    |
| Actualizar anulada                | `409 errors.status`                      |
| Eliminación masiva                | `202` con JSON `null`                    |

## Webhooks

* Verifica la firma antes de parsear.
* Envía el mismo evento dos veces y confirma deduplicación.
* Fuerza un `500` temporal y comprueba el reintento.
* Confirma que los webhooks generales aceptan cualquier `2xx`.
* Confirma que los webhooks de documentos públicos requieren `200` exacto.

## Limpieza

Anula los documentos sintéticos pendientes. Identifica expresamente cualquier documento liquidado desde proveedor, porque no debe revertirse fuera del flujo financiero oficial.
