---
title: "Submit a bill for payment"
method: POST
path: "/v1/web/bill/{id}/submit"
tags: ["Bill"]
---

# Submit a bill for payment

`POST /v1/web/bill/{id}/submit`

If auto-approved by policy, returns the bill directly. Otherwise returns an approval request.

## Path parameters

- `id` string, required

## Response `200`

Default Response

- object
  - `id` string, required
  - `externalId` string
  - `status` union, required
    - 'draft'
    - 'submitted'
    - 'returned'
    - 'paymentPending'
    - 'paymentInProgress'
    - 'paid'
    - 'paymentFailed'
    - 'manuallyCompleted'
    - 'deleted'
  - `creatorUserId` string, required
  - `vendorId` string
  - `invoiceId` string
  - `currencyCode` string
  - `invoiceDate` string, date — ISO date string, YYYY-MM-DD
  - `paymentDueDate` string, date — The date that the invoice says the payment is due, in ISO date string, YYYY-MM-DD
  - `totalAmount` string — number string
  - `description` string
  - `lineItems` object[], required
    - `id` string, required
    - `description` string
    - `amount` string, required — Number string
    - `spendCategoryId` string
  - `documents` object[], required
    - `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
  - `paymentScheduledDate` string, date — When the payment will be triggered, in ISO date string, YYYY-MM-DD. It should be far enough in advance so when the payment reaches the vendor, it is still before or on the paymentDueDate. Date is based on the payment processor's timezone, i.e. EST.
  - `paymentRoute` union
    - union[] — Flat ordered array of hops the funds will travel through
      - union
        - object
          - `type` 'fundingAccount', required
          - `accountId` string, required
          - `id` string, required
        - object
          - `type` 'fundingSource', required
          - `accountId` string, required
          - `id` string, required
          - `speed` union, required
            - 'sameDay'
            - 'standard'
        - object
          - `type` 'singleUseCard', required
          - `accountId` string, required
          - `cardHolderId` string, required
          - `name` string, required
          - `cardProfileStrategy` union
            - 'advertising_least_used'
            - 'vertical_optimized'
            - 'shipping_optimized'
            - 'plastiq'
            - 'tokenizable'
        - object
          - `type` 'cashAdvance', required
          - `accountId` string, required
          - `repaymentSchedule` union, required
            - 'today'
            - 'net-1'
            - 'net-3'
            - 'net-7'
            - 'net-15'
            - 'net-20'
            - 'net-30'
            - 'net-45'
            - 'net-60'
            - 'net-90'
        - object
          - `type` 'fundingAccount', required
          - `accountId` string, required
          - `id` string, required
        - object
          - `type` 'achPaymentMethod', required
          - `id` string, required
          - `speed` union, required
            - 'sameDay'
            - 'standard'
          - `memo` string, required
        - object
          - `type` 'email', required
          - `sharedByName` string, required
          - `email` string, required
    - unknown[]
      - unknown
  - `remittanceNotification` object — Notifications when a bill is paid
    - `recipients` object[], required
      - `name` string, required
      - `email` string, required
  - `payment` object
    - `id` string, required — Reference ID for this payment
    - `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
  - `manualCompletion` object — Set when the bill was manually completed
    - `status` union, required
      - 'paid'
      - 'notPaid'
    - `reason` string
  - `purchaseOrder` union
    - object
      - `type` 'manual', required
      - `id` string, required
    - object
      - `type` 'rutter', required
      - `rutterId` string, required
      - `platformId` string, 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
  - `createdAt` string, date-time, required
  - `updatedAt` string, date-time, required
  - `submittedAt` string, date-time
  - `completedAt` string, date-time

## Other responses

- `202` — Default Response
- `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
- `422` — A service error has occurred
- `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)
