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_refund
somente poderá ser criado após o registro prévio dos eventosproduct_sent
ouproduct_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.