<!-- BusyBot node reference — https://busybot.net/tools/chargebee/ -->

> Node: Chargebee (`chargebee`) · Action · v1
> Category: Finance · Credentials: Chargebee API (`chargebeeApi`)
> Updated: 2026-08-16

# Chargebee

> Manage Chargebee customers, invoices, and subscriptions.

## Overview

Chargebee is a subscription billing and revenue management platform. This tool provides access to the Chargebee API v2 for creating customers, listing invoices with date/amount filters, retrieving invoice PDF download URLs, and cancelling or deleting subscriptions. Uses HTTP Basic Auth with the Chargebee API key. All POST parameters are form-urlencoded per Chargebee API conventions.

**Category:** Finance  
**Tool Name:** `chargebee`  
**Version:** 1

**Appearance:** Icon: `lucide-CircleDollarSign` | Color: `#FF6633`

## Node Type

**Action** — processes input items and produces output

## Input / Output

| Direction | Port(s) |
|-----------|--------|
| Input | `Input` |
| Output | `Output`, `Error` |

## Credentials

This tool requires **Chargebee API** credentials.
See the [Credentials Guide](https://busybot.net/credentials/chargebee-api/) for setup instructions.

### Resources

| Resource | Value |
|----------|-------|
| Customer | `customer` |
| Invoice | `invoice` |
| Subscription | `subscription` |

### Operations

Each resource has its own Operation list. Pick the resource first, then the operation.

| Resource | Operation | Value | Description |
|----------|-----------|-------|-------------|
| Customer | Create | `create` | Create a new customer |
| Invoice | List | `list` | List invoices with optional filters |
| Invoice | PDF Invoice URL | `pdfUrl` | Get the PDF download URL for a specific invoice |
| Subscription | Cancel | `cancel` | Cancel a subscription |
| Subscription | Delete | `delete` | Delete a subscription permanently |

### Parameters

#### Customer: Create

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Properties | `collection` | No | `{}` | Properties to set on the new customer. Supports expressions inside its fields. |
| — User ID (`id`) | `string` | No | — | ID for the new customer. If not given, this will be auto-generated. |
| — First Name (`first_name`) | `string` | No | — | The first name of the customer. |
| — Last Name (`last_name`) | `string` | No | — | The last name of the customer. |
| — Email (`email`) | `string` | No | — | The email address of the customer. |
| — Phone (`phone`) | `string` | No | — | The phone number of the customer. |
| — Company (`company`) | `string` | No | — | The company of the customer. |
| — Custom Properties (`customProperties`) | `fixedCollection` | No | `{}` | Adds custom properties as key-value pairs. Each pair is sent as a separate form-encoded parameter. Add as many as you need. |
| — — Property Name (`name`) | `string` | No | — | Name of the property to set. |
| — — Property Value (`value`) | `string` | No | — | Value of the property to set. |

#### Invoice: List

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Return All | `boolean` | No | `false` | Whether to return all results or only up to a given limit. |
| Limit | `number` | No | `10` | Max number of results to return (1–100). _(shown when Return All is `false`)_ |
| Filters | `fixedCollection` | No | `{}` | Filter invoices by date or amount. Add one or more entries under either group; supports expressions inside its fields. |
| — Invoice Date (`date`) | | | | Filter on the invoice date. Add this group more than once to bracket a range. |
| — — Operation (`operation`) | `options` | No | `after` | The comparison operation for the date filter. |
| | | | | Options: `is`, `is_not`, `after`, `before` |
| — — Date (`value`) | `string` | No | — | Query date in ISO 8601 format (e.g. 2024-01-15T00:00:00Z). Converted to Unix timestamp internally. |
| — Invoice Amount (`total`) | | | | Filter on the invoice total. |
| — — Operation (`operation`) | `options` | No | `gt` | The comparison operation for the amount filter. |
| | | | | Options: `is`, `is_not`, `gt` (greater than), `gte` (greater or equal), `lt` (less than), `lte` (less or equal) |
| — — Amount (`value`) | `number` | No | `0` | Query amount (in cents for most currencies). |

#### Invoice: PDF Invoice URL

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Invoice ID | `string` | Yes | — | The ID of the invoice to get the PDF URL for. Supports expressions. |

#### Subscription: Cancel

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Subscription ID | `string` | Yes | — | The ID of the subscription to cancel. Supports expressions. |
| Schedule End of Term | `boolean` | No | `false` | Whether to schedule the cancellation for the end of the current billing term instead of cancelling immediately. Must resolve to a true or false value — the node refuses to guess, so an expression that returns anything else fails the item. |

#### Subscription: Delete

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Subscription ID | `string` | Yes | — | The ID of the subscription to delete permanently. Supports expressions. |

#### All Operations

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| Max Concurrency | `number` | No | `10` | Maximum number of items to process concurrently (1–100). |

## Output Data

What lands on the output item depends on the operation, but in every case binary data on the input item is forwarded unchanged.

| Operation | Output |
|-----------|--------|
| Customer Create, Subscription Cancel, Subscription Delete | **One output item per input item.** The Chargebee response is **merged onto the input item's JSON** at the top level, so the fields the item already carried are still there and a response key with the same name overwrites the item's value. |
| Invoice PDF Invoice URL | **One output item per input item.** Only `pdfUrl` is added — the rest of the input item JSON passes through untouched. `pdfUrl` is `null` when the response carries no download URL. |
| Invoice List | **Fans out: one output item per invoice returned.** Each invoice object **replaces** the item JSON entirely — nothing from the input item survives, so carry forward any value you still need before this node. A request that matches no invoices produces **no output items at all** for that input item, which quietly ends that branch. |

List results are unwrapped, so invoice fields sit at the top level of the output item (`{{ $json.id }}`, `{{ $json.total }}`). Invoices are returned newest first by invoice date. With Return All on, the node pages through results for you.

## Usage Examples

- Create a new Chargebee customer with email and name
- List all invoices sorted by date
- Get the PDF download URL for a specific invoice
- Cancel a subscription at end of term
- Delete a subscription permanently

## Example Configuration

Create a customer from an upstream signup record, including custom properties:

```json
{
  "type": "chargebee",
  "parameters": {
    "resource": "customer",
    "operation": "create",
    "properties": {
      "id": "customer_001",
      "first_name": "{{ $json.firstName }}",
      "last_name": "{{ $json.lastName }}",
      "email": "{{ $json.email }}",
      "phone": "+1-555-0123",
      "company": "Acme Corp",
      "customProperties": {
        "property": [
          { "name": "department", "value": "engineering" },
          { "name": "tier", "value": "premium" }
        ]
      }
    }
  }
}
```

List every invoice raised after a date and above an amount:

```json
{
  "type": "chargebee",
  "parameters": {
    "resource": "invoice",
    "operation": "list",
    "returnAll": true,
    "filters": {
      "date": [
        { "operation": "after", "value": "2026-01-01T00:00:00Z" }
      ],
      "total": [
        { "operation": "gt", "value": 100 }
      ]
    }
  }
}
```

List a single page of invoices:

```json
{
  "type": "chargebee",
  "parameters": {
    "resource": "invoice",
    "operation": "list",
    "returnAll": false,
    "limit": 50
  }
}
```

Get the PDF download URL for the invoice an upstream node produced:

```json
{
  "type": "chargebee",
  "parameters": {
    "resource": "invoice",
    "operation": "pdfUrl",
    "invoiceId": "{{ $json.id }}"
  }
}
```

Cancel a subscription at the end of the current billing term:

```json
{
  "type": "chargebee",
  "parameters": {
    "resource": "subscription",
    "operation": "cancel",
    "subscriptionId": "{{ $json.subscription_id }}",
    "endOfTerm": true
  }
}
```

Delete a subscription permanently:

```json
{
  "type": "chargebee",
  "parameters": {
    "resource": "subscription",
    "operation": "delete",
    "subscriptionId": "sub_xyz789"
  }
}
```

### Error Handling

| Mode | Behavior |
|------|----------|
| **stop** | Halts workflow on first error |
| **continue** | Skips failed items, passes successful ones through |
| **errorPort** | Routes failed items to Error output port |

## Tips

Manage Chargebee subscription billing: create customers, list invoices, get PDF URLs, cancel or delete subscriptions.

- **Repeated runs are safe.** Create, Cancel and Delete calls are sent with an idempotency key that is stable for the same item within the same execution, so a retry inside that execution does not create a second customer or cancel twice. A fresh execution is a fresh operation.
- **Amounts are in the currency's smallest unit.** The invoice amount filter compares cents for most currencies.
- **Max Concurrency controls the API call rate.** The default of 10 suits most runs; lower it when a large batch of items starts drawing rate-limit errors.