[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 Facturama credit notes for returns and discounts

> Issue a Facturama credit note (CFDI de egreso) against an invoice for a return or discount, check the amounts first and email it to the client.

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

A client returns part of an order or you agree a discount after invoicing, and the original invoice stays as it is, so a credit note has to correct the amount.

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

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

Hosted · nothing to install or maintain

## Can Facturama do this on its own?

Facturama documents credit notes in its API, and issuing them there needs the API module and API folios (checked 14 Oct 2026). The API page does not list the fields, and Facturama has no MCP server to do it from an agent.

## How you do it in Facturama today

1. You sign in to Facturama in the browser and find the invoice the credit note belongs to.
2. You issue a CFDI de egreso, the credit note, which Facturama describes as the document for returns, discounts and bonuses.
3. You enter the amount to credit and Facturama stamps it like any other CFDI.
4. You send the credit note to the client by email and download its PDF and XML.
5. You check by eye that the credit fits the invoice it corrects.

## How to issue Facturama credit notes for returns and discounts

Prompt

```
Client Estudio Norte returned one hour of work on invoice FAC-101. Issue a credit note for 500 pesos plus IVA against that invoice and email it to them.
```

1. 01  
### Read the original invoice  
get\_invoice returns the stamped total, the lines and the UUID of the invoice you name. The agent stops if that invoice is cancelled or not found.
2. 02  
### Compare the credit with the invoice  
The agent checks that the amount you ask to credit, plus IVA, is not above the invoice total, and reports the maximum if it is.
3. 03  
### Show the amounts before stamping  
You see subtotal, IVA and total of the credit note before create\_credit\_note runs, because a stamped CFDI is a legal tax act.
4. 04  
### Stamp and report  
create\_credit\_note issues the CFDI de egreso related to the invoice and returns its series, folio and UUID.
5. 05  
### Send it to the same client  
email\_invoice sends the credit note to the address on the original invoice unless you name another.

### What you get back

Example data

```
Original: FAC-101, total 1,160.00 MXN
Credit note: NC-12, 500.00 + IVA 80.00 = 580.00 MXN
Remaining on FAC-101 after credit: 580.00 MXN
Emailed to: billing@estudionorte.example
```

### Other ways to ask

- Credit Estudio Norte 10 percent on invoice FAC-101 as a discount and show me the amounts first.
- List the credit notes I issued this month and the invoices they relate to.
- Issue credit notes for these three returns from my sheet, one per invoice, and email the clients.

## What Facturama allows, and what to know first

- A CFDI de egreso, also called a credit note, covers returns, discounts and bonuses (Facturama).
- A credit note is tied to an Ingreso invoice and reduces the amount of the invoice it corrects.
- Issuing CFDI through the API needs the API module and prepaid API folios; the web app uses your invoicing folios.
- A credit note is stamped like an invoice, so it is a legal tax act and cannot be edited afterwards.

create\_credit\_note and email\_invoice ask for your OK by default. To run it on a schedule without you, switch confirmation off for those tools in your dashboard.

Sources: [Facturama: credit note API](https://facturama.mx/api/nota-de-credito) · [Facturama: plans and prices](https://facturama.mx/planes-facturacion) · [Facturama docs: first invoice](https://facturama.mx/docs/es/guias/primera-factura)

## Call create\_credit\_note from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/facturama/invoices/Y61TLX-Ls_ZJFqzjanPN1w2/credit-notes \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"items":[{"description":"Returned: design review hour","quantity":1,"unit_price":500,"tax_rate":0.16}]}'
```

Example response

```
{
"invoice_id": "Zq8RkV-aT2mNpLw4xYb7Hc1",
"series": "NC",
"folio": "12",
"uuid": "0b7d44e1-92af-4c36-8d10-5ea7c3f19b02",
"cfdi_type": "egreso",
"status": "issued",
"related_invoice_id": "Y61TLX-Ls_ZJFqzjanPN1w2",
"items": [
{
"description": "Returned: design review hour",
"quantity": 1,
"unit_price": 500,
"subtotal": 500,
"tax_rate": 0.16,
"tax": 80,
"total": 580
}
],
"subtotal": 500,
"tax_total": 80,
"total": 580,
"currency": "MXN"
}
```

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

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

## Facturama tools this automation uses

__Cotlet Facturama tools used to issue Facturama credit notes for returns and discounts__
| Tool | Parameters |
| -------------------- | -------------------------- |
| get\_invoice | invoice\_id |
| create\_credit\_note | invoice\_id, items, series |
| email\_invoice | invoice\_id, emails |

[All 11 Facturama tools with descriptions](https://cotlet.dev/integrations/facturama-api-mcp-server.md#tools)

## Frequently asked questions

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

Yes. You sign in to Facturama yourself, in your own Cloud Browser in the EU, and we never save your password. Your agents only get Facturama 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 Facturama automations

- [Issue Facturama CFDI invoices from a list of jobs](https://cotlet.dev/integrations/facturama-api-mcp-server/issue-cfdi-invoices-from-jobs.md)
- [Collect your monthly Facturama CFDI XML and PDF files](https://cotlet.dev/integrations/facturama-api-mcp-server/monthly-cfdi-xml-pdf-for-accountant.md)
- [Facturama API and MCP server: every tool](https://cotlet.dev/integrations/facturama-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to Facturama.

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

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

---

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.
