Fakturowanie i Księgowość

Nie jestem klientem ING


Nie musisz nim być, by móc fakturować i księgować

Zarejestruj się bez konta

Otwórz konto - klienci bankowi mają łatwiej!

Jestem klientem ING


Korzystasz z bankowości internetowej Moje ING
lub ING Business?

Zarejestruj się w Moim ING

Zarejestruj się w ING Business

Integracje ING Księgowość z systemami zewnętrznymi

Przedsiębiorcy często korzystają z różnych systemów, które wspomagają ich w prowadzeniu biznesu - nie tylko fakturowych i księgowych.
Warto jednak, by te narzędzia ze sobą współgrały wymieniając się danymi o firmie.
Tutaj do akcji wkracza OpenAPI, z którego mogą korzystać przedsiębiorcy używający ING Księgowość

 

Czym jest API?

Może Ci się to wydawać skomplikowane, ale wyjaśnimy to na prostym przykładzie :)

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. 

Klienci kupują w Twoim sklepie

W ciągu każdej godziny dziesiątki klientów przeglądają, wybierają i płacą za Twoje towary. Wystawianie dla każdego z osobna faktur i paragonów jest sporym wyzwaniem.

Przepływ danych

Wszystkie istotne informacje są przekazywane z e-sklepu do ING Księgowości.
Dane kupującego, towary które kupił, kwoty i sposób płatności.

Dokumenty wystawiają się automatycznie

Tobie pozostaje jedynie wysłanie ich do klientów mailem wprost z ING Księgowość lub pobranie, wydruk i zapakowanie do paczki razem z towarem.

OpenAPI ING Księgowość

Przygotowane przez nas API pozwoli Ci na automatyczne
wystawianie faktury na podstawie danych z innego systemu
(np. e-sklepu) oraz na pobranie jej w formacie .pdf.

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'

 

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

icon

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.

Klucz API

Niezbędny w integracji z innymi aplikacjami
 

Swój unikalny klucz API znajdziesz w zakładce "Dane i Ustawienia" > "Integracje.
Możesz go wygenerować i wkleić w odpowiednim miejscu w aplikacji, której używasz.

Post

Wygenerowanie faktury

icon

Ś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

icon

Elementy oznaczone * , są elementami wymaganymi

issuedGross boolean
issuePlace string
issueDate string($date)
serviceDate string($date)
description string
signature string
currency CurrencyDto{
code stringEnum:
[ PLN, EUR, USD, CHF, GBP, CZK, DKK, HRK, HUF, NOK, RUB, SEK, UAH, AUD, BGN, BRL, CAD, CLP, CNY, HKD, IDR, ILS, INR, ISK, JPY, KRW, MXN, MYR, NZD, PHP, RON, SGD, THB, TRY, XDR, ZAR ]
rate number
 
}
payment* PaymentDto{
method* stringEnum:
[ TRANSFER, CASH, CARD, MAILING, SUBSCRIPTION, BARTER, COMPENSATION, OTHER, ]
deadlineDate* string($date)
paidAmount number
splitPayment boolean
bankAccounts* [BankAccountDto{
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 ]
 
}]
 
}
buyer* BuyerDto...}
positions* [PositionDto{
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
 
}]
 

Waluta

Element zapytania POST

code stringEnum:
[ PLN, EUR, USD, CHF, GBP, CZK, DKK, HRK, HUF, NOK, RUB, SEK, UAH, AUD, BGN, BRL, CAD, CLP, CNY, HKD, IDR, ILS, INR, ISK, JPY, KRW, MXN, MYR, NZD, PHP, RON, SGD, THB, TRY, XDR, ZAR ]
rate number

Płatność

Element zapytania POST

icon

Elementy oznaczone * , są elementami wymaganymi

method* stringEnum:
Array [ 9 ]
deadlineDate* string($date)
paidAmount number
splitPayment boolean
bankAccounts* [BankAccountDto{
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 ]
 
}]

Klient

Dane kupującego - element zapytania POST

icon

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

icon

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

icon

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

GET

Pobranie faktury w .pdf.

icon

Ścieżka

.../v2/api/public/download-invoice/{document}/pdf