Bem-vindo à Kainow API

A Kainow é uma plataforma de Open Finance que permite acesso padronizado a dados bancários, de investimentos e pagamentos de centenas de instituições financeiras no Brasil. Com uma única integração, você acessa contas, transações, investimentos, empréstimos e habilita pagamentos via Pix Automático.

O que você pode fazer

ProdutoDescriçãoEndpoint base
ContasSaldos, extrato, contas correntes e cartões de crédito/accounts
TransaçõesHistórico de até 365 dias, categorizado automaticamente/transactions
InvestimentosPosição, rentabilidade, renda fixa e variável/investments
EmpréstimosCET, parcelas, saldo devedor e modalidades/loans
IdentidadeNome, CPF, e-mail, telefone do titular da conta/identity
Pix AutomáticoDébito recorrente autorizado por biometria (VREC)/payments/requests
Smart TransferPré-autorização para transferências futuras/smart-transfer

Arquitetura geral

A plataforma opera com dois tipos de credencial e um modelo de conexão baseado em Items. Veja o fluxo completo:

Seu servidor
CLIENT_ID + SECRET
→
API Kainow
POST /auth
→
API Key
válida 2h
→
Connect Token
válido 30min
→
Widget / Frontend
conecta banco
→
Item
dados disponíveis

Base URL

https://api.kainow.app/v2
ℹ️
Ambiente único
A API opera em um único ambiente de Produção. Conectores Sandbox são acessados via o mesmo endpoint usando a flag sandbox=true — não existe URL separada de staging.
💡
Repositório de exemplos
Exemplos prontos em Node.js, Python, React e Next.js disponíveis. Consulte a seção Sandbox para testar sem dados reais.
1

Crie sua conta e aplicativo

Acesse o Dashboard Kainow, crie um aplicativo e obtenha seu CLIENT_ID e CLIENT_SECRET. Novos aplicativos começam com acesso aos conectores Sandbox para testes.

2

Obtenha uma API Key

Autentique com suas credenciais para obter uma API Key válida por 2 horas. Faça isso apenas no servidor — nunca exponha o CLIENT_SECRET no frontend.

curl -X POST https://api.kainow.app/v2/auth \
  -H "Content-Type: application/json" \
  -d '{
    "clientId": "SEU_CLIENT_ID",
    "clientSecret": "SEU_CLIENT_SECRET"
  }'
