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

# Digitize receipts in sevdesk and mark them paid

> Upload supplier receipts to sevdesk as drafts, then match each one to its bank transaction and mark it paid after your OK.

Source: https://cotlet.dev/integrations/sevdesk-api-mcp-server/digitize-receipts

The receipts pile up in a folder or an inbox, and each one needs to be uploaded to Belege, checked, and later tied to the bank transaction that paid it.

Cotlet does it in your own sevdesk account with upload\_receipt, list\_vouchers, list\_payment\_accounts, list\_bank\_transactions and mark\_voucher\_paid, called by your AI agent, an n8n workflow or a script.

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

Hosted · nothing to install or maintain

## Can sevdesk do this on its own?

sevdesk takes receipts by form, drag-and-drop, app and the Autobox email address, and recognizes the data on upload (checked 14 Oct 2026). The API offers uploadTempFile and saveVoucher on the Buchhaltung Pro plan. Nothing in sevdesk walks a folder for you or asks before it marks a receipt as paid.

## How you do it in sevdesk today

1. Go to Belege and click Ausgabe erfassen, or use the arrow next to it and choose Einnahme erfassen.
2. Upload the file on the left. sevdesk starts the automatic receipt recognition and tries to fill date, amount, receipt number, supplier and category.
3. Check the fields on the right, choose the Kategorie (booking account) and the Umsatzsteuerregelung, and save.
4. Drag a whole folder into the Belege overview instead if you only want drafts: sevdesk saves each file as a draft, marked with a small blue dot until you check it.
5. Later, open the receipt and click Als bezahlt markieren, choose the payment account and click the matching transaction.

## How to digitize receipts in sevdesk and mark them paid

Prompt

```
Upload the new supplier receipts from my receipts folder to sevdesk as expenses. Then, for each receipt from last month that matches a bank transaction on my business account, mark it as paid.
```

1. 01  
### Upload each file once  
upload\_receipt sends the PDF, PNG or JPG from its URL and saves a draft receipt. The agent reads back what the recognition filled in, so a wrong amount or supplier is flagged for you.
2. 02  
### Leave drafts as drafts  
The agent does not finish or book the upload. The category and the tax rule are the part where an accountant should have the last word, so the report lists them as "check".
3. 03  
### Find what is still unpaid  
list\_vouchers with status unpaid and the month you named gives the receipts that wait for a payment. The agent skips receipts that are already paid.
4. 04  
### Match to the bank  
list\_payment\_accounts finds the account and list\_bank\_transactions returns its unbooked transactions. A receipt is matched only when amount and date agree and one transaction fits; two possible matches stay open.
5. 05  
### Mark paid after your OK  
mark\_voucher\_paid links the receipt and the transaction, as clicking the transaction does in sevdesk. Each call waits for your OK by default, because it records a payment.

### What you get back

Example data

```
New receipts uploaded: 6 (all drafts)
Recognized well 5, check 1: "Cloud hosting Oct" shows 48.30 EUR, PDF says 48.80 EUR
Unpaid receipts from September: 9
Marked paid 7, linked to the transaction (e.g. Cloud hosting Sep 39.00 EUR)
Left open 2: two transactions of 25.00 EUR fit
```

### Other ways to ask

- Upload everything in this folder as expenses and stop. I will check the categories in sevdesk myself.
- Mark receipts as paid only when the supplier name appears in the bank transaction text.
- Every Friday, list unpaid receipts older than 30 days and send me the list.
- Upload the customer payment slips as income (Einnahme) and leave them as drafts.

## What sevdesk allows, and what to know first

- sevdesk accepts PDF (one or several pages), PNG and JPG files for receipts.
- The recognition tries to fill date, amount, receipt number, supplier and category, and sevdesk says it learns with every receipt uploaded.
- The tax mode Brutto or Netto is chosen per receipt, not per position.
- Receipts sent by email to the Autobox address work only from the email address you registered with in sevdesk.
- If no bank transaction is available, sevdesk books the payment on a Verrechnungskonto with the payment date you enter.

mark\_voucher\_paid asks for your OK by default. To run it daily without you, switch confirmation off for that tool in your dashboard.

Sources: [sevdesk Help: Belege erfassen](https://hilfe.sevdesk.de/de/articles/9453113-belege-erfassen) · [sevdesk Help: Beleg als bezahlt markieren](https://hilfe.sevdesk.de/de/articles/10062673-beleg-als-bezahlt-markieren-v1) · [sevdesk Help: Zahlungskonten](https://hilfe.sevdesk.de/de/articles/9382114-zahlungskonten) · [sevdesk Help: Übersicht der Zahlungskonten](https://hilfe.sevdesk.de/de/articles/9345235-ubersicht-der-zahlungskonten)

## Call upload\_receipt from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/sevdesk/receipts \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"file_url":"https://files.example.com/receipts/cloud-hosting-2026-10.pdf","kind":"expense"}'
```

Example response

```
{
"voucher_id": "77120418",
"kind": "expense",
"status": "draft",
"recognized": {
"supplier": "Nordhost Cloud GmbH",
"receipt_number": "NH-2026-1012",
"receipt_date": "2026-10-12",
"total_gross": 39,
"currency": "EUR",
"category": null
}
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is sevdesk\_write → upload\_receipt. Example data.

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

## sevdesk tools this automation uses

__Cotlet sevdesk tools used to digitize receipts in sevdesk and mark them paid__
| Tool | Parameters |
| ------------------------ | ------------------------------------------------------------------------- |
| upload\_receipt | file\_url, kind |
| list\_vouchers | status, kind, from\_date, to\_date, search, limit, cursor |
| list\_payment\_accounts | none |
| list\_bank\_transactions | payment\_account\_id, unbooked\_only, from\_date, to\_date, limit, cursor |
| mark\_voucher\_paid | voucher\_id, payment\_account\_id, transaction\_id, paid\_on |

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

## Frequently asked questions

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

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

- [Chase overdue sevdesk invoices with payment reminders](https://cotlet.dev/integrations/sevdesk-api-mcp-server/chase-overdue-invoices.md)
- [Create and send sevdesk invoices from a short brief](https://cotlet.dev/integrations/sevdesk-api-mcp-server/create-and-send-invoices.md)
- [sevdesk API and MCP server: every tool](https://cotlet.dev/integrations/sevdesk-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to sevdesk.

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

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

---

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.
