---
title: "Submit KYC Data"
method: POST
path: "/api/v2/entities/{entity_id}/kyc"
tags: ["KYC"]
---

# Submit KYC Data

`POST /api/v2/entities/{entity_id}/kyc`

Submit KYC data directly, for partners that are provisioned to provide their own KYC data.

This feature is available for everyone in sandbox mode, and for specifically provisioned partners in production.

## Request body

- union
  - CreateBaselineKycInput — Input parameters for providing KYC information for an `Entity` in the baseline jurisdiction.
    - `data` BaselineKycCheckDataV0, required — KYC data for an `Entity` in the BASELINE jurisdiction.
      - `country_code` string, required — Country of citizenship or home country of the organization. ISO 3166-1 alpha 2 country code.
      - `last_name` string, required — Last name of the person.
      - `address_country_code` string, required — Country of residence. ISO 3166-1 alpha 2 country code.
      - `first_name` string, nullable — First name of the person.
      - `middle_name` string, nullable — Middle name of the user
      - `email` string, nullable — Email address.
      - `tax_id_number` string, nullable — ID number of the official tax document of the country the entity belongs to.
      - `birth_date` string, date, nullable — Birth date of the individual. In ISO 8601 format, YYYY-MM-DD.
      - `address_street_1` string, nullable — Street address of address.
      - `address_street_2` string, nullable — Extension of address, usually apartment or suite number.
      - `address_city` string, nullable — City of address. Not all international addresses use this attribute.
      - `address_subdivision` string, nullable — State or subdivision of address. In the US, this should be the unabbreviated name of the state. Not all international addresses use this attribute.
      - `address_postal_code` string, nullable — Postal code of residence address. Not all international addresses use this attribute.
    - `provider_name` string, required — Name of the KYC provider that provided the KYC information.
    - `jurisdiction` 'BASELINE' — Jurisdiction of the KYC check.
  - CreateUsKycInput — Input parameters for providing KYC information for an `Entity` in the US jurisdiction.
    - `data` UsKycCheckDataV1, required — KYC data for an `Entity` in the US jurisdiction.
      - `identity` UsKycIdentityDataV1, required — Identity information for the individual
        - `given_name` string, required — The first/given name of the user.
        - `family_name` string, required — The last name (surname) of the user.
        - `email_address` string, required — Email address of the applicant.
        - `phone_number` string, required — Phone number should include the country code, format: “+15555555555”
        - `street_address` string, required — Street address of the applicant.
        - `city` string, required — City of the applicant.
        - `country_of_tax_residence` 'US', required — Country of residency of the applicant. Must be 'US'.
        - `postal_code` string, required — Postal code of the applicant.
        - `date_of_birth` string, date, required — Date of birth of the applicant.
        - `tax_id` string, required — Social Security Number (SSN) or Tax Identification Number (TIN) of the applicant.
        - `country_of_citizenship` string, required — Nationality of the applicant.
        - `middle_name` string, nullable — The middle name of the user.
        - `unit` string, nullable — The specific apartment number if applicable
        - `state` string, nullable — State of the applicant. Required if the applicant resides in the US as a 2-letter abbreviation.
      - `financial_profile` UsEntityKycFinancialProfileInfoV1, required — Financial profile information for the individual <br/><br/> Examples of liquid net worth ranges: <br/> - $0 - $20,000 <br/> - $20,000 - $50,000 <br/> - $50,000 - $100,000 <br/> - $100,000 - $500,000 <br/> - $500,000 - $1,000,000
        - `funding_sources` FundingSource[], required — One or more of the following: employment_income, investments, inheritance, business_income, savings, family.
        - `liquid_net_worth_min` integer, required — The lower bound of the user's liquid net worth (USD). Can be 0 if max is <=$20,000, but otherwise must be within an order of magnitude of the max value.
        - `liquid_net_worth_max` integer, required — The upper bound of the user's liquid net worth (USD).
      - `employment` UsEntityKycEmploymentInfoV1, required — Employment information for the individual
        - `employment_status` 'UNEMPLOYED' | 'EMPLOYED' | 'STUDENT' | 'RETIRED', required
        - `employer_name` string, nullable — The name of the employer if the user is employed.
        - `employer_address` string, nullable — The employer's address if the user is employed.
        - `employment_position` string, nullable — The user's position if they are employed.
      - `risk_disclosure` UsEntityKycRiskDisclosureInfoV1, required — Risk information about the individual <br/><br/> Fields denote if the account owner falls under each category defined by FINRA rules. If any of the answers is true (yes), additional verifications may be required before US account approval.
        - `is_control_person` boolean, required — Whether the individual holds a controlling position in a publicly traded company, is a member of the board of directors, or has policy making abilities in a publicly traded company.
        - `is_affiliated_exchange_or_finra` boolean, required — Whether the individual is affiliated with any exchanges or FINRA.
        - `is_politically_exposed` boolean, required — Whether the individual is politically exposed.
        - `immediate_family_exposed` boolean, required — If the individual's immediate family member (sibling, husband/wife, child, parent) is either politically exposed or holds a control position.
      - `trusted_contact` UsEntityTrustedContactInfoV1, required — Information for a trusted contact person for the individual. More information: <br/> - <a href="https://www.investor.gov/introduction-investing/general-resources/news-alerts/alerts-bulletins/investor-bulletins-trusted-contact" target="_blank" rel="noopener noreferrer">Investor.gov - Trusted Contact</a> <br/> - <a href="https://www.finra.org/investors/insights/trusted-contact" target="_blank" rel="noopener noreferrer">FINRA - Trusted Contact</a>
        - `given_name` string, required — The given name of the trusted contact
        - `family_name` string, required — The family name of the trusted contact
        - `email_address` string, nullable — The email address of the trusted contact. At least one of email_address or phone_number is required.
        - `phone_number` string, nullable — The phone number of the trusted contact. At least one of email_address or phone_number is required.
      - `alpaca_customer_agreement` AlpacaCustomerAgreementInfoV1, required — Information to affirm that the individual has read, agreed to, and signed Alpaca's customer agreement, found here: https://files.alpaca.markets/disclosures/library/AcctAppMarginAndCustAgmt.pdf
        - `signed_at` string, date-time, required — The timestamp the agreement was signed.
        - `ip_address` string, ip, required — The IP address from where the individual signed the agreement.
      - `kyc_metadata` UsEntityKycMetadataV1, required — Metadata about the KYC check.
        - `ref_id` string, required — Your unique identifier for the KYC check.
        - `check_initiated_at` string, date-time, required — Start datetime of KYC check.
        - `check_completed_at` string, date-time, required — Completion datetime of KYC check.
        - `ip_address` string, ip, required — IP address of applicant at time of KYC check.
      - `data_citation` UsEntityKycCitationInfoV1, required — Data source citations for a KYC check.
        - `address_sources` string[], required — List of sources for address verification
        - `date_of_birth_sources` string[], required — List of sources for date of birth verification
        - `tax_id_sources` string[], required — List of sources for tax ID verification
      - `aml_check` UsEntityAmlCheckInfoV1, required — AML check information for this individual. If any of the checks have a match, provide details about the matches or hits found. The individual will be marked as high risk and be subject to manual review.
        - `ref_id` string, required — Your unique identifier for the AML check.
        - `check_created_at` string, date-time, required — Datetime that this AML check was created.
        - `is_politically_exposed_person_match` boolean, required — Whether there was a match in the politically exposed person (PEP) check.
        - `is_adverse_media_match` boolean, required — Whether there was a match in the adverse media check.
        - `is_sanctions_match` boolean, required — Whether there was a match in the sanctions check.
        - `is_monitored_lists_match` boolean, required — Whether there was a match in the monitored lists check.
        - `records` string[], required — If any of the checks have a match, provide details about the matches or hits found.
      - `non_professional_trader_attestation` UsNonProfessionalTraderAttestationV1, required — The non-professional trader property is a self-attestation for US customers that can affect the metered realtime data fees. This field must be updated when if there is a change in the user's attestation. This field may also be modified by Dinari compliance team. For more information, please see the US Customers Integration Guide.
        - `is_non_professional_trader` boolean, required — Whether the individual attests to being a non-professional trader.
        - `attestation_dt` string, date-time, required — Datetime when the attestation was made.
      - `us_immigration_info` UsEntityKycUsImmigrationInfoV1 — US immigration information for this individual. Required if the individual is not a US citizen.
        - `is_permanent_resident` boolean, required — Whether the individual is a US permanent resident (green card holder).
        - `country_of_birth` string, required — Country where the individual was born.
        - `visa_type` 'B1' | 'B2' | 'DACA' | 'E1' | 'E2' | 'E3' | 'F1' | 'G4' | 'H1B' | 'J1' | 'L1' | 'Other' | 'O1' | 'TN1'
        - `visa_expiration_date` string, date, nullable — Expiration date of the visa. Required if visa_type is provided.
        - `departure_from_us_date` string, date, nullable — Date the individual is scheduled to leave the US. Required for B1 and B2 visas.
    - `provider_name` string, required — Name of the KYC provider that provided the KYC information.
    - `jurisdiction` 'US' — Jurisdiction of the KYC check.

