API

Žiniatinklio kabliukai

Webhookas – tai HTTP užklausa, kurią FoodSoul siunčia į jūsų sistemos adresą, kai paskyroje įvyksta tam tikras įvykis: naujas užsakymas, būsenos pasikeitimas, atsiliepimas ir kiti.

Prenumerata su adresu ir įvykiais sukuriama metodu:

POST Sukurti prenumeratą webhook

Adresas — URL iš prenumeratos, metodas — POST.

Formatas, parašas ir pasikartojimai

Webhook užklausos turinys. Kiekviena užklausa — POST su Content-Type: application/json į prenumeratos URL. URL turi prasidėti https. Antraštės: X-Webhook-Event — įvykio kodas, X-Webhook-ID — event_uuid, X-Webhook-Signature — sha256= ir HMAC-SHA256 pradinio užklausos turinio hex formatu su filialo slaptu raktu (webhooks_subscriptions.generate_secret). Patikrinkite parašą pagal pradinį turinį prieš JSON analizę: hash_equals(hash_hmac('sha256', $body, $secret), substr($signature, 7)). Laiko žymos paraše nėra, kanalas apsaugotas per HTTPS. Pristatymas laikomas priimtu, jei gaunamas bet koks 2xx atsakymas per 10 sekundžių. Peradresavimai nevykdomi. Kitu atveju pristatymas kartojamas: 7 bandymai, pirmas iškart, tada po 1, 5, 15, 60, 180 ir 360 minučių. Visi vieno pristatymo bandymai turi tą patį X-Webhook-ID. Pakartotinis siuntimas iš žurnalo (webhooks_logs.resend) turi tą patį X-Webhook-ID — pagal jį praleiskite jau apdorotus pristatymus. 20 iš eilės nesėkmingų pristatymų išjungia prenumeratą (blocked), o paskyros savininkas ir sistemos administratorius gauna laišką. webhooks_subscriptions.unblock vėl įjungia prenumeratą. Turinyje yra įvykio duomenys: klientas, atsiliepimas ir užsakymo kortelė perduodami pilnai. Premijų balansas neperduodamas: jis bendras tinklų baseinui, jį reikia gauti per API.

Antraštės

X-Webhook-Eventstringprivalomas

Pavyzdys: order.created

X-Webhook-IDstringprivalomas

Pavyzdys: 5f0c6b1e-6a1d-4c1e-9d6b-3a7f0e2b8c41

X-Webhook-Signaturestringprivalomas

Pavyzdys: sha256=9f86d081884c7d659a2feaa0c55ad015a3bf4f1b2b0b822cd15d6c15b0f00a08

Įvykiai

  • client.registered
  • client.updated
  • client.bonuses_changed
  • order.created
  • order.status_changed
  • order.payment_status_changed
  • feedback.created
  • courier.assigned
  • item.stop_list_changed
  • branch.work_status_changed

Užklausos turinys

object (WebhookPayload)
eventstringprivalomas

Reikšmės:client.registeredclient.updatedclient.bonuses_changedorder.createdorder.status_changedorder.payment_status_changedfeedback.createdcourier.assigneditem.stop_list_changedbranch.work_status_changed

Pavyzdys: order.status_changed

event_uuidstringprivalomas

Pavyzdys: 5f0c6b1e-6a1d-4c1e-9d6b-3a7f0e2b8c41

date_creationstring (DataTimeFormatSQL) privalomas

Pavyzdys: 2024-05-02 08:31:16

branch_idintegerprivalomas

Pavyzdys: 8412

dataoneOfprivalomas
Vienas iš variantų
object (WebhookDataClientRegistered)

client.registered — naujas telefono numeris arba pirmasis paskyros prisijungimas šiame filiale

client_branch_profile_idintegerprivalomas

Pavyzdys: 730112

namestringgali būti null

Pavyzdys: John Doe

phonestringprivalomas

Telefonas tarptautiniu formatu, be formatavimo

Pavyzdys: +79114579423

genderstringgali būti null

Reikšmės:womanman

Pavyzdys: man

date_of_birthstringgali būti null

Gimimo data formatu Y-m-d

Pavyzdys: 1982-01-03

Pavyzdinis turinys

{
  "event": "order.status_changed",
  "event_uuid": "5f0c6b1e-6a1d-4c1e-9d6b-3a7f0e2b8c41",
  "date_creation": "2024-05-02 08:31:16",
  "branch_id": 8412,
  "data": {
    "client_branch_profile_id": 730112,
    "name": "John Doe",
    "phone": "+79114579423",
    "gender": "man",
    "date_of_birth": "1982-01-03"
  }
}

Jūsų sistemos atsakymas

2XX

Priimta

default

Не принято, доставка повторяется