Vytvoření refundace

Refundaci zpracujete požadavkem na endpoint /refunds. Volání používá id checkoutu, které vám Twisto vrátilo v API volání /checkouts.

Refundace je možná až po tom, co byla platba zachycena (captured). Checkouty v jiných stavech rušte pomocí požadavku CheckoutCancel. Popis stavů a toků plateb najdete v článku Volání API a platební toky.

Požadavek obsahuje mimo jiné:

  • Reference (volitelné) — povinné jen při ručním vypořádání refundací jako identifikátor bankovního převodu
  • Checkout_id
  • Reason
  • Amount

Odpověď API obsahuje mimo jiné:

  • Id — jedinečný identifikátor refundace
  • Checkout_Id — původní checkout refundované objednávky
  • Reason
  • Vrácená částka
  • Datum a čas vytvoření

Volání /refunds musí proběhnout z vašeho serveru (obvykle z systému správy objednávek).

sequenceDiagram actor Staff Staff->>Client: Select order to refund Client->>Server: Send refund information Server->>Twisto: POST<br/>/refunds using checkoutID Twisto->>Server: Return success with ID Server->>Client: Return Refund success Client->>Staff: Mark order as Refunded

Checkout Id

Twisto vyžaduje původní checkout_id objednávky. Identifikátor pochází z prvního checkout API volání.

Příklad:

{ "checkout_id": "string" }

Hromadné vs 1:1 platby

Dva režimy refundací: hromadné (batch) a ruční (1:1).

U hromadných plateb se částka refundace automaticky odečte z denní dávky výplaty.

U ručních refundací musíte prostředky poslat k nám ručně. Do variabilního symbolu / poznámky převodu uveďte přesně hodnotu pole reference z API refundace.

Částečné a plné refundace

Lze zpracovat plnou i částečnou refundaci vůči původní objednávce.

Refundace je plná, pokud se částka refundace rovná částce objednávky.

Podporujeme částečné refundace, kdy je částka nižší než zbývající část k refundaci, např. vrácení jedné z více položek — předejte hodnotu vracené položky.

Pokud checkout už obsahuje refundaci (např. částka 100 Kč, vráceno 20 Kč) a zákazník vrací zbytek, částka v požadavku má odpovídat zbývající části (80 Kč); jinak API vrátí chybu.

Důvod refundace

Pole reason slouží pro vaši dokumentaci při pozdějším prohlížení dat refundace v Twisto.

Příklad:

{ "reason": "Unwanted item", "amount": 5 }

Celý požadavek

{ "reference": "string", "reason": "Unwanted item", "amount": 5, "checkout_id": "string" }