[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 and send Procountor sales invoices

> Create a Procountor sales invoice from a prompt, check the totals, then approve and send it from Claude Code, n8n or a script. Nothing to maintain.

Source: https://cotlet.dev/integrations/procountor-api-mcp-server/create-and-send-sales-invoices

After a project closes, someone opens New > Sales invoice, finds the customer, types the rows, saves, approves and sends, then repeats it for the next client.

Cotlet does it in your own Procountor account with list\_partners, create\_sales\_invoice, approve\_sales\_invoice and send\_sales\_invoice, called by your AI agent, an n8n workflow or a script.

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

Hosted · nothing to install or maintain

## Can Procountor do this on its own?

Procountor offers two routes (checked 14 Oct 2026). The app does it by hand in the New sales invoice view, and the REST API has POST /invoices for software vendors with client credentials and production access. It has no MCP server, so an agent needs your own integration code first.

## How you do it in Procountor today

1. Open New > Sales invoice and click Search customer to pick the register customer; without one, the invoice is not linked to the customer register.
2. In Invoice row info click Get products to add register products, or insert rows manually; manually added rows are not linked to the product register and do not show in product reports.
3. Click Create a new invoice to open Invoice view, check the invoice date and the due date that Procountor calculates from the payment terms, then click Save, which generates the invoice number.
4. Use Preview to check the layout, click Approve once the details are right, then click Send.
5. Every new invoice repeats the same eight clicks, and Send is a separate step that is easy to forget.

## How to create and send Procountor sales invoices

Prompt

```
Create a Procountor sales invoice for Nordic Print Oy: 10 hours of consulting at 80.00 EUR plus VAT, dated today. Save it, show me the totals, and after my OK approve and send it.
```

1. 01  
### Find the customer in the register  
Your agent looks the customer up with list\_partners first, so the invoice links to a register customer and takes its defaults. If two partners match the name, it asks you which one instead of guessing.
2. 02  
### Build rows and save as Unfinished  
create\_sales\_invoice saves the invoice, which Procountor numbers on save. It stays Unfinished, still editable and not yet counted in tax reports, and the agent returns the net, VAT and gross totals.
3. 03  
### Stop at the totals  
You see the totals and the due date before anything is final. A wrong row is fixed now, because a Sent invoice can only be corrected with a credit invoice and a new invoice.
4. 04  
### Approve, then send  
approve\_sales\_invoice moves the invoice to Not sent. send\_sales\_invoice then queues it on the invoice channel set for the customer. Both ask for your OK by default.
5. 05  
### Report the outcome  
The agent returns the invoice number, the final status and the send date, so you can see in one line whether it left today or waits for the scheduled dispatch.

### What you get back

Example data

```
Invoice 10482 for Nordic Print Oy
Rows: Consulting, 10 h x 80.00 = 800.00 EUR
VAT 25.5%: 204.00 EUR, total 1,004.00 EUR
Due date: 2026-10-28
Status: Sent, invoice channel as set on the customer
```

### Other ways to ask

- Create the same invoice for each customer in this list, save them all as Unfinished and wait for my OK before approving.
- Copy last month's invoice to Nordic Print Oy with the new date and send it.
- Create the invoice but do not send it, I will send it after my accountant checks the preview.
- Every Friday, invoice the hours from this timesheet export to the matching customers.

## What Procountor allows, and what to know first

- Procountor generates the invoice number when you click Save, before the invoice is approved or sent.
- A Sent invoice is locked: it cannot be changed or invalidated, and an error is corrected with a credit invoice followed by a new invoice.
- An approved invoice that has not been sent has the status Not sent, and Procountor counts it in Accounting Act and tax reports.
- After Send, Procountor dispatches the invoice automatically three days before the invoice date, or immediately if the date is today, within three days or in the past.
- The invoice due date is calculated from the invoice date and the payment terms and can be changed in Payment info.

create\_sales\_invoice, approve\_sales\_invoice and send\_sales\_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: [Procountor Help: Creating a new sales invoice](https://help.procountor.fi/en/articles/531586-creating-a-new-sales-invoice) · [Procountor Help: Sales invoice and order statuses](https://help.procountor.fi/en/articles/531676-sales-invoice-and-order-statuses) · [Procountor Help: Approval and sending of multiple sales invoices](https://help.procountor.fi/en/articles/531747-approval-and-sending-of-multiple-sales-invoices) · [Procountor API: general information](https://dev.procountor.com/general-information/)

## Call create\_sales\_invoice from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/procountor/partners/bp_20417/sales-invoices \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"invoice_date":"2026-10-14","rows":[{"name":"Consulting","quantity":10,"unit_price":80,"vat_percent":25.5}]}'
```

Example response

```
{
"invoice_id": "si_10482",
"number": "10482",
"customer": "Nordic Print Oy",
"status": "unfinished",
"invoice_date": "2026-10-14",
"due_date": "2026-10-28",
"currency": "EUR",
"net_total": 800,
"vat_total": 204,
"total": 1004
}
```

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

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

## Procountor tools this automation uses

__Cotlet Procountor tools used to create and send Procountor sales invoices__
| Tool | Parameters |
| ----------------------- | -------------------------------------------------- |
| list\_partners | query, type, limit, cursor |
| create\_sales\_invoice | partner\_id, invoice\_date, rows, additional\_info |
| approve\_sales\_invoice | invoice\_id |
| send\_sales\_invoice | invoice\_id |

[All 15 Procountor tools with descriptions](https://cotlet.dev/integrations/procountor-api-mcp-server.md#tools)

## Frequently asked questions

### Can the agent invoice a customer that is not in the register?

It can create the partner first with create\_partner. Procountor itself allows an invoice without a register customer, but then the invoice is not linked to the customer register, so the agent adds the partner first.

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

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

- [Verify and approve Procountor purchase invoices](https://cotlet.dev/integrations/procountor-api-mcp-server/approve-purchase-invoices.md)
- [List unpaid Procountor sales invoices every week](https://cotlet.dev/integrations/procountor-api-mcp-server/list-unpaid-invoices.md)
- [Procountor API and MCP server: every tool](https://cotlet.dev/integrations/procountor-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to Procountor.

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

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

---

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.