// Resposta
{
  "apiKey": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
3

Crie um Connect Token

Com a API Key, gere um Connect Token de curta duração (30 min) para usar no widget ou no frontend.

curl -X POST https://api.kainow.app/v2/connect_token \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: SUA_API_KEY" \
  -d '{}'
// Resposta
{
  "accessToken": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
4

Abra o Connect Widget

Use o accessToken para inicializar o widget no frontend. O widget gerencia todo o fluxo de autenticação com o banco.

<script src="https://cdn.kainow.app/connect/v3/kainow-connect.js"></script>
<script>
  const connect = new KainowConnect({
    connectToken: 'SEU_ACCESS_TOKEN',
    onSuccess: ({ item }) => {
      console.log('Conectado! itemId:', item.id)
      // Salve o item.id no seu backend
    },
    onError: ({ message }) => console.error(message),
    onClose: () => console.log('Widget fechado')
  })
  connect.init()
</script>
5

Busque os dados

Com o itemId retornado pelo widget, acesse as contas e transações via API server-side.

# Listar contas da conexão
curl "https://api.kainow.app/v2/accounts?itemId=SEU_ITEM_ID" \
  -H "X-API-KEY: SUA_API_KEY"

# Listar transações de uma conta
curl "https://api.kainow.app/v2/transactions?accountId=SEU_ACCOUNT_ID" \
  -H "X-API-KEY: SUA_API_KEY"
✅
Próximos passos
Explore o Sandbox para testar todos os cenários de erro e MFA. Configure Webhooks para receber notificações assíncronas quando os dados forem atualizados.

Conceitos Principais

Produto

Um Produto representa dados padronizados de uma instituição financeira com um conjunto específico de atributos. Exemplos: Contas Transações Investimentos Identidade Cartões de Crédito

Conector

Um Conector representa uma integração com uma instituição financeira específica. Cada conector tem um id único e um type:

TipoDescrição
PERSONAL_BANKConta bancária de pessoa física
BUSINESS_BANKConta bancária de pessoa jurídica
INVESTMENTCorretora ou plataforma de investimentos

Item

Um Item é a representação de uma conexão ativa entre um usuário e uma instituição financeira via um Conector específico. É o ponto de entrada para acessar todos os dados coletados daquele usuário naquela instituição.

ℹ️
Item = Conexão
Sempre que um usuário conecta uma conta bancária, um Item é criado. Um usuário pode ter múltiplos Items (um por instituição conectada).

API Key

Credencial de servidor com acesso total à API. Expira em 2 horas. Obtida via POST /auth com CLIENT_ID e CLIENT_SECRET. Nunca expor no frontend.

Connect Token

Credencial de cliente com escopo limitado. Expira em 30 minutos. Usada exclusivamente no Connect Widget. Criada pelo servidor via POST /connect_token usando a API Key.

API KeyConnect Token
Onde usarServidor (backend)Cliente (frontend/widget)
Validade2 horas30 minutos
AcessoCompletoApenas Item criado + Contas básicas
Obtida viaPOST /authPOST /connect_token

Fluxo de Autenticação

CLIENT_ID
+ CLIENT_SECRET
→
POST /auth
servidor
→
API Key
TTL: 2h
→
POST /connect_token
servidor
→
Connect Token
TTL: 30min

Criar API Key

Autentique com CLIENT_ID e CLIENT_SECRET para obter uma API Key. Esta etapa deve ser feita exclusivamente no servidor.

POST/authGerar API Key
curl -X POST https://api.kainow.app/v2/auth \
  -H "Content-Type: application/json" \
  -d '{
    "clientId": "SEU_CLIENT_ID",
    "clientSecret": "SEU_CLIENT_SECRET"
  }'
// Resposta 200 OK
{
  "apiKey": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJj..."
}
⚠️
Segurança — Nunca exponha no frontend
Seu CLIENT_SECRET e a API Key devem permanecer exclusivamente no servidor. Expô-los no código do cliente compromete toda a segurança da integração.

Usar a API Key

Passe a API Key no cabeçalho X-API-KEY em todas as requisições server-side:

X-API-KEY: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...

Criar Connect Token

O Connect Token tem escopo limitado e é seguro para usar no frontend. Validade de 30 minutos. Recomendado: 1 token por conexão.

POST/connect_tokenGerar Connect Token
curl -X POST https://api.kainow.app/v2/connect_token \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: SUA_API_KEY" \
  -d '{
    "options": {
      "webhookUrl": "https://meuapp.com/webhook",
      "clientUserId": "user_id_do_seu_sistema",
      "avoidDuplicates": true
    }
  }'

Opções do Connect Token

CampoTipoDescrição
options.webhookUrlstringURL para receber eventos do Item criado com este token
options.clientUserIdstringSeu identificador de usuário — vincula o Item ao seu sistema
options.avoidDuplicatesbooleanImpede criar Item duplicado para mesmas credenciais
options.oauthRedirectUristringURL de redirect após fluxo OAuth
itemIdstringInformar para atualizar um Item existente
⚠️
Atenção ao nesting
Campos como clientUserId devem ser enviados dentro de options, não na raiz do body. Enviar na raiz retorna 200 OK mas o valor é silenciosamente descartado.

🔑 Gerar API Key

Autentique com seu CLIENT_ID e CLIENT_SECRET para obter uma API Key válida por 2 horas.

Válida por 2 horas · apenas servidor
API Key

