v2.accounts

Update a connected account: business_profile and/or store.currency (platform key)

Platform keys only. Updates a connected account — Stripe style, POST updates. The body carries business_profile (mcc, product_description, url, monthly_estimated_revenue; at least one of them), written on the seller's Stripe account — the one the API onboarding created, or the one the seller opened after the invite — and/or store.currency (since 2026-09-10): the store currency, changed at the source and in Cooud's store records only while the store has no checkout session, order or subscription (409 store_currency_locked afterwards; the currency is fixed by the first sale). The account object does not expose the store currency: confirm the change by creating a checkout session in the new currency. Nothing reaches Stripe for a currency-only update. Answers the same object as GET /accounts/{id} with requirements, payouts_enabled, charges_enabled and business_profile re-read from Stripe after the write (Stripe may still list business_profile.mcc in currently_due for a few seconds while it recomputes). The MCC must come from Stripe's list (https://docs.stripe.com/connect/setting-mcc); digital products and online courses usually use 5815, 5817, 5818 or 8299. A sandbox key updating one of its simulated accounts answers simulating — the profile sent is echoed and nothing reaches Stripe; a live key answers 404 for a simulated account. The account is resolved exactly as on GET: another platform's account, an unknown store or a malformed id are 404 — never a hint about other platforms.

post/accounts/{id}

Request

  • Base URL: https://api.cooud.com/v2
  • URL: https://api.cooud.com/v2/accounts/{id}
  • Auth: HTTP bearer

Path parameters

idstring required

Connected account id (cooud_acct_<ULID> — the seller's store).

Headers

Cooud-Compat-Datestring date required

Required per-request compat-date. Format: ISO calendar date YYYY-MM-DD. Merchants pinned to an older date have their request and response transformed by every gate whose appliesAfter is strictly greater than this date.

Request body

Response

The account with the profile written and its Stripe status re-read (requirements, payouts_enabled, charges_enabled, business_profile, onboarding_state). For a Cooud LLC account (and after store.gateway), the same answer as GET /accounts/{id}.

application_fee_cap_bpsinteger required

Ceiling the seller accepted for platform fees, in basis points of the session base amount. application_fee_amount on POST /checkout-sessions may not exceed floor(amount × application_fee_cap_bps / 10000) plus application_fee_cap_fixed_amount when the session base currency is application_fee_cap_currency (Cooud Connect Fase 4, hybrid cap).

application_fee_cap_fixed_amountinteger required

Fixed fee per sale the seller accepted, in cents of application_fee_cap_currency (Cooud Connect Fase 4). Added to the bps ceiling when the session base currency (line_items/prices) is application_fee_cap_currency; in any other currency it does not apply (never converted). 0 for sellers who accepted before the fixed fee existed and for platforms without one.

application_fee_cap_currencystring required

ISO 4217 code, upper case, of application_fee_cap_fixed_amount (for example BRL). The fixed part only caps sessions whose base currency equals it.

livemodeboolean required

true for a real seller; false for a simulated account created under a sandbox key (no user, store, Stripe account or membership exists).

createdinteger required

Unix epoch seconds derived from the store id.

emailstring nullable required

E-mail of the store owner (the seller who accepted the platform invite, or the e-mail sent on the API onboarding). Null for a simulated sandbox account after its 201: Cooud keeps only the e-mail hash.

idstring required
object'account' required
request_idstring required
statestring required

Membership state at the platform (for example onboarding_pending, active). A simulated sandbox account is always active.

payouts_enabledboolean nullable

Stripe payouts_enabled; null without a Stripe account. Retrieve and onboarding 201 only.

charges_enabledboolean nullable

Stripe charges_enabled; null without a Stripe account. Retrieve and onboarding 201 only.

onboarding_state'in_progress' | 'incomplete' | 'done' | 'failed' nullable

State of the API onboarding (in_progress, incomplete, done, failed); null when the seller joined by invite. Retrieve and onboarding 201 only.

metadataobject

The metadata sent on the onboarding (onboarding 201 only).

gateway'cooud' | 'stripe' | 'cooud_llc'

Payment gateway of the account's store. Present only on accounts whose store sells through Cooud LLC (cooud_llc); when absent the store sells through Cooud Brasil and the account is unchanged. Cooud LLC accounts are created by POST /accounts with gateway: cooud_llc on platforms Cooud enabled for it; their checkout sessions follow the Cooud LLC rules of POST /checkout-sessions.

countrystring nullable

Cooud LLC accounts only: country (ISO 3166-1 alpha-2) of the seller's Cooud LLC payout account; null while that account does not exist.

default_currencystring nullable

Cooud LLC accounts only: default currency of the seller's Cooud LLC payout account; null while that account does not exist.

transfers_enabledboolean

Cooud LLC accounts only: true when the Cooud LLC payout account can receive transfers (transfers capability active, as last synced). On Cooud LLC accounts requirements, payouts_enabled, charges_enabled and business_profile describe the Cooud LLC payout account.

requirement_collection'stripe'

Present on the 201 of a Cooud LLC onboarding: stripe — Stripe collects the requirements of the Cooud LLC (Express) account; the seller provides requirements.currently_due through onboarding_session or onboarding_link.

Changes

No recorded changes to this operation across all 1 revision of this API.