Snippets de integração

Gerar Cartão de Crédito Válido no Seu Código

Snippets prontos pra chamar a geração de cartão via API dentro do seu stack. Node.js, Python, PHP, curl. Todos os cartões passam Luhn (mod-10), inclui bandeira aleatória entre Visa, Mastercard, Elo, Hipercard e Amex. Grátis, sem cadastro.

Teste no browser - depois copie o snippet abaixo pra usar no seu projeto

Clique em Gerar para começar

Node.js / TypeScript

// Gerar 50 cartões pra fixture de teste
const res = await fetch(
  "https://fakeforge.com.br/api/generate?type=creditCard&quantity=50"
);
const { data } = await res.json();

// data = [
//   { number: "4485...", brand: "visa", cvv: "123", expiry: "12/28" },
//   { number: "5187...", brand: "mastercard", cvv: "456", expiry: "03/29" },
//   ...
// ]

// Usar em fixture do Vitest / Jest
export const cardFixtures = data;

Python (pytest)

import pytest
import requests

@pytest.fixture(scope="session")
def credit_cards():
    """100 cartões válidos (Luhn) pra sessão de testes"""
    res = requests.get(
        "https://fakeforge.com.br/api/generate",
        params={"type": "creditCard", "quantity": 100}
    )
    return res.json()["data"]

def test_checkout_accepts_visa(credit_cards, checkout_client):
    visas = [c for c in credit_cards if c["brand"] == "visa"]
    for card in visas[:5]:
        response = checkout_client.post("/pay", json=card)
        assert response.status_code == 200

PHP (Laravel factory)

use Illuminate\Support\Facades\Http;

// database/factories/PaymentFactory.php
public function definition(): array
{
    $response = Http::get('https://fakeforge.com.br/api/generate', [
        'type' => 'creditCard',
        'quantity' => 1,
    ]);

    $card = $response->json('data.0');

    return [
        'card_number' => $card['number'],
        'brand' => $card['brand'],
        'cvv' => $card['cvv'],
        'expiry' => $card['expiry'],
    ];
}

curl (bash / CI/CD)

# Salvar 500 cartões como JSON pra fixture versionada
curl "https://fakeforge.com.br/api/generate?type=creditCard&quantity=500" \
  -o fixtures/credit_cards.json

# CSV pra importar no banco de staging
curl "https://fakeforge.com.br/api/generate?type=creditCard&quantity=1000&format=csv" \
  -o fixtures/cards.csv

# SQL com CREATE TABLE + INSERT em lote
curl -X POST "https://fakeforge.com.br/api/generate" \
  -H "Content-Type: application/json" \
  -d '{"type":"creditCard","quantity":1000,"format":"sql"}' \
  -o seed/credit_cards.sql

Free tier vs Plano Dev

Free (sem cadastro): 50 chamadas/dia, até 100 cartões por chamada = ~5.000 cartões/dia máximo. Cobre 90% dos casos de teste local e CI leve.

Plano Dev (R$29/mês): 10.000 chamadas/dia, até 10.000 cartões por chamada = 100.000.000/dia teórico. Pra CI pesado, seed de staging com >10k rows, ou stress-test.

Perguntas Frequentes

Precisa cadastrar pra usar a API?+

Não. 50 chamadas/dia sem cadastro, sem API key, sem cartão. Basta chamar o endpoint. Rate limit é por IP.

Como escolher só uma bandeira?+

Use o parâmetro brand: ?type=creditCard&brand=visa&quantity=50. Bandeiras aceitas: visa, mastercard, elo, hipercard, amex. Sem o parâmetro, distribui aleatoriamente.

Os cartões incluem nome do titular?+

O endpoint /api/generate?type=creditCard retorna número, bandeira, CVV e validade. Pra incluir nome, use o preset customer que devolve cartão + pessoa + endereço correlacionados em 1 chamada.

Como paralelizar chamadas no CI?+

Com o Free tier (50/dia por IP), rode a chamada 1 vez no início do CI e cacheie o resultado como fixture. Pra grandes volumes, use plano Dev que tem 10.000/dia.

O formato SQL funciona no MySQL e PostgreSQL?+

Sim. O SQL gerado usa CREATE TABLE IF NOT EXISTS + INSERT genérico compatível com MySQL, PostgreSQL, SQLite, SQL Server e MariaDB.

Ferramentas relacionadas