Skip to main content
An entity is one object with five shapes, depending on its 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 by entity_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 needs identification_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_entity
    • tax_identification has a type (ssn, itin, or ein) and a 9-digit value. Send the whole object or leave it out. A type without a valid value is rejected.
    • Individuals use ssn or itin. Businesses use ein. Trusts and LLCs can also use ssn or itin. 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_entity and non_us_entity after creation. If you have not collected a US person’s tax ID yet, send us_entity without tax_identification.
  • non_us_entity
    • Needs at least one identification_documents[] entry for every relationship type except authorized_user.
Missing identification does not block a create unless you list a relationship type that needs it in 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 returned file_id. You can create an entity before its files exist and add them later with a PATCH.
  • 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_id in the array.

Address rules

Put the full street address, with the number and street name, in line_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 a lead 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_documents or contact_methods, send the existing entries plus the new one.
  • type is 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, and tax_identification.
    • For businesses and sole proprietorships: business_details.name, business_details.type, and tax_identification.
    • For identification documents: a change to type, identification_number, issuing_country, issuing_state, or expiration_date. Adding or swapping a file_id counts only when it changes the document’s type.
    • If you’ve sent kyc_details before, include kyc_details with a later screened_at in the same request.

Coming from the v0 Entity API

Entities keep their entity_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: Entity Overview · Eligibility · Beneficial Ownership Requirements · The Core Account Object