Skip to content

Bill

A Bill is an amount a Startup owes an outside Organization, coded to an account, approved within a Mandate, and paid by its due date.

Properties

PropertyTypeRequiredDescription
organizationOrganizationrequiredThe Organization the Startup owes.
amountmoneyrequiredWhat the Bill asks for, in its currency.
dueOndaterequiredThe date payment is due; an approved Bill is paid on it.
accountstringThe chart-of-accounts code it is coded to, such as expense.hosting.
statusstringrequiredWhere the Bill stands; only an approved Bill is paid.
fileFileThe File the Bill arrived as: an email attachment or an upload.

Object

JSON
{
  "$id": "https://api.sb/routewise.dev/bills/bill_1",
  "$type": "Bill",
  "organization": "organization_1",
  "amount": {
    "amount": 25,
    "currency": "USD"
  },
  "dueOn": "2026-10-22",
  "account": "expense.hosting",
  "status": "received",
  "file": "file_1"
}

Relationships

Lifecycle

Bill lifecycle: received, approved, paidreceived → approved: Bill.approveapproved → paid: Bill.paypaid → approved: on Transaction.failedreceivedapprovedpaid
StateMeaningMoves to
received (first)It arrived and is coded to an account, waiting for approval.approved by Bill.approve
approvedAccepted within the approver’s Mandate and scheduled for its due date.paid by Bill.pay
paidIts amount is sent to the Organization and reconciled to Entries.approved on Transaction.failed when the rail refused the Transaction that paid this Bill

Verbs

  1. createCreates a Bill.
    POST /{namespace}/billsdoBill.created
  2. getReturns one Bill by id.
    GET /{namespace}/bills/{id}readNo Event
  3. listReturns Bills, newest first, one page at a time.
    GET /{namespace}/billsreadNo Event
  4. updateChanges the given properties of a Bill.
    PATCH /{namespace}/bills/{id}doBill.updated
  5. approveApprove accepts a coded Bill for payment within the approver’s Mandate and schedules it for its due date.
    POST /{namespace}/bills/{bill}/approvedoBill.approved
  6. payPay sends an approved Bill’s amount to its Organization on the due date and reconciles the payment to Entries.
    POST /{namespace}/bills/{bill}/paydoBill.paid

Permissions

Which Access level may call each Verb. One-way Verbs wait their delay window.

Operationowneradminmemberviewer
Bill.createYesYesYesNo
Bill.getYesYesYesYes
Bill.listYesYesYesYes
Bill.updateYesYesYesNo
Bill.approveYesNoNoNo
Bill.payYesNoNoNo

Call it

Text
Approve the latest bill.

Example

A hosting invoice for $640 arrives by email at a pet-supply store. It becomes a Bill coded to expense.hosting, the Finance Lead approves it within its Mandate, and the Treasurer pays it on the 30th.