Skip to main content
An expense is a type of bill for a purchase paid at the time of the transaction, such as a card purchase, cash purchase, or check written at the point of sale. Use expenses when you want to record the purchase and the payment together. Expenses are created with 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, the paid_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

  1. Create expense with purchase, vendor, line item, and payment details. The request is idempotent via external_id.
  2. List expenses with is_expense=true when you need a collection of expenses.
  3. Fetch expense with the expense id when you need one record.
  4. Match the expense payment to a bank transaction when Layer suggests a match.

Payment defaults

If both payment.method and payment.payment_clearing_account_identifier are omitted when creating an expense:
  • payment.method defaults to ACH.
  • payment.payment_clearing_account_identifier defaults to the Contributions account until the expense is matched to a bank transaction.
If you specify payment.method and omit payment.payment_clearing_account_identifier, no default clearing account is applied.