---
title: "Accept, decline, cancel or end a manager link"
method: PATCH
path: "/v1/ads/accounts/manager-links"
tags: ["Ad Accounts"]
---

# Accept, decline, cancel or end a manager link

`PATCH /v1/ads/accounts/manager-links`

Changes one manager-client link, identified by `managerCustomerId`, `clientCustomerId` and `managerLinkId` (all from GET /v1/ads/accounts/hierarchy). `accept` and `decline` answer a pending invitation as the client (CustomerManagerLinkService), so the connection's Google user needs direct access to the client account; access through a manager is not enough, because the link does not exist yet. `cancel` withdraws a pending invitation and `unlink` ends an active link, both as the manager (CustomerClientLinkService). Send `validateOnly: true` to have Google check the change without applying it.

## Request body

- object
  - `accountId` string, required — Google ads SocialAccount id.
  - `managerCustomerId` string, required — Manager customer id, digits only.
  - `clientCustomerId` string, required — Client customer id, digits only.
  - `managerLinkId` string, required — Numeric link id from GET /v1/ads/accounts/hierarchy.
  - `action` 'accept' | 'decline' | 'cancel' | 'unlink', required
  - `validateOnly` boolean

## Response `200`

Link updated, or validated only when validateOnly is true

- GoogleAdsManagerLink
  - `managerCustomerId` string
  - `clientCustomerId` string
  - `managerLinkId` string, nullable — Null on a validateOnly invitation, where Google creates nothing.
  - `status` 'PENDING' | 'ACTIVE' | 'REFUSED' | 'CANCELED' | 'INACTIVE' — Status the link has after this call.
  - `validateOnly` boolean

## Other responses

- `400` — Invalid request
- `401` — Unauthorized
- `404` — The account or requested resource was not found or is not accessible. An account ID may have been disconnected and removed. Read GET /v1/accounts for current account IDs.
- `409` — The account exists but is inactive or needs reconnection. Reconnect it, then read GET /v1/accounts for its current account ID before retrying. Code: ads_connection_required.
- `429` — Google Ads operations budget or quota exhausted; retry later.
- `501` — Only available on Google Ads accounts

## Changes

- **2026-09-28** `1c23a639830f` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/ads/accounts/manager-links/patch.md)

---

[API](https://skmtc.dev/zernio/apis/zernio-api.md) · [All operations](https://skmtc.dev/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc.dev/zernio/apis/zernio-api/revisions/1c23a639830f?raw)
