Create Sandbox test data 
=========================

#### Use Sandbox accounts to create rich test data for Plaid products 

[Prefer to learn by watching? Check out this quick video guide to Custom Sandbox Users](https://www.youtube.com/watch?v=viSyB5nww_s)

#### Customize Sandbox account data 

In addition to a set of pre-populated [Sandbox test users](https://plaid.com/docs/sandbox/test-credentials/index.html.md) , the Sandbox environment also provides the ability to create custom user accounts, which can be used in conjunction with [/sandbox/public\_token/create](https://plaid.com/docs/api/sandbox/index.html.md#sandboxpublic_tokencreate) or Plaid Link to generate custom Sandbox data, or in conjunction with Plaid Link to test Link flows in the Sandbox.

Using these accounts, you can create your own testing data for the Assets, Auth, Balance, Identity, Investments, Liabilities, and Transactions products. You can also simulate an account with regular income or one that makes regular loan payments. For Link testing, custom accounts support multi-factor authentication, reCAPTCHA, and Link error flows.

To customize testing data for Document Income, see [Testing Document Income](https://plaid.com/docs/income/document-income/index.html.md#testing-document-income) .

#### Configuring the custom user account 

Custom user accounts can be configured and accessed in two ways. The easiest (and recommended) method is by using the [Sandbox Users](https://dashboard.plaid.com/developers/sandbox?tab=testUsers) tool, located in the Plaid Dashboard under Developers -> Sandbox. Set the username and [configuration object](https://plaid.com/docs/sandbox/user-custom/index.html.md#configuration-object-schema) in the Dashboard, then go through the Link flow on Sandbox with that username and any non-empty password. You can also use [/sandbox/public\_token/create](https://plaid.com/docs/api/sandbox/index.html.md#sandboxpublic_tokencreate) with `options.override_username` and `options.override_password` to create a public token for a custom user account while bypassing Link. Alternatively, you can log into Sandbox with the username `user_custom` and provide the [configuration object](https://plaid.com/docs/sandbox/user-custom/index.html.md#configuration-object-schema) as the password.

To aid in testing, Plaid maintains a [GitHub repo](https://github.com/plaid/sandbox-custom-users/) of pre-created custom user accounts that some users have found helpful.

##### Limitations of the custom user account 

Very large configuration objects (larger than approximately 55kb, or approximately 250 transactions) are not supported and may cause the Link attempt to fail.

Using more than ten accounts on a single custom user is not supported and will cause the Link attempt to fail.

If you are using Consumer Report by Plaid Check, to use a custom user, you must click "add new account" in the Link flow rather than using one of the existing banks. Using an existing bank in the Plaid Passport flow will skip the ability to enter a custom username.

At OAuth institutions, custom users may not work properly: certain less frequently used customized fields may be overridden by the default values after the Link flow has completed, or the login may fail. If this occurs, retry the configuration using a non-OAuth institution, such as First Gingham Credit Union or First Platypus Bank.

#### Configuration object schema 

Custom test accounts are configured with a JSON configuration object formulated according to the schema below. All top level fields are optional. Sending an empty object as a configuration will result in an account configured with random balances and transaction history.

**Properties**

string

The version of the password schema to use, possible values are 1 or 2. The default value is 2. You should only specify 1 if you know it is necessary for your test suite.

string

A seed, in the form of a string, that will be used to randomly generate account and transaction data, if this data is not specified using the `override_accounts` argument. If no seed is specified, the randomly generated data will be different each time.

Note that transactions data is generated relative to the Item's creation date. Different Items created on different dates with the same seed for transactions data will have different dates for the transactions. The number of days between each transaction and the Item creation will remain constant. For example, an Item created on December 15 might show a transaction on December 14. An Item created on December 20, using the same seed, would show that same transaction occurring on December 19.

\[object\]

An array of account overrides to configure the accounts for the Item. By default, if no override is specified, transactions and account data will be randomly generated based on the account type and subtype, and other products will have fixed or empty data.

string

`investment:` Investment account.

`credit:` Credit card

`depository:` Depository account

`loan:` Loan account

`payroll:` Payroll account

`other:` Non-specified account type

See the [Account type schema](https://plaid.com/docs/api/accounts/index.html.md#account-type-schema) for a full listing of account types and corresponding subtypes.

Possible values: `investment`, `credit`, `depository`, `loan`, `payroll`, `other`

string

See the [Account type schema](https://plaid.com/docs/api/accounts/index.html.md#account-type-schema) for a full listing of account types and corresponding subtypes.

Possible values: `401a`, `401k`, `403B`, `457b`, `529`, `auto`, `brokerage`, `business`, `cash isa`, `cash management`, `cd`, `checking`, `commercial`, `construction`, `consumer`, `credit card`, `crypto exchange`, `ebt`, `education savings account`, `fhsa`, `fixed annuity`, `gic`, `health reimbursement arrangement`, `home equity`, `hsa`, `isa`, `ira`, `keogh`, `lif`, `life insurance`, `limited purpose checking`, `line of credit`, `lira`, `loan`, `lrif`, `lrsp`, `money market`, `mortgage`, `mutual fund`, `non-custodial wallet`, `non-taxable brokerage account`, `other`, `other insurance`, `other annuity`, `overdraft`, `paypal`, `payroll`, `pension`, `prepaid`, `prif`, `profit sharing plan`, `qshr`, `rdsp`, `resp`, `retirement`, `rlif`, `roth`, `roth 401k`, `roth 403B`, `roth 457b`, `roth pension`, `roth profit sharing plan`, `roth thrift savings plan`, `rrif`, `rrsp`, `sarsep`, `savings`, `sep ira`, `simple ira`, `sipp`, `stock plan`, `student`, `thrift savings plan`, `tfsa`, `trust`, `ugma`, `utma`, `variable annuity`

number

If provided, the account will start with this amount as the current balance.

Format: `double`

number

If provided, the account will always have this amount as its available balance, regardless of current balance or changes in transactions over time. Cannot be set together with `has_null_available_balance`.

Format: `double`

boolean

If set to `true`, the account will always have null as its available balance, regardless of current balance or changes in transactions over time. Cannot be set together with `force_available_balance`.

string

ISO-4217 currency code. If provided, the account will be denominated in the given currency. Transactions will also be in this currency by default.

object

Allows specifying the metadata of the test account

string

The account's name

string

The account's official name

number

The account's limit

Format: `double`

string

The account's mask. Should be an empty string or a string of 2-4 alphanumeric characters. This allows you to model a mask which does not match the account number (such as with a virtual account number).

Pattern: `^$|^[A-Za-z0-9]{2,4}$`

object

Account and bank identifier number data used to configure the test account. All values are optional.

string

Will be used for the account number.

string

Must be a valid ACH routing number. To test `/transfer/capabilities/get`, set this to 322271627 to force a `true` result.

string

Must be a valid wire transfer routing number.

string

EFT institution number. Must be specified alongside `eft_branch`.

string

EFT branch number. Must be specified alongside `eft_institution`.

string

Bank identifier code (BIC). Must be specified alongside `international_iban`.

string

International bank account number (IBAN). If no account number is specified via `account`, will also be used as the account number by default. Must be specified alongside `international_bic`.

string

BACS sort code

\[object\]

Specify the list of transactions on the account.

string

The date of the transaction, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format. Transactions in Sandbox will move from pending to posted once their transaction date has been reached. If a `date_transacted` is not provided by the institution, a transaction date may be available in the [authorized\_date](https://plaid.com/docs/api/products/transactions/index.html.md#transactions-get-response-transactions-authorized-date) field.

Format: `date`

string

The date the transaction posted, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format. Posted dates in the past or present will result in posted transactions; posted dates in the future will result in pending transactions.

Format: `date`

number

The transaction amount. Can be negative.

Format: `double`

string

The transaction description.

string

The ISO-4217 format currency code for the transaction.

object

Specify the holdings on the account.

number

The last price given by the institution for this security

Format: `double`

string

The date at which `institution_price` was current. Must be formatted as an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) date.

Format: `date`

number

The total cost basis of the holding (e.g., the total amount spent to acquire all assets currently in the holding).

Format: `double`

number

The total quantity of the asset held, as reported by the financial institution.

Format: `double`

string

Either a valid `iso_currency_code` or `unofficial_currency_code`

object

Specify the security associated with the holding or investment transaction. When inputting custom security data to the Sandbox, Plaid will perform post-data-retrieval normalization and enrichment. These processes may cause the data returned by the Sandbox to be slightly different from the data you input. An ISO-4217 currency code and a security identifier (`ticker_symbol`, `cusip`, or `isin`) are required.

string

12-character ISIN, a globally unique securities identifier. A verified CUSIP Global Services license is required to receive this data. This field will be null by default for new customers, and null for existing customers starting March 12, 2024. If you would like access to this field, please [request ISIN/CUSIP access here](https://docs.google.com/forms/d/e/1FAIpQLSd9asHEYEfmf8fxJTHZTAfAzW4dugsnSu-HS2J51f1mxwd6Sw/viewform) .

string

9-character CUSIP, an identifier assigned to North American securities. A verified CUSIP Global Services license is required to receive this data. This field will be null by default for new customers, and null for existing customers starting March 12, 2024. If you would like access to this field, please [request ISIN/CUSIP access here](https://docs.google.com/forms/d/e/1FAIpQLSd9asHEYEfmf8fxJTHZTAfAzW4dugsnSu-HS2J51f1mxwd6Sw/viewform) .

string

A descriptive name for the security, suitable for display.

string

The security's trading symbol for publicly traded securities, and otherwise a short identifier if available.

string

Either a valid `iso_currency_code` or `unofficial_currency_code`

object

Specify the list of investments transactions on the account.

string

Posting date for the transaction. Must be formatted as an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) date.

Format: `date`

string

The institution's description of the transaction.

number

The number of units of the security involved in this transaction. Must be positive if the type is a buy and negative if the type is a sell.

Format: `double`

number

The price of the security at which this transaction occurred.

Format: `double`

number

The combined value of all fees applied to this transaction.

Format: `double`

string

The type of the investment transaction. Possible values are: `buy`: Buying an investment `sell`: Selling an investment `cash`: Activity that modifies a cash position `fee`: A fee on the account `transfer`: Activity that modifies a position, but not through buy/sell activity e.g. options exercise, portfolio transfer

string

Either a valid `iso_currency_code` or `unofficial_currency_code`

object

Specify the security associated with the holding or investment transaction. When inputting custom security data to the Sandbox, Plaid will perform post-data-retrieval normalization and enrichment. These processes may cause the data returned by the Sandbox to be slightly different from the data you input. An ISO-4217 currency code and a security identifier (`ticker_symbol`, `cusip`, or `isin`) are required.

string

12-character ISIN, a globally unique securities identifier. A verified CUSIP Global Services license is required to receive this data. This field will be null by default for new customers, and null for existing customers starting March 12, 2024. If you would like access to this field, please [request ISIN/CUSIP access here](https://docs.google.com/forms/d/e/1FAIpQLSd9asHEYEfmf8fxJTHZTAfAzW4dugsnSu-HS2J51f1mxwd6Sw/viewform) .

string

9-character CUSIP, an identifier assigned to North American securities. A verified CUSIP Global Services license is required to receive this data. This field will be null by default for new customers, and null for existing customers starting March 12, 2024. If you would like access to this field, please [request ISIN/CUSIP access here](https://docs.google.com/forms/d/e/1FAIpQLSd9asHEYEfmf8fxJTHZTAfAzW4dugsnSu-HS2J51f1mxwd6Sw/viewform) .

string

A descriptive name for the security, suitable for display.

string

The security's trading symbol for publicly traded securities, and otherwise a short identifier if available.

string

Either a valid `iso_currency_code` or `unofficial_currency_code`

object

Data about the owner or owners of an account. Any fields not specified will be filled in with default Sandbox information.

\[string\]

A list of names associated with the account by the financial institution. These should always be the names of individuals, even for business accounts. Note that the same name data will be used for all accounts associated with an Item.

\[object\]

A list of phone numbers associated with the account.

string

The phone number.

boolean

When `true`, identifies the phone number as the primary number on an account.

string

The type of phone number.

Possible values: `home`, `work`, `office`, `mobile`, `mobile1`, `other`

\[object\]

A list of email addresses associated with the account.

string

The email address.

boolean

When `true`, identifies the email address as the primary email on an account.

string

The type of email account as described by the financial institution.

Possible values: `primary`, `secondary`, `other`

\[object\]

Data about the various addresses associated with the account.

object

Data about the components comprising an address.

string

The full city name

string

The region or state. In API versions 2018-05-22 and earlier, this field is called `state`. Example: `"NC"`

string

The full street address Example: `"564 Main Street, APT 15"`

string

The postal code. In API versions 2018-05-22 and earlier, this field is called `zip`.

string

The ISO 3166-1 alpha-2 country code

boolean

When `true`, identifies the address as the primary address on an account.

object

Used to configure Sandbox test data for the Liabilities product

string

The type of the liability object, either `credit` or `student`. Mortgages are not currently supported in the custom Sandbox.

number

The purchase APR percentage value. For simplicity, this is the only interest rate used to calculate interest charges. Can only be set if `type` is `credit`.

Format: `double`

number

The cash APR percentage value. Can only be set if `type` is `credit`.

Format: `double`

number

The balance transfer APR percentage value. Can only be set if `type` is `credit`.

Format: `double`

number

The special APR percentage value. Can only be set if `type` is `credit`.

Format: `double`

number

Override the `last_payment_amount` field. Can only be set if `type` is `credit`.

Format: `double`

number

Override the `minimum_payment_amount` field. Can only be set if `type` is `credit` or `student`.

Format: `double`

boolean

Override the `is_overdue` field

string

The date on which the loan was initially lent, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) (YYYY-MM-DD) format. Can only be set if `type` is `student`.

Format: `date`

number

The original loan principal. Can only be set if `type` is `student`.

Format: `double`

number

The interest rate on the loan as a percentage. Can only be set if `type` is `student`.

Format: `double`

number

If set, interest capitalization begins at the given number of months after loan origination. By default interest is never capitalized. Can only be set if `type` is `student`.

object

Student loan repayment information used to configure Sandbox test data for the Liabilities product

string

The only currently supported value for this field is `standard`.

number

Configures the number of months before repayment starts.

number

Configures the number of months of repayments before the loan is paid off.

string

Override the `expected_payoff_date` field. Can only be set if `type` is `student`.

Format: `date`

string

Override the `guarantor` field. Can only be set if `type` is `student`.

boolean

Override the `is_federal` field. Can only be set if `type` is `student`.

string

Override the `loan_name` field. Can only be set if `type` is `student`.

object

An object representing the status of the student loan

string

The date until which the loan will be in its current status. Dates are returned in an [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format (YYYY-MM-DD).

Format: `date`

string

The status type of the student loan

Possible values: `cancelled`, `charged off`, `claim`, `consolidated`, `deferment`, `delinquent`, `discharged`, `extension`, `forbearance`, `in grace`, `in military`, `in school`, `not fully disbursed`, `other`, `paid in full`, `refunded`, `repayment`, `transferred`, `pending idr`

string

Override the `payment_reference_number` field. Can only be set if `type` is `student`.

string

Override the `repayment_plan.description` field. Can only be set if `type` is `student`.

string

Override the `repayment_plan.type` field. Can only be set if `type` is `student`. Possible values are: `"extended graduated"`, `"extended standard"`, `"graduated"`, `"income-contingent repayment"`, `"income-based repayment"`, `"income-sensitive repayment"`, `"interest only"`, `"other"`, `"pay as you earn"`, `"revised pay as you earn"`, `"standard"`, or `"saving on a valuable education"`.

string

Override the `sequence_number` field. Can only be set if `type` is `student`.

object

A physical mailing address.

object

Data about the components comprising an address.

string

The full city name

string

The region or state. In API versions 2018-05-22 and earlier, this field is called `state`. Example: `"NC"`

string

The full street address Example: `"564 Main Street, APT 15"`

string

The postal code. In API versions 2018-05-22 and earlier, this field is called `zip`.

string

The ISO 3166-1 alpha-2 country code

boolean

When `true`, identifies the address as the primary address on an account.

object

The `inflow_model` allows you to model a test account that receives regular income or make regular payments on a loan. Any transactions generated by the `inflow_model` will appear in addition to randomly generated test data or transactions specified by `override_accounts`.

string

Inflow model. One of the following:

`none`: No income

`monthly-income`: Income occurs once per month `monthly-balance-payment`: Pays off the balance on a liability account at the given statement day of month.

`monthly-interest-only-payment`: Makes an interest-only payment on a liability account at the given statement day of month.

Note that account types supported by Liabilities will accrue interest in the Sandbox. The types impacted are account type `credit` with subtype `credit` or `paypal`, and account type `loan` with subtype `student` or `mortgage`.

number

Amount of income per month. This value is required if `type` is `monthly-income`.

Format: `double`

number

Number between 1 and 28, or `last` meaning the last day of the month. The day of the month on which the income transaction will appear. The name of the income transaction. This field is required if `type` is `monthly-income`, `monthly-balance-payment` or `monthly-interest-only-payment`.

string

The name of the income transaction. This field is required if `type` is `monthly-income`, `monthly-balance-payment` or `monthly-interest-only-payment`.

string

Number between 1 and 28, or `last` meaning the last day of the month. The day of the month on which the balance is calculated for the next payment. The name of the income transaction. This field is required if `type` is `monthly-balance-payment` or `monthly-interest-only-payment`.

object

Specify payroll data on the account.

\[object\]

A list of paystubs associated with the account.

object

The employer on the paystub.

string

The name of the employer.

object

The address of the employer.

string

The full city name.

string

The region or state Example: `"NC"`

string

The full street address Example: `"564 Main Street, APT 15"`

string

5 digit postal code.

string

The country of the address.

object

The employee on the paystub.

string

The name of the employee.

object

The address of the employee.

string

The full city name.

string

The region or state Example: `"NC"`

string

The full street address Example: `"564 Main Street, APT 15"`

string

5 digit postal code.

string

The country of the address.

string

Marital status of the employee - either `single` or `married`.

Possible values: `single`, `married`

object

Taxpayer ID of the individual receiving the paystub.

string

Type of ID, e.g. 'SSN'

string

ID mask; i.e. last 4 digits of the taxpayer ID

object

An object representing information about the net pay amount on the paystub.

string

Description of the net pay

string

The ISO-4217 currency code of the net pay.

number

The year-to-date amount of the net pay

Format: `double`

object

An object with the deduction information found on a paystub.

\[object\]

number

Raw amount of the deduction

Format: `double`

string

Description of the deduction line item

string

The ISO-4217 currency code of the line item.

number

The year-to-date amount of the deduction

Format: `double`

object

An object representing the total deductions for the pay period

number

Raw amount of the deduction

Format: `double`

string

The ISO-4217 currency code of the line item.

number

The year-to-date total amount of the deductions

Format: `double`

object

An object representing both a breakdown of earnings on a paystub and the total earnings.

\[object\]

string

Commonly used term to describe the earning line item.

Possible values: `BONUS`, `COMMISSION`, `OVERTIME`, `PAID TIME OFF`, `REGULAR PAY`, `VACATION`, `BASIC ALLOWANCE HOUSING`, `BASIC ALLOWANCE SUBSISTENCE`, `OTHER`, `null`

number

Raw amount of the earning line item.

Format: `double`

string

Description of the earning line item.

number

Number of hours applicable for this earning.

string

The ISO-4217 currency code of the line item.

number

Hourly rate applicable for this earning.

Format: `double`

number

The year-to-date amount of the deduction.

Format: `double`

object

An object representing both the current pay period and year to date amount for an earning category.

number

Total number of hours worked for this pay period

string

The ISO-4217 currency code of the line item

number

The year-to-date amount for the total earnings

Format: `double`

object

Details about the pay period.

number

The amount of the paycheck.

Format: `double`

\[object\]

string

Name of the account for the given distribution.

string

The name of the bank that the payment is being deposited to.

number

The amount distributed to this account.

Format: `double`

string

The ISO-4217 currency code of the net pay. Always `null` if `unofficial_currency_code` is non-null.

string

The last 2-4 alphanumeric characters of an account's official account number.

string

Type of the account that the paystub was sent to (e.g. 'checking').

string

The pay period end date, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format: "yyyy-mm-dd".

Format: `date`

number

Total earnings before tax/deductions.

Format: `double`

string

The date on which the paystub was issued, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ("yyyy-mm-dd").

Format: `date`

string

The frequency at which an individual is paid.

Possible values: `PAY_FREQUENCY_UNKNOWN`, `PAY_FREQUENCY_WEEKLY`, `PAY_FREQUENCY_BIWEEKLY`, `PAY_FREQUENCY_SEMIMONTHLY`, `PAY_FREQUENCY_MONTHLY`, `null`

deprecated, string

The date on which the paystub was issued, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format ("yyyy-mm-dd").

Format: `date`

string

The pay period start date, in [ISO 8601](https://wikipedia.org/wiki/ISO_8601) format: "yyyy-mm-dd".

Format: `date`

\[object\]

A list of w2s associated with the account.

object

The employer on the paystub.

string

The name of the employer.

object

The address of the employer.

string

The full city name.

string

The region or state Example: `"NC"`

string

The full street address Example: `"564 Main Street, APT 15"`

string

5 digit postal code.

string

The country of the address.

object

The employee on the paystub.

string

The name of the employee.

object

The address of the employee.

string

The full city name.

string

The region or state Example: `"NC"`

string

The full street address Example: `"564 Main Street, APT 15"`

string

5 digit postal code.

string

The country of the address.

string

Marital status of the employee - either `single` or `married`.

Possible values: `single`, `married`

object

Taxpayer ID of the individual receiving the paystub.

string

Type of ID, e.g. 'SSN'

string

ID mask; i.e. last 4 digits of the taxpayer ID

string

The tax year of the W2 document.

string

An employer identification number or EIN.

string

Wages from tips and other compensation.

string

Federal income tax withheld for the tax year.

string

Wages from social security.

string

Social security tax withheld for the tax year.

string

Wages and tips from medicare.

string

Medicare tax withheld for the tax year.

string

Tips from social security.

string

Allocated tips.

string

Contents from box 9 on the W2.

string

Dependent care benefits.

string

Nonqualified plans.

\[object\]

string

W2 Box 12 code.

string

W2 Box 12 amount.

string

Statutory employee.

string

Retirement plan.

string

Third party sick pay.

string

Other.

\[object\]

string

State associated with the wage.

string

State identification number of the employer.

string

Wages and tips from the specified state.

string

Income tax from the specified state.

string

Wages and tips from the locality.

string

Income tax from the locality.

string

Name of the locality.

object

Specifies the multi-factor authentication settings to use with this test account

string

Possible values are `device`, `selections`, or `questions`.

If value is `device`, the MFA answer is `1234`.

If value is `selections`, the MFA answer is always the first option.

If value is `questions`, the MFA answer is `answer_<i>_<j>` for the j-th question in the i-th round, starting from 0. For example, the answer to the first question in the second round is `answer_1_0`.

number

Number of rounds of questions. Required if value of `type` is `questions`.

number

Number of questions per round. Required if value of `type` is `questions`. If value of type is `selections`, default value is 2.

number

Number of rounds of selections, used if `type` is `selections`. Defaults to 1.

number

Number of available answers per question, used if `type` is `selection`. Defaults to 2.

string

You may trigger a reCAPTCHA in Plaid Link in the Sandbox environment by using the recaptcha field. Possible values are `good` or `bad`. A value of `good` will result in successful Item creation and `bad` will result in a `RECAPTCHA_BAD` error to simulate a failed reCAPTCHA. Both values require the reCAPTCHA to be manually solved within Plaid Link.

string

An error code to force on Item creation. Possible values are:

`"INSTITUTION_NOT_RESPONDING"` `"INSTITUTION_NO_LONGER_SUPPORTED"` `"INVALID_CREDENTIALS"` `"INVALID_MFA"` `"ITEM_LOCKED"` `"ITEM_LOGIN_REQUIRED"` `"ITEM_NOT_SUPPORTED"` `"INVALID_LINK_TOKEN"` `"MFA_NOT_SUPPORTED"` `"NO_ACCOUNTS"` `"PLAID_ERROR"` `"USER_INPUT_TIMEOUT"` `"USER_SETUP_REQUIRED"`

```json
{
  "seed": "my-seed-string-3",
  "override_accounts": [
    {
      "type": "depository",
      "subtype": "checking",
      "identity": {
        "names": [
          "John Doe"
        ],
        "phone_numbers": [
          {
            "primary": true,
            "type": "home",
            "data": "4673956022"
          }
        ],
        "emails": [
          {
            "primary": true,
            "type": "primary",
            "data": "accountholder0@example.com"
          }
        ],
        "addresses": [
          {
            "primary": true,
            "data": {
              "city": "Malakoff",
              "region": "NY",
              "street": "2992 Cameron Road",
              "postal_code": "14236",
              "country": "US"
            }
          }
        ]
      },
      "transactions": [
        {
          "date_transacted": "2023-10-01",
          "date_posted": "2023-10-03",
          "currency": "USD",
          "amount": 100,
          "description": "1 year Netflix subscription"
        },
        {
          "date_transacted": "2023-10-01",
          "date_posted": "2023-10-02",
          "currency": "USD",
          "amount": 100,
          "description": "1 year mobile subscription"
        }
      ]
    },
    {
      "type": "loan",
      "subtype": "student",
      "liability": {
        "type": "student",
        "origination_date": "2023-01-01",
        "principal": 10000,
        "nominal_apr": 6.25,
        "loan_name": "Plaid Student Loan",
        "repayment_model": {
          "type": "standard",
          "non_repayment_months": 12,
          "repayment_months": 120
        }
      }
    },
    {
      "type": "credit",
      "subtype": "credit card",
      "starting_balance": 10000,
      "inflow_model": {
        "type": "monthly-interest-only-payment",
        "payment_day_of_month": 15,
        "statement_day_of_month": 13,
        "transaction_name": "Interest Payment"
      },
      "liability": {
        "type": "credit",
        "purchase_apr": 12.9,
        "balance_transfer_apr": 15.24,
        "cash_apr": 28.45,
        "special_apr": 0,
        "last_payment_amount": 500,
        "minimum_payment_amount": 10
      }
    },
    {
      "type": "investment",
      "subtype": "brokerage",
      "investment_transactions": [
        {
          "date": "2023-07-01",
          "name": "buy stock",
          "quantity": 10,
          "price": 10,
          "fees": 20,
          "type": "buy",
          "currency": "USD",
          "security": {
            "ticker_symbol": "PLAID",
            "currency": "USD"
          }
        }
      ],
      "holdings": [
        {
          "institution_price": 10,
          "institution_price_as_of": "2023-08-01",
          "cost_basis": 10,
          "quantity": 10,
          "currency": "USD",
          "security": {
            "ticker_symbol": "PLAID",
            "currency": "USD"
          }
        }
      ]
    },
    {
      "type": "payroll",
      "subtype": "payroll",
      "income": {
        "paystubs": [
          {
            "employer": {
              "name": "Heartland Toy Company"
            },
            "employee": {
              "name": "Chip Hazard",
              "address": {
                "city": "Burbank",
                "region": "CA",
                "street": "411 N Hollywood Way",
                "postal_code": "91505",
                "country": "US"
              }
            },
            "earnings": {
              "breakdown": [
                {
                  "canonical_description": "REGULAR PAY",
                  "description": "Regular",
                  "current_amount": 800,
                  "rate": 20,
                  "hours": 40
                },
                {
                  "canonical_description": "OVERTIME",
                  "description": "Overtime",
                  "current_amount": 200.39,
                  "rate": 30,
                  "hours": 6.68
                }
              ]
            },
            "pay_period_details": {
              "start_date": "2021-05-04",
              "end_date": "2021-05-18",
              "gross_earnings": 1000.39,
              "check_amount": 499.28
            }
          }
        ]
      }
    }
  ]
}
```