> ## Documentation Index
> Fetch the complete documentation index at: https://docs.layerfi.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Expense object

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](/api-reference/v1/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

| Task           | Expense                                                                 | Standard bill                                                      |
| -------------- | ----------------------------------------------------------------------- | ------------------------------------------------------------------ |
| Create         | `POST /v1/businesses/{businessId}/expenses`                             | `POST /v1/businesses/{businessId}/bills`                           |
| Initial status | `PAID`                                                                  | `RECEIVED`, `PARTIALLY_PAID`, or `PAID`                            |
| Payment        | Included at creation                                                    | Optional at creation; can be added later                           |
| List           | [List expenses](/api-reference/v1/list-expenses) with `is_expense=true` | [List bills](/api-reference/v1/list-bills) with `is_expense=false` |

## Common workflow

1. [Create expense](/api-reference/v1/create-expense) with purchase, vendor, line item, and payment details. The request is idempotent via `external_id`.
2. [List expenses](/api-reference/v1/list-expenses) with `is_expense=true` when you need a collection of expenses.
3. [Fetch expense](/api-reference/v1/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.
