[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)

# Create invoice

> Create an invoice for a client, with lines, VAT and a due date. Inputs, cURL, Python and Node.js examples and an example response.

Source: https://cotlet.dev/docs/api/fatture-in-cloud/create_invoice

Docs sections: [Get started](https://cotlet.dev/docs.md) · [REST API](https://cotlet.dev/docs/api.md) · [MCP](https://cotlet.dev/docs/mcp.md) · [SDKs & CLI](https://cotlet.dev/docs/sdks.md) · [Integrations](https://cotlet.dev/docs/integrations.md)

Create an invoice for a client, with lines, VAT and a due date.

Fatture in Cloud API: https://cotlet.dev/docs/api/fatture-in-cloud.md

`POST https://cotlet.dev/api/v1/fatture-in-cloud/clients/{client_id}/invoices`

Access: write. Confirm: waits for the user's OK before it runs.

Creates an invoice, auto-numbered when no number is given, and returns its ID, totals and e-invoice status. Totals are net, VAT and gross, and the due date becomes the payment due date. Creating the invoice does not send it to SDI; use send_einvoice for that. By default you confirm each call; you can switch that off for this tool.

## Parameters

| Name | Type | Required | Description |
|---|---|---|---|
| `company_id` | integer | no | Company ID. Optional when your account has one company. |
| `client_id` | integer | yes | Client ID from list_clients or create_client. |
| `date` | string | yes | Invoice date, ISO. |
| `subject` | string | no | Subject shown on the invoice. |
| `e_invoice` | boolean | no | true issues it as an electronic invoice. Default: false. |
| `lines` | array | yes | Objects with description, quantity, net_price and vat_percent. |
| `due_date` | string | no | Payment due date, ISO. |

## Request

**cURL**

```bash
curl -X POST https://cotlet.dev/api/v1/fatture-in-cloud/clients/5107/invoices \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"2026-10-31","subject":"October consulting","e_invoice":true,"lines":[{"description":"Consulting, 10 hours","quantity":10,"net_price":150,"vat_percent":22}],"due_date":"2026-11-30"}'
```

**Python**

```python
result = client.call("fatture-in-cloud", "create_invoice", {"client_id":5107,"date":"2026-10-31","subject":"October consulting","e_invoice":True,"lines":[{"description":"Consulting, 10 hours","quantity":10,"net_price":150,"vat_percent":22}],"due_date":"2026-11-30"})
```

**Node.js**

```js
const result = await cotlet.call('fatture-in-cloud', 'create_invoice', {"client_id":5107,"date":"2026-10-31","subject":"October consulting","e_invoice":true,"lines":[{"description":"Consulting, 10 hours","quantity":10,"net_price":150,"vat_percent":22}],"due_date":"2026-11-30"});
```

**CLI**

```bash
cotlet call fatture-in-cloud create_invoice --data '{"client_id":5107,"date":"2026-10-31","subject":"October consulting","e_invoice":true,"lines":[{"description":"Consulting, 10 hours","quantity":10,"net_price":150,"vat_percent":22}],"due_date":"2026-11-30"}'
```

## Example response

```json
{
  "id": 88120,
  "number": 14,
  "date": "2026-10-31",
  "client_id": 5107,
  "e_invoice": true,
  "ei_status": "not_sent",
  "amount_net": 1500,
  "amount_vat": 330,
  "amount_gross": 1830,
  "due_date": "2026-11-30"
}
```

Previous: [Create client](https://cotlet.dev/docs/api/fatture-in-cloud/create_client.md)
Next: [Send e-invoice to SDI](https://cotlet.dev/docs/api/fatture-in-cloud/send_einvoice.md)

---

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.
