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.

.env
PAYMENT_PROVIDER=mock
Os endpoints /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

POST/api/mock/pay

Marque uma cobrança PENDING como paga informando o chargeId. É idempotente: chamar de novo não duplica a venda.

cURL
curl http://localhost:3900/api/mock/pay \
  -H "Content-Type: application/json" \
  -d '{ "chargeId": "clx123abc..." }'

Simular uma compra no cartão

POST/api/mock/card-purchase

Dispara 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
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:

JSON
{
  "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 — com PAYMENT_PROVIDER=mock ela 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 424242 e nunca são válidos em ambiente real.