Use “Collect the rent” in Recued. Type what each tenant paid, straight into a grid — one row per live tenancy, one save.
Collect the rent
Use “Collect the rent” in Recued. Type what each tenant paid, straight into a grid — one row per live tenancy, one save.
Complete workflow
Use Rental Book in Recued for property, landlord, ledger, and records. It includes 24 built-in actions and 18 ready-to-run workflows.
You are viewing one recipe in this workflow. Installing it opens the complete pack so its other recipes and background automations arrive together.
Use “Add a building” in Recued. Records one building or complex. Units hang off it.
Use “Add a unit” in Recued. Records one rentable unit against a building. It uses the connections and settings you choose when you run it.
Use “Add a tenant” in Recued. Records one tenant and how they pay: cash, autopay, or stripe.
Use “Open a rental contract” in Recued. Binds a tenant to a unit at a monthly rent. The contract is what a period charge is raised against.
Use “Raise the period's rent charges” in Recued. Raises one rent charge per live contract for a billing period. Safe to run unattended on a monthly schedule and safe to run twice — the charge id is the (contract, period, kind) tuple, so a repeat is a no-op rather than a second bill.
Show all 19 recipes
Use “Record a rent payment” in Recued. Records what a tenant actually paid, against their account rather than against an invoice. A partial payment is one receipt for the part; an overpayment is one receipt for the whole, and the credit carries.
Use “Collection sheet” in Recued. The month's collection list as a table and as CSV, one row per active contract, each carrying the contract id the import matches on.
Use “Import payments” in Recued. Reads the collection sheet back and records one receipt per row that carries an amount and the date it arrived. Re-uploading the same sheet records nothing twice, and a row it cannot record is named rather than dropped.
Use “Tenant statement” in Recued. One tenant's account: everything charged, everything received, and the balance derived from the two. Not read off any invoice, because no invoice knows about the payment that arrived against a different month.
Use “Buildings” in Recued. Every building you hold, with a way into each one's units.
Use “Building” in Recued. One building: what it is, and every unit in it. It uses the connections and settings you choose when you run it.
Use “Unit” in Recued. One unit: who is in it now, and every tenancy it has had. It uses the connections and settings you choose when you run it.
Use “Contracts” in Recued. Live tenancies by default; expired ones only when you ask.
Use “Customers” in Recued. Everyone on the book, most recent first — and the way to start a tenancy for one.
Use “Retire or restore a customer” in Recued. Takes a customer off the working list without deleting anything they are attached to, or puts them back.
Use “End a tenancy” in Recued. Closes a contract on a date. The ledger it produced stays exactly as it is — ending a tenancy is not settling it.
Use “Change the rent” in Recued. Sets a contract's rent. Periods already raised keep the amount they were raised at.
Use “Records runtime” in Recued. It helps you complete this workflow using the connections and settings you choose.
One screen, one save
Every live tenancy gets a row with the rent DUE beside it. Type what actually arrived and press save; each amount you filled in becomes a receipt.
⚠ A blank is a tenant who has not paid, not a payment of nothing — blank rows are skipped, and the count of what was skipped is reported.
Saving twice is safe, and it did not used to be
⛔ Pressing save a second time used to record every payment again. A double-click, a browser resubmit, or simply not being sure the first one took — all of them sent the same rows, each got a fresh id, and a tenant who paid 1200 showed 2400 received. Nothing announced it, because a doubled balance still looks like money.
Each receipt's id is now derived from the tenancy, the day and the amount, so a row already recorded is recognised and skipped. The card says how many were newly written and how many you already held.
⛔ It is the SAME identity the collection sheet uses. Type a payment here and then upload a sheet that also has it, and you get ONE receipt, not two — the grid and the spreadsheet are two doors into the same book. ⚠ The amount has to match as WRITTEN, though: 1200 typed here and 1200.00 on the sheet are two different receipts, because nothing between the cell and the row decides they are the same number.
⚠ If you answer Paid by differently on the two screens, the sheet reports that row as refused rather than already held. The two agree on which payment it is and disagree on how it arrived, and nothing here picks a winner. Nothing is lost and nothing doubles — you keep one receipt, the one you entered first. Both screens now offer the same five methods and start on the same one, so this only happens if you deliberately say two different things about one payment.
A row that cannot be recorded now SAYS SO
The whole save crosses in one call, and the card reports what landed and what did not — written, already held, refused, with the reason and the row for each refusal.
⛔ Before, it could not. Each row was written on its own in a loop, and a loop reports the run as a success even when every write was rejected. A grid with one bad amount in it looked exactly like a grid that worked.
⚠ The tenancy is shown but cannot be typed. Only the amount, the day, the method and the reference are yours to change: an editable tenancy would let a payment be re-pointed at another tenant by editing the row it is sitting in.
The day is on every row, and you can change it
⛔ It used to be the clock. Every receipt this screen wrote was stamped with the moment you pressed save, so a Wednesday payment entered on Friday was a Friday payment as far as the rent book was concerned. Nothing looked wrong; the date was simply not the date.
Each row now arrives filled in with today, which is right for the common case, and each row is editable on its own — so a save can hold three payments that arrived on three different days. Clear the day and that row is skipped rather than recorded on a date nobody chose.
⚠ Days are YYYY-MM-DD. A day in any other shape is refused, and the count of refusals is on the summary card beside what was written — a row that did not become a receipt is now visible instead of quietly missing.
Paid by now offers the same five words everywhere
This screen used to offer bank, cash, card and autopay while Record rent payment and Import payments both offered cash, autopay, stripe, transfer and other — so two of the three places you can record a payment could not say bank at all. All three now offer the same five.
bank was a second word for transfer. card is stripe when that is how you take cards and other when it is not.
⚠ Receipts you already recorded keep the word they were saved with. Nothing rewrites them, so an old row still reads bank; it is a stored value, not a broken one. New receipts use the five above.
The sheet still exists
collection-sheet exports the same list as CSV for anyone who would rather work in a spreadsheet, or hand it to a bookkeeper — import-payments reads it back. This is the same job without the round trip, not a replacement for it.
⚠ Amounts must be plain digits — 1200 or 1200.50. 1,200.00 is refused, and so is 1.200,00: those same characters mean twelve hundred in one country and one point two in another, and a rent book that picked one would be wrong about money somewhere.
How it works
Inspect the data fetches, transforms, gates, and output this recipe runs.
Settings
Configurable at install. Defaults shown — change them anytime in Recued.
limit
setting
=
200
method
setting
=
autopay
period
setting
=
payments
setting
=