BareBones + n8n
n8n is a self-hostable automation tool — perfect for landlords who like to own their stack. One HTTP Request node is all it takes to post a ledger entry whenever a bill or rent notification lands.
{
"amount": 142.50,
"type": "EXPENSE",
"category": "UTILITIES",
"property_id": 12,
"transaction_date": "2026-03-03",
"reason_description": "Water & sewer"
}What you'll need
The one endpoint every step points at
Authorization: Bearer <your_api_key>
Create a key on your dashboard. Full reference in the API docs.
| Field | Type | Notes |
|---|---|---|
| amount* | number | Dollar amount, e.g. 142.50 |
| type* | enum | INCOME, EXPENSE, or CHARGE |
| category* | enum | RENT, UTILITIES, REPAIRS, INSURANCE, TAXES, … |
| property_id | integer | Which property (optional) |
| unit_id | integer | Specific unit; omit = property-wide |
| transaction_date | string | YYYY-MM-DD; defaults to today |
| reason_description | string | Free-text note for the line |
| status | enum | PAID or UNPAID (default UNPAID; ignored for INCOME) |
* required
Step by step
Wire up the workflow
Any trigger works — an inbound email, a webhook, a schedule. The last node is always the same.
Create an API key
On your BareBones dashboard, open API keys and generate one. Copy it now — you only see it once.
Start with a trigger
Add whatever kicks the workflow off: an IMAP Email node watching for utility bills, a Webhook, or a Schedule.
Add an HTTP Request node
Set Method: POST and URL: https://barebonespm.com/api/v1/ledger.
Store the key as a credential
Create a Header Auth credential with name Authorization and value Bearer YOUR_KEY, so the key never sits in plaintext in the node.
Map the body to JSON
Send JSON and map the fields — pull amount and a category from the trigger data using n8n expressions.
Execute and confirm
Run it. A 201 Created means the line is in your ledger. Turn on the node’s retry-on-fail so a flaky bill email can’t drop an entry.
Confirm it worked
A successful call returns the new line
{
"data": {
"id": 481,
"amount": "142.50",
"type": "EXPENSE",
"category": "UTILITIES",
"status": "UNPAID",
"transactionDate": "2026-03-03"
}
}Get your API key and wire it up.
Create a key on your dashboard, point your tool at POST /api/v1/ledger, and your books start keeping themselves.
Other integrations
