Why does Meta say my Custom Audience terms haven't been accepted, and how do I fix it?

TofuAnswer by the Tofu team · checked

Row of closed subway turnstiles with red no-entry lights in a dark station

Meta won't create or edit a customer list audience until its Customer List Custom Audiences Terms are accepted for the business behind the ad account. Acceptance counts per user, per business, and the person needs a role on the ad account; a system user relies on a person accepting. To fix it, open business.facebook.com/ads/manage/customaudiences/tos/?act= followed by your ad account ID, or start a customer list in Ads Manager and accept there. Then reconnect HubSpot or any other sync tool: its calls fail, with error 200 and subcode 1870034 or a similar code, until the terms are accepted.

As of October 2026.

What does the error mean?

Meta has no record that the terms were accepted for this business, by you or by the user your tool connects as. Meta's API refuses to create or edit a customer list (custom file) audience until the terms are signed, and it also blocks changes to an ad set's targeting or a saved audience that includes a custom audience. That's why the error can appear when you edit a campaign, not only when you upload a list. Meta renamed these terms the Customer List Custom Audiences Terms, effective December 3, 2025.

Where do I accept the Custom Audience terms?

Use either of the two routes in Meta's docs:

  1. Open https://business.facebook.com/ads/manage/customaudiences/tos/?act=<AD_ACCOUNT_ID>, with your ad account ID in place of <AD_ACCOUNT_ID>. Meta says the business ID field fills in by itself.
  2. Or, in Ads Manager, open Audiences, select Create audience, then Custom audience, Customer list and Next. At the Add list step, accept the custom audience terms, then select Next.

Check which ad account is selected before you accept. That decides which business the terms count for.

Who has to accept the terms?

Each person who works with customer list audiences, for each business. Meta's developer docs say the terms "have to be accepted per user per business," and that the user "needs to have a role in the ad account" to sign. Once you accept from one ad account, you can manage customer list audiences in every ad account that business owns. To create a customer list in Ads Manager you must also own the ad account or have admin or advertiser permissions on it, and it must be connected to a business portfolio.

System users, the non-human accounts that integrations can use for API access, depend on a person. Meta says that for a system user to work with customer list audiences in a business, a non-system user has to accept that business's terms from an ad account that belongs to it.

Which business am I accepting the terms for?

The one the ad account belongs to or acts for, which isn't always yours. This matters most for agencies, which often work in a client's ad account that's shared with them.

Ad account setupTerms you accept there count forTo accept for the other business
Owned by your businessYour businessNothing more to do
Owned by Business 1, acting on behalf of Business 2Business 2Switch to an ad account that isn't acting on behalf of another business
Owned by Business 1, shared with Business 2Business 1, the ownerAccept from an ad account that Business 2 owns

Why won't my HubSpot or CRM list sync to Meta?

Because the sync creates and updates a customer list audience through Meta's API, and Meta rejects those calls until the terms are accepted. HubSpot says its contact list audiences appear in Meta as Customer list audiences, so they need these terms. Any tool that pushes lists from HubSpot, Salesforce or another CRM hits the same wall when the person it connects as hasn't accepted for the business that owns the ad account, or when it runs on a system user and no person in that business has accepted.

After you accept, reconnect the tool if it doesn't recover on its own. Klaviyo, for example, tells users to accept the terms at Meta's link and, if its integration page shows Re-authenticate or audience creation still fails, to re-authenticate with a Meta account that has admin access to the ad account. Metadata.io, a B2B ad platform, says "Facebook has 3 different Terms and Services that need to be accepted in order to connect your Ad Account," and links each one for you to open with your ad account ID.

Getting Meta lead ad leads into your CRM is a separate connection with its own permissions; see how to send Meta lead ads to HubSpot or Salesforce.

I accepted the terms. Why do I still see the error?

Work through these:

  1. You accepted for the wrong business. If the ad account is shared or acts on behalf of another business, check the table above.
  2. Someone else accepted. Terms count per user, so the person your tool connects as must accept too.
  3. The tool still uses its old connection. Reconnect or re-authenticate it.
  4. The ad account is new to a business portfolio, or not in one. Meta says a new or recently linked account may take "a few weeks" before it can create or share a customer list audience.
  5. The audience uses website, app or offline data. Those fall under the Meta Business Tools Terms (error 1870092), and Meta's API guides for website and offline audiences also ask for the Custom Audience terms. See below.
  6. It's a different block. Meta flags custom audiences that suggest health conditions or financial status, and flagged audiences can't run ads. You fix that by changing the audience, not by accepting terms.

Which Meta error codes mean the terms aren't accepted?

Meta's Marketing API error reference lists three terms errors. Meta's custom audience guide gives 1870090 the "Custom Audience Terms Not Accepted" label that the error reference gives 1870034, so either code means the Custom Audience terms aren't accepted. The last three rows are related permission errors, from the guide (1870050) and the error reference, to rule out:

CodeMeta's descriptionWhat to do
200, subcode 1870034"Custom Audience Terms Not Accepted" before you can create or edit an audience or an ad setAccept the customer list terms
1870090"To create or edit audience or ad set, please agree to the Custom Audience terms." Meta's custom audience guide lists it under error 200 as "Custom Audience Terms Not Accepted," with a fix for shared and on-behalf-of ad accountsAccept from an ad account owned by the business that needs the terms
1870092"To create or edit audience or ad set, please agree to the Meta Business Tools terms"Accept the Meta Business Tools Terms
200, subcode 1870050Permissions errorCheck that the ad account is linked to your Meta Business Suite account
2654, subcode 1713092No write permission for this ad accountGive the user or app permissions on the ad account
100, subcode 33Unsupported post request, for example when a system user isn't on the ad accountAdd the system user to the ad account as an admin

Do website, app or offline audiences need different terms?

Partly. Meta's customer list terms page says website, mobile app and offline custom audiences are subject to the Meta Business Tools Terms (effective November 3, 2025), which also cover the Meta Pixel and Conversions API; error 1870092 asks for those. Meta's API guides for website and offline custom audiences also say the account must have accepted the Custom Audience terms in Ads Manager, so accept both if you use both. HubSpot's website visitor audiences, for example, appear in Meta as a "Website visitors audience."

How can I check whether the terms are accepted?

Ask the Marketing API. GET act_<AD_ACCOUNT_ID>?fields=tos_accepted returns "custom_audience_tos": 1 once the business that owns the ad account has signed; use an ad account that isn't shared or acting on behalf of another business, or you'll see the other business's status. GET act_<AD_ACCOUNT_ID>?fields=user_tos_accepted, sent with a person's access token, shows whether that person has signed. It doesn't work for system users.

What am I agreeing to?

Mainly that you have the right to use the data. You confirm you have the permissions and a lawful basis to use the list; that audience names and criteria won't be based on children under 13, identifiers such as social security or credit card numbers, or sensitive data such as health or financial information; and that you'll leave out, and later remove, people who opted out. Meta says contact details are hashed before upload, and that it deletes the list data after matching (subject to optional features you choose) and doesn't share it with third parties or other advertisers. An agency uploading for a client confirms it can bind the client to the terms.

Once you're through, see how to reach B2B buyers on Meta with customer lists and job titles, or, for lists that should only keep people out, exclusion-only audiences.

Sources (13)

Ask Tofu next

Pick a question and Tofu Ads Agent answers it in chat.

Related answers