🎟️ Gerar Connect Token

Com a API Key gerada acima, crie um Connect Token de 30 minutos para usar no widget ou testes de frontend.

Válido por 30 min · use no frontend
Connect Token (accessToken)
ℹ️
Demo com credenciais Sandbox
Os campos já estão preenchidos com credenciais demo do ambiente Sandbox. Clique em Gerar API Key para testar imediatamente. Os tokens gerados são reais e funcionais.

Listar Conectores

GET/connectorsListar conectores disponíveis
GET/connectors/{id}Detalhes de um conector

Filtros disponíveis

ParâmetroTipoDescrição
sandboxbooleanSe true, retorna apenas conectores Sandbox de teste
typestringPERSONAL_BANK, BUSINESS_BANK ou INVESTMENT
countriesstring[]Filtrar por país (ex: BR)
namestringBusca por nome da instituição
# Listar conectores sandbox
curl "https://api.kainow.app/v2/connectors?sandbox=true" \
  -H "X-API-KEY: SUA_API_KEY"

Conectores Sandbox

Para testes, use os conectores sandbox abaixo. Eles simulam todos os fluxos possíveis — MFA, erros, QR code, Open Finance.

Kainow Bank
ID: 2
Fluxo Básico
Kainow MFA 1-Step
ID: 4
MFA 1 Etapa
Kainow MFA 2-Step
ID: 5
MFA 2 Etapas
Kainow Business
ID: 8
PJ
Kainow Conta Conjunta
ID: 9
Conta Conjunta
Kainow Investments
ID: 16
Investimentos
Kainow QR Login
ID: 19
QR Code

Endpoints

POST/itemsCriar Item (conexão bancária)
GET/items/{id}Buscar Item por ID
PATCH/items/{id}Atualizar Item (re-sync)
DELETE/items/{id}Excluir Item
GET/v2/itemsListar todos os Items (opt-in)

Campos do Item

CampoTipoDescrição
idstring (UUID)Identificador único do Item
statusstringStatus atual: UPDATING, UPDATED, LOGIN_ERROR, OUTDATED, WAITING_USER_INPUT
executionStatusstringStatus detalhado da execução atual
connector.idnumberID do conector (instituição)
clientUserIdstringSeu identificador de usuário vinculado ao Item
updatedAtdatetimeÚltima sincronização bem-sucedida
nextAutoSyncAtdatetimePróxima sincronização automática
productsstring[]Produtos coletados para este Item

Como manter referência do Item

  • Callback onSuccess do Widget: retorna item.id imediatamente após conexão
  • Webhooks item/created: entrega o itemId e clientUserId de forma confiável
  • Campo clientUserId: vincule o Item ao seu usuário passando esse campo no Connect Token

Auto-sincronização

Uma vez criado, o Item é sincronizado automaticamente pela plataforma no intervalo configurado (6h, 8h, 12h ou 24h). Você não precisa disparar updates manuais — apenas ouça os webhooks item/updated.

ℹ️
Listagem de Items (opt-in)
O endpoint GET /v2/items está desativado por padrão. Retorna 403 LIST_ITEMS_FEATURE_NOT_ENABLED até ser habilitado via solicitação. Para uso cotidiano, mantenha seus próprios itemIds.

Status do Item

UPDATING UPDATED OUTDATED WAITING_USER_INPUT
StatusSignificadoAção necessária
UPDATINGSincronização em andamentoAguardar — verifique novamente em alguns segundos
UPDATEDSincronização concluída com sucessoLeia os dados disponíveis
Credenciais inválidasUsuário deve reconectar com novas credenciais
OUTDATEDErro não relacionado a credenciaisPode ser re-tentado (verifique executionStatus)
WAITING_USER_INPUTAguardando MFA ou ação do usuárioSolicitar input via widget

States de Execução (executionStatus)

Estados Transitórios

