Visão Geral#
A página de status da Pluggy em status.pluggy.ai mostra a saúde ao vivo de cada conector, produto de pagamento e componente de infraestrutura, além do histórico de incidentes. Tudo que a página renderiza é JSON público que você pode consumir diretamente — sem autenticação necessária, sem chave de API.
Três endpoints, do maior para o menor:
| Endpoint | Use-o quando |
|---|---|
/api/status | Você quer tudo: conectores, 90 dias de histórico, cada incidente com sua linha do tempo |
/api/connectors-incidents | Você só quer o que está quebrado agora, identificado pelo id do conector |
/api/summary | Você só quer um status geral, para um badge ou um check de saúde |
Se você já chama GET /connectors, pode não precisar de nenhum deles — veja Sobre o objeto conector.
Se você só quer notificações, não precisa desta API: inscreva-se por e-mail na página de status, adicione o aplicativo Pluggy Status no Slack a um canal, ou use o feed RSS.
O endpoint de snapshot#
GET https://status.pluggy.ai/api/status
- Sem autenticação. CORS está aberto, então você pode chamá-lo de um aplicativo de navegador.
- Cacheado por ~30 segundos. Faça polling a cada 60 segundos ou mais lento — polling mais rápido apenas lê novamente o cache.
A resposta contém quatro coleções:
| Campo | O que contém |
|---|---|
institutions | Cada conector com seu status atual, histórico de 90 dias e flags de suporte a produtos |
incidents | Incidentes abertos e tudo que foi resolvido nos últimos 90 dias, com suas linhas do tempo de atualização |
components | Componentes de infraestrutura (API, Webhooks, Connect Widget, …) e seu status atual |
productStatus | Sobrescritas manuais de status por instituição para produtos de pagamento |
Instituições#
{
"pluggy_id": "601",
"name": "Itaú",
"type": "PERSONAL_BANK",
"logo_url": "https://cdn.pluggy.ai/assets/connector-icons/201.svg",
"status": "online",
"bars": "ooooooo…dxo",
"uptime": 99.51,
"supports_data": true,
"supports_pis": true,
"supports_pis_scheduled": true,
"supports_pix_auto": true,
"supports_smart_transfer": true
}pluggy_idé o mesmoiddo conector que você usa em todos os outros lugares na API da Pluggy — faça a correspondência diretamente.statusé um dosonline,degraded,offline,maintenance.barscodifica os últimos 90 dias como um caractere por dia, do mais antigo para o mais recente:oonline,ddegradado,pinterrupção parcial,xoffline,mmanutenção.uptimeé uma porcentagem ponderada de 90 dias (dias degradados contam 25% de inatividade, parcial 50%, offline 100%).- As flags
supports_*informam quais produtos a instituição oferece (dados, iniciação de pagamento, pagamentos agendados, PIX automático, transferências inteligentes).
Exemplo — ver a saúde de um conector:
curl -s https://status.pluggy.ai/api/status \
| jq '.institutions[] | select(.pluggy_id == "601") | {name, status, uptime}'Incidentes#
{
"id": "4a8f1e80-…",
"kind": "incident",
"product": "pis",
"pluggy_id": "612",
"institution_name": "PagBank",
"severity": "degraded",
"state": "identified",
"apis": ["Criação de pagamento"],
"started_at": "2026-07-07T14:28:21Z",
"resolved_at": null,
"postmortem": null,
"updates": [{ "state": "identified", "body": "…", "created_at": "…" }]
}- Um incidente está aberto enquanto
state != "resolved". producté um dosdados,pis,pis-agendado,pixauto,smart,infra(incidentes legados podem terpagamentos, que mapeia parapis).kindéincidentoumaintenance; manutenções têmwindow_starts_at/window_ends_at.- Incidentes específicos de conectores incluem
pluggy_id, para que você possa juntá-los à sua própria lista de conectores. - Cada incidente tem uma página compartilhável em
https://status.pluggy.ai/incident/<id>.
Exemplo — incidentes abertos que afetam um conector que você usa:
curl -s https://status.pluggy.ai/api/status \
| jq '.incidents[] | select(.state != "resolved" and .pluggy_id == "612") | {title, state, severity}'Incidentes ativos por conector#
O snapshot carrega tudo, o que o torna grande. Se tudo que você quer é "o que está errado com cada conector agora" — para sinalizar um banco afetado na sua própria tela de seleção de conectores antes que um usuário o escolha — faça polling disso em vez disso. É alguns kilobytes em vez de algumas centenas, porque não carrega histórico, incidentes resolvidos e linhas do tempo.
GET https://status.pluggy.ai/api/connectors-incidents
{
"generatedAt": "2026-09-05T10:11:25.059Z",
"connectors": {
"602": [
{
"id": "78624c2c-bf55-466a-ba99-6b57e9bd9223",
"title": "XP Banking - Compras parceladas não sendo retornadas",
"description": null,
"type": "TRANSACTIONS_INSTALLMENTS_ISSUE",
"product": "dados",
"kind": "INCIDENT",
"severity": "DEGRADED",
"state": "IDENTIFIED",
"startedAt": "2026-07-23T13:40:41Z",
"updatedAt": "2026-08-18T16:30:09Z",
"url": "https://status.pluggy.ai/incident/78624c2c-bf55-466a-ba99-6b57e9bd9223"
}
]
}
}As chaves são o mesmo id do conector que você obtém de GET https://api.pluggy.ai/connectors, então a junção é uma busca. Apenas conectores com pelo menos um incidente ativo aparecem, e cada lista é ordenada do pior para o melhor.
Apenas incidentes que afetam um conector neste momento são listados. Uma manutenção agendada é publicada dias antes, mas aparece aqui apenas uma vez que sua janela se abre, e desaparece quando se fecha. Um incidente que afeta várias instituições aparece sob cada um de seus ids de conector. Incidentes de infraestrutura não pertencem a nenhum conector e não são listados aqui — use o snapshot para esses.
O campo type#
severity diz quão grave é e state diz quão avançados estamos. type diz o que está quebrado, que é a parte que você não pode inferir de mais nada:
| Grupo | Valores |
|---|---|
| Disponibilidade | CONNECTOR_UNAVAILABLE, CONNECTOR_DEGRADED, INSTITUTION_OUTAGE, SCHEDULED_MAINTENANCE |
| Ciclo de vida da conexão | CONSENT_ERROR, CONNECTION_NOT_UPDATING, PARTIAL_SUCCESS |
| Qualidade dos dados | ACCOUNTS_MISSING, BALANCE_INCORRECT, TRANSACTIONS_MISSING, TRANSACTIONS_INCORRECT, TRANSACTIONS_INSTALLMENTS_ISSUE, INVESTMENTS_MISSING, INVESTMENTS_INCORRECT, IDENTITY_MISSING, HISTORICAL_DATA_MISSING |
| Plataforma Pluggy | WEBHOOK_DELAY, PAYMENT_FAILURE |
| Não classificado | OTHER |
Use-o para agrupar o mesmo problema entre instituições e para decidir quais incidentes valem a pena serem apresentados a um usuário: uma SCHEDULED_MAINTENANCE e um TRANSACTIONS_MISSING ambos são lidos como "degradado" de outra forma. OTHER significa que a Pluggy não classificou o incidente, não que nada está errado.
Sobre o objeto conector#
Você não precisa chamar a API de status. Os mesmos incidentes estão no objeto health de cada conector retornado por GET /connectors, então uma listagem que você já faz os carrega:
{
"id": 602,
"name": "XP Banking",
"health": {
"status": "ONLINE",
"stage": null,
"incidents": [
{
"title": "XP Banking - Compras parceladas não sendo retornadas",
"type": "TRANSACTIONS_INSTALLMENTS_ISSUE",
"product": "dados",
"severity": "DEGRADED",
"state": "IDENTIFIED",
"url": "https://status.pluggy.ai/incident/78624c2c-…"
}
]
}
}health.incidents está ausente quando o conector não tem incidente ativo, então sua presença é o sinal em si.
Duas perguntas diferentes
Note o status: "ONLINE" nesse exemplo. health.status responde posso me conectar de alguma forma; health.incidents responde o que está errado. Um banco pode estar perfeitamente acessível e ainda assim não estar retornando parcelas, e apenas o segundo campo pode te dizer isso. Elas são perguntas diferentes — leia ambas.
health.details é uma terceira coisa não relacionada: solicite com ?healthDetails=true e descreve como suas próprias conexões com essa instituição têm se comportado, em vez da instituição em si.
Widget embutido#
Mostre o status ao vivo da Pluggy dentro do seu próprio aplicativo ou dashboard interno.
Badge flutuante — uma tag de script, renderiza uma pequena pílula (ponto de status + rótulo) no canto da página, vinculando à página de status. Atualiza a cada 60 segundos.
<script
src="https://status.pluggy.ai/widget.js"
defer
data-lang="en"
data-position="bottom-right"
></script>data-lang:pt(padrão),esouen.data-position:bottom-right(padrão) oubottom-left.data-target: um seletor CSS — renderiza o badge inline dentro desse elemento em vez de flutuar.
Painel Iframe — um painel compacto com status geral, componentes de infraestrutura e incidentes abertos:
<iframe
src="https://status.pluggy.ai/embed?lang=en"
width="360"
height="240"
style="border: 0"
title="Pluggy Status"
></iframe>Endpoint de resumo — ambos são suportados por um pequeno resumo JSON que você também pode consumir diretamente (CORS aberto, cacheado ~30s). \/api\/widget serve o mesmo corpo e continua funcionando para embeds que já apontam para ele:
GET https://status.pluggy.ai/api/summary
{
"status": "op",
"labels": { "pt": "…", "es": "…", "en": "Todos os sistemas operacionais" },
"openIncidents": 0,
"updatedAt": "2026-07-10T12:00:00.000Z"
}status é op (operacional), mn (manutenção), dg (degradado), pt (interrupção parcial) ou mj (interrupção maior) — o pior entre conectores, produtos de pagamento e infraestrutura.
Outros canais#
| Canal | Como |
|---|---|
| Inscreva-se na página de status — escolha produtos específicos ou tudo; opt-in duplo, cancelamento de inscrição com um clique | |
| Slack | Instale o aplicativo Pluggy Status a partir do diálogo de inscrição da página, ou convide @Pluggy Status para um canal e ative-o |
| RSS | https://status.pluggy.ai/rss — últimos 50 incidentes com suas linhas do tempo |
| Webhooks | Para mudanças de status de conectores que afetam seus itens, prefira os webhooks padrão da Pluggy (connector/status_updated) |
