# Executar os exemplos Use o simulador local configurado no projeto e emita uma chave de tenant pelo painel. O arquivo `pix-request.json` contém dados fictícios e não deve ser usado para cobrança real. Novas cobranças Pix exigem telefone com dígitos e endereço brasileiro completo; o exemplo inclui ambos. Para uma tentativa antiga já registrada, preserve seu arquivo e sua chave originais, mesmo que não contivessem esses campos. Não acrescente dados fictícios a um pedido real nem altere seu corpo para tentar repetir a mesma chave. Na raiz do repositório, defina `CALEBE_API_URL` (padrão `http://localhost:18080`), `CALEBE_API_KEY` e `CALEBE_IDEMPOTENCY_KEY`. A chave de idempotência deve ser persistida no pedido antes de executar. Nenhum exemplo gera uma chave nova silenciosamente. ```sh node docs/examples/create-pix.mjs python3 docs/examples/create_pix.py go run docs/examples/create_pix.go ``` Execute um dos exemplos. Usando o mesmo tenant, payload e `CALEBE_IDEMPOTENCY_KEY`, os três devem retornar o mesmo ID, por idempotência. `CALEBE_REQUEST_FILE` permite apontar para um payload salvo por sua aplicação; reutilize esse mesmo arquivo nos retries. As respostas são impressas sem expor a chave de API. Os programas não realizam retries automáticos e não seguem redirects com credenciais. Uma falha de transporte significa resposta incerta e exige preservar o pedido original. ## Boleto Leia [o guia completo](../boleto.md). Configure `enabled_methods` e uma regra do método boleto no simulador, e emita chave com `boleto:write` e `transactions:read`. O padrão de providers/chaves permanece Pix; boleto exige opt-in. Prepare o payload uma única vez com vencimento em sete dias; o comando se recusa a sobrescrever o arquivo: ```sh node docs/examples/prepare-boleto.mjs .local/boleto-request.json export CALEBE_REQUEST_FILE=.local/boleto-request.json export CALEBE_IDEMPOTENCY_KEY=pedido-boleto-exemplo-42-tentativa-1 # CALEBE_API_KEY e CALEBE_API_URL já vêm do ambiente seguro. node docs/examples/create-boleto.mjs # Alternativas com o MESMO arquivo e chave: python3 docs/examples/create_boleto.py go run docs/examples/create_boleto.go ``` O arquivo versionado `boleto-request.json` é um modelo com `YYYY-MM-DD`, não um payload pronto para emissão. O preparador produz o arquivo executável; não regenere sua data nos retries. A mesma chave não pode ser reaproveitada entre Pix e boleto: o namespace tenant/chave é compartilhado e a troca de método gera 409. Os dados são fictícios para simulador local, sem linha digitável ou boleto pagável. Safe2Pay oferece sandbox de boleto mediante credencial específica; `simulated=false` com `environment=sandbox` continua sendo teste, não pagamento real. Emissão financeira exige autorização explícita de produção.