ValorDescrição
CREATEDConexão iniciada
LOGIN_IN_PROGRESSEtapa de autenticação em andamento (pode levar até 5 min)
LOGIN_MFA_IN_PROGRESSAguardando segunda etapa de MFA
ACCOUNTS_IN_PROGRESSColetando dados de Contas
TRANSACTIONS_IN_PROGRESSColetando Transações
INVESTMENTS_IN_PROGRESSColetando Investimentos
MERGINGProcessando e armazenando dados coletados

Estados Finais de Sucesso

ValorDescrição
SUCCESSTodos os dados coletados com sucesso
PARTIAL_SUCCESSAlguns produtos falharam — verifique statusDetail

Estados Finais de Erro

ValorAuto-sync continua?
INVALID_CREDENTIALS❌ Para — requer reconexão
SITE_NOT_AVAILABLE✅ Retry 5x em 1h
ACCOUNT_LOCKED❌ Para — usuário deve desbloquear
USER_AUTHORIZATION_REVOKED❌ Para — requer re-autorização
CONNECTION_ERROR✅ Retry 5x em 1h
ALREADY_LOGGED_IN❌ Sessão ativa — fazer logout
ACCOUNT_NEEDS_ACTION❌ Ação manual no banco

Retenção de Dados

CenárioQuandoO que acontece
Excluído pelo clienteImediatamente no DELETEItem e dados permanentemente removidos, consentimento revogado
Item Sandbox sem usoApós 30 dias sem atualizaçãoRemovido automaticamente — recrie para continuar testando
Conector descontinuado30 dias após descontinuaçãoItem excluído automaticamente, webhook item/deleted emitido

Endpoints

GET/accounts?itemId={id}Listar contas de um Item
GET/accounts/{id}Detalhes de uma conta
curl "https://api.kainow.app/v2/accounts?itemId=SEU_ITEM_ID" \
  -H "X-API-KEY: SUA_API_KEY"

Tipos de Conta

TipoSubtipoDescrição
BANKCHECKING_ACCOUNTConta corrente
BANKSAVINGS_ACCOUNTConta poupança
BANKSALARY_ACCOUNTConta salário
CREDITCREDIT_CARDCartão de crédito

Campos Principais

CampoDescrição
balanceSaldo disponível atual
itemIdItem ao qual pertence
nameNome da conta (ex: "Conta Corrente")
numberNúmero mascarado da conta
currencyCodeMoeda (ex: BRL)
creditData.availableCreditLimitLimite disponível (apenas CREDIT)
creditData.totalAmountFatura atual do cartão

Endpoints

GET/transactions?accountId={id}Listar transações de uma conta
GET/transactions/{id}Detalhes de uma transação

Paginação por Cursor

Use o campo next da resposta para paginar. Não use número de página.

let next = ''
const transactions = []

do {
  const res = await fetch(
    `https://api.kainow.app/v2/transactions${next}?accountId=ACCOUNT_ID`,
    { headers: { 'X-API-KEY': apiKey } }
  )
  const page = await res.json()
  transactions.push(...page.results)
  next = page.next  // null na última página
} while (next !== null)

Campos Principais

CampoDescrição
amountValor da transação (negativo = débito)
dateData da transação
descriptionDescrição original do extrato
categoryCategoria automática (ex: "Food", "Transport")
typeDEBIT ou CREDIT
currencyCodeMoeda da transação

Delta Sync (Transações Novas)

Para buscar apenas transações novas após uma sincronização, use o webhook transactions/created que fornece o link direto via createdTransactionsLink.

Endpoints

GET/investments?itemId={id}Listar investimentos do Item
GET/investments/{id}Detalhes de um investimento
GET/investments/{id}/transactionsHistórico de movimentações

Tipos de Investimento

TipoExemplos
MUTUAL_FUNDFundos de investimento
SECURITYAções, BDRs, FIIs
FIXED_INCOMECDB, LCI, LCA, Tesouro Direto
ETFExchange Traded Funds
COECertificado de Operações Estruturadas

