We have introduced a set of API endpoints for general ledger categories. These endpoints enable you to better maintain a General Ledger (GL) for bookkeeping and financial reporting.

Accounting classes

Accounting class objects enable you to set up categories unique to your business.

OperationAPI endpoint
Create an accounting classPOST /v3/categories/accounting-classes
Get list of accounting classesGET /v3/categories/accounting-classes
Get accounting class detailsGET /v3/categories/accounting-classes/{id}
Update an accounting classPATCH /v3/categories/accounting-classes/{id}
Archive an accounting classPOST /v3/categories/accounting-classes/{id}/archive
Restore an archived accounting classPOST /v3/categories/accounting-classes/{id}/restore

Departments

Department objects enable you to set up groups or divisions for your business, such as Marketing, HQ, or Asia-Pacific.

OperationAPI endpoint
Create a departmentPOST /v3/categories/departments
Get department detailsGET /v3/categories/departments/{id}
Update a departmentPATCH /v3/categories/departments/{id}
Archive a departmentPOST /v3/categories/departments/{id}/archive
Restore an archived departmentPOST /v3/categories/departments/{id}/restore

Employees

Employee objects enable you to set up employees on your payroll.

OperationAPI endpoint
Create an employeePOST /v3/categories/employees
Get employee detailsGET ​​/v3/categories/employees/{id}
Update an employeePATCH ​​/v3/categories/employees/{id}
Archive an employeePOST ​​/v3/categories/employees/{id}/archive
Restore an archived employeePOST ​​/v3/categories/employees/{id}/restore

Items

Item objects enable you to set up products and/or services sold by your business.

OperationAPI endpoint
Create an itemPOST /v3/categories/items
Get item detailsGET /v3/categories/items/{id}
Update an itemPATCH /v3/categories/items/{id}
Archive an itemPOST /v3/categories/items/{id}/archive
Restore an archived itemPOST /v3/categories/items/{id}/restore

Jobs

Job objects enable you to set up unique projects with their own set of income and expenses.

OperationAPI endpoint
Create a jobPOST /v3/categories/jobs
Get job detailsGET /v3/categories/jobs/{id}
Update a jobPATCH /v3/categories/jobs/{id}
Archive a jobPOST /v3/categories/jobs/{id}/archive
Restore an archived jobPOST /v3/categories/jobs/{id}/restore

Locations

Location objects enable you to set up office locations, such as West Coast, San Francisco, or California.

OperationAPI endpoint
Create a locationPOST /v3/categories/locations
Get location detailsGET /v3/categories/locations/{id}
Update a locationPATCH/v3/categories/locations/{id}
Archive a locationPOST/v3/categories/locations/{id}/archive
Restore an archived locationPOST ​​/v3/categories/locations/{id}/restore

We have introduced a set of API endpoints for the Spend & Expense reimbursement operations. A reimbursement is a request to be repaid from budget funds for an out-of-pocket expense. Reimbursements enable business transactions without a charge card (physical or virtual card) to be included in the Spend & Expense platform.

See Reimbursements for more information.

OperationAPI endpoint
Upload an image for a reimbursementPOST /v3/spend/reimbursements/image-upload-url
Create a reimbursementPOST /v3/spend/reimbursements
Approve a reimbursementPOST /v3/spend/reimbursements/{reimbursementId}/action
Get list of reimbursementsGET /v3/spend/reimbursements
Get reimbursement detailsGET /v3/spend/reimbursements/{reimbursementId}
Update a reimbursementPATCH /v3/spend/reimbursements/{reimbursementId}
Delete a reimbursementDELETE /v3/spend/reimbursements/{reimbursementId}

We have added two new recipes for showcasing more workflows with the v3 API.

RecipeDescription
List unpaid balance for each vendorIn this recipe, we list unpaid bills that are past their current due date, and then extract the unpaid balance for each vendor.
Pay vendors that accept virtual cardsIn this recipe, we check whether a vendor accepts virtual cards as a payment method, and then we pay the vendor with an API card.

You can get details about your current API session with GET /v3/login/session. In the response, we have introduced a set of improvements.

FieldDescription
mfaStatusThe existing PHONE_VERIFICATION status name is updated to DISABLED. This update adds clarity to the status.

The mfaStatus is set as DISABLED when MFA is disabled for the organization.
mfaBypassThis is a new field in the Get API session details response.

This field is set as true when MFA is disabled at the developer key level. All organizations that are linked to this developer key do not require MFA.

See GET /v3/login/session in the API reference for more information.

We have added a new field in the cancel payment response to confirm that BILL has received your payment cancellation request. When you attempt to cancel a payment with POST /v3/payments/{paymentId}/cancel, you now get a cancelRequestSubmitted field in the response. This field is set as true if your cancel payment request is submitted.

Note: If the payment is canceled, the payment status is set as CANCELLED.

See POST /v3/payments/{paymentId}/cancel in the API reference for more information.

We have added bill payment status information in the bills API response. When you create a bill and it goes through a payment workflow, the bills API response now includes the paymentStatus field.

See POST /v3/bills in the API reference for more information.

We have introduced a new Get list of organization industries (GET /v3/organizations/industries) endpoint. Get a list of available values for the industry field for an organization. Use this information to set the industry field in your POST /v3/partner/organizations or PATCH /v3/organizations/{organizationId} request.

See GET /v3/organizations/industries in the API reference for more information.

We have introduced a new Get card funding purpose (GET /v3/funding-accounts/cards/funding-purposes) endpoint. Get a list of card funding purpose values based on the vendor and card brand.

When you create a payment (POST /v3/payments or POST /v3/payments/bulk) with a CARD_ACCOUNT funding account type, BILL requires a vendor industry value for compliance. When BILL cannot identify the vendor industry, the cardFundingPurpose field must be set in your payment request.

Use this endpoint to get the list of card funding purpose values you can set. If you get an empty 200 response, BILL has information about the vendor industry and setting the cardFundingPurpose field is not required in your payment request.

See GET /v3/funding-accounts/cards/funding-purposes in the API reference for more information.

We have introduced a new Get list of vendor payment options (GET /v3/payments/options) endpoint. You can now get a list of vendor payment options available based on the funding account options available in the signed-in user's BILL organization and on the payment methods accepted by a vendor.

See Vendor payment options for more information.

We have introduced a set of API endpoints for getting a list of bank account and card account users. In the response, if the funding account verificationStatus is set as NOMINATED, user verification must be completed before the user can pay with the specified funding account.

OperationAPI endpoint
Get list of bank account usersGET /v3/funding-accounts/banks/users
Get list of card account usersGET /v3/funding-accounts/cards/users