Como categorizar despesas sem planilha manual
Envie as transações do cartão ou do banco e receba cada uma em uma categoria como viagens, material de escritório, software ou refeições, lida a partir do estabelecimento, do valor e da observação. Também aceita a sua própria lista de categorias. Você paga por uso, sem assinatura.
Rode online
Rode nos nossos servidores com a sua conta. As ferramentas grátis rodam no seu navegador; esta aqui é descontada do seu saldo do KIT pelo preço acima.
Classifica despesas pela descrição que aparece no extrato ou no comprovante: envia o texto do lançamento — “PIX QRS PADARIA PAO DOUR”, “PAG*FARMACIADROGAV” — e recebe a categoria correspondente, no seu plano de categorias. Serve para quem organiza finanças pessoais, MEI, escritórios contábeis e apps financeiros.
O extrato brasileiro é um enigma de abreviações
Quem já tentou organizar um extrato conhece o problema: os lançamentos vêm truncados, com prefixos de adquirente e nomes de fantasia cortados — “PAG*JOSE99”, “PIX TRANSF 8821”, “DL*GOOGLPLAY”. Categorizar isso exige decifrar cada linha, e é por essa etapa que a maioria das planilhas de controle financeiro morre em fevereiro.
Seu plano de categorias, não o nosso
Na chamada você informa as categorias que usa — as da sua planilha, as do plano de contas do escritório ou as do seu app. “Alimentação, transporte, moradia” para pessoa física; “insumos, marketing, impostos, pró-labore” para uma MEI; um plano de contas contábil completo para escritórios. O retorno respeita a sua lista e pode incluir o grau de confiança de cada classificação, para você revisar só as duvidosas.
Preço que cabe em produto
Sem mínimo, sem franquia: mês sem uso é mês sem custo. E se o volume escalar, o preço unitário continua o mesmo.
Do CSV do banco à planilha organizada
O fluxo simples: exporte o extrato em CSV ou OFX pelo app do banco, envie as descrições em sequência e grave a categoria de volta em uma coluna nova. Para escritórios, o mesmo fluxo roda por cliente, com o plano de contas de cada um — a categorização deixa de consumir o início do mês.
Casos de uso
Escritório contábil com 80 clientes
Um escritório de Recife recebe extratos de dezenas de PJs todo início de mês. Um script categoriza os lançamentos conforme o plano de contas de cada cliente e o contador revisa apenas os marcados como baixa confiança — a triagem braçal virou revisão.
Prestação de contas de viagem corporativa
O financeiro da Distribuidora Horizonte Verde S.A. recebe relatórios de despesa dos vendedores externos: notas de posto, restaurante, pedágio, hotel. As descrições passam pela categorização automática e os relatórios chegam padronizados na aprovação, com as exceções destacadas.
Perguntas frequentes
Funciona com aquelas descrições cortadas tipo “PAG*” e “PIX QRS”?
É o caso de uso central: prefixos de adquirente (PAG*, MP*, PG*), lançamentos Pix truncados e nomes de fantasia abreviados são interpretados pelo contexto. Quando a descrição é ambígua de verdade, a classificação vem com confiança baixa em vez de um chute disfarçado.
Preciso enviar valores e datas ou só a descrição?
Envie o que tiver; o mínimo necessário já funciona.
Meus dados bancários ficam seguros?
Envie apenas as colunas necessárias — descrição, valor, data — e nunca número de conta ou senha, que a categorização não usa. O que você envia serve para classificar aqueles lançamentos e não é retido para outros fins, em conformidade com a LGPD.
Ele aprende com as minhas correções?
Não existe modelo seu sendo treinado: o comportamento vem das categorias e exemplos que você manda na chamada. A forma de “ensinar” é incluir na instrução os casos que você já corrigiu — funciona como memória sua, sob seu controle, e o resultado é reproduzível.
Isso substitui o contador?
Não — organiza o material que chega até ele.
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/text/expense-categorize \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"text":"El informe trimestral cerró con 1,2 M€ de ingresos.","categories":["soporte","ventas","facturación"]}'const res = await fetch("https://api.kit.forhosting.com/text/expense-categorize", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"text": "El informe trimestral cerró con 1,2 M€ de ingresos.",
"categories": [
"soporte",
"ventas",
"facturación"
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/text/expense-categorize",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"text": "El informe trimestral cerró con 1,2 M€ de ingresos.",
"categories": [
"soporte",
"ventas",
"facturación"
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/text/expense-categorize", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"text":"El informe trimestral cerró con 1,2 M€ de ingresos.","categories":["soporte","ventas","facturación"]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"text":"El informe trimestral cerró con 1,2 M€ de ingresos.","categories":["soporte","ventas","facturación"]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/text/expense-categorize", 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
{
"text": "El informe trimestral cerró con 1,2 M€ de ingresos.",
"categories": [
"soporte",
"ventas",
"facturación"
]
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "text.expense_categorize",
"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.
Limites
max_tokens | 20000 |
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. |
422 | task_failed | A tarefa falhou do nosso lado. Você não paga nada por ela. |
Notas técnicas
O extrato brasileiro é um enigma de abreviações
A API foi feita para esse texto sujo: interpreta a descrição como um humano experiente faria e devolve a categoria.
Preço que cabe em produto
US$ 0,0135 por lançamento categorizado, mais US$ 0,003 por chamada. Um extrato pessoal de 150 lançamentos mensais custa cerca de US$ 2 por mês; para uso dentro de um app financeiro, o custo por usuário fica previsível e o preço publicado permite calcular margem sem surpresa.
Do CSV do banco à planilha organizada
Quem prefere não programar resolve com uma automação de planilha chamando a API linha a linha.
Casos de integração
MEI fechando o mês
Márcia Regina Oliveira é MEI e mistura (como quase todo MEI) conta pessoal e do negócio. O extrato do mês passa pela API com as categorias “negócio” e “pessoal” mais subcategorias — e ela finalmente enxerga quanto do faturamento vai embora em insumo e taxa de maquininha.
App de finanças pessoais
Uma fintech em estágio inicial precisa categorizar transações dos usuários sem montar um time de dados. Integra a API no backend: cada transação importada chega categorizada na tela do usuário, e o custo por unidade é conhecido desde o primeiro dia.
Perguntas técnicas
Quanto custa para um volume de app, tipo 1 milhão de transações?
O preço é linear e publicado: US$ 0,0135 por item mais US$ 0,003 por chamada — agrupar muitos itens por chamada dilui o custo fixo. Um milhão de transações fica em torno de US$ 13.500; para volumes assim, escreva para a gente antes e conversamos sobre a integração.