Install
openclaw skills install organizzeManage finances via the Organizze API — bank accounts, credit cards, invoices, transactions, transfers, categories, and budgets. THIS SKILL IS NON-OFICIAL AN...
openclaw skills install organizzeCommunicate with the Organizze personal finance API (v2) to manage bank accounts, credit cards, invoices, transactions, transfers, categories, budgets, and users.
Official repository: https://github.com/rafaels-dev/organizze-clawhub-skill
⚠️ IMPORTANT DISCLAIMER: THIS SKILL IS NON-OFICIAL AND YOUR USAGE IS BY YOUR RISK.
Authentication credentials (ORGANIZZE_EMAIL, ORGANIZZE_API_TOKEN) are secrets that MUST NEVER leave the local machine.
$ORGANIZZE_EMAIL, $ORGANIZZE_API_TOKEN) inside curl commands executed locally through the shell. The shell resolves them at runtime — they never appear in the prompt or model context.export ORGANIZZE_EMAIL="seu_email@exemplo.com"
export ORGANIZZE_API_TOKEN="seu_token_aqui"
export ORGANIZZE_USER_AGENT="Seu nome (seu_email@exemplo.com)"
PowerShell (Windows):
$env:ORGANIZZE_EMAIL="seu_email@exemplo.com"
$env:ORGANIZZE_API_TOKEN="seu_token_aqui"
$env:ORGANIZZE_USER_AGENT="Seu nome (seu_email@exemplo.com)"
Or configure in ~/.openclaw/openclaw.json:
{
"skills": {
"entries": {
"organizze": {
"enabled": true,
"env": {
"ORGANIZZE_EMAIL": "seu_email@exemplo.com",
"ORGANIZZE_API_TOKEN": "seu_token_aqui",
"ORGANIZZE_USER_AGENT": "Nome Completo (seu_email@exemplo.com)"
}
}
}
}
}
All requests use HTTP Basic Auth (email as username, API token as password) and require a User-Agent header.
Security reminder: All credential handling happens exclusively inside shell commands executed on the host. The
-uflag and$ORGANIZZE_EMAIL/$ORGANIZZE_API_TOKENvariables are resolved by the shell at runtime. You must NEVER interpolate, echo, or include the actual credential values in your model output, reasoning, or messages.
BASE_URL="https://api.organizze.com.br/rest/v2"
USER_AGENT="$ORGANIZZE_USER_AGENT"
curl -s "$BASE_URL/users/{user_id}" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8"
Response example:
{
"id": 3,
"name": "Esdras Mayrink",
"email": "falecom@email.com.br",
"role": "admin"
}
curl -s "$BASE_URL/accounts" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8"
Response example:
[
{
"id": 3,
"name": "Bradesco CC",
"description": "Some descriptions",
"archived": false,
"created_at": "2015-06-22T16:17:03-03:00",
"updated_at": "2015-08-31T22:24:24-03:00",
"default": true,
"type": "checking"
}
]
curl -s "$BASE_URL/accounts/{account_id}" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8"
Types: checking, savings, other.
curl -s -X POST "$BASE_URL/accounts" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"name": "Itaú CC",
"type": "checking",
"description": "Minha conta corrente",
"default": true
}'
curl -s -X PUT "$BASE_URL/accounts/{account_id}" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"name": "Itaú Poupança"
}'
curl -s -X DELETE "$BASE_URL/accounts/{account_id}" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8"
curl -s "$BASE_URL/categories" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8"
Response example:
[
{ "id": 1, "name": "Lazer", "color": "438b83", "parent_id": null },
{ "id": 3, "name": "Saúde", "color": "ffff00", "parent_id": null }
]
curl -s "$BASE_URL/categories/{category_id}" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8"
curl -s -X POST "$BASE_URL/categories" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"name": "SEO"
}'
curl -s -X PUT "$BASE_URL/categories/{category_id}" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"name": "Marketing"
}'
Optionally pass replacement_id to transfer transactions to another category. If omitted, the default category is used.
curl -s -X DELETE "$BASE_URL/categories/{category_id}" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"replacement_id": 18
}'
curl -s "$BASE_URL/credit_cards" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8"
Response example:
[
{
"id": 3,
"name": "Visa Exclusive",
"description": null,
"card_network": "visa",
"closing_day": 4,
"due_day": 17,
"limit_cents": 1200000,
"kind": "credit_card",
"archived": true,
"default": false,
"created_at": "2015-06-22T16:45:30-03:00",
"updated_at": "2015-09-01T18:18:48-03:00"
}
]
curl -s "$BASE_URL/credit_cards/{credit_card_id}" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8"
curl -s -X POST "$BASE_URL/credit_cards" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"name": "Hipercard",
"card_network": "hipercard",
"due_day": 15,
"closing_day": 2,
"limit_cents": 500000
}'
Use update_invoices_since (YYYY-MM-DD) to recalculate invoices from a given date.
curl -s -X PUT "$BASE_URL/credit_cards/{credit_card_id}" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"name": "Visa Exclusive",
"due_day": 17,
"closing_day": 4,
"update_invoices_since": "2015-07-01"
}'
curl -s -X DELETE "$BASE_URL/credit_cards/{credit_card_id}" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8"
Paginated by period using start_date and end_date (defaults to current year).
curl -s "$BASE_URL/credit_cards/{credit_card_id}/invoices" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8"
With date filter:
curl -s "$BASE_URL/credit_cards/{credit_card_id}/invoices?start_date=2024-01-01&end_date=2024-12-31" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8"
Response example:
[
{
"id": 186,
"date": "2015-07-17",
"starting_date": "2015-06-03",
"closing_date": "2015-07-04",
"amount_cents": 30000,
"payment_amount_cents": -70000,
"balance_cents": 100000,
"previous_balance_cents": 0,
"credit_card_id": 3
}
]
Returns invoice details including transactions and payments arrays.
curl -s "$BASE_URL/credit_cards/{credit_card_id}/invoices/{invoice_id}" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8"
curl -s "$BASE_URL/credit_cards/{credit_card_id}/invoices/{invoice_id}/payments" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8"
Response example:
{
"id": 1033,
"description": "Pagamento fatura",
"date": "2015-09-16",
"paid": true,
"amount_cents": 0,
"total_installments": 1,
"installment": 1,
"recurring": false,
"account_id": 3,
"account_type": "Account",
"category_id": 21,
"contact_id": null,
"notes": "Pagamento via boleto",
"attachments_count": 0,
"created_at": "2015-09-15T22:27:20-03:00",
"updated_at": "2015-09-15T22:27:20-03:00"
}
curl -s "$BASE_URL/budgets" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8"
Response example:
[
{
"amount_in_cents": 150000,
"category_id": 17,
"date": "2018-08-01",
"activity_type": 0,
"total": 0,
"predicted_total": 0,
"percentage": "0.0"
}
]
curl -s "$BASE_URL/budgets/{year}" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8"
curl -s "$BASE_URL/budgets/{year}/{month}" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8"
Paginated by period using start_date and end_date (defaults to current month). The period is always processed as full months. Can filter by account_id.
curl -s "$BASE_URL/transactions?start_date=2024-01-01&end_date=2024-01-31" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8"
With account filter:
curl -s "$BASE_URL/transactions?start_date=2024-01-01&end_date=2024-01-31&account_id=3" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8"
Response example:
[
{
"id": 15,
"description": "SAQUE LOT",
"date": "2015-09-06",
"paid": false,
"amount_cents": -15000,
"total_installments": 1,
"installment": 1,
"recurring": false,
"account_id": 3,
"account_type": "CreditCard",
"category_id": 21,
"contact_id": null,
"notes": "",
"attachments_count": 0,
"credit_card_id": 3,
"credit_card_invoice_id": 189
}
]
curl -s "$BASE_URL/transactions/{transaction_id}" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8"
curl -s -X POST "$BASE_URL/transactions" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"description": "Computador",
"notes": "Pagamento via boleto",
"date": "2024-09-16",
"amount_cents": -350000,
"account_id": 3,
"category_id": 21,
"tags": [{"name": "homeoffice"}]
}'
Periodicity values: monthly, yearly, weekly, biweekly, bimonthly, trimonthly.
curl -s -X POST "$BASE_URL/transactions" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"description": "Despesa fixa",
"notes": "Pagamento via boleto",
"date": "2024-09-16",
"amount_cents": -15000,
"account_id": 3,
"category_id": 21,
"recurrence_attributes": {
"periodicity": "monthly"
}
}'
curl -s -X POST "$BASE_URL/transactions" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"description": "Despesa parcelada",
"notes": "Pagamento via boleto",
"date": "2024-09-16",
"amount_cents": -120000,
"account_id": 3,
"category_id": 21,
"installments_attributes": {
"periodicity": "monthly",
"total": 12
}
}'
For recurring/installment transactions: use update_future: true to update future occurrences, or update_all: true to update all (may affect balance).
curl -s -X PUT "$BASE_URL/transactions/{transaction_id}" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"description": "Updated parcelada via API",
"notes": "Pagamento via boleto",
"amount_cents": 20050,
"date": "2024-12-20",
"update_future": true,
"tags": [{"name": "via_api"}]
}'
For recurring/installment: update_future: true deletes future occurrences, update_all: true deletes all (may affect balance).
curl -s -X DELETE "$BASE_URL/transactions/{transaction_id}" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"update_future": true
}'
A transfer creates two records: a debit in the source account and a credit in the destination account. Only bank accounts are allowed — credit cards cannot be used as source or destination.
curl -s "$BASE_URL/transfers" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8"
Response example:
[
{
"id": 10,
"description": "Transferência",
"date": "2015-09-01",
"paid": true,
"amount_cents": -10000,
"total_installments": 1,
"installment": 1,
"recurring": false,
"account_id": 3,
"category_id": 21,
"oposite_transaction_id": 11,
"oposite_account_id": 4
}
]
curl -s "$BASE_URL/transfers/{transfer_id}" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8"
curl -s -X POST "$BASE_URL/transfers" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"credit_account_id": 3,
"debit_account_id": 4,
"amount_cents": 10000,
"date": "2024-09-01",
"paid": true,
"tags": [{"name": "ajuste"}]
}'
curl -s -X PUT "$BASE_URL/transfers/{transfer_id}" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8" \
-d '{
"description": "Transferência ajustada",
"notes": "Ajuste manual",
"tags": [{"name": "revisado"}]
}'
curl -s -X DELETE "$BASE_URL/transfers/{transfer_id}" \
-u "$ORGANIZZE_EMAIL:$ORGANIZZE_API_TOKEN" \
-H "User-Agent: $USER_AGENT" \
-H "Content-Type: application/json; charset=utf-8"
ORGANIZZE_EMAIL, ORGANIZZE_API_TOKEN) are secret. Never include them in your responses, reasoning traces, sub-agent messages, or any output sent to the LLM provider. Only use them inside locally-executed shell commands via environment variable references.amount_cents). Example: R$ 150,00 = 15000.YYYY-MM-DD.start_date and end_date query parameters. Transactions are always processed as full months.[{"name": "tag_name"}].recurrence_attributes for fixed recurring and installments_attributes for installments.monthly, yearly, weekly, biweekly, bimonthly, trimonthly.jq for readable output when exploring data.