Unpaid invoice lookup
Usually asked by a CS rep mid-conversation.
How much does this customer still owe us? Do they have any open invoices?
Your billing record already holds what your team needs: renewal dates, churn signals, unpaid balances, ARR by cohort. Point an AI client at it through the MCP server and query it directly. Finance, CS, RevOps, and product all ask, no dashboard required.
The data that decides what to do is already on the record: every invoice's payments and terms, every subscription's plan and add-ons, every cancellation's reason. The signal was always there. What was missing was a fast way to ask for it.
Connect an AI client through the Model Context Protocol and that history becomes queryable in plain English. One question reads the records, runs the math, and ranks the answer.
No SQL. No export. No analyst in the loop.
Each prompt on this page is a starting point. Connect Chargebee through MCP and the same questions build something you can operate from. A live finance copilot, a risk-ranked collections brief, a nine-quarter ARR cube, a churn model fitted to your own book.
| Quarter | ARR | QoQ | NRR |
|---|---|---|---|
| Q1 2024 | $248.1M | — | 106.2% |
| Q2 2024 | $271.4M | +9.4% | 108.1% |
| Q3 2024 | $293.7M | +8.2% | 110.4% |
| Q4 2024 | $322.0M | +9.6% | 112.3% |
| Q1 2025 | $362.4M | +12.5% | 114.1% |
| Q2 2025 | $398.7M | +10.0% | 115.8% |
One prompt. One table. Every customer’s ARR over time.
A health score learned from your own churn, not a generic rule.
One question. A collections call list ordered by risk, not size.
One question. A complete board packet (ARR, NRR, churn, and cohorts) pulled from live data.
Two queries, two lists — here is what came back from your Chargebee site right now.
| Invoice | Customer | Amount due | Date | Action |
|---|---|---|---|---|
| INV-9102 | cst_hb3371 | $382.00 | 4 Jun 2026 | Retries active |
| INV-9089 | cst_ac6607 | $1,600.00 | 4 Jun 2026 | Retries active |
| INV-9078 | cst_rk9903 | $1,343.00 | 4 Jun 2026 | Retries active |
| INV-9031 | cst_sp1195 | $420.02 | 4 Jun 2026 | Retries active |
| INV-9030 | cst_yu8840 | $328.71 | 4 Jun 2026 | Retries active |
| Invoice | Customer | Amount due | Date | Action |
|---|---|---|---|---|
| INV-8914 | cst_dk2283 | $99.00 | 1 Jun 2026 | Manual outreach needed |
| INV-8847 | cst_du8813 | $696.00 | 1 Jun 2026 | Manual outreach needed |
| INV-8761 | cst_eg5514 | $3,486.00 | 31 May 2026 | Manual outreach needed |
| INV-8492 | cst_fw3301 | $280.00 | 27 May 2026 | Manual outreach needed |
| INV-8468 | cst_ox5591 | $1,869.21 | 27 May 2026 | Manual outreach needed |
The chain is fully traceable. Every invoice carries a dunning_status and a dunning_attempts array, so you can watch a healthy payer degrade into a churn risk invoice by invoice. Here is one real account's 8-month arc.
| Invoice month | Amount | Dunning outcome | Signal |
|---|---|---|---|
| Nov 2025 | $433 | Paid after 2 retries | Healthy |
| Dec 2025 | $860 | Paid after 2 retries | Healthy |
| Jan 2026 | $290 | Paid, but took 8 retries | Strain showing |
| Feb 2026 | $1,418 | Exhausted, unpaid | Chain begins |
| Mar 2026 | $290 | Exhausted, unpaid | Stacking |
| Apr 2026 | $304 | Exhausted, unpaid | Stacking |
| May 2026 | $437 | Exhausted, unpaid | Stacking |
| Jun 2026 | $1,343 | In active dunning now | Pre-churn |
Every cancellation event carries a source field. That field is the signal that separates a customer who chose to leave from one the system cancelled after dunning ran out. Here is the real split across the last 35 cancellations.
| Source | Count | Churn type | What it means |
|---|---|---|---|
| SCHEDULED_JOB | 4 | Involuntary | Auto-cancelled after dunning exhausted. Payment failed, retries ran out. The customer may not have meant to leave. |
| API | 24 | Voluntary | Customer-initiated through your app or portal. A deliberate decision to cancel. |
| ADMIN_CONSOLE | 7 | Manual | Cancelled by your team in Chargebee. Could be a support request or an ops cleanup. |
Billing questions that required a Chargebee tab, a filter, and three clicks now take one sentence in Claude.
| Field | Value |
|---|---|
| Customer ID | cst_vx8821 (Velostack) |
| Invoice | INV-8831 |
| Status | payment_due |
| Amount due | $42,180.00 |
| Due date | 1 Jun 2026 |
| Dunning | in_progress — 5 failed attempts |
| Source | Meaning | Count (sample) | Action |
|---|---|---|---|
| EXTERNAL_SERVICE | Card/bank declined | ~16 of 20 | Update payment method |
| SCHEDULED_JOB | Dunning retry failed | ~3 of 20 | Dunning active — monitor |
| HOSTED_PAGE | Checkout failure | ~1 of 20 | Customer-entered card — outreach |
| Repeat failure customer | Invoice | Amount | Attempts | Status |
|---|---|---|---|---|
| cst_vx8821 (Velostack) | INV-8831 | $42,180 | 5 | Still open |
| cst_pq4412 (Pulseboard) | INV-8372 | $23,300 | 6 | Dunning exhausted |
| Invoice | Amount | Generated | Paid | Days |
|---|---|---|---|---|
| INV-8831 | $42,180 | 1 Jun 2026 | Not paid | Still open |
| INV-8647 | $15,460 | 1 May 2026 | 26 May 2026 | 25 days |
| INV-8412 | $1,402 | 1 Apr 2026 | 29 May 2026 | 58 days |
| INV-8204 | $2,300 | 1 Mar 2026 | 29 May 2026 | 89 days |
| INV-7983 | $755 | 1 Feb 2026 | 29 May 2026 | 117 days |
| INV-7761 | $3,930 | 1 Jan 2026 | 29 May 2026 | 148 days |
The query runs in two steps: pull invoices where dunning is in progress, then confirm the subscription is still active. Anyone still active is inside the grace window. Here is what came back live.
| Customer | Invoice | Amount due | Subscription | Card |
|---|---|---|---|---|
| cst_rk9903 | INV-9078 | $1,343.00 | Active | Valid |
| cst_ac6607 | INV-9089 | $1,600.00 | Active | Valid |
| cst_yu8840 | INV-9030 | $420.02 | Active | Valid |
| cst_hb3371 | INV-9102 | $382.00 | Active | Valid |
| cst_sp1195 | INV-9031 | $420.02 | Active | Valid |
One native filter does this: pull every subscription where status is non_renewing. These are the accounts set to lapse at term end — still active today, but not coming back unless someone acts. Ranked by MRR at risk.
| Customer | MRR | Term ends | Days left | Status |
|---|---|---|---|---|
| cst_qt1198 | $138.00 | 15 Jun 2026 | 11 days | non_renewing |
| cst_dv6642 | $138.00 | 30 Jun 2026 | 26 days | non_renewing |
| cst_bm2287 | $115.00 | 15 Jun 2026 | 11 days | non_renewing |
| cst_nz7754 | $115.00 | 15 Jun 2026 | 11 days | non_renewing |
| cst_dk2283 | $99.00 | 1 Jul 2026 | 27 days | non_renewing |
The renewal filter is native: pull active subscriptions whose next_billing_at falls in the next 90 days, then check each one's invoice health. Here is the risk-tiered view from live data.
| Customer | Renews | Open balance | Signal | Tier |
|---|---|---|---|---|
| cst_rk9903 | 4 Jul 2026 | $3,800 | 5 due invoices, one in dunning | High |
| cst_yu8840 | 4 Jul 2026 | $799 | Invoice in active dunning | High |
| cst_sp1195 | 4 Jul 2026 | $420 | In dunning, on annual contract | High |
| cst_bm2287 | 15 Jun 2026 | $310 | Overdue invoice, no dunning yet | Medium |
This is a two-step chain: pull cancellations, then sum each customer's paid invoices for real lifetime value. The output is a ranked call list, not a flat churn export. Here is the live result.
| Customer | LTV (paid) | Last plan | Churned | Priority |
|---|---|---|---|---|
| cst_pk3376 | $8,640 | Performance | 4 Jun 2026 | High |
| cst_cb9920 | $5,210 | Performance | 4 Jun 2026 | High |
| cst_mr4457 | $2,180 | Growth | 3 Jun 2026 | Medium |
| cst_jl7713 | $843 | Performance | 4 Jun 2026 | Low |
| cst_wf2284 | $165 | Growth + add-on | 4 Jun 2026 | Low |
The connector cross-references subscription_changed events against credit_note_created events. Customers with a downgrade event and no subsequent credit note in the same billing period are the gap.
From live data: customer cst_pq4412 (Pulseboard) had invoice INV-8591 ($23,300.00) resolved with credit note CN-4955 ($23,300.00, reason: order_change) — the credit was issued. But the system also shows INV-8372 with $9,120.00 still outstanding after dunning exhausted, with a partial credit CN-4956 ($14,190.00) only partially covering the balance.
| Customer | Credit note | Amount | Reason | Status |
|---|---|---|---|---|
| cst_pq4412 | CN-4955 | $23,300.00 | Order change | Adjusted |
| cst_pq4412 | CN-4956 | $14,190.00 | Order change | Partial — $9,120 still due |
| cst_vx8821 | CN-4821 | $436.00 | Overages waiver | Adjusted |
| Customer | Issued | Source | Note |
|---|---|---|---|
| cst_pq4412 (Pulseboard) | 31 May, 22:38 | Admin console | 4th credit this session |
| cst_pq4412 | 31 May, 22:36 | Admin console | |
| cst_pq4412 | 31 May, 22:32 | Admin console | |
| cst_pq4412 | 31 May, 22:31 | Admin console | |
| cst_sw9934 | 31 May, 14:20 | Admin console | 6 credits — same customer |
| cst_du8813 | 31 May, 13:52 | API |
Discount data is rich on invoice line items. From Pulseboard (cst_pq4412), invoice INV-8829:
| Line item | Full price | Discount | Discount % | Coupon ID | Net price |
|---|---|---|---|---|---|
| Enterprise Plan | $25,920 | $7,040 | 27.15% | cpn_enterprise_27 | $16,250 |
| Retention Perf. Addon | $8,830 | $5,344 | 60.53% | cpn_addon_60 | $3,482 |
Discount data lives on the subscription in a discounts array, each with a percentage, what it applies to, and a duration_type: forever, limited_period, or one_time. The duration_type is the whole game for revenue recovery.
| Field | Value |
|---|---|
| Customer | cst_sp1195 |
| Plan list price | $599.00 / mo |
| Discount | 29.88% off |
| Net price billed | $420.02 / mo |
| Duration type | forever |
| Monthly revenue gap | $178.98 |
Two different fields answer this, and confusing them is the classic mistake. billing_period_unit is how often you invoice. contract_term is how long the customer is committed. They are not the same, and the connector returns both.
| Field | Value | What it tells you |
|---|---|---|
| billing_period_unit | month | Invoiced every month |
| contract_term | 12-cycle, active | Locked in for a full year |
| Total contract value | $5,091 | Committed revenue, not at monthly risk |
| Cancellation cutoff | 30 days | Cannot leave before term end |
| Cycles remaining | 10 of 12 | 10 months of committed revenue left |
Add-on revenue is identifiable on every invoice: line items are tagged entity_type = addon_item_price, separate from plan_item_price. Summing the add-on lines per customer and ranking them is what surfaces concentration. The live result here is striking.
| Customer | Add-on | Add-on revenue | Share |
|---|---|---|---|
| cst_ox5591 | Seat Expansion (15 seats) | $11,460 | ~90% |
| cst_wf2284 | Dispute Automation | $138 / mo | ~1% |
Most other active customers carry no add-on at all.
The connector pulls the full invoice record — subtotal, tax amount, tax rate, tax name, and the billing address that triggered the charge. From live Chargebee data:
| Field | Value |
|---|---|
| Invoice | INV-8831 (Velostack) |
| Subtotal | $35,175.00 |
| Tax | $3,480.00 (Sales Tax @ 8.25%) |
| Tax jurisdiction | United States (US) — Sales Tax registration EU 528004897 |
| Billing country | FR — tax-exclusive invoice |
| Total | $42,180.00 |
Here is the complete picture for Pulseboard (cst_pq4412) — pulled live right now:
| Item | Price | Discount |
|---|---|---|
| Enterprise Plan (enterprise-plan-eur) | $25,920.00 | 27.15% off — coupon cpn_enterprise_27 |
| Analytics Addon | $8,830.00 | 60.53% off — coupon cpn_addon_60 |
| Invoice | Amount | Status | Dunning |
|---|---|---|---|
| INV-8829 | $22,400 | Paid 3 Jun | 2 failures first |
| INV-8644 | $22,400 | Paid 6 May | 3 failures first |
| INV-8591 | $23,300 | Paid (CN-4955 applied) | 6 failures, credit resolved |
| INV-8372 | $23,300 | Not paid — $9,120 due | 6 failures, exhausted |
company[is]="Pulseboard" for an exact match, or company[starts_with]="Pulseboard" if you only know part of the name. Email domain search is not supported, but company name lookup covers most CS workflows.Every active subscription returns a subscription_items array. Each item has an item_price_id and an item_type of plan or addon. Checking whether a customer is entitled to a feature is one read: is that add-on present on their subscription?
| Item | Type | Entitled |
|---|---|---|
| Enterprise tier (annual) | Plan | Yes |
| Quote Builder add-on | Add-on | Yes · 20 seats |
| Seat Expansion | Add-on | Yes · 15 seats |
| Platform Fee | Add-on | Yes |
| Advanced Reporting | Add-on | No · not on plan |
Everything a rep needs before dialing, in one pull: full invoice history, what they have actually paid, and what is open right now.
| Invoice | Amount | Outcome |
|---|---|---|
| Nov 2025 | $433 | Paid |
| Dec 2025 | $860 | Paid |
| Jan 2026 | $290 | Paid |
| Feb 2026 | $1,418 | Unpaid |
| Mar–Jun 2026 | $2,370 | Unpaid, in dunning |
| Date | Event | Detail |
|---|---|---|
| 2 Jun, 23:03 | Payment failed ×4 | INV-8831 — $42,180 |
| 2 Jun, 23:03 | Payment source updated | Customer updated card on file |
| 2 Jun, 10:59 | Dunning updated | Retry scheduled for Jun 3 |
| 1 Jun, 11:31 | Payment initiated ×4 | Manual attempts from admin console |
| 1 Jun, 03:59 | Invoice generated | INV-8831 — $42,180 |
Query ran correctly. This Chargebee site does not use the pause feature — zero subscription_paused events returned over 24 months. The query pattern is valid and confirmed against the event schema.
This works directly. Subscriptions filter by plan (item_id), by status, and by creation date (created_at), and each row returns its MRR. So per-plan customer counts, revenue, and churn all come straight from the connector.
| Plan | Active customers | MRR | Cancelled in window | Churn rate |
|---|---|---|---|---|
| Scale tier | 34 | $20,366 | 3 | 8.1% |
| Growth tier | 61 | $3,654 | 9 | 12.9% |
The whole funnel is native now. Bound the cohort with created_at for the month, then split by status: still in_trial, converted to active, or cancelled. Each converted subscription carries an activated_at that lines up with its trial_end, so you can see the conversion moment directly.
| Current status | Signal | Means |
|---|---|---|
| active | activated_at on or after trial_end | Converted to paid |
| cancelled | cancelled_at in window, never activated | Dropped off |
| in_trial | trial_end still in the future | Still deciding |
Each subscription returns its components two ways: a subscription_items array where every line is tagged item_type as plan, addon, or charge, and a dedicated addons array. So for any plan you can count how many of its subscriptions also carry an add-on. That ratio is the attach rate.
| Plan | Subscribers | With an add-on | Attach rate |
|---|---|---|---|
| Enterprise tier | 18 | 14 | 78% |
| Scale tier | 40 | 6 | 15% |
| Growth tier | 112 | 2 | 2% |
| Starter tier | 300+ | 0 | 0% |
Every subscription_changed event carries a source field, so you can see not just how many plan changes happened but what drove each one: an ops person in the admin console, the customer themselves through self-serve checkout, or an API call from your own systems.
| Source | Means | Share |
|---|---|---|
| admin_console | Ops or CS made the change manually | Majority |
| hosted_page | Customer changed plan themselves at checkout | Minority |
| api | Driven by your own integration | Occasional |
Each recipe below is a natural-language prompt you can paste into Claude, Cursor, ChatGPT, Codex, Claude Code, or Notion AI with the Chargebee MCP server connected. Grouped by pain area, with the team that usually asks and the question in plain language.
Usually asked by a CS rep mid-conversation.
How much does this customer still owe us? Do they have any open invoices?
Usually asked by whoever owns Collections.
Show me all payment failures in the last 60 days. Group by failure type and flag repeat offenders.
Usually asked by the team working dunning.
Which accounts are currently in dunning? Which are most likely to recover vs. likely lost?
Usually asked by Finance watching cash flow.
How long does this customer take to pay each invoice?
Usually asked by whoever is saving failed payments.
Which customers have a failed payment but are still technically active, so I can intervene before they auto-cancel?
Usually asked by a RevOps lead building a save list.
Pull all subscriptions marked non-renewing in the last 30 days. Rank them by ARR at risk.
Usually asked by a CFO digging into churn.
How much of our churn was preventable, triggered by payment failure, vs. customers who chose to leave?
Usually asked by RevOps before QBRs.
Which enterprise customers renewing in the next 90 days have billing problems?
Usually asked by a CFO testing a hunch.
Do 2+ payment failures predict churn? Show me the chain.
Usually asked by Sales planning win-backs.
Which churned customers in the last 6 months had the highest LTV?
Usually asked by Finance chasing missed credits.
Which annual-plan customers downgraded mid-cycle but never received a prorated credit note?
Usually asked by Finance closing the books.
Show me all credit notes issued in Q1 and Q2. Group by reason. Flag anything above $5,000 and flag customers who received more than one.
Usually asked by Finance sizing discount exposure.
Which customers are on heavy discounts? What does revenue look like if those coupons expire?
Usually asked by CS spotting upsell moments.
Which customers' promotional pricing ends in the next 60 days?
Usually asked by a CFO sizing risk.
What percentage of our MRR is in annual contracts vs. exposed to monthly churn?
Usually asked by Finance prepping the board.
Is our add-on revenue dangerously concentrated in a small number of customers?
Usually asked by a Support rep on a ticket.
A customer is disputing the tax on their invoice. Can you pull the details so I can respond?
Usually asked by a CS rep prepping a renewal.
Give me the full picture on Pulseboard: plan, add-ons, last payment, any failures, credits outstanding.
Usually asked by Support on a feature access request.
A support ticket is asking for access to a feature. Is the customer already entitled to it on their subscription?
Usually asked by a CS rep before a call.
I'm about to call this customer. What is their full billing history and net LTV?
Usually asked by a CS rep before emailing.
Before I email this customer, what has already happened on their account this week?
Usually asked by CS watching for abuse.
Which customers keep pausing during low-usage months to effectively get free time?
Usually asked by Finance and Product reviewing a launch.
We launched two new plans 90 days ago. How many customers are on each? What's the revenue and churn rate per plan?
Usually asked by a Growth PM watching trials.
Show me all trials that started in April. How many converted? How many dropped off?
Usually asked by Product and RevOps.
Which plans are natural upsell vehicles? Which are dead ends for add-on revenue?
Usually asked by a Product manager.
How many subscription changes happened in the last 90 days and what drove them?
Revenue Analytics. One prompt. One table. Every customer’s ARR over time.
Customer Health. A health score learned from your own churn, not a generic rule.
Collections Intelligence. One question. A collections call list ordered by risk, not size.
Finance Intelligence. One question. A complete board packet (ARR, NRR, churn, and cohorts) pulled from live data.
Reads every object in your Chargebee account live (subscriptions, invoices, payments, usage, and events) in response to a plain-English question.
Answer from your docs, API specs, and how-tos, grounded in Chargebee's own product knowledge.
Stand up the product catalog and billing setup conversationally, guided, not manual.
Lives inside your Chargebee dashboard. Ask billing questions, surface churn signals, and run revenue lookups without opening another tool.
Log in to Chargebee Billing. Go to Settings → Agentic AI → MCP Servers. Select the server you need and open its configuration page.
Under Access & Authentication → MCP Access, find your server URL. The format depends on your data center:
Replace data_lookup_agent with knowledge_base_agent or onboarding_agent depending on which server you connect.
For the Data Access and Onboarding servers, choose how your AI client authenticates:
The Knowledge Base server needs no authentication. It accesses public information only.
Use the configuration snippets from your server's Access & Authentication tab. Examples:
For API Key auth, add your key to the env block or Authorization header as shown in the Chargebee dashboard.
Connect the Chargebee MCP server to Claude, Cursor, ChatGPT, or Codex, and run your revenue operations.