5 fluxos que exigem a API do FakeForge
5 fluxos que exigem a API do FakeForge (não só a UI web)
7 min de leitura
A UI web do FakeForge resolve o 20% dos casos: dev abre, gera 1 CPF, copia, cola em formulário, segue a vida. Mas 80% do que o produto faz exige API REST. Esses são os 5 fluxos onde a UI não serve e a API resolve em 1 chamada.
Todos funcionam no Free (50 chamadas/dia). Nenhum pede upgrade pro Dev. Alguns ficam melhores com Dev por volume, mas o fluxo em si é universal.
1. Seed de banco em staging com 1000 registros em 1 chamada
A UI web gera 1 item por vez. A API aceita quantity=1000 no Free (10.000 no Dev). Com script Node de 5 linhas, você popula tabela customers com dados válidos antes do primeiro teste rodar.
// prisma/seed.ts (Node + Prisma)
import { PrismaClient } from "@prisma/client";
const prisma = new PrismaClient();
async function main() {
const res = await fetch(
"https://fakeforge.com.br/api/generate?preset=customer&quantity=1000"
);
const { data } = await res.json();
await prisma.customer.createMany({
data: data.map((c: any) => ({
cpf: c.cpf,
name: c.name,
email: c.email,
phone: c.phone,
})),
});
console.log(`✓ ${data.length} customers inseridos`);
}
main();Roda com npx tsx prisma/seed.ts. 1 chamada API = 1000 customers. Pra Django/Rails/Laravel, mesma lógica, varia só o ORM.
2. CI/CD determinístico com fixtures
Teste flaky é teste que falha às vezes sem motivo visível. Causa comum: dado gerado aleatório. Fix: usar seed determinístico. Mesmo seed, mesma saída.
# .github/workflows/test.yml
- name: Fixtures determinísticas
run: |
curl -s "https://fakeforge.com.br/api/generate?preset=customer&quantity=100&seed=pr-${{ github.event.number }}" \
> tests/fixtures/customers.json
- name: pytest
run: pytest tests/ -vCada PR número N tem seed pr-N. Fixtures reproduzíveis. Flaky test some. Debug fica fácil: você consegue regenerar os dados exatos que quebraram no CI.
3. Checkout PIX com QR Code dinâmico pra teste E2E
Testar fluxo de pagamento PIX exige QR Code válido no padrão EMV BR Code com CRC16 correto. Fazer isso manualmente é 50 linhas de código. A API devolve pronto.
// Playwright E2E
import { test, expect } from "@playwright/test";
test("checkout PIX dinâmico", async ({ page }) => {
const res = await fetch(
"https://fakeforge.com.br/api/generate?preset=pix_dynamic&amount=99.90"
);
const { data: [pix] } = await res.json();
// pix.key, pix.qrcode_payload, pix.qrcode_crc16, pix.amount
await page.goto("/checkout");
await page.fill("#pix-key", pix.key);
await page.click("#pay-with-pix");
await expect(page.locator("[data-testid=qrcode-img]")).toBeVisible();
});Preset pix_dynamic devolve chave BACEN + payload EMV + CRC16 em uma chamada. Zero mock manual.
4. Load test com 100K payloads sem gastar quota
K6/Locust rodando load test precisa de dados realistas pra cada request. Chamar a API em cada iteração = esgota quota em minutos. Fix: cache local no primeiro run.
// k6-script.js
import http from "k6/http";
import { SharedArray } from "k6/data";
const customers = new SharedArray("customers", function () {
// Baixa 1000 customers na primeira execução. Cache em disco.
const res = http.get("https://fakeforge.com.br/api/generate?preset=customer&quantity=1000");
return JSON.parse(res.body).data;
});
export const options = { vus: 100, duration: "5m" };
export default function () {
const c = customers[Math.floor(Math.random() * customers.length)];
http.post("https://meu-app.com/api/signup", JSON.stringify(c));
}1 chamada ao FakeForge, 100K requests ao seu app. Load test realista com 1 unidade da quota Free.
5. CNPJ alfanumérico pra migrar antes de 01/07/2026
A Instrução Normativa RFB 2.229/2024 autoriza CNPJs com letras A-Z nas 12 primeiras posições a partir de 01/07/2026. Dois dígitos verificadores continuam numéricos mas o cálculo mod-11 agora processa letras pelo código ASCII menos 48.
Nenhuma outra lib brasileira que testei gera com DV correto. Testei brutils-py, pycpfcnpj, validation-br no npm: todos ou retornam formato antigo ou DV errado no novo. O FakeForge devolve correto.
curl "https://fakeforge.com.br/api/generate?type=cnpj&format=alpha&quantity=10"
# Resposta:
{
"data": [
"12.ABC.345/0001-67",
"AB.123.CDE/0001-89",
...
]
}Teste seu validador de CNPJ com esses dados agora. Em julho de 2026, cnpjs novos vão aparecer em cadastros. Se sua validação ainda espera só dígitos, cadastro vai falhar silenciosamente.
Resumo em 1 tabela
| Fluxo | UI resolve? | Chamadas Free | Preset |
|---|---|---|---|
| Seed banco 1000+ registros | ❌ | 1 | customer |
| CI/CD determinístico | ❌ | 1 por PR | seed=N |
| Checkout PIX E2E | ❌ | 1 por teste | pix_dynamic |
| Load test 100K payloads | ❌ | 1 (cache) | customer |
| CNPJ alfanumérico 2026 | ⚠️ só UI simples | 1 | cnpj format=alpha |
Como começar
1. Pega sua API key em fakeforge.com.br/dashboard. Grátis, sem cadastro de cartão.
2. Instala o SDK se quiser: npm install fakeforge-br ou pip install fakeforge-br. Ou chama direto via curl, qualquer linguagem.
3. Começa pelo fluxo que mais dói pra você. Seed de banco é o mais comum. CI/CD determinístico é o que mais dá dor de cabeça. CNPJ alfanumérico é o único com data de vigência real.
Se travar em algum fluxo, responde esse email ou abre issue no GitHub. Eu respondo pessoalmente.