is_expense: true, status: PAID, and a payment for the full amount.
When to use expenses
Use an expense for purchases that are paid immediately. The Create expense endpoint accepts the purchase details, thepaid_at timestamp, and the payment details in one request.
Use a standard bill when you need to track accounts payable over time. For example, use a bill for a vendor invoice received today that will be paid later. Standard bills have is_expense: false and support payment terms, partial payments, and an outstanding balance.
API behavior
Common workflow
- Create expense with purchase, vendor, line item, and payment details. The request is idempotent via
external_id. - List expenses with
is_expense=truewhen you need a collection of expenses. - Fetch expense with the expense
idwhen you need one record. - Match the expense payment to a bank transaction when Layer suggests a match.
Payment defaults
If bothpayment.method and payment.payment_clearing_account_identifier are omitted when creating an expense:
payment.methoddefaults toACH.payment.payment_clearing_account_identifierdefaults to the Contributions account until the expense is matched to a bank transaction.
payment.method and omit payment.payment_clearing_account_identifier, no default clearing account is applied.