Campos Principais

CampoDescrição
balanceValor atual da posição
quantityQuantidade de cotas/ações
lastMonthRateRentabilidade no último mês (%)
lastTwelveMonthsRateRentabilidade nos últimos 12 meses (%)
annualRateTaxa anual contratada (renda fixa)
dueDateData de vencimento (renda fixa)

Endpoints

GET/loans?itemId={id}Listar empréstimos do Item
GET/loans/{id}Detalhes de um empréstimo

Campos Principais

CampoDescrição
contractAmountValor total contratado
CETCusto Efetivo Total — % anual incluindo todos os encargos
dueDateData final de pagamento
installments.totalNumberOfInstallmentsTotal de parcelas
installments.paidInstallmentsParcelas já pagas
installments.pastDueInstallmentsParcelas em atraso
payments.contractOutstandingBalanceSaldo devedor para quitação antecipada

Endpoints

GET/identity?itemId={id}Dados de identidade do Item

Campos Retornados

CampoDescrição
fullNameNome completo como cadastrado na instituição
documentCPF ou CNPJ
birthDateData de nascimento
emails[].valueE-mails cadastrados
phoneNumbers[].valueTelefones cadastrados
addresses[]Endereços de correspondência
✅
Zero atrito por cobrança
Após a autorização inicial, os débitos são executados automaticamente pelo banco via biometria cadastrada. O usuário não precisa abrir o app bancário a cada cobrança.

Fluxo do Pix Automático

Criar
PaymentRequest
→
Gerar
Connect Token
→
Widget
usuário autoriza
→
Banco
biometria
→
Webhook
confirmed

Endpoints

POST/payments/requestsCriar solicitação de pagamento recorrente
GET/payments/requests/{id}Verificar status da solicitação
DELETE/payments/requests/{id}Cancelar autorização recorrente

Webhooks do Pix Automático

automatic_pix_payment/createdPagamento agendado para a solicitação
automatic_pix_payment/completedDébito realizado com sucesso
automatic_pix_payment/errorFalha no débito (saldo insuficiente, etc.)
automatic_pix_payment/canceledAutorização cancelada pelo usuário ou cliente

Exemplo de Payload

{
  "paymentRequestId": "624cb41e-2b76-42ac-8021-ce6b6b4ace6b",
  "automaticPixPaymentId": "8429f45a-f541-4fc3-8439-cbc8d9dc9952",
  "endToEndId": "E37943755202506111319U0da92d1b7e",
  "eventId": "71e0b4db-4e8c-401d-8ad8-5ab3ecd1f3d0",
  "event": "automatic_pix_payment/completed"
}

Fluxo

Criar Pré-autorização
→
Usuário aprova
via widget
→
Webhook
preauth/completed
→
Executar
transferência
→
Webhook
payment/completed

Webhooks

smart_transfer_preauthorization/completedPré-autorização aprovada pelo usuário
smart_transfer_preauthorization/errorErro ou rejeição da pré-autorização
smart_transfer_payment/completedTransferência liquidada com sucesso
smart_transfer_payment/errorFalha na liquidação (ex: saldo insuficiente)

Integração Básica

<!-- Incluir o script do widget -->
<script src="https://cdn.kainow.app/connect/v3/kainow-connect.js"></script>

<script>
  const connect = new KainowConnect({
    connectToken: 'SEU_CONNECT_TOKEN',
    
    // Callbacks
    onSuccess: ({ item }) => {
      console.log('Conectado! itemId:', item.id)
      salvarItemId(item.id)  // persista no seu backend
    },
    onError: ({ message, data }) => {
      console.error('Erro:', message, data?.item?.executionStatus)
    },
    onClose: () => console.log('Widget fechado'),
    onOpen:  () => console.log('Widget aberto')
  })
  
  connect.init()  // abre o modal
</script>

