VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa

Devoluções

Como funciona uma devolução (RMA) do pedido ao reembolso, os estados, a logística reversa e o mapa de todas as rotas do administrador.

Uma devolução (também chamada de RMA, de "return merchandise authorization") é o pedido que o cliente faz para devolver, trocar ou ser reembolsado por um item de um pedido já comprado. O Código de Defesa do Consumidor garante esse direito, e por isso a plataforma tem um fluxo próprio: o cliente abre o pedido de devolução, a loja analisa, aprova ou recusa, recebe o produto de volta e devolve o dinheiro.

Estas são as rotas do administrador da loja. O cliente abre a devolução pela API da vitrine e o seller acompanha pelo painel dele; aqui você analisa, decide e acompanha tudo.

Pontos-chave
  • Exige o módulo de devoluções ligado. Desligado, as rotas respondem 403 com {"error":"module_disabled","module":"returns"}.
  • Ler exige acesso a pedidos (manage_orders ou view_orders). Alterar exige manage_returns ou manage_orders.
  • O fluxo de estados é fixo: não dá para pular etapas. Uma transição inválida devolve 400.
  • Valores de reembolso são inteiros em centavos (4990 = R$ 49,90).
  • Para reembolsar, o refund_amount precisa estar preenchido antes: defina-o ao aprovar com Processar.
  • Se o estorno no meio de pagamento falhar, a devolução não é marcada como reembolsada e a API devolve 502.

Como funciona

O ciclo da devolução

Solicitada→Aprovada→Item recebido→Reembolsada→Encerrada

Pelo caminho de recusa: Solicitada > Recusada > Encerrada. O cliente também pode cancelar enquanto a devolução está solicitada.

statusSignificadoPróximos estados possíveis
requestedO cliente abriu o pedido e aguarda análise.approved, rejected, cancelled
approvedA loja aprovou. A logística reversa pode ser emitida.item_received, cancelled
item_receivedO produto devolvido chegou à loja.refunded
refundedO dinheiro foi devolvido.closed
rejectedA loja recusou.closed
closedEncerrada. Estado final.nenhum
cancelledCancelada. Estado final.nenhum

Resolução

O campo resolution diz o que o cliente quer receber: refund (dinheiro de volta), replacement (troca por outro item) ou store_credit (crédito na loja). Ao processar a devolução você pode sobrescrevê-lo.

Logística reversa

É o caminho de volta do produto. Quando o recurso está ligado no módulo, aprovar uma devolução pede ao transportador uma autorização de postagem (um código e uma etiqueta que o cliente leva à agência). O andamento aparece em reverse_status e na linha do tempo da logística reversa.

reverse_statusSignificado
noneNunca houve logística reversa.
requestedAutorização pedida ao transportador.
authorizedAutorização emitida (código, etiqueta e custo disponíveis).
failedO transportador recusou ou falhou. Pode ser reemitida.
posted, in_transit, deliveredO objeto foi postado, está a caminho ou chegou. Não pode mais ser cancelada.
cancelledAutorização cancelada.

Destino do reembolso

O cliente escolhe refund_destination: original (volta ao meio de pagamento usado) ou wallet (crédito na carteira da loja). No reembolso por wallet não há estorno no gateway; o valor é creditado na carteira do cliente.

Conceitos importantes

Quem enxerga o quê

Estas rotas veem todas as devoluções da loja. O seller só vê as devoluções dos próprios pedidos, por rotas dele. O cliente vê as suas.

Motivos e regras

Os motivos são as opções que o cliente escolhe ("Produto com defeito", "Desisti da compra"). As regras por categoria definem prazo, exigência de fotos e aprovação automática para cada categoria de produto. Os dois são configuráveis nas páginas Motivos e Regras por categoria.

Triagem das fotos

Quando o cliente envia fotos de evidência, a plataforma pode analisá-las automaticamente e, em categorias configuradas para isso, aprovar sozinha casos de baixo valor. O resultado aparece no campo triage da devolução (status, classification, confidence, rationale, auto_approved). Trate-o como apoio à decisão, não como veredicto.

Endpoints

Método e caminhoPara que serveAuthPágina
GET /api/v1/admin/returnsLista devoluções com filtrosadminSolicitações
GET /api/v1/admin/returns/{id}Detalha uma devoluçãoadminSolicitações
GET /api/v1/admin/returns/statsContadores e total reembolsadoadminSolicitações
PUT /api/v1/admin/returns/{id}Avança o estado (recebido, reembolsado, encerrado...)adminDecisões
POST /api/v1/admin/returns/{id}/processAprova ou recusaadminDecisões
POST /api/v1/admin/returns/{id}/reverseEmite (ou reemite) a logística reversaadminLogística reversa
DELETE /api/v1/admin/returns/{id}/reverseCancela a autorização ainda não postadaadminLogística reversa
GET /api/v1/admin/returns/{id}/reverse-eventsLinha do tempo do rastreio reversoadminLogística reversa
GET /api/v1/admin/returns/reasonsLista os motivosadminMotivos
POST /api/v1/admin/returns/reasonsCria um motivoadminMotivos
PUT /api/v1/admin/returns/reasons/{id}Altera um motivoadminMotivos
DELETE /api/v1/admin/returns/reasons/{id}Exclui um motivoadminMotivos
GET /api/v1/admin/returns/rulesLista as regras por categoriaadminRegras por categoria
POST /api/v1/admin/returns/rulesCria ou atualiza uma regraadminRegras por categoria
PUT /api/v1/admin/returns/rulesIgual ao POSTadminRegras por categoria
DELETE /api/v1/admin/returns/rules/{ruleId}Remove uma regraadminRegras por categoria

Erros comuns

  1. Tentar reembolsar com refund_amount zerado. A transição para refunded é recusada. Defina o valor ao processar a devolução.
  2. Usar PUT para aprovar. O PUT só troca o estado. Para aprovar com valor, resolução e logística reversa, use POST /process.
  3. Pular etapas. Não se vai de requested direto a refunded. A resposta 400 diz invalid status transition from 'x' to 'y'.
  4. Filtrar por status com texto desconhecido. Em vez de erro, o filtro vira requested. Confira a grafia.
  5. Esperar 404 em id mal formado. GET /returns/abc devolve 500 (não é um UUID); um UUID válido que não existe devolve 404.
  6. Esperar que a logística reversa sempre emita. Se o transportador não estiver configurado ou recusar o pedido, a chamada devolve 502 reverse_failed e o reverse_status fica failed.
  7. Repetir o reembolso após 502. O 502 significa que nada foi marcado; é seguro tentar de novo ou reembolsar manualmente no gateway.

Próximos passos

Solicitações
Listar, consultar e ver os contadores.
Decisões
Aprovar, recusar e avançar o estado.
Logística reversa
Etiqueta de postagem e rastreio de volta.
Motivos
As opções que o cliente escolhe.
Anterior
Recibos da venda
Próxima
Solicitações de devolução
Nesta página
  • Como funciona
  • O ciclo da devolução
  • Resolução
  • Logística reversa
  • Destino do reembolso
  • Conceitos importantes
  • Quem enxerga o quê
  • Motivos e regras
  • Triagem das fotos
  • Endpoints
  • Erros comuns
  • Próximos passos