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

# Record Fakturownia payments and mark invoices paid

> Match bank transfers to unpaid Fakturownia invoices, record each payment and set the status, with partial payments kept partial.

Source: https://cotlet.dev/integrations/fakturownia-api-mcp-server/record-invoice-payments

Money arrives in the bank, and someone has to open each unpaid invoice and set it to paid, one transfer at a time.

Cotlet does it in your own Fakturownia (InvoiceOcean) account with list\_invoices, list\_payments, record\_payment and mark\_invoice\_paid, called by your AI agent, an n8n workflow or a script.

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

Hosted · nothing to install or maintain

## Can Fakturownia (InvoiceOcean) do this on its own?

Fakturownia matches payments itself when a bank connection is set up under "Wydatki i płatności", and its API has payments and change\_status endpoints (checked 14 Oct 2026). The official MCP is read-only. Without a bank connection, matching a transfer to an invoice by title and amount is still manual.

## How you do it in Fakturownia (InvoiceOcean) today

1. Go to "Przychody" or "Wydatki", find the invoice and click its status in the "Status" column to choose a new one.
2. For a real payment record, open the invoice and use "Więcej opcji > Dodaj płatność"; typing an amount in "Kwota opłacona" does not attach a payment.
3. Keep "Próbuj połączyć automatycznie" selected so Fakturownia matches the payment to the invoice; full cover sets "Opłacona", less sets "Częściowo opłacona".
4. For many invoices, tick them in the list and choose "Zmień > Status", which works only within the current page of the list.
5. What repeats: transfers with the wrong amount or a missing invoice number have to be matched by eye.

## How to record Fakturownia payments and mark invoices paid

Prompt

```
Here is this week's bank export. For each incoming transfer find the unpaid Fakturownia invoice with the same number in the title and amount, record the payment, and list what did not match.
```

1. 01  
### Load what is open  
The agent lists invoices that are issued, sent or partial and reads the payments already recorded, so a transfer you handled last week is not booked twice.
2. 02  
### Match by number, then amount  
A transfer is matched when the invoice number is in its title and the amount equals what is left to pay. Two possible invoices, or no number, goes to the "not matched" list.
3. 03  
### Record the payment, not just the status  
record\_payment links the payment to the invoice, so Fakturownia derives paid or partial from the amounts. mark\_invoice\_paid is used only when there is no transfer to record, for example cash.
4. 04  
### Keep partial payments partial  
A transfer below the invoice total leaves it partial, and the agent reports the rest still owed instead of forcing paid.
5. 05  
### Report both lists  
You get the matched invoices and the unmatched transfers, so the odd ones are the only thing left for you.

### What you get back

Example data

```
Matched 6 of 8 transfers
14/10/2026/1 paid in full: 1,230.00 PLN
09/10/2026/3 partial: 500.00 of 800.00 PLN, 300.00 left
Not matched: 120.00 PLN "thanks", 2,460.00 PLN with no invoice number
```

### Other ways to ask

- Every Monday, list invoices past their due date and show me the total owed per client.
- Mark the invoices in this list as paid in cash with today as the payment date.
- Record this single transfer against invoices 4931 and 4932, oldest first.

## What Fakturownia (InvoiceOcean) allows, and what to know first

- When a payment covers several invoices, Fakturownia pays them in the order they were given: the first in full, the next with what is left.
- Setting the status to paid sets the payment date automatically.
- The status does not change automatically for invoices that are rejected, cancelled or waiting to be completed.
- For MP invoices under the cash VAT method, setting "Opłacona" settles the VAT on the day of the change.
- Fakturownia has no custom statuses; the list is issued, sent, partly paid, paid, rejected and a few document-specific ones.

record\_payment and mark\_invoice\_paid ask for your OK by default. To run it weekly without you, switch confirmation off for those tools in your dashboard.

Sources: [Fakturownia Help: Status faktury](https://pomoc.fakturownia.pl/2213872-status-faktury.md) · [Fakturownia: Statusy faktur](https://fakturownia.pl/statusy-platnosci) · [Fakturownia API: payments](https://github.com/fakturownia/api)

## Call record\_payment from a script

curl

```
curl -X POST https://cotlet.dev/api/v1/fakturownia/payments \
  -H "Authorization: Bearer $COTLET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"name":"Transfer 2026-10-14 Blue Fern Studio","price":1230,"invoice_ids":[5120],"paid":true}'
```

Example response

```
{
"id": 9040,
"name": "Transfer 2026-10-14 Blue Fern Studio",
"price": "1230.00",
"paid": true,
"invoice_ids": [
    5120
]
}
```

MCP: add https://cotlet.dev/mcp/v1 with the same key; the call is fakturownia\_write → record\_payment. Example data.

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

## Fakturownia (InvoiceOcean) tools this automation uses

__Cotlet Fakturownia (InvoiceOcean) tools used to record Fakturownia payments and mark invoices paid__
| Tool | Parameters |
| ------------------- | ------------------------------------------------------------------------------- |
| list\_invoices | period, date\_from, date\_to, status, kind, income, client\_id, page, per\_page |
| list\_payments | include\_invoices, page |
| record\_payment | name, price, invoice\_ids, paid |
| mark\_invoice\_paid | invoice\_id, status |

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

## Frequently asked questions

### Is it safe to connect Fakturownia (InvoiceOcean) to Cotlet?

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

- [Issue a Fakturownia invoice from a deal or message](https://cotlet.dev/integrations/fakturownia-api-mcp-server/issue-invoice-from-deal.md)
- [Send Fakturownia invoices to KSeF](https://cotlet.dev/integrations/fakturownia-api-mcp-server/send-invoices-to-ksef.md)
- [Fakturownia (InvoiceOcean) API and MCP server: every tool](https://cotlet.dev/integrations/fakturownia-api-mcp-server.md)
- [All use cases](https://cotlet.dev/use-cases.md)

## Give your agent access to Fakturownia (InvoiceOcean).

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

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

---

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.
