Skip to content

A supplier's exception to the control settings

GET
/suppliers/{supplierId}/control-overrides
curl --request GET \
--url https://api.invogi.com/v1/suppliers/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/control-overrides \
--header 'Authorization: Bearer <token>'

The supplier’s exception, active or expired (null when it has none), and the rules that bound it. Readable by any member. A supplier that has been merged into another has none: ask for the one it was merged into.

supplierId
required
string format: uuid

The exception and its rules

Media typeapplication/json
object
exception
required
object
overrides
object
reason
string
expiresAt
string format: date-time
active

In effect: unexpired and still valid. A stored exception that no longer validates is ignored by analysis.

boolean
valid
boolean
grantedByOwner

An owner granted it, so it applies as written. Otherwise it is held to what is not looser than the workspace settings now.

boolean
updatedAt
string format: date-time
setBy

The person who last changed it

string | null
rules
required
object
relaxableActions
Array<string>
protectedFromRelaxing
Array<string>
blocksByDefault

Protected findings whose built-in action is BLOCK; even REVIEW is a downgrade for these.

Array<string>
maxDays
integer
defaultDays
integer

Example

{
"exception": {
"overrides": {
"actions": {
"FUZZY_DUPLICATE": "INFORM"
},
"duplicates": {
"dateDistanceDaysMax": 3
}
},
"reason": "Fixed monthly retainer, always the same amount.",
"expiresAt": "2026-12-31T00:00:00.000Z",
"active": true,
"valid": true,
"grantedByOwner": true,
"updatedAt": "2026-10-01T09:30:00.000Z",
"setBy": "Sam Owner"
},
"rules": {
"relaxableActions": [
"INFORM",
"REVIEW",
"BLOCK"
],
"protectedFromRelaxing": [
"EXACT_DUPLICATE",
"BANK_ACCOUNT_CHANGED",
"BANK_DETAILS_INVALID",
"SUPPLIER_NOT_ACTIVE",
"SUPPLIER_IDENTITY_MISMATCH"
],
"blocksByDefault": [
"EXACT_DUPLICATE"
],
"maxDays": 365,
"defaultDays": 90
}
}

Missing or invalid API key

Media typeapplication/json
object
error
required
object
code
required
string
Allowed values: NOT_FOUND UNAUTHORIZED FORBIDDEN INVALID_REQUEST CONFLICT RATE_LIMITED USAGE_LIMIT_EXCEEDED PROCESSING_FAILED
message
required
string
request_id
required
string

Example

{
"error": {
"code": "NOT_FOUND"
}
}

Resource not found

Media typeapplication/json
object
error
required
object
code
required
string
Allowed values: NOT_FOUND UNAUTHORIZED FORBIDDEN INVALID_REQUEST CONFLICT RATE_LIMITED USAGE_LIMIT_EXCEEDED PROCESSING_FAILED
message
required
string
request_id
required
string

Example

{
"error": {
"code": "NOT_FOUND"
}
}