Business modulesFinance

Agreements collections and expenses

Finance teams track obligations, instalments, collections, refunds, expenses and commissions as separate records.

Finance teams track obligations, instalments, collections, refunds, expenses and commissions as separate records.

Where to find it

Web: open Finance. Desktop: Business → Finance, using the same record paths. Disabled modules or missing read permission remove the navigation entry.

Screen / tabWeb pathUsageDesktop
Finance/financeList, view or tabNative screen
Agreements/finance/agreementsList, view or tabNative screen
Instalments due/finance/installmentsList, view or tabNative screen
Collections/finance/paymentsList, view or tabNative screen
Refunds/finance/refundsList, view or tabNative screen
Expenses/finance/expensesList, view or tabNative screen
Commissions/finance/commissionsList, view or tabNative screen
Record details/finance/subscriptions/[[...slug]]Record or editorNative screen
Record details/finance/gift-cards/[[...slug]]Record or editorNative screen
New expense/finance/expenses/newList, view or tabNative screen
Record details/finance/expenses/[id]Record or editorNative screen
New agreement/finance/agreements/newList, view or tabNative screen
Record details/finance/agreements/[id]Record or editorNative screen

Start working

Step 1

Open an agreement.

Step 2

Schedule instalments and review discounts/balance.

Step 3

Record/allocate collections and provider outcomes.

Step 4

Request/approve/reject refunds.

Step 5

Record/approve/pay expenses and track commissions.

Agreements collections and expenses
Agreements collections and expenses

Settings

Option-by-option configuration and screen paths: Settings guide.

Permissions and limits

Before you start

Collections do not issue invoices. Stored money uses minor units; forms show major units. Stopping recurring expenses preserves history.

Role capabilities: Read (read), Write (write), Delete/archive (delete), Manage (manage), Approve (approve), Export (export), Comment (comment), Own records only (own_records_only).

Own-record restrictions apply equally to lists, records and Era. Record state or missing data can refuse an otherwise permitted action.

Ask Era

Show overdue instalments this week and total outstanding.

Select relevant records for Era context. Era respects modules/roles; external or confirmation-sensitive work can stop for approval. Use era tools in the terminal to inspect currently available tools.

Automation and events

These declared events are available to module-event triggers. Subscribing does not configure the next operation; choose recipients, conditions and actions separately.

Operation details

The inventory includes record, configuration, visitor and background flows. IDs support Era/automation; not every row is a menu button. Asterisks mark required inputs. Unmapped rows do not imply a visible control.

