POST /user/create

This endpoint should be called for each of your end users before they begin a Plaid Check or Income flow, or a Multi-Item Link flow. This provides you a single token to access all data associated with the user. You should only create one per end user.

The consumer_report_user_identity object must be present in order to create a Plaid Check Consumer Report for a user. If it is not provided during the /user/create call, it can be added later by calling /user/update. Plaid Check Consumer Reports can only be created for US-based users; the user's address country must be US.

If you call the endpoint multiple times with the same client_user_id, the first creation call will succeed and the rest will fail with an error message indicating that the user has been created for the given client_user_id.

Ensure that you store the user_token along with your user's identifier in your database, as it is not possible to retrieve a previously created user_token.

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.

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 Hybrid Input Validation.

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 Hybrid Input Validation.

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

To create a Plaid Check Consumer Report for a user, this field must be present on the user token. 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.