Devoluções
Lista e consulta devoluções (RMAs) e abre uma devolução em nome do cliente pela equipe da loja.
Uma devolução (RMA, "return merchandise authorization") é o pedido de um cliente para devolver um item comprado: por defeito, por arrependimento ou por erro de envio. Cada devolução passa por uma sequência de situações, do pedido do cliente até o reembolso, e a loja decide a resolução: reembolsar, trocar o produto ou dar crédito na loja.
Use estas operações para sincronizar devoluções com um sistema de logística reversa ou de atendimento. A criação pela v2 é uma ação da equipe (atendimento ou balcão), não do cliente: a devolução nasce ligada ao cliente do pedido.
/api/v2/returnsAdminListar devoluções
Da mais nova para a mais antiga. Cada item já traz o número do pedido, o nome e o e-mail do cliente e o nome do produto.
Parâmetros de consulta
pageintegerpadrão: 1per_pageintegerpadrão: 20statusstringrequestedapproveditem_receivedrefundedrejectedclosedcancelledrequested.customer_iduuidvendor_iduuiddate_fromstringYYYY-MM-DD).date_tostringYYYY-MM-DD, o dia entra inteiro).fieldsstring/api/v2/returns/{id}AdminLer uma devolução
Devolve uma devolução com os mesmos campos da lista.
Parâmetros de caminho
iduuidobrigatório/api/v2/returnsAdminAbrir uma devolução pela equipe
Cria uma devolução na situação requested para um pedido já pago ou entregue. O cliente é o dono do pedido. O pedido precisa estar pago ou entregue/concluído: pedidos cancelados ou reembolsados não aceitam devolução.
Corpo da requisição
order_iduuidobrigatórioorder_item_iduuidreason_iduuidreasonstringresolutionstringpadrão: refundrefundreplacementstore_creditquantityintegerpadrão: 1refund_amountintegerrestock_warehouse_iduuidbypass_windowbooleanpadrão: falseExemplo de requisição
curl "$BASE_URL/api/v2/returns?status=requested&date_from=2026-10-01&per_page=20" \
-H "Authorization: Bearer $TOKEN"Abrir uma devolução:
curl -X POST "$BASE_URL/api/v2/returns" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"order_id": "6af86ed3-d949-474d-8e04-513c6e83bfe4",
"order_item_id": "936266b5-fb89-4a3f-84b6-05155f1c54d9",
"resolution": "refund",
"quantity": 1,
"refund_amount": 4990,
"reason": "Produto com defeito"
}'Resposta
{
"data": [
{
"id": "2f495c2f-dab7-4580-8004-54e39fa56c75",
"order_id": "615b4147-6cb2-4057-9e25-ee82281b9d68",
"order_item_id": "936266b5-fb89-4a3f-84b6-05155f1c54d9",
"customer_id": "220b672c-90fe-4841-ae86-bd4f1ace982e",
"vendor_id": "94bd7e9a-fdad-4d01-8fc2-ba9d677d8b36",
"reason_id": "0bc9dc6e-3655-44bc-96ba-b2645336a403",
"reason": "Produto com defeito",
"status": "closed",
"admin_notes": "Reembolso processado pelo administrador",
"customer_notes": "Veio quebrado",
"resolution": "refund",
"refund_amount": 49980,
"quantity": 1,
"created_at": "2026-07-12T13:41:51.351302Z",
"updated_at": "2026-07-21T06:49:58.472408Z",
"processed_at": "2026-07-21T06:49:58.472408Z",
"processed_by": "ec5e10b3-8cb1-43e9-9aa8-964b64eda8de",
"order_number": "97213",
"customer_name": "Maria Souza",
"customer_email": "maria.souza@example.com",
"product_name": "Smartphone Roxo",
"reason_name": "Defective product"
}
],
"meta": { "pagination": { "page": 1, "per_page": 20, "total": 1534, "total_pages": 77 } }
}Campos da resposta
data[].iduuiddata[].order_iduuiddata[].order_item_iduuid | nulldata[].customer_iduuiddata[].vendor_iduuid | nulldata[].reason_iduuid | nulldata[].reasonstringdata[].statusstringrequestedapproveditem_receivedrefundedrejectedclosedcancelleddata[].admin_notesstringdata[].customer_notesstringdata[].resolutionstringrefundreplacementstore_creditdata[].refund_amountintegerdata[].quantityintegerdata[].created_atstringdata[].updated_atstringdata[].processed_atstring | nulldata[].processed_byuuid | nulldata[].order_numberstringdata[].customer_namestringdata[].customer_emailstringdata[].product_namestringdata[].reason_namestringA criação responde 201 com { "data": { ... } }, o mesmo objeto sem os campos de apoio (order_number, customer_name, customer_email, product_name, reason_name) e com processed_by igual ao usuário que abriu.
Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | order_id ausente | {"error":{"code":"bad_request","message":"order_id is required"}} |
| 400 | Corpo que não é JSON | {"error":{"code":"bad_request","message":"invalid request body","details":"..."}} |
| 404 | Devolução inexistente (GET por id) | {"error":{"code":"not_found","message":"return not found"}} |
| 409 | Já existe devolução ativa para o pedido ou item | {"error":{"code":"active_return_exists","message":"an active return already exists for this order/item"}} |
| 500 | Falha inesperada | {"error":{"code":"internal_error","message":"an unexpected error occurred","details":"..."}} |