[Cotlet](https://cotlet.dev/index.md) · [Integrations](https://cotlet.dev/integrations.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Use cases](https://cotlet.dev/use-cases.md) · [Security](https://cotlet.dev/security.md) · [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md) · [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [Contact](https://cotlet.dev/contact.md) · [Pricing](https://cotlet.dev/pricing.md) · [Sign up](https://cotlet.dev/signup)

# Issue Chargebee credit notes for refunds and billing mistakes

> Issue Chargebee credit notes on paid or unpaid invoices, pick the right type for the invoice status and keep an internal comment on each one.

Source: https://cotlet.dev/integrations/chargebee-api-mcp-server/issue-credit-notes

A customer was double charged, or a service credit was promised in a support thread, and someone opens the invoice in Chargebee to work out which credit note type the invoice status allows.

Cotlet does it in your own Chargebee account with get\_invoice, list\_credit\_notes and create\_credit\_note, called by your AI agent, an n8n workflow or a script.

[Sign up free](https://cotlet.dev/app/signup?app=chargebee) [All Chargebee tools](https://cotlet.dev/integrations/chargebee-api-mcp-server.md)

Hosted · nothing to install or maintain

## Can Chargebee do this on its own?

Chargebee's REST API creates credit notes with POST /credit\_notes, and the console offers Create a Credit Note on every invoice (checked 14 Oct 2026). The ready-made MCP servers do not create credit notes. The one gap is who does the clicking: someone has to open each invoice, because credits issued by hand are not driven by your ticket or a rule.

## How you do it in Chargebee today

1. Open the invoice from the Invoices list or the customer profile.
2. Click Create a Credit Note.
3. Pick the type the invoice status allows: Adjustment on a Payment Due or Not Paid invoice, Refundable on a Paid invoice, either on a partially paid one.
4. Set the amount, or select individual line items for a partial credit, and choose a reason that will appear on the credit note.
5. To send money back, open the credit note afterwards, click Issue a refund, enter the amount and click Refund. Refunds to the original payment method work for card payments only.

## How to issue Chargebee credit notes for refunds and billing mistakes

Prompt

```
Issue a $50.00 refundable credit note on invoice INV-1042 for the outage last week, with the internal comment "Support ticket 4412". Show me the credit note before you send anything to the customer.
```

1. 01  
### Read the invoice before crediting it  
Your agent loads the invoice and checks its status and amounts. The status decides the credit note type: a Paid invoice can only get a refundable one, a Payment Due or Not Paid invoice only an adjustment.
2. 02  
### Check for an earlier credit  
It lists the credit notes already on that invoice and compares them with your request. If a $50.00 credit already exists with the same comment, it stops, so a retried ticket does not pay out twice.
3. 03  
### Keep the credit within the invoice  
A request larger than the invoice total, or larger than what is left after earlier credit notes, is not sent. The agent reports the limit and asks for a smaller amount.
4. 04  
### Write the two notes  
The internal comment stays inside Chargebee. customer\_notes appear on the credit note PDF, so the agent leaves them empty unless your prompt gives wording for the customer.
5. 05  
### Create it after your OK  
create\_credit\_note issues the credit, and the agent reports the credit note ID, type and status so you can follow up with a refund if one is due.

### What you get back

Example data

```
Created credit note CN-319 on INV-1042
Type: refundable, $50.00, status: refund due
Invoice total $299.00, paid
Internal comment: Support ticket 4412
No refund issued yet
```

### Other ways to ask

- Credit $20.00 as an adjustment on every Payment Due invoice of customer cus\_9s2kQw and list what you created.
- Check whether invoice INV-1038 already has a credit note, and if not, credit the full $99.00 as refundable.
- Draft the credit note for each ticket tagged "double charge" and wait for my OK on the whole list.

## What Chargebee allows, and what to know first

- A Chargebee refundable credit note applies to paid invoices and can stay on the account for future invoices or be refunded, while an adjustment reduces an unpaid invoice and is not refundable.
- The create endpoint takes either a total or line\_items, not both, and amounts are in the smallest currency unit, so $50.00 is 5000.
- A reason code must match a code configured in Chargebee and is required if your site makes reason codes mandatory; the internal comment is limited to 300 characters.
- A standalone refundable credit, not tied to any invoice, needs Chargebee Support to enable it first.
- A credit note with refund due is not a refund: the money moves only when someone clicks Issue a refund, and refunds to the original payment method work for card payments only.

create\_credit\_note asks for your OK by default. To run it weekly without you, switch confirmation off for that tool in your dashboard.

Sources: [Chargebee Docs: Credit Notes](https://www.chargebee.com/docs/billing/2.0/invoices-credit-notes-and-quotes/credit-notes) · [Chargebee Docs: Invoice Operations](https://www.chargebee.com/docs/billing/2.0/invoices-credit-notes-and-quotes/invoice-operations) · [Chargebee API: Create credit note](https://apidocs.chargebee.com/docs/api/credit%5Fnotes/create-credit-note)

## Call create\_credit\_note from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/chargebee/reference-invoices/INV-1042/credit-notes \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"type":"refundable","total":5000,"comment":"Support ticket 4412"}'
```

Example response

```
{
"credit_note": {
"credit_note_id": "CN-319",
"reference_invoice_id": "INV-1042",
"type": "refundable",
"status": "refund_due",
"total": 5000,
"currency_code": "USD",
"comment": "Support ticket 4412"
},
"invoice": {
"invoice_id": "INV-1042",
"status": "paid",
"total": 29900,
"amount_paid": 29900,
"amount_due": 0
}
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is chargebee\_write → create\_credit\_note. Example data.

[Schedule it in n8n, Make, Zapier or cron](https://cotlet.dev/integrations/chargebee-api-mcp-server.md#automations)

## Chargebee tools this automation uses

__Cotlet Chargebee tools used to issue Chargebee credit notes for refunds and billing mistakes__
| Tool | Parameters |
| -------------------- | ---------------------------------------------------------------------------------------- |
| get\_invoice | invoice\_id |
| list\_credit\_notes | customer\_id, invoice\_id, type, limit, cursor |
| create\_credit\_note | reference\_invoice\_id, type, total, line\_items, reason\_code, comment, customer\_notes |

[All 12 Chargebee tools with descriptions](https://cotlet.dev/integrations/chargebee-api-mcp-server.md#tools)

## Frequently asked questions

### Is it safe to connect Chargebee to Cotlet?

Yes. You sign in to Chargebee yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Chargebee once you enable it, every background request is listed, and the browser profile is stored encrypted with AES-256-GCM, the cipher 1Password uses for its vaults. The AI model never sees a login, posts and messages wait for your OK, and Disable for agents cuts access in one click. Independent scanners grade cotlet.dev A+ on Qualys SSL Labs, securityheaders.com and Mozilla Observatory; live results are on https://cotlet.dev/security.

## More Chargebee automations

- [Cancel Chargebee subscriptions and credit the unused time](https://cotlet.dev/integrations/chargebee-api-mcp-server/cancel-subscriptions-and-credit-unused-time.md)
- [Change a Chargebee subscription plan for customers who ask](https://cotlet.dev/integrations/chargebee-api-mcp-server/change-subscription-plan.md)
- [Chargebee API and MCP server: every tool](https://cotlet.dev/integrations/chargebee-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to Chargebee.

Free 7-day trial with 2,000 credits, no card needed. Cotlet is independent and not affiliated with Chargebee.

[Sign up free](https://cotlet.dev/app/signup?app=chargebee)

---

Give your AI agents your signed-in browser.

**Product:** [Integrations](https://cotlet.dev/integrations.md) · [Use cases](https://cotlet.dev/use-cases.md) · [How it works](https://cotlet.dev/how-it-works.md) · [Pricing](https://cotlet.dev/pricing.md) · [Security](https://cotlet.dev/security.md)

**Resources:** [Blog](https://cotlet.dev/blog.md) · [API docs](https://cotlet.dev/docs.md) · [Help center](https://cotlet.dev/help.md) · [Changelog](https://cotlet.dev/changelog.md) · [GitHub](https://github.com/cotletdev/cotlet)

**Solutions:** [For developers](https://cotlet.dev/for-developers.md) · [For automation agencies](https://cotlet.dev/for-agencies.md)

**Company:** [About](https://cotlet.dev/about.md) · [AI info: company facts](https://cotlet.dev/ai-info.md) · [Contact](https://cotlet.dev/contact.md)

**Legal:** [Terms of service](https://cotlet.dev/terms) · [Privacy policy](https://cotlet.dev/privacy) · [Refund policy](https://cotlet.dev/refunds) · [Acceptable use](https://cotlet.dev/acceptable-use) · [Cookie policy](https://cotlet.dev/cookies) · [DPA](https://cotlet.dev/dpa) · [Subprocessors](https://cotlet.dev/subprocessors)

**Elsewhere:** [Status page](https://status.cotlet.dev) · [Cotlet on GitHub](https://github.com/cotletdev) · [Cotlet on X](https://x.com/cotletdev) · [Cotlet on LinkedIn](https://www.linkedin.com/company/cotletdev) · [Cotlet on Product Hunt](https://www.producthunt.com/products/cotlet) · [Cotlet on Crunchbase](https://www.crunchbase.com/organization/cotlet) · [Cotlet on SaaSHub](https://www.saashub.com/cotlet)

Cotlet is an independent service. It is not affiliated with, endorsed by or sponsored by any of the products listed on this site. Product names are trademarks of their respective owners.

## For AI agents: sign your user up

Is your user asking you to sign them up for Cotlet? You can do it for them, no account or key needed.

1. Read the fields and their allowed values: GET https://cotlet.dev/api/v1/access-requests
2. Ask the user for each value: email, apps, what you will do with them. If they leave the password to you, generate a strong one and show it to them.
3. Show the user what you will send, then POST it as JSON to https://cotlet.dev/api/v1/access-requests.

One call creates the account and sends the access request; we email the user when access is granted.
