---
updatedAt: 2025-10-02T22:25:12.000Z
agentTools:
  projectIndex: https://developer.bill.com/v2/llms.txt
---

# Bulk create charts of accounts

Bulk create charts of accounts objects. The maximum number of objects you can set in a bulk operation is 100.

In your request, set `accountType` as a chart of accounts category, such as Accounts Payable, Accounts Receivable, or Bank.

If the category does not sync with the accounting software, set `accountType` as `0` (Unspecified). See the parameters for the complete list of categories.

### What is a chart of accounts?
A chart of accounts is a list of categories you can use to classify and distinguish financial asset, liability, and transaction categories in your organization’s General Ledger (GL). You can sync your chart of accounts with your choice of accounting software.

You can set the created GL account as your chart of accounts when you create bills, bill line items, invoices, or invoice line items.

### Display chart of accounts in the BILL web app
You can display chart of accounts numbers in the BILL web app.
1. In the BILL web app, click **SETTINGS** at the top-right.
2. Click **Preferences** under **Accounting**.
3. Click the edit icon at the top-right.
4. Set **Show Account Numbers** as **Yes** and then click **SAVE**.

# OpenAPI definition

```json
{
  "openapi": "3.0.0",
  "info": {
    "title": "Organization | Accounts tracking",
    "version": "2.0",
    "description": "BILL is a cloud-based cash flow management system for an organization's Accounts Payable (AP) and Accounts Receivable (AR) automation.\n * **AP**: Automate workflows to pay vendors bills at scale for the goods and services they provide. Pay vendors with a wide range of payment methods. Generate vendor credits, bill credits, and payment disbursement reports.\n * **AR**: Automate workflows to get paid by customers at scale for the goods and services you provide. Generate and send invoices on a schedule, generate customer and invoice credits, and seamlessly charge authorized customers.\n * **Organization**: Manage your bank accounts (for sending and receiving payments), users (with user roles), and sync with your choice of accounting software.\n\nIntegrate with the BILL API to send and receive payments for your business. See [Support Center](https://help.bill.com/hc/en-us) for resources about using the BILL web app.",
    "contact": {
      "email": "developerprogram@hq.bill.com"
    }
  },
  "servers": [
    {
      "url": "https://api-stage.bill.com/api/v2",
      "description": "Sandbox base URL"
    }
  ],
  "x-readme": {
    "samples-languages": [
      "curl",
      "java",
      "javascript",
      "python",
      "ruby"
    ],
    "explorer-enabled": true,
    "proxy-enabled": true
  },
  "paths": {
    "/Bulk/Crud/Create/ChartOfAccount.json": {
      "post": {
        "summary": "Bulk create charts of accounts",
        "operationId": "org-accounts-bulkcreatechartofaccount",
        "description": "Bulk create charts of accounts objects. The maximum number of objects you can set in a bulk operation is 100.\n\nIn your request, set `accountType` as a chart of accounts category, such as Accounts Payable, Accounts Receivable, or Bank.\n\nIf the category does not sync with the accounting software, set `accountType` as `0` (Unspecified). See the parameters for the complete list of categories.\n\n### What is a chart of accounts?\nA chart of accounts is a list of categories you can use to classify and distinguish financial asset, liability, and transaction categories in your organization’s General Ledger (GL). You can sync your chart of accounts with your choice of accounting software.\n\nYou can set the created GL account as your chart of accounts when you create bills, bill line items, invoices, or invoice line items.\n\n### Display chart of accounts in the BILL web app\nYou can display chart of accounts numbers in the BILL web app.\n1. In the BILL web app, click **SETTINGS** at the top-right.\n2. Click **Preferences** under **Accounting**.\n3. Click the edit icon at the top-right.\n4. Set **Show Account Numbers** as **Yes** and then click **SAVE**.",
        "responses": {
          "200": {
            "description": "Success",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BulkCreateChartOfAccountResponse"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/x-www-form-urlencoded": {
              "schema": {
                "type": "object",
                "required": [
                  "devKey",
                  "sessionId",
                  "data"
                ],
                "properties": {
                  "devKey": {
                    "type": "string",
                    "description": "Developer key generated with your BILL developer account"
                  },
                  "sessionId": {
                    "type": "string",
                    "description": "API session ID generated with [`/v2/Login.json`](https://developer.bill.com/reference/auth-login)"
                  },
                  "data": {
                    "$ref": "#/components/schemas/BulkCreateChartOfAccountRequest"
                  }
                }
              }
            }
          }
        },
        "tags": [
          "Chart of accounts"
        ]
      },
      "parameters": []
    }
  },
  "components": {
    "schemas": {
      "ErrorResponse": {
        "type": "object",
        "properties": {
          "error_code": {
            "type": "string",
            "description": "Error code (only when `response_status` is `1`)"
          },
          "error_message": {
            "type": "string",
            "description": "Error message (only when `response_status` is `1`)"
          }
        }
      },
      "CreateChartOfAccountRequest": {
        "type": "object",
        "required": [
          "obj"
        ],
        "properties": {
          "obj": {
            "type": "object",
            "required": [
              "entity",
              "name",
              "accountType"
            ],
            "properties": {
              "entity": {
                "type": "string",
                "default": "ChartOfAccount",
                "description": "Object type. Set as `ChartOfAccount`."
              },
              "name": {
                "type": "string",
                "description": "Unique chart of accounts name. This name appears in the BILL web app."
              },
              "isActive": {
                "type": "string",
                "description": "Object visibility status. Inactive objects are hidden by default in the BILL web app.\n* `1`: Active\n* `2`: Inactive"
              },
              "accountNumber": {
                "type": "string",
                "description": "Unique chart of accounts number"
              },
              "accountType": {
                "type": "string",
                "description": "Chart of accounts type.\n* `0`: Unspecified\n* `1`: Accounts payable\n* `2`: Accounts receivable\n* `3`: Bank\n* `4`: Cost of goods sold\n* `5`: Credit card\n* `6`: Equity\n* `7`: Expense\n* `8`: Fixed asset\n* `9`: Income\n* `10`: Long term liability\n* `11`: Other asset\n* `12`: Other current asset\n* `13`: Other current liability\n* `14`: Other expense\n* `15`: Other income \n* `16`: Non posting"
              },
              "description": {
                "type": "string",
                "description": "Chart of accounts description"
              },
              "parentChartOfAccountId": {
                "type": "string",
                "description": "Parent chart of accounts ID. Set this value if the current chart of account ID is a child object."
              },
              "ca1099FormType": {
                "type": "string",
                "description": "Form 1099 type.\n* `0`: None\n* `1`: MISC2021\n* `2`: NEC2021"
              },
              "ca1099Type": {
                "description": "Form 1099 filing categorization (for Sage Intacct only).\n* `0`: None\n* `1`: Box 1\n* `2`: Box 2\n* `3`: Box 3\n* `4`: Box 4\n* `5`: Box 5\n* `6`: Box 6\n* `7`: Box 7\n* `8`: Box 8\n* `9`: Box 9\n* `10`: Box 10\n* `11`: Box 11\n* `12`: Box 12\n* `13`: Box 13\n* `14`: Box 14"
              }
            }
          }
        }
      },
      "CreateChartOfAccountResponse": {
        "type": "object",
        "properties": {
          "response_status": {
            "type": "integer",
            "description": "Response status.\n* `0`: Success response\n* `1`: Error response. Only `error_code` and `error_message` is returned in `response_data`."
          },
          "response_message": {
            "type": "string",
            "description": "Response status.\n* `Success`: Success response\n* `Error`: Error response. Only `error_code` and `error_message` is returned in `response_data`."
          },
          "response_data": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/ErrorResponse"
              }
            ],
            "properties": {
              "entity": {
                "type": "string",
                "description": "Object type. Set as `ChartOfAccount`."
              },
              "id": {
                "type": "string",
                "description": "BILL-generated chart of accounts ID. The value begins with `0ca`."
              },
              "name": {
                "type": "string",
                "description": "Unique chart of accounts name. This name appears in the BILL web app."
              },
              "isActive": {
                "type": "string",
                "description": "Object visibility status. Inactive objects are hidden by default in the BILL web app.\n* `1`: Active\n* `2`: Inactive"
              },
              "accountNumber": {
                "type": "string",
                "description": "Unique chart of accounts number"
              },
              "accountType": {
                "type": "string",
                "description": "Chart of accounts type.\n* `0`: Unspecified\n* `1`: Accounts payable\n* `2`: Accounts receivable\n* `3`: Bank\n* `4`: Cost of goods sold\n* `5`: Credit card\n* `6`: Equity\n* `7`: Expense\n* `8`: Fixed asset\n* `9`: Income\n* `10`: Long term liability\n* `11`: Other asset\n* `12`: Other current asset\n* `13`: Other current liability\n* `14`: Other expense\n* `15`: Other income \n* `16`: Non posting"
              },
              "description": {
                "type": "string",
                "description": "Chart of accounts description"
              },
              "parentChartOfAccountId": {
                "type": "string",
                "description": "Parent chart of accounts ID"
              },
              "ca1099FormType": {
                "type": "string",
                "description": "Form 1099 type (for Sage Intacct only).\n* `0`: None\n* `1`: MISC2021\n* `2`: NEC2021"
              },
              "ca1099Type": {
                "description": "Form 1099 filing categorization (for Sage Intacct only).\n* `0`: None\n* `1`: Box 1\n* `2`: Box 2\n* `3`: Box 3\n* `4`: Box 4\n* `5`: Box 5\n* `6`: Box 6\n* `7`: Box 7\n* `8`: Box 8\n* `9`: Box 9\n* `10`: Box 10\n* `11`: Box 11\n* `12`: Box 12\n* `13`: Box 13\n* `14`: Box 14"
              },
              "createdTime": {
                "type": "string",
                "description": "Created date and time"
              },
              "updatedTime": {
                "type": "string",
                "description": "Updated date and time"
              },
              "mergedIntoId": {
                "type": "string",
                "description": "Parent chart of accounts ID that the current ID is merged into"
              }
            }
          }
        }
      },
      "BulkCreateChartOfAccountRequest": {
        "type": "object",
        "required": [
          "bulk"
        ],
        "properties": {
          "bulk": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/CreateChartOfAccountRequest"
            }
          }
        }
      },
      "BulkCreateChartOfAccountResponse": {
        "type": "object",
        "properties": {
          "response_status": {
            "type": "integer",
            "description": "Response status.\n* `0`: Success response\n* `1`: Error response. Only `error_code` and `error_message` is returned in `response_data`."
          },
          "response_message": {
            "type": "string",
            "description": "Response status.\n* `Success`: Success response\n* `Error`: Error response. Only `error_code` and `error_message` is returned in `response_data`."
          },
          "response_data": {
            "type": "object",
            "allOf": [
              {
                "$ref": "#/components/schemas/ErrorResponse"
              }
            ],
            "properties": {
              "bulk": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/CreateChartOfAccountResponse"
                }
              }
            }
          }
        }
      }
    }
  }
}
```