Gå til innholdet

Feil

Feil bruker HTTP-statuskoder og en brødtekst etter RFC 9457 med Content-Type: application/problem+json:

{
"type": "https://bonafidesign.com/problems/validation-error",
"title": "Validation failed",
"status": 422,
"detail": "The request is invalid.",
"errors": [
{ "pointer": "/recipients/0/email", "message": "Invalid email address" },
{ "pointer": "/recipients", "message": "Missing recipient for role 'company'." },
{ "pointer": "/recipients/1/role", "message": "Unknown role 'cfo'.", "hint": "Template roles: client, company" }
],
"requestId": "req_V1StGXR8Z5jdHi6BmyT2"
}
Medlem Betydning
type Stabil identifikator: https://bonafidesign.com/problems/<slug>. Forgrein på denne (eller på slugen), ikke på title eller detail
title Kort sammendrag av typen
status HTTP-statusen
detail Lesbar forklaring av akkurat denne forekomsten
errors Valideringsproblemer: pointer (en JSON Pointer inn i forespørselens brødtekst, eller inn i spørringen eller variablene), message, valgfritt hint
requestId Finnes også i headeren x-request-id. Oppgi den til kundestøtte
upgradeUrl Ved plangrenser (402, 403 plan-upgrade-required): hvor du legger inn et kort eller oppgraderer

Alle valideringsproblemene i en forespørsel rapporteres samtidig, så en klient kan vise hvert av dem ved riktig felt.

Status Slug Når
400 bad-request Ugyldig forespørsel, for eksempel en brødtekst som ikke er gyldig JSON
401 unauthorized Manglende, ugyldig formatert, tilbakekalt eller utløpt legitimasjon
402 payment-required Et Free-arbeidsområde har fullført de inkluderte konvoluttene for perioden; legg inn et kort eller oppgrader (testmodus påvirkes ikke)
403 forbidden Autentisert, men ikke tillatt: en manglende tillatelse, en API-nøkkel på et endepunkt som bare godtar dashbordet, en forespørsel på tvers av nettsteder
403 plan-upgrade-required Funksjonen er ikke med i arbeidsområdets plan
403 verification-required En signatar sendte inn før engangskoden var bekreftet
404 not-found Ressursen finnes ikke i organisasjonen din, eller ruten finnes ikke
409 invalid-state Handlingen passer ikke med gjeldende tilstand, f.eks. annullering av en fullført konvolutt eller oppretting av en økt for en mottaker som har signert
409 not-your-turn En signatar sendte inn før tidligere rutinggrupper var ferdige
409 document-mismatch Dokumentet er endret siden signataren fikk se det (viewedDocumentHash)
409 already-signed E-postadressen har allerede signert denne faste lenken
409 in-use Sletting av en mal som brukes av konvolutter eller signeringslenker
409 no-draft Publisering av en mal som ikke har noe utkast
409 idempotency-in-progress En forespørsel med samme Idempotency-Key kjører fortsatt
409 conflict Andre konflikter
410 gone En signeringsøkt som allerede er brukt eller har utløpt
413 payload-too-large En opplasting over grensen (25 MB for malfiler)
415 unsupported-media-type En opplasting av en type som ikke støttes
422 validation-error Brødteksten, spørringen eller variablene er ugyldige; se errors
422 idempotency-key-reused Samme Idempotency-Key ble brukt med en annen forespørsel
422 conversion-failed Et Word-dokument kunne ikke konverteres
429 rate-limited For mange forespørsler; vent i Retry-After sekunder når den finnes
500 internal Uventet feil. Trygt å prøve på nytt med samme Idempotency-Key
501 not-implemented Funksjonen finnes i skjemaet, men ikke ennå (f.eks. SMS-koder)
503 converter-unavailable, billing-unavailable En avhengighet er midlertidig utilgjengelig; prøv igjen senere
const res = await fetch('https://api.bonafidesign.com/v1/envelopes', { method: 'POST', headers, body });
if (!res.ok) {
const problem = await res.json(); // application/problem+json
const slug = problem.type.split('/').pop();
if (slug === 'validation-error') {
for (const e of problem.errors) form.setError(e.pointer, e.message);
} else if (slug === 'payment-required') {
showUpgrade(problem.upgradeUrl);
} else {
throw new Error(`${problem.title} (${problem.requestId})`);
}
}