Operation and IDInputsPermissionScreen or flow
Open an agreement · finance.create_agreementPerson *, Kind, What it is for, Internal note, Currency, Subtotal, Tax, Lines, Came from, Source record, Referred byWrite/finance/agreements, /leads
Edit an agreement · finance.update_agreementAgreement *, Status, What it is for, Internal note, Subtotal, TaxWrite/finance/agreements/[id], /leads
Cancel an agreement · finance.cancel_agreementAgreement *, ReasonManage/finance/agreements/[id]
Schedule instalments · finance.schedule_installmentsAgreement *, Instalments *Write/finance/agreements/[id], /leads, /shop/orders/[id]
Edit an instalment · finance.update_installmentInstalment *, Due date, Amount, NoteWrite/finance/agreements/[id]
Cancel an instalment · finance.cancel_installmentInstalment *Manage/finance/agreements/[id]
Record a collection · finance.record_paymentInstalment *, Amount *, Method, Method detail, Provider reference, Idempotency key, When it happened, NoteWrite/finance/agreements/[id], /leads, /shop/orders/[id]
Allocate a collection · finance.allocate_paymentCollection *, Allocations *Write/finance/payments
Refund a collection · finance.refund_paymentCollection *, Amount *, Reason *Manage/finance/agreements/[id]
Request a refund · finance.request_refundCollection *, Amount *, Reason *, Idempotency keyWrite/finance/agreements/[id], /shop/orders/[id]
Approve a refund · finance.approve_refundRequest *Approve/finance/refunds
Reject a refund · finance.reject_refundRequest *, Reason *Approve/finance/refunds
Draft an agreement for a record · finance.open_draft_for_sourceCame from *, Source record *, Person *, Kind, Total, Currency, What it is for, Open as active, What was sold, Tax on top, Discounts applied at the source, Came through affiliate, Paid by gift cardsWriteBackground routine
Answer a cancellation · finance.request_refunds_for_sourceCame from *, Source record *, ReasonWriteBackground routine
Record the shop’s discounts · finance.record_source_discountsCame from *, Source record *, DiscountsWriteBackground routine
Apply a discount · finance.apply_discountAgreement *, Kind, Value *, Label, Reason *Write/finance/agreements/[id]
Remove a discount · finance.remove_discountDiscount *Manage/finance/agreements/[id]
Accrue a commission · finance.accrue_commissionAgreement *, Rate (%) (0–100), AmountWrite/finance/agreements/[id]
Recalculate the commission · finance.recalculate_commissionAgreement, CollectionWrite/finance/agreements/[id], /finance/commissions
Record a gift card collection · finance.record_gift_card_paymentCame from *, Source record *, Gift card *, Redemption *, Amount *, Currency *, Last characters of the codeWriteBackground routine
Return a gift card collection · finance.return_gift_card_paymentCame from *, Source record *, Gift card *, Amount *, Idempotency keyWriteBackground routine
Move a commission · finance.set_commission_statusCommission *, Status *, Paid onManage/finance/commissions
Cancel a commission · finance.cancel_commissionCommission *Manage/finance/commissions
Save an expense category · finance.save_expense_categoryCategory, Name *, Description, ColourManage/settings/finance/expense-categories
Deactivate an expense category · finance.deactivate_expense_categoryCategory *Manage/settings/finance/expense-categories
Record an expense · finance.create_expenseCategory *, What it was *, Description, Amount *, Currency, Date *, Paid by, Supplier, Supplier contact, Receipt, Recurring, Every, Next due, Repeat untilWrite/finance/expenses
Edit an expense · finance.update_expenseExpense *, What it was, Description, Amount, Supplier, Supplier contact, Receipt, Category, Date, Paid byWrite/finance/expenses
Approve an expense · finance.approve_expenseExpense *Approve/finance/expenses
Reject an expense · finance.reject_expenseExpense *, Reason *Approve/finance/expenses
Mark an expense paid · finance.mark_expense_paidExpense *, Paid onWrite/finance/expenses
Void an expense · finance.void_expenseExpense *, Reason *Manage/finance/expenses
Take a payment · finance.take_paymentInstalment *, Amount *, Provider, Mode, Test outcome, Method, Idempotency key, Note, Return URL, Cancel URL, Customer emailWrite/finance/payments
Capture a payment · finance.capture_paymentPayment *, Amount, Test outcomeWrite/finance/payments, /shop/orders/[id]
Release a payment · finance.cancel_paymentPayment *, Test outcomeWrite/finance/payments, /shop/orders/[id]
Configure a payment app · finance.configure_payment_appProvider *, Connected app *, Enabled, Test mode, Order, Checkout labelManage/settings/payments
Record a payment webhook · finance.record_provider_webhookProvider *, Provider event *, Payment, Provider reference, Event type *, Amount *, Currency *, Message, Occurred at *, Payload digest *WriteRecord/API/visitor flow; no separate screen button mapped
Record a commission payout · finance.record_commission_payoutAffiliate *, Commissions *, Paid on, Method, Transfer reference, NoteApprove/finance/commissions
Record recurring expenses · finance.run_recurring_expensesAs ofWrite/finance/expenses
Stop repeating · finance.stop_recurring_expenseExpense *Write/finance/expenses
Raise instalment reminders · finance.raise_installment_noticesAs ofWriteBackground routine
Pay for an order (site) · finance.pay_site_orderBasket *, Payment method, Return URL, Cancel URLWriteRecord/API/visitor flow; no separate screen button mapped
Pay by link (site) · finance.pay_site_agreementPayment link *, Payment method, Return URL, Cancel URLWriteRecord/API/visitor flow; no separate screen button mapped

Technical sources

packages/os-kernel/src/modules/finance.ts, packages/os-kernel/src/modules/index.ts, apps/studio/lib/os/navigation.ts, apps/studio/lib/os/settings-groups.ts, apps/era-station/apps/web/src/era/business/screens.ts.

Screen pictures

Collection custom fields

Payment custom fields are available in the Collections column menu, sorted by their field type and editable in place when permitted. The same fields appear on web and native desktop.

© 2026 Era. Era documentation. Something missing or wrong? Write to us: [email protected]