Orçamento de compras
Com orçamento de 100 e leite, pão, ovos e maçãs somando 10,53, sobram 89,47. Depois de cada item você vê o saldo restante e descobre qual deles estouraria o limite antes de chegar ao caixa. Grátis no seu navegador.
- Grátis
- Funciona no seu navegador
- Sem cadastro
- Seus dados não saem do seu aparelho
Executar grátis
Exemplo resolvido
- Orçamento
- 100
- Quantidade de itens
- 4
- Total gasto
- 10,53
- Restante
- 89,47
- Valor excedido
- 0
Um rastreador de orçamento de compras responde a uma pergunta prática antes do caixa: depois desta lista de preços de itens, quanto dinheiro ainda resta e você já ultrapassou o limite? Compradores, planejadores domésticos e ferramentas de varejo precisam de uma resposta determinística que não raspe catálogos nem invente impostos. Esta calculadora de orçamento de compras aceita um orçamento total e uma ou mais linhas do carrinho com preços, soma o gasto, subtrai do orçamento e devolve o saldo restante, se o orçamento foi excedido, quanto passou do limite e um saldo corrido após cada linha para ver qual adição estourou o carrinho.
Como o saldo restante e o excesso de orçamento são calculados
Comece com um orçamento de compras não negativo na mesma unidade monetária que você já usa nos preços de prateleira—a calculadora não converte moedas nem aplica câmbio. Para cada linha do carrinho, use um preço finito não negativo; nomes opcionais rotulam a linha na tela. O total gasto é a soma de todos os preços da lista.
O saldo restante é o orçamento menos esse total. Quando o restante é zero ou positivo, você ainda está dentro do orçamento; quando é estritamente negativo, o orçamento foi excedido e o valor do excesso é o valor absoluto do restante. Orçamento zero é permitido: qualquer gasto positivo é reportado como excesso, alinhado a regras de envelope em que a verba já estava esgotada.
Amostras grátis a preço zero são aceitas e não alteram o total. Orçamentos e preços negativos são rejeitados porque não descrevem uma verba de compra nem um preço de prateleira neste produto.
Casos de uso
Envelope semanal de compras
Informe seu orçamento alimentar semanal e os preços de corredor enquanto compra; acompanhe o saldo restante e pare quando o carrinho ultrapassaria o limite.
Carrinho compartilhado da casa
Colegas de casa publicam um orçamento comum e uma lista conjunta para que todos vejam o mesmo total gasto, o restante e o sinal de excesso.
Perguntas frequentes
Como funciona a calculadora de orçamento de compras?
Envie um orçamento não negativo e uma lista não vazia de preços.
Os preços dos itens podem ser zero?
Sim. Amostras grátis ou linhas promocionais a preço 0 são permitidas.
Preciso de nomes em cada linha do carrinho?
Não. Nomes são opcionais. Números soltos são tratados como preços e linhas sem nome recebem rótulos estáveis como Item 1 para exibição.
O que acontece se eu passar do orçamento?
O saldo restante fica negativo, a calculadora marca o orçamento como estourado e mostra quanto você passou, que é esse saldo negativo sem o sinal de menos.
Como sei qual item me fez passar do orçamento?
Olhe o saldo mostrado depois de cada linha. Os preços são descontados em ordem, então a primeira linha em que o saldo fica abaixo de zero é a do item que estourou o carrinho.
Ferramentas relacionadas
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/life/shopping-budget \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"budget":100,"items":[{"name":"Milk 1 L","price":1.49},{"name":"Bread","price":2.25},{"name":"Eggs (12)","price":3.8},{"name":"Apples 1 kg","price":2.99}]}'const res = await fetch("https://api.kit.forhosting.com/life/shopping-budget", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"budget": 100,
"items": [
{
"name": "Milk 1 L",
"price": 1.49
},
{
"name": "Bread",
"price": 2.25
},
{
"name": "Eggs (12)",
"price": 3.8
},
{
"name": "Apples 1 kg",
"price": 2.99
}
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/life/shopping-budget",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"budget": 100,
"items": [
{
"name": "Milk 1 L",
"price": 1.49
},
{
"name": "Bread",
"price": 2.25
},
{
"name": "Eggs (12)",
"price": 3.8
},
{
"name": "Apples 1 kg",
"price": 2.99
}
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/life/shopping-budget", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"budget":100,"items":[{"name":"Milk 1 L","price":1.49},{"name":"Bread","price":2.25},{"name":"Eggs (12)","price":3.8},{"name":"Apples 1 kg","price":2.99}]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"budget":100,"items":[{"name":"Milk 1 L","price":1.49},{"name":"Bread","price":2.25},{"name":"Eggs (12)","price":3.8},{"name":"Apples 1 kg","price":2.99}]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/life/shopping-budget", 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
{
"budget": 100,
"items": [
{
"name": "Milk 1 L",
"price": 1.49
},
{
"name": "Bread",
"price": 2.25
},
{
"name": "Eggs (12)",
"price": 3.8
},
{
"name": "Apples 1 kg",
"price": 2.99
}
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "life.shopping_budget",
"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. |
Notas técnicas
Validação falha—orçamento ausente, listas vazias, preços negativos—é rejeitada como invalid_input e não é cobrada.
Como o saldo restante e o excesso de orçamento são calculados
O endpoint também informa o percentual do orçamento usado quando o orçamento é maior que zero, de modo que um carrinho de trinta sobre um teto de cem mostra trinta por cento usado sem forçar os clientes a recalcular razões. O arredondamento fixo em doze casas decimais nos campos monetários mantém os goldens do navegador e da API estáveis entre runtimes sem ruído de ponto flutuante em somas simples.
Contrato de entrada, formato da resposta e erros
Cada linha pode ser um número solto tratado como preço, ou um objeto com price obrigatório e name opcional. Listas com mais de quinhentas linhas são rejeitadas para manter o trabalho pure-parse limitado. Envie por POST um corpo JSON com dois campos obrigatórios: budget, um número finito maior ou igual a zero, e items, um array não vazio de linhas do carrinho. Price também aceita aliases comuns como cost ou amount; o campo da lista aceita aliases cart, prices, lines e list. Budget aceita aliases limit, max, total_budget e allowance para reutilizar vocabulário de outras ferramentas de dinheiro. Em caso de sucesso o corpo ecoa o orçamento, a contagem de itens, cada linha com nome estável, preço arredondado e restante corrido após essa linha, mais total_spent, remaining, over_budget, over_amount, within_budget, percent_used, uma string de fórmula, uma mensagem legível e passos ordenados para planilhas. Exemplo: orçamento cem com leite a one point four nine, pão a two point two five, ovos a three point eight e maçãs a two point nine nine produz total gasto ten point five three e restante eighty-nine point four seven com over_budget false. Se o mesmo orçamento for combinado com linhas que somam além de cem, over_budget é true e over_amount mostra quanto passou do limite—ainda é uma resposta de sucesso, não um erro, porque exceder o orçamento é a pergunta que o rastreador responde. Orçamento ausente, items vazios, números não finitos ou preços negativos falham com invalid_input nomeando o campo e não são cobrados.
Onde um rastreador de orçamento de compras gera valor
Apps domésticos e listas de compras compartilhadas usam um rastreador de orçamento para que colegas de casa vejam o saldo ao marcar itens sem abrir uma planilha. Quiosques de demonstração no varejo e sandboxes de treinamento POS precisam de um oráculo determinístico de fundos restantes que nunca chama APIs de preços ao vivo. Mantenha as requisições pequenas, fixe totais arredondados nos testes e obtenha saldos reproduzíveis para checklists móveis, plugins LMS e edge workers sem montar infraestrutura contábil própria. Cursos de finanças pessoais atribuem exercícios de carrinho versus orçamento; uma API com restante corrido ordenado após cada linha permite avaliar qual adição ultrapassou o limite primeiro. Scripts de automação que montam cardápios semanais podem enviar totais de ingredientes e interromper reposição quando over_budget vira true.
Casos de integração
Automação do cardápio semanal
Scripts enviam preços planejados de ingredientes contra um teto fixo e interrompem a reposição quando over_budget passa a true.
Perguntas técnicas
O que acontece se eu ultrapassar o orçamento?
A chamada ainda tem sucesso. remaining é negativo, over_budget é true e over_amount mostra quanto passou do limite. Exceder o orçamento não é tratado como invalid_input.
Quanto custa o rastreador de orçamento de compras?
A ferramenta do navegador é gratuita. Pedidos API usam saldo KIT pré-pago a US$ 0,002 por chamada bem-sucedida; entrada inválida não é cobrada.