Account Tokens v2

Account tokens are single-use tokens which tokenize an account’s contact_email, display_name, contact_phone, and identity.

Create an account token
POST/v2/core/account_tokens
Retrieve an account token
GET/v2/core/account_tokens/:id

The Account Token object v2

Attributes

  • idstring

    Unique identifier for the token.

  • objectstring, value is "v2.core.account_token"

    String representing the object’s type. Objects of the same type share the same value of the object field.

  • createdtimestamp

    Time at which the token was created. Represented as a RFC 3339 date & time UTC value in millisecond precision, for example: 2022-09-18T13:22:18.123Z.

  • expires_attimestamp

    Time at which the token will expire.

  • livemodeboolean

    Has the value true if the token exists in live mode or the value false if the object exists in test mode.

  • usedboolean

    Determines if the token has already been used (tokens can only be used once).

The Account Token object
{
"id": "accttok_61RS0CgWt1xBt8M1Q16RS0Cg0WSQO5ZXUVpZxZ9tAIbY",
"object": "v2.core.account_token",
"created": "2025-11-17T14:00:00.000Z",
"expires_at": "2025-11-17T14:10:00.000Z",
"livemode": true,
"used": false
}

Create an account token v2

Create an account token with a publishable key and pass it to the Accounts v2 API to create or update an account without its data touching your server. Learn more about account tokens. In live mode, you can only create account tokens with your application’s publishable key. In test mode, you can create account tokens with your secret key or publishable key.

Learn more about calling API v2 endpoints.

Parameters

  • contact_emailstring

    The primary contact email address for the Account.

  • contact_phonestring

    The default contact phone for the Account.

  • display_namestring

    A descriptive name for the Account. This name will be surfaced in the Stripe Dashboard and on any invoices sent to the Account.

  • identityobject

    Information about the company, individual, and business represented by the Account.

Returns

Response attributes

  • idstring

    Unique identifier for the token.

  • objectstring, value is "v2.core.account_token"

    String representing the object’s type. Objects of the same type share the same value of the object field.

  • createdtimestamp

    Time at which the token was created. Represented as a RFC 3339 date & time UTC value in millisecond precision, for example: 2022-09-18T13:22:18.123Z.

  • expires_attimestamp

    Time at which the token will expire.

  • livemodeboolean

    Has the value true if the token exists in live mode or the value false if the object exists in test mode.

  • usedboolean

    Determines if the token has already been used (tokens can only be used once).

400non_connect_platform_accounts_v2_access_blocked

Needs to use the newer API version or onboard to Connect.

400platform_registration_required

The direct merchant has not signed up for Connect and cannot create connected accounts.

400token_must_be_created_with_publishable_key

Token must be created with publishable key.

429account_rate_limit_exceeded

Account cannot exceed a configured concurrency rate limit on updates.

curl -X POST https://api.stripe.com/v2/core/account_tokens \
-H "Authorization: Bearer sk_test_BQokikJ...2HlWgH4olfQ2sk_test_BQokikJOvBiI2HlWgH4olfQ2" \
-H "Stripe-Version: 2026-05-27.dahlia" \
--json '{
"contact_email": "furever@example.com",
"display_name": "Furever",
"identity": {
"attestations": {
"terms_of_service": {
"account": {
"shown_and_accepted": true
}
}
},
"entity_type": "company",
"business_details": {
"registered_name": "Furever"
}
}
}'
Response
{
"id": "accttok_61RS0CgWt1xBt8M1Q16RS0Cg0WSQO5ZXUVpZxZ9tAIbY",
"object": "v2.core.account_token",
"created": "2025-11-17T14:00:00.000Z",
"expires_at": "2025-11-17T14:10:00.000Z",
"livemode": true,
"used": false
}