Update ad account settings
Sets the default DSA beneficiary and payor on a Meta ad account (EU DSA, Article 26).
Set them once and every EU-targeted call to /v1/ads/create, /v1/ads/boost and
/v1/ads/ctwa on that ad account can omit dsaBeneficiary/dsaPayor: Meta applies
the defaults automatically.
The values are written to the ad account on Meta, the same setting Ads Manager edits.
Nothing is stored in Zernio, and defaults already set in Ads Manager work identically.
Zernio never guesses these values for you. Beneficiary and payor are legal disclosures
shown to EU users, so you must provide the entity names explicitly. Use
GET /v1/ads/dsa-recommendations to offer suggestions in your UI.
If defaultDsaPayor is omitted, the beneficiary is also set as the payor, which
covers the common case where the same entity benefits from and pays for the ads.
Read the current values back with GET /v1/ads/dsa-defaults.
Currently supported for Meta accounts only; other platforms return 400.
API key authentication - use your Zernio API key as a Bearer token
In: header
Social account ID (metaads, or a facebook/instagram posting account)
Meta ad account ID (act_...)
Legal entity benefiting from ads on this ad account
length <= 100Legal entity paying for ads on this ad account. Defaults to defaultDsaBeneficiary when omitted.
length <= 100Response Body
application/json
application/json
import Zernio from '@zernio/node';const zernio = new Zernio({ apiKey: process.env.ZERNIO_API_KEY });const { data } = await zernio.ads.updateAdAccount({ body: { accountId: 'account_abc123', adAccountId: 'adaccount_abc123', defaultDsaBeneficiary: 'string', },});console.log(data);{
"adAccountId": "string",
"dsaDefaults": {
"beneficiary": "string",
"payor": "string"
}
}{
"error": "Unauthorized"
}List DSA beneficiary/payor suggestions GET
Returns Meta's suggested beneficiary/payor names for an ad account, derived by Meta from the account's recent activity. Useful for prefilling `dsaBeneficiary`/`dsaPayor` inputs, or the defaults sent to `PATCH /v1/ads/accounts`, in your own UI. Meta returns a single flat list. Entries are not labeled as beneficiary or payor, and since these are legal disclosures Zernio never applies them automatically: let your user pick the right entity. The list may be empty for accounts with little activity. Meta accounts only.
Pause or resume a single ad PUT
Ad-scoped pause/resume — touches ONLY this ad, never its parent ad set or campaign (so sibling ads keep running). Thin wrapper over the `status` field of PUT /v1/ads/{adId}, for callers that want a URL symmetric to /v1/ads/campaigns/{campaignId}/status and /v1/ads/ad-sets/{adSetId}/status. `{adId}` accepts the same identifier dialects as GET/PUT /v1/ads/{adId} (Zernio hex `_id`, Meta numeric `platformAdId`, or the creative's effective story/media IDs). `platform` is inferred from the ad, so it's not required in the body. Ads in terminal statuses (rejected, completed, cancelled) and no-op flips (already in the target state) are skipped.