---
title: "Oznaczanie faktury jako opłaconej"
description: "Jak oznaczyć fakturę jako opłaconą, np. po potwierdzeniu płatności online."
---

> Documentation Index
> Fetch the complete documentation index at: https://docs.niebieskiorzel.pl/llms.txt
> Use this file to discover all available pages before exploring further.

# Oznaczanie faktury jako opłaconej

Jedno żądanie oznacza fakturę jako opłaconą z podaną datą płatności. Po tej zmianie inFakt wysyła webhook `invoice_paid`.

> **Przykłady korzystają z sandboxa**
>
> Wszystkie przykłady na tej stronie wysyłają żądania do środowiska testowego (`https://api.sandbox-infakt.pl/v3`). Na produkcji należy użyć adresu `https://api.infakt.pl/v3` i klucza API z konta produkcyjnego.

## Wymagania

- Klucz API z zakresem `api:invoices:write` w zmiennej `INFAKT_API_KEY`.
- `id` faktury w zmiennej `INVOICE_ID`.

## Żądanie

```sh
curl -X POST "https://api.sandbox-infakt.pl/v3/invoices/$INVOICE_ID/paid.json" \
  -H "X-inFakt-ApiKey: $INFAKT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "paid_date": "2026-10-10"
  }'
```

```js
const res = await fetch(`https://api.sandbox-infakt.pl/v3/invoices/${process.env.INVOICE_ID}/paid.json`, {
  method: "POST",
  headers: {
    "X-inFakt-ApiKey": process.env.INFAKT_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "paid_date": "2026-10-10"
  }),
});
console.log(res.status);
```

```python
import os
import requests

res = requests.post(
    f"https://api.sandbox-infakt.pl/v3/invoices/{os.environ['INVOICE_ID']}/paid.json",
    headers={"X-inFakt-ApiKey": os.environ["INFAKT_API_KEY"]},
    json={
        "paid_date": "2026-10-10"
    },
)
print(res.status_code)
```

```php
<?php
$ch = curl_init('https://api.sandbox-infakt.pl/v3/invoices/' . getenv('INVOICE_ID') . '/paid.json');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'X-inFakt-ApiKey: ' . getenv('INFAKT_API_KEY'),
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode([
        'paid_date' => '2026-10-10',
    ]),
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo $status, PHP_EOL;
```

## Weryfikacja

Odpowiedź `204 No Content` oznacza powodzenie. Odpowiedź `GET /invoices/$INVOICE_ID.json` zawiera wtedy `"status": "paid"` i `"paid_date": "2026-10-10"`. Na kontach z dużą liczbą dokumentów zmiana trafia do kolejki i jest widoczna po kilku sekundach.

Kod `403` z `limit: cant_paid_for_invoice` oznacza, że plan konta nie obejmuje tej operacji. Do oznaczania wielu faktur służy wersja asynchroniczna: `POST /async/invoices/{uuid}/paid.json`.

## Następne kroki

- [Zdarzenia webhooków](/referencje/zdarzenia-webhookow/)
- [Operacja w referencji API](/api/invoices-mark-paid/)

Source: https://docs.niebieskiorzel.pl/poradniki/fakturowanie/oznacz-jako-oplacona/index.mdx
