type. You create three of them: individual, business, and sole_prop. Lead sets up the other two, lead and partner, and you read them.
Common individual, business, and sole_prop fields
individual_details
Required when type is individual. Within it, first_name, last_name, and identification_details are required. identification_details must always be present, but only its type is required. Every other field is optional to create the entity and becomes required only for the relationship types that need it. See Data requirements.
business_details
Required when type is business or sole_prop. Within it, name (at least two characters), identification_details, and address_details are required.
Linked entities
Businesses and sole proprietorships need information about the people behind them. Each of those people is their own individual entity, linked to the business byentity_id. To create a business or sole_prop entity, first create an individual entity for each beneficial owner, control person, or sole proprietor. Then create the business or sole_prop entity and reference their entity_id values.
Each linked individual must meet the data requirements for
authorized_signer, even if they will never sign. If one does not, the business or sole_prop is ineligible for account_holder, and its failed_checks point at that individual’s entity_id.
Identification for US and non-US entities
Every entity you create needsidentification_details with a type: us_entity if the entity has a US tax ID, non_us_entity if it does not. type is the only field required to create the entity. What else you provide depends on the relationship types the entity will hold.
us_entitytax_identificationhas atype(ssn,itin, orein) and a 9-digit value. Send the whole object or leave it out. A type without a valid value is rejected.- Individuals use
ssnoritin. Businesses useein. Trusts and LLCs can also usessnoritin. Sole proprietorships can use any of the three. - A Social Security number (SSN) cannot start with 9. Numbers starting with 9 are Individual Taxpayer Identification Numbers (ITINs), so send them as
itin. - A business cannot switch between
us_entityandnon_us_entityafter creation. If you have not collected a US person’s tax ID yet, sendus_entitywithouttax_identification.
non_us_entity- Needs at least one
identification_documents[]entry for every relationship type exceptauthorized_user.
- Needs at least one
intended_eligibility. For example, you create a US individual with identification_details.type us_entity, no tax_identification, and no intended_eligibility. The create succeeds, and eligibility shows account_holder and authorized_signer as ineligible because the government ID check fails. If the same request sends intended_eligibility: ["account_holder"], it returns 422 parameters_invalid instead, and Lead does not create the entity. When you collect the SSN, send a PATCH with tax_identification and a kyc_details with result passed and a later screened_at. Lead recomputes eligibility on the response, and the government ID check no longer fails. If the rest of the entity’s data meets the requirements, account_holder and authorized_signer now show as eligible, and you can add the entity to a user account in those roles. To make the PATCH fail unless the entity qualifies, include intended_eligibility: ["account_holder"] in it.
Send only the entity’s own tax ID. Lead records whatever SSN or ITIN you send as that individual’s own, so do not send a parent’s or guardian’s. For a teen
authorized_user without their own SSN, leave tax_identification out.Documents
Entities carry two arrays of documents:identification_documents[] for government-issued ID, and additional_documents[] for supporting documents.
Each entry gives its document type in one of two ways. If you have the document as a file, upload it with the Files API, declare its type there, and send its file_id. Lead takes the type from the file and checks that the file exists and belongs to your program. If you do not have a file, send type on the entry instead. Send file_id or type, not both. A request with both, or neither, returns 422 parameters_invalid. When an entry has a file_id, the entity does not return its type. Retrieve it with GET /v2/files/{id}.
identification_documents[], inside identification_details, holds government-verified identification.
additional_documents[], on individual_details or business_details, holds supporting documents. Each entry takes file_id or type, the same as identification documents. The type must be bank_statement, utility_bills, proof_of_address, investigation_report, financial_statement, public_records, adverse_media, or id_selfie.
Things to know when you link files:
- Link a file when you have one. Upload it with
POST /v2/files, declaring its type, then send the returnedfile_id. You can create an entity before its files exist and add them later with aPATCH. - Each file appears at most once on an entity, and each file has one type. If one document serves two types, like a utility bill that is also proof of address, upload it once for each type. You can link several files of the same type, like an expired and a current passport.
- A supplied array replaces the whole array. To add one document, send every existing entry plus the new one. Lead re-checks every
file_idin the array.
Address rules
Put the full street address, with the number and street name, inline_1. It must be at least four characters. Use line_2 only for unit details like an apartment, suite, floor, or care-of, and leave it blank otherwise.
city and country (ISO 3166-1 alpha-2) are required. US addresses also need a valid USPS state code and a postal_code written as 12345, 12345-6789, or 12345 6789. A physical address cannot be a P.O. box. Businesses and sole proprietorships need a physical address.
Do not use a registered-agent address or an address in a prohibited country as a physical address.
Lead and partner entities
Lead provisions alead entity and one or more partner entities for your program during onboarding. They hold your program’s core accounts. You can read them, but a POST with either type returns 422 parameters_invalid and a PATCH to one returns 422 operation_invalid. The two types have the same shape.
These entities carry no KYC, OFAC, risk score, identification, documents, or linked entities.
The eligibility block
eligibility has one key for each relationship type: account_holder, minor_account_holder, authorized_signer, and authorized_user. All four are always present. Each has a status of eligible or ineligible and a failed_checks array. Each failed check names the check, the entity_id whose data failed, and a human-readable reason. Lead computes eligibility from current data on every read. Eligibility explains how to read and fix each check.
Create and update
POST /v2/entities and PATCH /v2/entities/{id} take the same fields as the object, and both require an Idempotency-Key header of up to 255 characters. A request without one returns 400 idempotency_key_missing. See Idempotency. A request that breaks a field rule on this page returns 422 parameters_invalid naming the field.
PATCH changes only the fields you send:
- Fields you leave out of an object, like
physical_address, keep their stored values. - To add an entry to an array like
additional_documentsorcontact_methods, send the existing entries plus the new one. typeis required and must match the existing entity.- Lead checks the updated entity against
intended_eligibility, either the list you send or the one saved from an earlier request. Send[]to clear the saved list. - Identity changes need a fresh KYC attestation:
- For individuals:
first_name,last_name,date_of_birth, andtax_identification. - For businesses and sole proprietorships:
business_details.name,business_details.type, andtax_identification. - For identification documents: a change to
type,identification_number,issuing_country,issuing_state, orexpiration_date. Adding or swapping afile_idcounts only when it changes the document’s type. - If you’ve sent
kyc_detailsbefore, includekyc_detailswith a laterscreened_atin the same request.
- For individuals:
Coming from the v0 Entity API
Entities keep theirentity_id across versions. An entity you created on v0 is readable and updatable on v2. v0 stays live until its sunset date, with sandbox time before you have to move.
Most fields carry over unchanged. These are the ones that differ:

