---
title: "Update Account Preferences"
method: PATCH
path: "/accounts/{account_id}/preferences"
tags: ["Accounts"]
---

# Update Account Preferences

`PATCH /accounts/{account_id}/preferences`

Updates the account's preferences. Each top-level key present in the body is replaced as a whole; omitted keys are left untouched. `ads_triple_whale_integration` takes the Data-In API key to connect with, or `null` to disconnect. `ads_payment_methods` always requires a `primary` entry. `backup` is optional and any pairing is allowed — two cards, `card`+`platform_balance`, or a single method — so a card-only advertiser can fund ads without a platform balance. The `primary` and `backup` must be different sources. A `platform_balance` entry may omit `id` to use the account's default Whop balance. Configuring a `card` requires a user token; account API keys can set up platform-balance billing only.

## Request body

- object
  - `ads_payment_methods` object — How the account pays for Whop Ads spend. `primary` is charged first; `backup` covers the charge when the primary fails.
    - `backup` object — Optional second method charged if the primary fails. Any pairing is allowed (two cards, card+balance, balance+card); omit it to run on a single method. Must differ from the primary.
      - `id` string — The funding source ID: a Whop balance (`ldgr_`) for `platform_balance`, or a payment method (`payt_`) for `card`. Optional for `platform_balance` — defaults to the account's default Whop balance. Required for `card`.
      - `type` 'platform_balance' | 'card', required — The funding source kind.
    - `primary` object, required
      - `id` string — The funding source ID: a Whop balance (`ldgr_`) for `platform_balance`, or a payment method (`payt_`) for `card`. Optional for `platform_balance` — defaults to the account's default Whop balance. Required for `card`.
      - `type` 'platform_balance' | 'card', required — The funding source kind.
  - `ads_reporting_currency` string — Lowercase ISO currency code, such as `usd` or `eur`, used to display ad spend and stats. Defaults to `usd`.
  - `ads_scheduling_timezone` string — IANA timezone (e.g. `America/New_York`) used to interpret campaign start/end times and to bucket reports. Cannot be cleared once set — pass a new value to change it.
  - `ads_triple_whale_integration` object — Connects or disconnects the Triple Whale integration. Requires a connected Shopify store, since Triple Whale keys spend records by Shopify shop.
    - `api_key` string, nullable, required — A Triple Whale Data-In API key with the `Data-In Write: Ads` scope, validated against Triple Whale before it is stored. Pass `null` to disconnect. Connecting for the first time backfills the account's existing ad spend.
  - `cards_auto_top_up` boolean — Whether incoming funds are automatically moved to the account's cards balance. Requires a cards balance on the account.

## Response `200`

preferences updated

- object
  - `ads_agreement` object, required — The account's Whop Ads services and payment authorization agreement. While `pending_signature`, campaign launch is blocked; sign by answering `requested_information` via `PATCH /verifications/{account_id}`.
    - `accepted_at` string, nullable, required — When the agreement was signed, as an ISO 8601 timestamp. `null` until signed.
    - `agreement_version` string, nullable, required — The agreement version signed or awaiting signature, as an ISO date. `null` when no signature is required.
    - `printed_name` string, nullable, required — The signer's printed full name. `null` until signed.
    - `status` 'not_required' | 'pending_signature' | 'signed', required — Where the account's ads services agreement stands.
  - `ads_payment_methods` object, nullable, required — How the account pays for Whop Ads spend. `primary` is charged first; `backup` covers the charge when the primary fails. `null` until ads billing has been configured.
    - `backup` object, nullable, required
      - `card_brand` string, nullable — Card brand, present for `card` entries.
      - `exp_month` integer, nullable — Expiration month, present for `card` entries.
      - `exp_year` integer, nullable — Expiration year, present for `card` entries.
      - `icon_url` string, nullable — Balance owner icon URL, present for `platform_balance` entries.
      - `id` string, required — The funding source ID: a Whop balance (`ldgr_`) for `platform_balance`, or a payment method (`payt_`) for `card`.
      - `last4` string, nullable — Last four digits, present for `card` entries.
      - `title` string, nullable — Balance name, present for account `platform_balance` entries (null for a personal balance).
      - `type` 'platform_balance' | 'card', required — The funding source kind: a Whop balance or a saved card.
    - `primary` object, nullable, required
      - `card_brand` string, nullable — Card brand, present for `card` entries.
      - `exp_month` integer, nullable — Expiration month, present for `card` entries.
      - `exp_year` integer, nullable — Expiration year, present for `card` entries.
      - `icon_url` string, nullable — Balance owner icon URL, present for `platform_balance` entries.
      - `id` string, required — The funding source ID: a Whop balance (`ldgr_`) for `platform_balance`, or a payment method (`payt_`) for `card`.
      - `last4` string, nullable — Last four digits, present for `card` entries.
      - `title` string, nullable — Balance name, present for account `platform_balance` entries (null for a personal balance).
      - `type` 'platform_balance' | 'card', required — The funding source kind: a Whop balance or a saved card.
  - `ads_reporting_currency` string, required — Lowercase ISO currency code, such as `usd` or `eur`, used to display ad spend and stats. Defaults to `usd`.
  - `ads_scheduling_timezone` string, required — IANA timezone (e.g. `America/New_York`) used to interpret campaign start/end times and to bucket reports. Defaults to `America/New_York` until explicitly overridden.
  - `ads_triple_whale_integration` object, required — The account's Triple Whale integration, which pushes Whop ad spend to Triple Whale's Data-In API so it reports as a `whop` channel.
    - `masked_api_key` string, nullable, required — The leading characters of the stored Data-In API key, followed by asterisks. The full key is never returned. `null` when no key is stored.
    - `shop_domain` string, nullable, required — The connected Shopify store domain spend is reported for, such as `acme.myshopify.com`. `null` when no store is connected.
    - `status` 'connected' | 'not_connected' | 'requires_shopify_store', required — Where the integration stands. `requires_shopify_store` means no Shopify store is connected — Triple Whale keys records by Shopify shop, so no spend is reported until one is.
  - `cards_auto_top_up` boolean, required — Whether incoming funds are automatically moved to the account's cards balance. `false` when the account has no cards balance.

## Other responses

- `400` — Invalid Parameters
- `401` — Unauthorized
- `403` — Forbidden
- `404` — Resource not found

---

[API](https://skmtc.net/whop/apis/whop-api.md) · [All operations](https://skmtc.net/whop/apis/whop-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/whop/whop-api/versions/db0883548bc5/schema)
