---
title: Reembolsos
description: Reembolsos a clientes con Coinetic: solicitud POST /v1/refunds, reglas de importe y dirección, ejecución desde su billetera, estados y el webhook refund.sent.
url: https://coinetic.money/es/docs/refunds/
lang: es
---

# Reembolsos

Un reembolso es una transferencia de vuelta al cliente: al cancelar un pedido, tras un sobrepago o tras un pago insuficiente fuera de plazo. Se crea mediante una solicitud por API o desde el panel.

## Quién envía el dinero

Depende del campo `executor` de la solicitud:

- **`merchant`: el pago llegó a su billetera** (el caso habitual). Coinetic no custodia sus fondos: usted mismo envía la transferencia al cliente y registra el hash de la transacción.
- **`platform`: el pago llegó a la billetera de la plataforma.** Usted solo solicita el reembolso; un operador de Coinetic verifica la dirección, lo aprueba y lo envía.

## Reglas

- **Solo en el activo del pago.** Si el cliente pagó en USDT por TRON, recibirá USDT por TRON. No hay conversión.
- **Nunca más de lo pagado**: consulte el `refundable_amount` de la factura. Se admiten reembolsos parciales, con hasta 20 solicitudes abiertas por factura.
- **La dirección, en la red del pago.** Se valida según el formato de la red (EVM: suma de comprobación EIP-55). No se aceptan direcciones de Coinetic.
- **Una factura pagada sigue pagada.** El importe reembolsado figura en `refunded_amount`.
- **Un reembolso cierra para siempre una factura impagada**, aunque sea parcial: la factura pasa a `cancelled` y los pagos complementarios ya no pagarán el pedido. Compruebe el estado de la factura antes de la solicitud.

## Crear una solicitud

`POST /v1/refunds`

```http
POST /v1/refunds
Idempotency-Key: refund-ORDER-1001-1
Content-Type: application/json

{"invoice_id":"inv_x7k2…","amount_minor":"10500000","address":"TQn9Y2khEsLJW1ChVWFMSMeRDow5KcbLSE","reason":"Cancelación del pedido ORDER-1001"}
```

| Campo | Obligatorio | Valor |
| --- | --- | --- |
| `invoice_id` | sí | Factura de su tienda |
| `amount_minor` | sí | **Unidades mínimas** como cadena (`"10500000"` = 10,5 USDT con 6 decimales) o `"full"` para todo el importe disponible |
| `address` | sí | Dirección del cliente en la red del pago |
| `reason` | no | Motivo, hasta 500 caracteres |

## Reembolso desde su billetera

- Envíe al cliente el `amount` de la solicitud en el activo y la red del pago desde su billetera (la comisión de red corre de su cuenta).
- Registre el hash de la transacción:

```http
POST /v1/refunds/{id}/executed
Idempotency-Key: refund-exec-ORDER-1001-1
Content-Type: application/json

{"tx_hash":"0x5c50…","ack_status_change":false}
```

La solicitud pasará a `reported`. En las redes EVM (Ethereum, BSC, Polygon, Base, Arbitrum), Coinetic localizará por sí mismo la transacción confirmada en la cadena de bloques y pasará la solicitud a `sent`, con el webhook `refund.sent`. En Bitcoin, Litecoin, TRON y Solana todavía no hay verificación automática: la solicitud se queda en `reported`.

¿Ha cambiado de opinión? `POST /v1/refunds/{id}/cancel` con un motivo: el importe vuelve a estar disponible para reembolso.

## Estados

| Estado | Significado |
| --- | --- |
| `requested` | Solicitud aceptada |
| `approved` | Aprobada por un operador (solo `executor: platform`) |
| `reported` | Usted ha comunicado el hash; esperando la confirmación en la red |
| `sent` | Dinero enviado; `tx_hash` es la transacción en la red |
| `rejected` | Rechazada o cancelada; el motivo figura en `reject_reason` |

Los rechazos no se notifican por webhook: revise periódicamente las solicitudes abiertas con `GET /v1/refunds?status=requested`.

## En el sandbox

`POST /v1/refunds/{id}/simulate` recorre todo el proceso de una vez: la solicitud pasa a `sent` con un `tx_hash` de prueba y se envía `refund.sent`. Esta ruta no existe en producción.
