# Página de Status da API

## Visão Geral

A página de status da Pluggy em [status.pluggy.ai](https://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`](#the-snapshot-endpoint) | Você quer tudo: conectores, 90 dias de histórico, cada incidente com sua linha do tempo |
| [`/api/connectors-incidents`](#active-incidents-by-connector) | Você só quer o que está quebrado agora, identificado pelo id do conector |
| [`/api/summary`](#embeddable-widget) | 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](#on-the-connector-object).

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](https://status.pluggy.ai/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.
- **Cache 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 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

```json
{
  "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:**

```bash
curl -s https://status.pluggy.ai/api/status \
  | jq '.institutions[] | select(.pluggy_id == "601") | {name, status, uptime}'
```

## Incidentes

```json
{
  "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:**

```bash
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
```

```json
{
  "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`](/reference/connector/connectors-list), então uma listagem que você já faz os carrega:

```json
{
  "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.

<Callout variant="info" title="Duas perguntas diferentes">
Note o `status: "ONLINE"` nesse exemplo. `health.status` responde *posso 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.
</Callout>

`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.

```html
<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:

```html
<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, cache ~30s). `\/api\/widget` serve o mesmo corpo e continua funcionando para embeds que já apontam para ele:

```
GET https://status.pluggy.ai/api/summary
```

```json
{
  "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 |
| --- | --- |
| Email | Inscreva-se na [página de status](https://status.pluggy.ai) — 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`](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](/docs/developer-tools/webhooks-ref) (`connector/status_updated`) |