Configurações Disponíveis

PropriedadeTipoDescrição
connectToken *stringToken de conexão (obrigatório)
includeSandboxbooleanExibir conectores Sandbox (testes apenas)
updateItemstringID de Item a ser atualizado — pula seleção de banco
selectedConnectorIdnumberPula seleção e vai direto para um banco específico
connectorTypesstring[]Filtrar por tipo: PERSONAL_BANK, BUSINESS_BANK
connectorIdsnumber[]Exibir apenas conectores específicos
productsstring[]Limitar produtos coletados: ACCOUNTS, TRANSACTIONS…
themestring'light' (padrão) ou 'dark'
languagestringIdioma do widget: 'pt' (padrão), 'en', 'es'
allowConnectInBackgroundbooleanPermitir minimizar o widget
forceAskForCredentialsbooleanSempre solicitar credenciais ao atualizar

Eventos (onEvent)

EventoQuando é disparado
SUBMITTED_CONSENTUsuário aceitou os termos iniciais
SELECTED_INSTITUTIONUsuário selecionou um banco
SUBMITTED_LOGINUsuário enviou credenciais
LOGIN_SUCCESSLogin realizado com sucesso
ITEM_RESPONSEToda vez que o Item é consultado/atualizado
⚠️
onSuccess nem sempre é chamado
Em bancos com fluxo de autorização demorada (ex: fluxo Caixa), o widget retorna onError com status USER_AUTHORIZATION_PENDING. O evento de sucesso será entregue via webhook item/updated quando o banco concluir.

Como Configurar

Forneça um webhookUrl HTTPS em um desses momentos:

  • Ao criar um Connect Token: options.webhookUrl
  • Ao criar um Item: campo webhookUrl
  • Ao criar uma Solicitação de Pagamento: campo webhookUrl
  • Via endpoint POST /webhooks para registrar globalmente

Eventos de Item

item/createdItem criado e conexão concluída
item/updatedItem atualizado e sincronizado
item/deletedItem excluído
item/errorErro na execução do Item
item/waiting_user_inputItem aguardando MFA ou input do usuário
item/waiting_user_actionItem aguardando ação no app do banco (QR, push)
item/login_succeededLogin realizado, coletando dados

Eventos de Transação

transactions/createdNovas transações disponíveis (inclui link direto)
transactions/updatedTransações atualizadas — busque pelos IDs
transactions/deletedTransações removidas após merge

Eventos de Pagamento

payment_intent/createdIntenção de pagamento criada
payment_intent/completedPagamento concluído com sucesso
payment_intent/errorErro no pagamento
payment_request/updatedStatus da solicitação de pagamento alterado
scheduled_payment/createdPagamento agendado criado
scheduled_payment/completedPagamento agendado realizado
automatic_pix_payment/completedPix Automático debitado
smart_transfer_payment/completedSmart Transfer liquidado

Payload Padrão

{
  "event": "item/updated",
  "eventId": "d876fd7c-e9bd-4c4c-bd46-cc96c62aac29",
  "itemId": "a5c763cb-0952-457b-9936-630f79c5b016",
  "triggeredBy": "SYNC",
  "clientUserId": "seu-user-id"
}

Retentativas

TentativaQuando
1ªImediatamente
2ª~15 min após falha da 1ª
3ª~2h após falha da 2ª
⚠️
Respostas sem retry
Status 400, 401, 403, 404, 405 interrompem as retentativas imediatamente. Retorne 5XX para erros temporários — assim o webhook será re-tentado.

IPs para Whitelist

52.67.145.81
ℹ️
Mesmo endpoint, flag sandbox
Use includeSandbox: true no widget ou ?sandbox=true na API de conectores. Não há URL separada de sandbox.

Credenciais de Teste

Fluxo Básico
Usuário
user-ok
Senha
password-ok
Token MFA
123456
Open Finance
CPF
761.092.776-73
E-mail
ralph.bragg@gmail.com
Senha
P@ssword01

