---
title: "Create Testing Shopper Account"
method: POST
path: "/v1/testing/shopper/create"
tags: ["Testing"]
---

# Create Testing Shopper Account

`POST /v1/testing/shopper/create`

Create a Bolt shopper account for testing purposes. Available for sandbox use only and the created account will be recycled after a certain time.

## Headers

- `X-Publishable-Key` string

## Request body

- TestingAccountRequest
  - `deactivate_in_days` integer — Number of days after which the test account is deactivated. Default: 30 days. Maximum: 180 days.
  - `email` string — Deprecated. Please leave this field absent and let the API automatically generate a random email.
  - `email_state` 'missing' | 'verified' | 'unverified' — The status of the shopper account identifier (email or phone). If the account does not have this identifier, the status is "missing"; If the identifier has been used to receive an OTP code, the status is "verified"; If the identifier has not been used to receive an OTP code, the status is "unverified".
  - `phone` string — Deprecated. Please leave this field absent and let the API automatically generate a random phone number.
  - `phone_state` 'missing' | 'verified' | 'unverified' — The status of the shopper account identifier (email or phone). If the account does not have this identifier, the status is "missing"; If the identifier has been used to receive an OTP code, the status is "verified"; If the identifier has not been used to receive an OTP code, the status is "unverified".
  - `migrated` boolean — Set this account as migrated by the merchant in the request
  - `has_address` boolean — Add a random U.S. address to the created account if set to `true`

## Response `200`

Testing Account Created

- TestingAccountDetails
  - `email` string, email — An email address.
  - `email_state` 'missing' | 'verified' | 'unverified' — The status of the shopper account identifier (email or phone). If the account does not have this identifier, the status is "missing"; If the identifier has been used to receive an OTP code, the status is "verified"; If the identifier has not been used to receive an OTP code, the status is "unverified".
  - `phone` string — A phone number following E164 standards, in its globalized format, i.e. prepended with a plus sign.
  - `phone_state` 'missing' | 'verified' | 'unverified' — The status of the shopper account identifier (email or phone). If the account does not have this identifier, the status is "missing"; If the identifier has been used to receive an OTP code, the status is "verified"; If the identifier has not been used to receive an OTP code, the status is "unverified".
  - `otp_code` string — Fixed OTP code that can be used to login to the created account
  - `migrated_merchant_owner_id` string — The merchant's public id if the account is migrated
  - `will_deactivate_at` string — The created testing account will be deactivated after this date
  - `oauth_code` string — OAuth code that is associated with this account and can be used to exchange for an access token

---

[API](https://skmtc.dev/bolt/apis/bolt-api-reference.md) · [All operations](https://skmtc.dev/bolt/apis/bolt-api-reference/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/bolt/bolt-api-reference/revisions/1f62c40558c6/schema)
