Prerequisites
- A valid Bearer token with admin access
- Organization context (
?o={organization_id}) - Customer balance feature enabled on the organization’s subscription plan
Overview
A Customer Balance collects draft invoices over a billing period (e.g., one month) and consolidates them into a single master invoice at the end of the period. This reduces invoice noise for frequent bookers. Balances are created automatically when invoices enter thepay-to-balance payment flow. They cannot be created directly via the API.
Balanceable Entity
Each balance belongs to a balanceable — either aCustomer or a Business. When the organization enables “group by business” billing, invoices for customers assigned to a business are collected on the business’s balance instead of individual customer balances.
Status Lifecycle
Listing Balances
Filter by Status
Filter by Balanceable
Filter by Date Range
Reading a Balance
Available Includes
Adding Invoices to a Balance
At Creation Time
When creating a manual invoice, pass?add_to_balance=1 to automatically attach it to the customer’s open balance:
Moving an Existing Invoice
To move an existing draft invoice to a balance (or transfer between balances):
This detaches the invoice from any current balance, recalculates the old balance total, and attaches to the target’s open balance. Locked invoices and consolidated child invoices are rejected (HTTP 400).
Updating a Balance
Status transitions are the primary update operation:Allowed Transitions
Automatic Issuance
Balances with a scheduledissue_at timestamp are automatically processed by a background job. When issued:
- All attached draft invoices are finalized
- A master invoice is created summing all line items
- If a
payment_setupis configured, an auto-charge is attempted - A notification is sent to the customer/business
rolled_over into the next period instead.
Sorting
Key Attributes
Relationship to Businesses
When an organization enables business-level balance grouping:- Invoices for customers with a
businessare grouped onto the business’s balance - The
balanceablerelationship points to thebusinessesresource instead ofcustomers - Filter with
filter[balanceable_type]=businessesto find business balances