[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 CFDI invoices from a list of jobs

> Turn a list of finished jobs into stamped Facturama CFDI 4.0 invoices, one per client, and email each one. Runs weekly with your OK.

Source: https://cotlet.dev/integrations/facturama-api-mcp-server/issue-cfdi-invoices-from-jobs

At the end of the week you have a list of finished jobs, and each row still has to become a CFDI 4.0 invoice with the right client RFC, tax regime and IVA, then reach the client by email.

Cotlet does it in your own Facturama account with list\_clients, create\_client, create\_invoice 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's API issues CFDI 4.0 invoices once you buy the API module and prepaid API folios (checked 14 Oct 2026). Facturama has no MCP server, and no Facturama feature builds invoices from a list of jobs.

## How you do it in Facturama today

1. You sign in to Facturama in the browser (Iniciar sesión) with the account that holds your invoicing folios.
2. You find the client in your client catalog, which Facturama keeps so you can invoice quickly, or add the client first.
3. You add the product or service lines, check the amounts and issue the CFDI 4.0 invoice, which Facturama stamps for the SAT.
4. You send the invoice to the client by email from Facturama and download the PDF and XML if you want your own copy.
5. You repeat this for every client, and a skipped row is a late invoice.

## How to issue Facturama CFDI invoices from a list of jobs

Prompt

```
Here are this week's finished jobs. For each client, find them in Facturama (create the client if missing, and tell me), issue one CFDI invoice with 16% IVA, and email it to the client.
```

1. 01  
### Match each client first  
The agent looks every client name up with list\_clients. A name with no match or with two close matches goes on your list, and a client is created only when the RFC, name and tax details are in your prompt or files.
2. 02  
### Check the receiver data  
Before stamping, the agent confirms that each client has an RFC, a CFDI use, a tax zip code and a fiscal regime, the fields Facturama's own invoice example sends for the receiver. A client missing one is reported instead of guessed.
3. 03  
### Group rows into one invoice per client  
Rows for the same client share one invoice, each with its quantity and unit price. The agent adds the 16% IVA line you asked for and shows subtotal, tax and total for your OK before create\_invoice runs.
4. 04  
### Stamp, then read back the folio  
create\_invoice stamps the invoice with the SAT, so there is no draft stage. The agent reports the series, folio and UUID Facturama returns for every invoice.
5. 05  
### Email only after the stamp  
email\_invoice runs for the invoices that were stamped, to the address you gave. A stamp that failed is reported once and never retried on its own.

### What you get back

Example data

```
Rows in the list: 3 across 2 clients
Stamped: 2
- Estudio Norte SA de CV: FAC-101, 2 x 500.00 + IVA 160.00 = 1,160.00 MXN
- Clinica Alba SC: FAC-102, 1 x 800.00 + IVA 128.00 = 928.00 MXN
Emailed: 2
Needs you: 0 clients with missing RFC or fiscal regime
```

### Other ways to ask

- Issue one invoice for Estudio Norte with 2 hours of design review at 500 pesos plus IVA, but ask me before stamping.
- Every Friday, invoice the jobs in this sheet and email me a summary instead of emailing clients.
- Add Clinica Alba as a client from this constancia de situación fiscal and invoice its two jobs.
- Re-send the invoices I issued on Monday to the clients that did not get them.

## What Facturama allows, and what to know first

- Facturama stamps CFDI 4.0 invoices for the SAT, and each stamp uses one folio from your plan.
- Folios bought for the API only work through the API; the invoicing plan has its own folios.
- The receiver of a CFDI 4.0 invoice carries an RFC, a name, a CFDI use, a tax zip code and a fiscal regime in Facturama's invoice example.
- The Facturama response identifies an invoice by Id, Folio and series, and the UUID sits under Complement.TaxStamp.Uuid.
- A stamped invoice is a legal tax act, so a wrong one is fixed by cancelling it or by a credit note, not by editing it.

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

Sources: [Facturama: online electronic invoicing](https://facturama.mx/facturacion) · [Facturama docs: first invoice](https://facturama.mx/docs/es/guias/primera-factura) · [Facturama: plans and prices](https://facturama.mx/planes-facturacion) · [Facturama: API overview](https://facturama.mx/api-facturacion-electronica)

## Call create\_invoice from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/facturama/clients/cl_4821/invoices \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"items":[{"description":"Design review hour","quantity":2,"unit_price":500,"tax_rate":0.16}],"payment_form":"transfer","payment_method":"single payment"}'
```

Example response

```
{
"invoice_id": "Y61TLX-Ls_ZJFqzjanPN1w2",
"series": "FAC",
"folio": "101",
"uuid": "6f1c2a90-3b7e-4d55-9a1e-0c52b8e4d7a1",
"cfdi_type": "ingreso",
"status": "issued",
"issued_at": "2026-10-14T10:32:00-06:00",
"client": {
"client_id": "cl_4821",
"rfc": "XAXX010101000",
"name": "Estudio Norte SA de CV"
},
"items": [
{
"description": "Design review hour",
"quantity": 2,
"unit_price": 500,
"subtotal": 1000,
"tax_rate": 0.16,
"tax": 160,
"total": 1160
}
],
"subtotal": 1000,
"tax_total": 160,
"total": 1160,
"currency": "MXN"
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is facturama\_write → create\_invoice. 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 CFDI invoices from a list of jobs__
| Tool | Parameters |
| --------------- | ----------------------------------------------------------- |
| list\_clients | search, limit, cursor |
| create\_client | rfc, name, cfdi\_use, tax\_zip\_code, fiscal\_regime, email |
| create\_invoice | client\_id, items, payment\_form, payment\_method, 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 credit notes for returns and discounts](https://cotlet.dev/integrations/facturama-api-mcp-server/issue-credit-notes.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.
