Pular para o conteúdo
Painel

Atenção: Proposta provisória de contrato

Estes endpoints ainda não estão em operação e nenhum SDK foi publicado. Os exemplos usam apenas identificadores de teste e nada é enviado a lugar nenhum.

Primeiros passos

Guia rápido

De uma chave de teste a uma cobrança de teste paga em cinco passos, só com cURL ou fetch. Nada para instalar.

  1. Passo 1: Pegue suas chaves de teste

    Copie a chave secreta de teste na área de desenvolvedores do painel.

  2. Passo 2: Guarde a chave secreta

    Deixe-a numa variável de ambiente do seu servidor, nunca no navegador.

  3. Passo 3: Crie uma cobrança

    Chame POST /v1/charges com um valor, uma descrição e os métodos aceitos.

  4. Passo 4: Pague no checkout de teste

    Abra o checkout_url e pague com um cartão de teste ou com a simulação de Pix.

  5. Passo 5: Confirme o pagamento

    Receba charge.paid no seu webhook, ou consulte a cobrança e confira o status.

Antes de começar

  • Um terminal com curl, ou qualquer ambiente JavaScript com fetch global (Node.js 18 ou mais recente, Deno, Bun).
  • Acesso ao painel de demonstração. Tudo nele são dados de teste.

Atenção: Os endpoints ainda não respondem

O contrato é uma proposta, então as requisições abaixo mostram exatamente o formato que você vai enviar, mas hoje não recebem resposta. Os passos 3 a 5 podem ser percorridos de ponta a ponta no painel, que simula os mesmos objetos.

1. Pegue suas chaves de teste

Abra Desenvolvedores → Chaves de API. Lá estão duas chaves: a chave secreta (kp_test_sk_…), que o seu servidor usa em toda chamada à API, e a chave publicável (kp_test_pk_…), reservada para uso futuro no navegador. Este guia só precisa da chave secreta.

2. Guarde a chave secreta

Coloque a chave numa variável de ambiente chamada KROKOPAY_SECRET_KEY. O resto da documentação lê a chave dali, então nenhum exemplo contém uma chave que você possa versionar por engano.

# Current terminal session only. Paste the test secret key from the dashboard.export KROKOPAY_SECRET_KEY="kp_test_sk_4f9a2c7e1b8d4a6f9c3e5d7b"
Informação: Prefixos, armazenamento e troca de chaves estão em Chaves de API.

3. Crie uma cobrança

Envie o valor em centavos, a moeda, uma descrição que o comprador vai ver e os métodos que você aceita. O cabeçalho Idempotency-Key torna a chamada segura para repetir: reenviar com a mesma chave nunca cria uma segunda cobrança (veja Idempotência).

Endpoint: POST/v1/charges
curl -X POST https://api.krokopay.app/v1/charges \  -H "Authorization: Bearer $KROKOPAY_SECRET_KEY" \  -H "Idempotency-Key: order_1042" \  -H "Content-Type: application/json" \  -d '{    "amount": 49700,    "currency": "BRL",    "description": "Curso Identidade Visual do Zero",    "customer_id": "cus_8Hq2LmZr4TxN1a",    "methods": [      "pix",      "card"    ]  }'

A cobrança volta como pending e com method: null, porque o comprador ainda não escolheu entre Pix e cartão. Guarde o id junto com o seu pedido.

4. Pague no checkout de teste

Redirecione o comprador para o checkout_url (https://krokopay.app/pay/{id}). No ambiente de teste, o comprador é você:

Redirecionar para o checkout hospedadoTypeScript
// After creating the charge on your server, send the buyer to its hosted checkout.const charge = await response.json();​// Express-style handler: redirect the browser.res.redirect(303, charge.checkout_url);// → https://krokopay.app/pay/chg_9Qs5MbT2kXn8Vd
  • Cartão: use 4242 4242 4242 4242 com qualquer validade futura e qualquer CVC. O pagamento é aprovado.
  • Pix: escolha Pix para receber um QR Code fictício, abra os Controles de demonstração e toque em Confirmar pagamento Pix.

Para testar hoje, crie uma cobrança em Pagamentos → Novo pagamento e abra o link do checkout: o fluxo é o mesmo que os seus compradores vão ver.

5. Confirme o pagamento

Quando o comprador paga, a KrokoPay envia um evento charge.paid para o seu endpoint de webhook. Libere o pedido ali, depois de verificar a assinatura (veja Webhooks).

charge.paidJSON
{  "id": "evt_6Ff7Gg8Hh9Ii0J",  "object": "event",  "type": "charge.paid",  "api_version": "2026-11-01",  "created_at": "2026-11-03T14:23:41.000Z",  "data": {    "object": {      "id": "chg_4Fp9KzW1xQm7Rt",      "object": "charge",      "amount": 49700,      "currency": "BRL",      "status": "paid",      "method": "pix",      "card": null,      "description": "Curso Identidade Visual do Zero",      "customer_id": "cus_8Hq2LmZr4TxN1a",      "product_id": "prod_3Vb7QpK9sWd2Ee",      "price_id": "price_5Kd1NcR8vYq3Hm",      "link_id": "plink_2Wn6HsT9cVb4Lq",      "subscription_id": null,      "fee": null,      "net": null,      "refunded_amount": 0,      "failure_code": null,      "created_at": "2026-11-03T14:22:05.000Z",      "paid_at": "2026-11-03T14:23:41.000Z",      "expires_at": "2026-11-03T14:37:05.000Z",      "available_at": null,      "checkout_url": "https://krokopay.app/pay/chg_4Fp9KzW1xQm7Rt"    }  }}

Sem webhook, você pode consultar a cobrança e conferir se o status é paid:

Endpoint: GET/v1/charges/{id}
curl https://api.krokopay.app/v1/charges/chg_4Fp9KzW1xQm7Rt \  -H "Authorization: Bearer $KROKOPAY_SECRET_KEY"

Sucesso: Pronto

Você criou uma cobrança, pagou no checkout de teste e confirmou o pagamento. Essas três chamadas são a integração inteira de uma venda avulsa.

Próximos passos