curl --request POST \
--url https://api.trycomp.ai/v1/vendors/{id}/acceptances \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"acceptedById": "mem_abc123def456",
"notes": "Residual risk reviewed at the Q2 risk review."
}
'const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
acceptedById: 'mem_abc123def456',
notes: 'Residual risk reviewed at the Q2 risk review.'
})
};
fetch('https://api.trycomp.ai/v1/vendors/{id}/acceptances', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.trycomp.ai/v1/vendors/{id}/acceptances"
payload = {
"acceptedById": "mem_abc123def456",
"notes": "Residual risk reviewed at the Q2 risk review."
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "rska_abc123def456",
"acceptedById": "mem_abc123def456",
"acceptedByName": "Jane Doe",
"notes": "Residual risk reviewed at the Q2 risk review.",
"residualLikelihood": "unlikely",
"residualImpact": "minor",
"level": "low",
"levelLabel": "Low",
"stale": false,
"createdAt": "2023-11-07T05:31:56Z",
"authType": "api-key",
"authenticatedUser": {
"id": "usr_def456ghi789",
"email": "user@example.com"
}
}{
"message": "No owner is assigned. Assign an owner or choose an acceptor."
}{
"message": "Invalid or expired API key"
}{
"message": "Forbidden"
}{
"message": "Vendor with ID vnd_abc123def456 not found in organization org_abc123def456"
}{
"message": "Internal server error"
}Record vendor risk-owner acceptance | Comp AI API
Records an immutable, timestamped acceptance of a vendor’s current residual risk by the vendor owner (or a chosen member). Re-record after the residual.
curl --request POST \
--url https://api.trycomp.ai/v1/vendors/{id}/acceptances \
--header 'Content-Type: application/json' \
--header 'X-API-Key: <api-key>' \
--data '
{
"acceptedById": "mem_abc123def456",
"notes": "Residual risk reviewed at the Q2 risk review."
}
'const options = {
method: 'POST',
headers: {'X-API-Key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
acceptedById: 'mem_abc123def456',
notes: 'Residual risk reviewed at the Q2 risk review.'
})
};
fetch('https://api.trycomp.ai/v1/vendors/{id}/acceptances', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.trycomp.ai/v1/vendors/{id}/acceptances"
payload = {
"acceptedById": "mem_abc123def456",
"notes": "Residual risk reviewed at the Q2 risk review."
}
headers = {
"X-API-Key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"id": "rska_abc123def456",
"acceptedById": "mem_abc123def456",
"acceptedByName": "Jane Doe",
"notes": "Residual risk reviewed at the Q2 risk review.",
"residualLikelihood": "unlikely",
"residualImpact": "minor",
"level": "low",
"levelLabel": "Low",
"stale": false,
"createdAt": "2023-11-07T05:31:56Z",
"authType": "api-key",
"authenticatedUser": {
"id": "usr_def456ghi789",
"email": "user@example.com"
}
}{
"message": "No owner is assigned. Assign an owner or choose an acceptor."
}{
"message": "Invalid or expired API key"
}{
"message": "Forbidden"
}{
"message": "Vendor with ID vnd_abc123def456 not found in organization org_abc123def456"
}{
"message": "Internal server error"
}Authorizations
API key for authentication
Path Parameters
Vendor ID
"vnd_abc123def456"
Body
Acceptance data (acceptor defaults to the vendor owner)
Response
Acceptance recorded successfully
Acceptance event ID
"rska_abc123def456"
Member ID of the acceptor (null if since removed)
"mem_abc123def456"
Acceptor display name, frozen at acceptance
"Jane Doe"
"Residual risk reviewed at the Q2 risk review."
Residual likelihood frozen at acceptance
very_unlikely, unlikely, possible, likely, very_likely "unlikely"
Residual impact frozen at acceptance
insignificant, minor, moderate, major, severe "minor"
Risk level of the accepted residual rating
very-low, low, medium, high, very-high "low"
Human-readable level label
"Low"
True when the residual rating changed after this acceptance was recorded — re-acceptance is required
false
When the acceptance was recorded (server-set, immutable)
How the request was authenticated
api-key, session, service User information (only for session auth)
Show child attributes
Show child attributes
Was this page helpful?

