Feita para desenvolvedores

Você desenvolve. A KyvoPay cuida da infraestrutura.

Quer uma infraestrutura de pagamentos para a sua plataforma? Vem para a KyvoPay. Integre Pix, webhooks e automações com uma API simples, segura e pronta para crescer com o seu produto.

API direta

Rotas previsíveis e respostas em JSON.

Webhooks assinados

Eventos em tempo real com retentativas.

Sandbox e produção

Chaves separadas para testar com segurança.

Idempotência nativa

Evite cobranças duplicadas por padrão.

Primeira cobrança Pix

Poucas linhas para começar

POST /v1/payments
const payment = await kyvo.payments.create({
  method: "pix",
  amountCentavos: 12990,
  description: "Pedido #8291",
});
Pagamento criado e pronto para receber confirmação por webhook.

Documentação técnica

Tudo para integrar a KyvoPay

Autenticação, pagamentos Pix, webhooks, idempotência e respostas padronizadas em um só lugar.

Autenticação

Use sua chave no header X-API-Key. Chaves kyvo_test_ operam em sandbox; kyvo_live_, em produção. A chave completa é exibida uma única vez na criação.

Criar um pagamento Pix

POST https://api.kyvopay.com.br/v1/payments
X-API-Key: kyvo_live_...
Idempotency-Key: pedido-8291
Content-Type: application/json

{"method": "pix", "amount_centavos": 12990, "description": "Pedido #8291"}

Resposta com envelope padrão em todas as rotas:

{"data": {"id": "pay_…", "status": "pending", "pix_qr_code": "…", "pix_copy_paste": "…", "expires_at": "…"},
 "error": null, "request_id": "req_…"}

Webhooks

Cadastre um endpoint HTTPS no painel. Cada entrega leva o header Kyvo-Signature: t=<unix>,v1=<hmac_sha256> calculado sobre t.body com o seu segredo whsec_…. Retentativas: 1m, 5m, 30m, 2h e 6h.

# validação (pseudocódigo)
expected = hmac_sha256(secret, f"{t}.{raw_body}")
assert constant_time_equals(expected, v1)

Idempotência

Envie Idempotency-Key em POSTs de cobrança. Repetições com a mesma chave devolvem o mesmo pagamento — nunca cobram duas vezes.

Erros

{"data": null,
 "error": {"code": "insufficient_balance", "message": "Saldo insuficiente para este saque.", "details": {}},
 "request_id": "req_…"}

Para agentes de IA

Um resumo da API legível por máquinas está disponível em /llms.txt.