Pular para o conteúdo principal

Checklist de homologação em staging

Cada frente está pronta para produção quando os itens dela passam em staging. As frentes de venda usam uma máquina de teste da ETech; combine o uso com o seu contato.

Faça só as frentes do seu projeto. Acesso vale para todas, e os benefícios e a NFC-e pedem o webhook pronto antes.

Acesso​

  • Credenciais recebidas: API key, client_id e client_secret
  • Token obtido no POST /oauth2/token e reaproveitado até vencer

Verificação de maioridade​

  • App abre pelo QR code e lê verificationId e document
  • Resultado aprovado enviado: resposta 200 com Approved, e a máquina recebe o resultado
  • Resultado reprovado enviado: resposta 200 com Rejected, e a máquina recebe o resultado
  • O mesmo resultado reenviado responde 200, sem efeito novo
  • Resultado enviado depois de 10 minutos responde 410
  • CPF diferente do digitado na máquina responde 422

Webhook de venda​

  • URL, e-mail técnico e eventos cadastrados, e segredo de assinatura recebido
  • O botão "Testar" do painel termina como entregue
  • Uma venda na máquina de teste chega como sale.completed com assinatura válida
  • Um POST com assinatura alterada ou timestamp de mais de 5 minutos é recusado com 401
  • Um evento reenviado pelo painel responde 2xx sem efeito novo
  • Um estorno chega como sale.canceled, com sequence maior que o da venda
  • Com a NFC-e emitida pela ETech, chega sale.invoice_issued com a chave de acesso
  • O feed devolve os mesmos eventos a partir de um after antigo, e o next avança

Produto e estoque​

  • Um EAN novo cadastrado responde created: true e aparece no catálogo da ETech, sem preço
  • O mesmo EAN enviado de novo só com name muda o nome e mantém o resto
  • Um EAN com dígito verificador errado responde 400 INTEGRATION_PRODUCT.INVALID_EAN
  • Uma carga de 3 linhas com unitCost termina Applied, e o depósito sobe nas 3 quantidades
  • A mesma carga reenviada com a mesma Idempotency-Key responde 200 e não soma de novo
  • Uma carga com um EAN desconhecido termina Rejected, com o erro na linha e nada aplicado
  • Uma carga de produto sem custo médio e sem unitCost termina Rejected com UNIT_COST_REQUIRED
  • A consulta de estoque mostra o depósito e as máquinas da empresa, e o next avança até uma página vazia

Benefícios do consumidor​

  • URL e header cadastrados, e "Programa do ERP externo" escolhido nas configurações
  • O quote de um CPF com saldo devolve saldo e regra, e a máquina mostra o valor máximo
  • O quote de um CPF desconhecido responde 404, e a máquina segue sem benefício
  • Com requiresConfirmationCode, o consumidor recebe o código, e o código certo libera o desconto
  • O mesmo pedido de código com a mesma idempotencyKey não envia um segundo código
  • A venda concluída chega no sale.completed com loyalty, e o saldo é debitado uma vez só
  • O estorno da venda chega no sale.canceled, e débito e crédito são desfeitos
  • Com a API fora do ar, a máquina vende sem benefício em até 3 s

NFC-e pelo ERP externo​

  • "Pelo ERP externo" escolhido em Configurações → Operação
  • Uma venda na máquina de teste chega como sale.completed, com invoice.issuer igual a ExternalErp e channel igual a VendingMachine
  • A NFC-e é emitida com os itens e os pagamentos do evento, e com o CNPJ da credenciadora
  • O mesmo evento recebido duas vezes não emite uma segunda nota
  • O pedido de e-mail na máquina chega como sale.receipt_requested, e o consumidor recebe a nota
  • Um estorno chega como sale.canceled, e a nota é cancelada
  • O PUT .../invoice responde 204, e o painel mostra a chave no detalhe da venda