Começando
Sandbox e testes
Em desenvolvimento, a Verdin roda com um provedor de pagamentos simulado. Nada de PIX real: você gera cobranças normalmente e as marca como pagas com um clique ou uma chamada de API.
Ativando o modo mock
Defina a variável de ambiente PAYMENT_PROVIDER como mock. Com isso, as cobranças recebem um BR Code de teste e os endpoints de simulação abaixo passam a responder.
PAYMENT_PROVIDER=mock/api/mock/* só existem quando PAYMENT_PROVIDER === "mock". Em produção (mercadopago) eles respondem 404 — não há risco de liquidar cobranças reais por engano.Simular pelo checkout
Ao abrir a página de pagamento de uma cobrança (a payment_url, ex.: http://localhost:3900/pay/<id>) no modo mock, aparece um botão “Simular pagamento”. Clicar nele liquida a cobrança exatamente como um PIX real: gera o lançamento no extrato, notifica a venda e dispara o webhook charge.paid.
Simular um pagamento PIX
/api/mock/payMarque uma cobrança PENDING como paga informando o chargeId. É idempotente: chamar de novo não duplica a venda.
curl http://localhost:3900/api/mock/pay \
-H "Content-Type: application/json" \
-d '{ "chargeId": "clx123abc..." }'Simular uma compra no cartão
/api/mock/card-purchaseDispara o motor de autorização de um cartão emitido: valida status, limite mensal e saldo, registra a transação e (se aprovada) debita o saldo.
curl http://localhost:3900/api/mock/card-purchase \
-H "Content-Type: application/json" \
-d '{
"card_id": "clxcard...",
"merchant_name": "Padaria do Zé",
"amount": 1290,
"category": "food"
}'A resposta indica se foi aprovada e, se não, o motivo:
{
"ok": true,
"approved": false,
"reason": "insufficient_balance",
"transaction": {
"id": "clxtxn...",
"object": "card_transaction",
"card_id": "clxcard...",
"merchant_name": "Padaria do Zé",
"category": "food",
"amount": 1290,
"currency": "BRL",
"status": "declined",
"decline_reason": "insufficient_balance",
"created_at": "2026-07-04T12:00:00.000Z"
}
}Dados de teste úteis
- Crie sua própria conta em
/cadastro— comPAYMENT_PROVIDER=mockela já nasce em modo sandbox, sem mover dinheiro real. - Gere sua chave de API em Desenvolvedor no painel; cada chave é única por conta, nunca publicada aqui.
- Cartões emitidos no mock usam o BIN de teste
424242e nunca são válidos em ambiente real.