Primeiro teste em 10 minutos
Tudo aqui acontece no ambiente de testes: loja e cliente fictícios, nenhum dinheiro real.
1. Crie uma chave de teste
No portal, abra Aplicativos → (seu aplicativo) → Chaves de API com o seletor em Testes e clique em Criar chave. Confirme com o código enviado ao seu e-mail e copie a chave mn_test_… — ela não aparece de novo.
export MN_CHAVE="mn_test_…"
export MN_API="https://moedanobre.com/api/v1"
2. Confira a chave
curl -s "$MN_API/ping" -H "Authorization: Bearer $MN_CHAVE"
{ "ok": true, "ambiente": "TESTE", "aplicativo": { "id": "…", "nome": "Meu sistema de PDV" }, "servidorEm": "2026-09-25T14:03:11-03:00" }
3. Gere dados de exemplo
No portal, em Dados de teste, clique em Gerar dados de exemplo. Você recebe uma loja de teste, dois clientes de teste (R$ 500,00 cada) e um código de ativação T-XXXX-XXXX, mostrado uma única vez.
Na vida real, quem gera o código é o gerente da loja, no painel dele, e o técnico digita no caixa.
4. Ligue um caixa
curl -s -X POST "$MN_API/pontos-de-venda/ativar" \
-H "Authorization: Bearer $MN_CHAVE" -H "Content-Type: application/json" \
-d '{ "codigoAtivacao": "T-ABCD-EFGH", "identificadorExterno": "CAIXA-01", "nome": "Caixa da entrada" }'
A resposta é o caixa (status: "ATIVO"). Guarde o id: é o pontoDeVendaId das cobranças.
5. Crie uma cobrança
curl -s -X POST "$MN_API/cobrancas?semImagem=true" \
-H "Authorization: Bearer $MN_CHAVE" -H "Content-Type: application/json" \
-H "Idempotency-Key: cupom-000123" \
-d '{ "pontoDeVendaId": "<id do caixa>", "valorCentavos": 4590, "referenciaExterna": "CUPOM-000123" }'
A resposta traz qrCode.conteudo: é o texto que vira o QR Code no caixa (sem ?semImagem=true, vem também qrCode.imagemPng pronto para exibir).
6. Pague pelo celular de teste
No portal, abra Dados de teste → Celular de teste, aponte a câmera para o QR (ou cole o conteúdo), escolha um cliente de teste e use o PIN 1234.
7. Descubra que foi paga
Segure a consulta aberta por até 25 segundos — ela volta assim que o status muda:
curl -s "$MN_API/cobrancas/<id da cobrança>?aguardar=25&semImagem=true" -H "Authorization: Bearer $MN_CHAVE"
{ "id": "…", "status": "PAGA", "valorCentavos": 4590, "pagaEm": "2026-09-25T14:04:02-03:00", … }
Pronto: esse é o fluxo inteiro. Depois, veja webhooks (opcional), os cenários automáticos de teste e as boas práticas — a tela Homologação do portal acompanha o que já foi provado.
