Drive customer business value

Bill.com Gear Icon

Create innovative applications

Expand your functionality by building powerful new applications

Learn More

API Documentation

The Bill.com Developer API Document illustrates how to use Bill.com features through its Application Programming Interface.

Learn More

Bill.com Paper Icon
Bill.com Question Logo

FAQs & Support

Getting started is easy. Get up and running quickly!

Learn More

Developer Application Examples

Here are some examples of how your application can take advantage of the Bill.com platform to pay vendors or get paid, store documents and automate workflows.

Integration with Accounting Systems

You can add important features to accounting systems such as online document management, bill approval and payments by integrating it with Bill.com using the API. All the information already present in an accounting system such as a chart of accounts, vendors, departments and jobs can be moved to Bill.com, avoiding double entry and letting users quickly start processing and paying bills in Bill.com.

You can either use the Bill.com website to create bills in Bill.com (taking advantage of the full document and bill management system) or you can use the API to send the bills you have created in your accounting system (and supporting documents) to Bill.com.

Then, use the Bill.com website to approve and pay the bills and to view the relevant documents like the bill image, contracts and statements of work.

Finally, use the Bill.com API to get the status of the bills you uploaded, including the dates for when bills are scheduled to be paid and whether attempted payments were successful. The API allows you to sync your payables information to and from your accouting system, so you always have the most updated information in your General Ledger without any double entry.

Similar integration can be done between an accounting system and Bill.com Receivables. You can create a sync for customers, items, invoices and payments received from/to Bill.com using our API.

Note that Bill.com already offers integration with QuickBooks for Windows, QuickBooks Online, Intacct, Netsuite, and Sage 50, but there are thousands of other accounting systems that could take advantage of the Bill.com platform.

Managing Clients' Billable Expenses

If your application does expense reporting or tracks billable expenses, you can integrate with Bill.com to sync expenses as bills for payment. You can use Bill.com to route the bills/ expenses for approvals within your team, pay for these expenses, and associate the expenses with appropriate client accounts.

For example, let's say you purchase materials and hire contractors to perform a job for your customer. Once the expenses are entered into your application, you can use the Bill.com API from within your software package to create bills from the expenses for material and the contractor's statement of work, and associate the costs with the appropriate client.

Your accounts payable department can use the Bill.com application to approve and pay those bills associated with your jobs, and to view any associated documents as necessary.

Then, use the Bill.com API to get the status of the bills you upload, including the dates for when bills are scheduled to be paid and whether attempted payments were successful.

You can retrieve the expenses charged to the client account to sync up the data in your application.

Vertical Industry-Specific Applications

This scenario is similar to the Accounting scenario but you may be using proprietary accounting software customized for your industry.

You can either use the Bill.com website to create bills in Bill.com (taking advantage of the full document and bill management system) or you can use the API to send the bills you have created in your accounting system (and supporting documents) to Bill.com. You may need to move additional industry-specific data to or from Bill.com. One option for doing this is to use the "Departments" object in Bill.com as a way to code industry-specific information to each bill.

Then, use the Bill.com website to approve and pay the bills and to view the relevant documents like the bill image, contracts and statements of work.

Finally, use the Bill.com API to get the status of the bills you uploaded, including the dates for when bills are scheduled to be paid and whether attempted payments were successful. The API allows you to sync your payables information to and from your industry-specific application, so you always have the most updated information in your application without any double entry. If you are capturing any industry-specific information in the Department field, you will be able to sync that back to your application and make sure that it is captured.

Rebate Processing

In this scenario, you are responsible for sending out rebate checks to many customers, whose information resides in your application.

You can use the Bill.com API to upload the customers' information from your application to an account in Bill.com, create a bill to pay them for the rebate, and use Bill.com's bill payment system to mail each customer their rebate check or send them electronic payments.

You can also use the Bill.com API to create invoices to be sent via Bill.com and retrieve the payments received.

 

Developer Program FAQ & Support

FAQ

Contacting Support

If you can't find your answer in the API documentation or FAQ, please contact us.

The Answers

How do I get an application key?

You should fill out the "Join the Developer Program" form. Within 2 business days, you will be contacted by Bill.com and, if your application is approved, you will receive the application key in the email provided in the form. Make sure the contact information provided is correct otherwise your application may be rejected.

What are the steps to enable a Bill.com account to be accessed via the API?

By default, Bill.com accounts are not accessible via the API. To enable API access,a Bill.com administrator user needs to follow these steps:

  • In Bill.com, in the upper right mouse over the gear icon. Then click Settings > Overview.
  • On the overview page, under your Company, click Profile.
  • Click Edit (upper right corner of the page).
  • For Allow API Access at the bottom of the page, click Yes.
  • Click Save.

How can I retrieve only records that have been created/updated since last time I retrieved them in the API?

You should store a time-stamp of the last time you have retrieved records from Bill.com. Then when you want to retrieve the new/modified records, filter the records that have the field "updatedTime" equal or greater than the date/time on your time-stamp.

