---
title: "Withdraw an invitation awaiting multi-party approval"
method: DELETE
path: "/v1/ads/accounts/user-invitations/pending-approvals"
tags: ["Ad Accounts"]
---

# Withdraw an invitation awaiting multi-party approval

`DELETE /v1/ads/accounts/user-invitations/pending-approvals`

## Request

- Base URL: `https://zernio.com/api`
- URL: `https://zernio.com/api/v1/ads/accounts/user-invitations/pending-approvals`
- Auth: HTTP bearer

Cancels an email invitation that Google is still holding for a second admin's approval, so the same address can be invited again right away.

Resolves the review `multiPartyAuthReviewId` (from POST /v1/ads/accounts/user-invitations or GET on this path) to `REVOKED` through Google's MultiPartyAuthReviewService. Only the Google user who sent the invitation can withdraw it, and only while no admin has approved or rejected it; otherwise Google refuses and this returns a 400. Without a withdrawal, Google refuses a new invitation to the address until the review is resolved or expires.

## Query parameters

- `accountId` string, required
- `adAccountId` string, required
- `multiPartyAuthReviewId` string, required

## Response `200`

Approval request withdrawn

- object
  - `customerId` string
  - `multiPartyAuthReviewId` string
  - `status` 'REVOKED'

## Other responses

- `400`: Invalid request
- `401`: Missing or invalid API key. `code` is `missing_credentials` when no Authorization header was sent and `invalid_credentials` when the key is unknown, revoked or expired.
- `403`: The connection has selected ad accounts (its ad-account scope, set with the dashboard picker or GET /v1/connect/{platform}/ads with adAccountIds) and the ad account this request targets is not among them, so the connection may not act on it even though its token can reach it. Code `ad_account_not_selected`. `details` carries `accountId` (the connection), `adAccountId` (the refused ad account) and `selectedAdAccountIds`. Add the ad account to the selection (adAccountIds replaces the whole selection, so pass the ids already selected plus this one) or use a connection that has it selected. Connections without a selection keep reaching every ad account their token can manage.
- `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-10-21** `98e9f11e6b3a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/zernio/apis/zernio-api/changes/v1/ads/accounts/user-invitations/pending-approvals/delete.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/4e74db179e73?raw)
