Follows:
Authentication •
Caching •
Polling •
List Response Format
Creates a new bill (payable vendor invoice) with its line items and,
optionally, the invoice PDF attached. To enter the bill against a purchase
order, pass the order's purchaseOrderId; the bill then carries the order's
number as purchaseOrderNumber and appears in the order's billIds.
Depending on your AppFolio configuration,
creating a Bill may enter an approval workflow and notify approvers. The vendor
must already exist; create
one first with Create a Vendor if needed.
Attach the invoice PDF. Files sent inline as content must fit the 20 MB
request body (about 14 MB of PDF); send larger files by url. Skywalk API
does not retain file contents.
Parameters
vendorIdstring
AppFolio ID of the vendor the bill is payable to. Look vendors up with the Vendors endpoint.
billDatestring
Date the bill was incurred (AppFolio's Bill Date), as MM/DD/YYYY.
dueDatestring
Date the bill is due, as MM/DD/YYYY.
lineItemsmulti
Line items for the bill, as a JSON array. Each entry requires "glAccountId", "propertyId" and "amount" (a decimal string such as "125.00"), and may carry "unitId", "description", "serviceFrom" and "serviceTo" (MM/DD/YYYY). At least one line item is required. The GL account must be a postable account, not a parent or header account.
amountstring
Total amount of the bill as a decimal string. Defaults to the sum of the line item amounts; when provided it must equal that sum.
referencestring
Reference for the bill, typically the vendor's invoice number.
remarksstring
Free-form remarks on the bill.
memoForCheckstring
Memo printed on the check when the bill is paid.
accountNumberstring
Your account number with the vendor, as shown on the invoice. Accepted on create but never included in a response.
cashAccountIdselect
AppFolio ID of the cash (bank) GL account the bill is paid from. When omitted, AppFolio selects the account automatically.
workOrderIdstring
AppFolio ID of a work order to associate the bill with. Accepted on create but never included in a response.
purchaseOrderIdstring
AppFolio ID of the purchase order this bill is entered against. The created bill carries the order's number as purchaseOrderNumber, and the order lists the bill in its billIds. Look purchase orders up with the Purchase Orders endpoint.
attachmentsmulti
Files to attach to the bill, as a JSON array. Each entry requires "fileName" (with its extension) and exactly one of "content" (the file's bytes as base64) or "url" (an https URL the file can be fetched from). Accepted types: .pdf. Up to 10 files, each at most 30 MB; base64 content also has to fit the request body limit. Skywalk API does not retain file contents; the response reports each file by name, size and SHA-256 hash, and the bill is returned with each file's AppFolio ID.
Returns
The standard List Response Format with a data property containing an array with the created bill as a Bill Detail object.
The response reflects the bill as stored in AppFolio, not the request as
submitted — the same shape Get One Bill
returns, not the list row. The bill's attachments list each file by name
with the AppFolio ID you can pass to the File endpoint
to download it; meta.query.attachments reports each file as received, by
name, size and SHA-256 hash.