---
title: "Wystawianie faktury korygującej"
description: "Jak poprawić kwoty lub dane na fakturze, wystawiając fakturę korygującą."
---

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

# Wystawianie faktury korygującej

Faktura korygująca jest osobnym dokumentem, tworzonym przez `POST /corrective_invoices.json`. Każdą korygowaną pozycję podaje się dwukrotnie: w stanie przed korektą i w stanie po korekcie.

> **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`.
- Numer, `uuid` i data faktury korygowanej (`GET /invoices/{id}.json`).

## Kroki

1. **Przygotowanie pozycji przed korektą i po niej**

   Pozycja przed korektą ma `"correction": false` i dane zgodne z fakturą korygowaną. Pozycja po korekcie ma `"correction": true` i nowe dane. Obie pozycje mają ten sam numer `group`.

   Pole `correction_reason` przyjmuje wartość `mistake` (błąd rachunkowy lub oczywista pomyłka) albo `other` (np. zwrot towaru lub rabat).
2. **Wysłanie korekty**

   Przykład obniża cenę usługi ze 100,00 zł do 80,00 zł netto:

   ```sh
   curl -X POST "https://api.sandbox-infakt.pl/v3/corrective_invoices.json" \
     -H "X-inFakt-ApiKey: $INFAKT_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{
       "corrective_invoice": {
         "corrected_invoice_number": "1/10/2026",
         "corrected_invoice_uuid": "9bdc76fd-7a02-42ec-a4a3-42bc867b9a9f",
         "corrected_invoice_date": "2026-10-01",
         "invoice_date": "2026-10-05",
         "payment_date": "2026-10-19",
         "client_id": 1003,
         "correction_reason": "other",
         "services": [
           {
             "name": "Usługa programistyczna",
             "tax_symbol": "23",
             "unit": "godz.",
             "quantity": 1,
             "unit_net_price": 10000,
             "group": 1,
             "correction": false
           },
           {
             "name": "Usługa programistyczna",
             "tax_symbol": "23",
             "unit": "godz.",
             "quantity": 1,
             "unit_net_price": 8000,
             "group": 1,
             "correction": true
           }
         ]
       }
     }'
   ```

   ```js
   const res = await fetch("https://api.sandbox-infakt.pl/v3/corrective_invoices.json", {
     method: "POST",
     headers: {
       "X-inFakt-ApiKey": process.env.INFAKT_API_KEY,
       "Content-Type": "application/json",
     },
     body: JSON.stringify({
       "corrective_invoice": {
         "corrected_invoice_number": "1/10/2026",
         "corrected_invoice_uuid": "9bdc76fd-7a02-42ec-a4a3-42bc867b9a9f",
         "corrected_invoice_date": "2026-10-01",
         "invoice_date": "2026-10-05",
         "payment_date": "2026-10-19",
         "client_id": 1003,
         "correction_reason": "other",
         "services": [
           {
             "name": "Usługa programistyczna",
             "tax_symbol": "23",
             "unit": "godz.",
             "quantity": 1,
             "unit_net_price": 10000,
             "group": 1,
             "correction": false
           },
           {
             "name": "Usługa programistyczna",
             "tax_symbol": "23",
             "unit": "godz.",
             "quantity": 1,
             "unit_net_price": 8000,
             "group": 1,
             "correction": true
           }
         ]
       }
     }),
   });
   const data = await res.json();
   console.log(res.status, data);
   ```

   ```python
   import os
   import requests

   res = requests.post(
       "https://api.sandbox-infakt.pl/v3/corrective_invoices.json",
       headers={"X-inFakt-ApiKey": os.environ["INFAKT_API_KEY"]},
       json={
           "corrective_invoice": {
               "corrected_invoice_number": "1/10/2026",
               "corrected_invoice_uuid": "9bdc76fd-7a02-42ec-a4a3-42bc867b9a9f",
               "corrected_invoice_date": "2026-10-01",
               "invoice_date": "2026-10-05",
               "payment_date": "2026-10-19",
               "client_id": 1003,
               "correction_reason": "other",
               "services": [
                   {
                       "name": "Usługa programistyczna",
                       "tax_symbol": "23",
                       "unit": "godz.",
                       "quantity": 1,
                       "unit_net_price": 10000,
                       "group": 1,
                       "correction": False
                   },
                   {
                       "name": "Usługa programistyczna",
                       "tax_symbol": "23",
                       "unit": "godz.",
                       "quantity": 1,
                       "unit_net_price": 8000,
                       "group": 1,
                       "correction": True
                   }
               ]
           }
       },
   )
   print(res.status_code, res.json())
   ```

   ```php
   <?php
   $ch = curl_init('https://api.sandbox-infakt.pl/v3/corrective_invoices.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([
           'corrective_invoice' => [
               'corrected_invoice_number' => '1/10/2026',
               'corrected_invoice_uuid' => '9bdc76fd-7a02-42ec-a4a3-42bc867b9a9f',
               'corrected_invoice_date' => '2026-10-01',
               'invoice_date' => '2026-10-05',
               'payment_date' => '2026-10-19',
               'client_id' => 1003,
               'correction_reason' => 'other',
               'services' => [
                   [
                       'name' => 'Usługa programistyczna',
                       'tax_symbol' => '23',
                       'unit' => 'godz.',
                       'quantity' => 1,
                       'unit_net_price' => 10000,
                       'group' => 1,
                       'correction' => false,
                   ],
                   [
                       'name' => 'Usługa programistyczna',
                       'tax_symbol' => '23',
                       'unit' => 'godz.',
                       'quantity' => 1,
                       'unit_net_price' => 8000,
                       'group' => 1,
                       'correction' => true,
                   ],
               ],
           ],
       ]),
   ]);
   $response = curl_exec($ch);
   $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
   echo $status, ' ', $response, PHP_EOL;
   ```

## Weryfikacja

Odpowiedź `201` zawiera fakturę korygującą z `kind: "correction"`, własnym numerem i polem `parent_id` wskazującym fakturę korygowaną:

```json
{
  "id": 1004,
  "uuid": "f1e2d3c4-b5a6-4789-8a9b-0c1d2e3f4a5b",
  "parent_id": 999,
  "number": "1/KOR/10/2026",
  "kind": "correction",
  "status": "draft"
}
```

Kod `422` z polem `errors` wskazuje brakujące dane. Pola `corrected_invoice_number` i `correction_reason` są wymagane.

## Następne kroki

- [Wysyłka faktury do KSeF](/poradniki/ksef/wyslij-fakture/): korektę faktury wysłanej do KSeF również należy wysłać do KSeF.
- [Typy dokumentów](/koncepcje/typy-dokumentow/)
- [Operacja w referencji API](/api/corrective-invoices-json/create/)

Source: https://docs.niebieskiorzel.pl/poradniki/fakturowanie/wystaw-korekte/index.mdx
