Create a bill as a draft. Only the line items are required.

post/v2/bills

Request

  • Base URL
    https://api.slash.com
  • URL
    https://api.slash.com/v2/bills
  • Auth
    API key in header X-API-Key

Headers

X-Idempotency-Keystring required

Unique caller-generated key for one create request. Once an authenticated, schema-valid request reaches the operation, the key is permanently consumed for that operation and legal entity whether the operation succeeds or fails. Reusing it in that scope returns 409 and never replays a response, unlike API v1, which replays the original response for a matching key.

Request body

recipientIdstring

The vendor: any recipient on the legal entity that isn't archived, usually one with recipientType: vendor. Create one with POST /v2/recipients.

destinationIdstring

The destination the bill should be paid to. Must belong to recipientId when both are given.

ownerUserIdstring

The user responsible for the bill. Defaults to the user behind the API key.

invoiceNumberstring

The vendor's invoice number.

invoiceDatestring date

Invoice date as YYYY-MM-DD.

dueDatestring date

Due date as YYYY-MM-DD.

documentIdsstring[]

Documents uploaded with purpose bill_invoice.

notesstring

Free-text notes visible to your organization.

Example request

{
  "recipientId": "le_c_2rj4l7hmrrrcv",
  "destinationId": "le_contact_destination_2rj4l7hmrrrcv",
  "ownerUserId": "u_2rj4l7hmrrrcv",
  "invoiceNumber": "INV-4471",
  "invoiceDate": "2026-09-01",
  "dueDate": "2026-10-01",
  "lineItems": [
    {
      "name": "Hosting",
      "quantity": 1
    }
  ],
  "tax": {
    "amount": 800,
    "currency": "USD"
  },
  "discount": {
    "amount": 500,
    "currency": "USD"
  },
  "documentIds": [
    "st_2rj4l7hmrrrcv"
  ]
}

Response

The created bill.

idstring required

Bill id with the bill_ prefix.

status'draft' | 'pending_approval' | 'rejected' | 'scheduled' | 'payment_pending' | 'paid' | 'payment_failed' | 'partially_paid' required

Derived from the bill's payments. draft until a payment exists; pending_approval while a payment awaits approval; rejected when the latest approval was rejected; scheduled when a payment is scheduled; payment_pending while a payment is in flight; partially_paid when settled payments cover part of the total; paid when they cover all of it; payment_failed when the latest payment failed or was returned.

source'manual' | 'email' | 'carrier_account' | 'api' required

How the bill entered Slash. api for bills created through this API, manual for the dashboard, email for the accounts-payable inbox, carrier_account for bills pulled from a connected carrier portal. Carrier bills are read-only over the API.

recipientIdstring

The vendor, a recipient readable at GET /v2/recipients/{recipientId}.

destinationIdstring

The destination the bill is expected to be paid to, readable at GET /v2/destinations/{destinationId}.

ownerUserIdstring

The user responsible for the bill. Absent for bills that arrived by email and have not been assigned.

invoiceNumberstring

The vendor's invoice number.

invoiceDatestring date

Invoice date as YYYY-MM-DD.

dueDatestring date

Due date as YYYY-MM-DD.

currencystring required

Uppercase ISO 4217 currency code shared by every amount on the bill.

documentIdsstring[] required

Documents attached to the bill, readable at GET /v2/documents/{documentId}.

notesstring

Free-text notes visible to your organization.

createdAtstring date-time required

When the bill was created.

Example response

{
  "id": "bill_2rj4l7hmrrrcv",
  "recipientId": "le_c_2rj4l7hmrrrcv",
  "destinationId": "le_contact_destination_2rj4l7hmrrrcv",
  "ownerUserId": "u_2rj4l7hmrrrcv",
  "invoiceNumber": "INV-4471",
  "invoiceDate": "2026-09-01",
  "dueDate": "2026-10-01",
  "currency": "USD",
  "lineItems": [
    {
      "id": "bill_line_item_2rj4l7hmrrrcv",
      "name": "Hosting",
      "quantity": 1
    }
  ],
  "documentIds": [
    "st_2rj4l7hmrrrcv"
  ],
  "payments": [
    {
      "id": "bill_payment_2rj4l7hmrrrcv",
      "transferId": "transfer_intent_2rj4l7hmrrrcv",
      "transactionId": "agg_tx_2rj4l7hmrrrcv"
    }
  ]
}

Changes