MostlyQR

Fouten

De REST API gebruikt standaard HTTP-statuscodes en retourneert een JSON-foutlichaam:

json
{ "error": "unauthorized", "message": "Missing or invalid API key" }

# Statuscodes

Status error Wanneer
400 invalid-argument Misvormde body of een ontbrekend verplicht veld.
401 unauthorized Ontbrekende, ongeldige of ingetrokken API-sleutel.
403 permission-denied Buiten de bevoegdheden van uw plan (een functie die uw plan niet bevat).
404 not-found Geen link/campagne/job met die id, of niet eigendom van uw account.
405 method_not_allowed Die HTTP-methode wordt niet ondersteund op dit pad.
409 failed-precondition De resource bevindt zich niet in een staat die de bewerking toestaat — bijvoorbeeld het bewerken van een bevroren link, of het genereren van geserialiseerde codes buiten uw Enterprise-toewijzing (de limiet staat in het bericht).
429 rate_limited / resource-exhausted Per-sleutel snelheidslimiet bereikt (rate_limited — inclusief een retry_at-tijdstempel en X-RateLimit-* antwoordheaders) of een planquota uitgeput (resource-exhausted). Back off en probeer opnieuw.
5xx internal Er is iets misgegaan aan onze kant; veilig om idempotente lezingen opnieuw uit te voeren.

Fouten op transportniveau (verificatie, routering, snelheidsbeperkingen) gebruiken snake_case-codes; fouten op resourceniveau gebruiken kebab-case (de Firebase callable-conventie). Vertakt altijd op de HTTP-status, niet op de error-string.

# Eigendom

Elke lezen en schrijven bewerking is beperkt tot het account waarnaar de API-sleutel verwijst. Het aanvragen van een link of campagne van een ander account retourneert 404 (niet 403) — we onthullen niet dat deze bestaat.

# Asynchrone taken

Batch en geserialiseerde mint taken accepteren de aanvraag (200, queued), en tonen vervolgens fouten in de taakstatus (status: "failed" met een reden), niet in het originele HTTP-antwoord. Poll altijd de taak.

# Verificatie

De openbare verificatie endpoints retourneren nooit een fout voor een onbekende serieel — ze retourneren status: "unknown" (een valse/niet-uitgegeven code is een zinvol antwoord, geen 404).

# Volgende