Повратни позиви
Примите потписане, идемпотентне догађаје између сервера и завршене резултате асинхронизације.
Повратни позиви
Конфигуришите УРЛ за повратни позив у Профил → Повратни позиви и асинхронизовани резултати. Модел Гате шаље ХТТПС POST захтеви за омогућена обавештења о налогу и довршени изворни захтеви за асинхронизовано закључивање. Достава повратног позива је независна од обраде закључивања и пролази кроз наменски дуготрајни радни ред Модел Гате-а.
УРЛ повратног позива и одлазна безбедност
Користите јавно доступну ХТТПС крајњу тачку. Валидација УРЛ адресе повратног позива је излазна безбедносна граница. Лоопбацк, приватни, линк-локални, НАТ на нивоу оператера, документација/тест, мултицаст, неспецифицирани и резервисани ИП опсези су одбијени. Име хоста се потврђује када се сачува и поново током испоруке; преусмеравања су поново потврђена. Не усмеравајте повратне позиве на интерне услуге или преусмеравања на приватне мреже.
Заједничка коверта догађаја
Сваки повратни позив користи исту коверту:
{
"event_id": "01J...",
"event": "account.balance_low",
"occurred_at": "2026-08-28T07:00:00Z",
"data": {}
}
event_id је стабилан за сваки поновни покушај једног логичног догађаја. Уклањање дупликата испоруке до event_id; немојте закључити идентитет упоређивањем остатка корисног оптерећења. occurred_at је УТЦ РФЦ3339. Корисно оптерећење може временом да добије додатна поља, тако да корисници морају да игноришу непозната поља.
Свака испорука такође укључује исти ИД догађаја X-Model-Gate-Event-ID.
Каталог догађаја
account.balance_low
{
"event_id": "01J...",
"event": "account.balance_low",
"occurred_at": "2026-08-28T07:00:00Z",
"data": {
"balance": "10.1234567890",
"threshold": "20.0000000000",
"currency": "USD"
}
}
key.spend_limit_threshold_reached
{
"event_id": "01J...",
"event": "key.spend_limit_threshold_reached",
"occurred_at": "2026-08-28T07:00:00Z",
"data": {
"key_id": "KEY_PUBLIC_ID",
"key_name": "Bank integration",
"usage": "80.1234567890",
"spend_limit": "100.0000000000",
"threshold_percent": 80,
"currency": "USD"
}
}
group.spend_limit_threshold_reached
Корисни терет користи group_id, group_name, тачна децимална usage, тачна децимална spend_limit, цео број threshold_percent, и currency = "USD".
request.completed
{
"event_id": "01J...",
"event": "request.completed",
"occurred_at": "2026-08-28T07:00:00.123456Z",
"data": {
"request_id": "01J...",
"status": "completed",
"response_status": 200,
"response": {"id":"msg_...","type":"message"}
}
}
response_status је нулл када не постоји упстреам ХТТП статус. Неуспели/отказани/истекли резултати асинхронизације могу да укључују data.error.
Финансијске вредности у корисним подацима повратног позива су тачни децимални низови; нису приказане вредности заокружене УИ.
Упозорења о прагу се поново активирају након што надгледана вредност напусти своје гранично стање. Радник прага процењује услове отприлике једном у минути, изван вруће путање закључивања, тако да повратни позиви прага нису сигнал преласка милисекунди у реалном времену.
Формат захтева
POST /model-gate/callback HTTP/1.1
Content-Type: application/json
X-Model-Gate-Event-ID: 01J...
X-Model-Gate-Signature: t=1710000000,v1=hex_hmac_sha256
Провера потписа
Израчунајте ХМАЦ-СХА256 преко тачног низа <timestamp>.<raw_body> користећи тајну повратног позива генерисану у профилу. Потпуна тајна се приказује само када се генерише или ротира и чува се шифрована у мировању. Упоредите хексадецимални потпис у константном времену и одбаците временске ознаке изван вашег прихваћеног прозора за понављање. ХМАЦ временска ознака је специфична за покушај испоруке; тхе event_id остаје стабилан током покушаја.
Испорука, одговор и поновни покушаји
Било који ХТТП 2xx одговор прихвата догађај. ХТТП 200 са празним телом препоручује се. Грешке у транспорту, временска ограничења и сваки одговор који није 2кк су грешке.
Сваки догађај има највише Укупно 6 покушаја: почетни покушај плус пет покушаја. Неуспели покушаји 1–5 су праћени 5 секунди, 30 секунди, 2 минута, 10 минута и 1 сат. Сваки покушај је тежак 15 секунди укупно временско ограничење. Након шестог неуспелог покушаја догађај постаје терминал failed и нема даљег аутоматског поновног покушаја. Застарели захтеви радника се аутоматски враћају у трајни ред чекања.
Не обављајте дуготрајан посао пре него што одговорите. Провери потпис, задржи/уклони дупликате до event_id, повратак 2xx, и обрадити асинхроно.