| Producent systemu V-Desk i API | Producent aplikacji Integrator |
|---|---|
|
PrimeSoft Polska Sp. z o.o. ul. Piątkowska 161, 60-650 Poznań tel. +48 (61) 833-17-72 biuro@primesoft.pl · primesoft.pl/kontakt NIP 7831592998 · REGON 634610845 |
Intuiti sp. z o.o. tel. (61) 307 40 00 biuro@intuiti.pl · intuiti.pl/kontakt |
company — kod firmyAplikacja Intuiti Integrator V-Desk do Symfonii jest pośrednikiem między obiegiem dokumentów V-Desk a księgami Symfonii Finanse i Księgowość. Nie zapisuje niczego wprost do bazy Symfonii — po jednej stronie rozmawia z REST API V-Desk, po drugiej z obiektami integracji dostarczanymi przez producenta Symfonii.
| Funkcja | Kierunek | Co się dzieje |
|---|---|---|
| Pobranie faktur zakupu | V-Desk → Integrator | Aplikacja pobiera dokumenty z zadanego zakresu dat wraz z pozycjami VAT, danymi kontrahenta i gotowym dekretem przygotowanym w obiegu. Zobacz rozdział 6. |
| Przygotowanie dekretu | wewnątrz Integratora | Dokument dostaje typ, rejestr VAT i schemat księgowania — z wzorca dokumentów zakupu albo z dopasowania po frazie. Kwoty walutowe przeliczane są kursem dokumentu. |
| Wysyłka do bufora FK | Integrator → Symfonia | Dokument trafia do bufora Symfonii jako zapis księgowy z rejestrami VAT, rozrachunkiem i ewentualnymi księgowaniami równoległymi. Zobacz rozdział 11. |
| Zwrot numeru dokumentu | Integrator → V-Desk | Po zaksięgowaniu numer nadany przez Symfonię wraca do V-Desk, dzięki czemu w obiegu widać, że dokument został już zaksięgowany. Zobacz rozdział 8. |
| Wysyłka kontrahentów | Symfonia → V-Desk | Kartoteka kontrahentów z FK jest przekazywana do V-Desk, żeby w obiegu można było wskazywać istniejące podmioty zamiast wpisywać je ręcznie. Zobacz rozdział 7. |
| Wysyłka słowników | Symfonia → V-Desk | Wymiary analityczne i inne słowniki z FK, wykorzystywane przy opisywaniu dokumentów w obiegu. Zobacz rozdział 9. |
| Rozpoznanie dokumentów już zaksięgowanych | wewnątrz Integratora | Przed wysyłką lista jest porównywana z zawartością FK — po numerze KSeF, a gdy go brak, po numerze dokumentu, kwocie brutto i NIP-ie kontrahenta. |
Każda instancja V-Desk ma własny adres bazowy. Aplikacja przechowuje go w ustawieniach jako bazowy endpoint i dokleja do niego ścieżkę końcówki. Adres bazowy podaje się bez ukośnika na końcu i bez ścieżki końcówki:
# poprawnie https://firma-przykladowa.vdesk.przyklad.pl/api # niepoprawnie — końcówka i ukośnik doklejane są przez aplikację https://firma-przykladowa.vdesk.przyklad.pl/api/ https://firma-przykladowa.vdesk.przyklad.pl/api/invoice/export
Adres złożony wygląda więc tak: <bazowy endpoint> + <ścieżka końcówki> + ? + parametry zapytania.
Uwierzytelnianie odbywa się kluczem API przekazywanym w query stringu jako parametr apikey. Nie jest używany nagłówek Authorization ani ciasteczka sesyjne — każde żądanie jest samodzielne i musi nieść klucz.
GET /invoice/export?apikey=a1b2c3d4e5f60718293a4b5c6d7e8f90&dateFrom=2026-08-01&dateTo=2026-08-31&showImported=0
| Nagłówek | Wartość | Uwagi |
|---|---|---|
| Accept | application/json | Ustawiany przy każdym wywołaniu. |
| User-Agent | C# App | Ustawiany przez aplikację. Niektóre konfiguracje serwerów odrzucają żądania bez nagłówka User-Agent. |
| Content-Type | application/json | Tylko dla żądań z ciałem (POST). |
company — kod firmyJedna instancja V-Desk może obsługiwać kilka firm. Parametr company zawęża operację do jednej z nich. Dopuszczalne wartości są zależne od instancji i podaje je dostawca V-Desk — nie jest to lista globalna.
| Końcówka | Czy company jest wymagany | Zachowanie bez parametru |
|---|---|---|
| /invoice/export | opcjonalny | Zwracane są faktury wszystkich firm instancji (zachowanie sprzed wprowadzenia parametru). |
| /company/import | wymagany | Serwer odpowiada HTTP 500 z komunikatem company parameter is mandatory. |
| /invoice/import/pk | nie stosowany | Aplikacja nie wysyła tego parametru do tej końcówki. |
Wartość jest kodowana procentowo przed doklejeniem do adresu, więc kody zawierające znaki specjalne są bezpieczne. Podanie wartości spoza listy dozwolonej kończy się odpowiedzią HTTP 400:
HTTP/1.1 400 Bad Request Invalid company type [XYZ]. Allowed values: [FIRMA, ODDZIAL]
| Zagadnienie | Konwencja |
|---|---|
| Format wymiany | JSON, kodowanie UTF-8. |
| Daty w parametrach zapytania | yyyy-MM-dd — np. 2026-08-01. |
| Daty w treści JSON | dd.MM.yyyy — np. 01.08.2026. Uwaga: format jest inny niż w parametrach zapytania. |
| Wartości liczbowe | Liczby JSON z kropką dziesiętną, bez separatora tysięcy i bez symbolu waluty. |
| Wartości logiczne | Przekazywane jako tekst — np. "czyB2B": "TAK", "isActive": "1". |
| Ciało żądań POST | Zawsze tablica obiektów, nawet gdy wysyłany jest jeden rekord. |
| Stronicowanie | Brak. Końcówka pobierania zwraca cały zbiór z zadanego zakresu dat — zakres jest jedynym mechanizmem ograniczania rozmiaru odpowiedzi. |
Końcówki przyjmujące dane (POST) odpowiadają jednolitym obiektem statusu:
{
"status": "ok",
"msg": ""
}
| Pole | Typ | Opis |
|---|---|---|
| status | string | "ok" oznacza powodzenie. Każda inna wartość traktowana jest jako niepowodzenie. |
| msg | string | Opis przyczyny niepowodzenia. Przy powodzeniu zwykle pusty. |
| Metoda | Ścieżka | Przeznaczenie | Gdzie w aplikacji |
|---|---|---|---|
| GET | /invoice/export | Pobranie faktur z zakresu dat | Menu Wczytaj → V-Desk; przycisk Test połączenia w ustawieniach |
| POST | /company/import | Wysyłka kartoteki kontrahentów z Symfonii do V-Desk | Menu Kartoteki → Wyślij kontrahentów do V-Desk |
| POST | /invoice/import/pk | Zwrot numeru dokumentu nadanego przez Symfonię | Automatycznie po zaksięgowaniu; menu Ustawienia → Aktualizacja ID w V-Desk |
| POST | <konfigurowalna> | Wysyłka słowników (rodzaje kosztów, marki, analityki…) | Okno definicji słowników — ścieżkę podaje użytkownik |
Zwraca listę faktur, których data zatwierdzenia mieści się w podanym zakresie. Jest to podstawowa operacja aplikacji.
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| apikey | string | tak | Klucz API instancji. |
| dateFrom | yyyy-MM-dd | tak | Początek zakresu dat zatwierdzenia dokumentu (włącznie). |
| dateTo | yyyy-MM-dd | tak | Koniec zakresu (włącznie). |
| showImported | 0 | 1 | tak | 0 — pomiń dokumenty mające już nadany numer dokumentu Symfonii; 1 — zwróć wszystkie, także już przeniesione do księgowości. |
| company | string | nie | Kod firmy — patrz rozdział 3. |
GET /api/invoice/export?dateFrom=2026-08-01&dateTo=2026-08-31&showImported=0
&apikey=a1b2c3d4e5f60718293a4b5c6d7e8f90&company=FIRMA HTTP/1.1
Host: firma-przykladowa.vdesk.przyklad.pl
Accept: application/json
User-Agent: C# App
HTTP/1.1 200 OK
Content-Type: application/json
[
{
"id": 104821,
"czyB2B": "TAK",
"rodzajDokumentu": "FZ",
"numerFaktury": "FZ/2026/08/017",
"kontrahentNazwa": "Kontrahent A Sp. z o.o.",
"kontrahentNip": "1111111111",
"kontrahentMiasto": "Miasto Przykładowe",
"kontrahentKodPocztowy": "00-001",
"kontrahentUlica": "Przykładowa",
"kontrahentUlicaNumer": "12/3",
"dataWystawienia": "01.08.2026",
"dataSprzedazy": "01.08.2026",
"dataWplywu": "05.08.2026",
"terminPlatnosci": "15.08.2026",
"formaPlatnosci": "przelew",
"opis": "Zakup materiałów biurowych",
"pozycjaNetto": 10000.00,
"pozycjaBrutto": 12300.00,
"waluta": "PLN",
"kurs": 1.0,
"pozycjeVAT": [
{
"pozycjaNetto": 10000.00,
"pozycjaVAT": "23",
"pozycjaKwotaVat": 2300.00,
"pozycjaBrutto": 12300.00
}
],
"dekret": [
{ "strona": "winien", "konto": "401-1", "kwota": 10000.00, "opis": "Materiały biurowe" },
{ "strona": "ma", "konto": "202", "kwota": 12300.00, "opis": "Materiały biurowe" },
{ "strona": "winien", "konto": "501-1", "kwota": 12300.00, "zapisRownolegly": 33 },
{ "strona": "ma", "konto": "490", "kwota": 12300.00, "zapisRownolegly": 33 }
],
"nrKSEF": "1111111111-20260801-AB01CD23EF45-6A",
"dataKSEF": "01.08.2026"
}
]
| Pole | Typ | Opis |
|---|---|---|
| id | int | Identyfikator dokumentu w V-Desk. Używany później przy zwrocie numeru Symfonii (rozdział 8). |
| czyB2B | string | Znacznik transakcji B2B. Wartość "TAK" interpretowana jest jako prawda, każda inna jako fałsz. |
| rodzajDokumentu | string | Symbol rodzaju dokumentu w V-Desk. Aplikacja tworzy z niego definicję dokumentu, jeżeli pole jest wypełnione. |
| numerFaktury | string | Numer własny faktury. |
| kontrahentNazwa | string | Nazwa kontrahenta. |
| kontrahentNip | string | NIP kontrahenta — podstawa dopasowania do kartoteki Symfonii. |
| kontrahentMiasto | string | Miejscowość. Gdy pole jest puste, aplikacja próbuje wydzielić miejscowość i kod pocztowy z pozostałych pól adresowych. |
| kontrahentKodPocztowy | string | Kod pocztowy. |
| kontrahentUlica | string | Nazwa ulicy. |
| kontrahentUlicaNumer | string | Numer budynku/lokalu. |
| dataWystawienia | dd.MM.yyyy | Data wystawienia faktury. |
| dataSprzedazy | dd.MM.yyyy | Data sprzedaży / wykonania usługi. |
| dataWplywu | dd.MM.yyyy | Data wpływu dokumentu. Może być null. |
| terminPlatnosci | dd.MM.yyyy | Termin płatności. Gdy brak — aplikacja przyjmuje 14 dni od daty transakcji. |
| formaPlatnosci | string | Opisowa forma płatności. |
| opis | string | Opis dokumentu. |
| pozycjaNetto | decimal | Wartość netto dokumentu. |
| pozycjaBrutto | decimal | Wartość brutto dokumentu. |
| waluta | string | Kod waluty. Wartość inna niż PLN uruchamia obsługę walutową przy księgowaniu. |
| kurs | double | Kurs waluty. Dla dokumentów złotówkowych 1.0. |
| pozycjeVAT | array | Rozbicie na stawki VAT — patrz niżej. |
| dekret | array | Gotowa dekretacja z V-Desk — patrz niżej. |
| nrKSEF | string | Numer faktury w Krajowym Systemie e-Faktur. Pusty, jeżeli dokument nie przeszedł przez KSeF. |
| dataKSEF | dd.MM.yyyy | Data wystawienia w KSeF. Gdy brak, przyjmowana jest data wystawienia faktury. |
pozycjeVAT[]| Pole | Typ | Opis |
|---|---|---|
| pozycjaVAT | string | Stawka VAT. Oprócz wartości liczbowych (np. "23", "8", "5", "0") obsługiwane są oznaczenia ZW, NP, OO, BP. |
| pozycjaNetto | decimal | Podstawa opodatkowania dla tej stawki. |
| pozycjaKwotaVat | decimal | Kwota podatku. |
| pozycjaBrutto | decimal | Wartość brutto dla tej stawki. |
dekret[]| Pole | Typ | Opis |
|---|---|---|
| strona | string | "winien" albo "ma". |
| konto | string | Numer konta księgowego. Może być samą syntetyką (np. "202") albo kontem z analityką (np. "401-1"). |
| kwota | decimal | Kwota zapisu w walucie dokumentu. |
| opis | string | Treść zapisu. Pozycje równoległe zwykle nie mają tego pola. |
| zapisRownolegly | int? | Znacznik księgowania równoległego. Maska bitowa, nie wartość wyliczeniowa — spotykana wartość 33 to 0x01 | 0x20. Pole występuje wyłącznie na pozycjach równoległych; jego brak oznacza zapis podstawowy. |
zapisRownolegly należy traktować jako osobny zbiór, a nie jako kolejne pozycje dekretu podstawowego. Dekret podstawowy ma jedną pozycję po stronie ma (konto zobowiązania); wrzucenie do niego równoległej pozycji ma nadpisuje to konto i gubi rozrachunek.
dekret[] ma wyłącznie pozycje kosztowe (winien, w kwocie netto) i jedną pozycję zobowiązania (ma, w kwocie brutto) — kwoty celowo się nie bilansują, bo brakującego wiersza podatku V-Desk nie przysyła. Zapis VAT tworzy integrator, a konto bierze z pola Konto VAT schematu księgowania skonfigurowanego po stronie Symfonii. Nie ma więc ustawienia „konto VAT z V-Desk” i nie może być — nie ma czego pobierać. Dotyczy to również VAT-u należnego przy samoopodatkowaniu (WNT, import usług, odwrotne obciążenie), który pochodzi z domyślnego schematu sprzedaży.
Księgowanie równoległe to drugi, towarzyszący zapis tego samego zdarzenia — najczęściej przeksięgowanie kosztu z zespołu 4 (koszty rodzajowe) na zespół 5 (koszty według miejsc powstawania) przez konto 490. V-Desk przysyła je w tej samej tablicy dekret[], co zapisy podstawowe, odróżnione wyłącznie obecnością pola zapisRownolegly.
Dokument z jednym kosztem, rozdzielonym równolegle na dwa miejsca powstawania:
{
"id": 40251,
"rodzajDokumentu": "FZ",
"numerFaktury": "FV/2026/08/0042",
"kontrahentNazwa": "Kontrahent B Sp. z o.o.",
"kontrahentNip": "2222222222",
"dataWystawienia": "04.08.2026",
"dataWplywu": "06.08.2026",
"terminPlatnosci": "18.08.2026",
"opis": "Energia elektryczna 07/2026",
"pozycjaNetto": 8000.00,
"pozycjaBrutto": 9840.00,
"waluta": "PLN",
"kurs": 1.0,
"pozycjeVAT": [
{ "pozycjaNetto": 8000.00, "pozycjaVAT": "23", "pozycjaKwotaVat": 1840.00, "pozycjaBrutto": 9840.00 }
],
"dekret": [
// --- zapisy podstawowe: brak pola zapisRownolegly ---
{ "strona": "winien", "konto": "402-1", "kwota": 8000.00, "opis": "Energia elektryczna 07/2026" },
{ "strona": "ma", "konto": "202", "kwota": 9840.00, "opis": "Energia elektryczna 07/2026" },
// --- zapisy równoległe: rozksięgowanie kosztu 4 -> 5 przez 490 ---
{ "strona": "ma", "konto": "490", "kwota": 8000.00, "zapisRownolegly": 33 },
{ "strona": "winien", "konto": "550-1", "kwota": 5000.00, "zapisRownolegly": 33 },
{ "strona": "winien", "konto": "527-3", "kwota": 3000.00, "zapisRownolegly": 33 }
],
"nrKSEF": "2222222222-20260804-BC02DE34FG56-7B",
"dataKSEF": "04.08.2026"
}
| Zasada | Szczegóły |
|---|---|
| Osobna grupa zapisów | Pozycje równoległe trafiają do własnej grupy księgowej, dodawanej po zapisach podstawowych i po zapisach VAT. Nie są doklejane do grupy podstawowej. |
| Znacznik przekazywany bez zmian | Wartość zapisRownolegly z JSON-a idzie do FK taka, jaka przyszła. Aplikacja nie wpisuje 33 na sztywno, więc inna kombinacja bitów zadziała bez zmian w programie. |
| Strona zapisu | "ma" → strona MA, każda inna wartość → strona WN. |
| Opis | Pozycje równoległe nie mają w JSON-ie pola opis, więc aplikacja podstawia opis pierwszego podstawowego zapisu WN — bez tego zapisy w księgach byłyby bezopisowe. |
| Konto zobowiązania | Jeżeli pozycja równoległa wskazuje to samo konto, co podstawowy zapis MA (zwykle 202, dla dokumentów FZJP 213), jest rozwijana identycznie jak on — kontem ze schematu dekretacji z analityką kontrahenta. Inaczej trafiłaby na nagą syntetykę i rozrachunek by się nie sparował. Pozostałe konta brane są wprost z JSON-a. |
| Brak rozrachunku | Dla pary równoległej nie jest zakładany rozrachunek, ponieważ API nie przekazuje dla niej terminu płatności. |
dekret[] nie ma znaczenia — aplikacja rozdziela je po obecności pola zapisRownolegly, a nie po pozycji w tablicy. Suma kwot równoległych nie musi się równać sumie zapisów podstawowych: powyżej koszt 8 000,00 rozdzielono na dwa miejsca powstawania, a zapis podstawowy MA opiewa na kwotę brutto.
Odpowiedź jest przetwarzana rekord po rekordzie: pojedyncza faktura o nieoczekiwanej strukturze jest raportowana użytkownikowi i pomijana, a pozostałe dokumenty z odpowiedzi zostają wczytane. Awaria jednego dokumentu nie przerywa całego pobrania.
Przenosi kartotekę kontrahentów z bazy Symfonii FK do V-Desk. Aplikacja wysyła po jednym kontrahencie na żądanie (tablica jednoelementowa), dzięki czemu błąd jednego rekordu nie przerywa całej operacji — na końcu użytkownik dostaje zbiorczy raport.
| Parametr | Typ | Wymagany | Opis |
|---|---|---|---|
| apikey | string | tak | Klucz API instancji. |
| company | string | tak | Kod firmy. Bez niego serwer odpowiada HTTP 500 company parameter is mandatory. |
POST /api/company/import?apikey=a1b2c3d4e5f60718293a4b5c6d7e8f90&company=FIRMA HTTP/1.1
Host: firma-przykladowa.vdesk.przyklad.pl
Content-Type: application/json
Accept: application/json
User-Agent: C# App
[
{
"id": 1042,
"name": "Kontrahent A Sp. z o.o.",
"nip": "1111111111",
"city": "Miasto Przykładowe",
"country": "PL",
"postalCode": "00-001",
"address": "Przykładowa 12/3",
"postOffice": null,
"phone": "+48 00 000 00 00",
"email": "kontakt@przyklad.example",
"description": "Kontrahent przeniesiony z Symfonia FK",
"nrb": "PL00 0000 0000 0000 0000 0000 0000",
"status": 1
}
]
| Pole | Typ | Źródło w Symfonii FK |
|---|---|---|
| id | int | Pozycja kontrahenta w kartotece Symfonii — pełni rolę klucza dopasowania po stronie V-Desk. |
| name | string | Nazwa kontrahenta. |
| nip | string | NIP. |
| city | string | Miejscowość. |
| country | string | Kod kraju. |
| postalCode | string | Kod pocztowy. |
| address | string | Ulica z numerem. |
| postOffice | string | Poczta. Pole obsługiwane przez API, ale aplikacja go obecnie nie wypełnia. |
| phone | string | Telefon. |
| string | Adres e-mail. | |
| description | string | Opis kontrahenta. |
| nrb | string | Numer rachunku bankowego. Pole jest pomijane, gdy w Symfonii nie ma zapisanego rachunku. |
| status | int | Status aktywności kontrahenta. |
{ "status": "ok", "msg": "" }
Odpowiedź inna niż status: "ok", kod HTTP spoza zakresu sukcesu albo treść, która nie jest poprawnym JSON-em, kończą się dopisaniem kontrahenta do raportu błędów wraz z dosłowną treścią odpowiedzi serwera (przycinaną do 600 znaków).
Po zaksięgowaniu faktury w buforze Symfonii aplikacja może odesłać do V-Desk numer nadanego dokumentu (PK). Dzięki temu w V-Desk widać, że dokument został już przeniesiony do księgowości — i to właśnie na tej podstawie działa filtr showImported przy pobieraniu.
POST /api/invoice/import/pk?apikey=a1b2c3d4e5f60718293a4b5c6d7e8f90 HTTP/1.1
Host: firma-przykladowa.vdesk.przyklad.pl
Content-Type: application/json
Accept: application/json
User-Agent: C# App
[
{
"id": 104821,
"numerDokumnetuSymfonia": "3/2026"
}
]
| Pole | Typ | Opis |
|---|---|---|
| id | uint | Identyfikator dokumentu w V-Desk — ten sam, który przyszedł w /invoice/export. |
| numerDokumnetuSymfonia | string | Numer dokumentu nadany przez Symfonię FK przy zapisie do bufora. |
numerDokumnetuSymfonia zawiera literówkę (Dokumnetu zamiast Dokumentu), ale jest częścią kontraktu API — należy ją stosować dosłownie. Poprawienie pisowni po stronie klienta spowoduje, że serwer nie rozpozna wartości.
HTTP 500 niezależnie od poprawności ciała żądania. Przyczyna leży po stronie serwera. Jeżeli zwrot numeru nie działa, funkcję automatycznego odsyłania ID można wyłączyć w ustawieniach aplikacji — nie blokuje to księgowania, a jedynie oznaczanie dokumentów jako przeniesionych.
V-Desk przyjmuje słowniki pomocnicze (rodzaje kosztów, marki, wymiary analityczne itp.). Ścieżka końcówki nie jest zaszyta w aplikacji — użytkownik definiuje ją samodzielnie razem z nazwą słownika, ponieważ zestaw słowników różni się między wdrożeniami. Przykładowe ścieżki spotykane we wdrożeniach: /import/costtype, /brand/import.
POST /api/import/costtype?apikey=a1b2c3d4e5f60718293a4b5c6d7e8f90 HTTP/1.1
Host: firma-przykladowa.vdesk.przyklad.pl
Content-Type: application/json
Accept: application/json
User-Agent: C# App
[
{ "value": "MAT", "description": "Materiały", "isActive": "1" },
{ "value": "USL", "description": "Usługi obce", "isActive": "1" },
{ "value": "TRA", "description": "Transport", "isActive": "0" }
]
| Pole | Typ | Opis |
|---|---|---|
| value | string | Kod pozycji słownika. |
| description | string | Nazwa opisowa pozycji. |
| isActive | string | "1" — pozycja aktywna, "0" — nieaktywna. Wartość tekstowa, nie logiczna. |
W jednym żądaniu wysyłane są wszystkie zaznaczone pozycje danego słownika. Odpowiedź ma standardowy format statusu (rozdział 4.1).
| Kod / objaw | Typowa przyczyna | Co zrobić |
|---|---|---|
| 400 | Invalid company type [X]. Allowed values: [...] — kod firmy spoza listy dozwolonej dla instancji. | Ustawić kod firmy zgodnie z listą podaną w komunikacie. |
| 401 / 403 | Nieprawidłowy, wygasły lub cofnięty klucz API. | Uzyskać nowy klucz od dostawcy V-Desk. |
| 404 | Zły adres bazowy albo końcówka nieudostępniona na tej instancji. | Sprawdzić adres bazowy (bez ukośnika i bez ścieżki) oraz to, czy dana operacja jest w ogóle włączona dla klienta. |
| 500 | company parameter is mandatory — brak wymaganego kodu firmy. | Uzupełnić kod firmy w ustawieniach. |
| 500 | Błąd wewnętrzny serwera — m.in. znany problem końcówki /invoice/import/pk. | Zgłosić dostawcy V-Desk z dokładną treścią odpowiedzi (bez klucza API). |
| 200, ale nie JSON | Serwer zwrócił stronę HTML (np. ekran logowania portalu albo komunikat serwera pośredniczącego). | Sprawdzić, czy adres bazowy prowadzi do API, a nie do interfejsu przeglądarkowego. |
200, status ≠ ok | Żądanie doszło, ale operacja została odrzucona logicznie — przyczyna w polu msg. | Przeczytać msg; przy wysyłce kontrahentów treść trafia do raportu zbiorczego. |
Aplikacja nie zapisuje niczego wprost do bazy danych Symfonii — korzysta wyłącznie z obiektów integracji dostarczanych przez producenta systemu Symfonia. Poniżej skrót odwzorowania danych z API na dokument księgowy.
| Dane z API | Odwzorowanie w Symfonii FK |
|---|---|
pozycjeVAT[] | Osobny rejestr VAT dla każdej stawki, z podstawą i kwotą podatku przeliczonymi na złote według kurs. Stawki NP/OO, ZW i BP mapowane są na odpowiadające im oznaczenia Symfonii. |
dekret[] bez zapisRownolegly | Zapisy podstawowe grupy księgowej: pozycje winien na kontach kosztowych, jedna pozycja ma na koncie zobowiązania. Do zapisu ma zakładany jest rozrachunek z terminem płatności. |
dekret[] z zapisRownolegly | Osobna grupa zapisów równoległych, dodawana po zapisach podstawowych i po VAT. Rozrachunek nie jest zakładany, ponieważ API nie przekazuje terminu płatności dla pary równoległej. |
nrKSEF, dataKSEF | Numer i data KSeF na nagłówku dokumentu. Numer służy też do rozpoznawania dokumentów już zaksięgowanych. |
brak nrKSEF | Nagłówek dokumentu dostaje znacznik JPK_V7 BFK (faktura poza KSeF). |
waluta ≠ PLN | Na każdym zapisie ustawiane są waluta, kurs i kwota walutowa; kwoty księgowe przeliczane są na złote. |
id | Zapamiętywany, żeby po zaksięgowaniu odesłać numer PK końcówką /invoice/import/pk. |
apikey.