Calcule o crédito SLA devido por disponibilidade
Esta calculadora transforma a disponibilidade mensal medida em um crédito de serviço claro.
Executar grátis
Informe o percentual de disponibilidade, o valor elegível da fatura e a tabela do contrato. A ferramenta identifica a faixa aplicável, usa seu percentual e retorna o crédito devido e o saldo após o abatimento. Ela ajuda fornecedores e clientes a conferir se um ajuste segue o SLA assinado.
Converta a tabela do SLA em intervalos precisos
Comece pela tabela de créditos do contrato assinado, não por um resumo comercial. Informe para cada faixa a disponibilidade mínima, a máxima e o percentual de crédito. O limite inferior é inclusivo e o superior é exclusivo, exceto quando o máximo é 100, caso em que ele também é incluído. Assim, faixas adjacentes se encontram sem ambiguidade: a faixa de 99 a 99.9 cobre desde 99 até valores menores que 99.9, e a seguinte começa exatamente em 99.9. Não crie sobreposições. Lacunas são permitidas se o contrato realmente as tiver, mas uma medição na lacuna gera erro. Inclua uma faixa de crédito zero quando necessário. Todos os limites e percentuais precisam ficar entre zero e 100, e cada mínimo deve ser menor que o máximo.
Use a disponibilidade e o valor elegível corretos
Use o percentual mensal definitivo do serviço e período cobertos. O fornecedor pode excluir manutenção anunciada, falhas causadas pelo cliente ou serviços fora da região afetada; portanto, o valor informado já deve refletir as regras contratuais. A fatura também deve representar apenas o montante elegível. Alguns SLA cobrem somente o serviço afetado ou a tarifa recorrente, e não toda a cobrança. Informe esse valor não negativo na moeda desejada; a calculadora não identifica nem converte moedas. Ela multiplica o valor pelo percentual da faixa e arredonda os resultados monetários para duas casas decimais. A resposta preserva as entradas e mostra taxa, faixa, crédito e saldo. Confirme os dados de origem antes de usar o resultado.
Revise o resultado e documente a solicitação
Compare a faixa selecionada com o texto exato do acordo. A resposta informa se o limite máximo é inclusivo, o que ajuda em pontos como 99.9 e 100. Anexe ao registro o relatório de monitoramento, a tabela do SLA, o cálculo do valor elegível e o crédito obtido. Outra pessoa poderá reproduzir o resultado com os mesmos dados. O algoritmo não usa rede, data atual, aleatoriedade nem dados externos. Ele rejeita disponibilidade fora de zero a 100, faturas inválidas, faixas malformadas, sobreposições e medições sem cobertura. Esses erros evitam estimativas ocultas. A API custa US$ 0,002 por solicitação, e o navegador serve para verificações manuais. O cálculo não substitui prazos, limites, procedimentos de reclamação ou outras cláusulas.
Casos de uso
Validar um crédito ao cliente
Confira se o ajuste usa a disponibilidade, a cobrança elegível e o percentual previstos no SLA.
Preparar uma reclamação por indisponibilidade
Calcule o valor e preserve a faixa com as evidências antes de enviar a solicitação.
Automatizar ajustes de cobrança
Aplique uma tabela SLA controlada aos resultados mensais e encaminhe o crédito para revisão.
Perguntas frequentes
Como o crédito de serviço é calculado?
O valor mensal elegível é multiplicado pelo percentual da única faixa que cobre a disponibilidade e arredondado para duas casas.
O que ocorre se a disponibilidade for menor que zero ou maior que 100?
A calculadora retorna erro de entrada inválida, pois o percentual deve ficar entre zero e 100.
Como os limites das faixas são tratados?
Cada mínimo é inclusivo e cada máximo é exclusivo, exceto o máximo 100, que inclui exatamente 100.
E se nenhuma faixa cobrir a disponibilidade?
A ferramenta retorna erro. Adicione o intervalo contratual ausente ou corrija a medição.
Posso informar o valor integral da fatura?
Somente se o SLA permitir. Muitos acordos limitam o crédito ao serviço afetado ou à tarifa recorrente.
Quanto custa uma solicitação pela API?
Cada solicitação pela API custa US$ 0,002. O resultado inclui o crédito e o saldo restante.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/dev/server-uptime-sla-credit-calc \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"uptime_percentage":99.5,"monthly_bill":2500,"sla_tiers":[{"minimum_uptime":0,"maximum_uptime":99,"credit_percentage":25},{"minimum_uptime":99,"maximum_uptime":99.9,"credit_percentage":10},{"minimum_uptime":99.9,"maximum_uptime":100,"credit_percentage":0}]}'const res = await fetch("https://api.kit.forhosting.com/dev/server-uptime-sla-credit-calc", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"uptime_percentage": 99.5,
"monthly_bill": 2500,
"sla_tiers": [
{
"minimum_uptime": 0,
"maximum_uptime": 99,
"credit_percentage": 25
},
{
"minimum_uptime": 99,
"maximum_uptime": 99.9,
"credit_percentage": 10
},
{
"minimum_uptime": 99.9,
"maximum_uptime": 100,
"credit_percentage": 0
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/server-uptime-sla-credit-calc",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"uptime_percentage": 99.5,
"monthly_bill": 2500,
"sla_tiers": [
{
"minimum_uptime": 0,
"maximum_uptime": 99,
"credit_percentage": 25
},
{
"minimum_uptime": 99,
"maximum_uptime": 99.9,
"credit_percentage": 10
},
{
"minimum_uptime": 99.9,
"maximum_uptime": 100,
"credit_percentage": 0
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/server-uptime-sla-credit-calc", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"uptime_percentage":99.5,"monthly_bill":2500,"sla_tiers":[{"minimum_uptime":0,"maximum_uptime":99,"credit_percentage":25},{"minimum_uptime":99,"maximum_uptime":99.9,"credit_percentage":10},{"minimum_uptime":99.9,"maximum_uptime":100,"credit_percentage":0}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"uptime_percentage":99.5,"monthly_bill":2500,"sla_tiers":[{"minimum_uptime":0,"maximum_uptime":99,"credit_percentage":25},{"minimum_uptime":99,"maximum_uptime":99.9,"credit_percentage":10},{"minimum_uptime":99.9,"maximum_uptime":100,"credit_percentage":0}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/server-uptime-sla-credit-calc", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"uptime_percentage": 99.5,
"monthly_bill": 2500,
"sla_tiers": [
{
"minimum_uptime": 0,
"maximum_uptime": 99,
"credit_percentage": 25
},
{
"minimum_uptime": 99,
"maximum_uptime": 99.9,
"credit_percentage": 10
},
{
"minimum_uptime": 99.9,
"maximum_uptime": 100,
"credit_percentage": 0
}
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.server_uptime_sla_credit_calc",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |