Skip to content

Reject a Trust Center access request

POST
/trust-center/access-requests/{id}/reject
curl --request POST \
--url https://api.vendorica.com/v1/trust-center/access-requests/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/reject \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "reason": "example", "reference": "example" }'

Rejects a PENDING request. reason is required, exactly as it is in the app, and is an INTERNAL note: it is stored on the request for your organization’s reviewers and never sent to the visitor. Nothing is sent to the visitor at all — a rejected requester is answered exactly as a pending one is, so the decision cannot be probed from outside. reference (optional, up to 500 characters) is your own ticket key or URL, shown beside the decision in the app and recorded in the audit trail. The decision is attributed to this API key, never to a person. Strict body.

id
required
string format: uuid
Media typeapplication/json
object
reason
required
string
>= 1 characters <= 2000 characters
reference
string
>= 1 characters <= 500 characters
Examplegenerated
{
"reason": "example",
"reference": "example"
}

Success

Media typeapplication/json
object
success
required
boolean
data
required
object
id
required
string format: uuid
organizationId
required
string format: uuid
visitorEmail
required
string
visitorName
required
string | null
companyName
required
string | null
reason
required
string | null
rejectionReason
required
string | null
status
required
string
decidedByUserId
required
string | null format: uuid
decidedByApiClientId
required
string | null format: uuid
decidedAt
required
string | null format: date-time
decidedVia
required
string | null
Allowed values: app api access_rule
decisionReference
required
string | null
autoRuleId
required
string | null format: uuid
visitorTokenId
required
string | null format: uuid
requestCountryCode
required
string | null
requestCity
required
string | null
requestedResourceIds
required
Array<string>
createdAt
required
string format: date-time
key
additional properties
timestamp
required
string format: date-time
requestId
string
message
string
Example
{
"success": true,
"data": {
"id": "1eeb308b-353d-47ab-87aa-2d78dce59a34",
"organizationId": "6f090efa-c342-4068-8cc9-5871d5f6402f",
"visitorEmail": "string",
"visitorName": "string",
"companyName": "string",
"reason": "string",
"rejectionReason": "string",
"status": "string",
"decidedByUserId": "16d7f813-06fb-42c3-8dee-d44042f8270c",
"decidedByApiClientId": "1d22ad83-5e97-4213-87ea-9f307a589edc",
"decidedAt": "2026-08-19T09:41:12.004Z",
"decidedVia": "app",
"decisionReference": "string",
"autoRuleId": "bda60f9c-2a6a-45ba-8ec9-b23bd683992d",
"visitorTokenId": "15446676-eead-489c-89c9-524da0ec88eb",
"requestCountryCode": "string",
"requestCity": "string",
"requestedResourceIds": [
"6dd31592-734a-41b0-81fa-7cc97a5276b7"
],
"createdAt": "2026-08-19T09:41:12.004Z"
},
"timestamp": "2026-08-19T09:41:12.004Z",
"requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H",
"message": "string"
}

Validation error

Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{
"success": false,
"error": "Bad request",
"code": "BAD_REQUEST",
"timestamp": "2026-08-19T09:41:12.004Z",
"requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"
}

Unauthorized

Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{
"success": false,
"error": "Unauthorized",
"code": "UNAUTHORIZED",
"timestamp": "2026-08-19T09:41:12.004Z",
"requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"
}

Forbidden — missing scope

Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{
"success": false,
"error": "Forbidden",
"code": "FORBIDDEN",
"timestamp": "2026-08-19T09:41:12.004Z",
"requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"
}

Not found

Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{
"success": false,
"error": "Resource not found",
"code": "NOT_FOUND",
"timestamp": "2026-08-19T09:41:12.004Z",
"requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"
}

The request is no longer pending — a person, a rule or an earlier call decided it first (ACCESS_REQUEST_ALREADY_DECIDED). Nothing was changed and no credential was minted. GET the request to see what it now says; this is the answer a RETRY of a decision that already landed receives.

Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{
"success": false
}

Unrecognised or invalid field — the response names it

Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{
"success": false,
"error": "Validation failed",
"code": "VALIDATION_ERROR",
"timestamp": "2026-08-19T09:41:12.004Z",
"requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"
}

Rate limit exceeded

Media typeapplication/json
object
success
required
boolean
error
required
string
code
required
string
details
timestamp
required
string format: date-time
requestId
string
Example
{
"success": false,
"error": "Too many requests",
"code": "TOO_MANY_REQUESTS",
"timestamp": "2026-08-19T09:41:12.004Z",
"requestId": "req_01J5X8ZC3K4T7Q9M2W6B0N1V4H"
}