---
title: "Add a document to a bill"
method: POST
path: "/v1/web/bill/{billId}/document"
tags: ["Bill"]
---

# Add a document to a bill

`POST /v1/web/bill/{billId}/document`

Returns a presigned `upload` to `POST` the document to.

## Path parameters

- `billId` string, required

## Request body

- object
  - `fileName` string, required
  - `type` union, required
    - 'invoice'
    - 'supporting'

## Response `201`

Default Response

- object
  - `id` string, required
  - `fileName` string, required
  - `type` union, required
    - 'invoice'
    - 'supporting'
  - `status` union, required
    - 'uploading'
    - 'uploaded'
    - 'parsed'
  - `parsedData` object
    - `invoiceId` string, nullable
    - `vendorName` string, nullable
    - `currencyCode` string, nullable
    - `invoiceDate` string, nullable — ISO date string, YYYY-MM-DD
    - `dueDate` string, nullable — ISO date string, YYYY-MM-DD
    - `totalAmount` string, nullable — Decimal string
    - `description` string, nullable
    - `achAccountName` string, nullable
    - `achRoutingNumber` string, nullable
    - `achAccountNumber` string, nullable
    - `lineItems` object[]
      - `description` string, nullable
      - `amount` string, nullable — Decimal string
  - `createdAt` string, date-time, required
  - `accountingIntegration` object
    - `rutterId` string
    - `platformId` string
    - `latestSync` object, required
      - `status` union, required
        - 'inProgress'
        - 'successful'
        - 'failed'
      - `createdAt` string, date-time, required
      - `completedAt` string, date-time
      - `error` object
        - `type` string
        - `code` string
        - `message` string
        - `source` string
        - `platformMessage` string
  - `uploadUrl` string, required — Deprecated. Use `upload` instead.
  - `upload` object, required — Presigned S3 POST: append each `fields` entry as a form field, then the file last.
    - `url` string, required
    - `fields` object, required

## Other responses

- `400` — Default Response
- `401` — The access to this resource has been denied
- `403` — The access to this resource is forbidden
- `404` — The resource was not found
- `default` — Catch-all error response for any unexpected internal errors

---

[API](https://skmtc.net/funneldash/apis/surface-web-api.md) · [All operations](https://skmtc.net/funneldash/apis/surface-web-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/funneldash/surface-web-api/versions/ac700d65f443/schema)
