Vytvoření refundace

Refundaci zpracujete požadavkem na endpoint /refunds. Používá se ID checkoutu, které Twisto vrátilo ve vašem volání /checkouts.

Refundace je možná až poté, co byl charge zachycen (captured). Podrobnosti viz tok stavů.

Toto volání API obsahuje:

  • Referenci (volitelnou) — je povinná pouze u manuálního bankovního vypořádání refundace a použije se u bankovního převodu
  • checkout_id
  • Důvod
  • Částku

Odpověď Twisto API obsahuje:

  • id — jedinečná reference refundace
  • checkout_id — původní identifikátor checkoutu refundované objednávky
  • Důvod
  • Refundovanou částku
  • Datum a čas vytvoření

Volání /refunds musí probíhat z vašeho serveru, ne přímo z klientského frontendu. Typicky ho spouští systém pro správu 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

ID checkoutu

Twisto ke zpracování refundace vyžaduje původní ID checkoutu objednávky. Získáte ho z počátečního volání checkout API na Twisto.

Příklad předání:

{ "checkout_id": "string" }

Hromadné vs. jednotlivé platby

Refundace se zpracovávají dvěma způsoby: hromadně (pro vypořádání v dávkách) a manuálně (pro jednotlivé vypořádání 1:1).

U hromadných plateb se refundace automaticky odečte z vaší denní dávkové platby.

U manuálních refundací musíte peníze Twisto zaslat sami. Jako identifikátor bankovního převodu nastavte přesně hodnotu reference z volání refundace API.

Částečné a plné refundace

Lze provést plnou nebo částečnou refundaci původní objednávky.

Refundaci nazýváme full, pokud se její částka rovná částce objednávky.

Podporujeme také partial refundace, kdy je refundovaná částka nižší než částka objednávky, např. při vrácení jedné z více položek. Vrátí-li zákazník jednu položku z více kusů, do požadavku na refundaci pošlete pouze hodnotu vracené položky.

Pokud už checkout obsahuje refundaci (např. částka checkoutu byla 100 Kč a už bylo refundováno 20 Kč) a zákazník chce vrátit zbytek, částka v požadavku na refundaci musí odpovídat zbývající částce objednávky (80 Kč), jinak API vrátí chybu.

Důvod refundace

Důvod refundace slouží pro vaši evidenci při pozdějším načtení dat o refundaci z Twisto.

Příklad předání:

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

Celý požadavek

Příklad těla požadavku:

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