Todos os endpoints públicos utilizam o prefixo /v1/ no caminho. Mudanças incompatíveis (breaking changes) só serão introduzidas em incrementos de versão major (ex.: /v2/).
O cliente seleciona a versão da API pela URL. Não há negociação por header — a versão é determinada exclusivamente pelo prefixo do caminho:
https://api.signdocs.com.br/v1/transactions
https://api.signdocs.com.br/v2/transactions (futuro)
2.x utiliza /v2/).Accept-Version para seleção de versão.Toda resposta inclui o header API-Version indicando a versão atual da API:
API-Version: 1.0
Este header é informativo e não participa da seleção de versão. Ele permite que o cliente confirme qual versão está sendo servida.
Quando uma nova versão major é lançada, a versão anterior continua disponível:
/v2/ coexiste com /v1/ durante todo o período de sunset da versão anterior.openapi-v1.yaml, openapi-v2.yaml).O ciclo de vida de uma versão da API segue estas fases:
Deprecation e Sunset (RFC 8594). Continua funcional.410 Gone.Janela mínima de sunset: 6 meses a partir da data de deprecação.
Patches de segurança durante sunset: correções críticas de segurança são aplicadas à versão depreciada durante todo o período de sunset.
Frequência de versões major: versões major são raras — estimativa de uma a cada 2 a 5 anos. A API prioriza estabilidade e evolução por adições não incompatíveis.
Quando um endpoint ou versão está agendado para remoção, a API retorna headers padrão RFC 8594:
| Header | Formato | Descrição |
|---|---|---|
Deprecation |
true ou @<unix-timestamp> |
Indica que o endpoint está depreciado. O timestamp marca quando a deprecação começou. |
Sunset |
HTTP-date (RFC 7231) | Data após a qual o endpoint será removido. |
Link |
<substituto>; rel="successor-version" |
Aponta para o endpoint substituto, quando disponível. |
HTTP/1.1 200 OK
API-Version: 1.0
Deprecation: @1725148800
Sunset: Tue, 01 Sep 2026 00:00:00 GMT
Link: <POST /admin/tenants/{id}/credentials (com campo mode)>; rel="successor-version"
Clientes podem se inscrever no evento API.DEPRECATION_NOTICE para receber alertas proativos quando endpoints são depreciados ou estão próximos da data de sunset.
Alguns endpoints são compartilhados entre todas as versões da API e não possuem prefixo de versão:
| Endpoint | Descrição |
|---|---|
/oauth2/token |
Emissão de token de acesso OAuth2 |
/health |
Verificação de saúde do sistema |
/health/history |
Histórico de verificações de saúde |
/v1/verify/{evidenceId} |
Verificação pública de evidência (compartilhado) |
Estes endpoints são estáveis e não são afetados por mudanças de versão da API.
Uma mudança incompatível é definida como:
Mudanças não incompatíveis (adição de campos opcionais, novos endpoints, novos valores de enum) podem ser introduzidas dentro da versão atual sem incremento de versão.
Quando uma nova versão major é implantada, o processo interno segue esta estrutura:
src/handlers/v2/ — código completamente separado da v1./v2/.openapi/openapi-v2.yaml.Esta abordagem garante que a v1 permanece estável e testada enquanto a v2 é desenvolvida e implantada de forma independente.
| Endpoint | Depreciado desde | Data de Sunset | Substituto |
|---|---|---|---|
POST /admin/tenants/{id}/mode |
2025-09-01 | 2026-09-01 | Modo por credencial via POST /admin/tenants/{id}/credentials com campo mode |