Criar Eventos
Introdução
Esta seção detalha como criar e consultar eventos de protocolo no ambiente de sandbox e como testar cenários de erro.
Pré-requisitos para Criação de Eventos
Para criar eventos no ambiente de sandbox, é necessário observar as seguintes regras:
- O protocolo referente ao evento deve existir previamente no sistema e deve estar aberto
- Apenas protocolos do tipo
cancellation(cancelamento) podem receber eventos - Somente os seguintes tipos de eventos são permitidos:
authorize_refund- Autorização de reembolsoproduct_sent- Produto enviado para devoluçãoproduct_received- Produto recebido após devoluçãoreturn_info_sent- Informações de devolução enviadas
- O evento
authorize_refundsomente poderá ser criado após o registro prévio dos eventosproduct_sentouproduct_received.
Cenários de Erros Imediatos
São erros retornados imediatamente como resposta à requisição.
| Cenário | Código de Resposta | Condições para emular o cenário |
|---|---|---|
| "Ticket '{ticket_id}' não encontrado." | 404 | Tente criar um evento utilizando um ticket_id inexistente. |
| "Não é possível adicionar eventos em tickets fechados." | 400 | Tente criar um evento utilizando um ticket_id referente a um protocolo fechado. |
| "Unprocessable entity" | 422 | Tente criar um evento com tipagem de campos inválida ou com o campo type inválido. |
Tabela de Cenários de Erro Assíncronos
São erros assíncronos encontrados ao consultar a transação referente ao transaction_id retornado como resposta da requisição.
Abaixo estão descritos os possíveis cenários de erro que podem ser testados. Observe que todos cenarários retornam a mesma mensagem de erro; isso ocorre para emular o ambiente produtivo que tambem nao retorna mensagens de erro.
| Cenário | code | Condições para emular cenário |
|---|---|---|
{"created": "False"} | erro1 | Não é possível executar esse cenário sem utilizar o campo code |
{"created": "False"} | Tente criar um evento para um Ticket que não é do tipo "cancellation" | |
{"created": "False"} | Tente criar um evento de tipo diferente de "authorize_refund", "product_sent", "product_received", "return_info_sent" | |
{"created": "False"} | Tente criar um evento duplicado | |
{"created": "False"} | Tente criar um evento do tipo "authorize_refund" sem disparar antes "product_sent" ou "product_received" |
No ambiente de produção, o campo code é um identificador customizado opcional destinado ao uso do parceiro. Já no ambiente de sandbox, além de manter essa funcionalidade, o campo também pode ser utilizado para forçar a ocorrência de erros assíncronos específicos durante os testes.
Exemplo de Criação de Evento
Abaixo está um exemplo de como criar um protocolo utilizando CURL.
O exemplo em questão geraria o primeiro cenário descrito na Tabela de Cenários de Erro Assíncronos por ter definido o campo code como erro1.
curl -L 'https://api-sandbox.magalu.com/seller/v0/tickets/:ticket_id/events' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>' \
-d '{
"code": "erro1",
"type": "product_sent"
}'
Para mais detalhes, consulte a documentação do endpoint.
Consultar Eventos
Pré-requisitos para Consulta de Eventos
Os endpoints de consulta estão disponíveis no ambiente de sandbox e funcionam da mesma forma que no ambiente de produção. Importante ressaltar:
- Nenhum dado é pré-carregado no ambiente de sandbox
- Os endpoints retornarão apenas os dados criados pelo próprio usuário durante os testes
Exemplo de Consulta de Eventos
Para consultar eventos de um protocolo específico:
curl -L 'https://api-sandbox.magalu.com/seller/v0/tickets/:ticket_id/events' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <token>'
Para mais detalhes, consulte a documentação do endpoint.