INFAKT API - opis (ver. 0.8) 1. Autoryzacja Autoryzacja odbywa się poprzez Basic Authorization dzięki danym dostępowym do serwisu infakt.pl Oprócz tych danych należy wygenerować klucz do API na stronie https://www.infakt.pl/app/ustawienia/inne/api Jako nazwę użytkownika należy podać nazwę użytkownika swojego konta w Infakt.pl Jako hasło należy podać hasło użytkownika razem z wygenerowanym kluczem. Wszystkie dane powinny być wysyłane w formacie XML, z poprawnym nagłówkiem (CONTENT_TYPE: application/xml lub text/xml) Wspierany schemat kodowania znaków to UTF-8. nazwa_uzytkownika = 'test' haslo = 'test1password' api_key = '2e4ca51c2746a691312bdeas' req.basic_auth(nazwa_uzytkownika, haslo + api_key) 2. Klienci Informacje o kliencie: id nazwa_firmy odbierajacy_dokument ulica miejscowosc kod_pocztowy nip numer_telefonu adres_www
email info 2.1. Dodawanie klienta url: /api/clients.xml metoda: POST Jako odpowiedź na żądanie zostaną zwrócone dane dodanego klienta. url: http://www.infakt.pl/api/clients.xml Parametry: {"client"=>{"nazwa_firmy"=>"testowa S.A.", "miejscowosc"=>"tescik", "kod_pocztowy"=>"00-000", "ulica"=>"testowa 1a", "nip"=>"123456789", "email"=>"zaden@nic.pl" }} 2.2. Przeglądanie danych klientów 2.2.1. Przegladanie wszystkich klientów url: /api/clients.xml Jako odpowiedź na żądanie zostanie zwrócona tablica z danymi wszystkich klientów w formacie XML url: http://www.infakt.pl/api/clients.xml 2.2.2. Przeglądanie wybranego klienta url: api/clients/id_klienta.xml Jako odpowiedź na żądanie zostaną zwrócone dane klienta w formacie XML url: http://www.infakt.pl/api/clients/1000.xml 2.3. Usuwanie klienta url: /api/clients/id_wybranego_klienta.xml metoda: DELETE url: http://www.infakt.pl/api/clients/1000.xml 3. Faktury Informacje o fakturze: Parametry: numer (jeśli zostanie pusty, system nada automatycznie kolejny według wybranej numeracji) waluta
zaplacono uwagi rodzaj_faktury: ["Faktura VAT", "Faktura Proforma"] podpis_odbiorca podpis_sprzedawca data_wystawienia data_sprzedazy termin_zaplaty client_id status: ["szkic", "wydrukowana", "wysłana", "zapłacona"] Informacje o usługach/produktach: nazwa symbol jm ilosc cena_netto s_vat 3.1. Dodawanie url: /api/invoices.xml metoda: POST W odpowiedzi pojawią się dane faktury. W wersji 0.7, do API, dodana została możliwość podania ceny netto lub ceny brutto. http://www.infakt.pl/api/invoices.xml Parametry: {"invoice"=>{"zaplacono"=>"0", "data_wystawienia"=>"2009-06-03", "data_sprzedazy"=>"2009-06-03", # przykład dla wersji netto: {"symbol"=>'', "jm"=>nil, "cena_netto"=>100, "nazwa"=>"usługa hostingowa", "s_vat"=>22, "ilosc"=>2}, # przykład dla wersji brutto: {"symbol" => '', "w_brutto"=>122, "nazwa"=>"inna usługa", "s_vat"=>22, "ilosc"=>1}, ], "rodzaj_faktury"=>"faktura VAT", "jm"=> 'szt.', "waluta"=>"pln", "client_id"=>88, "uwagi"=>"brak uwag", "services"=>[ "termin_zaplaty"=>"2009-
06-10"}} Uwaga: W przypadku podawnia wartości brutto zamiast ceny netto, cena netto jest liczona przez podzielenie wartości netto przez ilość produktów. 3.2. Przeglądanie 3.2.1. Przeglądanie pojedynczej faktury url: /api/invoices/id_faktury.xml http://www.infakt.pl/api/invoices/100.xml W odpowiedzi pojawią się dane faktury wraz z usługami. 3.2.2. Przeglądanie wszystkich faktur url: /api/invoices.xml http://www.infakt.pl/api/invoices.xml W odpowiedzi pojawią się dane wszystkich faktury użytkownika wraz z usługami 3.3. Usuwanie url: /api/invoice/id_faktury_do_usuniecia.xml metoda: DELETE http://www.infakt.pl/api/invoices/100.xml 3.4. Szybka zmiana statusu faktury url: /api/invoice_status obsługiwane parametry: invoice_id, status obsługiwane statusy faktur: wysłana, wydrukowana, zapłacona w odpowiedzi pojawiają się informacje o fakturze zmiana statusu faktury o id 2748 na wydrukowana http://www.infakt.pl/api/invoice_status?invoice_id=2748&status=wyrukowana Dla faktur o statusie zapłacona nie ma możliwości zmiany statusu. 4. Zlecanie wysyłki Pocztą Polską. url: /api/invoices/id_faktury/send_invoice_by_post.xml metoda: POST http://www.infakt.pl/api/invoices/423987/send_invoice_by_post.xml Parametry: {"doc_type" => "Kopia"}
5. Pobieranie pliku pdf z fakturą url: /api/invoices/id_faktury/get_pdf.xml http://www.infakt.pl/api/invoices/423987/get_pdf.xml Parametry: {"doc_type" => "Kopia"} Jako odpowiedź zostanie zwrócony adres pliku pdf z wygenerowaną fakturą 6. Wyszukiwarka faktur url: http://www.infakt.pl/api/search_for_invoices obsługiwane parametry wyszukiwania: numer, waluta, status, client_id, data_wystawienia_od, data_wystawienia_do, data_sprzedazy_od, data_sprzedazy_do, termin_zaplaty_od, termin_zaplaty_do, razem_brutto_od, razem_brutto_do w odpowiedzi pojawiają się informacje o fakturze (fakturach). Przykłady: wyświetlamy fakturę o numerze: 1/07/2010 http://www.infakt.pl/api/search_for_invoices?numer=1/07/2010 możemy też wyświetlić faktury, których numer zawiera frazę: 1/07 http://www.infakt.pl/api/search_for_invoices?numer=1/07 wyświetlamy faktury z walutą: USD http://www.infakt.pl/api/search_for_invoices?waluta=usd możemy też przekazać kilka walut (oddzielając je przecinkiem) np: USD i PLN http://www.infakt.pl/api/search_for_invoices?waluta=usd,pln aby wyświetlić faktury o danym statusie, np: wydrukowana http://www.infakt.pl/api/search_for_invoices?status=wydrukowana
aby wyświetlić faktury przypisane do klienta o danym id 114136 http://www.infakt.pl/api/search_for_invoices?client_id=114136 aby wyświetlić faktury, których termin zapłaty jest z w przedziale: od 2010-06-01 do 2010-07-01 podajemy: http://www.infakt.pl/api/search_for_invoices?termin_zaplaty_od=2010-06-01& termin_zaplaty_do=2010-07-01 w przypadku gdy podamy tylko jeden parametr termin zapłaty np: http://www.infakt.pl/api/search_for_invoices?termin_zaplaty_od=2010-06-01 Zwrócone zostaną faktury, dla których termin zapłaty jest większy bądź równy 2010-06-01 podobnie sytuacja wygląda gdy górną granicą przedziału: http://www.infakt.pl/api/search_for_invoices?termin_zaplaty_do=2010-06-01 Zwrócone zostaną faktury których termin zapłaty jest niższy bądź równy 2010-06-01 analogicznie obsługiwane są parametry dotyczące daty sprzedaży, daty wystawienia faktury, a także wartości brutto: http://www.infakt.pl/api/search_for_invoices?razem_brutto_od=100&razem_brutto_do=200 zwraca faktury o wartości razem_brutto faktury z przedziału 100-200 natomiast http://www.infakt.pl/api/search_for_invoices?razem_brutto_od=100 zwraca faktury o wartości razem_brutto faktury równej bądź większej niż 100 jest możliwość łączenia warunków np, chcąc wyświetlić faktury, których data wystawienia jest jest z przedziału od 2010-06-01 do 2010-07-01, wystawione zostały w walucie PLN lub USD, oraz ich numer powinien pasować do wyrażenia: 7/06 należy zastosować zapytanie: http://www.infakt.pl/api/search_for_invoices?data_wystawienia_od=2010-06-01& data_wystawienia_do=2010-07-01&waluta=pln,usd&numer=7/06 7. Pytania, uwagi Wszelkie pytania i uwagi proszę zgłaszać do administratora na adres: sebastian.bobrowski@infakt.pl