O SCR (Sistema de Informações de Crédito) é o registro oficial das operações de crédito do Banco Central do Brasil. Todas as instituições financeiras do país reportam a ele: empréstimos, financiamentos, limites, garantias e co-obrigação. É a própria fonte, não uma pontuação inferida a partir dela.
A Pluggy expõe o SCR por trás de um item conectado de Open Finance. O item fornece o CPF ou CNPJ e serve como evidência do consentimento do titular da conta.
Disponível sob solicitação
O SCR está disponível sob solicitação. Fale conosco para habilitá-lo em sua
assinatura — sem isso, o endpoint retorna SCR_FEATURE_NOT_ENABLED.
O consentimento é sua responsabilidade
Qualquer consulta ao SCR depende da autorização prévia do titular das operações de crédito. Sua instituição é responsável por solicitar essa autorização e por atender aos pré-requisitos de consulta, mensagens de esclarecimento e ao registro e armazenamento das autorizações estabelecidas na regulamentação vigente — veja Resolução CMN n° 5.037.
Requisitos#
Antes da primeira chamada:
- O recurso SCR habilitado em sua assinatura.
- Um item conectado de Open Finance — um sandbox também funciona. Conectores diretos não são elegíveis.
- O CPF ou CNPJ desse item conhecido por nós — é com isso que consultamos o Bacen.
Um item que falhar em qualquer um dos últimos dois retorna SCR_ITEM_NOT_SUPPORTED.
Consultar o SCR#
GET /items/{id}/scr
| Parâmetro | Em | Descrição |
|---|---|---|
id | path | O item cujo titular da conta você deseja consultar |
from | query | Primeira data-base, no formato YYYYMM. Opcional |
to | query | Última data-base, no formato YYYYMM. Opcional |
curl --request GET \
--url 'https://api.pluggy.ai/items/d0e8448e-0156-4b4a-ae6c-3e2a6d9bff5c/scr?from=202604&to=202607' \
--header 'X-API-KEY: YOUR_API_KEY'Detalhes completos sobre parâmetros e esquema estão na referência da APIAPI.
Datas-base são meses, e elas têm atraso#
O SCR não funciona em dias. O Bacen consolida uma data-base (data-base) por mês, e cada uma só se torna completa alguns meses depois — as instituições ainda estão entregando seus relatórios nesse meio tempo.
Duas consequências que vale a pena considerar:
- Solicitar o mês atual não retorna nada. O Bacen ainda não o fechou.
- Quando você omite
frometo, a Pluggy consulta as últimas 4 datas-base, terminando 2 meses atrás a partir de hoje. Em setembro de 2026, isso é de202604a202607.
Se você enviar apenas um limite, a janela se ancla nele: ?to=202501 retorna de 202410 a 202501.
Cada data-base carrega docProc e volProc — a porcentagem de documentos esperados e volume já incorporados. Uma data-base recente com baixa cobertura é uma imagem parcial, não uma vazia.
Resposta#
A resposta é o próprio payload do Bacen, encaminhado sem alterações. Os nomes dos campos, códigos e estrutura são do SCR, então um valor que você lê aqui é o mesmo valor que uma instituição lê na fonte.
{
"dtbConsult": "202604 a 202607",
"cdCli": "11222333",
"tpCli": "2",
"lsDtb": [
{
"dtb": 202607,
"docProc": "99.8",
"volProc": "99.9",
"qtdIfs": 4,
"qtdCongFinc": 3,
"dtbIniRel": "201803",
"coobAss": 0,
"coobRec": 0,
"lsOp": [
{
"mod": "0203",
"oriRec": "0101",
"indx": "01",
"varCamb": "00",
"resVenc": { "v20": 12500.0, "v40": 12500.0, "v110": 37500.0 },
"lsGar": [{ "tp": "0501", "qtd": 1 }]
}
]
}
]
}Nível superior#
| Campo | Tipo | Descrição |
|---|---|---|
dtbConsult | string | As datas-base consultadas |
cdCli | string | O documento consultado: o CPF para um indivíduo, ou a raiz do CNPJ de 8 dígitos para uma empresa |
tpCli | string | "1" para um indivíduo, "2" para uma entidade legal |
lsDtb | array | Uma entrada por data-base consultada. Uma data-base sem dados ainda é listada |
listaDeMensagensDeValidacao | array | Mensagens de validação levantadas pelo Bacen para a solicitação, cada uma com um codigo e uma mensagem |
Dentro de uma data-base (lsDtb[])#
| Campo | Tipo | Descrição |
|---|---|---|
dtb | number | A data-base, no formato YYYYMM. Numérico, não uma string |
msg | string | Mensagem do Bacen para esta data-base, quando houver uma |
docProc | string | Porcentagem dos 3040 documentos esperados já incorporados pelo Bacen, excluindo instituições isentas |
volProc | string | Porcentagem do volume de operações esperado já aceito para a data-base |
qtdIfs | number | Número de instituições financeiras onde o titular possui operações |
qtdCongFinc | number | Número de conglomerados financeiros. Compare com qtdIfs para distinguir a verdadeira diversificação de contraparte da aparente |
dtbIniRel | string | Início do relacionamento do titular com o sistema financeiro nacional |
coobAss | number | Co-obrigação assumida pelo titular em atribuições de crédito, em BRL |
coobRec | number | Co-obrigação recebida em atribuições de crédito, em BRL |
lsOp | array | Grupos de operações |
Dentro de um grupo de operações (lsOp[])#
O SCR não retorna contratos um por um. As operações são agregadas pela combinação de modalidade, fonte de recursos, índice e variação cambial, então uma entrada pode representar vários contratos da mesma natureza.
| Campo | Tipo | Descrição |
|---|---|---|
mod | string | Código da modalidade — que tipo de crédito é |
oriRec | string | Código da fonte de recursos |
indx | string | Código da taxa de referência ou índice |
varCamb | string | Código da variação da taxa de câmbio |
subJDisc | string | Presente quando a operação está sob disputa: "D" desacordo, "J" sub judice, "JD" ambos |
resVenc | object | Saldos divididos por vértices de maturidade — veja abaixo |
lsGar | array | Garantias que respaldam o grupo, por tipo (tp) e quantidade (qtd) |
lsInfAd | array | Informações complementares reportadas para o grupo, por tipo (tp), código (cd) e quantidade (qtd) |
Os códigos por trás de mod, oriRec, indx, varCamb e tp são próprios do Bacen. Seu significado é publicado na referência DOC3040 — leia-os lá em vez de inferi-los.
Vértices de maturidade (resVenc)#
resVenc distribui o saldo do grupo em 30 vértices, em BRL. Cada chave é um código de maturidade do Bacen — v20, v40, v60, v80, v110, v120, v130, v140, v150, v160, v165, v170, v175, v180, v190, v199, v205, v210, v220, v230, v240, v245, v250, v255, v260, v270, v280, v290, v310 e v320 — e apenas os vértices que carregam um valor estão presentes. Eles se dividem em três famílias:
| Família | O que significa |
|---|---|
| Ainda não vencido | Pagamentos cuja data ainda não chegou. O limite é generoso — um pagamento até 14 dias atrasado ainda conta aqui, então pequenos atrasos operacionais não são lidos como inadimplência. Mede compromisso, não problemas: o que importa é a forma da curva ao longo do tempo |
| Atrasado | Pagamentos mais de 14 dias atrasados, classificados em categorias progressivamente mais antigas. Duas dívidas do mesmo valor, uma 20 dias atrasada e outra 200, são situações opostas. Leia a migração entre categorias mês a mês: valor descendo a escada é recuperação, subindo é uma inadimplência em progresso |
| Categorias especiais | Alguns vértices não são janelas de tempo; representam estados ou compromissos que não se encaixam na régua de maturidade |
A janela exata por trás de cada código individual é definida no layout DOC3040, em sua tabela de códigos de maturidade (Código de Vencimento). Leia lá: o número na chave é um código, não uma contagem de dias, então não infira uma janela a partir disso. Sem essa tabela, você ainda pode somar a exposição total e separar saldos ainda não vencidos de atrasados; construir uma curva de envelhecimento precisa das janelas código por código.
Testando no sandbox#
Você pode integrar o SCR sem uma conta real. Crie um item com o
conector de Open Finance Sandbox (600) usando um dos
CPFs de sandbox, então chame GET /items/{id}/scr como de costume.
Um item de sandbox retorna um payload sintético com o mesmo esquema que a produção. cdCli é
o documento do item, tpCli o segue, e lsDtb tem uma entrada por data-base na
janela solicitada — a janela padrão se aplica quando from e to são omitidos. Cada data-base
carrega alguns grupos de operações, com garantias e saldos em resVenc, e é marcada com
msg: "Dados sintéticos - sandbox da Pluggy" para que um payload sintético nunca possa ser confundido com um
real.
Determinístico, não cobrado
A resposta do sandbox é gerada, não consultada: nenhuma solicitação chega ao Bacen e a chamada não é cobrada. O mesmo item e janela sempre retornam os mesmos valores, então você pode afirmar contra eles em testes automatizados.
As verificações são as que você encontrará na produção. O recurso SCR deve estar habilitado em sua
assinatura (SCR_FEATURE_NOT_ENABLED caso contrário), o item deve ser Open Finance — os conectores de sandbox do Pluggy
retornam SCR_ITEM_NOT_SUPPORTED — e um intervalo invertido retorna
SCR_INVALID_REQUEST. Um limite exclusivo do sandbox: uma janela maior que 60 datas-base também
é rejeitada com SCR_INVALID_REQUEST.
Erros#
| Status | Código | O que significa |
|---|---|---|
| 400 | SCR_INVALID_REQUEST | O intervalo de datas-base foi rejeitado. Verifique se from e to estão no formato YYYYMM e se from não está após to. A mensagem de erro pode se referir a eles como databaseIni e databaseFim |
| 403 | SCR_FEATURE_NOT_ENABLED | O SCR não está habilitado em sua assinatura |
| 404 | ITEM_NOT_FOUND | Nenhum item desse tipo, ou sua autorização foi revogada |
| 422 | SCR_ITEM_NOT_SUPPORTED | O item não é uma conexão de Open Finance, ou seu CPF/CNPJ está faltando ou malformado |
| 500 | SCR_FETCH_ERROR | Não conseguimos completar a consulta |
| 502 | SCR_SERVICE_UNAVAILABLE | O serviço SCR do Bacen está indisponível. Tente novamente mais tarde |
Um 502 carrega um correlationId sob data. Cite-o quando você relatar a falha para nós — é o que nos permite rastrear a consulta exata.
{
"code": 502,
"codeDescription": "SCR_SERVICE_UNAVAILABLE",
"message": "O serviço SCR do Bacen está temporariamente indisponível. Por favor, tente novamente mais tarde.",
"data": { "correlationId": "8047f6e9-bb9e-4b04-8515-e2210dc4c544" }
}Projete para interrupções
O serviço SCR do Bacen tem interrupções prolongadas. Projete para 502 — tente novamente com
retrocesso, e não trate uma consulta indisponível como uma ausência de histórico de crédito.
