Versionamento semântico. Breaking changes (campos renomeados, endpoints removidos, esquema de autenticação alterado) ocorrem somente em uma nova versão major, sob novo prefixo de URL /v2/. Dentro de /v1/ acontecem apenas mudanças aditivas (novos campos opcionais, novos endpoints).

v1.1.0 (2026-09-23)

  • POST /v1/orders: config_options só aceita opções e valores visíveis na loja e quantidades dentro dos respetivos limites. As opções visíveis que omitir recebem o primeiro valor listado, exatamente como na loja. GET /v1/products/{id} lista apenas opções encomendáveis e devolve quantity.min e quantity.max.
  • Novo estado de encomenda awaiting_setup com o campo awaiting_setup para produtos que a equipa KernelHost configura manualmente. Os serviços aprovisionados automaticamente são aprovisionados exatamente uma vez.
  • Os bodies dos pedidos estão limitados a 64 KB (HTTP 413). Aplica-se um limite de 120 pedidos por minuto por conta, em todas as chaves, e uma conta pode ter até 20 chaves ativas. Uma autenticação falhada já não bloqueia nenhuma chave e o Idempotency-Key fica associado ao método e ao caminho.
  • Os pedidos com mais de um parâmetro na query string (por exemplo GET /v1/services?limit=10&offset=0) eram rejeitados com HTTP 401. A assinatura passa a abranger a query string exatamente como documentado.

v1.0.0 (2026-05-14)

  • Lançamento inicial. Todos os 15 endpoints, autenticação HMAC, armazenamento de segredos AES-GCM, limites de taxa, idempotência, log de auditoria.
  • GET /v1/me, /v1/products, /v1/products/{id}
  • POST /v1/orders, GET /v1/orders/{id}
  • GET /v1/services, /v1/services/{id}, /v1/services/{id}/credentials
  • POST /v1/services/{id}/actions
  • GET /v1/billing/balance, /v1/billing/invoices, /v1/billing/invoices/{id}/pdf
  • GET/PUT /v1/webhooks
  • HMAC-SHA256 signing, AES-256-GCM secret storage, replay protection, idempotency.