Consigo receber atualizações das minhas reversas e reembolsos via webhook?
Sim, o Trocas & Devoluções possui um webhook que dispara informações de reversas e/ou reembolsos para um endereço pré-determinado do cliente, sempre que ocorre uma atualização de status, no reembolso ou na reversa, que tenha sido indicado como gatilho de envio pelo cliente.
Como configurar o webhook?
Siga estes passos:
1 - Envie um e-mail para suporte@after.sale com o assunto [nome_do_seu_e-commerce] Configuração de Webhook - T&D. No conteúdo do e-mail indique:
a - O endereço (URL) que receberá os envios;
b - O token/senha de acesso que a Aftersale deve utilizar para acessar este endereço;
c - Liste os status de Reversa e/ou status de Reembolso, a partir dos quais deseja receber atualizações (veja quais são eles abaixo);
d - Dois números de pedidos que poderão ser usados para testar os envios.
2 - Aguarde o retorno do time Aftersale, informando da configuração realizada e solicitando a confirmação dos envios de teste.
3 - Confirme a recepção dos arquivos enviados.
4 - E pronto! Agora você deve mapear as informações dos arquivos enviados respeitando os padrões descritos abaixo.
Quais são os status de Reversa disponíveis como gatilho?
ID |
Evento |
Status ADMIN |
29 |
reverse.status.changed.received |
Recebido |
30 |
reverse.status.changed.pending |
Em análise |
31 |
reverse.status.changed.divergent_received |
Recebimento divergente |
33 |
reverse.status.changed.approved |
Aprovado |
34 |
reverse.status.changed.processing |
Processando |
35 |
reverse.status.changed.awaiting |
Aguardando envio |
36 |
reverse.status.changed.shipped |
Em trânsito |
37 |
reverse.status.changed.delivered |
Entrega realizada |
38 |
reverse.status.changed.canceled |
Cancelado |
39 |
reverse.status.changed.shipping_failed |
Problemas no transporte |
46 |
reverse.status.changed.invoice_pending |
Nota fiscal pendente |
47 |
reverse.status.changed.awaiting_payment |
Aguardando pagamento |
48 |
reverse.status.changed.almost_done |
Parcialmente resolvido |
49 |
reverse.status.changed.done |
Resolvido |
50 |
reverse.status.changed.partially_approved |
Parcialmente aprovado |
51 |
reverse.status.changed.refused |
Recusado |
55 |
reverse.status.changed.courier_correction_letter_attached |
carta de correção anexada |
57 |
reverse.status.changed.courier_swaped |
troca de transportadora |
58 |
reverse.status.changed.returned_invoice_refused |
Nota fiscal de devolução recusada |
58 |
reverse.status.changed.awaiting_invoice_conference |
Aguardando conferência fiscal |
Quais são os status de Reembolso disponíveis como gatilho?
ID |
Evento |
Status Admin |
40 |
refund.status.changed.refund_requested |
Solicitado |
41 |
refund.status.changed.refund_approved |
Aprovado |
42 |
refund.status.changed.refund_paid |
Pago |
43 |
refund.status.changed.refund_failed |
Falha de pagamento |
44 |
refund.status.changed.refund_canceled |
Cancelado |
45 |
refund.status.changed.refund_processing |
Processando |
52 |
refund.status.changed.refund_awaiting_approval |
Aguardando aprovação |
53 |
refund.status.changed.refund_awaiting_hr_cancelation |
Aguardando confirmação de cancelamento |
54 |
refund.status.changed.refund_awaiting_cancellation_invoice |
Pendência Fiscal |
56 |
refund.status.changed.refund_review |
Em avaliação |
59 |
refund.status.changed.refund_approval_failed |
Falha de aprovação |
60 |
refund.status.changed.refund_awaiting_bank_details |
Aguardando dados bancários |
Qual o padrão de arquivo de Atualização de Reversa enviado?
{
"event_name": "reverse.status.changed.shipping_failed",
"event_date": "2020-10-20 18:07:26",
"signature": "abcd1234",
"data": {
"reverse": {
"id": 9,
"reverse_type": "courier",
"courier_collect": false,
"ecommerce_order_id": 9,
"store_id": null,
"dot_id": null,
"order_id": null,
"courier_contract_id": 9,
"total_amount": null,
"invoice": null,
"courier_data": null,
"destination_data": {
"seller_info": "N\u00e3o informado no produto",
"return_to_seller": false,
"seller_id": null
},
"store_expire_date": null,
"skip_process_step": 0,
"freight_by_customer": false,
"tracking_error": null,
"created_at": "2020-10-20 18:07:26",
"updated_at": "2020-10-20 18:07:26",
"deleted_at": null,
"status_id": 39,
"products": [],
"tracking": null,
"status": {
"id": 39,
"service_code": "reverses",
"name": "shipping_failed",
"description": "problemas no transporte"
},
"status_histories": [
{
"id": 9,
"reverse_id": 9,
"status_id": 39,
"user_id": null,
"customer_id": null,
"date": "2020-10-20 18:07:26",
"comments": null,
"status": {
"id": 39,
"service_code": "reverses",
"name": "shipping_failed",
"description": "problemas no transporte"
},
"user": null
}
],
"refunds": [],
"ecommerce_order": {
"id": 9,
"order_id": null,
"invoice_number": null,
"uuid": null,
"shipping_value": null,
"ordered_at": null,
"value": null,
"currency": null,
"payment_methods": null,
"ecommerce_id": 9,
"customer_id": 893,
"is_online": true,
"is_marketplace": null,
"marketplace_name": null,
"options": null,
"updated_at": "2020-10-20 18:07:26",
"deleted_at": null
},
"must_treat_refund": false,
"external_order_url": null,
"returned_invoice": null,
"reverse_type_name": "correios",
"can_generate_voucher": false,
"could_cancel": true,
"available_swap_couriers": [],
"can_send_correction_letter": false,
"correction_letter_link": null
},
"customer": {
"id": 893,
"first_name": "Demetris",
"last_name": "Lebsack",
"email": "penelope.rosenbaum@example.com",
"contact_email": null,
"document": "12345678911",
"phone": "+5541123416512",
"address_id": 18,
"shipping_address_id": 17,
"address": {
"id": 18,
"zip_code": "69475000",
"address": "Rua Francisco Derosso",
"complement": "Apartamento 1 Torre 1",
"number": "77144828",
"neighborhood": "Xaxim",
"city": "Curitiba",
"state": "PR",
"lat": "83.455368",
"long": "-25.326949",
"updated_at": "2020-10-20 18:07:26",
"deleted_at": null
},
"shipping_address": {
"id": 17,
"zip_code": "69475000",
"address": "Rua Francisco Derosso",
"complement": "Apartamento 1 Torre 1",
"number": "74045",
"neighborhood": "Xaxim",
"city": "Curitiba",
"state": "PR",
"lat": "-4.795581",
"long": "-28.582266",
"updated_at": "2020-10-20 18:07:26",
"deleted_at": null
}
},
"ecommerce_order": null,
"tracking_history": []
}
}
Qual o padrão de arquivo de Atualização de Reembolso enviado?
{
"event_name": "refund.status.changed",
"signature": "signature",
"data": {
"id": 0,
"type": "string",
"action": "string",
"bonus_amount": 0,
"bonus_amount_percent": 0,
"requested_amount": 0,
"requested_total_amount": 0,
"received_amount": 0,
"received_raw_amount": 0,
"total_amount": 0,
"free_shipping": "string",
"created_at": "string",
"updated_at": "string",
"customer": {
"id": 0,
"first_name": "string",
"last_name": "string",
"email": "string"
},
"status": {
"id": 0,
"name": "string",
"description": "string"
},
"status_histories": [
{
"id": 0,
"reverse_id": 0,
"status_id": 0,
"user_id": 0,
"customer_id": 0,
"date": "string",
"comments": "string",
"status": {
"id": 0,
"service_code": "string",
"name": "string",
"description": "string"
},
"user": {
"id": 0,
"name": "string",
"first_name": "string",
"last_name": "string",
"email": "string",
"mobile_phone": "string",
"phone": "string",
"document": "string",
"wallet": "string"
}
}
],
"total_amount_histories": [
{
"id": 0,
"user": {
"id": 0,
"first_name": "string",
"last_name": "string"
},
"total_amount": "string",
"date": "string",
"type": {
"id": 0,
"name": "string",
"description": "string"
}
}
],
"cashback_account": "string",
"voucher": {
"redemption_code": "string",
"giftcard_id": "string",
"expiring_date": "string"
},
"should_ask_voucher_code": true,
"order_payment_methods": "string",
"order_transactions": [{}],
"refund_product_requests": [{}],
"reverse": {
"status": {
"id": 0,
"service_code": "string",
"name": "string",
"description": "string"
},
"id": 0,
"created_at": "string",
"ecommerceOrder": {
"id": 0,
"order_id": "string"
}
},
"products": [
{
"id": 0,
"reverse_id": 0,
"motive_id": 0,
"reason": {
"id": 0,
"ecommerce_id": 0,
"description": "string",
"reason_category_id": "string",
"action": "string",
"should_approve": true,
"upload_image": "string",
"show_product_grid": true,
"ord": "string",
"created_at": "string",
"updated_at": "string",
"deleted_at": "string"
},
"ecommerce_order_product_id": 0,
"refund_id": 0,
"qty": 0,
"requested_qty": 0,
"received_qty": 0,
"product_received_comment": 0,
"comments": "string",
"reverse_action": "string",
"customer_retention_method_id": "string",
"protocol": "string",
"images": [
{
"id": 0,
"product_id": "string",
"image_path": "string",
"image_url": "string"
}
],
"refund_product_requests": [{}],
"product_id": "string",
"hash": "string",
"name": "string",
"sku": "string",
"price": "string",
"selling_price": "string",
"weight": "string",
"returned_invoice": "string",
"invoice": "string",
"order_id": 0,
"image_url": ["string"]
}
],
"can_edit_wire_transfer": true,
"has_wire_transfer_account": true,
"customer_retention_method_id": "string",
"external_order_url": "string"
}
};
Dicionário de dados dentro do payload Reversa
Campos mais relevantes. |
Reversa ou Reembolso |
O que é |
"event_name" |
reembolso |
Nome do status do reembolso |
"id" |
reembolso/data |
Id do reembolso |
"type" |
reembolso/data |
Tipo do reembolso.exchange, return (string). |
"action" |
reembolso/data |
Ação do reembolso, voucher, estorno ou tranferência (string). |
"free_shipping"?? |
reembolso/data |
Envio grátis. |
"created_at" |
reembolso/data |
Data da criação do reembolso. |
"updated_at" |
reembolso/data |
Data de atualização do reembolso. |
"id" |
reembolso/data/customer |
Id do consumidor. |
"first_name" |
reembolso/data/customer |
Nome do consumidor |
"last_name" |
reembolso/data/customer |
Sobrenome do consumidor. |
"email" |
reembolso/data/customer |
E-mail do consumidor. |
"id" |
reembolso/data/status |
Id do status do reembolso. |
"name" |
reembolso/data/status |
Nome do status do reembolso. |
"description" |
reembolso/data/status |
Descrição do status do reembolso. |
"status_histories" |
reembolso/data/status_histories |
Histórico de status do reembolso. |
"user" |
reembolso/data/status_histories/user |
Alterações de status feitas pelo usuário do admin. |
"total_amount_histories" |
reembolso/data/total_amount_histories |
Se refere a alterações de reembolso feitas pelo operador. |
"expiring_date" |
reembolso/data/voucher |
Data de expiração do voucher. |
"order_transactions" |
reembolso/data/ |
Número das transações financeiras (serve apenas para a Vtex). |
"show_product_grid" |
reembolso/data/products |
Grade de produtos para troca. |
"received_qty" |
reembolso/data/products |
Quantos produtos o operador recebeu. |
"id" |
reversa/data/reverse |
Id da reversa (string). |
"reverse_type" |
reversa/data/reverse |
Tipo da reversa. Por transportadora ou seller/loja física (string). |
"order_id" |
reversa/data/reverse |
Número do pedido (string). |
"courier_collect" |
reversa/data/reverse |
Se é coleta ou não (boolean). |
"courier_contract_id" |
reversa/data/reverse |
Id do contrato de transportadora vinculado ao e-commerce no Admin. |
"seller_info" |
reversa/data/reverse |
Se tem um seller cadastrado, ele será mostrado. |
"skip_process_step" |
reversa/data/reverse |
(number)0 = gerou coleta/postagem |
"freight_by_customer" |
reversa/data/reverse |
Frete pago pelo consumidor (boolean). |
"order_id" |
reversa/data/reverse/refunds/ecommerce_order |
Id do pedido. |
"invoice_number" |
reversa/data/reverse/refunds/ecommerce_order |
Número da nota fiscal (string). |
"uuid" |
reversa/data/reverse/refunds/ecommerce_order |
Dado da transação financeira. |
"ordered_at |
reversa/data/reverse/refunds/ecommerce_order |
Data de entrega. |
"payment_methods" |
reversa/data/reverse/refunds/ecommerce_order |
Métodos de pagamento. Ex: "creditCard" (string). |
"ecommerce_id" |
reversa/data/reverse/refunds/ecommerce_order |
Id do e-commerce. |
"customer_id" |
reversa/data/reverse/refunds/ecommerce_order |
Id do consumidor. |
"customer" |
reversa/data/reverse/refunds/customer |
Informações a respeito do consumidor e endereço. |