Cenários de Teste

executionStatusNome de usuárioDescrição
SUCCESSuser-okConexão bem-sucedida
ALREADY_LOGGED_INuser-loggedSessão ativa — fazer logout manual
ACCOUNT_LOCKEDuser-lockedConta bloqueada
SITE_NOT_AVAILABLEuser-unavailableSite do provedor indisponível
UNEXPECTED_ERRORuser-errorErro aleatório no conector
INVALID_CREDENTIALSqualquer outroCredenciais inválidas
PARTIAL_SUCCESSuser-ok-account-errorErro em produto específico
ACCOUNT_NEEDS_ACTIONuser-account-need-actionsAção necessária (aceitar termos, etc.)

MFA — Cenários

CenárioUsuárioMFA
Sucessouser-ok123456
MFA inválidouser-okqualquer outro
MFA com QR imageuser-ok-img123456
MFA com seleção de opçãouser-ok-selectqualquer
⏰
Items sandbox expiram em 30 dias
Items de sandbox sem atualização por 30 dias são automaticamente removidos. Recrie quando necessário. Em produção isso nunca acontece.

Autenticação

POST/authGerar API Key (2h TTL)
POST/connect_tokenGerar Connect Token (30min TTL)

Conectores

GET/connectorsListar conectores disponíveis
GET/connectors/{id}Detalhes de um conector

Items

POST/itemsCriar Item
GET/items/{id}Buscar Item
PATCH/items/{id}Atualizar Item
DELETE/items/{id}Excluir Item
GET/v2/itemsListar Items (opt-in)

Dados Financeiros

GET/accounts?itemId={id}Contas do Item
GET/transactions?accountId={id}Transações de uma conta
GET/investments?itemId={id}Investimentos do Item
GET/loans?itemId={id}Empréstimos do Item
GET/identity?itemId={id}Dados de identidade

Pagamentos

POST/payments/requestsCriar solicitação de pagamento
GET/payments/requests/{id}Status da solicitação
DELETE/payments/requests/{id}Cancelar solicitação

Webhooks

POST/webhooksRegistrar webhook global
GET/webhooksListar webhooks cadastrados
DELETE/webhooks/{id}Remover webhook

Erros de Autenticação

HTTPcodeDescriptionCausa
401CLIENT_KEYS_UNAUTHORIZEDclientId ou clientSecret inválidos
401CLIENT_DISABLEDAplicação desativada
403—Connect Token tentando acessar recurso fora de escopo (use API Key)

Erros de Item

HTTPcodeDescriptionCausa
400ITEM_USER_ALREADY_EXISTSavoidDuplicates: true e item já existe
403LIST_ITEMS_FEATURE_NOT_ENABLEDGET /v2/items não habilitado para a conta
400INVALID_CURSORParâmetro after com cursor inválido

executionStatus — Referência Completa

ValorItem StatusAuto-sync?
SUCCESSUPDATED✅ Sim
PARTIAL_SUCCESSUPDATED✅ Sim
INVALID_CREDENTIALSLOGIN_ERROR❌ Parado
SITE_NOT_AVAILABLEOUTDATED✅ Retry 5x/1h
ACCOUNT_LOCKEDLOGIN_ERROR❌ Parado
ALREADY_LOGGED_INLOGIN_ERROR❌ Parado
CONNECTION_ERROROUTDATED✅ Retry 5x/1h
USER_AUTHORIZATION_REVOKEDLOGIN_ERROR❌ Parado
ACCOUNT_NEEDS_ACTIONLOGIN_ERROR❌ Parado
WAITING_USER_INPUTWAITING_USER_INPUT⏸️ Aguardando MFA
💡
Boas práticas
Sempre verifique o executionStatus junto com o status do Item. Use item/error webhook para ser notificado de falhas. Faça GET /items/{id} ao receber qualquer webhook antes de processar os dados.