Início rápido
Do docker run a chamadas com determinismo e população automática do mock do Asaas. Cada comando abaixo pode ser executado como está escrito.
-
Suba
Execute o container oficial do gerador. A porta padrão é
45450e o serviço fica pronto em milissegundos sem dependências de banco de dados.docker run --rm -p 45450:45450 ghcr.io/instituto-ama/generator-mock:latestVerifique o status do serviço chamando o endpoint de saúde:
curl https://instituto-ama.github.io/ama4devs/generator/api/v1/index{ "status": "ok", "service": "generator", "version": "0.2.0" } -
Gere dados
Gere pessoas fictícias completas com CPFs válidos, datas de nascimento coerentes e endereços reais. Você pode fixar uma data de referência com
nowpara garantir que idades e vencimentos permaneçam imutáveis ao longo do tempo.curl https://instituto-ama.github.io/ama4devs/generator/api/v1/person curl https://instituto-ama.github.io/ama4devs/generator/api/v1/cnpj{ "kind": "person", "seed": "demo", "count": 2, "items": [ { "name": "Letícia Lima Pinto", "firstName": "Letícia", "lastName": "Lima Pinto", "gender": "F", "birthDate": "1994-12-21", "age": 31, "cpf": "75423753180", "rg": "480240619", "cnh": "17784470214", "pis": "79734031356", "motherName": "Denise Correia Sampaio", "email": "leticia.pinto91@example.org", "mobilePhone": "19937392567", "phone": "1954050838", "address": { "postalCode": "13986184", "street": "Estrada São Roque", "number": "1619", "complement": "", "district": "Brooklin", "city": "Campinas", "state": "SP", "stateName": "São Paulo", "ibgeCode": "3509502", "country": "Brasil" } }, { "name": "Marcelo Cavalcanti Andrade", "firstName": "Marcelo", "lastName": "Cavalcanti Andrade", "gender": "M", "birthDate": "1961-11-01", "age": 64, "cpf": "44981554168", "rg": "870099644", "cnh": "43525537763", "pis": "63870502741", "motherName": "Jussara Nascimento Farias", "email": "marcelo.andrade@example.com", "mobilePhone": "11958054794", "phone": "1132725780", "address": { "postalCode": "05673977", "street": "Via Dos Campos", "number": "4451", "complement": "Bloco B", "district": "Alto da Lapa", "city": "São Paulo", "state": "SP", "stateName": "São Paulo", "ibgeCode": "3550308", "country": "Brasil" } } ] } -
Determinismo e semente
O algoritmo pseudoaleatório (mulberry32) garante que a mesma semente gere rigorosamente o mesmo conjunto de dados em qualquer máquina ou ambiente de CI. Repita a requisição acima com
seed=demoe receba exatamente o mesmo resultado.curl https://instituto-ama.github.io/ama4devs/generator/api/v1/person/42{ "kind": "person", "seed": "demo", "count": 2, "items": [ { "name": "Letícia Lima Pinto", "firstName": "Letícia", "lastName": "Lima Pinto", "gender": "F", "birthDate": "1994-12-21", "age": 31, "cpf": "75423753180", "rg": "480240619", "cnh": "17784470214", "pis": "79734031356", "motherName": "Denise Correia Sampaio", "email": "leticia.pinto91@example.org", "mobilePhone": "19937392567", "phone": "1954050838", "address": { "postalCode": "13986184", "street": "Estrada São Roque", "number": "1619", "complement": "", "district": "Brooklin", "city": "Campinas", "state": "SP", "stateName": "São Paulo", "ibgeCode": "3509502", "country": "Brasil" } }, { "name": "Marcelo Cavalcanti Andrade", "firstName": "Marcelo", "lastName": "Cavalcanti Andrade", "gender": "M", "birthDate": "1961-11-01", "age": 64, "cpf": "44981554168", "rg": "870099644", "cnh": "43525537763", "pis": "63870502741", "motherName": "Jussara Nascimento Farias", "email": "marcelo.andrade@example.com", "mobilePhone": "11958054794", "phone": "1132725780", "address": { "postalCode": "05673977", "street": "Via Dos Campos", "number": "4451", "complement": "Bloco B", "district": "Alto da Lapa", "city": "São Paulo", "state": "SP", "stateName": "São Paulo", "ibgeCode": "3550308", "country": "Brasil" } } ] } -
Validação
Valide se um CPF, CNPJ, CNH ou PIS atende aos cálculos matemáticos oficiais de dígitos verificadores e rejeição de sequências repetidas.
curl https://instituto-ama.github.io/ama4devs/generator/api/v1/validate/cpf/11144477735{ "type": "cpf", "value": "11144477735", "valid": true } -
Popule o Asaas
No compose do repositório (
make up), o gerador sobe junto com o mock do Asaas (porta45450). Os dois se descobrem sozinhos sem configuração: abra o painel do mock do Asaas em http://localhost:45445 e acesse Integrações › Gerador. Clique em Popular esta conta para cadastrar pessoas e empresas com CPF/CNPJ válidos como clientes da conta selecionada na barra superior, gerando cobranças por Pix, boleto e cartão (parte delas já pagas). Ou clique em Abrir o gerador para usar a interface interativa.Você também pode popular via API com um único comando HTTP:
curl -X POST http://localhost:45450/_mock/asaas/populate \ -H 'Content-Type: application/json' \ -d '{"people":5,"companies":2,"chargesPerCustomer":2,"confirm":0.5}'{ "seed": "kqfp4hwf", "panelUrl": "http://localhost:45445", "customers": [ { "id": "cus_651067071968", "name": "Daniela Moura Aguiar", "cpfCnpj": "81054771812", "personType": "FISICA" }, { "id": "cus_858206104608", "name": "Solange Souza Gonçalves", "cpfCnpj": "23558848624", "personType": "FISICA" } … 7 customers in all ], "payments": [ { "id": "pay_386004571824", "customer": "cus_651067071968", "billingType": "CREDIT_CARD", "value": 4431.17, "dueDate": "2026-11-06", "status": "CONFIRMED", "invoiceUrl": "http://localhost:45445/i/386004571824" }, { "id": "pay_679244559146", "customer": "cus_651067071968", "billingType": "CREDIT_CARD", "value": 2152.34, "dueDate": "2026-11-12", "status": "CONFIRMED", "invoiceUrl": "http://localhost:45445/i/679244559146" } … 14 payments in all ], "errors": [] }A semente no boot fica desligada a menos que definida. Para semear automaticamente na inicialização, defina
GENERATOR_ASAAS_SEED_ON_BOOTno seu.env:GENERATOR_ASAAS_SEED_ON_BOOT=people=10,companies=3,charges=2,confirm=0.5 -
Interface web
O gerador conta com uma interface visual interativa completa. Quando executado em container local, acesse http://localhost:45450. No GitHub Pages, acesse ama4devs/generator/app/ para gerar diretamente no navegador sem necessidade de instalar nada.
Consulte o status da integração com o Asaas pela API:
curl http://localhost:45450/_mock/asaas/status{ "asaasUrl": "http://localhost:45445", "panelUrl": "http://localhost:45445", "reachable": true, "customers": 28 } -
Desligar
A integração vem ligada por padrão. Para não subir o gerador no compose, use
GENERATOR_ENABLED=0no.env(ele ajustadeploy.replicas). Para desativar a busca no mock do Asaas mesmo com o gerador rodando, definaGENERATOR_URL=(vazia): desligado ou não encontrado, a aba Gerador não aparece no painel do Asaas.