veil

Decline a sign-in

Uses the request and sends the app error=access_denied, or login_required and consent_required for prompt=none.

POST/oidc/requests/{id}/deny
Access
Private code required
Client
Local or server client

Parameters#

NameLocationMeaning
idRequiredPathThe request id: 43 characters from the consent page's address (`?req=`) or its meta element.

JSON body#

NameLocationMeaning
errorJSONaccess_denied (default), login_required or consent_required.

Request examples#

cURL
curl -fsS --json '{"error":"access_denied"}' "https://veil.rip/oidc/requests/$REQUEST_ID/deny"

Response#

HTTP 200application/json

{redirect}.

FieldTypeMeaning
redirectstringredirect_uri with error, error_description, state and iss.

Response headers#

HeaderValueMeaning
Content-Typeapplication/jsonJSON, also for errors.
Cache-Controlno-storePrivate: never cached.

Errors#

API errors return an error object. Use error.code for program logic; error.message is English text for people and can change. Response and error guide

HTTPCodeMeaning and next step
400invalid_json

The body is not a JSON object, contains duplicate keys or has trailing data.

Send one valid JSON object with Content-Type application/json.

400invalid_parameter

A path, query or body field is missing, malformed or outside its accepted range.

Correct the field named in error.message before sending again.

404not_found

The requested card, key, alias, code or resource was not found.

Check the identifier. Temporary codes and previews may already have expired or been used.

410request_expired

The sign-in request was used or is older than 30 minutes.

Go back to the app and start again.

Shared request errors
HTTPCodeMeaning and next step
429rate_limited

An anonymous, signed-request or API-key allowance was exceeded.

Wait at least Retry-After seconds. Share a queue and retry budget across your workers.

500internal_error

An unexpected server error occurred. Internal details are not returned.

Retry reads with bounded backoff. Check write results before sending a new signed operation.

503busy

The application has reached a temporary concurrency or database limit.

Wait Retry-After seconds and retry with bounded backoff.