---
title: Sandbox
description: Sandbox de Coinetic: la misma API, página de pago y webhooks sin dinero real. Simule pagos en USDT, USDC o Bitcoin con botones o desde sus tests automatizados.
url: https://coinetic.money/es/docs/sandbox/
lang: es
---

# Sandbox

Una instancia independiente de Coinetic sin redes reales. La API, las firmas, la página de pago, los estados y los webhooks con reintentos funcionan igual que en producción; lo único simulado son los pagos.

| Qué | Dirección |
| --- | --- |
| API | `https://sandbox.coinetic.money` |
| Panel | [https://sandbox.coinetic.money/merchant](https://sandbox.coinetic.money/merchant) |

Las claves del sandbox y las de producción son distintas. Una clave del sandbox no funciona en producción, ni viceversa.

## Pagos de prueba con botones

En la página de pago del sandbox, una vez elegida la moneda, aparece el bloque «Sandbox: pago de prueba»:

| Botón | Qué ocurre |
| --- | --- |
| Pagar importe exacto | Pago por el importe total: `detected` al instante y `paid` a los ~3 s |
| Pago insuficiente 10 % | 90 % del importe → `underpaid` |
| Pagar el resto | (tras un pago insuficiente) el resto → `paid` |
| Sobrepago 10 % | 110 % → `overpaid` |
| Mitad del importe | 50 %; púlselo otra vez y la segunda mitad → `paid` |

## Pagos de prueba desde tests automatizados

Los mismos escenarios, mediante una solicitud. El token forma parte de `checkout_url`, tras `#t=`. La moneda ya debe estar elegida (en la página o con `POST /v1/invoices/{id}/select` y el mismo token).

```http
POST /sandbox/v1/invoices/{id}/pay
Authorization: Bearer <token de checkout_url tras #t=>
Content-Type: application/json

{"scenario": "exact"}
```

Valores de `scenario`: `exact`, `underpay`, `overpay`, `half`, `rest`.

En el sandbox, un reembolso se ejecuta con un solo comando: `POST /v1/refunds/{id}/simulate` (más detalles en la sección [«Reembolsos»](https://coinetic.money/es/docs/refunds/)).

## Diferencias con producción

- Las facturas y los webhooks llevan `livemode: false`. **Su tienda en producción debe rechazar esas facturas y eventos**: así, un sandbox conectado por error no entregará la mercancía.
- Los webhooks y `return_url` pueden apuntar a `http://localhost` y `http://127.0.0.1`. Las direcciones públicas, solo con `https://` y puerto 443, como en producción.
- La verificación AML siempre sale «limpia».
- Los tipos de cambio de los activos volátiles son reales, obtenidos de los exchanges.

## Qué probar antes de pasar a producción

- Pago exacto, pago insuficiente con pago complementario, sobrepago y dos mitades.
- Factura vencida: una factura nueva para el mismo pedido.
- Un webhook falsificado o caducado se rechaza; un webhook repetido no duplica la entrega.
- Rotación del secreto del webhook y cambio de la clave de API sin interrupciones.
