Skip to content

Stripe.Account reference

Source: src/Stripe/Account.ts

A Stripe Connect connected account — a Standard, Express, or Custom account created by your platform on behalf of a user.

Creating an account is only the first step of onboarding: Stripe activates requested capabilities once the account satisfies their requirements, so a freshly created account normally reports chargesEnabled: false and a non-empty requirementsCurrentlyDue. Account Links are one-shot URLs and are not modeled as resources.

type, country, and controller are fixed at creation. Email, business profile, capabilities, settings, and metadata update in place. Deleting the resource deletes the connected account.

A Standard connected account

const account = yield* Stripe.Account("Merchant", {
type: "standard",
country: "US",
email: "merchant@example.com",
});

An Express account requesting payment capabilities

const account = yield* Stripe.Account("Merchant", {
type: "express",
country: "US",
email: "merchant@example.com",
capabilities: {
card_payments: { requested: true },
transfers: { requested: true },
},
});
const account = yield* Stripe.Account("Merchant", {
type: "express",
country: "US",
email: "merchant@example.com",
businessType: "company",
defaultCurrency: "usd",
businessProfile: {
name: "Example Merchant",
url: "https://example.com",
mcc: "5734",
supportEmail: "support@example.com",
},
capabilities: {
card_payments: { requested: true },
transfers: { requested: true },
},
settings: {
payouts: { schedule: { interval: "manual" } },
},
metadata: { tier: "gold" },
});
const account = yield* Stripe.Account("Merchant", {
country: "US",
controller: {
losses: { payments: "application" },
fees: { payer: "application" },
requirementCollection: "application",
stripeDashboard: { type: "none" },
},
});

Source: src/Stripe/AccountExternalAccount.ts

A Stripe Account External Account — a bank account or debit card attached to a Connect account as a payout destination. Metadata, account-holder details, and defaultForCurrency update in place. Changing account or the externalAccount token replaces it. Destroy deletes it.

AccountExternalAccount: Creating an External Account

Section titled “AccountExternalAccount: Creating an External Account”

Bank account token on a Connect account

const payout = yield* Stripe.AccountExternalAccount("payout-bank", {
account: connected.id,
externalAccount: bankToken.id,
accountHolderName: "Jenny Rosen",
accountHolderType: "individual",
metadata: { purpose: "payouts" },
});

Debit card token

const payout = yield* Stripe.AccountExternalAccount("payout-card", {
account: connected.id,
externalAccount: debitToken.id,
defaultForCurrency: true,
});

AccountExternalAccount: Updating an External Account

Section titled “AccountExternalAccount: Updating an External Account”
const payout = yield* Stripe.AccountExternalAccount("payout-bank", {
account: connected.id,
externalAccount: bankToken.id,
accountHolderName: "Alchemy Tester",
accountHolderType: "company",
defaultForCurrency: true,
metadata: { purpose: "payroll" },
});

Source: src/Stripe/AccountPerson.ts

A Stripe Person on a Connect account — a director, executive, owner, or representative of the account’s legal entity. Name, email, phone, relationship, and metadata update in place. Changing account replaces the person. Destroy deletes the person (the account opener cannot be deleted).

Director on a Connect account

const person = yield* Stripe.AccountPerson("cfo", {
account: account.id,
firstName: "Jane",
lastName: "Diaz",
email: "jane.diaz@example.com",
relationship: { director: true, title: "CFO" },
});

Owner with metadata

const person = yield* Stripe.AccountPerson("owner", {
account: account.id,
firstName: "Alex",
lastName: "Kim",
relationship: { owner: true, percentOwnership: 25 },
metadata: { role: "beneficial-owner" },
});
const person = yield* Stripe.AccountPerson("cfo", {
account: account.id,
firstName: "Jane",
lastName: "Diaz",
email: "jane.diaz+updated@example.com",
relationship: { director: true, title: "COO" },
});

Source: src/Stripe/CreateAccount.ts

Create a Stripe Connect Account over HTTP. Account-scoped — binds the API key onto the host, not a specific connected account.

CreateAccount: Creating an Account at runtime

Section titled “CreateAccount: Creating an Account at runtime”
const create = yield* Stripe.CreateAccount();
const account = yield* create({
type: "express",
country: "US",
email: "merchant@example.com",
});

Source: src/Stripe/CreateAccountHttp.ts Kind: Layer · Provides: Stripe.CreateAccount

HTTP implementation of CreateAccount. Provide it on the Function or Worker Effect.

Source: src/Stripe/CreateAccountLink.ts

Create a Stripe Account Link over HTTP. Account-scoped — binds the API key onto the host, not a specific connected account.

Account Links are the URLs a Connect platform hands a merchant to complete hosted onboarding for an Express or Standard account.

const createLink = yield* Stripe.CreateAccountLink();
const link = yield* createLink({
account: "acct_…",
type: "account_onboarding",
return_url: "https://example.com/onboarded",
});
// link.url is the hosted onboarding page

Source: src/Stripe/CreateAccountLinkHttp.ts Kind: Layer · Provides: Stripe.CreateAccountLink

HTTP implementation of CreateAccountLink. Provide it on the Function or Worker Effect.

Source: src/Stripe/RetrieveAccount.ts

Retrieve a bound Stripe Connect Account over HTTP.

const retrieve = yield* Stripe.RetrieveAccount(merchant);
const live = yield* retrieve();

Source: src/Stripe/RetrieveAccountExternalAccount.ts

Retrieve a bound Stripe Account External Account over HTTP.

RetrieveAccountExternalAccount: Reading an External Account

Section titled “RetrieveAccountExternalAccount: Reading an External Account”
const retrieve = yield* Stripe.RetrieveAccountExternalAccount(payout);
const live = yield* retrieve();

Source: src/Stripe/RetrieveAccountExternalAccountHttp.ts Kind: Layer · Provides: Stripe.RetrieveAccountExternalAccount

HTTP implementation of RetrieveAccountExternalAccount. The nested retrieve takes both account and id.

Source: src/Stripe/RetrieveAccountHttp.ts Kind: Layer · Provides: Stripe.RetrieveAccount

HTTP implementation of RetrieveAccount. Provide it on the Function or Worker Effect.

Source: src/Stripe/RetrieveAccountPerson.ts

Retrieve a bound Stripe Account Person over HTTP.

const retrieve = yield* Stripe.RetrieveAccountPerson(cfo);
const live = yield* retrieve();

Source: src/Stripe/RetrieveAccountPersonHttp.ts Kind: Layer · Provides: Stripe.RetrieveAccountPerson

HTTP implementation of RetrieveAccountPerson. Retrieve takes both account and person.

Source: src/Stripe/UpdateAccount.ts

Update a bound Stripe Connect Account over HTTP.

const update = yield* Stripe.UpdateAccount(merchant);
const live = yield* update({ email: "merchant@example.com" });

Source: src/Stripe/UpdateAccountHttp.ts Kind: Layer · Provides: Stripe.UpdateAccount

HTTP implementation of UpdateAccount. Provide it on the Function or Worker Effect.