Limites de requisições
Os limites são por minuto e por token, com cotas separadas para leitura e escrita:Por que o cancelamento tem limite próprio
Cancelar assinatura é irreversível, e oid da assinatura é o único parâmetro. Um limite folgado permitiria varrer id em busca de assinaturas de outras pessoas. Por isso a rota tem cota bem menor, com teto diário além do teto por minuto.
Além da cota, existe uma proteção extra: um token que acumula respostas 404 nessa rota (tentando id que não existe ou não pertence a ele) é bloqueado temporariamente na rota, mesmo estando dentro do limite. Uma integração normal não é afetada, porque ela cancela assinaturas que ela mesma consultou antes.
Nesse bloqueio a resposta usa o envelope padrão de erro da API:
Resposta 429 por varredura de id
Headers de rate limit
Toda resposta da API inclui headers informativos sobre o estado atual da cota do token utilizado:Exemplo de resposta 429
Ao estourar a cota, a API retorna429 com o corpo padrão do framework (esta resposta não usa o envelope error das demais falhas) e o header Retry-After:
Resposta 429
Boas práticas
1
Verifique X-RateLimit-Remaining antes de envios em lote
Antes de iniciar uma operação que dispara múltiplas requisições, leia o header
X-RateLimit-Remaining de uma chamada anterior. Se o valor estiver baixo, adicione um intervalo entre as requisições ou distribua o envio ao longo do tempo.2
Implemente retry com exponential backoff ao receber 429
Ao receber um erro
429, não tente novamente imediatamente. Use o valor do header Retry-After como base para o tempo de espera, aplicando backoff exponencial com jitter para evitar picos sincronizados em integrações paralelas.3
Use Idempotency-Key para reenviar requisições POST com segurança
Ao reenviar uma requisição
POST após falha de rede ou timeout, utilize o mesmo Idempotency-Key UUID da tentativa original. A Ticto API reconhecerá a duplicata e retornará a resposta original sem criar um segundo recurso.4
Processe criações em batch com intervalos entre requests
Para criar múltiplos recursos em sequência (ex.: várias ofertas), adicione um intervalo de pelo menos 100–200 ms entre cada requisição. Isso evita atingir o limite em rajadas curtas e distribui a carga de forma mais previsível.
Exemplo de retry com backoff exponencial
O exemplo abaixo implementa retry automático em JavaScript, respeitando o headerRetry-After e aplicando backoff exponencial com jitter para tentativas subsequentes:
Retry com backoff exponencial
O limite é por token de API. Você pode usar múltiplos tokens para integrar sistemas diferentes, como um token para o seu CRM e outro para o seu sistema de automação, sem que compartilhem a mesma cota de requisições.