[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 e-conomic draft invoices from a billing list

> Turn a monthly billing list into e-conomic draft invoices, create missing customers and review every draft before anything is booked.

Source: https://cotlet.dev/integrations/e-conomic-api-mcp-server/create-draft-invoices-from-a-list

At month end you have a spreadsheet with a customer, hours and a rate per row, and every row has to become an invoice that carries the right customer, payment terms and layout.

Cotlet does it in your own e-conomic account with list\_customers, create\_customer, list\_products and create\_draft\_invoice, called by your AI agent, an n8n workflow or a script.

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

Hosted · nothing to install or maintain

## Can e-conomic do this on its own?

e-conomic offers this through the REST API only (checked 14 Oct 2026). POST /invoices/drafts needs currency, customer, date, layout, payment terms and recipient, and creates a draft without booking it. The API needs a registered app and a grant token per agreement, and there is no MCP server, so an agent cannot do it today without custom code.

## How you do it in e-conomic today

1. In e-conomic an invoice starts as a draft: you pick the customer, set the date, currency and payment terms, and add product lines.
2. The draft stays editable until it is booked, and a booked invoice can no longer be edited.
3. A customer that is not in the register yet has to be created first, with currency, customer group, payment terms and VAT zone filled in.
4. The same fields are typed again for every row of the list, which is where a wrong payment term or a missed customer slips in.

## How to create e-conomic draft invoices from a billing list

Prompt

```
Here is this month's billing list. For each customer, create a draft invoice in e-conomic with the hours and rate I gave. Create customers that do not exist yet. Do not book anything.
```

1. 01  
### Match each row to a customer  
The agent reads the customer register once and matches your rows by name or VAT number. A row with no match is listed for you, and create\_customer runs only after you agree to the new customer.
2. 02  
### Take terms from the customer  
Currency, payment terms and VAT zone come from the customer record, so every draft for the same customer carries the same terms. The agent flags a row whose currency differs from the customer's.
3. 03  
### Map hours to a product line  
The agent finds the product that fits your description in list\_products and uses its number. If nothing fits, it writes a free-text line and says so in the report.
4. 04  
### Create drafts, never book  
create\_draft\_invoice runs once per customer with all lines in one draft. Drafts stay editable, so this step needs no OK from you.
5. 05  
### Check the totals  
The agent adds up your list and compares it with the draft totals. A difference is reported before you open e-conomic.

### What you get back

Example data

```
Rows in the list: 4, customers: 4
Drafts created: 3 (Nordlys ApS 118, Havn Design 119, Fjord Studio 120)
New customer needed: 1 (Birk & Co, not in the register, waiting for your OK)
Total net of drafts: DKK 3,450.00, matches the list
```

### Other ways to ask

- Create drafts from the timesheet export I paste, one draft per client, with one line per project.
- Every first of the month, copy last month's draft lines for my retainer clients into new drafts dated today.
- List the drafts from this list that have no product number on a line, but do not change them.

## What e-conomic allows, and what to know first

- POST /invoices/drafts requires currency, customer, date, layout, payment terms and a recipient with name and VAT zone.
- A customer needs currency, customer group, name, payment terms and VAT zone to be created, and gets the next customer number if you give none.
- A draft invoice is editable, and e-conomic documents that a booked invoice cannot be edited any more.
- The API can return a draft template based on an existing customer, and line templates built from products.

create\_customer and create\_draft\_invoice change only your own e-conomic data and reach no one else, so they run without asking first.

Sources: [e-conomic REST API documentation](https://restdocs.e-conomic.com/) · [e-conomic TechTalk: new functionality in invoices](https://techtalk.e-conomic.com/new-functionality-in-invoices-experimental-in-rest/) · [e-conomic Developer: Connect to the REST API](https://www.e-conomic.com/developer/connect)

## Call create\_draft\_invoice from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/e-conomic/customers/14/draft-invoices \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"date":"2026-10-31","currency":"DKK","payment_terms_number":2,"layout_number":1,"lines":[{"description":"Consulting, October","quantity":10,"unit_price":95},{"description":"Workshop day","quantity":1,"unit_price":250}]}'
```

Example response

```
{
"draft_invoice_number": 118,
"customer_number": 14,
"date": "2026-10-31",
"currency": "DKK",
"lines": 2,
"total_net": 1200,
"total_vat": 300,
"total_gross": 1500,
"booked": false
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is e\_conomic\_write → create\_draft\_invoice. Example data.

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

## e-conomic tools this automation uses

__Cotlet e-conomic tools used to create e-conomic draft invoices from a billing list__
| Tool | Parameters |
| ---------------------- | ----------------------------------------------------------------------------------------------------------- |
| list\_customers | name, limit, cursor |
| create\_customer | name, currency, customer\_group\_number, payment\_terms\_number, vat\_zone\_number, email, customer\_number |
| list\_products | name, limit, cursor |
| create\_draft\_invoice | customer\_number, date, currency, payment\_terms\_number, layout\_number, lines |

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

## Frequently asked questions

### Is it safe to connect e-conomic to Cotlet?

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

- [Book and send e-conomic draft invoices](https://cotlet.dev/integrations/e-conomic-api-mcp-server/book-and-send-draft-invoices.md)
- [Post recurring e-conomic bookkeeping vouchers](https://cotlet.dev/integrations/e-conomic-api-mcp-server/post-recurring-vouchers.md)
- [e-conomic API and MCP server: every tool](https://cotlet.dev/integrations/e-conomic-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to e-conomic.

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

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

---

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.
