Common API error codes
An API operation can fail for different reasons. If an operation fails, the server responds with an error message.
HTTP error code | Description |
---|---|
4XX | Client side unauthorized, forbidden, or bad request errors |
5XX | Server side errors |
HTTP response status codesSee HTTP response status codes in the Mozilla developer documentation for more information about the five classes of HTTP response codes.
An error response consists of HTTP status code (e.g. 401 Unauthorized
) and additional detail fields.
Error response field | Description |
---|---|
timestamp | Error response timestamp. |
code | Error code. The value begins with BDC_ . |
severity | Error severity (ERROR , WARNING , or INFORMATION ) |
category | Error category (REQUEST , APPLICATION , SERVER , or DOWNSTREAM ) |
message | Error message. This message provides a short description about the error. |
[
{
"timestamp": "2025-12-25T00:00:00.000+00:00",
"code": "BDC_1109",
"severity": "ERROR",
"category": "DOWNSTREAM",
"message": "Session is invalid. Please log in."
}
]
Error codes list
The BILL v2 API and v3 API relies on the same source for HTTP error response codes. You can retrieve the complete list of the error codes available in the sandbox environment with /v2/Errors.json
.
curl https://api-stage.bill.com/api/v2/Errors.json
There are over 500 different API error codes depending on the API operation and error type.
Common error codes
Error code | Description & possible directions |
---|---|
| Confirm whether a parameter is unknown or misspelt parameter in the API request. In addition, confirm whether the API request object is in the correct format. |
| Confirm whether your username and password is correct. In addition, confirm whether the username and password belong to the correct environment - sandbox or production. Note that the BILL sandbox and production environments do not share any data. |
| Confirm whether your developer key is correct. In addition, confirm whether the developer key belongs to the correct environment - sandbox or production. Note that the BILL sandbox and production environments do not share any data. |
| Confirm whether your API session is valid. Sign in to your BILL developer account with If your API session is inactive or idle for 35 minutes, the session expires and you are automatically signed out. |
| If HTTP status code of the response is 404, confirm that you have the correct endpoint path without any spelling errors or capitalization errors. |
| Confirm whether your API requests per developer key per hour are not more than When you receive this error, all subsequent API requests must wait until the beginning of the next hour. Implement exponential backoff in your code to address rate limits. |
| Bank account setup must be complete See Bank account setup (BILL web app) for more information. Paying user must have the correct user role See Manage a user's role in the BILL Help Center for more information. |
| Bank account must be verified and active Paying user must have permissions to pay with the bank account See How to add a user to a bank account in the BILL Help Center for more information. |
| Confirm whether the vendor address country code is in the valid full name format. Accounting software, such as Oracle NetSuite, set the address country code as two letter or three letter country codes. |
| Confirm whether your concurrent API requests per developer key per organization is not more than three. When you receive this error, all subsequent API requests fail until one concurrent request is completed. Implement exponential backoff in your code to address concurrent rate limits. See API rate limits for more information. |
| Confirm whether your API session is Multi-Factor Authentication (MFA)-trusted for protected API operations, such as enabling vendor auto-pay, creating a payment, or adding an organization bank account. See MFA setup for more information. |
| When you add a vendor bank account, BILL requires 2 business days to complete a one-time verification of the bank account. To pay such a vendor, you must set a See the /v3/payments API for more information. |
Updated 7 days ago