---
title: Erstattungen
description: Krypto-Zahlungen mit Coinetic erstatten: Antrag per POST /v1/refunds, Regeln für Betrag und Adresse, Ausführung aus Ihrem Wallet, Webhook refund.sent.
url: https://coinetic.money/de/docs/refunds/
lang: de
---

# Erstattungen

Eine Erstattung ist eine Rücküberweisung an den Kunden: bei Stornierung, Überzahlung oder einer Unterzahlung nach Ablauf. Sie wird per API oder im Dashboard beantragt.

## Wer das Geld sendet

Das hängt vom Feld `executor` des Antrags ab:

- **`merchant` – die Zahlung ging auf Ihr Wallet** (der Normalfall). Coinetic verwahrt Ihre Mittel nicht: Die Überweisung an den Kunden senden Sie selbst und hinterlegen den Transaktions-Hash.
- **`platform` – die Zahlung ging auf ein Wallet der Plattform.** Sie beantragen nur die Erstattung; Adresse prüfen, freigeben und senden übernimmt ein Coinetic-Operator.

## Regeln

- **Nur im Zahlungs-Asset.** Hat der Kunde USDT auf TRON gezahlt, erhält er USDT auf TRON. Eine Umrechnung gibt es nicht.
- **Nicht mehr als bezahlt** – maßgeblich ist `refundable_amount` der Rechnung. Teilerstattungen sind möglich, bis zu 20 offene Anträge je Rechnung.
- **Adresse im Zahlungsnetzwerk.** Sie wird nach dem Format des Netzwerks geprüft (EVM – Prüfsumme nach EIP-55). Adressen von Coinetic selbst werden nicht akzeptiert.
- **Eine bezahlte Rechnung bleibt bezahlt.** Wie viel erstattet wurde, zeigt `refunded_amount`.
- **Eine unbezahlte Rechnung wird durch eine Erstattung endgültig geschlossen**, auch durch eine teilweise: Die Rechnung wird `cancelled`, Nachzahlungen bezahlen die Bestellung nicht mehr. Prüfen Sie den Rechnungsstatus vor dem Antrag.

## Antrag erstellen

`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":"Stornierung der Bestellung ORDER-1001"}
```

| Feld | Pflicht | Wert |
| --- | --- | --- |
| `invoice_id` | ja | Rechnung Ihres Shops |
| `amount_minor` | ja | **Kleinste Einheiten** als String (`"10500000"` = 10,5 USDT bei 6 Stellen) oder `"full"` – der gesamte verfügbare Betrag |
| `address` | ja | Adresse des Kunden im Zahlungsnetzwerk |
| `reason` | nein | Grund, bis 500 Zeichen |

## Erstattung aus Ihrem Wallet

- Senden Sie dem Kunden den `amount` des Antrags im Asset und Netzwerk der Zahlung aus Ihrem Wallet (die Netzwerkgebühr tragen Sie).
- Hinterlegen Sie den Transaktions-Hash:

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

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

Der Antrag wechselt zu `reported`. In EVM-Netzwerken (Ethereum, BSC, Polygon, Base, Arbitrum) findet Coinetic die bestätigte Transaktion selbst auf der Blockchain und setzt den Antrag auf `sent`, begleitet vom Webhook `refund.sent`. Für Bitcoin, Litecoin, TRON und Solana gibt es noch keine automatische Prüfung – der Antrag bleibt `reported`.

Es sich anders überlegt? `POST /v1/refunds/{id}/cancel` mit Begründung: Der Betrag ist dann wieder erstattungsfähig.

## Status

| Status | Bedeutung |
| --- | --- |
| `requested` | Antrag angenommen |
| `approved` | Vom Operator freigegeben (nur `executor: platform`) |
| `reported` | Sie haben den Hash gemeldet, Bestätigung im Netzwerk ausstehend |
| `sent` | Geld gesendet, `tx_hash` ist die Transaktion im Netzwerk |
| `rejected` | Abgelehnt oder storniert, Grund in `reject_reason` |

Ablehnungen werden nicht per Webhook gemeldet – prüfen Sie offene Anträge regelmäßig: `GET /v1/refunds?status=requested`.

## In der Sandbox

`POST /v1/refunds/{id}/simulate` durchläuft den ganzen Weg auf einmal: Der Antrag wird `sent` mit einem Test-`tx_hash`, und `refund.sent` wird zugestellt. In Produktion gibt es diese Route nicht.
