Skip to main content
POST
/
inventory-sources
/
{sourceId}
/
deactivate
Deactivate the ad-server source
curl --request POST \
  --url https://api.interchange.io/api/v2/storefront/inventory-sources/{sourceId}/deactivate \
  --header 'Authorization: Bearer <token>'
{
  "id": "<string>",
  "customerId": 0,
  "tenantId": "<string>",
  "mcpUrl": "<string>",
  "a2aUrl": "<string>",
  "adServer": {
    "networkCode": "12345678"
  },
  "serviceAccountEmail": "jsmith@example.com",
  "lastError": "<string>",
  "lastErrorCode": "<string>",
  "lastTestedAt": "2023-11-07T05:31:56Z",
  "provisionedAt": "2023-11-07T05:31:56Z",
  "deactivatedAt": "2023-11-07T05:31:56Z",
  "createdAt": "2023-11-07T05:31:56Z",
  "updatedAt": "2023-11-07T05:31:56Z",
  "inventorySync": {
    "lastRunAt": "2023-11-07T05:31:56Z",
    "completedAt": "2023-11-07T05:31:56Z",
    "itemCount": 0,
    "error": "<string>",
    "updatedAt": "2023-11-07T05:31:56Z"
  }
}

Documentation Index

Fetch the complete documentation index at: https://docs.interchange.io/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

API key or access token

Path Parameters

sourceId
string
required

Inventory source ID

Minimum string length: 1

Response

Deactivate the ad-server source

Storefront → managed ad-server source connection. A storefront can have multiple connections, each addressed by id.

id
string
required

Stable id for this managed ad-server source. Use this id to address per-source actions (provision, deactivate, save ad-server config, etc.). A customer can have multiple managed sources.

customerId
integer
required

Owning customer/storefront id.

Required range: -9007199254740991 <= x <= 9007199254740991
provisioningStatus
enum<string>
required

Lifecycle of the managed ad-server source. pending: publisher saved an ad-server config but provisioning has not been attempted. provisioning: upstream call in flight. active: source is live. failed: last provisioning attempt failed. deactivated: soft-deleted.

Available options:
pending,
provisioning,
active,
failed,
deactivated
tenantId
string | null
required

Upstream managed-source id for the managed ad-server source. Null until provisioning succeeds.

mcpUrl
string | null
required

MCP endpoint exposed by the provisioned managed ad-server source. May be a relative path (e.g. /mcp/) — the consumer composes the absolute URL using the upstream base URL.

a2aUrl
string | null
required

A2A endpoint exposed by the provisioned managed ad-server source. May be a relative path (e.g. /a2a) — see mcpUrl for resolution.

adServer
object
required

Publisher-supplied ad-server config. Null if not yet collected.

serviceAccountEmail
string<email> | null
required

Per-customer service-account email the publisher must grant access to in their ad server. Created when ad-server config is saved. Surfaced so the UI can show it during onboarding.

Pattern: ^(?!\.)(?!.*\.\.)([A-Za-z0-9_'+\-\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\-]*\.)+[A-Za-z]{2,}$
lastError
string | null
required

Failure reason from the most recent provisioning or test-connection attempt.

lastErrorCode
string | null
required

Machine-readable classification of the most recent provisioning failure. ADAPTER_NETWORK_NOT_FOUND (typo), ADAPTER_PERMISSION_DENIED (GAM grant still propagating), ADAPTER_INVALID_CREDENTIALS (storefront service account broken), ADAPTER_INVALID_CONFIG (bad field-level config), and ADAPTER_CONNECTION_FAILED (transient blip) are the adapter probe failures. INTERNAL_ERROR indicates an upstream or platform problem. Null when there has been no failure or after a successful provision.

lastTestedAt
string<date-time> | null
required
Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
provisionedAt
string<date-time> | null
required
Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
deactivatedAt
string<date-time> | null
required
Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
createdAt
string<date-time>
required
Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
updatedAt
string<date-time>
required
Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$
inventorySync
object
required

Cached inventory-sync state. Null when no signal has landed yet (no webhook delivered and no /status poll has run).