Conectar Stark Bank
⏱ Tempo estimado: 15-20 minutos
O Stark Bank usa autenticação ECDSA com par de chaves (pública/privada), o que é mais seguro que API keys simples.
1
Criar conta no Stark Bank
- Acesse starkbank.com
- Clique em "Abrir conta" ou "Get Started"
- O Stark Bank exige CNPJ — é voltado pra empresas
- Preencha os dados e envie documentação pra verificação
- Aguarde aprovação (pode levar alguns dias)
2
Criar um projeto (Project)
- Acesse seu workspace no Stark Bank
- Vá em Developers → Projects
- Clique em "Create Project"
- Dê um nome (ex: "Hubpay")
- Copie o Project ID (número longo, ex:
5155165527080960)
3
Gerar par de chaves ECDSA
O Stark Bank usa criptografia ECDSA (curva secp256k1, a mesma do Bitcoin) pra autenticação. Você precisa gerar um par de chaves.
No terminal:
bash
# Gerar chave privada
openssl ecparam -name secp256k1 -genkey -noout -out private-key.pem
# Extrair chave pública
openssl ec -in private-key.pem -pubout -out public-key.pemOu usando o SDK do Stark Bank (Node.js):
javascript
const starkbank = require('starkbank');
const [privateKey, publicKey] = starkbank.key.create();
console.log('Chave privada:', privateKey);
console.log('Chave pública:', publicKey);
// Salve ambas em arquivos .pem seguros4
Registrar chave pública no Stark Bank
- No painel Stark Bank, vá em Developers → Projects → seu projeto
- Cole a chave pública (
public-key.pem) no campo indicado - Salve
⚠️A chave pública é registrada no Stark Bank. A chave privada fica APENAS com você (e será cadastrada no Hubpay, criptografada).
5
Conectar no Hubpay
- Acesse hubpay.dev/dashboard/psps
- Clique em Conectar novo PSP
- Selecione Stark Bank
- Selecione o ambiente:
- Test se está usando sandbox
- Live se está usando produção
- Dê um label (ex: "Stark Bank principal")
- Preencha:
- Project ID: cole o ID do projeto (ex:
5155165527080960) - Chave Privada ECDSA: cole o conteúdo completo do arquivo
private-key.pem(incluindo-----BEGIN EC PRIVATE KEY-----e-----END EC PRIVATE KEY-----) - Ambiente Stark Bank: Sandbox ou Production
- Project ID: cole o ID do projeto (ex:
- Clique em Salvar credencial
💡Sua chave privada é criptografada com AES-256-GCM antes do armazenamento.
6
Configurar webhook
Após salvar, a tela mostrará a URL e o token do webhook. Copie ambos e configure no painel do Stark Bank:
- No painel Stark Bank → Developers → Webhooks
- Clique em "Create Webhook"
- Cole a URL e configure o token no header HTTP
x-hubpay-token - Selecione eventos:
invoice.created,invoice.paid,invoice.canceled,invoice.expired - Salve
7
Testar
bash
curl -X POST https://api.hubpay.dev/v1/charges \
-H "Authorization: Bearer hpx_test_SUA_CHAVE_HUBPAY" \
-H "Content-Type: application/json" \
-d '{
"amount": 1000,
"provider": "starkbank",
"description": "Teste Stark Bank"
}'⚠️No sandbox do Stark Bank, invoices são pagas automaticamente em poucos segundos. Isso facilita o teste — basta criar e aguardar o webhook de pagamento.
Solução de problemas
| Erro | Causa | Solução |
|---|---|---|
502 com "invalid signature" | Chave privada incorreta ou não corresponde à pública registrada | Regenere o par de chaves e registre novamente no Stark Bank |
502 com "project not found" | Project ID incorreto | Verifique o ID no painel Stark Bank |
502 com "environment mismatch" | Credencial de produção usada com ambiente sandbox ou vice-versa | Confira o campo "Ambiente Stark Bank" no cadastro |
Invoice não gera brcode | Pode ser limitação temporária do sandbox | Tente criar outra invoice; o sandbox é eventual |
Sobre as chaves ECDSA
- Chave privada: fica no Hubpay (criptografada) e é usada pra assinar requisições
- Chave pública: fica registrada no Stark Bank pra validar as assinaturas
- Se a chave privada for comprometida, gere novo par e atualize em ambos (Stark Bank e Hubpay)
- O Stark Bank usa curva secp256k1 (mesma do Bitcoin)