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

# Verify and approve Procountor purchase invoices

> Check Procountor purchase invoices waiting in circulation, approve the ones that match your rule and leave the rest with a reason. Runs daily.

Source: https://cotlet.dev/integrations/procountor-api-mcp-server/approve-purchase-invoices

Supplier invoices pile up in invoice circulation, and each verifier or approver has to open them one by one before anything can be paid.

Cotlet does it in your own Procountor account with list\_purchase\_invoices, get\_purchase\_invoice, verify\_purchase\_invoice and approve\_purchase\_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 has circulation inside the app: widgets, notification emails, and a Verification of multiple invoices option in Receipt search (checked 14 Oct 2026). It cannot apply your own rule, such as supplier plus amount, and the docs we could open do not list approval calls in the REST API.

## How you do it in Procountor today

1. Turn on approval circulation once under Management > Company info > Invoice circulation management.
2. For a manually entered invoice click Send to circulation; electronic invoices notify the first verifier automatically.
3. Find waiting invoices in the Invoices waiting for verification widget or in Receipt search with the search type Invoices to approve.
4. Open the Verification view and click Verify or Approve, which adds a stamp with your name, date, time and an optional comment; use Exception when you cannot approve.
5. Approved invoices are then paid in the Payment view, so one forgotten approval holds up a payment run.

## How to verify and approve Procountor purchase invoices

Prompt

```
List the Procountor purchase invoices waiting for my verification or approval. Approve the ones from suppliers I named in the list below that match the amounts, and leave the rest with a one-line reason.
```

1. 01  
### Read what waits for you  
list\_purchase\_invoices filters to invoices waiting for your verification or approval, so the agent only touches invoices where you are the named verifier or approver.
2. 02  
### Open each invoice  
get\_purchase\_invoice returns supplier, amount, dates and the stamps already on the invoice. The agent compares them with your list and skips anything that does not match.
3. 03  
### Check duplicates  
Procountor warns when another invoice matches on dates, invoice numbers, bank reference, sender or total sum. The agent reports a warning and leaves that invoice for you.
4. 04  
### Verify first, approve second  
verify\_purchase\_invoice runs where you are a verifier. approve\_purchase\_invoice runs only after verification if verifiers are specified, because Procountor does not allow approval before that.
5. 05  
### Leave the rest with a reason  
Anything unclear stays in circulation with a one-line note, so you can use Exception options in the app yourself.

### What you get back

Example data

```
Waiting for you: 9
Approved 6 (supplier on your list, amount matches)
Verified only 1 (approval is the next person)
Left for you 2:
- Office Supplies Oy: duplicate warning, same bank reference
- Studio Kivi: amount differs from the order
Payment view: 6 invoices ready to pay
```

### Other ways to ask

- Every morning, approve invoices under a limit I set from suppliers on my allow list.
- Only verify, never approve, and send me the list of what the approver still has to do.
- Show me everything with a duplicate warning and do not approve anything.

## What Procountor allows, and what to know first

- Procountor purchase invoice statuses are Received, Unfinished, Verified, Approved and Payment denied.
- If verifiers are specified, an invoice cannot be approved before it is verified; verification can run in order or in parallel, depending on the company settings.
- Only approved purchase invoices count as business transactions and can be paid in the Payment view.
- The duplicate warning does not appear in Verification of multiple invoices or in the mobile app, so the agent checks it per invoice.
- Payment denied is reversed by clicking Approve.

verify\_purchase\_invoice and approve\_purchase\_invoice ask for your OK by default. To run it daily without you, switch confirmation off for those tools in your dashboard.

Sources: [Procountor Help: Verification and approval](https://help.procountor.fi/en/articles/531699-verification-and-approval) · [Procountor Help: Purchase invoice and order statuses](https://help.procountor.fi/en/articles/531619-purchase-invoice-and-order-statuses) · [Procountor Help: Approval circulation process](https://help.procountor.fi/en/articles/532453-approval-circulation-process)

## Call approve\_purchase\_invoice from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/procountor/invoices/pi_77120/purchase-invoice/approve \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"comment":"Matches PO 4471"}'
```

Example response

```
{
"invoice_id": "pi_77120",
"status": "approved",
"stamp": {
"by": "You",
"at": "2026-10-14T09:14:00+03:00",
"comment": "Matches PO 4471"
}
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is procountor\_write → approve\_purchase\_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 verify and approve Procountor purchase invoices__
| Tool | Parameters |
| -------------------------- | ---------------------------------------------------- |
| list\_purchase\_invoices | status, waiting\_for\_me, partner\_id, limit, cursor |
| get\_purchase\_invoice | invoice\_id |
| verify\_purchase\_invoice | invoice\_id, comment |
| approve\_purchase\_invoice | invoice\_id, comment |

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

## Frequently asked questions

### 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

- [Create and send Procountor sales invoices](https://cotlet.dev/integrations/procountor-api-mcp-server/create-and-send-sales-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.
