List bills
/partners/billsReturns a paginated list of bills and vendor memos in the workspace.
Each row exposes id as the bill UUID for detail and payment routes. Default limit is 50.
Query parameters
pageintegeroptionalPage number for pagination. The first page is 1.
limitintegeroptionalRecords to return per page.
billTypeenumoptionalFilter by document type.
One of: bill, vendor_memo
approvalStatusenumoptionalFilter by approval state.
One of: draft, approved
statusstringoptionalComma-separated approval and payment status tokens (for example draft,approved,paid).
vendorUuidsstringoptionalComma-separated vendor UUIDs from the Vendors API.
projectUuidsstringoptionalComma-separated project UUIDs.
currencystringoptionalFilter by ISO 4217 currency code.
searchstringoptionalSubstring match against bill number or vendor name.
startDatedateoptionalBill date range start (ISO, inclusive).
endDatedateoptionalBill date range end (ISO, inclusive).
startDueDatedateoptionalDue date range start (ISO, inclusive).
endDueDatedateoptionalDue date range end (ISO, inclusive).
amountnumberoptionalFilter by bill total. Pair with amountOperator.
amountOperatorenumoptionalComparison operator for amount filter.
One of: eq, gt, gte, lt, lte
orderBystringoptionalSort field (for example id, date, dueDate, vendor, status). Defaults to id.
orderDirectionenumoptionalSort direction. Defaults to DESC.
One of: ASC, DESC
Responses
200Paginated list of bills.401Missing or invalid HMAC signature, expired timestamp, or invalid Bearer token. Troubleshoot403The credential does not have access to this workspace or resource. Troubleshoot429Rate limit exceeded (100 requests per minute per clientId). Retry after the Retry-After header. Troubleshoothttps://api.getcount.com/partners/billsimport crypto from 'node:crypto';
const BASE_URL = 'https://api.getcount.com';
const CLIENT_ID = process.env.COUNT_CLIENT_ID;
const CLIENT_SECRET = process.env.COUNT_CLIENT_SECRET;
const ACCESS_TOKEN = process.env.COUNT_ACCESS_TOKEN;
const method = 'GET';
const signingPath = '/bills';
const timestamp = Math.floor(Date.now() / 1000).toString();
const bodyString = '';
const bodyHash = '';
const baseString = `${method}:${signingPath}:${timestamp}:${bodyHash}`;
const signature = crypto.createHmac('sha256', CLIENT_SECRET).update(baseString).digest('hex');
const response = await fetch(`${BASE_URL}/partners/bills`, {
method,
headers: {
'x-client-id': CLIENT_ID,
'x-timestamp': timestamp,
'x-signature': signature,
Authorization: `Bearer ${ACCESS_TOKEN}`,
},
});
console.log(await response.json());{
"results": 1,
"page": 1,
"limit": 50,
"totalRecords": 1,
"filters": {
"search": null,
"status": null
},
"bills": [
{
"id": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
"billNumber": "BILL-1042",
"billType": "bill",
"date": "2026-01-15",
"dueDate": "2026-02-15",
"currency": "USD",
"approvalStatus": "approved",
"status": "unpaid",
"total": 250,
"paidAmount": 0,
"amountDue": 250,
"notes": "Office supplies for Q1",
"purchaseOrderNumber": null,
"isDeleted": false,
"vendor": {
"id": "f1a2b3c4-d5e6-7890-abcd-ef1234567890",
"name": "Office Depot",
"email": "ap@officedepot.example"
},
"lineItems": [
{
"id": "a4b5c6d7-e8f9-0123-abcd-456789012345",
"description": "Office supplies",
"quantity": 1,
"price": 250,
"total": 250,
"categoryAccountUuid": "c3d4e5f6-a7b8-9012-cdef-123456789012"
}
],
"transactions": [],
"appliedVendorMemos": [],
"tagUuids": [],
"createdAt": "2026-01-15T10:30:00.000Z",
"updatedAt": "2026-01-28T14:22:30.000Z"
}
]
}