Accounts

Update Account Preferences

Updates the account's preferences. Each top-level key present in the body is replaced as a whole; omitted keys are left untouched.

Required scopes depend on the preferences being updated:

PreferencesRequired scope
ads_payment_methods, ads_reporting_currency, ads_scheduling_timezone, ads_triple_whale_integration, ads_certificationsad_campaign:create
cards_auto_top_up, cards_notificationspayout:account:update
dispute_fighter_enabledpayment:dispute
economic_intelligence_duration_keycompany:update

When updating preferences from multiple rows, all corresponding scopes are required for the account.

patch/accounts/{account_id}/preferences

Headers

Api-Version-Datestring
Example:2026-09-25

Pins the request to a dated API version.

Request body

ads_certificationsobject

Opens an advertising certification application. Keyed by certification type (prescription_drug_ads); set the entry's status to pending_information to start, then answer the requested fields via PATCH /verifications/{id}. Only one application per type can be open at a time; every other status is set by Whop's review. Requires the ad_campaign:create scope on your API key.

ads_reporting_currencystring

Lowercase ISO currency code, such as usd or eur, used to display ad spend and stats. Defaults to usd. Requires the ad_campaign:create scope on your API key.

ads_scheduling_timezonestring

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. Requires the ad_campaign:create scope on your API key.

cards_auto_top_upboolean

Whether incoming funds are automatically moved to the account's cards balance. Requires a cards balance on the account and the payout:account:update scope on your API key.

cards_notificationsboolean

Whether Whop Card notifications reach this account's team. Set it to false to stop every card email and push notification for the account — application status, verification and action-required alerts, card-ready alerts, declines, large charges, and cashback summaries. Cardholder onboarding invitations still send, because they carry the only link an invited cardholder can onboard with. Requesting a card is rejected while notifications are off, since the request reaches nobody. Cards on personal accounts are unaffected. Requires a cards balance on the account and the payout:account:update scope on your API key.

dispute_fighter_enabledboolean

Whether Whop assembles and files the evidence response when this account's payments are disputed. Off by default; enabling it also opts the account into the success fee charged only on disputes it wins. Requires the payment:dispute scope on your API key.

economic_intelligence_duration_key'7_days' | '1_day' | '1_hour'

Turns on Economic Intelligence for the duration with this key in economic_intelligence_offers, at that duration's fee. It can't be changed or turned off until economic_intelligence_ends_at, and it can only be turned on once the account is off the Economic Intelligence waitlist. Requires the company:update scope on your API key.

subscription_failure_behavior'cancel' | 'none'

What happens to a subscription once every retry of a renewal payment has failed. cancel (the default) cancels it. none leaves it past due and keeps billing it each period; access follows the account's past-due access setting. Requires company:manage_checkout permission.

Example request

{
  "ads_certifications": {
    "prescription_drug_ads": {
      "status": "pending_information"
    }
  },
  "ads_payment_methods": {
    "backup": {
      "id": "payt_xxxxxxxxxxxxxx",
      "type": "card"
    },
    "primary": {
      "id": "payt_xxxxxxxxxxxxxx",
      "type": "platform_balance"
    }
  },
  "ads_reporting_currency": "eur",
  "ads_scheduling_timezone": "PST8PDT",
  "ads_triple_whale_integration": {
    "api_key": "tw_live_key_1234",
    "shop_domain": "custom-store.example.com"
  },
  "cards_auto_top_up": true,
  "cards_notifications": true,
  "dispute_fighter_enabled": true,
  "economic_intelligence_duration_key": "7_days",
  "subscription_failure_behavior": "none"
}

Response

preferences updated

ads_reporting_currencystring required

Lowercase ISO currency code, such as usd or eur, used to display ad spend and stats. Defaults to usd.

ads_scheduling_timezonestring 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.

cards_auto_top_upboolean required

Whether incoming funds are automatically moved to the account's cards balance. false when the account has no cards balance.

cards_notificationsboolean required

Whether Whop Card notifications reach this account's team. true by default, including when the account has no cards balance. Set it to false to stop every card email and push notification for the account — application status, verification and action-required alerts, card-ready alerts, declines, large charges, and cashback summaries. Cardholder onboarding invitations still send, because they carry the only link an invited cardholder can onboard with. Requesting a card is rejected while notifications are off, since the request reaches nobody. Cards on personal accounts are unaffected.

dispute_fighter_enabledboolean required

Whether Whop assembles and files the evidence response when this account's payments are disputed. Off by default; enabling it also opts the account into the success fee charged only on disputes it wins.

economic_intelligenceboolean required

Whether Economic Intelligence is on for the account. It turns off automatically at economic_intelligence_ends_at.

economic_intelligence_ends_atstring nullable required

When the account's committed Economic Intelligence period ends, as an ISO 8601 timestamp. Economic Intelligence can't be turned off before then. null when Economic Intelligence is off or has no end date.

economic_intelligence_fee_percentagenumber nullable required

Percentage of volume charged while Economic Intelligence is on, such as 1.5 for 1.5%. null when Economic Intelligence is off.

subscription_failure_behavior'cancel' | 'none' required

What happens to a subscription once every retry of a renewal payment has failed. cancel (the default) cancels it. none leaves it past due and keeps billing it each period; access follows the account's past-due access setting.

Example response

{
  "ads_agreement": {
    "accepted_at": "2026-01-01T12:00:00.000Z",
    "agreement_version": "2026-01-01",
    "printed_name": "Marcus Webb",
    "status": "not_required"
  },
  "ads_certifications": [
    {
      "business_type": "online_pharmacy",
      "certification_type": "prescription_drug_ads",
      "request_id": "inrq_xxxxxxxxxxxxxx",
      "status": "not_started"
    }
  ],
  "ads_payment_methods": {
    "backup": {
      "card_brand": "visa",
      "exp_month": 10,
      "exp_year": 2031,
      "icon_url": "https://whop-assets-example.s3.amazonaws.com/uploads/image/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "id": "ldgr_xxxxxxxxxxxxxx",
      "last4": "4242",
      "title": "Shine Time Auto Detailing",
      "type": "platform_balance"
    },
    "primary": {
      "card_brand": "visa",
      "exp_month": 10,
      "exp_year": 2031,
      "icon_url": "https://whop-assets-example.s3.amazonaws.com/uploads/image/2026-01-01/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "id": "ldgr_xxxxxxxxxxxxxx",
      "last4": "4242",
      "title": "Shine Time Auto Detailing",
      "type": "platform_balance"
    }
  },
  "ads_reporting_currency": "usd",
  "ads_scheduling_timezone": "America/New_York",
  "ads_triple_whale_integration": {
    "masked_api_key": "tw_live_********",
    "shop_domain": "shinetime.myshopify.com",
    "status": "requires_shop_domain"
  },
  "cards_notifications": true,
  "economic_intelligence_ends_at": "2026-01-01T12:00:00.000Z",
  "economic_intelligence_fee_percentage": 1.5,
  "economic_intelligence_offers": [
    {
      "duration": 7,
      "duration_unit": "days",
      "fee_percentage": 1,
      "key": "7_days"
    }
  ],
  "subscription_failure_behavior": "cancel"
}

Changes