Dokumentacja API BizIn

Transkrypt

Dokumentacja API BizIn
Dokumentacja API BizIn
Spis treści
Wstęp .................................................................................................................................................... 1
Dostęp do API BizIn............................................................................................................................. 1
Identyfikatory API ................................................................................................................................ 1
Dostępne akcje ..................................................................................................................................... 3
Przykład wywołania API w języku PHP .............................................................................................. 3
Pobieranie danych ............................................................................................................................ 3
Wystawianie dokumentu – proforma ............................................................................................... 7
Opis pól XML dokumentu – proforma:........................................................................................ 8
Wystawianie dokumentu powiązanego ......................................................................................... 10
Opis pól XML dokumentu powiązanego: .................................................................................. 11
Dodawanie (import) dokumentu kosztowego................................................................................ 11
Debugowanie ...................................................................................................................................... 14
Wstęp
API BizIn umożliwia wprowadzanie oraz pobieranie danych przechowywanych w systemie BizIn, w celu
integracji z innymi systemami teleinformatycznymi. Komunikacja odbywa się poprzez wymianę danych
XML.
Dostęp do API BizIn
Komunikacja zewnętrznych systemów IT z systemem BizIn odbywa się za pomocą przesyłania
danych w formie dokumentów XML metodą POST. Dane powinny być przesyłane na specjalnie
tworzony adres wg poniższego wzoru:
https://system.bizin.pl/apiBizIn.html?idP=NUMER_IDP
W miejsce NUMER_IDP, należy wstawić numer idP odczytany z zakładki moje konto, dostępnej
w systemie BizIn. W tym samym miejscu znajduje się również klucz API, wykorzystywany podczas
autoryzacji. Odpowiednio skonstruowany dokument trzeba przesłać żądaniem POST w polu o nazwie
XML.
Zdjęcie 1: Dane dostępowe w zakładce moje konto
Dokumentacja API BizIn – ostatnia zmiana 20.12.2016
1
Identyfikatory API
W komunikacji wykorzystywane są identyfikatory ApiId, które służą do wskazywania elementów w
słownikach lub obiektach. System prezentuje identyfikatory w widokach większości słowników.
np. identyfikator banku, możemy znaleźć w systemie w miejscu: moje konto => Firma => konta
bankowe
Zdjęcie 2: ID konta bankowego w systemie BizIn
a identyfikatory typów płatności za wystawiony dokument w systemie w miejscu: moje konto =>
Słowniki => typy płatności
Zdjęcie 3: ID typu płatności w systemie BizIn
UWAGA: Identyfikatory prezentowane są jedynie w przypadku gdy firma ma wykupiony odpowiedni
abonament z włączonym API.
Dokumentacja API BizIn – ostatnia zmiana 20.12.2016
2
Dostępne akcje
apiTestConnection
addInvoice
removeInvoice
getInvoice
getListInvoices
getPurchaseInvoice
getListPurchaseInvoices
addPurchaseInvoice
getStocks
getClient
getListBanks
Test poprawności wywołania => zwraca XML
dodawanie nowego dokumentu przychodowego => zwraca XML
usuwanie dokumentu przychodowego => zwraca XML
pobieranie dokumentu przychodowego => zwraca XML
pobieranie listy dokumentów przychodowych => zwraca XML (uwaga!
max 200 dokumentów w liście)
pobieranie dodanego w systemie BizIn dokumentu kosztowego => zwraca
XML
pobieranie listy dokumentów kosztowych => zwraca XML (uwaga! max
200 dokumentów w liście)
dodawanie nowego dokumentu kosztowego => zwraca XML
pobieranie towaru z wybranego magazynu => zwraca XML
pobieranie danych klienta zapisanych w systemie => zwraca XML
Pobieranie listy aktywnych banków zarejestrowanych w podmiocie
System przyjmuje i zwraca dane w formacie XML. W przypadku błędu wywołania lub przetwarzania
danych komunikat zwrotny może wyglądać następująco:
<ROOT>
<status>error</status>
<statusOpis>Błąd obliczania kolejnego numeru dla nowego dokumentu.</statusOpis>
<statusOpis>API ERROR - Add document error (1)</statusOpis>
</ROOT>
Przykład wywołania API w języku PHP
Dane wymagane przez API BizIn, można wysłać za pomocą biblioteki CURL dostępnej dla wielu
języków programowania.
Pobieranie danych
Kod przedstawiony poniżej napisany został w języku PHP i zawiera kilka podstawowych akcji
zapisanych w postaci gotowego wywołania XML. Wywołania te mogą być testowo przełączane poprzez
przepisanie jednego z nich do zmiennej $xmlData.
Zwrotnie wyświetlany jest dokument XML.
$idP = "2";
$apiAdres = "https://bizin.pl/apiBizIn.html?idP=".$idP;
$apiKey= 'ggen22tfhgi2jmq3k4n1tco2z1up12i7';
{ ## BizIn - apiTestConnection
$xmlApiTestConnection = "<ROOT>
<api_key>".$apiKey."</api_key>
<action>apiTestConnection</action>
</ROOT>";
}
{ ## pobieranie dokumentu przychodowego
Dokumentacja API BizIn – ostatnia zmiana 20.12.2016
3
$xmlGetInvoice = "<ROOT>
<api_key>".$apiKey."</api_key>
<action>getInvoice</action>
<params>
<dokument_id>2110</dokument_id>
</params>
</ROOT>";
}
{ ## pobieranie listy dokumentów przychodowych
$xmlGetListInvoices = "<ROOT>
<api_key>".$apiKey."</api_key>
<action>getListInvoices</action>
<params>
<listInvoicesDataStart>".date("Y-m-d", strtotime ("-12 month"))."</listInvoicesDataStart>
<listInvoicesDataStop>".date("Y-m-d")."</listInvoicesDataStop>
<kontrahentApiId></kontrahentApiId>
</params>
</ROOT>";
}
{ ## przeœlij dokument do kontrahenta
$xmlSendInvoiceInfo = "<ROOT>
<api_key>".$apiKey."</api_key>
<action>sendInvoiceInfo</action>
<params>
<dokument_id>2263</dokument_id>
</params>
</ROOT>";
}
{ ## usuwanie dokumentu przychodowego
$xmlRemoveInvoice = "<ROOT>
<api_key>".$apiKey."</api_key>
<action>removeInvoice</action>
<params>
<dokument_id>www2263</dokument_id>
</params>
</ROOT>";
}
{ ## pobieranie dokumentu kosztowego
$xmlGetPurchaseInvoice = "<ROOT>
<api_key>".$apiKey."</api_key>
<action>getPurchaseInvoice</action>
<params>
<dokument_id>78</dokument_id>
</params>
</ROOT>";
}
{ ## pobieranie listy dokumentów kosztowych
$xmlGetListPurchaseInvoices = "<ROOT>
<api_key>".$apiKey."</api_key>
<action>getListPurchaseInvoices</action>
Dokumentacja API BizIn – ostatnia zmiana 20.12.2016
4
<params>
<listInvoicesDataStart>".date("Y-m-d", strtotime ("-12 month"))."</listInvoicesDataStart>
<listInvoicesDataStop>".date("Y-m-d")."</listInvoicesDataStop>
</params>
</ROOT>";
}
{ ## pobieranie towaru wybranego magazynu
$xmlGetStocks = "<ROOT>
<api_key>".$apiKey."</api_key>
<action>getStocks</action>
<params>
<miejsceApiId>1</miejsceApiId>
<kategoriaTowaruApiId></kategoriaTowaruApiId>
<numerPN>PN5436286A</numerPN>
<magazynApiId></magazynApiId>
</params>
</ROOT>";
}
{ ## pobierz dane klienta - wyszukiwanie po pierwszym znalezionym obiekcie <params>
$xmlGetClient= "<ROOT>
<api_key>".$apiKey."</api_key>
<action>getClient</action>
<params>
<kontrahentApiId></kontrahentApiId>
<kontrahentNIP>657-28-39-511</kontrahentNIP>
<kontrahentPESEL></kontrahentPESEL>
</params>
</ROOT>";
}
{ ## BizIn Fiskalizator - lista dokumentów do zafiskalizowania
$xmlListBanks = "<ROOT>
<api_key>".$apiKey."</api_key>
<action>getListBanks</action>
</ROOT>";
}
##
/*
$xmlApiTestConnection;
$xmlGetInvoice;
$xmlRemoveInvoice;
$xmlSendInvoiceInfo;
$xmlGetListInvoices;
$xmlGetPurchaseInvoice;
$xmlGetListPurchaseInvoices;
$xmlGetStocks;
$xmlData= $xmlGetClient;
$xmlData= $xmlListBanks;
*/
$data = array('XML' => $xmlRemoveInvoice);
$handle = curl_init();
Dokumentacja API BizIn – ostatnia zmiana 20.12.2016
5
curl_setopt($handle, CURLOPT_URL, $apiAdres);
curl_setopt($handle, CURLOPT_POST, 1);
curl_setopt($handle, CURLOPT_POSTFIELDS, $data);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($handle, CURLOPT_ENCODING, 'UTF-8');
$result = curl_exec($handle);
curl_close($handle);
header("Content-type: text/xml");
echo $result;
Ten przykład pokazał dość proste akcje z niewielką ilością danych w wywołaniu. Znacznie trudniejszą
akcją jest tworzenie dokumentów. Poniżej przykłady (z opisami pól) tworzenia dokumentu proforma oraz
dokumentu powiązanego.
Dokumentacja API BizIn – ostatnia zmiana 20.12.2016
6
Wystawianie dokumentu – proforma
<?xml version="1.0"?>
<ROOT>
<api_key>klucz API</api_key>
<action>addInvoice</action>
<transactionID>f8J949AD2SSYySqf</transactionID>
<params>
<dokument_typ>5</dokument_typ>
<dokument_typ_procedury_marza>0</dokument_typ_procedury_marza>
<dokument_id>0</dokument_id>
<dokument_id_doc_zrodlo>0</dokument_id_doc_zrodlo>
<dokument_auto_nr_data>1</dokument_auto_nr_data>
<dokument_nr>12/06/2014</dokument_nr>
<dokument_data_wystawienia>2014-06-06</dokument_data_wystawienia>
<dokument_data_sprzedazy>2014-06-06</dokument_data_sprzedazy>
<dokument_typPlatnosciApiId>14</dokument_typPlatnosciApiId>
<dokument_data_splaty>0000-00-00</dokument_data_splaty>
<dokument_bankApiId>3</dokument_bankApiId>
<dokument_towar_marza>100</dokument_towar_marza>
<dokument_uwagi></dokument_uwagi>
<kontrahent>
<kontrahentApiId>262</kontrahentApiId>
<nazwa>Testowy wpis</nazwa>
<imie>Piotr Czekaj</imie>
<kod>25-413</kod>
<miejscowosc>Kielce</miejscowosc>
<ulica>ul. Domaniówka</ulica>
<nr_domu>4 / 30</nr_domu>
<nip>657-105-46-18</nip>
<pesel></pesel>
<uwagi></uwagi>
<bank_nazwa>mBank</bank_nazwa>
<bank_nr_konta>89712987112498723463264326</bank_nr_konta>
</kontrahent>
<pozycje>
<pozycja_1>
<typ>1</typ>
<magazynApiId>157</magazynApiId>
<ilosc>3</ilosc>
</pozycja_1>
<pozycja_2>
<typ>2</typ>
<uslugiApiId>17</uslugiApiId>
<ilosc>2</ilosc>
</pozycja_2>
<pozycja_3>
<typ>3</typ>
<nazwa>Usluga nr 2</nazwa>
<ilosc>7</ilosc>
<jm>szt.</jm>
<vat>23</vat>
<cena_n></cena_n>
<cena_b>400</cena_b>
</pozycja_3>
Dokumentacja API BizIn – ostatnia zmiana 20.12.2016
7
</pozycje>
</params>
</ROOT>
Opis pól XML dokumentu – proforma:
Lp.
Nazwa pola
Opis pola
ROOT
główny korzeń dokumentu
1
api_key
klucz API wygenerowany z systemu BIZIN
2
action
parametr akcji przyjmuje: addInvoice lub getInvoice
3
transactionID
16 znakowy niepowtarzalny (losowy: alfanumeryczny) identyfikator
transakcji (test dotyczy bieżącego dnia)
4
params
kontener parametrów
4.1
dokument_typ
typ dokumentu ( 3 – Faktura, 5 – proforma)
4.2
dokument_typ_procedury_marza
typ do róznych odmian marzy
4.3
dokument_id
podawane tylko w action=> getInvoice
4.4
dokument_id_doc_zrodlo
0 lub identyfikator (musi być int)
4.5
dokument_auto_nr_data
wartości 0 lub 1 - automatycznie oblicza numeru dokumentu na
podstawie daty wystawienia
4.6
dokument_nr
numer dokumentu w formie string - tylko jeśli 'dokument_auto_nr_data'
== 0
4.7
dokument_data_wystawienia
Jeśli pole jest puste -> ustawiana jest bieżąca data
4.8
dokument_data_sprzedazy
Jeśli pole jest puste -> ustawiana jest bieżąca data
4.9
dokument_typPlatnosciApiId
id typu płatności
4.10
dokument_data_splaty
0000-00-00 lub data
4.11
dokument_bankApiId
id banku z systemu (jeśli puste lub niepoprawne ustawia domyślne)
4.12
dokument_towar_marza
???
4.13
dokument_uwagi
pusty string dodaje domyślny wpis ustawiony na podmiocie
4.14
kontrahent
kontener danych kontrahenta
4.14.1
kontrahentApiId
id kontrahenta - jeśli jest podany poprawny identyfikator nie trzeba
podawać reszty danych. Podanie ich spowoduje aktualizacją kontrahenta
4.14.2
nazwa
nazwa kontrahenta
4.14.3
imię
imię i nazwisko kontrahenta
4.14.4
kod
kod pocztowy, np. 25-314
4.14.5
miejscowosc
miejscowość, np. Kielce
4.14.6
ulica
ulica np. Pawia
4.14.7
nr_domu
numer domu, np. 4/39
4.14.8
nip
numer nip
4.14.9
pesel
numer pesel
4.14.10
uwagi
uwagi
4.14.11
bank_nazwa
nazwa banku (np. ING Bank Śląski)
4.14.12
bank_nr_konta
numer konta bankowego
4.15
pozycje
kontener zawierający pozycje faktury
4.15.1
pozycja_(nr)
pozycja numer (nr)
Dokumentacja API BizIn – ostatnia zmiana 20.12.2016
8
typ
Typ pozycji:
1 - id_magazyn,
2 - id_uslugi,
3 - dowolna pozycja
4.15.1.1
typ = 1
4.15.1.2
magazynApiId
ID magazynu z systemu BizIn. Jeśli typ = 1.
4.15.1.3
ilosc
ilość towaru / usługi
4.15.1.1
typ = 2
4.15.1.2
uslugiApiId
ID usługi z systemu BizIn. Jeśli typ = 2.
4.15.1.3
ilosc
ilość towaru / usługi
4.15.1.1
typ = 3
4.15.1.2
nazwa
nazwa usługi / produktu
4.15.1.3
ilosc
ilość towaru / usługi
4.15.1.4
jm
jednostka miary (np. szt, kg itd.)
4.15.1.5
vat
stawka podatku VAT (np. 23)
4.15.1.6
cena_n – cena netto (za 1 jm)
Wystarczy podać jedną z cen, system BizIn obliczy druga na podstawie
stawki VAT.
4.15.1.7
cena_b - cena brutto (za 1 jm)
Wystarczy podać jedną z cen, system BizIn obliczy druga na podstawie
stawki VAT.
Dokumentacja API BizIn – ostatnia zmiana 20.12.2016
9
Wystawianie dokumentu powiązanego
Do wystawiania dokumentu powiązanego, np. Faktury na podstawie dokumentu proforma - należy użyć
następującego wzoru dokumentu XML:
<?xml version="1.0"?>
<ROOT>
<api_key>wfn6mxu9smzmr37jnthgpqn9uo1arsi5</api_key>
<action>addInvoice</action>
<params>
<dokument_typ>3</dokument_typ>
<dokument_typ_procedury_marza>0</dokument_typ_procedury_marza>
<dokument_id_doc_zrodlo>1026</dokument_id_doc_zrodlo>
<dokument_auto_nr_data>1</dokument_auto_nr_data>
<dokument_typPlatnosciApiId>14</dokument_typPlatnosciApiId>
<dokument_data_splaty>2014-06-06</dokument_data_splaty>
<dokument_bankApiId>2</dokument_bankApiId>
<dokument_dodatkowy_opis>.,</dokument_dodatkowy_opis>
<zrodlo_status>0</zrodlo_status>
<zrodlo_dataSplaty>2014-06-04</zrodlo_dataSplaty>
<kontrahent>
<kontrahentApiId>263</kontrahentApiId>
<kod_kontrahenta>6571054608</kod_kontrahenta>
<nazwa>Firma Jasia Fasoli</nazwa>
<imie> Ja&#x15B; Fasola</imie>
<kod></kod>
<miejscowosc>Londek Zdr&#xF3;j</miejscowosc>
<ulica>ul. Wi&#x15B;niowa</ulica>
<nr_domu>5</nr_domu>
<nip>657-105-46-08</nip>
<pesel></pesel>
<uwagi></uwagi>
<bank_nazwa></bank_nazwa>
<bank_nr_konta></bank_nr_konta>
</kontrahent>
</params>
</ROOT>
Dokumentacja API BizIn – ostatnia zmiana 20.12.2016
10
Opis pól XML dokumentu powiązanego:
Lp.
Nazwa pola
Opis pola
ROOT
główny korzeń dokumentu
1
api_key
klucz API wygenerowany z systemu BIZIN
2
action
parametr akcji przyjmuje: addInvoice lub getInvoice
3
transactionID
16 znakowy niepowtarzalny (losowy: alfanumeryczny) identyfikator
transakcji (test dotyczy bieżącego dnia)
4
params
kontener parametrów
4.1
dokument_typ
typ dokumentu ( 3 – Faktura, 5 – proforma)
4.2
dokument_typ_procedury_marza
(np. 0)
4.3
dokument_id
podawane tylko w action = getInvoice
4.4
dokument_id_doc_zrodlo
0 lub identyfikator (musi być int)
4.5
dokument_typPlatnosciApiId
id typu płatności z systemu BIZIN
4.6
dokument_data_splaty
0000-00-00 lub data
4.7
dokument_bankApiId
id banku z systemu BIZIN
4.8
dokument_dodatkowy_opis
Dodatkowy opis na dokumencie
4.9
zrodlo_status
Czy dokonać zmiany dokumentu źródłowego:
pusty string - bez zmiany,
0 - nieaktywny,
1 - aktywny
4.10
zrodlo_dataSplaty
pusty string - bez zmiany
4.11
kontrahent
kontener danych kontrahenta
4.11.1
kontrahentApiId
Jeśli jest podany poprawny identyfikator nie porównuje reszty danych.
Bark lub 0 oraz pusta reszta pól lub array() - pobiera ze źródła
4.11.2
kod_kontrahenta
nip lub pesel - same cyfry
4.11.3
nazwa
nazwa kontrahenta
4.11.4
imie
imię i nazwisko kontrahenta
4.11.5
kod
kod pocztowy, np. 25-314
4.11.6
miejscowosc
miejscowość, np. Kielce
4.11.7
ulica
ulica np. Pawia
4.11.8
nr_domu
numer domu, np. 4/39
4.11.9
nip
numer nip
4.11.10
pesel
numer pesel
4.11.11
uwagi
uwagi
4.11.12
bank_nazwa
nazwa banku (np. ING Bank Śląski)
4.11.13
bank_nr_konta
numer konta bankowego
Dodawanie (import) dokumentu kosztowego
Dodawanie dokumentu kosztowego, wymaga podobnie jak akcja dodawania dokumentu przychodowego
użycia dokumentu XML z podanym api_key, action oraz gałęzią params. Poniżej przedstawiamy
przykładowe wywołanie.
<ROOT>
<api_key>wfn6mxu9smzmr37jnthgpqn9uo1araqd</api_key>
Dokumentacja API BizIn – ostatnia zmiana 20.12.2016
11
<action>addPurchaseInvoice</action>
<params>
<DOKUMENT>
<GENERATOR>BizIn</GENERATOR>
<TYP_DOKUMENTU>1</TYP_DOKUMENTU>
<NAGLOWEK>
<RODZAJ_DOKUMENTU>3</RODZAJ_DOKUMENTU>
<DOKUMENT_Z_VAT>1</DOKUMENT_Z_VAT>
<NUMER_PELNY>FV-2/11/2015</NUMER_PELNY>
<DATA_WYSTAWIENIA>2015-11-23</DATA_WYSTAWIENIA>
<DATA_DOSTAWY>2015-11-23</DATA_DOSTAWY>
<SPRZEDAWCA>
<nazwa>Biuro Informacyjne</nazwa>
<kod>00-950</kod>
<miejsc>Warszawa</miejsc>
<ul>ul. Woronicza</ul>
<nr>17</nr>
<nip>123-154-48-85</nip>
<kraj>Polska</kraj>
<dodatkowe_info></dodatkowe_info>
<tel>41-344-75-75</tel>
<mail>[email protected]</mail>
<www>biuroinformacyjne.to</www>
<nazwa_baner></nazwa_baner>
<GLN>1231544885</GLN>
<NAZWA_BANKU></NAZWA_BANKU>
<NUMER_KONTA_BANKOWEGO></NUMER_KONTA_BANKOWEGO>
</SPRZEDAWCA>
<PLATNIK>
<NIP>GB28121761937</NIP>
<GLN>GB28121761937</GLN>
<PESEL></PESEL>
<NAZWA>4deWind - Barbara Stojko</NAZWA>
<ADRES>
<ULICA>Lecha 10/7A</ULICA>
<KOD_POCZTOWY>25-622</KOD_POCZTOWY>
<MIASTO>KIELCE</MIASTO>
<KRAJ>Wyspy Owcze</KRAJ>
</ADRES>
<DANE_UZUPELNIAJACE>
<E-MAIL>[email protected]</E-MAIL>
<UWAGI>trelemele</UWAGI>
<DATA_UTWORZENIA></DATA_UTWORZENIA>
</DANE_UZUPELNIAJACE>
</PLATNIK>
<PLATNOSC>
<FORMA>7</FORMA>
<TERMIN>2015-11-30</TERMIN>
</PLATNOSC>
</NAGLOWEK>
<POZYCJE>
<POZYCJA_1>
<LP>1</LP>
<ID_SPRZEDAZY>3071</ID_SPRZEDAZY>
<TYP_POZYCJI>2</TYP_POZYCJI>
<TYP_POZYCJI_OPIS>Rejestr usług</TYP_POZYCJI_OPIS>
<ID_REJESTR>17</ID_REJESTR>
<NAZWA>USŁUGI KSIĘGOWE zażółć gęślą jaźń</NAZWA>
<ILOSC>1</ILOSC>
<JM>szt.</JM>
<CENA_NETTO>100</CENA_NETTO>
<CENA_BRUTTO>123</CENA_BRUTTO>
<WARTOSC_NETTO>100</WARTOSC_NETTO>
<STAWKA_VAT>23 %</STAWKA_VAT>
Dokumentacja API BizIn – ostatnia zmiana 20.12.2016
12
<WARTOSC_VAT>23</WARTOSC_VAT>
<WARTOSC_BRUTTO>123</WARTOSC_BRUTTO>
</POZYCJA_1>
</POZYCJE>
<PODLICZENIE>
<WALUTA>
<SYMBOL>1</SYMBOL>
<SYMBOL_OPIS>PLN</SYMBOL_OPIS>
<KURS>1.0000</KURS>
<KURS_TYP>1</KURS_TYP>
<KURS_DATA>2015-11-20</KURS_DATA>
</WALUTA>
</PODLICZENIE>
</DOKUMENT>
</params>
</ROOT>
Uwagi:
•
Zwrotnie generowany jest dokument XML.
•
Dane w gałęzi params to dokument w standardzie BizIn z usuniętymi niektórymi gałęziami.
•
Pozycje dodawane są jako towar handlowy magazynu oznaczonego jako domyślny.
•
Domyślnie podczas dodawania pozycji przypisywana jest pierwsza aktywna kategoria ze
słownika.
Dokumentacja API BizIn – ostatnia zmiana 20.12.2016
13
Debugowanie
API zawiera także tryb debug, który umożliwia sprawdzanie poprawności wysyłanych danych bez
wprowadzania zmian w systemie BizIn. Uruchomienie trybu debug, jest możliwe poprzez dodanie do
adresu API parametru &debug=yes
https://system.bizin.pl/apiBizIn.html?idP=NUMER_IDP&debug=yes
Dokumentacja API BizIn – ostatnia zmiana 20.12.2016
14

Podobne dokumenty