Nie jestem klientem ING
Nie musisz nim być, by móc fakturować i księgować
Zarejestruj się bez kontaJestem klientem ING
Korzystasz z bankowości internetowej Moje ING
lub ING Business?
Siedzisz wygodnie w swoim fotelu i korzystając z telefonu zamawiasz obiad w ulubionej restauracji z dostawą do domu. Nie oczekujesz, że dostarczy Ci go właściciel lub szef kuchni osobiście - zadanie to wykona dostawca.
W tym zestawieniu Ty i Twoja ulubiona restauracja reprezentujecie dwa różne systemy, a dostarczający to API.
API, czyli Application Programming Interface, to zestaw reguł i zasad dzięki którym różne programy mogą się ze sobą komunikować, na przykład przekazując dane.
Jak API może Ci pomóc?
Wielu przedsiębiorców boryka się z problemem wzrastającej liczby dokumentów.
Jest to często "pułapka" sukcesu -
im więcej artykułów sprzedają, tym więcej faktur i paragonów
muszą wystawić i przekazać swoim klientom.
To wszystko zajmuje czas, który lepiej byłoby przeznaczyć na rozwijanie
firmy.
Wstęp
Nasze API udostępnia możliwość generowania faktur pod adresem URL https://ksiegowosc.ing.pl/v2/api/public/create-invoice
Do wygenerowania faktury należy użyć metody POST w żądaniu HTML.
Parametry żądania:
- W nagłówku żądania (‘header’) wymagany jest parametr ‘ApiUserCompanyRoleKey‘, którego wartość jest typu ‘string’ (ciąg tekstowy).
Wartość tego parametru należy skopiować z zakładki "Dane i Ustawienia" > "Integracje"
Ten parametr jest niezbędny do autoryzacji. - W zawartości żądania (‘body’) przyjmowany jest object typu JSON (Parameter content type: application/json).
Zobacz przykładową strukturę JSON akceptowaną w body
Rozwiń |
- Definicje i struktury danych dotyczące elementów struktury JSON przedstawiamy w kolejnych sekcjach, które znajdziesz dalej u dołu strony (Dokument, Waluta etc.).
- W odpowiedzi ('response') na poprawnie przesłane żądanie otrzymujemy status odpowiedzi z kodem 200 i opisem OK, zawartość odpowiedzi (‘body’) w formacie JSON zawiera identyfikator „id” utworzonego dokumenty wraz linkiem do jego pobrania. Wartość przekazana w identyfikatorze należy podstawić w zapytaniu ‘/v2/api/public/download-invoice/{document}/pdf’ pod element {document}.
Szczegóły znajdziesz w zakładce GET Pobranie faktury w .pdf.
Jeśli w statusie odpowiedzi na żądanie jest kod 400 z opisem 'Bad Request', wówczas zawartość odpowiedzi (‘body’) będzie zawierać odpowiednie komunikaty dla błędnie przesłanych danych w żądaniu.
Przykład
[{ "property_path": "payment.method", "message": "Ta wartość powinna być jedną z podanych opcji." }]
Nasze API daje możliwość pobierania faktur w formacie .pdf. Metoda jest udostępniona pod adresem https://ksiegowosc.ing.pl/v2/api/public/download-invoice/{document}/pdf
Do wygenerowania faktury należy użyć metody GET w żądaniu HTML.
Parametry żądania:
- Wymagany parametr {document} w adresie żądania jest identyfikatorem „id” dokumentu którego plik .pdf chcemy pobrać.
- W nagłówku żądania (‘header’) wymagany jest parametr ‘ApiUserCompanyRoleKey‘, którego wartość jest typu ‘string’ (ciąg tekstowy).
Wartość tego parametru należy skopiować z zakładki "Dane i Ustawienia" > "Integracje".
Ten parametr jest niezbędny do autoryzacji. - W odpowiedzi ('response') na poprawnie przesłane żądanie otrzymujemy status odpowiedzi z kodem 200 i opisem OK, zawartość odpowiedzi (‘body’) w zawiera plik w formacie PDF, który można zapisać i otworzyć w odpowiedniej aplikacji.
Jeśli w statusie odpowiedzi na żądanie jest kod 400 z opisem Bad Request, wówczas zawartość odpowiedzi (‘body’) będzie zawierać odpowiednie komunikaty dla błędnie przesłanych danych w żądaniu.
Post
Wygenerowanie faktury
Ścieżka
/v2/api/public/create-invoice
{ "issuedGross": true, "issuePlace": "string", "issueDate": "2020-04-28", "serviceDate": "2020-04-28", "description": "string", "signature": "string", "currency": { "code": "PLN", "rate": 0 }, "payment": { "method": "TRANSFER", "deadlineDate": "2020-04-28", "paidAmount": 0, "splitPayment": true, "bankAccounts": [ { "accountNumber": "string", "name": "string", "swift": "string", "countryCode": "AF" } ] }, "buyer": { "email": "user@example.com", "fullName": "string", "addressStreet": "string", "city": "string", "postCode": "string", "countryCode": "AF", "taxNumber": "string", "taxCountryCode": "AF" }, "positions": [ { "name": "string", "code": "string", "quantity": 0, "unit": "string", "net": 0, "tax": 0, "gross": 0, "taxStake": "TAX_23", "discount": 0, "discountAmount": 0, "netAfterDiscount": 0, "grossAfterDiscount": 0 } ] }
Dokument
Dane faktury - element zapytania POST
Elementy oznaczone * , są elementami wymaganymi
issuedGross | boolean | |||||||||||||||||||||||||
issuePlace | string | |||||||||||||||||||||||||
issueDate | string($date) | |||||||||||||||||||||||||
serviceDate | string($date) | |||||||||||||||||||||||||
description | string | |||||||||||||||||||||||||
signature | string | |||||||||||||||||||||||||
currency | CurrencyDto{
|
|||||||||||||||||||||||||
payment* | PaymentDto{
|
|||||||||||||||||||||||||
buyer* | BuyerDto...} | |||||||||||||||||||||||||
positions* | [PositionDto{
|
|||||||||||||||||||||||||
Płatność
Element zapytania POST
Elementy oznaczone * , są elementami wymaganymi
method* | stringEnum: Array [ 9 ] |
|||||||||
deadlineDate* | string($date) | |||||||||
paidAmount | number | |||||||||
splitPayment | boolean | |||||||||
bankAccounts* | [BankAccountDto{
|
Klient
Dane kupującego - element zapytania POST
Elementy oznaczone * , są elementami wymaganymi
email* | string($email) |
fullName* | string |
addressStreet* | string |
city* | string |
postCode* | string |
countryCode* | stringEnum: [ AF, AX, AL, DZ, AD, AO, AI, AQ, AG, AN, SA, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BE, BZ, BJ, BM, BT, BY, BO, BA, BW, BR, BN, IO, BG, BF, BI, XC, CL, CN, HR, CY, TD, ME, DK, DM, DO, DJ, EG, EC, ER, EE, ET, FK, FJ, PH, FI, FR, TF, GA, GM, GH, GI, GR, GD, GL, GE, GU, GG, GY, GF, GP, GT, GN, GQ, GW, HT, ES, HN, HK, IN, ID, IQ, IR, IE, IS, IL, JM, JP, YE, JE, JO, KY, KH, CM, CA, QA, KZ, KE, KG, KI, CO, KM, CG, CD, KP, XK, CR, CU, KW, LA, LS, LB, LR, LY, LI, LT, LV, LU, MK, MG, YT, MO, MW, MV, MY, ML, MT, MP, MA, MQ, MR, MU, MX, XL, FM, UM, MD, MC, MN, MS, MZ, MM, NA, NR, NP, NL, DE, NE, NG, NI, NU, NF, NO, NC, NZ, PS, OM, PK, PW, PA, PG, PY, PE, PN, PF, PL, GS, PT, PR, CF, CZ, KR, ZA, RE, RU, RO, RW, EH, BL, KN, LC, MF, VC, SV, WS, AS, SM, SN, RS, SC, SL, SG, SK, SI, SO, LK, PM, US, SZ, SD, SR, SJ, SH, SY, CH, SE, TJ, TH, TW, TZ, TG, TK, TO, TT, TN, TR, TM, TV, UG, UA, UY, UZ, VU, WF, VA, HU, VE, GB, VN, IT, TL, CI, BV, CX, IM, CK, VI, VG, HM, CC, MH, FO, SB, ST, TC, ZM, CV, ZW, AE ] |
taxNumber* | string |
taxCountryCode* | stringEnum: [ AF, AX, AL, DZ, AD, AO, AI, AQ, AG, AN, SA, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BE, BZ, BJ, BM, BT, BY, BO, BA, BW, BR, BN, IO, BG, BF, BI, XC, CL, CN, HR, CY, TD, ME, DK, DM, DO, DJ, EG, EC, ER, EE, ET, FK, FJ, PH, FI, FR, TF, GA, GM, GH, GI, GR, GD, GL, GE, GU, GG, GY, GF, GP, GT, GN, GQ, GW, HT, ES, HN, HK, IN, ID, IQ, IR, IE, IS, IL, JM, JP, YE, JE, JO, KY, KH, CM, CA, QA, KZ, KE, KG, KI, CO, KM, CG, CD, KP, XK, CR, CU, KW, LA, LS, LB, LR, LY, LI, LT, LV, LU, MK, MG, YT, MO, MW, MV, MY, ML, MT, MP, MA, MQ, MR, MU, MX, XL, FM, UM, MD, MC, MN, MS, MZ, MM, NA, NR, NP, NL, DE, NE, NG, NI, NU, NF, NO, NC, NZ, PS, OM, PK, PW, PA, PG, PY, PE, PN, PF, PL, GS, PT, PR, CF, CZ, KR, ZA, RE, RU, RO, RW, EH, BL, KN, LC, MF, VC, SV, WS, AS, SM, SN, RS, SC, SL, SG, SK, SI, SO, LK, PM, US, SZ, SD, SR, SJ, SH, SY, CH, SE, TJ, TH, TW, TZ, TG, TK, TO, TT, TN, TR, TM, TV, UG, UA, UY, UZ, VU, WF, VA, HU, VE, GB, VN, IT, TL, CI, BV, CX, IM, CK, VI, VG, HM, CC, MH, FO, SB, ST, TC, ZM, CV, ZW, AE ] |
Rachunek odbiorcy
Element zapytania POST
Elementy oznaczone * , są elementami wymaganymi
accountNumber* | string |
name | string |
swift | string |
countryCode | stringEnum: [ AF, AX, AL, DZ, AD, AO, AI, AQ, AG, AN, SA, AR, AM, AW, AU, AT, AZ, BS, BH, BD, BB, BE, BZ, BJ, BM, BT, BY, BO, BA, BW, BR, BN, IO, BG, BF, BI, XC, CL, CN, HR, CY, TD, ME, DK, DM, DO, DJ, EG, EC, ER, EE, ET, FK, FJ, PH, FI, FR, TF, GA, GM, GH, GI, GR, GD, GL, GE, GU, GG, GY, GF, GP, GT, GN, GQ, GW, HT, ES, HN, HK, IN, ID, IQ, IR, IE, IS, IL, JM, JP, YE, JE, JO, KY, KH, CM, CA, QA, KZ, KE, KG, KI, CO, KM, CG, CD, KP, XK, CR, CU, KW, LA, LS, LB, LR, LY, LI, LT, LV, LU, MK, MG, YT, MO, MW, MV, MY, ML, MT, MP, MA, MQ, MR, MU, MX, XL, FM, UM, MD, MC, MN, MS, MZ, MM, NA, NR, NP, NL, DE, NE, NG, NI, NU, NF, NO, NC, NZ, PS, OM, PK, PW, PA, PG, PY, PE, PN, PF, PL, GS, PT, PR, CF, CZ, KR, ZA, RE, RU, RO, RW, EH, BL, KN, LC, MF, VC, SV, WS, AS, SM, SN, RS, SC, SL, SG, SK, SI, SO, LK, PM, US, SZ, SD, SR, SJ, SH, SY, CH, SE, TJ, TH, TW, TZ, TG, TK, TO, TT, TN, TR, TM, TV, UG, UA, UY, UZ, VU, WF, VA, HU, VE, GB, VN, IT, TL, CI, BV, CX, IM, CK, VI, VG, HM, CC, MH, FO, SB, ST, TC, ZM, CV, ZW, AE ] |
Dane pozycji na fakturze
Element zapytania POST
Elementy oznaczone * , są elementami wymaganymi
name* | string |
code* | string |
quantity* | number |
unit* | string |
net* | number |
tax* | number |
gross* | number |
taxStake* | stringEnum: [ TAX_23, TAX_22, TAX_8, TAX_7, TAX_5, TAX_3, TAX_0, TAX_EXEMPT, TAX_NOT_LIABLE, TAX_EXCLUDING, TAX_REVERSE_CHARGE ] |
discount | number title: w procentach * |
discountAmount | number |
netAfterDiscount | number |
grossAfterDiscount | number |