Reference · Tools
Chargebee
Manage customers, invoices, and subscriptions in the Chargebee subscription billing platform.
The Chargebee node connects your workflows to the Chargebee subscription billing API, letting you create customers, filter and retrieve invoices, fetch PDF download URLs, and cancel or delete subscriptions. Use it to automate something like emailing a PDF invoice to a customer the moment it's generated in Chargebee. It authenticates with your Chargebee API key over HTTP Basic Auth.
- Node type
- Action
- Parameters
- 13
- Outputs
- Output, Error
- Credentials
- Chargebee API
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 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:
{
"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:
{
"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:
{
"type": "chargebee",
"parameters": {
"resource": "invoice",
"operation": "list",
"returnAll": false,
"limit": 50
}
}
Get the PDF download URL for the invoice an upstream node produced:
{
"type": "chargebee",
"parameters": {
"resource": "invoice",
"operation": "pdfUrl",
"invoiceId": "{{ $json.id }}"
}
}
Cancel a subscription at the end of the current billing term:
{
"type": "chargebee",
"parameters": {
"resource": "subscription",
"operation": "cancel",
"subscriptionId": "{{ $json.subscription_id }}",
"endOfTerm": true
}
}
Delete a subscription permanently:
{
"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.
Frequently asked questions
What credential do I need and how does authentication work?
You need a Chargebee API credential (type: chargebeeApi) configured in BusyBot. The node authenticates using HTTP Basic Auth, sending your Chargebee API key as the username with a blank password — exactly how Chargebee's API v2 expects it. You set this credential once and reuse it across all Chargebee nodes in your workspace.
If my workflow retries, will I end up with duplicate customers or double-cancelled subscriptions?
No. Create, Cancel, and Delete calls are sent with an idempotency key that stays stable for the same item within the same execution. A retry inside that run won't create a second customer or cancel the same subscription twice. Starting a completely new execution, however, is treated as a fresh operation, so you'd need to guard against that at the workflow level if it matters.
Invoice amounts look wrong — why are they so large?
Chargebee returns and filters amounts in the currency's smallest unit. For USD and most currencies, that means cents, so an invoice for $49.00 appears as 4900. When you set an amount filter on the list-invoices action, make sure you're comparing against cents, not dollars.
I'm getting rate-limit errors when processing a large batch. What should I adjust?
Lower the Max Concurrency setting on the node. The default of 10 concurrent API calls works well for typical runs, but a large batch hitting Chargebee in parallel can trigger rate limiting. Reducing concurrency slows the throughput slightly but keeps requests within Chargebee's API limits and avoids failed calls.
What happens when an action fails — does the whole workflow stop?
The node has two separate outputs: Output and Error. A failed API call routes to the Error output rather than stopping the workflow, so you can wire up a separate branch to log the failure, send an alert, or retry with different parameters without losing the rest of your run.
Build with the Chargebee node
Drop it into a workflow, wire it to an agent, or call it on a schedule. You'll need Chargebee API credentials first.
Open BusyBotLast updated . Spotted something wrong? Tell us.