API CONTAS

Visão Geral da API Contas

Consulte o saldo e o extrato, envie Pix por chave, acompanhe cada pagamento até a confirmação, tire o comprovante, transfira entre contas do banco.

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.

Enviar Pix: do pedido à confirmação

  • Crie uma x-idempotency-key única para o pedido (por exemplo, o id do seu pedido) e guarde-a.
  • POST /pix/payments/dict com a chave Pix, o valor e a x-idempotency-key. A resposta é 202 com status PROCESSING: o valor já saiu do saldo.
  • Espere o desfecho. Com webhooks ativos, ele chega no aviso transfer (status LIQUIDATED) ou cashout (status CANCELED). Sem webhook, consulte GET /pix/payments/idempotencyKey/{chave} a cada poucos segundos até o status deixar de ser PROCESSING.
  • LIQUIDATED: concluído. O endToEndId vem preenchido e o comprovante está em GET /pix/payments/receipt/{endToEndId}.
  • CANCELED: o Pix não saiu e o valor volta ao saldo sozinho. Pode tentar de novo com uma chave NOVA.
  • Se a conexão cair ou der timeout, NÃO crie outra chave: repita o POST com a MESMA x-idempotency-key (devolve o mesmo pagamento, sem pagar duas vezes) ou consulte pela chave.
statusSignificado
PROCESSINGAceito, a caminho do banco de destino. Ainda não é definitivo.
LIQUIDATEDConcluído: o dinheiro chegou.
CANCELEDNão saiu; o valor voltou ao saldo.

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.

Conta

Consultar saldo da conta

GET/accounts/balances

Saldo em reais. available é o que pode ser gasto agora; blocked, o que está retido (por uma análise do banco, por exemplo).

Permissão: account.read → balance:read

Consultar transações da conta

GET/accounts/transactions

O extrato da conta, mais recente primeiro. As datas são inclusivas (fuso de São Paulo).

Permissão: transactions.read → transactions:read

Parâmetros de consulta
CampoTipoDescrição
event_date_startdate-timeData inicial (ISO 8601; só o dia é usado).
event_date_enddate-timeData final (ISO 8601; só o dia é usado).
page_offsetintegerPosição inicial (itens a pular). Padrão 0.
page_limitintegerItens por página, até 100. Padrão 25.
  • creditDebitType: CREDIT é entrada, DEBIT é saída. transactionAmount.available e amount trazem o mesmo valor.

Listar chaves Pix da conta

GET/accounts/keys

As chaves Pix que o banco gerou para a sua conta. Quem paga uma chave escolhe o valor no aplicativo do banco dele. As chaves são criadas pelo painel do banco; por esta API só se lê.

Permissão: pix.read → pix:read

Pix

Iniciar pagamento Pix por chave Pix

POST/pix/payments/dict

Envia um Pix para uma chave (CPF, CNPJ, e-mail, telefone ou EVP, a chave aleatória). O valor é debitado na hora e o pagamento é aceito para processamento (202). O desfecho (LIQUIDATED ou CANCELED) vem na consulta pelo endToEndId ou pela chave de idempotência. Se for recusado, o valor volta para a conta.

Permissão: pix.write → pix:send

Cabeçalhos
CampoTipoDescrição
x-idempotency-keyobrigatóriostringIdentificador único do pedido (1 a 50 letras e números). Repetir a mesma chave devolve o MESMO pagamento, sem pagar duas vezes.
Corpo da requisição
CampoTipoDescrição
pixKeyobrigatóriostringA chave Pix de destino.
pixKeyTypeobrigatóriostringCPF | CNPJ | EMAIL | PHONE | EVP
payment.amountobrigatórionumberValor em reais, até 2 casas decimais.
payment.currencystringBRL.
descriptionstringTexto do Pix, até 140 caracteres.
priority, paymentFlow, creditorDocument, expiration, endToEndId, ispbDeny—Aceitos e ignorados (o banco escolhe).
  • endToEndId pode vir nulo no 202: ele aparece assim que o Pix segue para o banco de destino. Consulte pela chave de idempotência ou pelo transactionId.
  • id é um número estável; para consultar use endToEndId ou transactionId.

