Apply a confirmed buyer-agent configuration control
curl --request POST \
--url https://api.interchange.io/api/v2/buyer-agent-principals/{principalId}/controls \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"kind": "deactivate_destination",
"storefrontId": 4503599627370495,
"destinationId": "<string>",
"generation": 4503599627370495,
"expectedConfigurationVersion": "<string>",
"confirmationText": "<string>"
}
'import requests
url = "https://api.interchange.io/api/v2/buyer-agent-principals/{principalId}/controls"
payload = {
"kind": "deactivate_destination",
"storefrontId": 4503599627370495,
"destinationId": "<string>",
"generation": 4503599627370495,
"expectedConfigurationVersion": "<string>",
"confirmationText": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
kind: 'deactivate_destination',
storefrontId: 4503599627370495,
destinationId: '<string>',
generation: 4503599627370495,
expectedConfigurationVersion: '<string>',
confirmationText: '<string>'
})
};
fetch('https://api.interchange.io/api/v2/buyer-agent-principals/{principalId}/controls', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": {
"kind": "deactivate_destination",
"applied": true,
"principalId": "<string>",
"storefrontId": 4503599627370495,
"configurationVersion": "<string>"
},
"error": null
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}Buyer Agent Principals
Apply a confirmed buyer-agent configuration control
Create or replace one caller-level webhook subscription, pause, reactivate, or remove it; deactivate one exact reporting-destination generation; suspend a principal; or permanently retire it. Every action requires the administrator to type the stored buyer-agent display name, uses an optimistic state fence, commits with an exact-human audit record, and fails closed for impersonated, simulated, delegated, cross-organization, or cross-principal sessions. Webhook URLs are SSRF-validated and credentials are neither accepted nor returned. No action grants advertiser, account, spend, payment, or Terms authority.
POST
/
buyer-agent-principals
/
{principalId}
/
controls
Apply a confirmed buyer-agent configuration control
curl --request POST \
--url https://api.interchange.io/api/v2/buyer-agent-principals/{principalId}/controls \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"kind": "deactivate_destination",
"storefrontId": 4503599627370495,
"destinationId": "<string>",
"generation": 4503599627370495,
"expectedConfigurationVersion": "<string>",
"confirmationText": "<string>"
}
'import requests
url = "https://api.interchange.io/api/v2/buyer-agent-principals/{principalId}/controls"
payload = {
"kind": "deactivate_destination",
"storefrontId": 4503599627370495,
"destinationId": "<string>",
"generation": 4503599627370495,
"expectedConfigurationVersion": "<string>",
"confirmationText": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
kind: 'deactivate_destination',
storefrontId: 4503599627370495,
destinationId: '<string>',
generation: 4503599627370495,
expectedConfigurationVersion: '<string>',
confirmationText: '<string>'
})
};
fetch('https://api.interchange.io/api/v2/buyer-agent-principals/{principalId}/controls', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": {
"kind": "deactivate_destination",
"applied": true,
"principalId": "<string>",
"storefrontId": 4503599627370495,
"configurationVersion": "<string>"
},
"error": null
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}{
"data": null,
"error": {
"code": "<string>",
"message": "<string>",
"field": "<string>",
"details": {}
}
}Authorizations
API key or access token
Path Parameters
Pattern:
^prin_[A-Za-z0-9_-]{32}$Body
application/json
- Option 1
- Option 2
- Option 3
- Option 4
- Option 5
- Option 6
- Option 7
- Option 8
Available options:
deactivate_destination Required range:
0 < x <= 9007199254740991Pattern:
^[A-Za-z0-9_.:-]{1,64}$Required range:
0 < x <= 9007199254740991Required string length:
1 - 255Exact buyer-agent display name typed by the administrator.
Required string length:
1 - 255