# Create a person token

Creates a single-use token that represents the details for a person. Use this when you create or update persons associated with an Account v2. Learn more about [account tokens](https://docs.stripe.com/connect/account-tokens.md). You can only create person tokens with your application’s publishable key and in live mode. You can use your application’s secret key to create person tokens only in test mode.

## Request

```curl
curl -X POST https://api.stripe.com/v2/core/accounts/{{ACCOUNT_ID}}/person_tokens \
  -H "Authorization: Bearer <<YOUR_SECRET_KEY>>" \
  -H "Stripe-Version: 2026-07-29.dahlia" \
  --json '{
    "given_name": "Jenny",
    "surname": "Rosen",
    "email": "jenny.rosen@example.com",
    "address": {
        "line1": "27 Fredrick Ave",
        "city": "Brothers",
        "postal_code": "97712",
        "state": "OR",
        "country": "US"
    },
    "id_numbers": [
        {
            "type": "us_ssn_last_4",
            "value": "0000"
        }
    ],
    "relationship": {
        "owner": true,
        "percent_ownership": "0.8",
        "representative": true,
        "title": "CEO"
    }
  }'
```

### Response

```json
{
  "id": "perstok_61RS0CgWt1xBt8M1Q16RS0Cg0WSQO5ZXUVpZxZ9tAIbY",
  "object": "v2.core.account_person_token",
  "created": "2025-11-17T14:00:00.000Z",
  "expires_at": "2025-11-17T14:10:00.000Z",
  "livemode": true,
  "used": false
}
```

## Parameters

- [`additional_addresses`](https://docs.stripe.com/api/v2/core/person-tokens/create.md?query=additional_addresses) (array of objects, optional)
  Additional addresses associated with the person.

- [`additional_names`](https://docs.stripe.com/api/v2/core/person-tokens/create.md?query=additional_names) (array of objects, optional)
  Additional names (e.g. aliases) associated with the person.

- [`additional_terms_of_service`](https://docs.stripe.com/api/v2/core/person-tokens/create.md?query=additional_terms_of_service) (object, optional)
  Attestations of accepted terms of service agreements.

- [`address`](https://docs.stripe.com/api/v2/core/person-tokens/create.md?query=address) (object, optional)
  The person’s residential address.

- [`date_of_birth`](https://docs.stripe.com/api/v2/core/person-tokens/create.md?query=date_of_birth) (object, optional)
  The person’s date of birth.

- [`documents`](https://docs.stripe.com/api/v2/core/person-tokens/create.md?query=documents) (object, optional)
  Documents that may be submitted to satisfy various informational requests.

- `email` (string, optional)
  Email.

- `given_name` (string, optional)
  The person’s first name.

- [`id_numbers`](https://docs.stripe.com/api/v2/core/person-tokens/create.md?query=id_numbers) (array of objects, optional)
  The identification numbers (e.g., SSN) associated with the person.

- `legal_gender` (enum, optional)
  The person’s gender (International regulations require either “male” or “female”).
Possible enum values:
  - `female`
    Female gender person.

  - `male`
    Male gender person.

- `metadata` (map, optional)
  Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.

- `nationalities` (array of enums, optional)
  The nationalities (countries) this person is associated with.

- `phone` (string, optional)
  The phone number for this person.

- `political_exposure` (enum, optional)
  The person’s political exposure.
Possible enum values:
  - `existing`
    The person has disclosed that they do have political exposure.

  - `none`
    The person has disclosed that they have no political exposure.

- [`relationship`](https://docs.stripe.com/api/v2/core/person-tokens/create.md?query=relationship) (object, optional)
  The relationship that this person has with the Account’s business or legal entity.

- [`script_addresses`](https://docs.stripe.com/api/v2/core/person-tokens/create.md?query=script_addresses) (object, optional)
  The script addresses (e.g., non-Latin characters) associated with the person.

- [`script_names`](https://docs.stripe.com/api/v2/core/person-tokens/create.md?query=script_names) (object, optional)
  The script names (e.g. non-Latin characters) associated with the person.

- `surname` (string, optional)
  The person’s last name.

## Returns

Returns a [Person Token object](https://docs.stripe.com/api/v2/core/person-tokens/object.md).

## Error Codes

| HTTP status code | Code | Description |
| --- | --- | --- |
| 400 | non_connect_platform_accounts_v2_access_blocked | Needs to use the newer API version or onboard to Connect. |
| 400 | platform_registration_required | The direct merchant has not signed up for Connect and cannot create connected accounts. |
| 400 | token_must_be_created_with_publishable_key | Token must be created with publishable key. |
| 429 | account_rate_limit_exceeded | Account cannot exceed a configured concurrency rate limit on updates. |
