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_amountder 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
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
amountdes Antrags im Asset und Netzwerk der Zahlung aus Ihrem Wallet (die Netzwerkgebühr tragen Sie). - Hinterlegen Sie den Transaktions-Hash:
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.