---
title: "Dodawanie podmiotu trzeciego do faktury"
description: "Jak dodać do faktury podmiot trzeci w rozumieniu KSeF, np. faktora, odbiorcę JST lub grupę VAT."
---

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

# Dodawanie podmiotu trzeciego do faktury

Pole `third_party_addresses` zawiera jeden lub więcej podmiotów trzecich faktury (Podmiot3 w KSeF). API uwzględnia je przy tworzeniu faktury w trybie asynchronicznym oraz przy jej aktualizacji.

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

> **Pole pomijane w POST /invoices.json**
>
> Przy tworzeniu synchronicznym (`POST /invoices.json`) pole `third_party_addresses` jest pomijane. Podmioty dodaje się przez `POST /async/invoices.json` albo przez aktualizację faktury żądaniem `PUT /invoices/{id}.json`.

## Wymagania

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

## Kroki

1. **Wybór roli podmiotu**

   Rolę określa pole `role_code`:

   | Kod | Rola w KSeF |
   | - | - |
   | `"1"` | faktor |
   | `"2"` | odbiorca |
   | `"3"` | podmiot pierwotny |
   | `"4"` | dodatkowy nabywca |
   | `"5"` | wystawca faktury |
   | `"6"` | dokonujący płatności |
   | `"8"` | JST — odbiorca |
   | `"9"` | grupa VAT — wystawca |
   | `"10"` | grupa VAT — odbiorca |
   | `"11"` | pracownik |
2. **Wystawienie faktury z podmiotem trzecim**

   Pola wymagane: `company_name`, `street`, `building_number`, `door_number`, `post_code`, `city`, `country_code`, `role_code`. Pola opcjonalne: `tax_id`, `internal_identifier`.

   ```sh
   curl -X POST "https://api.sandbox-infakt.pl/v3/async/invoices.json" \
     -H "X-inFakt-ApiKey: $INFAKT_API_KEY" \
     -H "Content-Type: application/json" \
     -d '{
       "invoice": {
         "payment_method": "cash",
         "client_company_name": "Testowa Firma sp. z o.o.",
         "client_tax_code": "2222222222",
         "services": [
           {
             "name": "Usługa programistyczna",
             "tax_symbol": "23",
             "quantity": 1,
             "unit_net_price": 10000
           }
         ],
         "third_party_addresses": [
           {
             "company_name": "Urząd Miejski Krakowa",
             "street": "Plac Wszystkich Świętych",
             "building_number": "3-4",
             "door_number": "2",
             "post_code": "31-004",
             "city": "Kraków",
             "country_code": "PL",
             "role_code": "8"
           }
         ]
       }
     }'
   ```

   ```js
   const res = await fetch("https://api.sandbox-infakt.pl/v3/async/invoices.json", {
     method: "POST",
     headers: {
       "X-inFakt-ApiKey": process.env.INFAKT_API_KEY,
       "Content-Type": "application/json",
     },
     body: JSON.stringify({
       "invoice": {
         "payment_method": "cash",
         "client_company_name": "Testowa Firma sp. z o.o.",
         "client_tax_code": "2222222222",
         "services": [
           {
             "name": "Usługa programistyczna",
             "tax_symbol": "23",
             "quantity": 1,
             "unit_net_price": 10000
           }
         ],
         "third_party_addresses": [
           {
             "company_name": "Urząd Miejski Krakowa",
             "street": "Plac Wszystkich Świętych",
             "building_number": "3-4",
             "door_number": "2",
             "post_code": "31-004",
             "city": "Kraków",
             "country_code": "PL",
             "role_code": "8"
           }
         ]
       }
     }),
   });
   const data = await res.json();
   console.log(res.status, data);
   ```

   ```python
   import os
   import requests

   res = requests.post(
       "https://api.sandbox-infakt.pl/v3/async/invoices.json",
       headers={"X-inFakt-ApiKey": os.environ["INFAKT_API_KEY"]},
       json={
           "invoice": {
               "payment_method": "cash",
               "client_company_name": "Testowa Firma sp. z o.o.",
               "client_tax_code": "2222222222",
               "services": [
                   {
                       "name": "Usługa programistyczna",
                       "tax_symbol": "23",
                       "quantity": 1,
                       "unit_net_price": 10000
                   }
               ],
               "third_party_addresses": [
                   {
                       "company_name": "Urząd Miejski Krakowa",
                       "street": "Plac Wszystkich Świętych",
                       "building_number": "3-4",
                       "door_number": "2",
                       "post_code": "31-004",
                       "city": "Kraków",
                       "country_code": "PL",
                       "role_code": "8"
                   }
               ]
           }
       },
   )
   print(res.status_code, res.json())
   ```

   ```php
   <?php
   $ch = curl_init('https://api.sandbox-infakt.pl/v3/async/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([
           'invoice' => [
               'payment_method' => 'cash',
               'client_company_name' => 'Testowa Firma sp. z o.o.',
               'client_tax_code' => '2222222222',
               'services' => [
                   [
                       'name' => 'Usługa programistyczna',
                       'tax_symbol' => '23',
                       'quantity' => 1,
                       'unit_net_price' => 10000,
                   ],
               ],
               'third_party_addresses' => [
                   [
                       'company_name' => 'Urząd Miejski Krakowa',
                       'street' => 'Plac Wszystkich Świętych',
                       'building_number' => '3-4',
                       'door_number' => '2',
                       'post_code' => '31-004',
                       'city' => 'Kraków',
                       'country_code' => 'PL',
                       'role_code' => '8',
                   ],
               ],
           ],
       ]),
   ]);
   $response = curl_exec($ch);
   $status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
   echo $status, ' ', $response, PHP_EOL;
   ```

## Weryfikacja

Gdy zadanie zakończy się kodem `processing_code: 201`, odpowiedź `GET /invoices/{id}.json` zawiera podmiot w polu `third_party_addresses`. Po wysyłce do KSeF podmiot trafia do pliku FA(3) jako Podmiot3.

Rola `"8"` zastępuje wcześniej używane pole `local_government_recipient_address`.

## Następne kroki

- [Wysyłka faktury do KSeF](/poradniki/ksef/wyslij-fakture/)
- [Wystawianie wielu faktur naraz](/poradniki/fakturowanie/wystaw-wiele-faktur/)

Source: https://docs.niebieskiorzel.pl/poradniki/fakturowanie/dodaj-podmiot-trzeci/index.mdx
