Recued
Menu
← Back to recipes

Record a payment

by recued-core v6 67 views

Use “Record a payment” in Recued. Take a payment off an invoice's balance. Part payments are supported; overpayment is refused rather than absorbed, and the invoice settles when the balance reaches zero.

Complete workflow

Invoice Book 12 pinned recipes

Use Invoice Book in Recued for invoicing, receivables, getting paid, and freelance. It includes 18 built-in actions and 11 ready-to-run workflows. Actions that change data use Recued's approval controls.

You are viewing one recipe in this workflow. Installing it opens the complete pack so its other recipes and background automations arrive together.

Record a payment
This recipe

Use “Record a payment” in Recued. Take a payment off an invoice's balance. Part payments are supported; overpayment is refused rather than absorbed, and the invoice settles when the balance reaches zero.

pack:invoice-bookinvoicingreceivablespayments
by recued-core pinned v6

Use “Issue an invoice” in Recued. Turn the entries you picked into an invoice: lines frozen at issue time, total computed once from minutes, and a balance that payments come off.

pack:invoice-bookinvoicingreceivablesrecords
by recued-core pinned v6

Use “Who owes you” in Recued. Every open invoice with what is outstanding, which are overdue, and the oldest one still unpaid.

pack:invoice-bookinvoicingreceivablesoverdue
by recued-core pinned v4

Use “What each client owes” in Recued. One line per client: what is outstanding, across how many invoices, and how long the oldest has been due.

pack:invoice-bookinvoicingrecordsaggregate
by recued-core pinned v2

Use “Add something billable” in Recued. Anything you can charge for that is not logged time — a fixed fee, materials, a call-out. A negative amount is a credit.

pack:invoice-bookinvoicingbillablerecords
by recued-core pinned v4
Show all 12 recipes

Use “Delete a pending item” in Recued. Remove something from the pending list. If it came from logged hours, you choose whether those hours go back on the unbilled list or get deleted with it.

pack:invoice-bookinvoicingbillablerecords
by recued-core pinned v6

Use “Pull hours into pending items” in Recued. Turn unbilled time entries into pending billable items, priced at a rate you give.

pack:invoice-bookinvoicingbillablebridge
by recued-core pinned v6

Use “What could go on an invoice” in Recued. Everything billable and not yet invoiced — hours you pulled across and fees you typed in — each with its id, so you can choose.

pack:invoice-bookinvoicingbillablerecords
by recued-core pinned v3

Use “Carry a balance forward” in Recued. Close a part-paid invoice and issue a new one for exactly what is left, with the VAT carried in proportion. The new invoice takes no items.

pack:invoice-bookinvoicingreceivablesrecords
by recued-core pinned v6

Use “One invoice” in Recued. Open one invoice from the list that names it, and read everything recorded about that invoice on one page.

pack:invoice-bookinvoicedetailnavigation
by recued-core pinned v1

Use “One billable item” in Recued. Open one billable item from the list that names it, and read everything recorded about that billable item on one page.

pack:invoice-bookbillable-itemdetailnavigation
by recued-core pinned v1
View pack details, dependencies, and permissions →

Recording money in

A payment comes off the invoice's balance. Part payments are normal — the invoice stays open until the balance reaches zero, then settles.

⛔⛔ THE BALANCE USES INTEGER UNITS AT THE STORED FOUR-DECIMAL SCALE. total = amount_paid + outstanding holds after every payment. That is the one property worth losing sleep over here: an invoice that reads settled while a few pence are outstanding, or open when it is paid, sends you chasing a client who already paid you.

⛔ An overpayment is REFUSED, not absorbed. Paying more than is outstanding almost always means the wrong invoice, a duplicate entry, or a typo — and silently flooring the balance at zero hides all three. Fix the amount, or record it against the invoice it belongs to.

⚠ A settled invoice takes no further payment. Re-running this recipe with the same figures cannot double-credit, because the second run has nothing left to pay off.

⚠ settled_on is only written when the invoice actually settles. A part payment leaves it alone, because a date on an open invoice reads as the day it was paid off — right by accident on the final payment and wrong every time before it.

⚠ Settling also records how late it was paid. days_late is the days from the due date to the day received, negative when early, and paid_on_time is 1 on or before the due date, else 0. The client's "Pays" line on their contact reads them. A part payment leaves both empty, for the same reason as settled_on.

⚠ It reconciles nothing. No bank feed, no payment provider. You tell it money arrived.

How it works 35 steps

Inspect the data fetches, transforms, gates, and output this recipe runs.

Process (35 steps)
■ invoice_id trim
Trim whitespace from setting invoice id
■ id_present compare
Check if invoice id has data
⚠ id_guard guard
Stop if id present equals
■ amount_normalized decimal_math
Apply decimal_math
■ amount_positive compare
Check if amount normalized is greater than 0
⚠ amount_guard guard
Stop if amount positive equals
◆ invoice recued-core.invoice-book.invoice.get
Get invoice on invoice book
■ found compare
Check if invoice record id has data
⚠ found_guard guard
Stop if found equals
■ defaults defaults
Apply defaults
■ overpay_by decimal_math
Apply decimal_math
■ is_overpayment compare
Check if overpay by is greater than 0
⚠ overpay_guard guard
Stop if is overpayment equals
■ paid_after_num decimal_math
Apply decimal_math
■ outstanding_after_num decimal_math
Apply decimal_math
■ paid_after template
Generate text from a template
■ outstanding_after template
Generate text from a template
■ settled compare
Check if outstanding after num is at most 0
■ status_after ternary
Apply ternary
■ now_iso date_add
Add 0 seconds to
■ today date_format
Format as a date
■ received_in trim
Trim whitespace from setting received on
■ defaults_2 defaults
Apply defaults
■ settled_on_after ternary
Apply ternary
■ days_late date_diff
Calculate days between invoice record due on and received on
skip: step.settled equal false
■ on_time compare
Check if days late is at most 0
skip: step.days_late is_null
■ paid_on_time ternary
Apply ternary
skip: step.days_late is_null
■ method trim
Trim whitespace from setting method
■ reference trim
Trim whitespace from setting reference
■ note trim
Trim whitespace from setting note
■ amount_text template
Generate text from a template
■ invoice_ref template
Generate text from a template
◆ payment recued-core.invoice-book.payment.create
Create payment on invoice book
◆ apply recued-core.invoice-book.invoice.update
Update invoice on invoice book
■ card to_summary
Format results as a summary card
▼
Output
summary card
Settings 6 configurable

Configurable at install. Defaults shown — change them anytime in Recued.

note setting =
amount setting = 0
method setting =
reference setting =
invoice id setting = [object Object]
received on setting =

Uses (3 operations)

Pack operation Get invoice on invoice book recued-core.invoice-book.invoice.get
Pack operation Create payment on invoice book recued-core.invoice-book.payment.create
Pack operation Update invoice on invoice book recued-core.invoice-book.invoice.update

Trust & control

What installing this recipe would let it do. Recued grants these permissions at install — review them there before approving.

What it's allowed to do

Write Pack Invoice Book external change
Read: invoice.get · No approvalWrite: payment.create · No approvalWrite: invoice.update · No approval

About

Tags

pack:invoice-bookinvoicingreceivablespaymentsrecordsv2

Details

35 steps 6 configurable settings recipe_id: record-payment