---
title: "Dodawanie produktu"
description: "Jak dodać towar lub usługę z ceną i stawką VAT do katalogu produktów inFakt."
---

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

Produkt w katalogu zawiera nazwę, jednostkę miary, cenę i stawkę VAT. Ceny podaje się w groszach.

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

## Żądanie

Przykład dodaje usługę o cenie 100,00 zł netto (123,00 zł brutto):

```sh
curl -X POST "https://api.sandbox-infakt.pl/v3/products.json" \
  -H "X-inFakt-ApiKey: $INFAKT_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "product": {
      "name": "Usługa programistyczna",
      "unit": "godz.",
      "tax_symbol": "23",
      "quantity": 1,
      "unit_net_price": 10000,
      "net_price": 10000,
      "tax_price": 2300,
      "gross_price": 12300,
      "pkwiu": "62.01.11.0"
    }
  }'
```

```js
const res = await fetch("https://api.sandbox-infakt.pl/v3/products.json", {
  method: "POST",
  headers: {
    "X-inFakt-ApiKey": process.env.INFAKT_API_KEY,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "product": {
      "name": "Usługa programistyczna",
      "unit": "godz.",
      "tax_symbol": "23",
      "quantity": 1,
      "unit_net_price": 10000,
      "net_price": 10000,
      "tax_price": 2300,
      "gross_price": 12300,
      "pkwiu": "62.01.11.0"
    }
  }),
});
const data = await res.json();
console.log(res.status, data);
```

```python
import os
import requests

res = requests.post(
    "https://api.sandbox-infakt.pl/v3/products.json",
    headers={"X-inFakt-ApiKey": os.environ["INFAKT_API_KEY"]},
    json={
        "product": {
            "name": "Usługa programistyczna",
            "unit": "godz.",
            "tax_symbol": "23",
            "quantity": 1,
            "unit_net_price": 10000,
            "net_price": 10000,
            "tax_price": 2300,
            "gross_price": 12300,
            "pkwiu": "62.01.11.0"
        }
    },
)
print(res.status_code, res.json())
```

```php
<?php
$ch = curl_init('https://api.sandbox-infakt.pl/v3/products.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([
        'product' => [
            'name' => 'Usługa programistyczna',
            'unit' => 'godz.',
            'tax_symbol' => '23',
            'quantity' => 1,
            'unit_net_price' => 10000,
            'net_price' => 10000,
            'tax_price' => 2300,
            'gross_price' => 12300,
            'pkwiu' => '62.01.11.0',
        ],
    ]),
]);
$response = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
echo $status, ' ', $response, PHP_EOL;
```

## Weryfikacja

Odpowiedź `201` zawiera dane produktu wraz z `id` i `uuid`:

```json
{
  "id": 1007,
  "uuid": "c41f7a2d-9b3e-4d58-a6c1-0e7b2f9d3a85",
  "name": "Usługa programistyczna",
  "unit": "godz.",
  "tax_symbol": "23",
  "unit_net_price": 10000,
  "gross_price": 12300
}
```

Listę produktów zwraca `GET /products.json`.

## Następne kroki

- [Wystawianie faktury](/poradniki/fakturowanie/wystaw-fakture/)
- [Operacja w referencji API](/api/products-json/create/)

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