InFakt API
Infakt API umożliwia dostęp do zasobów serwisu inFakt.pl za pomocą interfejsu XML/JSON. Dzięki temu możliwe staje się stworzenie zewnętrznych aplikacji integrujących się z kontem użytkownika inFakt.pl.
Ogólne informacje
Service URL
Punkt dostępowy API znajduje się pod adresem:
Dostęp do API inFakt
-
https://www.infakt.pl/api/v2/
Należy zwrócić uwagę, ze dostęp odbywa się szyfrowanym połączeniem ( https:// ).
Nagłówki
Aby bezproblemowo korzystać z API należy ustawić nagłówki Accept oraz Content-type: XML
XML
-
Accept: application/xml -
Content-type: application/xml
JSON
-
Accept: application/json -
Content-type: application/json
Rozszerzenia
Należy również podać odpowiednie “rozszerzenie” w URLu, np.:
Rozszerzenie JSON
-
https://www.infakt.pl/api/v2/clients.json
lub
Rozszerzenie XML
-
https://www.infakt.pl/api/v2/invoices.xml
Metody HTTP
Wykorzystywane są dwie metody: GET i POST. W przypadku metody POST jako treść należy przekazać dane w formacie odpowiadającej wybranemu rozszerzeniu (dokument XML lub string JSON)
Uwierzytelnianie
Uwierzytelnianie odbywa się za pomocą protokołu oAuth ( http://oauth.net/ ). Dla potrzeb aplikacji mobilnych i desktopowych zostal on zmodyfikowany tak, aby autoryzacja mogła odbyć się używając loginu i hasła użytkownika (idea zaczerpnięta z API Twitter: http://dev.twitter.com/pages/xauth ).
Kody statusu/błędów
Rezultat wykonanego zapytania można określić na podstawie kodu błędu HTTP.
W InFakt API używane są następujące kody:
-
200 OK
Zapytanie zostało wykonane poprawnie -
400 Bad Reguest
Parametr przyjął nieprawidłową wartość lub wartość parametru nie znajduje się w określonym zbiorze. -
401 Unauthorized
Brak autoryzacji lub uprawnień do danego zasobu. -
402 Payment Required
Ograniczenia wykupionego pakietu uniemożliwiają dostęp do zasobu. -
404 Not Found
Zasób nie został znaleziony lub nie istnieje. -
406 Not Acceptable
Wymagany parametr nie został przekazany. -
409 Conflict
Kod zwracany przy nieudanej próbie zapisu danych (np. dodawanie klienta, dodawanie faktury). W odpowiedzi załączone zostaną pola, które nie przeszły walidacji.
Uwierzytelnianie
Opis
Uwierzytelnianie odbywa się z wykorzystaniem protokołu
Wygenerowany zostanie consumer_key oraz consumer_secret - dane te należy umieścić w aplikacji.
Na potrzeby urządzeń mobilnych i aplikacji desktopowych zaimplementowane zostało rozszerzenie xAuth (podobne rozwiązanie znane z API Twitter - http://dev.twitter.com/pages/xauth ).
Aby zalogować się za pomocą xAuth należy również skorzystać z consumer_key oraz @consumer_secret@ , jednak żądanie wykonywane jest bezpośrednio do @https://www.infakt.pl/oauth/access_token@ dodatkowo przekazując za pomocą metody POST dodatkowe dane:
-
x_auth_username
nazwa użytkownika dla którego chcemy uzyskać token -
x_auth_password
hasło użytkownika dla którego chcemy uzyskać token -
x_auth_mode
zmienna ta musi przyjąć wartość client_auth
Po prawidłowej autoryzacji, w odpowiedzi zostanie zwrócony oauth_token oraz oauth_token_secret. W tym momencie z aplikacja powinna usunąć dane użytkownika (x_auth_username i x_auth_password) a do uwierzytelniania na serwerze powinna korzystać ze standardowych procedur oAuth.
Przykład
Zakładając, że: Consumer Key: JXqGL77C6Gs1JkK0DYsK Consumer Secret: StbgxM7BK1hBDeCzbLBGeW8nwvnCQuvbKr9cTptu
Dane użytkownika: login: testuser hasło: aeVaa9eRena
Skrypt w Ruby:
Przykładowy skrypt
1 #!/usr/bin/env ruby 2 3 require "rubygems" 4 require "oauth" 5 require "json" 6 7 module XAuth 8 module_function 9 def retrieve_access_token( 10 username, 11 password, 12 consumer_key, 13 consumer_secret, 14 site = "https://www.infakt.pl") 15 16 consumer = OAuth::Consumer.new( 17 consumer_key, 18 consumer_secret, 19 :site => site 20 ) 21 22 access_token = consumer.get_access_token(nil, {}, { 23 :x_auth_mode => "client_auth", 24 :x_auth_username => username, 25 :x_auth_password => password, 26 }) 27 28 [consumer, access_token] 29 end 30 end 31 32 if $0 == __FILE__ 33 puts "---------- Retrieving an access token... ----------" 34 35 consumer, access_token = XAuth.retrieve_access_token(*ARGV) 36 puts "Consumer key: #{consumer.key}" 37 puts "Consumer token secret: #{consumer.secret}" 38 puts "Access token: #{access_token.token}" 39 puts "Access token secret: #{access_token.secret}" 40 41 puts "---------- Retrieving user data... ----------" 42 43 response = access_token.get("/api/v2/settings/user_data.json") 44 user_data = JSON.load(response.body) 45 user_data["user_data"].each do |key, value| 46 puts "#{sprintf "%-15s", key}: #{value}" 47 end 48 end
użycie:
Przykładowy wynik
1 ./xauth.rb user password consumer_key consumer_secret https://adres 2 ./xauth.rb "testuser" \ 3 "aeVaa9eRena" \ 4 "JXqGL77C6Gs1JkK0DYsK" \ 5 "StbgxM7BK1hBDeCzbLBGeW8nwvnCQuvbKr9cTptu" \ 6 https://www.infakt.pl
wynik:
Przykładowe użycie
1 ---------- Retrieving an access token... ---------- 2 Consumer key: JXqGL77C6Gs1JkK0DYsK 3 Consumer token secret: StbgxM7BK1hBDeCzbLBGeW8nwvnCQuvbKr9cTptu 4 Access token: K1FzSdad3zBAjSJZ8XVF 5 Access token secret: ZbCZ7M9b57ErKPeRzqvB3CW3AKmHnxjaqhtXLNR4 6 ---------- Retrieving user data... ---------- 7 8 imie : Test 9 nazwisko : User 10 nazwa_firmy : Firma Testowa 11 ulica : Kolorowa 12 kod_pocztowy : 11-111 13 miejscowosc : Kraków 14 nip : 6794370641 15 numer_telefonu : 12 123 123 123 16 email : test@test.pl 17 rodzaj_dzialalnosci : 90099 (oznaczenie działalności gospodarczej GUS)
Po stronie aplikacji klienckiej należy zachować Access token i Access token secret - w połączeniu z Consumer Key i Consumer Secret umożliwią poprawne uwierzytelnienie na serwerze.
Prosta implementacja logowania z wykorzystaniem Access token i Access token secret języku Ruby za pomocą Gemu oAuth może wyglądać następująco :
Prosta implementacja logowania
1 @consumer = OAuth::Consumer.new( 2 consumer_key, 3 consumer_secret, 4 {:site => 'https://www.infakt.pl'}) 5 @access_token = OAuth::AccessToken.new( 6 @consumer, 7 access_token, 8 access_token_secret) 9 @access_token.get('/api/v2/settings/user_data.json')
Implementacje protokołu oAuth w różnych językach mozna znaleźć pod adresem http://oauth.net/code/
Klienci
Pola dla zasobu client:
Zasób client
1 client_id 2 nazwa_firmy 3 ulica 4 miejscowosc 5 panstwo 6 kod_pocztowy 7 nip 8 numer_telefonu 9 adres_www 10 email 11 info
List
Pobieranie listy klientów przypisanych do konta.
URL
Url (pobieranie listy klientów)
1 (GET) https://www.infakt.pl/api/v2/clients/list.:formatWymagane parametry
brak
Opcjonalne parametry
Parametry opcjonalne
1 page - numer pobieranej strony wyników 2 per_page - ilość wyników na stronie 3 nip - wyszukiwanie klientow z podanym numerem NIP.
Przy wyszukiwaniu klienta po numerze NIP dopasowywane są wszystkie znaki przekazane w zapytaniu. Przekazanie w parametrze nip wartosci 923 wyszuka klientów z NIPem 781 (92) 80 (3) 72_, 55 (923) 37692 jak i 6 (9) 34 667
Przykład
XML
Zapytanie:
Przykładowe zapytanie wyświetlające listę klientów (XML)
1 (GET) https://www.infakt.pl/api/v2/clients.xmlOdpowiedź:
Kod HTTP: 200
1 <?xml version="1.0" encoding="UTF-8"?> 2 <clients per_page="10" total="2" pages="1" page="1"> 3 <client> 4 <numer_telefonu>12 123 123</numer_telefonu> 5 <nip>5215922894</nip> 6 <adres_www>http://www.infakt.pl</adres_www> 7 <miejscowosc>Kraków</miejscowosc> 8 <ulica>Krakowska</ulica> 9 <kod_pocztowy>31-272</kod_pocztowy> 10 <panstwo>Polska</panstwo> 11 <nazwa_firmy>Klient A</nazwa_firmy> 12 <info>Bardzo dobry klient</info> 13 <email>infakt@www.infakt.pl</email> 14 <client_id>310947</client_id> 15 </client> 16 <client> 17 ... 18 </client> 19 </clients>
JSON
Zapytanie:
Przykładowe zapytanie wyświetlające listę klientów (JSON)
1 (GET) https://www.infakt.pl/api/v2/clients.jsonOdpowiedź:
Kod HTTP: 200
1 { 2 "info":{ 3 "per_page":"10", 4 "total":2, 5 "pages":1, 6 "page":1 7 }, 8 "clients":[ 9 { 10 "panstwo":"Polska", 11 "nip":"5215922894", 12 "numer_telefonu":"12 123 123", 13 "miejscowosc":"Krak\u00f3w", 14 "adres_www":"http://www.infakt.pl", 15 "ulica":"Krakowska", 16 "kod_pocztowy":"31-272", 17 "nazwa_firmy":"Klient A", 18 "email":"infakt@www.infakt.pl", 19 "info":"Bardzo dobry klient", 20 "client_id":310947 21 }, 22 { ... } 23 ] 24 }
Show
Wyświetlanie rekordu danego klienta.
URL
Wyświetlenie rekordu klienta
1 (GET) https://www.infakt.pl/api/v2/clients/show.:formatlub
Wyświetlenie rekordu klienta (z parametrem :id)
1 (GET) https://www.infakt.pl/api/v2/clients/show/:id.:formatWymagane parametry
id lub client_id jesli ID nie został przekazany w URL.
Opcjonalne parametry
brak
Przykład
XML
Zapytanie:
Przykładowe zapytanie wyświetlające rekord client (XML)
1 (GET) https://www.infakt.pl/api/v2/clients/show/1.xmlOdpowiedź:
Kod HTTP: 200
1 <?xml version="1.0" encoding="UTF-8"?> 2 <client> 3 <numer_telefonu>12 123 123</numer_telefonu> 4 <nip>5215922894</nip> 5 <adres_www>http://www.infakt.pl</adres_www> 6 <miejscowosc>Kraków</miejscowosc> 7 <ulica>Krakowska</ulica> 8 <kod_pocztowy>31-272</kod_pocztowy> 9 <panstwo>Polska</panstwo> 10 <nazwa_firmy>Klient A</nazwa_firmy> 11 <info>Bardzo dobry klient</info> 12 <email>infakt@www.infakt.pl</email> 13 <client_id>1</client_id> 14 </client>
Odpowiedź z błędem:
Kod HTTP: 404
1 <?xml version="1.0" encoding="UTF-8"?> 2 <hash> 3 <message>No Client found with that ID.</message> 4 <request>https://www.infakt.pl/api/v2/clients/show/1.xml</request> 5 </hash>
JSON
Zapytanie:
Przykładowe zapytanie wyświetlające rekord client (JSON)
1 (GET) https://www.infakt.pl/api/v2/clients/show.json?id=1Odpowiedź:
Kod HTTP: 200
1 { 2 "client":{ 3 "panstwo":"Polska", 4 "nip":"5215922894", 5 "numer_telefonu":"12 123 123", 6 "miejscowosc":"Krak\u00f3w", 7 "adres_www":"http://www.infakt.pl", 8 "ulica":"Krakowska", 9 "kod_pocztowy":"31-272", 10 "nazwa_firmy":"Klient A", 11 "email":"infakt@www.infakt.pl", 12 "info":"Bardzo dobry klient", 13 "client_id":310947 14 } 15 }
Odpowiedź z błędem:
Kod HTTP: 404
1 { 2 "message":"No Client found with that ID.", 3 "request":"https://www.infakt.pl/api/v2/clients/show.json?id=169" 4 }
Create
Tworzenie klienta. Jeśli operacja została wykonana poprawnie zwrócony zostanie ID nowego rekordu. W przeciwnym wypadku odpowiedź będzie miała określony kod błędu oraz dołączony zostanie komunikat z opisem błędów.
URL
Url (tworzenie rekordu client)
1 (POST) https://www.infakt.pl/api/v2/clients/create.:formatWymagane parametry
W przypadku XML nalezy w treści żądania przekazać dokument XML, dla JSON string w tym formacie.
Wymagane pola
1 nazwa_firmy - pole wymagane
W przypadku nieokreślenia kraju (parametr panstwo) domyślnie zostanie ustawiony kraj Polska.
W przypadku wybraniu kraju _Polska_ sprawdzana będzie poprawność kodu pocztowego oraz numeru NIP.
W przypadku wybrania kraju należącego do Unii Europejskiej sprawdzana będzie poprawność NIP-UE z uwzględnieniem jedynie kodu kraju na początku ciągu znaków,
np. dla wybranego kraju Niemcy poprawnym numerem NIP będzie np. DE1234567 oraz DE 123-456-789, niepoprawny zaś UK 1234567.
W przypadku wybrania kraju innego niż Polska nie jest sprawdzana poprawność kodu pocztowego.
W każdym przypadku możliwe jest pominięcia NIPu oraz kodu pocztowego.
Opcjonalne parametry
Pozostałe parametry klienta.
Przykład
XML
Zapytanie:
Przykład tworzenia rekordu client (XML)
1 (POST) https://www.infakt.pl/api/v2/clients/create.xmlZapytanie XML
1 <?xml version="1.0" encoding="UTF-8"?> 2 <client> 3 <nazwa_firmy>Nazwa firmy</nazwa_firmy> 4 <numer_telefonu>12 123 123 123</numer_telefonu> 5 </client>
Odpowiedź:
Kod HTTP: 200
1 <?xml version="1.0" encoding="UTF-8"?> 2 <client> 3 <client_id>2</client_id> 4 </client>
Odpowiedź z błędem:
Kod HTTP: 409
1 <?xml version="1.0" encoding="UTF-8"?> 2 <hash> 3 <message>Some fields were given invalid or no values</message> 4 <request>https://www.infakt.pl/api/v2/clients/create.xml</request> 5 <errors type="array"> 6 <error> 7 <field>nazwa_firmy</field> 8 <message>blank</message> 9 </error> 10 </errors> 11 </hash>
JSON
Zapytanie:
Przykład tworzenia rekordu client (JSON)
1 (POST) https://www.infakt.pl/api/v2/clients/create.jsonJSON
1 { 2 "client":{ 3 "nazwa_firmy":"Nazwa Firmy", 4 "numer_telefonu":"12 123 123 123" 5 } 6 }
Odpowiedź:
Kod HTTP: 200
1 { 2 "client":{ 3 "client_id":397903 4 } 5 }
Odpowiedź z błędem:
Kod HTTP: 409
1 { 2 "message":"Some fields were given invalid or no values", 3 "request":"https://www.infakt.pl/api/v2/clients/create.json", 4 "errors":[ 5 ["nazwa_firmy","blank"] 6 ] 7 }
Update
Aktualizowanie rekordu klienta.
Jeśli operacja zakończyła się poprawnie zostanie zwrócony ID zaktualizowanego rekordu.
W przeciwnym wypadku odpowiedź będzie miała określony kod błędu oraz dołączony zostanie komunikat z opisem błędów.
Aktualizacja danych klienta nie aktualizuje danych na wystawionej wczesniej fakturze.
URL
Aktualizacja rekordu client
1 (POST) https://www.infakt.pl/api/v2/clients/update.:formatlub
Aktualizacja rekordu client (z parametrem :id)
1 (POST) https://www.infakt.pl/api/v2/clients/update/:id.:formatWymagane parametry
id lub client_id jesli ID nie został przekazany w URL.
W przypadku XML nalezy w treści żądania przekazać dokument XML, dla JSON string w tym formacie.
Opcjonalne parametry
Pozostałe parametry klienta.
Przykład
XML
Zapytanie:
Przykład aktualizacji rekordu client (XML)
1 <?xml version="1.0" encoding="UTF-8"?> 2 <client> 3 <ulica>Warszawska</ulica> 4 <kod_pocztowy>11-111</kod_pocztowy> 5 </client>
Odpowiedź:
Kod HTTP: 200
1 <?xml version="1.0" encoding="UTF-8"?> 2 <client> 3 <client_id>1</client_id> 4 </client>
Błędne zapytanie:
Przykład błędnej aktualizacji rekordu client (XML)
1 <?xml version="1.0" encoding="UTF-8"?> 2 <client> 3 <ulica>Krakowska</ulica> 4 <kod_pocztowy>11-111</kod_pocztowy> 5 <nazwa_firmy> </nazwa_firmy> 6 </client>
Odpowiedź z błędem:
Kod HTTP: 409
1 <?xml version="1.0" encoding="UTF-8"?> 2 <hash> 3 <message>Some fields were given invalid or no values</message> 4 <request>https://www.infakt.pl/api/v2/clients/update/1.xml</request> 5 <errors type="array"> 6 <error> 7 <message>blank</message> 8 <field>nazwa_firmy</field> 9 </error> 10 </errors> 11 </hash>
JSON
Zapytanie:
Przykład aktualizacji rekordu client (JSON)
1 (POST) https://www.infakt.pl/api/v2/clients/update/1.jsonJSON
1 { 2 "client":{ 3 "ulica":"Warszawska", 4 "numer_telefonu":"12 123 123 123" 5 } 6 }
Odpowiedź:
Kod HTTP: 200
1 { 2 "client":{ 3 "client_id":1 4 } 5 }
Błędne zapytanie:
Przykład błędnej aktualizacji rekordu client (JSON)
1 { 2 "client":{ 3 "nazwa_firmy":"", 4 "ulica":"Warszawska", 5 "numer_telefonu":"12 123 123 123" 6 } 7 }
Odpowiedź z błędem:
Kod HTTP: 409
1 { 2 "message":"Some fields were given invalid or no values", 3 "request":"https://www.infakt.pl/api/v2/clients/update/1.json", 4 "errors":[ 5 ["nazwa_firmy","blank"] 6 ] 7 }
Delete
Usuwanie klienta o danym ID.
Jeśli zapytanie zostało wykonane poprawnie zwrócony zostanie ID usuniętego rekordu.
URL
Usuwanie rekordu client
1 (POST) https://www.infakt.pl/api/v2/clients/delete.:formatlub
Usuwanie rekordu client (z parametrem :id)
1 (POST) https://www.infakt.pl/api/v2/clients/delete/:id.:formatWymagane parametry
id lub client_id jesli ID nie został przekazany w URL.
Opcjonalne parametry
brak
Przykład
XML
Zapytanie:
Przykład usuwania rekordu client (XML)
1 (GET) https://www.infakt.pl/api/v2/clients/delete/1.xmlOdpowiedź:
Kod HTTP: 200
1 <?xml version="1.0" encoding="UTF-8"?> 2 <client> 3 <client_id>1</client_id> 4 </client>
JSON
Zapytanie:
Przykład usuwania rekordu client (JSON)
1 (GET) https://www.infakt.pl/api/v2/clients/delete/1.jsonOdpowiedź:
Kod HTTP: 200
1 { 2 "client":{ 3 "client_id":1 4 } 5 }
Invoices
Pola dla zasobu invoice:
Zasób invoice
1 invoice_id 2 numer 3 waluta 4 zaplacono 5 uwagi 6 rodzaj_faktury 7 sposob_platnosci 8 podpis_odbiorcy 9 podpis_sprzedawcy 10 data_wystawienia 11 data_sprzedazy 12 termin_zaplaty 13 status 14 client_id 15 razem_netto 16 razem_vat 17 razem_brutto 18 client_nazwa_firmy 19 client_ulica 20 client_miejscowosc 21 client_kod_pocztowy 22 client_nip 23 client_panstwo 24 services
Pole rodzaj_faktury przy dodawaniu przyjmuje wartości:
- "Faktura VAT"
- "Faktura proforma"
natomiast przy pobieraniu może przyjąć wartości:
- "Faktura VAT",
- "Faktura proforma",
- "Faktura Marża",
- "Faktura Zaliczkowa",
- "Faktura korygująca",
- "Faktura Końcowa"
Pole sposob_platnosci może przyjąć następujące wartości:
- "Przelew"
- "Gotówka"
- "Karta płatnicza"
- "Barter"
- "Czek"
- "Weksel"
- "Za pobraniem"
- "Inny"
- "Kompensata"
- "Akredytywa"
Pole status może przyjąć następujące wartości:
- "niezapłacona"
- "szkic"
- "wysłana"
- "wydrukowana"
- "zapłacona"
Pole services zawiera zagnieżdzone obiekty service. Są one przekazywane dla każdej faktury:
Zasób service
1 service_id 2 product_id 3 nazwa 4 stawka_vat 5 jm 6 ilosc 7 cena_netto 8 wartosc_netto 9 wartosc_brutto 10 vat 11 symbol
Pole jm określa jednostkę miary.
Pole symbol określa symbol PKWiU.
Pole stawka_vat może przyjąć następujące wartości:
- "23"
- "22"
- "8"
- "7"
- "5"
- "3"
- "0"
- "zw"
- "np"
List
Pobieranie listy faktur przypisanych do konta.
URL
Lista faktury przypisanych do konta
1 (GET) https://www.infakt.pl/api/v2/invoices/list.:formatWymagane parametry
brak
Opcjonalne parametry
Parametry opcjonalne
1 page - numer pobieranej strony wyników 2 per_page - ilość wyników na stronie 3 order - sortowanie wyników po danym polu
Pole order przyjmuje wartość skonstruowaną z nazwy pola oraz kolejności sortowania.
pole_kolejność, gdzie pole może przyjąć jedną z wartości:
- data_wystawienia
- data_sprzedazy
- termin_zaplaty
kolejność przyjmuje wartości "asc" lub "desc".
Przykładowa wartość parametru order: data_wystawienia_desc
Przykład
XML
Zapytanie:
Przykład pobierania listy faktur (XML)
1 (GET) https://www.infakt.pl/api/v2/invoices.xmlOdpowiedź:
Kod HTTP: 200
1 <?xml version="1.0" encoding="UTF-8"?> 2 <invoices per_page="100" total="1" pages="1" page="1"> 3 <invoice> 4 <client_kod_pocztowy>31-272</client_kod_pocztowy> 5 <status>szkic</status> 6 <rodzaj_faktury>Faktura VAT</rodzaj_faktury> 7 <client_miejscowosc>Kraków</client_miejscowosc> 8 <podpis_sprzedawcy> </podpis_sprzedawcy> 9 <client_panstwo>Polska</client_panstwo> 10 <zaplacono>122.0</zaplacono> 11 <client_nip>5215922894</client_nip> 12 <razem_brutto>122.0</razem_brutto> 13 <data_sprzedazy>2010-12-15</data_sprzedazy> 14 <numer>1/12/2010</numer> 15 <razem_vat>22.0</razem_vat> 16 <termin_zaplaty>2011-06-05</termin_zaplaty> 17 <data_wystawienia>2010-12-15</data_wystawienia> 18 <uwagi></uwagi> 19 <client_nazwa_firmy>Klient A</client_nazwa_firmy> 20 <podpis_odbiorcy></podpis_odbiorcy> 21 <razem_netto>100.0</razem_netto> 22 <waluta>PLN</waluta> 23 <client_ulica>Krakowska</client_ulica> 24 <invoice_id>1012046</invoice_id> 25 <client_id>310947</client_id> 26 <sposob_platnosci>Gotówka</sposob_platnosci> 27 <services> 28 <service> 29 <symbol></symbol> 30 <cena_netto>100.0</cena_netto> 31 <jm></jm> 32 <vat>22.0</vat> 33 <ilosc>1.0</ilosc> 34 <product_id></product_id> 35 <marza></marza> 36 <wartosc_brutto>122.0</wartosc_brutto> 37 <stawka_vat>22</stawka_vat> 38 <service_id>1</service_id> 39 <wartosc_netto>100.0</wartosc_netto> 40 <nazwa>Produkt A</nazwa> 41 </service> 42 </services> 43 </invoice> 44 <invoice> 45 ... 46 </invoice> 47 </invoices>
JSON
Zapytanie:
Przykład pobierania listy faktur (JSON)
1 (GET) https://www.infakt.pl/api/v2/invoices.jsonOdpowiedź:
Kod HTTP: 200
1 { 2 "info":{ 3 "per_page":100,"total":3,"pages":1,"page":1 4 }, 5 "invoices":[ 6 { 7 "client_panstwo":"Polska", 8 "rodzaj_faktury":"Faktura VAT", 9 "status":"zap\u0142acona", 10 "client_kod_pocztowy":"31-272", 11 "client_miejscowosc":"Krak\u00f3w", 12 "invoice_id":1, 13 "podpis_odbiorcy":"", 14 "zaplacono":122.0, 15 "razem_brutto":122.0, 16 "client_nip":"5215922894", 17 "numer":"1/12/2010", 18 "data_sprzedazy":"2010-12-15", 19 "podpis_sprzedawcy":" ", 20 "services":[ 21 { 22 "service_id":1, 23 "cena_netto":100.0, 24 "symbol":"", 25 "stawka_vat":"", 26 "jm":"", 27 "vat":22.0, 28 "product_id":null, 29 "ilosc":"1.0", 30 "wartosc_brutto":122.0, 31 "marza":null, 32 "nazwa":"Produkt A", 33 "wartosc_netto":100.0 34 } 35 ], 36 "uwagi":"", 37 "data_wystawienia":"2010-12-15", 38 "termin_zaplaty":"2010-12-22", 39 "razem_vat":22.0, 40 "client_nazwa_firmy":"Klient A", 41 "waluta":"PLN", 42 "razem_netto":100.0, 43 "client_ulica":"Krakowska", 44 "sposob_platnosci":"Got\u00f3wka", 45 "client_id":1 46 }, 47 { ... } 48 ] 49 }
Show
Wyświetlanie rekordu danej faktury.
URL
Pobieranie rekordu faktury
1 (GET) https://www.infakt.pl/api/v2/invoices/show.:formatlub
Pobieranie rekordu faktury (z parametrem :id)
1 (GET) https://www.infakt.pl/api/v2/invoices/show/:id.:formatWymagane parametry
id lub invoice_id jesli ID nie został przekazany w URL.
Opcjonalne parametry
brak
Przykład
XML
Zapytanie:
Przykład pobierania rekordu faktury (XML)
1 (GET) @https://www.infakt.pl/api/v2/invoices/show/1.xmlOdpowiedź:
Kod HTTP: 200
1 <?xml version="1.0" encoding="UTF-8"?> 2 <invoice> 3 <client_kod_pocztowy>31-272</client_kod_pocztowy> 4 <status>szkic</status> 5 <rodzaj_faktury>Faktura VAT</rodzaj_faktury> 6 <client_miejscowosc>Kraków</client_miejscowosc> 7 <podpis_sprzedawcy> </podpis_sprzedawcy> 8 <client_panstwo>Polska</client_panstwo> 9 <zaplacono>122.0</zaplacono> 10 <client_nip>5215922894</client_nip> 11 <razem_brutto>122.0</razem_brutto> 12 <data_sprzedazy>2010-12-15</data_sprzedazy> 13 <numer>1/12/2010</numer> 14 <razem_vat>22.0</razem_vat> 15 <termin_zaplaty>2011-06-05</termin_zaplaty> 16 <data_wystawienia>2010-12-15</data_wystawienia> 17 <uwagi></uwagi> 18 <client_nazwa_firmy>Klient A</client_nazwa_firmy> 19 <podpis_odbiorcy></podpis_odbiorcy> 20 <razem_netto>100.0</razem_netto> 21 <waluta>PLN</waluta> 22 <client_ulica>Krakowska</client_ulica> 23 <invoice_id>1012046</invoice_id> 24 <client_id>310947</client_id> 25 <sposob_platnosci>Gotówka</sposob_platnosci> 26 <services> 27 <service> 28 <symbol></symbol> 29 <cena_netto>100.0</cena_netto> 30 <jm></jm> 31 <vat>22.0</vat> 32 <ilosc>1.0</ilosc> 33 <product_id></product_id> 34 <marza></marza> 35 <wartosc_brutto>122.0</wartosc_brutto> 36 <stawka_vat>22</stawka_vat> 37 <service_id>1</service_id> 38 <wartosc_netto>100.0</wartosc_netto> 39 <nazwa>Produkt A</nazwa> 40 </service> 41 </services> 42 </invoice>
Odpowiedź z błędem:
Kod HTTP: 404
1 <?xml version="1.0" encoding="UTF-8"?> 2 <hash> 3 <message>No record found with that ID.</message> 4 <request>https://www.infakt.pl/api/v2/invoices/show.xml?id=3</request> 5 </hash>
JSON
Zapytanie:
Przykład pobierania rekordu faktury (JSON)
1 (GET) https://www.infakt.pl/api/v2/invoices/show.json?invoice_id=1Odpowiedź:
Kod HTTP: 200
1 { 2 "invoice":{ 3 "client_panstwo":"Polska", 4 "rodzaj_faktury":"Faktura VAT", 5 "status":"zap\u0142acona", 6 "client_kod_pocztowy":"31-272", 7 "client_miejscowosc":"Krak\u00f3w", 8 "invoice_id":1012046, 9 "podpis_odbiorcy":"", 10 "zaplacono":122.0, 11 "razem_brutto":122.0, 12 "client_nip":"5215922894", 13 "numer":"1/12/2010", 14 "data_sprzedazy":"2010-12-15", 15 "podpis_sprzedawcy":" ", 16 "services":[ 17 { 18 "service_id":2, 19 "cena_netto":100.0, 20 "symbol":"", 21 "stawka_vat":"", 22 "jm":"", 23 "vat":22.0, 24 "product_id":1, 25 "ilosc":"1.0", 26 "wartosc_brutto":122.0, 27 "nazwa":"Produkt A", 28 "wartosc_netto":100.0 29 } 30 ], 31 "uwagi":"", 32 "data_wystawienia":"2010-12-15", 33 "termin_zaplaty":"2011-06-05", 34 "razem_vat":22.0, 35 "client_nazwa_firmy":"Klient A", 36 "waluta":"PLN", 37 "razem_netto":100.0, 38 "client_ulica":"Krakowska", 39 "sposob_platnosci":"Got\u00f3wka", 40 "client_id":4 41 } 42 }
Odpowiedź z błędem:
Kod HTTP: 404
1 { 2 "message":"No record found with that ID.", 3 "request":"https://www.infakt.pl/api/v2/invoices/show.json?id=5" 4 }
Create
Tworzenie faktury.
Jeśli operacja została wykonana poprawnie zwrócony zostanie ID nowego rekordu.
W przeciwnym wypadku odpowiedź będzie miała określony kod błędu oraz dołączony zostanie komunikat z opisem błędów.
Obecnie możliwe jest dodawanie wyłacznie faktury
VAT
oraz faktury
proforma
URL
Tworzenie rekordu faktury
1 (POST) https://www.infakt.pl/api/v2/invoices/create.:formatWymagane parametry
W przypadku XML nalezy w treści żądania przekazać dokument XML, dla JSON string w tym formacie.
Wymagane pola dla invoice
Wymagane parametry (rekord invoice)
1 client_id 2 status 3 rodzaj_faktury 4 sposob_platnosci
Wartość dla pola
client_id
musi byc równa ID klienta pobranego z listy klientów.
Wartości dla pola rodzaj_faktury:
- "Faktura VAT"
- "Faktura Proforma"
Wymagane pola dla
service
Wymagane parametry (rekord service)
1 nazwa 2 ilosc 3 stawka_vat
Możliwe jest zagnieżdżenie kilku obiektów
services.
Wartości na fakturze wyliczane sa na podstawie wartości zdefiniowanych w services.
Dla serwices wartości generowane są wg. następującej kolejności:
- od ceny jednostkowej netto
- od wartości netto
- od wartości brutto
Opcjonalne parametry
Pozostałe parametry
invoice
i
service.
Możliwe jest również wystawienie faktury ze zduplikowanym numerem. W tym celu należy przekazać parametr
unikalny_numer
ustawiony na
false
Przykład
XML
Zapytanie:
Przykład tworzenia rekordu faktury (XML)
1 (POST) https://www.infakt.pl/api/v2/invoices/create.xmlZapytanie XML
1 <?xml version="1.0" encoding="UTF-8"?> 2 <invoice> 3 <rodzaj_faktury>Faktura VAT</rodzaj_faktury> 4 <status>szkic</status> 5 <sposob_platnosci>Got%C3%B3wka</sposob_platnosci> 6 <client_id>4</client_id> 7 <services> 8 <service> 9 <ilosc>1</ilosc> 10 <cena_netto>100</cena_netto> 11 <stawka_vat>3</stawka_vat> 12 <nazwa>Produkt 1</nazwa> 13 </service> 14 <service> 15 <jm>szt.</jm> 16 <ilosc>1</ilosc> 17 <wartosc_brutto>122.0</wartosc_brutto> 18 <stawka_vat>22</stawka_vat> 19 <nazwa>Produkt B</nazwa> 20 </service> 21 </services> 22 </invoice>
Odpowiedź:
Kod HTTP: 200
1 <?xml version="1.0" encoding="UTF-8"?> 2 <invoice> 3 <invoice_id>6</invoice_id> 4 <numer>1/01/2010</numer> 5 </invoice>
Zapytanie z błędami:
Błędne zapytanie (XML)
1 <?xml version="1.0" encoding="UTF-8"?> 2 <invoice> 3 <rodzaj_faktury>Faktura VAT</rodzaj_faktury> 4 <status>szkic</status> 5 <sposob_platnosci>Got%C3%B3wka</sposob_platnosci> 6 <client_id>4</client_id> 7 <services> 8 <service> 9 <ilosc>1</ilosc> 10 <cena_netto>100</cena_netto> 11 <stawka_vat>3</stawka_vat> 12 <nazwa>Produkt 1</nazwa> 13 </service> 14 <service> 15 <jm>szt.</jm> 16 <ilosc>1</ilosc> 17 <wartosc_brutto>122.0</wartosc_brutto> 18 <stawka_vat>22</stawka_vat> 19 </service> 20 </services> 21 </invoice>
Odpowiedź z błędem:
Kod HTTP: 409
1 <?xml version="1.0" encoding="UTF-8"?> 2 <hash> 3 <message>Some fields were given invalid or no values</message> 4 <request>/api/v2/invoices/create.xml</request> 5 <errors> 6 <invoice type="array"> 7 <invoice> 8 <message>blank</message> 9 <field>status</field> 10 </invoice> 11 <invoice> 12 <message>blank</message> 13 <field>sposob_platnosci</field> 14 </invoice> 15 </invoice> 16 <services type="array"> 17 <service type="array"> 18 <service> 19 <message>blank</message> 20 <field>stawka_vat</field> 21 </service> 22 </service> 23 </services> 24 </errors> 25 </hash>
Odpowiedź z błedem w przypadku osiągnięcia limitu wystawionych faktur:
Kod HTTP: 402
1 <?xml version="1.0" encoding="UTF-8"?> 2 <hash> 3 <message>Request unable to process. 4 Consider extanding your payment plan.</message> 5 <request>/api/v2/invoices/create.xml</request> 6 </hash>
JSON
Zapytanie:
Przykład tworzenia rekordu faktury (JSON)
1 (POST) https://www.infakt.pl/api/v2/invoices/create.jsonZapytanie JSON
1 { 2 "invoice":{ 3 "status":"szkic", 4 "rodzaj_faktury":"Faktura VAT", 5 "sposob_platnosci":"Got%C3%B3wka", 6 "client_id":4, 7 "services":[ 8 { 9 "nazwa":"Produkt A", 10 "ilosc":1, 11 "stawka_vat":22, 12 "wartosc_netto":100 13 }, 14 { 15 "nazwa":"Produkt B", 16 "ilosc":2, 17 "stawka_vat":3, 18 "cena_netto":50 19 } 20 ] 21 } 22 }
Odpowiedź:
Kod HTTP: 200
1 { 2 "invoice":{ 3 "invoice_id":1, 4 "numer":"1/01/2010" 5 } 6 }
Zapytanie z błędami:
Błędne zapytanei (JSON)
1 { 2 "invoice":{ 3 "status":"szkic", 4 "rodzaj_faktury":"Faktura VAT", 5 "client_id":4, 6 "services":[ 7 { 8 "ilosc":1, 9 "stawka_vat":22, 10 "wartosc_netto":100, 11 "nazwa":"Produkt A" 12 }, 13 { 14 "ilosc":2, 15 "cena_netto":50, 16 "nazwa":"Produkt B" 17 } 18 ] 19 } 20 }
Odpowiedź z błędem:
Kod HTTP: 409
1 { 2 "message":"Some fields were given invalid or no values", 3 "request":"/api/v2/invoices/create.json", 4 "errors":{ 5 "invoice":[ 6 ["sposob_platnosci","blank"] 7 ], 8 "services":[ 9 [], 10 [ 11 ["stawka_vat","blank"] 12 ] 13 ] 14 } 15 }
Odpowiedź z błedem w przypadku osiągnięcia limitu wystawionych faktur:
Kod HTTP: 402
1 { 2 "message":"Request unable to process. 3 Consider extanding your payment plan.", 4 "request":"/api/v2/invoices/create.json" 5 }
Update
Aktualizacja faktury.
Jeśli operacja została wykonana poprawnie zwrócony zostanie ID aktualizowanego rekordu.
W przeciwnym wypadku odpowiedź będzie miała określony kod błędu oraz dołączony zostanie komunikat z opisem błędów.
URL
Aktualizacja rekordu faktury
1 (POST) https://www.infakt.pl/api/v2/invoices/update/:id.:formatWymagane parametry
W fakturze uaktualniane są tylko te pola, które zostaną przekazane.
W przypadku aktualizacji listy produktów usuwane są wszystkie istniejące produkty i tworzone nowe wg. danych przekazanych w zapytaniu.
Format zapytania XML jak i JSON jest identyczny jak w przypadku dodawania faktury.
Przykład
XML
Zapytanie:
Przykład aktualizacji rekordu faktury (XML)
1 (POST) https://www.infakt.pl/api/v2/invoices/update/1.xmlZapytanie XML
1 <?xml version="1.0" encoding="UTF-8"?> 2 <invoice> 3 <status>szkic</status> 4 <uwagi>Brak uwag</uwagi> 5 <services> 6 <service> 7 <ilosc>1</ilosc> 8 <cena_netto>100</cena_netto> 9 <stawka_vat>3</stawka_vat> 10 <nazwa>Produkt 3</nazwa> 11 </service> 12 </services> 13 </invoice>
W powyższym przypadku zaktualizowany zostanie status faktury, treść uwag oraz wszystkie istniejące pozycje zostaną zastąpione pozycją Produkt 3.
Odpowiedź:
Kod HTTP: 200
1 <?xml version="1.0" encoding="UTF-8"?> 2 <invoice> 3 <invoice_id>1</invoice_id> 4 <numer>1/01/2010</numer> 5 </invoice>
Delete
Usuwanie faktury o danym ID.
Jeśli zapytanie zostało wykonane poprawnie zwrócony zostanie ID usuniętego rekordu.
URL
Usuwanie rekordu faktury
1 (POST) https://www.infakt.pl/api/v2/invoices/delete.:formatUsuwanie rekordu faktury (z parametrem :id)
1 (POST) https://www.infakt.pl/api/v2/invoices/delete/:id.:formatWymagane parametry
id lub client_id jesli ID nie został przekazany w URL.
Opcjonalne parametry
brak
Przykład
XML
Zapytanie:
Przykład usuwania rekordu faktury (XML)
1 (GET) https://www.infakt.pl/api/v2/invoices/delete/1.xmlOdpowiedź:
Kod HTTP: 200
1 <?xml version="1.0" encoding="UTF-8"?> 2 <invoice> 3 <invoice_id>1</invoice_id> 4 </invoice>
JSON
Zapytanie:
Przykład usuwania rekordu faktury (JSON))
1 (GET) https://www.infakt.pl/api/v2/invoices/delete/1.jsonOdpowiedź:
Kod HTTP: 200
1 { 2 "invoice":{ 3 "invoice_id":1 4 } 5 }
Zlecenie wysyłki faktury
Invoices -> Deliver
Wysyłanie faktury (PDF) do klienta lub na określony adres email.
Należy pamiętać, że w przypadku wysyłki do klienta konieczne jest zdefiniowanie adresu e-mail w ustawieniach klienta.
Dla wysyłki poczta tradycyjną należy posiadać wykupiony pakiet wysyłke - w przeciwnym wypadku zostanie zwrócony komunikat o konieczności wykupienia odpowiedniego pakietu.
URL
Url dla zlecenia wysyłki faktury
1 (GET) https://www.infakt.pl/api/v2/invoices/deliver.:formatWymagane parametry
Parametry wymagane
1 type - rodzaj wysyłki (e-mail, poczta tradycyjna) 2 doc_type - rodzaj wysyłanego dokumentu
type przyjmuje następujące wartości:
mail -
dla wysyłki faktury przez e-mail
post -
dla wysyłki tradycyjna pocztą
doc_type przyjmuje następujące wartości:
org -
orginał dokumentu
KOPIA -
kopia dokumentu
org_kop -
orginał i kopia
d_org -
duplikat orignału
d_kop -
duplikat kopii
Opcjonalne parametry
Parametry opcjonalne
1 recipient - adres e-mail odbiorcy fakturyJeśli pole recipient zostanie podane faktura zostanie wysłana na podany adres e-mail.
Przykład
XML
Zapytanie:
Przykład zlecenia wysyłki faktury (XML)
1 (GET) https://www.infakt.pl/api/v2/invoices/ 2 deliver.xml?type=mail&doc_type=KOPIA&id=1
Odpowiedź
Kod HTTP: 200
1 <?xml version="1.0" encoding="UTF-8"?> 2 <invoice> 3 <invoice_id>1</invoice_id> 4 </invoice>
Zapytanie z błedem:
Błędny przykład zlecenia wysyłki faktury (XML)
1 (GET) https://www.infakt.pl/api/v2/invoices/ 2 deliver.xml?type=mail&doc_type=kopia&id=1
Odpowiedź z błedem:
Kod HTTP: 400
1 <?xml version=\"1.0\" encoding=\"UTF-8\"?> 2 <hash> 3 <message>One or more parameter's value not in defined set (doc_type). 4 See documentation.</message> 5 <request>/api/v2/invoices/deliver.xml? 6 type=mail&doc_type=kopia&id=1</request> 7 </hash>
JSON
Zapytanie:
Przykład zlecenia wysyłki faktury (JSON)
1 (GET) https://www.infakt.pl/api/v2/invoices/ 2 deliver.xml?type=mail&doc_type=KOPIA&id=1
Odpowiedź
Kod HTTP: 200
1 { 2 "invoice":{ 3 "invoice_id":1 4 } 5 }
Zapytanie z błedem:
Błędny przykład zlecenia wysyłki faktury (JSON)
1 (GET) https://www.infakt.pl/api/v2/invoices/ 2 deliver.xml?type=smail&doc_type=KOPIA&id=1
Odpowiedź z błedem:
Kod HTTP: 400
1 { 2 "message":"One or more parameter\'s value not in defined set (type). 3 See documentation.", 4 "request": 5 "/api/v2/invoices/deliver.json?type=smail&doc_type=KOPIA&id=1" 6 }
Pobieranie faktury w PDF
Invoices -> Pdf
URL
Pobranie wydruku faktury w formacie PDF
1 (GET) https://infakt.pl/api/v2/invoices/pdf.:formatlub
Pobranie wydruku faktury w formacie PDF (z parametrem :id)
1 (GET) https://infakt.pl/api/v2/invoices/pdf/:id.:formatWymagane parametry
id lub invoice_id jesli ID nie został przekazany w URL.
Parametry wymagane
1 doc_type - rodzaj wysyłanego dokumentudoc_type przyjmuje następujące wartości:
org - orginał dokumentuKOPIA - kopia dokumentu
org_kop - orginał i kopia
d_org - duplikat orignału
d_kop - duplikat kopii
ang - faktura w języku angielskim
angpol - faktura w języku angielsko-polskim
Fakturę typu "ang" i "angpol" można wydrukować tylko dla faktury VAT, faktury proforma i faktury marża.
Opcjonalne parametry
brak
Przykład
XML
Zapytanie:
Przykładowe pobranie wydruku faktury w formacie PDF (XML)
1 (GET) https://infakt.pl/api/v2/invoices/pdf.xml?doc_type=Kopia&id=16Odpowiedź:
Kod HTTP: 200
1 <?xml version="1.0" encoding="UTF-8"?> 2 <hash> 3 <pdf> 4 https://www.infakt.pl/files/pdfs/Klient_A_2010-11-08-111.pdf 5 </pdf> 6 </hash>
JSON
Zapytanie:
Przykładowe pobranie wydruku faktury w formacie PDF (JSON)
1 (GET) https://infakt.pl/api/v2/invoices/pdf.json?doc_type=Kopia&id=16Odpowiedź:
Kod HTTP: 200
1 { 2 "pdf":"https://infakt.pl/files/pdfs/Klient_A_2010-11-08-111.pdf" 3 }
Wyszukiwarka faktur
Invoices -> List
Wyszukiwanie faktur odbywa się za pomocą standardowej metody pobierania listy faktur. Oprócz parametrów page oraz per_page możliwe jest filtrowanie po parametrach:
Pola zakresów
1 data_wystawienia 2 data_sprzedazy 3 termin_zaplaty 4 razem_brutto 5 razem_netto 6 razem_vat 7 zaplacono
Dla powyższych pól konieczne możliwe jest dodanie suffiksów _od oraz _do (np. data_wystawienia_od).
Pola parametrów
1 waluta 2 client_id 3 status
Dla powyższych pól należy podać konkretną wartości i niemozliwe jest wyszukiwanie zakresami.
Dodatkowo można wyszukiwać faktury po wszystkich parametrach dostępnych przez API. Możliwe jest też wyszukiwanie po fragmencie (czy pole zawiera tekst, którego szukamy) dodając suffix zawiera, np. podpis_sprzedawcy_zawiera
URL
Wyszukiwanie faktur
1 (GET) https://infakt.pl/api/v2/invoices/list.:formatPrzykład
Wyszkiwanie faktur o statusie szkic o wartości brutto mniejszej niż 100 (jednostek, w której została wystawiona faktura):
Przykładowe wyszukiwanie faktur (JSON)
1 (GET) (...)/list.json?razem_brutto_do=100&status=szkicWyszkiwanie faktur w walucie EUR, których odbiorcą jest osoba o nazwisku Kowalski:
Przykładowe wyszukiwanie faktur (XML)
1 (GET) (...)/list.xml?waluta=EUR&podpis_odbiorcy_zawiera=KowalskiKsięgowość
KPiR
Pobieranie ksiąg przychodów i rozchodów do konta.
URL
Informacje o księgach przychodów i rozchodów
1 (GET) https://www.infakt.pl/api/v2/reports/kpir.:formatWymagane parametry
brak
Opcjonalne parametry
Parametry opcjonalne
1 date - data raportu (format RRRR-MM)Przykład
XML
Zapytanie:
Przykładowe zapytanie (XML)
1 (GET) https://www.infakt.pl/api/v2/reports/kpir.xmlOdpowiedź:
Kod HTTP: 200
1 <?xml version="1.0" encoding="UTF-8"?> 2 <reports type="kpir"> 3 <report> 4 <miesiac>2011-03-01</miesiac> 5 <przychody>7822.0</przychody> 6 <koszty>2486.0</koszty> 7 <dochod>5336.0</dochod> 8 <wydrukowany>1</wydrukowany> 9 </report> 10 <report> 11 <miesiac>2011-06-01</miesiac> 12 <przychody>5232.0</przychody> 13 <koszty>6486.0</koszty> 14 <dochod>-1254.0</dochod> 15 <wydrukowany>1</wydrukowany> 16 </report> 17 <report> 18 <miesiac>2011-05-01</miesiac> 19 <przychody>0.0</przychody> 20 <koszty>0.0</koszty> 21 <dochod>0.0</dochod> 22 <wydrukowany>0</wydrukowany> 23 </report> 24 <report> 25 ... 26 </report> 27 </reports>
JSON
Zapytanie:
Przykładowe zapytanie (JSON)
1 (GET) https://www.infakt.pl/api/v2/reports/kpir.jsonOdpowiedź:
Kod HTTP: 200
1 { 2 "type":"kpir", 3 "reports":[ 4 { 5 "miesiac":"2011-03-01", 6 "przychody":7822.0, 7 "koszty":2486.0, 8 "dochod":5336.0, 9 "wydrukowany":1 10 }, 11 { 12 "miesiac":"2011-04-01", 13 "przychody":5232.0, 14 "koszty":6486.0, 15 "dochod":-1254.0, 16 "wydrukowany":1 17 }, 18 { 19 "miesiac":"2011-05-01", 20 "przychody":0.0, 21 "koszty":0.0, 22 "dochod":0.0, 23 "wydrukowany":0 24 }, 25 { ... } 26 ] 27 }
PIT-5
Pobieranie wartości podatku dochodowego PIT-5.
URL
Informacje o podatku dochodowym
1 (GET) https://www.infakt.pl/api/v2/reports/pit5.:formatWymagane parametry
brak
Opcjonalne parametry
Parametry opcjonalne
1 date - data raportu (format RRRR-MM)Przykład
XML
Zapytanie:
Przykładowe zapytanie (XML)
1 (GET) https://www.infakt.pl/api/v2/reports/pit5.xmlOdpowiedź:
Kod HTTP: 200
1 <?xml version="1.0" encoding="UTF-8"?> 2 <reports type="pit5"> 3 <report> 4 <miesiac>2011-03-01</miesiac> 5 <przychody_narastajaco>109178.0</przychody_narastajaco> 6 <koszty_narastajaco>5957.0</koszty_narastajaco> 7 <dochod_narastajaco>103221.0</dochod_narastajaco> 8 <dochod>42427.0</dochod> 9 <pit_do_zaplaty>9837.0</do_zaplaty> 10 <wydrukowany>1</wydrukowany> 11 </report> 12 <report> 13 <miesiac>2011-04-01</miesiac> 14 <przychody_narastajaco>110086.5</przychody_narastajaco> 15 <koszty_narastajaco>11767.0</koszty_narastajaco> 16 <dochod_narastajaco>98319.5</dochod_narastajaco> 17 <dochod>-4901.5</dochod> 18 <pit_do_zaplaty>0.0</do_zaplaty> 19 <wydrukowany>1</wydrukowany> 20 </report> 21 <report> 22 <miesiac>2011-05-01</miesiac> 23 <przychody_narastajaco>110086.5</przychody_narastajaco> 24 <koszty_narastajaco>11767.0</koszty_narastajaco> 25 <dochod_narastajaco>98319.5</dochod_narastajaco> 26 <dochod>0.0</dochod> 27 <pit_do_zaplaty>0.0</do_zaplaty> 28 <wydrukowany>1</wydrukowany> 29 </report> 30 <report> 31 ... 32 </report> 33 </reports>
JSON
Zapytanie:
Przykładowe zapytanie (JSON)
1 (GET) https://www.infakt.pl/api/v2/reports/pit5.jsonOdpowiedź:
Kod HTTP: 200
1 { 2 "type":"pit5", 3 "reports":[ 4 { 5 "miesiac":"2011-03-01", 6 "przychody_narastajaco":109178.0, 7 "koszty_narastajaco":5957.0, 8 "dochod_narastajaco":103221.0, 9 "dochod":42427.0, 10 "pit_do_zaplaty":9837.0, 11 "wydrukowany":1 12 }, 13 { 14 "miesiac":"2011-04-01", 15 "przychody_narastajaco":110086.5, 16 "koszty_narastajaco":11767.0, 17 "dochod_narastajaco":98319.5, 18 "dochod":-4901.5, 19 "pit_do_zaplaty":0.0, 20 "wydrukowany":1 21 }, 22 { 23 "miesiac":"2011-05-01", 24 "przychody_narastajaco":110086.5, 25 "koszty_narastajaco":11767.0, 26 "dochod_narastajaco":98319.5, 27 "dochod":0.0, 28 "pit_do_zaplaty":0.0, 29 "wydrukowany":0 30 }, 31 { ... } 32 ] 33 }
VAT-7
Pobieranie wartości podatku VAT-7.
URL
Informacje o podatku VAT
1 (GET) https://www.infakt.pl/api/v2/reports/vat7.:formatWymagane parametry
brak
Opcjonalne parametry
Parametry opcjonalne
1 date - data raportu (format RRRR-MM)Przykład
XML
Zapytanie:
Przykładowe zapytanie (XML)
1 (GET) https://www.infakt.pl/api/v2/reports/vat7.xmlOdpowiedź:
Kod HTTP: 200
1 <?xml version="1.0" encoding="UTF-8"?> 2 <reports type="vat7"> 3 <report> 4 <miesiac>2011-03-01</miesiac> 5 <vat_sprzedaz>7822.0</vat_sprzedaz> 6 <vat_zakupy>2486.0</vat_zakupy> 7 <vat_do_zaplaty>5336.0</vat_do_zaplaty> 8 <vat_nadplata>0.0</vat_nadplata> 9 <zaplacony>1</zaplacony> 10 </report> 11 <report> 12 <miesiac>2011-04-01</miesiac> 13 <vat_sprzedaz>722.0</vat_sprzedaz> 14 <vat_zakupy>2286.0</vat_zakupy> 15 <vat_do_zaplaty>0.0</vat_do_zaplaty> 16 <vat_nadplata>1564.0</vat_nadplata> 17 <zaplacony>1</zaplacony> 18 </report> 19 <report> 20 <miesiac>2011-05-01</miesiac> 21 <vat_sprzedaz>0.0</vat_sprzedaz> 22 <vat_zakupy>0.0</vat_zakupy> 23 <vat_nadplata>0.0</vat_nadplata> 24 <vat_do_zaplaty>0.0</vat_do_zaplaty> 25 <zaplacony>0</zaplacony> 26 </report> 27 <report> 28 ... 29 </report> 30 </reports>
JSON
Zapytanie:
Przykładowe zapytanie (JSON)
1 (GET) https://www.infakt.pl/api/v2/reports/vat7.jsonOdpowiedź:
Kod HTTP: 200
1 { 2 "type":"vat7", 3 "reports":[ 4 { 5 "miesiac":"2011-03-01", 6 "vat_sprzedaz":7822.0, 7 "vat_zakupy":2486.0, 8 "vat_do_zaplaty":5336.0, 9 "vat_nadplata":0.0, 10 "zaplacony":1 11 }, 12 { 13 "miesiac":"2011-04-01", 14 "vat_sprzedaz":722.0, 15 "vat_zakupy":2286.0, 16 "vat_do_zaplaty":0.0, 17 "vat_nadplata":1564.0, 18 "zaplacony":1 19 }, 20 { 21 "miesiac":"2011-05-01", 22 "vat_sprzedaz":0.0, 23 "vat_zakupy":0.0, 24 "vat_do_zaplaty":0.0, 25 "vat_nadplata":0.0, 26 "zaplacony":0 27 }, 28 { ... } 29 ] 30 }
ZUS
Pobieranie wartości składek ZUS.
URL
Informacje o składkach ZUS
1 (GET) https://www.infakt.pl/api/v2/reports/zus.:formatWymagane parametry
brak
Opcjonalne parametry
Parametry opcjonalne
1 date - data raportu (format RRRR-MM)Przykład
XML
Zapytanie:
Przykładowe zapytanie (XML)
1 (GET) https://www.infakt.pl/api/v2/reports/zus.xmlOdpowiedź:
Kod HTTP: 200
1 <?xml version="1.0" encoding="UTF-8"?> 2 <reports type="zus"> 3 <report> 4 <miesiac>2011-03-01</miesiac> 5 <skladki_spoleczne>103.97</skladki_spoleczne> 6 <skladki_zdrowotne>233.32</skladki_zdrowotne> 7 <fundusz_pracy>0.0</fundusz_pracy> 8 <razem>356.44</razem> 9 <zaplacony>1</zaplacony> 10 </report> 11 <report> 12 <miesiac>2011-04-01</miesiac> 13 <skladki_spoleczne>103.97</skladki_spoleczne> 14 <skladki_zdrowotne>233.32</skladki_zdrowotne> 15 <fundusz_pracy>0.0</fundusz_pracy> 16 <razem>356.44</razem> 17 <zaplacony>1</zaplacony> 18 </report> 19 <report> 20 <miesiac>2011-05-01</miesiac> 21 <skladki_spoleczne>103.97</skladki_spoleczne> 22 <skladki_zdrowotne>233.32</skladki_zdrowotne> 23 <fundusz_pracy>0.0</fundusz_pracy> 24 <razem>356.44</razem> 25 <zaplacony></zaplacony> 26 </report> 27 <report> 28 ... 29 </report> 30 </reports>
JSON
Zapytanie:
Przykładowe zapytanie (JSON)
1 (GET) https://www.infakt.pl/api/v2/reports/zus.jsonOdpowiedź:
Kod HTTP: 200
1 { 2 "type":"zus", 3 "reports":[ 4 { 5 "miesiac":"2011-03-01", 6 "skladki_spoleczne":103.97, 7 "skladki_zdrowotne":233.32, 8 "fundusz_pracy":0, 9 "razem":356.44, 10 "zaplacony":1 11 }, 12 { 13 "miesiac":"2011-04-01", 14 "skladki_spoleczne":103.97, 15 "skladki_zdrowotne":233.32, 16 "fundusz_pracy":0, 17 "razem":356.44, 18 "zaplacony":1 19 }, 20 { 21 "miesiac":"2011-05-01", 22 "skladki_spoleczne":103.97, 23 "skladki_zdrowotne":233.32, 24 "fundusz_pracy":0, 25 "razem":356.44, 26 "zaplacony":0 27 }, 28 { ... } 29 ] 30 }