Home
Fluxos-Cancelamento-Estorno
É muito importante que a integração com a Shipay leve em consideração os cenários “não-felizes” do serviço de cancelamento e estorno:
-
1) Falha no cancelamento de pedidos pendentes na carteira digital ou no PSP
-
2) Falha no estorno de pedidos aprovados na carteira digital ou no PSP
-
3) Casos de solicitação de estorno que retornam status “refund_pending”
Falha_Cancelamento
1) Sistema integrado à Shipay solicita cancelamento de pedido: (DELETE /order/{order_id}
) com "status": "pending"
.
2) Shipay solicita o cancelamento do pedido na carteira digital ou PSP.
3) Carteira digital ou PSP não realiza o cancelamento do pedido por algum motivo (p. ex.: serviço indisponível).
4) Shipay retorna para o sistema integrado “status_code”: 200 e um payload em JSON com o seguinte conteúdo: {"order_id": "{order_uuid}", "status": "pending"}
.
Obs.: Erros 4XX só retornam no DELETE /order/{order_id}
nas seguintes situações:
(i) access_token inválido ou expirado;
(ii) order_id inexistente ou de um pedido gerado por um outro caixa que não seja o caixa que está tentando cancelar a order;
(iii) cancelamento de pedidos já cancelados ou cancelamento de pedidos já estornados.
Falha_Estorno
1) Sistema integrado à Shipay solicita estorno de pedido: (DELETE /order/{order_id}/refund
) com "status": "approved"
.
2) Shipay solicita o estorno do pedido na carteira digital ou PSP.
3) Carteira digital ou PSP não realiza o estorno do pedido por algum motivo (p. ex.: saldo insuficiente para devolução).
4) Shipay retorna para o sistema integrado “status_code”: 200 e um payload em JSON com o seguinte conteúdo: {"order_id": "{order_uuid}", "status": "approved"}
.
Obs.: Erros 4XX só retornam no DELETE /order/{order_id}/refund
nas seguintes situações:
(i) access_token inválido ou expirado;
(ii) order_id inexistente ou de um pedido gerado por um outro caixa que não seja o caixa que está tentando cancelar a order;
(iii) cancelamento de pedidos já cancelados ou cancelamento de pedidos já estornados.
Refund_Pending
1) Sistema integrado à Shipay solicita estorno de pedido: (DELETE /order/{order_id}/refund
) com "status": "approved"
;
2) Shipay solicita o estorno do pedido na carteira digital ou PSP;
3) Carteira digital ou PSP retorna que a solicitação de estorno está em processamento;
4) Shipay muda status para “refund_pending”;
5) Sistema integrado à Shipay deve realizar consultas na Shipay para verificar se o status do pedido foi alterado (GET /order/{order_id}
ou GET /orderv/{order_id}
);
6) Assim que a carteira digital ou PSP termina de processar a solicitação de estorno, a Shipay altera o status do pedido para refunded (em caso de sucesso no estorno) ou approved (em caso de falha no estorno);
7) Após sistema integrado consultar o status, a Shipay retorna “status_code”: 200 e um payload em JSON com o seguinte conteúdo: {"order_id", "status"}
;
Obs.1: Caso haja alguma falha no estorno do pedido na carteira digital ou PSP, o status final retornará como approved. Neste caso, deve ser aplicado o mesmo tratamento do Falha no estorno de pedidos aprovados na carteira digital ou no PSP
Obs.2: Como sugestão para testar este fluxo, crie um pedido acima de R$ 1000,00 reais na carteira “shipay-pagador”, efetue o pagamento e em seguida, solicite o estorno do mesmo. O status deve retornar como “refund_pending” e depois mudará para refunded.