Página de Status da API

Consuma programaticamente a página de status pública da Pluggy — saúde do conector, incidentes e componentes de infraestrutura.

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:

EndpointUse-o quando
/api/statusVocê quer tudo: conectores, 90 dias de histórico, cada incidente com sua linha do tempo
/api/connectors-incidentsVocê só quer o que está quebrado agora, identificado pelo id do conector
/api/summaryVocê 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:

CampoO que contém
institutionsCada conector com seu status atual, histórico de 90 dias e flags de suporte a produtos
incidentsIncidentes abertos e tudo que foi resolvido nos últimos 90 dias, com suas linhas do tempo de atualização
componentsComponentes de infraestrutura (API, Webhooks, Connect Widget, …) e seu status atual
productStatusSobrescritas 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 mesmo id do conector que você usa em todos os outros lugares na API da Pluggy — faça a correspondência diretamente.
  • status é um dos online, degraded, offline, maintenance.
  • bars codifica os últimos 90 dias como um caractere por dia, do mais antigo para o mais recente: o online, d degradado, p interrupção parcial, x offline, m manutençã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 dos dados, pis, pis-agendado, pixauto, smart, infra (incidentes legados podem ter pagamentos, que mapeia para pis).
  • kind é incident ou maintenance; manutenções têm window_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:

GrupoValores
DisponibilidadeCONNECTOR_UNAVAILABLE, CONNECTOR_DEGRADED, INSTITUTION_OUTAGE, SCHEDULED_MAINTENANCE
Ciclo de vida da conexãoCONSENT_ERROR, CONNECTION_NOT_UPDATING, PARTIAL_SUCCESS
Qualidade dos dadosACCOUNTS_MISSING, BALANCE_INCORRECT, TRANSACTIONS_MISSING, TRANSACTIONS_INCORRECT, TRANSACTIONS_INSTALLMENTS_ISSUE, INVESTMENTS_MISSING, INVESTMENTS_INCORRECT, IDENTITY_MISSING, HISTORICAL_DATA_MISSING
Plataforma PluggyWEBHOOK_DELAY, PAYMENT_FAILURE
Não classificadoOTHER

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), es ou en.
  • data-position: bottom-right (padrão) ou bottom-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#

CanalComo
EmailInscreva-se na página de status — escolha produtos específicos ou tudo; opt-in duplo, cancelamento de inscrição com um clique
SlackInstale 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
RSShttps://status.pluggy.ai/rss — últimos 50 incidentes com suas linhas do tempo
WebhooksPara mudanças de status de conectores que afetam seus itens, prefira os webhooks padrão da Pluggy (connector/status_updated)