## Response `201`

Created

- union
  - BaselineKyc — KYC information for an `Entity` in the baseline jurisdiction.
    - `id` string, uuid, required — ID of the KYC check.
    - `status` 'PASS' | 'FAIL' | 'PENDING' | 'INCOMPLETE' | 'NEEDS_REVIEW', required
    - `checked_dt` string, date-time, nullable — Datetime when the KYC was last checked. ISO 8601 timestamp.
    - `data` BaselineKycCheckDataV0 — KYC data for an `Entity` in the BASELINE jurisdiction.
      - `country_code` string, required — Country of citizenship or home country of the organization. ISO 3166-1 alpha 2 country code.
      - `last_name` string, required — Last name of the person.
      - `address_country_code` string, required — Country of residence. ISO 3166-1 alpha 2 country code.
      - `first_name` string, nullable — First name of the person.
      - `middle_name` string, nullable — Middle name of the user
      - `email` string, nullable — Email address.
      - `tax_id_number` string, nullable — ID number of the official tax document of the country the entity belongs to.
      - `birth_date` string, date, nullable — Birth date of the individual. In ISO 8601 format, YYYY-MM-DD.
      - `address_street_1` string, nullable — Street address of address.
      - `address_street_2` string, nullable — Extension of address, usually apartment or suite number.
      - `address_city` string, nullable — City of address. Not all international addresses use this attribute.
      - `address_subdivision` string, nullable — State or subdivision of address. In the US, this should be the unabbreviated name of the state. Not all international addresses use this attribute.
      - `address_postal_code` string, nullable — Postal code of residence address. Not all international addresses use this attribute.
    - `jurisdiction` 'BASELINE' — Jurisdiction of the KYC check.
  - UsKyc — KYC information for an `Entity` in the US jurisdiction.
    - `id` string, uuid, required — ID of the KYC check.
    - `status` 'PASS' | 'FAIL' | 'PENDING' | 'INCOMPLETE' | 'NEEDS_REVIEW', required
    - `checked_dt` string, date-time, nullable — Datetime when the KYC was last checked. ISO 8601 timestamp.
    - `data` UsKycCheckDataV1 — KYC data for an `Entity` in the US jurisdiction.
      - `identity` UsKycIdentityDataV1, required — Identity information for the individual
        - `given_name` string, required — The first/given name of the user.
        - `family_name` string, required — The last name (surname) of the user.
        - `email_address` string, required — Email address of the applicant.
        - `phone_number` string, required — Phone number should include the country code, format: “+15555555555”
        - `street_address` string, required — Street address of the applicant.
        - `city` string, required — City of the applicant.
        - `country_of_tax_residence` 'US', required — Country of residency of the applicant. Must be 'US'.
        - `postal_code` string, required — Postal code of the applicant.
        - `date_of_birth` string, date, required — Date of birth of the applicant.
        - `tax_id` string, required — Social Security Number (SSN) or Tax Identification Number (TIN) of the applicant.
        - `country_of_citizenship` string, required — Nationality of the applicant.
        - `middle_name` string, nullable — The middle name of the user.
        - `unit` string, nullable — The specific apartment number if applicable
        - `state` string, nullable — State of the applicant. Required if the applicant resides in the US as a 2-letter abbreviation.
      - `financial_profile` UsEntityKycFinancialProfileInfoV1, required — Financial profile information for the individual <br/><br/> Examples of liquid net worth ranges: <br/> - $0 - $20,000 <br/> - $20,000 - $50,000 <br/> - $50,000 - $100,000 <br/> - $100,000 - $500,000 <br/> - $500,000 - $1,000,000
        - `funding_sources` FundingSource[], required — One or more of the following: employment_income, investments, inheritance, business_income, savings, family.
        - `liquid_net_worth_min` integer, required — The lower bound of the user's liquid net worth (USD). Can be 0 if max is <=$20,000, but otherwise must be within an order of magnitude of the max value.
        - `liquid_net_worth_max` integer, required — The upper bound of the user's liquid net worth (USD).
      - `employment` UsEntityKycEmploymentInfoV1, required — Employment information for the individual
        - `employment_status` 'UNEMPLOYED' | 'EMPLOYED' | 'STUDENT' | 'RETIRED', required
        - `employer_name` string, nullable — The name of the employer if the user is employed.
        - `employer_address` string, nullable — The employer's address if the user is employed.
        - `employment_position` string, nullable — The user's position if they are employed.
      - `risk_disclosure` UsEntityKycRiskDisclosureInfoV1, required — Risk information about the individual <br/><br/> Fields denote if the account owner falls under each category defined by FINRA rules. If any of the answers is true (yes), additional verifications may be required before US account approval.
        - `is_control_person` boolean, required — Whether the individual holds a controlling position in a publicly traded company, is a member of the board of directors, or has policy making abilities in a publicly traded company.
        - `is_affiliated_exchange_or_finra` boolean, required — Whether the individual is affiliated with any exchanges or FINRA.
        - `is_politically_exposed` boolean, required — Whether the individual is politically exposed.
        - `immediate_family_exposed` boolean, required — If the individual's immediate family member (sibling, husband/wife, child, parent) is either politically exposed or holds a control position.
      - `trusted_contact` UsEntityTrustedContactInfoV1, required — Information for a trusted contact person for the individual. More information: <br/> - <a href="https://www.investor.gov/introduction-investing/general-resources/news-alerts/alerts-bulletins/investor-bulletins-trusted-contact" target="_blank" rel="noopener noreferrer">Investor.gov - Trusted Contact</a> <br/> - <a href="https://www.finra.org/investors/insights/trusted-contact" target="_blank" rel="noopener noreferrer">FINRA - Trusted Contact</a>
        - `given_name` string, required — The given name of the trusted contact
        - `family_name` string, required — The family name of the trusted contact
        - `email_address` string, nullable — The email address of the trusted contact. At least one of email_address or phone_number is required.
        - `phone_number` string, nullable — The phone number of the trusted contact. At least one of email_address or phone_number is required.
      - `alpaca_customer_agreement` AlpacaCustomerAgreementInfoV1, required — Information to affirm that the individual has read, agreed to, and signed Alpaca's customer agreement, found here: https://files.alpaca.markets/disclosures/library/AcctAppMarginAndCustAgmt.pdf
        - `signed_at` string, date-time, required — The timestamp the agreement was signed.
        - `ip_address` string, ip, required — The IP address from where the individual signed the agreement.
      - `kyc_metadata` UsEntityKycMetadataV1, required — Metadata about the KYC check.
        - `ref_id` string, required — Your unique identifier for the KYC check.
        - `check_initiated_at` string, date-time, required — Start datetime of KYC check.
        - `check_completed_at` string, date-time, required — Completion datetime of KYC check.
        - `ip_address` string, ip, required — IP address of applicant at time of KYC check.
      - `data_citation` UsEntityKycCitationInfoV1, required — Data source citations for a KYC check.
        - `address_sources` string[], required — List of sources for address verification
        - `date_of_birth_sources` string[], required — List of sources for date of birth verification
        - `tax_id_sources` string[], required — List of sources for tax ID verification
      - `aml_check` UsEntityAmlCheckInfoV1, required — AML check information for this individual. If any of the checks have a match, provide details about the matches or hits found. The individual will be marked as high risk and be subject to manual review.
        - `ref_id` string, required — Your unique identifier for the AML check.
        - `check_created_at` string, date-time, required — Datetime that this AML check was created.
        - `is_politically_exposed_person_match` boolean, required — Whether there was a match in the politically exposed person (PEP) check.
        - `is_adverse_media_match` boolean, required — Whether there was a match in the adverse media check.
        - `is_sanctions_match` boolean, required — Whether there was a match in the sanctions check.
        - `is_monitored_lists_match` boolean, required — Whether there was a match in the monitored lists check.
        - `records` string[], required — If any of the checks have a match, provide details about the matches or hits found.
      - `non_professional_trader_attestation` UsNonProfessionalTraderAttestationV1, required — The non-professional trader property is a self-attestation for US customers that can affect the metered realtime data fees. This field must be updated when if there is a change in the user's attestation. This field may also be modified by Dinari compliance team. For more information, please see the US Customers Integration Guide.
        - `is_non_professional_trader` boolean, required — Whether the individual attests to being a non-professional trader.
        - `attestation_dt` string, date-time, required — Datetime when the attestation was made.
      - `us_immigration_info` UsEntityKycUsImmigrationInfoV1 — US immigration information for this individual. Required if the individual is not a US citizen.
        - `is_permanent_resident` boolean, required — Whether the individual is a US permanent resident (green card holder).
        - `country_of_birth` string, required — Country where the individual was born.
        - `visa_type` 'B1' | 'B2' | 'DACA' | 'E1' | 'E2' | 'E3' | 'F1' | 'G4' | 'H1B' | 'J1' | 'L1' | 'Other' | 'O1' | 'TN1'
        - `visa_expiration_date` string, date, nullable — Expiration date of the visa. Required if visa_type is provided.
        - `departure_from_us_date` string, date, nullable — Date the individual is scheduled to leave the US. Required for B1 and B2 visas.
    - `jurisdiction` 'US' — Jurisdiction of the KYC check.

## Other responses

- `422` — Unprocessable Entity
- `default` — Default error response

---

[API](https://skmtc.net/dinaricrypto/apis/dinari-enterprise-api.md) · [All operations](https://skmtc.net/dinaricrypto/apis/dinari-enterprise-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/dinaricrypto/dinari-enterprise-api/revisions/5403e9118588/schema)
