Pular para o conteúdo principal

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:

  1. O protocolo referente ao evento deve existir previamente no sistema e deve estar aberto
  2. Apenas protocolos do tipo cancellation (cancelamento) podem receber eventos
  3. Somente os seguintes tipos de eventos são permitidos:
    • authorize_refund - Autorização de reembolso
    • product_sent - Produto enviado para devolução
    • product_received - Produto recebido após devolução
    • return_info_sent - Informações de devolução enviadas
  4. O evento authorize_refund somente poderá ser criado após o registro prévio dos eventos product_sent ou product_received.

Cenários de Erros Imediatos

São erros retornados imediatamente como resposta à requisição.

CenárioCódigo de RespostaCondições para emular o cenário
"Ticket '{ticket_id}' não encontrado."404Tente criar um evento utilizando um ticket_id inexistente.
"Não é possível adicionar eventos em tickets fechados."400Tente criar um evento utilizando um ticket_id referente a um protocolo fechado.
"Unprocessable entity"422Tente 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áriocodeCondições para emular cenário
{"created": "False"}erro1Nã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"
info

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.