Consultar Pix por end-to-end-id

GET/pix/payments/{endToEndId}

O pagamento completo. Aceita o endToEndId do Pix ou o transactionId devolvido ao criar. 404 se não for um pagamento da sua conta.

Permissão: pix.read → pix:read

Parâmetros do caminho
CampoTipoDescrição
endToEndIdobrigatóriostringO endToEndId do Pix (ou o transactionId).
  • status: PROCESSING, LIQUIDATED, CANCELED, REFUNDED ou WAITING_APPROVAL.

Consultar Pix por chave de idempotência

GET/pix/payments/idempotencyKey/{idempotencyKey}

O mesmo pagamento, achado pela x-idempotency-key que você mandou. Use depois de um timeout para saber se o pedido chegou.

Permissão: pix.read → pix:read

Parâmetros do caminho
CampoTipoDescrição
idempotencyKeyobrigatóriostringA chave de idempotência do pedido.

Obter comprovante do Pix em PDF

GET/pix/payments/receipt/{endToEndId}

O comprovante do pagamento, em PDF codificado em base64 (com a marca do banco). Aceita o endToEndId ou o transactionId.

Permissão: pix.read → pix:read

Parâmetros do caminho
CampoTipoDescrição
endToEndIdobrigatóriostringO endToEndId do Pix (ou o transactionId).

Consultar dados de uma chave Pix

GET/pix/keys/{key}

O que o DICT diz de uma chave Pix qualquer: nome, documento (mascarado pelo próprio DICT) e banco. Use para confirmar o destinatário antes de enviar. Se a provedora do banco não consulta o DICT, responde 501 not_supported.

Permissão: pix.read → pix:read

Parâmetros do caminho
CampoTipoDescrição
keyobrigatóriostringA chave Pix (CPF, CNPJ, e-mail, telefone ou aleatória).

Transferência entre contas

Criar transferência entre contas

POST/internal-transfers

Transfere para outra conta deste mesmo banco, na hora e sem passar pelo Pix. A conta de destino é achada pelo documento (CPF ou CNPJ) do titular, e o nome informado precisa bater com o da conta: se qualquer conferência falhar, nada é transferido. Repetir a mesma x-idempotency-key devolve a mesma transferência.

Permissão: internal-transfer.write → transfers:write

Cabeçalhos
CampoTipoDescrição
x-idempotency-keyobrigatóriostringIdentificador único do pedido (1 a 50 letras e números).
Corpo da requisição
CampoTipoDescrição
creditorAccount.documentobrigatóriostringCPF ou CNPJ do titular da conta de destino.
creditorAccount.nameobrigatóriostringNome do titular. Precisa bater com o da conta.
creditorAccount.numberstringOpcional: o id da conta de destino, para conferir.
payment.amountobrigatórionumberValor em reais, até 2 casas decimais.
remittanceInformationstringDescrição, até 200 caracteres.
creditorAccount.issuer, creditorAccount.accountType, paymentFlow—Aceitos e ignorados.
  • Não passa pelo Pix: a transferência já nasce liquidada (LIQUIDATED) e o endToEndId vem nulo.

Consultar transferência entre contas

GET/internal-transfers/{endToEndId}

A transferência pelo endToEndId (quando existir) ou pelo transactionId devolvido ao criar.

Permissão: internal-transfer.read → transactions:read

Parâmetros do caminho
CampoTipoDescrição
endToEndIdobrigatóriostringO endToEndId ou o transactionId.

Consultar transferência por chave de idempotência

GET/internal-transfers/idempotencyKey/{idempotencyKey}

A mesma transferência, achada pela x-idempotency-key que você mandou.

Permissão: internal-transfer.read → transactions:read

Parâmetros do caminho
CampoTipoDescrição
idempotencyKeyobrigatóriostringA chave de idempotência do pedido.