Įvykiai ir webhook
Skaitra registruoja įvykius: atkeliavo dokumentas, baigtas nuskaitymas, pasikeitė mėnesio darbo būsena ir pan. Juos galite gauti dviem būdais:
- užklausomis – periodiškai kviesti
GET /events; - webhook – Skaitra pati siunčia įvykius į jūsų
https://adresą.
Abiem atvejais matote tik tų įmonių įvykius, prie kurių raktas turi prieigą, ir tik tuos, kuriems raktas turi teisę.
Įvykių tipai
Įvykio pavidalas:
Įvykių skaitymas užklausomis
GET /events grąžina įvykius nuo seniausio. Kitą kartą perduokite gautą nextCursor kaip after – gausite tik naujus įvykius. Jei naujų nėra, nextCursor lieka toks pat. Galite filtruoti pagal type ir companyId. Reikia teisės events:read.
Webhook
Webhook adresai tvarkomi per API (teisė webhooks:manage); programoje jų nustatymo kol kas nėra. Adresas priklauso rakto prieigai.
eventTypes: ["*"]– visi įvykiai, kuriuos raktas gali matyti.- Atsakyme gausite
secret(whsec_...) – parašų tikrinimo raktą. Jis parodomas tik vieną kartą. POST /webhook-endpoints/{id}/testišsiunčiawebhook.testįvykį ir parodo, kaip atsakė jūsų adresas.GET /webhook-endpoints/{id}/deliveriesrodo pristatymus ir klaidas.PATCHsuenabled: falselaikinai sustabdo siuntimą,DELETE– pašalina adresą.
Pristatymas ir kartojimas
- Įvykis siunčiamas
POSTužklausa su JSON turiniu (įvykio pavidalas – aukščiau). - Pristatymas sėkmingas, jei per 10 sekundžių atsakote
2xx. Peradresavimai nesekami. - Nepavykus, siuntimas kartojamas po 1, 5 ir 30 minučių, po 2, 6, 12 ir 24 valandų. Po paskutinio bandymo pristatymas pažymimas nepavykusiu.
- Tas pats įvykis gali atkeliauti daugiau nei kartą. Įvykio
idnesikeičia, todėl pasikartojimus atpažinsite pagal jį.
Parašo tikrinimas
Užklausos pasirašomos pagal Standard Webhooks specifikaciją. Antraštės:
webhook-id– įvykioid;webhook-timestamp– siuntimo laikas (Unix sekundės);webhook-signature–v1,ir HMAC-SHA256 parašas (base64).
Parašas skaičiuojamas iš webhook-id.webhook-timestamp.turinys, raktas – secret be whsec_ priešdėlio, iškoduotas iš base64. Galite naudoti bet kurią Standard Webhooks biblioteką arba patikrinti patys:
Tikrinkite ir webhook-timestamp: atmeskite per senus pranešimus (pavyzdžiui, senesnius nei 5 minutės).

