Skip to main content
A API é REST com JSON, então o net/http da biblioteca padrão basta. Esta página traz um cliente pronto, para colar no seu projeto, que já faz o que importa: chave no cabeçalho, Idempotency-Key, novas tentativas só quando é seguro, listas por cursor e erros claros.
O SDK oficial de Go está a caminho. Quando sair, esta página passa a usar o pacote; o cliente abaixo continua funcionando, porque fala com a mesma API.
Rode só no servidor. A chave de API vai em todo pedido: nunca a coloque em front-end, app ou repositório. Guarde em variável de ambiente (BUKIO_API_KEY).

O cliente

Go 1.22 ou mais novo, sem dependências. Salve como bukiopay/client.go no seu projeto:
bukiopay/client.go

Exemplos

O Pix vale 30 minutos (expiresAt). Libere o pedido só no webhook payment.paid.

Erros

Webhooks

Confira a assinatura X-Bukio-Signature com o corpo cru, antes de ler o JSON:
bukiopay/webhook.go
main.go
Responda 2xx em até 10 segundos. Veja Validando a assinatura e a lista de eventos.

Tempo real (WebSocket)

Sem endereço HTTPS para webhooks (bot, worker)? Receba os mesmos eventos pelo WebSocket. A biblioteca padrão não tem cliente WebSocket; este exemplo usa github.com/coder/websocket:
Fechamento 1008 quer dizer chave recusada: não reconecte com a mesma chave. Protocolo completo, since, erros e limites em WebSocket.

Próximos passos