API QRCODE

Visão Geral da API QRCode

Crie cobranças Pix com QR Code dinâmico (txid), mostre o pixCopiaECola ao pagador, confirme o pagamento e receba o dinheiro na conta.

Servidor basehttps://bank.granseuk.com/api/v2

Especificações da API

Baixe o arquivo da especificação (OpenAPI) para importar no Postman ou no Insomnia e testar as requisições.

Receber Pix: da cobrança à confirmação

  • PUT /cob/{txid} (ou POST /cob) com o valor e a validade. A resposta traz o pixCopiaECola: mostre-o (ou o QR Code dele) ao pagador.
  • Quando o pagador paga, o dinheiro entra no saldo na hora e a cobrança vira CONCLUIDA. Com webhooks ativos, chega o aviso receive; sem webhook, consulte GET /cob/{txid} até o status ser CONCLUIDA (a lista pix traz o endToEndId).
  • Libere o pedido só com a cobrança CONCLUIDA. ATIVA é aguardando pagamento; REMOVIDA_PELO_PSP é cobrança vencida.
  • Pix pago direto numa chave da conta (GET /accounts/keys) não tem cobrança: aparece como CREDIT em GET /accounts/transactions e no aviso receive.
  • Para conferir o dinheiro, use GET /accounts/balances (disponível) e GET /accounts/transactions (extrato).

Sandbox (ambiente de testes)

Teste a integração inteira sem mover dinheiro de verdade. No painel, em API, toque em Nova chave e escolha Sandbox: a chave nasce com o prefixo sk_sbx_ e uma conta de mentira com R$ 10.000,00. O resto é igual à produção: a mesma URL base, o mesmo token (POST /oauth/token com o Client ID e o Client Secret da chave de sandbox), as mesmas rotas, os mesmos campos e os mesmos erros. Só o dinheiro é de mentira.

  • Pix enviado (POST /pix/payments/dict e /qrc): responde 202 já com o endToEndId e conclui sozinho em cerca de 4 segundos (LIQUIDATED), com o aviso transfer. A tarifa de teste é R$ 1,00.
  • Chave falha@sandbox.test (EMAIL): o Pix é aceito e falha em cerca de 4 segundos; o valor volta e chega o aviso cashout (CANCELED).
  • Chave recusa@sandbox.test (EMAIL): recusado na hora (400), nada é debitado.
  • Cobrança Pix (PUT /cob/{txid}): fica ATIVA até você pagá-la com o comando de sandbox abaixo; então vira CONCLUIDA, o saldo sobe e chega o aviso receive. O pixCopiaECola de uma cobrança de sandbox também pode ser pago por POST /pix/payments/qrc.
  • Transferência entre contas (POST /internal-transfers): use o documento 111.444.777-35 (qualquer nome) como conta de destino de teste.
  • Consulta de chave (GET /pix/keys/{chave}) devolve dados de teste; naoexiste@sandbox.test responde 404.
  • Webhooks (POST /webhooks/{tipo}): valem só para a chave de sandbox e recebem apenas os avisos de teste; não precisam estar liberados para a conta.

Comandos que fazem o papel do mundo de fora (só com chave de sandbox; com chave de produção respondem 403):

ComandoO que faz
POST /sandbox/cob/{txid}/payPaga a cobrança: saldo sobe, status CONCLUIDA, aviso receive.
POST /sandbox/pix/receiveSimula um Pix pago direto na sua chave. Corpo: { "amount": 25.50, "payer": "Fulano" }.
POST /sandbox/pix/payments/{endToEndId}/completeAdianta a conclusão de um Pix enviado (aviso transfer).
POST /sandbox/pix/payments/{endToEndId}/failForça a falha de um Pix enviado: o valor volta (aviso cashout).
POST /sandbox/balance/topupSoma saldo de mentira. Corpo: { "amount": 500 }.
GET /sandbox/infoLista estas chaves e comandos de teste.
O sandbox é isolado: não usa o saldo real, não passa pela provedora e os endToEndId que ele gera começam com E99999999 (um banco que não existe), então nunca se confundem com um Pix de verdade. Os dados de teste são apagados depois de 30 dias. Quando tudo funcionar, crie uma chave de produção e troque o Client ID e o Client Secret: o código não muda.

Referência da API

Autenticação

Obter token de acesso

POST/oauth/token

Troca o clientId e o clientSecret por um token de acesso (OAuth 2.0, client credentials). O token vale 1 hora; use-o em Authorization: Bearer nas demais rotas. Aceita JSON, formulário (client_id, client_secret, grant_type) ou Authorization: Basic base64(clientId:clientSecret).

Corpo da requisição
CampoTipoDescrição
clientIdobrigatóriostringOs 14 primeiros caracteres da sua chave de API (ex.: sk_live_AbCdEf) ou o id da chave.
clientSecretobrigatóriostringA chave de API completa (sk_live_…).
grantTypeobrigatóriostringSempre client_credentials.
scopestringIgnorado: o token carrega todas as permissões da chave.
  • expiresAt é o instante de expiração em segundos Unix.
  • O token deixa de valer na hora em que a chave é revogada.

Cobranças Pix

Criar cobrança imediata com txid

PUT/cob/{txid}

Cria uma cobrança Pix (QR dinâmico) com o txid que você escolhe: 26 a 35 letras e números. Repetir o PUT com o mesmo txid devolve a mesma cobrança. Cada banco define um valor mínimo por cobrança (abaixo dele: 400 below_limit, com o mínimo na mensagem).

Permissão: cob.write → pix:write

Parâmetros do caminho
CampoTipoDescrição
txidobrigatóriostring26 a 35 letras e números.
Corpo da requisição
CampoTipoDescrição
valor.originalobrigatóriostringValor em reais, texto com ponto ("49.90").
calendario.expiracaointegerValidade em segundos, de 60 a 2592000. Padrão 86400.
devedor.nome, devedor.cpf, devedor.cnpjstringQuem vai pagar (opcional).
solicitacaoPagadorstringTexto mostrado ao pagador, até 140 caracteres.

Criar cobrança imediata (txid gerado)

POST/cob

Igual ao PUT, mas o banco gera o txid e devolve na resposta.

Permissão: cob.write → pix:write

Corpo da requisição
CampoTipoDescrição
valor.originalobrigatóriostringValor em reais, texto com ponto ("49.90").
calendario.expiracaointegerValidade em segundos, de 60 a 2592000. Padrão 86400.
devedor, solicitacaoPagadorobject | stringComo no PUT.

Consultar cobrança imediata

GET/cob/{txid}

O estado da cobrança. Quando paga, status é CONCLUIDA e a lista pix traz o endToEndId. Ao receber, confirme sempre por esta consulta; não confie só em um aviso externo.

Permissão: cob.read → pix:read

Parâmetros do caminho
CampoTipoDescrição
txidobrigatóriostringO txid da cobrança.
  • status: ATIVA (aguardando), CONCLUIDA (paga), REMOVIDA_PELO_USUARIO_RECEBEDOR (cancelada), REMOVIDA_PELO_PSP (expirada).