Terugbelgesprekken
Ontvang ondertekende, idempotente server-naar-server-gebeurtenissen en voltooide asynchrone resultaten.
Terugbelgesprekken
Configureer een terugbel-URL in Profiel → Terugbelgesprekken en asynchrone resultaten. Model Gate verzendt HTTPS POST verzoeken om ingeschakelde accountmeldingen en voltooide verzoeken om native async-inferentie. De terugbellevering is onafhankelijk van de gevolgtrekkingsverwerking en loopt via een speciale, duurzame Model Gate-werkwachtrij.
Terugbel-URL en uitgaande beveiliging
Gebruik een openbaar bereikbaar HTTPS-eindpunt. Validatie van callback-URL's is een uitgaande beveiligingsgrens. Loopback, private, link-local, carrier-grade NAT, documentatie/test, multicast, niet-gespecificeerde en gereserveerde IP-bereiken worden afgewezen. De hostnaam wordt gevalideerd bij het opslaan en opnieuw tijdens de levering; omleidingen worden opnieuw gevalideerd. Wijs geen terugbelverzoeken naar interne diensten of doorverwijzingen naar privénetwerken.
Gemeenschappelijke evenementenenvelop
Elke terugbelactie gebruikt dezelfde envelop:
{
"event_id": "01J...",
"event": "account.balance_low",
"occurred_at": "2026-08-28T07:00:00Z",
"data": {}
}
event_id is stabiel voor elke nieuwe poging van één logische gebeurtenis. Ontdubbel leveringen door event_id; leid de identiteit niet af door de rest van de lading te vergelijken. occurred_at is UTC RFC3339. Payloads kunnen in de loop van de tijd extra velden krijgen, dus consumenten moeten onbekende velden negeren.
Elke levering bevat ook hetzelfde gebeurtenis-ID in X-Model-Gate-Event-ID.
Evenementencatalogus
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
De lading gebruikt group_id, group_name, exact decimaal usage, exact decimaal spend_limit, geheel getal threshold_percent, En 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 is nulbaar als er geen upstream HTTP-status bestaat. Mogelijk zijn er mislukte/geannuleerde/verlopen asynchrone resultaten data.error.
Financiële waarden in callback-payloads zijn exacte decimale tekenreeksen; het zijn geen UI-afgeronde weergavewaarden.
Drempelwaarschuwingen worden opnieuw ingeschakeld nadat de bewaakte waarde de drempelwaarde heeft verlaten. De drempelwerker evalueert de omstandigheden ongeveer één keer per minuut, buiten het inferentie-hot-pad, dus drempel-callbacks zijn geen real-time millisecondenoverschrijdingssignaal.
Aanvraag formaat
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
Handtekeningverificatie
Bereken HMAC-SHA256 over de exacte string <timestamp>.<raw_body> met behulp van het terugbelgeheim dat is gegenereerd in Profiel. Het volledige geheim wordt alleen weergegeven wanneer het wordt gegenereerd of geroteerd en wordt in rust versleuteld opgeslagen. Vergelijk de hexadecimale handtekening in constante tijd en wijs tijdstempels buiten uw geaccepteerde herhalingsvenster af. De HMAC-tijdstempel is specifiek voor een bezorgpoging; de event_id blijft stabiel bij nieuwe pogingen.
Levering, reactie en nieuwe pogingen
Elke HTTP 2xx reactie accepteert de gebeurtenis. HTTP 200 met een leeg lichaam wordt aanbevolen. Transportfouten, time-outs en elke niet-2xx-reactie zijn mislukkingen.
Elk evenement heeft er maximaal In totaal 6 pogingen: de eerste poging plus vijf nieuwe pogingen. Mislukte pogingen 1–5 worden gevolgd door 5 seconden, 30 seconden, 2 minuten, 10 minuten en 1 uur. Elke poging heeft een moeilijkheid 15 seconden algehele time-out. Na de zesde mislukte poging wordt de gebeurtenis terminaal failed en er is geen automatische nieuwe poging meer. Verouderde werknemersclaims worden automatisch teruggestuurd naar de duurzame wachtrij.
Voer geen langdurig werk uit voordat u reageert. Controleer de handtekening, volhard/ontdubbel door event_id, opbrengst 2xxen asynchroon verwerken.