lançar movimentações pelo celular
Registrar um gasto no momento em que ele acontece é o que separa um controle financeiro que funciona de um que você abandona em três semanas. Abrir o navegador, entrar no painel e preencher um formulário é atrito suficiente para você deixar para depois — e depois você não lembra.
O sistema aceita lançamentos por webhook: qualquer coisa capaz de fazer um POST com JSON consegue criar uma movimentação. No iPhone isso vira um atalho na tela de início ou um comando de voz.
É para cá que a automação envia. A senha mestre faz parte do endereço — é o que autentica a chamada, já que um atalho de celular não tem onde guardar cabeçalhos.
Este é o atalho que eu uso. Ele pergunta a descrição, o valor, a direção e o meio de pagamento, e envia para o sistema.
POST, que o Corpo da Solicitação
está como JSON, e que os campos batem com a tabela mais abaixo.
Pix para PIX lá, ajuste a lista no atalho também —
senão o envio é recusado.
O formato de atalho do iOS não é portável, então não há um arquivo pronto. Mas o
endpoint não se importa com quem chama: qualquer coisa que faça um POST com
este JSON funciona. No Android, apps como Tasker, HTTP Shortcuts ou
Automate dão conta; no computador, um curl resolve.
Sobre o formato: ele parece estranho de propósito. É o mesmo payload
que a API do Notion aceita para criar uma página, porque o sistema nasceu migrando de
lá e a automação existente precisou continuar funcionando trocando só a URL.
Os campos parent e icon são ignorados — estão aí só para o
payload não precisar mudar.
POST <sua URL, a mesma da seção acima> Content-Type: application/json { "parent": { "database_id": "ignorado" }, "properties": { "Name": { "title": [{ "text": { "content": "Mercado" } }] }, "Valor": { "number": 42.5 }, "Tipo": { "multi_select": [{ "name": "Saida" }, { "name": "Pix" }] }, "Date": { "date": { "start": "2026-09-21" } } } }
| Campo | Regra |
|---|---|
Name obrigatório |
A descrição da movimentação. Texto livre, não pode ficar vazio. |
Valor obrigatório |
Número, sempre positivo — quem diz se é entrada ou saída é o campo Tipo. Arredondado para dois decimais. |
Date obrigatório |
Formato AAAA-MM-DD. Qualquer outro formato é recusado. |
Tipo obrigatório |
Lista. Precisa de exatamente uma direção
(Entrada ou Saida — sem acento) e, opcionalmente, um
meio de pagamento. Os valores aceitos são os de
Tags, domínios
mov_direcao e mov_meio.
|
Respostas: {"ok":true,"id":"…"} em caso de sucesso.
401 é senha errada na URL; 400 com
invalid_tipo, invalid_valor, invalid_date ou
invalid_name aponta qual campo está fora do contrato.
curl -X POST
com o JSON acima. Se voltar ok: true, o resto é só embrulhar isso no
app de automação que você preferir.