I got an Error Code (for example, BDCE001). What does it mean?

Here are the Bill.com API Error Codes. Locate in the table below the code you encountered while using the Bill.com API to find out the meaning and possible solution.

ERROR CODE ERROR MESSAGE POSSIBLE SOLUTION
BDCE001 Access via API not enabled for this company Login to your company at https://app.bill.com/login and enable access via API under Setup->Company->Preferences.
BDCE002 Invalid Application Key. Contact Bill.com Customer Support to request permission to develop applications using the Bill.com API. Go to http://www.bill.com/resources/developer-program and request an application key.
BDCE003 The Application Key has been deactivated. Contact Bill.com Customer Support to learn why. Contact Bill.com Customer Support to learn why the application key is inactive.
BDCE004 No User Found Invalid user login or organizationid.
BDCE005 Information you entered doesn't match our records. Please try again. Invalid password.
BDCE006 You have to have edit Org permission in this company to perform this task. Only users with permission to Manage Company Info (e.g. Administrators or a Custom Role) can be used for the API calls.
BDCE007 Invalid id values for fields: {fields} The ID passed in the request is invalid.
BDCE008 Empty sessionId SessionId is required.
BDCE009 Missing required fields: {fields} The request must contain all the required fields.
BDCE010 Changes made don't match this vendor information in our Listed Vendors. Vendor is setup for Bill.com ePayments so the some fields are not editable (maintained by vendor). To remove the vendor from ePayments, login to Bill.com.
BDCE011 Unsupported function API call not available.
BDCE012 Unknown Error Unexpected errors such as wrong XML queries, etc.
BDCE013 Not a Valid Process Date specified The Process Date Format must be MM/DD/YYYY and I cannot be earlier than the next business day if scheduled before 6pm PST or 2 business days if after 6pm PST.
BDCE014 Unknown Error Unexpected errors such as invalid IDs.
BDCE015 Invalid Session Session expired or not valid (both for access via API and website)
BDCE016 Login Locked Your account is locked because it reached the maximum number of failed login attempts. To reset your password, please use the "Forgot your password" link below.
BDCE017 Invalid Application Key for Session. Your account is locked because it reached the maximum number of failed login attempts. To reset your password, please use the "Forgot your password" link in the login page in the Bill.com website.
BDCE018 Org is inactive or has payment overdue. Your Bill.com account billing fees are overdue or is inactive.
BDCE040 Invalid value passed for fields :{fields} Review the API documentation for the expected format for required fields.
BDCE041 Transaction rolled back All the operations in the batch were rolled back (not committed) because one or more operations within the batch failed.
BDCE042 Cannot locate bill :{id} No results returned because the bill id is not valid for the account.
BDCE043 Cannot decode using document passed using base-64 File may be corrupted.
BDCE044 Failed to upload document Invalid file name.
BDCE045 Invalid Payment Amount Enter a valid amount for the payment (e.g. amount needs to be positive, etc).
BDCE046 For Payment by Bill.com, Process Date must be scheduled on or after If user entered a date prior to the next business days (if before 6pm) or prior to the next 2 business days (if after 6pmPST) the pay bills method
BDCE047 Invalid API version The API version should be 1.0. (e.g. <request version="1.0">)
BDCE048 Value entered is too large for Field length exceeded. Review the API documentation to learn about the max field length.
BDCE049 has invalid format For XML request has invalid IDs formats or invalid date format.
BDCE050 No active bank account for Bill.com Payments. There is no active bank account for this company. Login to Bill.com website and add a bank account for Bill.com Payments.
BDCE051 Bill amount does not match total amounts in splits. The total amounts in the line items need to match bill amount.
BDCE052 Vendor has invalid address. Address is required when scheduling Bill.com payments to check vendors. Update the vendor address or login to Bill.com and set up this vendor for ePayments.
BDCE053 Bill.com Payments to non-US vendors is disabled. If you wish to have Bill.com mail checks to non-US vendors, contact Bill.com Customer Support to enable International Payments for this account.
BDCE054 Country not supported for Bill.com Payments. The country information entered for this vendor is not supported by Bill.com Payments. To see the list of countries supported by Bill.com Payments, login to Bill.com and edit the vendor.
BDCE055 Maximum payment amount to non-US vendors is US $10,000.00. The payment amount cannot be greater than US$ 10,000.00.
BDCE056 File too large. The file uploaded is larger than 20Mb. Try again using a file smaller than 20Mb.
BDCE057 Invalid Filter:{error} The filter contains a not supported field or operator. Review the API documentation to learn more about the supported filter operators and fields.

Before you can use the Bill.com API with your application, you need to join the Bill.comDeveloper Program and obtain an Developer Key. You should get a response within two business days. By joining the developer program you are accepting API License Agreement and the API Naming and Advertising Restrictions.