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

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

  1. Accept: application/xml
  2. Content-type: application/xml

JSON

  1. Accept: application/json
  2. Content-type: application/json

Rozszerzenia

Należy również podać odpowiednie “rozszerzenie” w URLu, np.:

Rozszerzenie JSON

  1. https://www.infakt.pl/api/v2/clients.json

lub

Rozszerzenie XML

  1. 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 oAuth ( http://oauth.net/ ). Dlatego przed rozpoczęciem pracy z API konieczne jest zarejestrowanie aplikacji w systemie inFakt. W tym celu należy skorzystać z formularza dostępnego w menu Ustawienia -> API v2 - lista aplikacji.
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.:format

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

Odpowiedź:

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&#243;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.json

Odpowiedź:

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

lub

Wyświetlenie rekordu klienta (z parametrem :id)

1 (GET) https://www.infakt.pl/api/v2/clients/show/:id.:format

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

Odpowiedź:

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&#243;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=1

Odpowiedź:

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

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


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


JSON

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

lub

Aktualizacja rekordu client (z parametrem :id)

1 (POST) https://www.infakt.pl/api/v2/clients/update/:id.:format

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


JSON

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

lub

Usuwanie rekordu client (z parametrem :id)

1 (POST) https://www.infakt.pl/api/v2/clients/delete/:id.:format

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

Odpowiedź:

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

Odpowiedź:

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

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

Odpowiedź:

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&#243;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&#243;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.json

Odpowiedź:

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

lub

Pobieranie rekordu faktury (z parametrem :id)

1 (GET) https://www.infakt.pl/api/v2/invoices/show/:id.:format

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

Odpowiedź:

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&#243;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&#243;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=1

Odpowiedź:

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

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


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


Zapytanie 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.:format

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


Zapytanie 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.:format
lub

Usuwanie rekordu faktury (z parametrem :id)

1 (POST) https://www.infakt.pl/api/v2/invoices/delete/:id.:format

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

Odpowiedź:

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

Odpowiedź:

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

Wymagane 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 faktury

Jeś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&amp;doc_type=kopia&amp;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.:format

lub

Pobranie wydruku faktury w formacie PDF (z parametrem :id)

1 (GET) https://infakt.pl/api/v2/invoices/pdf/:id.:format

Wymagane parametry

id lub invoice_id jesli ID nie został przekazany w URL.

Parametry wymagane

1 doc_type  - rodzaj wysyłanego dokumentu

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
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=16

Odpowiedź:

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=16

Odpowiedź:

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


Przykł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=szkic

Wyszkiwanie 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=Kowalski

Księ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.:format

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

Odpowiedź:

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

Odpowiedź:

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

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

Odpowiedź:

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

Odpowiedź:

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

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

Odpowiedź:

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

Odpowiedź:

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

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

Odpowiedź:

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

Odpowiedź:

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 }