Sample - Plaid API
POST/transfer/platform/person/create

Create an originator-associated person

Creates a person associated with an originator, such as a beneficial owner or control person. Supply the person's legal name and home address with the required originator identifier, and optionally provide identification, contact, relationship, ownership, or business-title information. Use the returned person identifier when submitting additional requirements for that person.

  • RetriesRetries up to 2×, 500ms backoff, 30s timeout.

12 body fields

Person details associated with an originator, including required originator identification and optional personal or business information.

client_idstringoptional
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.
secretstringoptional
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.
originator_client_idstringrequired
The client ID of the originator
nameobjectoptional
The person's legal name
email_addressstringoptional
A valid email address. Must not have leading or trailing spaces.
phone_numberstringoptional
A valid phone number in E.164 format. Phone number input may be 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.
addressobjectoptional
Home address of a person
id_numberobjectoptional
ID number of the person
date_of_birthstringoptional
The date of birth of the person. Formatted as YYYY-MM-DD.
relationship_to_originatorstringoptional
The relationship between this person and the originator they are related to.
ownership_percentageintegeroptional
The percentage of ownership this person has in the onboarding business. Only applicable to beneficial owners with 25% or more ownership.
titlestringoptional
The title of the person at the business. Only applicable to control persons - for example, "CEO", "President", "Owner", etc.

2 status codes
200Returns the unique request identifier and the created person's identifier for use with additional requirements.
request_idstringrequired
A unique identifier for the request, which can be used for troubleshooting. This identifier, like all Plaid identifiers, is case sensitive.
person_idstringrequired
An ID that should be used when submitting additional requirements that are associated with this person.
defaultError response
error_typestringrequired
A broad categorization of the error. Safe for programmatic use.
Allowed:INVALID_REQUESTINVALID_RESULTINVALID_INPUTINSTITUTION_ERRORRATE_LIMIT_EXCEEDEDAPI_ERRORITEM_ERRORASSET_REPORT_ERRORBASE_REPORT_ERRORRECAPTCHA_ERROROAUTH_ERRORPAYMENT_ERROR
error_codestringrequired
The particular error code. Safe for programmatic use.
error_code_reasonstringoptional
The specific reason for the error code. Currently, reasons are only supported for OAuth-based item errors; `null` will be returned otherwise. Safe for programmatic use. Possible values: `OAUTH_INVALID_TOKEN`: The user's OAuth connection to this institution has been invalidated. `OAUTH_CONSENT_EXPIRED`: The user's access consent for this OAuth connection to this institution has expired. `OAUTH_USER_REVOKED`: The user's OAuth connection to this institution is invalid because the user revoked their connection.
error_messagestringrequired
A developer-friendly representation of the error code. This may change over time and is not safe for programmatic use.
display_messagestringrequired
A user-friendly representation of the error code. `null` if the error is not related to user action. This may change over time and is not safe for programmatic use.
request_idstringoptional
A unique ID identifying the request, to be used for troubleshooting purposes. This field will be omitted in errors provided by webhooks.
causesarrayoptional
In this product, a request can pertain to more than one Item. If an error is returned for such a request, `causes` will return an array of errors containing a breakdown of these errors on the individual Item level, if any can be identified. `causes` will be provided for the `error_type` `ASSET_REPORT_ERROR` or `CHECK_REPORT_ERROR`. `causes` will also not be populated inside an error nested within a `warning` object.
statusintegeroptional
The HTTP status code associated with the error. This will only be returned in the response body when the error information is provided via a webhook.
documentation_urlstringoptional
The URL of a Plaid documentation page with more information about the error
suggested_actionstringoptional
Suggested steps for resolving the error
required_account_subtypesarray<string>optional
A list of the account subtypes that were requested via the `account_filters` parameter in `/link/token/create`. Currently only populated for `NO_ACCOUNTS` errors from Items with `investments_auth` as an enabled product.
provided_account_subtypesarray<string>optional
A list of the account subtypes that were extracted but did not match the requested subtypes via the `account_filters` parameter in `/link/token/create`. Currently only populated for `NO_ACCOUNTS` errors from Items with `investments_auth` as an enabled product.

Error handling

originator_client_id is required, and name and address must include their required nested fields when provided. Names must contain at least one non-whitespace character and be no longer than 100 characters; country must be a two-letter ISO 3166-1 alpha-2 code, and ownership_percentage must be between 25 and 100. Use ISO 8601 date_of_birth, a valid email address, and an E.164 phone number when supplying those fields.