Finance
The Finance module handles all monetary transactions, accounting records, and payment processing for the platform. It integrates directly with Stripe for card processing and maintains a full double-entry-adjacent ledger of invoices, payments, bills, and journal entries.
What it covers
| Section | Description |
|---|---|
| Customer Payment Processing | Collect and record customer payments via Stripe |
| Contractor Payment Processing | Initiate and track outbound contractor/vendor payments |
| Stripe Integration | Low-level Stripe API operations (PaymentIntents, Customers, etc.) |
| Invoices | Generate and manage customer invoices |
| Estimates | Pre-invoice cost estimates and quotes |
| Bills | Vendor/supplier bills payable |
| Payments | General payment records (inbound and outbound) |
| Credit Memos | Issued credits against invoices |
| Sales Receipts | Point-of-sale or immediate-payment receipts |
| Journal Entries | Manual double-entry accounting adjustments |
| Customers | Finance-side customer records (distinct from Sales contacts) |
| Vendors | Supplier and contractor records |
| Employees | Payroll-eligible employee records |
| Finance Accounts | Chart of accounts (e.g. Revenue, COGS, Accounts Receivable) |
| Product Services | Billable product/service line items |
Authentication
All Finance endpoints require authentication. Payment processing endpoints additionally require the finance:write permission.
Core services
Customer Payment Processing
Accepts payment data, creates a Stripe PaymentIntent, and records the result in the customerPayments model.
POST /api/finance/customer-payments/process
Content-Type: application/json
{
"amount": 4800,
"currency": "usd",
"customerId": "<customer_id>",
"invoiceId": "<invoice_id>",
"paymentMethodId": "pm_card_visa"
}
Response includes stripePaymentIntentId, stripeClientSecret (for client-side confirmation if needed), and a status field:
| Stripe status | Recorded status |
|---|---|
succeeded |
completed |
requires_payment_method |
pending |
| Other | failed |
Stripe Integration
Direct Stripe operations — use when you need to manage Stripe objects not covered by the higher-level payment processing endpoints.
POST /api/finance/stripe/create-customer
POST /api/finance/stripe/create-payment-intent
POST /api/finance/stripe/refund
GET /api/finance/stripe/payment-methods/{customerId}
Contractor Payment Processing
Tracks outbound payments to contractors and freelancers.
POST /api/finance/contractor-payments/process
{
"contractorId": "<id>",
"amount": 2500,
"currency": "usd",
"description": "May 2026 invoice"
}
Data models
All Finance models at /api/finance/{model}:
| Model | Slug |
|---|---|
| Finance Accounts | financeAccounts |
| Finance Bills | financeBills |
| Finance Credit Memos | financeCreditMemos |
| Finance Customers | financeCustomers |
| Finance Employees | financeEmployees |
| Finance Estimates | financeEstimates |
| Finance Invoices | financeInvoices |
| Finance Journal Entries | financeJournalEntries |
| Finance Payments | financePayments |
| Finance Product Services | financeProductServices |
| Finance Sales Receipts | financeSalesReceipts |
| Finance Vendors | financeVendors |
Common patterns
Creating and sending an invoice
# 1. Create the invoice
POST /api/finance/financeInvoices
{
"customerId": "<id>",
"lineItems": [
{ "description": "Platform licence — Q3 2026", "amount": 4800, "quantity": 1 }
],
"dueDate": "2026-07-31"
}
# 2. Record payment when received
POST /api/finance/customer-payments/process
{
"invoiceId": "<invoice_id>",
"amount": 4800,
"currency": "usd",
"paymentMethodId": "pm_card_visa"
}
Querying unpaid invoices
GET /api/finance/financeInvoices?filter[status]=unpaid&sort=dueDate
API sections
These sections are available in the Finance API Reference:
- Contractor Payment Processing
- Customer Payment Processing
- Customer Payments
- Finance Accounts
- Finance Bills
- Finance Credit Memos
- Finance Customers
- Finance Employees
- Finance Estimates
- Finance Invoices
- Finance Journal Entries
- Finance Payments
- Finance Product Services
- Finance Sales Receipts
- Finance Vendors
- Stripe Integration