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

# Managing bills

> Create, edit, void and find bills.

Record a bill as soon as an invoice arrives. Only the line items are
required, so you can add the vendor, bank details and invoice file later.

## Create a bill

Send the line items to [Create a bill](/api-reference/bills/create). Amounts
are in minor units, so `120000` USD is \$1,200.00, and the bill takes its
currency from the lines.

```bash theme={null}
curl https://api.slash.com/v2/bills \
  -X POST \
  -H "X-API-Key: $SLASH_API_KEY" \
  -H "x-legal-entity: $SLASH_LEGAL_ENTITY_ID" \
  -H "X-Idempotency-Key: INV-4471" \
  -H "Content-Type: application/json" \
  -d '{
    "vendorContactId": "le_c_2rj4l7hmrrrcv",
    "lineItems": [
      {
        "name": "Hosting",
        "quantity": 1,
        "unitAmount": { "amount": 120000, "currency": "USD" }
      }
    ]
  }'
```

The bill is created as a `draft`, with the total and outstanding balance
filled in:

```json theme={null}
{
  "id": "bill_2rj4l7hmrrrcv",
  "status": "draft",
  "vendorContactId": "le_c_2rj4l7hmrrrcv",
  "amounts": {
    "total": { "amount": 120000, "currency": "USD" },
    "outstanding": { "amount": 120000, "currency": "USD" }
  },
  "payments": []
}
```

<Tip>
  Use your AP system's invoice id as the `X-Idempotency-Key`. Retrying the
  request then returns the same bill instead of creating a duplicate. See
  [Idempotency](/docs/v2/get-started/idempotency).
</Tip>

Add the rest when you have it: the destination to pay, the invoice number
and dates, notes, and the invoice file in `documentIds`. A bill needs an
`invoiceDate` before it can sync to your accounting platform, where
`invoiceNumber` becomes the bill's number.

The vendor is any [contact](/docs/v2/concepts/contacts-and-destinations) on
your legal entity that isn't archived, usually one with
`recipientType: vendor`. If you don't have one yet, create it with
[Create a contact](/api-reference/create-a-contact) and its bank details
with [Create a destination](/api-reference/create-a-destination).

## Edit a bill

[Update a bill](/api-reference/bills/update) changes only the fields you send.
`lineItems` replaces the whole list: lines with an `id` are kept and updated,
lines without one are added, and lines you leave out are removed.

```json theme={null}
{
  "dueDate": "2026-10-15",
  "lineItems": [
    {
      "id": "bill_line_item_2rj4l7hmrrrcv",
      "name": "Hosting",
      "quantity": 1,
      "unitAmount": { "amount": 120000, "currency": "USD" }
    },
    {
      "name": "Backup storage",
      "quantity": 1,
      "unitAmount": { "amount": 4000, "currency": "USD" }
    }
  ]
}
```

Amounts and line items can only change while the bill is `draft` or
`rejected`. To add more files, use
[Attach documents to a bill](/api-reference/bills/documents/add).

## Delete or void a bill

* [Delete a bill](/api-reference/bills/delete) removes a bill that hasn't
  been paid: one that is `draft`, `rejected` or `pending_approval`.
* [Void a bill](/api-reference/bills/void) cancels payments that are awaiting
  approval or scheduled and puts the bill back in `draft`, so you can change
  it or pay it another way. A bill whose payment is already on its way
  (`payment_pending`) or settled can't be voided; cancel a pending ACH
  payment with [Cancel an ACH transfer](/api-reference/transfers/ach/cancel)
  instead.

## Find bills

[List bills](/api-reference/bills/list) returns bills sorted by due date, so
the first page is what's due soonest. Filter by `status`, `vendorContactId`,
`dueFrom` and `dueTo`, or `overdue=true`. To check whether a vendor's invoice
is already in Slash, pass `invoiceNumber` with `vendorContactId`.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.