# Estados do fornecedor

A [lista de fornecedores](/referencia/distribuidor#listar-os-fornecedores-de-um-cliente-com-o-andamento-de-cada-um)
de um depósito traz **todos os fornecedores** que ele convidou e em que ponto cada um está. Uma linha
por documento: se você convidou o mesmo fornecedor mais de uma vez, ele continua sendo uma linha só, com
o estado mais avançado. Os [avisos](/webhooks/eventos-e-entrega) usam os mesmos nove nomes.

## Os nove estados

| `status` | o que significa | o que você faz |
| --- | --- | --- |
| `invited` | o convite foi emitido e ainda não foi usado (vale 30 dias) | esperar, ou [reenviar o convite](/referencia/distribuidor#reenviar-o-convite-de-certificacao) |
| `invite_expired` | o convite venceu sem que ninguém o abrisse | convidar de novo |
| `awaiting_payment` | a pessoa aderiu e o pagamento da certificação ainda não entrou | cobrar |
| `in_verification` | a verificação está em curso | esperar; se a pessoa travou, [reenviar o link de verificação](/referencia/distribuidor#reenviar-o-link-de-verificacao-ao-fornecedor) |
| `certified` | selo aceso e válido agora | nada — está em dia |
| `expired` | foi certificado e a validade passou | pedir a renovação |
| `refused` | a verificação de identidade foi **recusada** | ⛔ não reconvide: o desfecho foi negativo |
| `verification_expired` | a pessoa **não concluiu** a verificação (abandonou ou o prazo passou) | reconvidar — este é o caso comum |
| `revoked` | o certificado foi **revogado** e deixou de valer | ⛔ não trate como certificado; o fornecedor não está em dia |

## `refused` não é `verification_expired`

São dois estados porque levam a ações opostas. **Quem desistiu se reconvida; quem foi recusado, não.**
Juntar os dois faria você gastar convite — e cobrança — com quem não pode ser certificado.

## Quando um fornecedor sai da lista, e quando volta

- **Convite cancelado.** Um documento cujos convites foram **todos cancelados** sai da lista: ali não
  houve fornecedor, houve um convite retirado de circulação. O cancelamento não gera aviso. Um convite
  novo para o mesmo documento o traz de volta, como `invited`.
- **Fornecimento encerrado e reconvite.** O fornecedor cujo fornecimento o depósito **encerrou** sai da
  lista daquele depósito. Um convite novo emitido **depois** do encerramento o traz de volta como
  `invited`, e daí segue o andamento novo. Se esse convite for cancelado ou vencer sem aceite, ele sai de
  novo. Nos outros depósitos do seu canal, esse fornecedor aparece igual o tempo todo.
- **Convite vencido.** Emitir um convite para um documento cujo convite anterior **venceu** sem ser usado
  entrega um convite **novo** (`reused: false`, link novo); o vencido sai de circulação. Reenviar um
  convite vencido não funciona: o reenvio responde **`409 INVITE_NOT_OPEN`** — emita um novo.

## Os campos que só existem com selo

`valid_until`, `certified_since`, `verification_url` e `certificate_number` só vêm preenchidos em
`certified` e `expired`; nos demais estados — inclusive `revoked` — são `null`. `verification_url` é a página pública do selo — a
mesma que o QR do certificado abre — e pode ser exibida ao lado do selo na tela do seu sistema.
`certificate_number` é o número impresso no certificado. `certified_since` é o instante em que o selo
acendeu pela primeira vez, e não se apaga.

## A lista não é o selo

O `status` da lista **não** é o vocabulário da
[consulta de selo](/referencia/distribuidor#consultar-o-selo-de-um-fornecedor-pelo-documento). Lá a
pergunta é binária — *"este documento tem selo válido agora?"* — e a resposta é `valid`/`expired`. Aqui
a pergunta é *"em que ponto está a certificação?"*. Objetos diferentes, listas diferentes, de propósito.

**O que a lista devolve é o andamento.** Nenhum campo diz qual verificação falhou, em que etapa parou,
qual checagem reprovou ou qual foi a decisão — veja [O que o canal devolve](/canal/o-que-o-canal-devolve).
