Documentatie / Integratie

Terugbetalingen

Een terugbetaling is een overboeking terug naar de klant: bij een geannuleerde order, een overbetaling of een onderbetaling na de vervaldatum. U maakt die aan met een aanvraag via de API of in het dashboard.

Wie het geld verstuurt

Dat hangt af van het veld executor in de aanvraag:

  • merchant — de betaling kwam binnen op uw wallet (het normale geval). Coinetic beheert uw geld niet: u verstuurt de overboeking naar de klant zelf en registreert de transactiehash.
  • platform — de betaling kwam binnen op een wallet van het platform. U vraagt de terugbetaling alleen aan; een operator van Coinetic controleert het adres, keurt de aanvraag goed en verstuurt het bedrag.

Regels

  • Alleen in de asset van de betaling. Betaalde de klant USDT op TRON, dan ontvangt hij USDT op TRON. Er wordt niet omgewisseld.
  • Niet meer dan er is betaald — zie refundable_amount van de factuur. In delen mag, tot 20 openstaande aanvragen per factuur.
  • Het adres ligt op het netwerk van de betaling. Het wordt gecontroleerd op het formaat van het netwerk (EVM — EIP-55-checksum). Adressen van Coinetic zelf worden niet geaccepteerd.
  • Een betaalde factuur blijft betaald. Hoeveel er is terugbetaald, staat in refunded_amount.
  • Een onbetaalde factuur wordt door een terugbetaling definitief gesloten, ook bij een gedeeltelijke: de factuur wordt cancelled en latere bijbetalingen betalen de order niet meer. Controleer de status van de factuur vóór de aanvraag.

Een aanvraag aanmaken

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":"Annulering order ORDER-1001"}
VeldVerplichtWaarde
invoice_idjaEen factuur van uw winkel
amount_minorjaKleinste eenheden als string ("10500000" = 10,5 USDT bij 6 decimalen) of "full" — het volledige beschikbare bedrag
addressjaAdres van de klant op het netwerk van de betaling
reasonneeReden, maximaal 500 tekens

Terugbetalen vanuit uw wallet

  1. Stuur de klant het amount uit de aanvraag vanuit uw eigen wallet, in de asset en op het netwerk van de betaling (de netwerkkosten betaalt u).
  2. Registreer de transactiehash:
HTTP
POST /v1/refunds/{id}/executed
Idempotency-Key: refund-exec-ORDER-1001-1
Content-Type: application/json

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

De aanvraag gaat naar reported. Op EVM-netwerken (Ethereum, BSC, Polygon, Base, Arbitrum) vindt Coinetic de bevestigde transactie zelf in de blockchain en zet de aanvraag op sent, met de webhook refund.sent. Voor Bitcoin, Litecoin, TRON en Solana is er nog geen automatische controle — de aanvraag blijft reported.

Bedacht u zich — POST /v1/refunds/{id}/cancel met een reden: het bedrag is dan weer beschikbaar voor terugbetaling.

Statussen

StatusBetekenis
requestedAanvraag ontvangen
approvedGoedgekeurd door een operator (alleen executor: platform)
reportedU hebt de hash doorgegeven, we wachten op bevestiging in het netwerk
sentGeld verstuurd, tx_hash — de transactie in het netwerk
rejectedAfgewezen of geannuleerd, de reden staat in reject_reason

Een afwijzing wordt niet via een webhook gemeld — controleer openstaande aanvragen periodiek: GET /v1/refunds?status=requested.

In de sandbox

POST /v1/refunds/{id}/simulate doorloopt het hele traject in één keer: de aanvraag wordt sent met een test-tx_hash en u ontvangt refund.sent. In productie bestaat deze route niet.