B2BB2B LLM

Повратни позиви

Примите потписане, идемпотентне догађаје између сервера и завршене резултате асинхронизације.

Повратни позиви

Конфигуришите УРЛ за повратни позив у Профил → Повратни позиви и асинхронизовани резултати. Модел Гате шаље ХТТПС 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, и обрадити асинхроно.

Повезана документација