POST /user/create

For Plaid products and flows that use the user object, /user/create provides you a single token to access all data associated with the user. You must call this endpoint before calling /link/token/create if you are using any of the following: Plaid Check, Income Verification, Multi-Item Link, or Plaid Protect.

For customers who began using this endpoint on or after December 10, 2025, this endpoint takes a client_user_id and an identity object and will return a user_id. For customers who began using it before that date, the endpoint takes a client_user_id and a consumer_report_user_identity object and will return a user_token and user_id. For more details, see New User APIs.

In order to create a Plaid Check Consumer Report for a user, the identity (new) or consumer_report_user_identity (legacy) object must be present. If it is not provided during the /user/create call, it can be added later by calling /user/update.

In order to generate a Plaid Check Consumer Report, the following identity fields, at minimum, are required and must be non-empty: name, date_of_birth, emails, phone_numbers, and addresses, (with at least one email, phone number, and address designated as primary). Plaid Check Consumer Reports can only be created for US-based users; the user's address country must be US. If creating a report for sharing with a GSE such as Fannie or Freddie, the user's full SSN must be provided via the id_numbers field. Providing at least a partial SSN is also strongly recommended for all use cases, since it improves the accuracy of matching user records during compliance processes such as file disclosure, dispute, or security freeze requests.

When using Plaid Protect, it is highly recommended that you provide an identity object to better identify and block fraud across your Link sessions.

Plaid will normalize identity fields before storing them and utilize the same identity across different user-based products.

Servers

Request headers

Name Type Required Description
Content-Type String Yes The media type of the request body.

Default value: "application/json"

Plaid-New-User-API-Enabled Boolean No

The HTTP header used in API requests to determine which set of User APIs to invoke: the legacy CRA version or the new User API version.

Default value: false

Request body fields

Name Type Required Description
client_id String No

Your Plaid API client_id. The client_id is required and may be provided either in the PLAID-CLIENT-ID header or as part of a request body.

end_customer String No

A unique ID representing a CRA reseller's end customer. Maximum of 128 characters.

with_upgraded_user Boolean No

When true, a new user will be created and a user_id will be returned. Otherwise, a legacy user will be created and a user_token will be returned.

identity Object No

ClientUserIdentity is the shared user identity construct across /user/* routes.

identity.name Object No

User name information.

identity.name.family_name String Yes

User's family name.

identity.name.given_name String Yes

User's given name.

identity.date_of_birth String No

The user's date of birth, to be provided in the format "yyyy-mm-dd".

identity.phone_numbers[] Array No

The user's phone numbers, in E.164 format: +{countrycode}{number}. For example: "+14157452130". Phone numbers provided in other formats will be parsed on a best-effort basis. Phone number input is validated against valid number ranges; number strings that do not match a real-world phone numbering scheme may cause the request to fail, even in the Sandbox test environment.

identity.phone_numbers[].data String Yes

User's phone number.

identity.phone_numbers[].primary Boolean Yes

Indicates whether this is the primary phone number for the User.

identity.addresses[] Array No

The user's addresses.

identity.addresses[].region String No

State, province or region.

identity.addresses[].street_2 String No

Second line of street address.

identity.addresses[].primary Boolean Yes

Indicates whether this is the primary address for the User.

identity.addresses[].street_1 String No

First line of street address.

identity.addresses[].postal_code String No

Postal or ZIP code.

identity.addresses[].country String Yes

Country code.

identity.addresses[].city String No

City name.

identity.id_numbers[] Array No

The user's ID numbers.

identity.id_numbers[].type String Yes

A globally unique and human readable ID type, specific to the country and document category. For more context on this field, see Input Validation Rules.

Valid values:

  • "sg_nric"
  • "se_pin"
  • "cl_run"
  • "ke_huduma_namba"
  • "ca_sin"
  • "es_nie"
  • "za_smart_id"
  • "ng_nin"
  • "es_dni"
  • "om_civil_id"
  • "ar_dni"
  • "jo_civil_id"
  • "kw_civil_id"
  • "mx_rfc"
  • "eg_national_id"
  • "dk_cpr"
  • "jp_my_number"
  • "in_pan"
  • "nz_drivers_license"
  • "tr_tc_kimlik"
  • "cn_resident_card"
  • "mx_curp"
  • "br_cpf"
  • "sa_national_id"
  • "us_ssn_last_4"
  • "au_passport"
  • "co_nit"
  • "ph_psn"
  • "hk_hkid"
  • "pl_pesel"
  • "my_nric"
  • "ro_cnp"
  • "us_ssn"
  • "it_cf"
  • "au_drivers_license"
identity.id_numbers[].value String Yes

Value of identity document value typed in by user. Alpha-numeric, with all formatting characters stripped. For specific format requirements by ID type, see Input Validation Rules.

identity.emails[] Array No

The user's emails.

identity.emails[].data String Yes

User's email.

identity.emails[].primary Boolean Yes

Indicates whether this is the primary email for the User.

secret String No

Your Plaid API secret. The secret is required and may be provided either in the PLAID-SECRET header or as part of a request body.

client_user_id String Yes

A unique ID representing the end user. Maximum of 128 characters. Typically this will be a user ID number from your application. Personally identifiable information, such as an email address or phone number, should not be used in the client_user_id.

consumer_report_user_identity Object No

This field is only used by integrations created before December 10, 2025. All other integrations must use the identity object instead. For more details, see new user APIs. To create a Plaid Check Consumer Report for a user when using a user_token, this field must be present. If this field is not provided during user token creation, you can add it to the user later by calling /user/update. Once the field has been added to the user, you will be able to call /link/token/create with a non-empty consumer_report_permissible_purpose (which will automatically create a Plaid Check Consumer Report), or call /cra/check_report/create for that user.

consumer_report_user_identity.date_of_birth String Yes

To be provided in the format "yyyy-mm-dd". This field is required for all Plaid Check customers.

consumer_report_user_identity.primary_address Object Yes

Data about the components comprising an address.

consumer_report_user_identity.primary_address.region String Yes

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

consumer_report_user_identity.primary_address.postal_code String Yes

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

consumer_report_user_identity.primary_address.country String Yes

The ISO 3166-1 alpha-2 country code

consumer_report_user_identity.primary_address.street String Yes

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

consumer_report_user_identity.primary_address.city String Yes

The full city name

consumer_report_user_identity.last_name String Yes

The user's last name

consumer_report_user_identity.ssn_last_4 String No

The last 4 digits of the user's social security number.

consumer_report_user_identity.phone_numbers[] Array Yes

The user's phone number, in E.164 format: +{countrycode}{number}. For example: "+14157452130". Phone numbers provided in other formats will be parsed on a best-effort basis. Phone number input is validated against valid number ranges; number strings that do not match a real-world phone numbering scheme may cause the request to fail, even in the Sandbox test environment.

consumer_report_user_identity.ssn_full String No

The user's full social security number. This field should only be provided by lenders intending to share the resulting consumer report with a Government-Sponsored Enterprise (GSE), such as Fannie Mae or Freddie Mac.

Format: "ddd-dd-dddd"

consumer_report_user_identity.first_name String Yes

The user's first name

consumer_report_user_identity.emails[] Array Yes

The user's emails

How to start integrating

  1. Add HTTP Task to your workflow definition.
  2. Search for the API you want to integrate with and click on the name.
    • This loads the API reference documentation and prepares the Http request settings.
  3. Click Test request to test run your request to the API and see the API's response.