---
updatedAt: 2026-09-01T13:51:56.000Z
---

Fetch the complete documentation index at: https://developer.bill.com/llms.txt. Use this file to discover all available pages before exploring further. Append .md to any documentation page URL to get its markdown version.

# BILL keys & tokens

BILL provides a set of keys and tokens for different API products and capabilities.

## Tutorial: BILL API Platform authentication

<Embed title="" typeOfEmbed="youtube" url="https://www.youtube.com/watch?v=QAbXvNxx35M" href="https://www.youtube.com/watch?v=QAbXvNxx35M" html="%3Ciframe%20class%3D%22embedly-embed%22%20src%3D%22%2F%2Fcdn.embedly.com%2Fwidgets%2Fmedia.html%3Fsrc%3Dhttps%253A%252F%252Fwww.youtube.com%252Fembed%252FQAbXvNxx35M%253Ffeature%253Doembed%26display_name%3DYouTube%26url%3Dhttps%253A%252F%252Fwww.youtube.com%252Fwatch%253Fv%253DQAbXvNxx35M%26image%3Dhttps%253A%252F%252Fi.ytimg.com%252Fvi%252FQAbXvNxx35M%252Fhqdefault.jpg%26type%3Dtext%252Fhtml%26schema%3Dyoutube%22%20width%3D%22854%22%20height%3D%22480%22%20scrolling%3D%22no%22%20title%3D%22YouTube%20embed%22%20frameborder%3D%220%22%20allow%3D%22autoplay%3B%20fullscreen%3B%20encrypted-media%3B%20picture-in-picture%3B%22%20allowfullscreen%3D%22true%22%3E%3C%2Fiframe%3E" providerName="YouTube" providerUrl="https://www.youtube.com/" />

## Developer key

With the developer key, you can build with the BILL AP, AR, BILL network, and webhook workflows. These workflows are at the BILL organization level. See <Anchor target="_blank" href="doc:api-sandbox-sign-up">Sandbox API sign up</Anchor> to learn how to generate a developer key.<br />

In this cURL example, you sign in with `POST /v3/login`. The generated `sessionId` in the response is available only for the selected `devKey` in your request.

```curl Sign in with POST /v3/login
curl --request POST \
--url 'https://gateway.stage.bill.com/connect/v3/login' \
--header 'content-type: application/json' \
--data '{
  "username": "{username}", 
  "password": "{password}",
  "organizationId": "{organization_id}", 
  "devKey": "{developer_key}"
}'
```

From the API response, use the generated `sessionId` and your `devKey`  as header fields in all subsequent API calls. If your API session is inactive for 35 minutes, the session expires and you are automatically signed out.

## AP & AR sync token

As a BILL app partner, you can onboard your customers with an AP & AR sync token. Your customers can pull or push key financial data for reporting or ERP syncing. In addition, BILL payment capabilities are not available when your customers sign in with the AP & AR sync token. See <Anchor target="_blank" href="doc:token-based-sign-in">AP & AR sync token-based sign in</Anchor> to learn how to generate an AP & AR sync token.

In this cURL example, you sign in with `POST /v3/login`. The generated `sessionId` in the response is available only for the selected `devKey` in your request.

```curl AP & AR sync token sign in with POST /v3/login
curl --request POST \
--url 'https://gateway.stage.bill.com/connect/v3/login' \
--header 'content-type: application/json' \
--data '{
  "username": "{apar_sync_token_name}", 
  "password": "{apar_sync_token_value}",
  "organizationId": "{organization_id}", 
  "devKey": "{developer_key}"
}'
```

From the API response, use the generated `sessionId` and your `devKey`  as header fields in all subsequent API calls. The generated `sessionId` expires when it is inactive for 48 hours, and provides limited access to the BILL API.

See [BILL app partner integration](https://developer.bill.com/docs/bill-app-partner-integration) to learn about the core requirements and steps for BILL app partner integrations.

## Accountant Console API token

With the Accountant Console API token, you can sign in to your client organizations and perform all BILL AP and AR operations with the API. See <Anchor target="_blank" href="doc:bill-accountant-console-operations">BILL Accountant Console operations</Anchor> to learn how to generate a Console API token.

<Callout icon="👍" theme="okay">
  ### AP & AR sync token-based sign in is available with `POST /v2/Login.json`

  You must sign in with the BILL v2 API login operation (`POST /v2/Login.json`) when you use the AP & AR sync token.
</Callout>

In this cURL example, you sign in with `POST /v3/login`. The generated `sessionId` in the response is available only for the selected `devKey` in your request.

```curl Accountant Console API token sign in with POST /v3/login
curl --request POST \
--url 'https://gateway.stage.bill.com/connect/v3/login' \
--header 'accept: application/json' \
--data '{
  "username": "{username}", 
  "consoleApiToken": "{console_api_token}",
  "organizationId": "{organization_id}", 
  "devKey": "{developer_key}"
}'
```

From the API response, use the generated `sessionId` and your `devKey`  as header fields in all subsequent API calls. If your API session is inactive for 35 minutes, the session expires and you are automatically signed out.

## Spend & Expense API token

A Spend & Expense API token is required for you to begin testing with the Spend & Expense API. You can build with budgets, users, and virtual cards. In addition, you can manage transactions and reimbursements. See <Anchor target="_blank" href="doc:authentication-with-api-token">Authentication with Spend & Expense API token</Anchor> to learn how to generate a Spend & Expense API token.

In this cURL example, we get a list of budgets. The required header field is your Spend & Expense `apiToken`. There is no API login required before you begin testing with the Spend & Expense API.

```curl Get list of budgets
curl --request GET \ 
--url 'https://gateway.stage.bill.com/connect/v3/spend/budgets' \
--header 'apiToken: {se_api_token}' \
--header 'Accept: application/json'
```

## Partner app key

As a BILL partner, you can perform partner-level operations, which include creating an organization, and then creating and managing users for that organization. See <Anchor target="_blank" href="doc:bill-partner-operations">BILL partner operations</Anchor> for more information.

In this cURL example, you sign in with `POST /v3/partner/login`. The generated `sessionId` in the response is available only for the selected `devKey` in your request.

```curl Partner sign in with POST /v3/partner/login
curl --request POST \
--url 'https://gateway.stage.bill.com/connect/v3/partner/login' \
--header 'content-type: application/json' \
--data '{
  "username": "{username}", 
  "password": "{password}",
  "appKey": "{partner_app_key}"
}'
```

From the API response, use the generated `sessionId` and your `appKey` as header fields in all subsequent partner API calls. For managing users for an organization you have created, the `organizationId` is an additional required header field. If your API session is inactive for 35 minutes, the session expires and you are automatically signed out.