Crie um calendário de vencimento de contas recorrentes
Transforme uma lista de dias de vencimento mensal em próximas datas concretas. Informe a data atual, o nome de cada conta e o dia de vencimento; o resultado apresenta a próxima ocorrência de cada item na mesma ordem.
Executar grátis
Roda direto no seu navegador. Grátis, sem cadastro — seus dados não são enviados para lugar nenhum.
Uma conta que vence hoje continua com a data de hoje. Quando um dia válido, como 29, 30 ou 31, não existe no mês relevante, a ocorrência passa para o último dia desse mês.
Informe a data atual e as contas recorrentes
Comece com a data atual no formato inequívoco AAAA-MM-DD. Depois, adicione uma linha para cada conta mensal, com um nome reconhecível e um dia de vencimento inteiro entre 1 e 31. O nome é preservado exatamente no resultado e pode identificar um fornecedor, apelido de conta ou categoria de despesa. O dia representa uma recorrência mensal, não uma data completa. Valores abaixo de 1 ou acima de 31 são rejeitados. A ordem da lista também é mantida, facilitando a comparação com seu orçamento, planilha ou lista de pagamentos. Use uma linha para cada obrigação, mesmo quando várias contas compartilham o mesmo dia. A data informada precisa existir no calendário gregoriano; valores impossíveis, como 30 de fevereiro, não são tratados como aproximações.
Entenda como a próxima ocorrência é escolhida
Para cada conta, o cálculo considera primeiro o vencimento no mês atual. Se essa data for hoje ou posterior, ela será a próxima ocorrência. Essa regra inclusiva impede que uma conta com vencimento hoje seja transferida para o mês seguinte. Se a ocorrência do mês atual já passou, o cálculo avança exatamente um mês. Como os meses têm durações diferentes, um dia válido pode não existir em todos eles. Nesse caso, utiliza-se o último dia real do mês selecionado. Assim, uma conta com vencimento no dia 31 cai em 30 de abril e em 28 ou 29 de fevereiro. A mesma regra vale para os dias 29 e 30 em fevereiro. Os anos bissextos seguem as regras gregorianas, inclusive a exceção dos séculos. O resultado é determinístico e independe de fuso horário, relógio local ou interpretação do ambiente.
Aplique o calendário ao seu processo de pagamentos
O resultado contém a data atual informada e uma linha para cada conta, com o nome, o dia recorrente e a próxima data no formato AAAA-MM-DD. Você pode ordenar ou agrupar essas datas em sua planilha para obter uma visão cronológica do fluxo de caixa; o cálculo mantém intencionalmente a ordem de entrada. Execute novamente com uma data posterior para atualizar o calendário. Entradas idênticas sempre geram saídas idênticas, o que favorece testes e conferências repetíveis. Confira os resultados de fim de mês se o contrato do credor adotar outra regra, como transferir o pagamento para o próximo dia útil, pois este cálculo usa somente dias corridos. Ele não conhece feriados, fins de semana, carências, atrasos bancários ou pagamentos concluídos, nem armazena dados de contas. O preço-base da execução é US$ 0,002; serviços associados podem apresentar detalhes de cobrança separadamente.
Casos de uso
Orçamento doméstico mensal
Converta aluguel, serviços, assinaturas, seguros e cartões em próximas datas para planejar o fluxo de caixa.
Lista de contas a pagar
Atribua uma próxima data concreta a cada fornecedor recorrente sem alterar a ordem da lista interna de pagamentos.
Revisão do fim do mês
Veja como vencimentos nos dias 29, 30 e 31 são ajustados em fevereiro e em outros meses mais curtos.
Perguntas frequentes
Uma conta que vence hoje aparece hoje ou no próximo mês?
Ela aparece hoje. A data atual faz parte da seleção da próxima ocorrência.
O que acontece com o dia 31 em um mês mais curto?
A ocorrência é colocada no último dia do mês, como 30 de abril ou 28 de fevereiro em um ano não bissexto.
Fins de semana e feriados são considerados?
Não. O cálculo usa dias corridos e não muda datas por feriados ou calendários bancários.
Quais valores são aceitos como dia de vencimento?
O valor deve ser um inteiro de 1 a 31. Zero, negativos, frações e números acima de 31 são rejeitados.
As contas ou informações de pagamento são armazenadas?
Não. As datas são calculadas de forma determinística a partir da entrada, sem rede nem armazenamento persistente.
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/final3/recurring-bill-due-date-list \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"current_date":"2026-01-30","bills":[{"name":"Rent","due_day":1},{"name":"Internet","due_day":31}]}'const res = await fetch("https://api.kit.forhosting.com/final3/recurring-bill-due-date-list", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"current_date": "2026-01-30",
"bills": [
{
"name": "Rent",
"due_day": 1
},
{
"name": "Internet",
"due_day": 31
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/final3/recurring-bill-due-date-list",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"current_date": "2026-01-30",
"bills": [
{
"name": "Rent",
"due_day": 1
},
{
"name": "Internet",
"due_day": 31
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/final3/recurring-bill-due-date-list", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"current_date":"2026-01-30","bills":[{"name":"Rent","due_day":1},{"name":"Internet","due_day":31}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"current_date":"2026-01-30","bills":[{"name":"Rent","due_day":1},{"name":"Internet","due_day":31}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/final3/recurring-bill-due-date-list", 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
{
"current_date": "2026-01-30",
"bills": [
{
"name": "Rent",
"due_day": 1
},
{
"name": "Internet",
"due_day": 31
}
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "final3.recurring_bill_due_date_list",
"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. |