> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://partner.ninjatrader.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://partner.ninjatrader.com/_mcp/server.

# Submit Customer Application Document

POST https://live.tradovateapi.com/v1/customerApplication/submitcustomerapplicationdocument
Content-Type: application/json

### Upload a document for a customer application.

**Available to:** Authenticated users. When uploading on behalf of another user via the `userId` field, the caller must be an organization administrator.

**Environments:** Production

**Rate Limit:** 30 requests per hour with 30-second backoff for exceeding the limit

Use this endpoint to upload a document for a customer application or compliance workflow. The `process` field determines which workflow the document belongs to, and the `documentType` field specifies the type of document being submitted.

A successful request returns a `documentId`. Store this value for reference in subsequent API calls.

**Uploading Documents Before a Subaccount Request**

Organization administrators can use this endpoint to upload documents before submitting a subaccount request. Set `process` to `SubAccountRequest` and set `userId` to the CTA user ID of the trader the subaccount is for.

Upload each document separately by calling this endpoint three times (once per document type).

| Document | `documentType` | `createpartnersubaccountrequest` field |
| ---------------------------- | -------------------------------- | -------------------------------------- |
| Power of Attorney (POA) Form | `POAForm` | `pOAFormDocId` |
| Government ID | `Id` | `governmentDocId` |
| Proof of Address | `AddressVerificationFAFTA` | `addressDocId` |

After collecting all three `documentId` values, pass them to `createpartnersubaccountrequest` as `pOAFormDocId`, `governmentDocId`, and `addressDocId`.

**`base64data` Format**

Documents are submitted inline as base64 data URIs. The `base64data` field must be a data URI with a supported MIME type prefix. The maximum field length is 8,388,608 characters (approximately 6 MB).

```
data:<mime-type>;base64,<base64-encoded-content>
```

Supported MIME types:

- `application/pdf`
- `text/plain`
- `image/<file type>` (for example, `image/png` or `image/jpeg`)

**Process Types**

| Value | Description |
|-------|-------------|
| `Identity` | Used during new account onboarding when users need to upload identity documents for Know Your Customer (KYC) verification. Documents are processed for automated identity verification. |
| `NFA` | Used for uploading documents related to National Futures Association (NFA) registration and compliance requirements. |
| `Bankruptcy` | Used when applicants need to provide bankruptcy discharge paperwork or related documentation. |
| `Watchlist` | Used for uploading documentation related to watchlist and sanctions screening. |
| `Compliance` | General compliance document uploads requested by the compliance team during application review. |
| `AML_FPV` | Anti-Money Laundering (AML) and fraud prevention verification documents, including bank statements and source of funds documentation. |
| `SubAccountRequest` | Used to pre-upload documents for subaccount requests. Returns `documentId` values that can be passed to `createpartnersubaccountrequest` via the `pOAFormDocId`, `governmentDocId`, and `addressDocId` fields. |

**Document Types**

This endpoint supports 86 document types. Use the `documentType` field to specify the type of document you are uploading.

**Identity Documents**

| Value | Description |
|-------|-------------|
| `DrivingLicense` | Driver's license |
| `Passport` | Passport |
| `Id` | Government-issued ID |
| `Visa` | Visa document |
| `SocialSecurityCard` | Social Security card |
| `SSNMiskey` | Social Security Number correction or clarification |
| `ConfirmFullName` | Full name confirmation |
| `ApplicationAndIDNameMismatch` | Name mismatch clarification between application and ID |

**Address Verification**

| Value | Description |
|-------|-------------|
| `UtilityBill` | Utility bill |
| `AddressVerificationFAFTA` | Proof of residential address |
| `CurrentBankStatement` | Current bank statement for address verification |
| `AddressChangeVerification` | Address change verification |
| `AddressVerificationFAFTA` | FAFTA address verification |
| `POBox` | P.O. Box documentation |
| `AddressClarificationDocVsApplication` | Address clarification (document vs. application) |
| `AddressClarificationDocVsConfirmedAV` | Address clarification (document vs. confirmed address) |
| `AddressVerificationLLC` | LLC address verification |
| `AddressVerificationManagingMember` | Managing member address verification |

**Income and Financial**

| Value | Description |
|-------|-------------|
| `SourceOfIncome` | Source of income documentation |
| `AnnualIncomeAmount` | Annual income documentation |
| `NetWorthAmount` | Net worth documentation |
| `LiquidNetWorthAmount` | Liquid net worth documentation |
| `StudentIncome` | Student income documentation |
| `RetirementIncome` | Retirement income documentation |
| `HomemakerIncome` | Homemaker income documentation |
| `UnemployedIncome` | Unemployment income documentation |
| `OwnFunds` | Own funds documentation |
| `ThirdPartyFunds` | Third-party funds documentation |
| `ConfirmationOfDeposits` | Confirmation of deposits |
| `SourceOfRiskCapital` | Source of risk capital documentation |
| `InvestmentType` | Investment type documentation |
| `CompanyFinancials` | Company financial documents |
| `BankSupportingDocument` | Supporting bank documentation |
| `FullTimeTrader` | Full-time trader documentation |

**Trading and Authorization**

| Value | Description |
|-------|-------------|
| `TradingAuthorityPOA` | Trading authority Power of Attorney (POA) |
| `POAForm` | POA form (used for subaccount requests) |
| `AdditionalRiskDisclosure` | Additional risk disclosure |
| `UnderstandingOfFuturesTrading` | Understanding of futures trading |
| `AccountReactivation` | Account reactivation documentation |
| `YearsOfTradingExperience` | Trading experience documentation |
| `Professional` | Professional trader documentation |
| `ConfirmAccountInterest` | Account interest confirmation |
| `ConfirmAffiliations` | Affiliations confirmation |
| `AmendmentApprovingFuturesTrading` | Amendment approving futures trading |

**Tax and Regulatory**

| Value | Description |
|-------|-------------|
| `W8Clarification` | W-8 form clarification |
| `W8Incomplete` | Incomplete W-8 form documentation |
| `W9` | W-9 tax form |
| `HedgeClarification` | Hedge account clarification |
| `NFARegistrationConfirmation` | NFA registration confirmation |
| `EIN` | Employer Identification Number (EIN) documentation |
| `EmployeeAttestationLetter` | Employee attestation letter |
| `NatureOfSelfEmployment` | Nature of self-employment documentation |
| `EmploymentDetails` | Employment details documentation |
| `NatureOfEntity` | Nature of entity documentation |
| `ConfirmIRACustodian` | Individual Retirement Account (IRA) custodian confirmation |
| `IRACustody` | IRA custody documentation |

**Business and Corporate**

| Value | Description |
|-------|-------------|
| `LetterOfAwareness` | Letter of awareness |
| `OfferingCircular` | Offering circular |
| `OperatingAgreement` | Operating agreement |
| `ArticlesOfOrganization` | Articles of organization |
| `StatementOfGoodStanding` | Statement of good standing |
| `CertificateOfGoodStanding` | Certificate of good standing |
| `CorporateBylaws` | Corporate bylaws |
| `ManagingMemberId` | Managing member ID |
| `ShareholderRegister` | Shareholder register |
| `BeneficialOwnerCertification` | Beneficial owner certification |
| `TrustDocuments` | Trust documents |
| `PartnershipDocuments` | Partnership documents |
| `EntityWebsite` | Entity website documentation |

**Compliance and AML**

| Value | Description |
|-------|-------------|
| `AMLBankStatement` | AML bank statement |
| `AMLOwnFundsLetter` | AML own funds letter |
| `BankruptcyDischargePaperwork` | Bankruptcy discharge paperwork |
| `EVS` | EVS verification document |
| `HighRiskApplicant` | High-risk applicant documentation |

**Email and Identity Verification**

| Value | Description |
|-------|-------------|
| `VerifyEmailOwnership` | Email ownership verification |
| `VerifyEmailAnotherName` | Email verification for an account under a different name |
| `VerifyUsernameAnotherName` | Username verification for an account under a different name |
| `VerifyEmailUsernameFinancialWording` | Email or username verification (financial wording) |
| `VerifyEmailUsernameEntityWording` | Email or username verification (entity wording) |

**eSign Documents**

| Value | Description |
|-------|-------------|
| `eSignW9` | Electronically signed W-9 |
| `eSignBeneficialOwnerCertification` | Electronically signed beneficial owner certification |
| `eSignEmployeeAttestationLetter` | Electronically signed employee attestation letter |
| `eSignMarketDataAgreement` | Electronically signed market data agreement |

**Other**

| Value | Description |
|-------|-------------|
| `Other` | Other document type |
| `OtherText` | Other document with text description |
| `AchOther` | Automated Clearing House (ACH)-related document |

**Common Failure Scenarios**

- `filename` is fewer than five or more than 64 characters
- `base64data` exceeds the maximum allowed size (~6 MB)
- `userId` is provided but is not greater than zero
- `customerApplicationId` is provided but is not greater than zero
- Caller is not an organization administrator when `userId` belongs to another user
- Invalid `process` value
- Invalid `documentType` value
- `base64data` is missing the data URI prefix or uses an unsupported MIME type

**Next Steps**

For the subaccount use case, after uploading all three documents, pass the returned `documentId` values to `createpartnersubaccountrequest` as `pOAFormDocId`, `governmentDocId`, and `addressDocId`. See `createpartnersubaccountrequest` for details.

Reference: https://partner.ninjatrader.com/eval/api/rest-api-endpoints/users/submit-customer-application-document

## OpenAPI Specification

```yaml
openapi: 3.1.0
info:
  title: eval
  version: 1.0.0
paths:
  /customerApplication/submitcustomerapplicationdocument:
    post:
      operationId: submit-customer-application-document
      summary: Submit Customer Application Document
      description: >-
        ### Upload a document for a customer application.


        **Available to:** Authenticated users. When uploading on behalf of
        another user via the `userId` field, the caller must be an organization
        administrator.


        **Environments:** Production


        **Rate Limit:** 30 requests per hour with 30-second backoff for
        exceeding the limit


        Use this endpoint to upload a document for a customer application or
        compliance workflow. The `process` field determines which workflow the
        document belongs to, and the `documentType` field specifies the type of
        document being submitted.


        A successful request returns a `documentId`. Store this value for
        reference in subsequent API calls.


        **Uploading Documents Before a Subaccount Request**


        Organization administrators can use this endpoint to upload documents
        before submitting a subaccount request. Set `process` to
        `SubAccountRequest` and set `userId` to the CTA user ID of the trader
        the subaccount is for.


        Upload each document separately by calling this endpoint three times
        (once per document type).


        | Document | `documentType` | `createpartnersubaccountrequest` field |

        | ---------------------------- | -------------------------------- |
        -------------------------------------- |

        | Power of Attorney (POA) Form | `POAForm` | `pOAFormDocId` |

        | Government ID | `Id` | `governmentDocId` |

        | Proof of Address | `AddressVerificationFAFTA` | `addressDocId` |


        After collecting all three `documentId` values, pass them to
        `createpartnersubaccountrequest` as `pOAFormDocId`, `governmentDocId`,
        and `addressDocId`.


        **`base64data` Format**


        Documents are submitted inline as base64 data URIs. The `base64data`
        field must be a data URI with a supported MIME type prefix. The maximum
        field length is 8,388,608 characters (approximately 6 MB).


        ```

        data:<mime-type>;base64,<base64-encoded-content>

        ```


        Supported MIME types:


        - `application/pdf`

        - `text/plain`

        - `image/<file type>` (for example, `image/png` or `image/jpeg`)


        **Process Types**


        | Value | Description |

        |-------|-------------|

        | `Identity` | Used during new account onboarding when users need to
        upload identity documents for Know Your Customer (KYC) verification.
        Documents are processed for automated identity verification. |

        | `NFA` | Used for uploading documents related to National Futures
        Association (NFA) registration and compliance requirements. |

        | `Bankruptcy` | Used when applicants need to provide bankruptcy
        discharge paperwork or related documentation. |

        | `Watchlist` | Used for uploading documentation related to watchlist
        and sanctions screening. |

        | `Compliance` | General compliance document uploads requested by the
        compliance team during application review. |

        | `AML_FPV` | Anti-Money Laundering (AML) and fraud prevention
        verification documents, including bank statements and source of funds
        documentation. |

        | `SubAccountRequest` | Used to pre-upload documents for subaccount
        requests. Returns `documentId` values that can be passed to
        `createpartnersubaccountrequest` via the `pOAFormDocId`,
        `governmentDocId`, and `addressDocId` fields. |


        **Document Types**


        This endpoint supports 86 document types. Use the `documentType` field
        to specify the type of document you are uploading.


        **Identity Documents**


        | Value | Description |

        |-------|-------------|

        | `DrivingLicense` | Driver's license |

        | `Passport` | Passport |

        | `Id` | Government-issued ID |

        | `Visa` | Visa document |

        | `SocialSecurityCard` | Social Security card |

        | `SSNMiskey` | Social Security Number correction or clarification |

        | `ConfirmFullName` | Full name confirmation |

        | `ApplicationAndIDNameMismatch` | Name mismatch clarification between
        application and ID |


        **Address Verification**


        | Value | Description |

        |-------|-------------|

        | `UtilityBill` | Utility bill |

        | `AddressVerificationFAFTA` | Proof of residential address |

        | `CurrentBankStatement` | Current bank statement for address
        verification |

        | `AddressChangeVerification` | Address change verification |

        | `AddressVerificationFAFTA` | FAFTA address verification |

        | `POBox` | P.O. Box documentation |

        | `AddressClarificationDocVsApplication` | Address clarification
        (document vs. application) |

        | `AddressClarificationDocVsConfirmedAV` | Address clarification
        (document vs. confirmed address) |

        | `AddressVerificationLLC` | LLC address verification |

        | `AddressVerificationManagingMember` | Managing member address
        verification |


        **Income and Financial**


        | Value | Description |

        |-------|-------------|

        | `SourceOfIncome` | Source of income documentation |

        | `AnnualIncomeAmount` | Annual income documentation |

        | `NetWorthAmount` | Net worth documentation |

        | `LiquidNetWorthAmount` | Liquid net worth documentation |

        | `StudentIncome` | Student income documentation |

        | `RetirementIncome` | Retirement income documentation |

        | `HomemakerIncome` | Homemaker income documentation |

        | `UnemployedIncome` | Unemployment income documentation |

        | `OwnFunds` | Own funds documentation |

        | `ThirdPartyFunds` | Third-party funds documentation |

        | `ConfirmationOfDeposits` | Confirmation of deposits |

        | `SourceOfRiskCapital` | Source of risk capital documentation |

        | `InvestmentType` | Investment type documentation |

        | `CompanyFinancials` | Company financial documents |

        | `BankSupportingDocument` | Supporting bank documentation |

        | `FullTimeTrader` | Full-time trader documentation |


        **Trading and Authorization**


        | Value | Description |

        |-------|-------------|

        | `TradingAuthorityPOA` | Trading authority Power of Attorney (POA) |

        | `POAForm` | POA form (used for subaccount requests) |

        | `AdditionalRiskDisclosure` | Additional risk disclosure |

        | `UnderstandingOfFuturesTrading` | Understanding of futures trading |

        | `AccountReactivation` | Account reactivation documentation |

        | `YearsOfTradingExperience` | Trading experience documentation |

        | `Professional` | Professional trader documentation |

        | `ConfirmAccountInterest` | Account interest confirmation |

        | `ConfirmAffiliations` | Affiliations confirmation |

        | `AmendmentApprovingFuturesTrading` | Amendment approving futures
        trading |


        **Tax and Regulatory**


        | Value | Description |

        |-------|-------------|

        | `W8Clarification` | W-8 form clarification |

        | `W8Incomplete` | Incomplete W-8 form documentation |

        | `W9` | W-9 tax form |

        | `HedgeClarification` | Hedge account clarification |

        | `NFARegistrationConfirmation` | NFA registration confirmation |

        | `EIN` | Employer Identification Number (EIN) documentation |

        | `EmployeeAttestationLetter` | Employee attestation letter |

        | `NatureOfSelfEmployment` | Nature of self-employment documentation |

        | `EmploymentDetails` | Employment details documentation |

        | `NatureOfEntity` | Nature of entity documentation |

        | `ConfirmIRACustodian` | Individual Retirement Account (IRA) custodian
        confirmation |

        | `IRACustody` | IRA custody documentation |


        **Business and Corporate**


        | Value | Description |

        |-------|-------------|

        | `LetterOfAwareness` | Letter of awareness |

        | `OfferingCircular` | Offering circular |

        | `OperatingAgreement` | Operating agreement |

        | `ArticlesOfOrganization` | Articles of organization |

        | `StatementOfGoodStanding` | Statement of good standing |

        | `CertificateOfGoodStanding` | Certificate of good standing |

        | `CorporateBylaws` | Corporate bylaws |

        | `ManagingMemberId` | Managing member ID |

        | `ShareholderRegister` | Shareholder register |

        | `BeneficialOwnerCertification` | Beneficial owner certification |

        | `TrustDocuments` | Trust documents |

        | `PartnershipDocuments` | Partnership documents |

        | `EntityWebsite` | Entity website documentation |


        **Compliance and AML**


        | Value | Description |

        |-------|-------------|

        | `AMLBankStatement` | AML bank statement |

        | `AMLOwnFundsLetter` | AML own funds letter |

        | `BankruptcyDischargePaperwork` | Bankruptcy discharge paperwork |

        | `EVS` | EVS verification document |

        | `HighRiskApplicant` | High-risk applicant documentation |


        **Email and Identity Verification**


        | Value | Description |

        |-------|-------------|

        | `VerifyEmailOwnership` | Email ownership verification |

        | `VerifyEmailAnotherName` | Email verification for an account under a
        different name |

        | `VerifyUsernameAnotherName` | Username verification for an account
        under a different name |

        | `VerifyEmailUsernameFinancialWording` | Email or username verification
        (financial wording) |

        | `VerifyEmailUsernameEntityWording` | Email or username verification
        (entity wording) |


        **eSign Documents**


        | Value | Description |

        |-------|-------------|

        | `eSignW9` | Electronically signed W-9 |

        | `eSignBeneficialOwnerCertification` | Electronically signed beneficial
        owner certification |

        | `eSignEmployeeAttestationLetter` | Electronically signed employee
        attestation letter |

        | `eSignMarketDataAgreement` | Electronically signed market data
        agreement |


        **Other**


        | Value | Description |

        |-------|-------------|

        | `Other` | Other document type |

        | `OtherText` | Other document with text description |

        | `AchOther` | Automated Clearing House (ACH)-related document |


        **Common Failure Scenarios**


        - `filename` is fewer than five or more than 64 characters

        - `base64data` exceeds the maximum allowed size (~6 MB)

        - `userId` is provided but is not greater than zero

        - `customerApplicationId` is provided but is not greater than zero

        - Caller is not an organization administrator when `userId` belongs to
        another user

        - Invalid `process` value

        - Invalid `documentType` value

        - `base64data` is missing the data URI prefix or uses an unsupported
        MIME type


        **Next Steps**


        For the subaccount use case, after uploading all three documents, pass
        the returned `documentId` values to `createpartnersubaccountrequest` as
        `pOAFormDocId`, `governmentDocId`, and `addressDocId`. See
        `createpartnersubaccountrequest` for details.
      tags:
        - subpackage_users
      parameters:
        - name: Authorization
          in: header
          description: Bearer authentication
          required: true
          schema:
            type: string
      responses:
        '200':
          description: SubmitCustomerApplicationDocumentResponse
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SubmitCustomerApplicationDocumentResponse'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubmitCustomerApplicationDocument'
servers:
  - url: https://live.tradovateapi.com/v1
    description: https://live.tradovateapi.com/v1
components:
  schemas:
    SubmitCustomerApplicationDocumentProcess:
      type: string
      enum:
        - AML_FPV
        - Bankruptcy
        - Compliance
        - Identity
        - NFA
        - SubAccountRequest
        - Watchlist
      description: >-
        AML_FPV, Bankruptcy, Compliance, Identity, NFA, SubAccountRequest,
        Watchlist
      title: SubmitCustomerApplicationDocumentProcess
    SubmitCustomerApplicationDocumentDocumentType:
      type: string
      enum:
        - AMLBankStatement
        - AMLOwnFundsLetter
        - AccountReactivation
        - AchOther
        - AdditionalRiskDisclosure
        - AddressChangeVerification
        - AddressClarificationDocVsApplication
        - AddressClarificationDocVsConfirmedAV
        - AddressVerificationFAFTA
        - AddressVerificationLLC
        - AddressVerificationManagingMember
        - AmendmentApprovingFuturesTrading
        - AnnualIncomeAmount
        - ApplicationAndIDNameMismatch
        - ArticlesOfOrganization
        - BankSupportingDocument
        - BankruptcyDischargePaperwork
        - BeneficialOwnerCertification
        - CertificateOfGoodStanding
        - CompanyFinancials
        - ConfirmAccountInterest
        - ConfirmAffiliations
        - ConfirmFullName
        - ConfirmIRACustodian
        - ConfirmationOfDeposits
        - CorporateBylaws
        - CurrentBankStatement
        - DrivingLicense
        - EIN
        - EVS
        - EmployeeAttestationLetter
        - EmploymentDetails
        - EntityWebsite
        - FullTimeTrader
        - HedgeClarification
        - HighRiskApplicant
        - HomemakerIncome
        - IRACustody
        - Id
        - InvestmentType
        - LetterOfAwareness
        - LiquidNetWorthAmount
        - ManagingMemberId
        - NFARegistrationConfirmation
        - NatureOfEntity
        - NatureOfSelfEmployment
        - NetWorthAmount
        - OfferingCircular
        - OperatingAgreement
        - Other
        - OtherText
        - OwnFunds
        - POAForm
        - POBox
        - PartnershipDocuments
        - Passport
        - Professional
        - ResidentialAddressConfirmation
        - RetirementIncome
        - SSNMiskey
        - ShareholderRegister
        - SocialSecurityCard
        - SourceOfIncome
        - SourceOfRiskCapital
        - StatementOfGoodStanding
        - StudentIncome
        - ThirdPartyFunds
        - TradingAuthorityPOA
        - TrustDocuments
        - UnderstandingOfFuturesTrading
        - UnemployedIncome
        - UtilityBill
        - VerifyEmailAnotherName
        - VerifyEmailOwnership
        - VerifyEmailUsernameEntityWording
        - VerifyEmailUsernameFinancialWording
        - VerifyUsernameAnotherName
        - Visa
        - W8Clarification
        - W8Incomplete
        - W9
        - YearsOfTradingExperience
        - eSignBeneficialOwnerCertification
        - eSignEmployeeAttestationLetter
        - eSignMarketDataAgreement
        - eSignW9
      description: >-
        AMLBankStatement, AMLOwnFundsLetter, AccountReactivation, AchOther,
        AdditionalRiskDisclosure, AddressChangeVerification,
        AddressClarificationDocVsApplication,
        AddressClarificationDocVsConfirmedAV, AddressVerificationFAFTA,
        AddressVerificationLLC, AddressVerificationManagingMember,
        AmendmentApprovingFuturesTrading, AnnualIncomeAmount,
        ApplicationAndIDNameMismatch, ArticlesOfOrganization,
        BankSupportingDocument, BankruptcyDischargePaperwork,
        BeneficialOwnerCertification, CertificateOfGoodStanding,
        CompanyFinancials, ConfirmAccountInterest, ConfirmAffiliations,
        ConfirmFullName, ConfirmIRACustodian, ConfirmationOfDeposits,
        CorporateBylaws, CurrentBankStatement, DrivingLicense, EIN, EVS,
        EmployeeAttestationLetter, EmploymentDetails, EntityWebsite,
        FullTimeTrader, HedgeClarification, HighRiskApplicant, HomemakerIncome,
        IRACustody, Id, InvestmentType, LetterOfAwareness, LiquidNetWorthAmount,
        ManagingMemberId, NFARegistrationConfirmation, NatureOfEntity,
        NatureOfSelfEmployment, NetWorthAmount, OfferingCircular,
        OperatingAgreement, Other, OtherText, OwnFunds, POAForm, POBox,
        PartnershipDocuments, Passport, Professional,
        ResidentialAddressConfirmation, RetirementIncome, SSNMiskey,
        ShareholderRegister, SocialSecurityCard, SourceOfIncome,
        SourceOfRiskCapital, StatementOfGoodStanding, StudentIncome,
        ThirdPartyFunds, TradingAuthorityPOA, TrustDocuments,
        UnderstandingOfFuturesTrading, UnemployedIncome, UtilityBill,
        VerifyEmailAnotherName, VerifyEmailOwnership,
        VerifyEmailUsernameEntityWording, VerifyEmailUsernameFinancialWording,
        VerifyUsernameAnotherName, Visa, W8Clarification, W8Incomplete, W9,
        YearsOfTradingExperience, eSignBeneficialOwnerCertification,
        eSignEmployeeAttestationLetter, eSignMarketDataAgreement, eSignW9
      title: SubmitCustomerApplicationDocumentDocumentType
    SubmitCustomerApplicationDocumentPersonType:
      type: string
      enum:
        - Applicant
        - EntityOpener
        - EntityResponsiblePerson
        - EntityStakeholder1
        - EntityStakeholder2
        - JointApplicant
        - JointThirdPartyPerson
        - SubAccount
        - ThirdPartyPerson
      description: >-
        Applicant, EntityOpener, EntityResponsiblePerson, EntityStakeholder1,
        EntityStakeholder2, JointApplicant, JointThirdPartyPerson, SubAccount,
        ThirdPartyPerson
      title: SubmitCustomerApplicationDocumentPersonType
    SubmitCustomerApplicationDocument:
      type: object
      properties:
        process:
          $ref: '#/components/schemas/SubmitCustomerApplicationDocumentProcess'
          description: >-
            AML_FPV, Bankruptcy, Compliance, Identity, NFA, SubAccountRequest,
            Watchlist
        documentType:
          $ref: '#/components/schemas/SubmitCustomerApplicationDocumentDocumentType'
          description: >-
            AMLBankStatement, AMLOwnFundsLetter, AccountReactivation, AchOther,
            AdditionalRiskDisclosure, AddressChangeVerification,
            AddressClarificationDocVsApplication,
            AddressClarificationDocVsConfirmedAV, AddressVerificationFAFTA,
            AddressVerificationLLC, AddressVerificationManagingMember,
            AmendmentApprovingFuturesTrading, AnnualIncomeAmount,
            ApplicationAndIDNameMismatch, ArticlesOfOrganization,
            BankSupportingDocument, BankruptcyDischargePaperwork,
            BeneficialOwnerCertification, CertificateOfGoodStanding,
            CompanyFinancials, ConfirmAccountInterest, ConfirmAffiliations,
            ConfirmFullName, ConfirmIRACustodian, ConfirmationOfDeposits,
            CorporateBylaws, CurrentBankStatement, DrivingLicense, EIN, EVS,
            EmployeeAttestationLetter, EmploymentDetails, EntityWebsite,
            FullTimeTrader, HedgeClarification, HighRiskApplicant,
            HomemakerIncome, IRACustody, Id, InvestmentType, LetterOfAwareness,
            LiquidNetWorthAmount, ManagingMemberId, NFARegistrationConfirmation,
            NatureOfEntity, NatureOfSelfEmployment, NetWorthAmount,
            OfferingCircular, OperatingAgreement, Other, OtherText, OwnFunds,
            POAForm, POBox, PartnershipDocuments, Passport, Professional,
            ResidentialAddressConfirmation, RetirementIncome, SSNMiskey,
            ShareholderRegister, SocialSecurityCard, SourceOfIncome,
            SourceOfRiskCapital, StatementOfGoodStanding, StudentIncome,
            ThirdPartyFunds, TradingAuthorityPOA, TrustDocuments,
            UnderstandingOfFuturesTrading, UnemployedIncome, UtilityBill,
            VerifyEmailAnotherName, VerifyEmailOwnership,
            VerifyEmailUsernameEntityWording,
            VerifyEmailUsernameFinancialWording, VerifyUsernameAnotherName,
            Visa, W8Clarification, W8Incomplete, W9, YearsOfTradingExperience,
            eSignBeneficialOwnerCertification, eSignEmployeeAttestationLetter,
            eSignMarketDataAgreement, eSignW9
        filename:
          type: string
        base64data:
          type: string
        userId:
          type: integer
          format: int64
        personType:
          $ref: '#/components/schemas/SubmitCustomerApplicationDocumentPersonType'
          description: >-
            Applicant, EntityOpener, EntityResponsiblePerson,
            EntityStakeholder1, EntityStakeholder2, JointApplicant,
            JointThirdPartyPerson, SubAccount, ThirdPartyPerson
        customerApplicationId:
          type: integer
          format: int64
      required:
        - process
        - documentType
        - filename
        - base64data
      title: SubmitCustomerApplicationDocument
    SubmitCustomerApplicationDocumentResponse:
      type: object
      properties:
        errorText:
          type: string
          description: Non-empty if the request failed
        ok:
          type: boolean
        documentId:
          type: integer
          format: int64
      required:
        - ok
      title: SubmitCustomerApplicationDocumentResponse
  securitySchemes:
    bearer_access_token:
      type: http
      scheme: bearer

```

## Examples



**Request**

```json
{
  "process": "AML_FPV",
  "documentType": "AMLBankStatement",
  "filename": "string",
  "base64data": "string"
}
```

**Response**

```json
{
  "ok": true,
  "errorText": "string",
  "documentId": 1
}
```

**SDK Code**

```python
import requests

url = "https://live.tradovateapi.com/v1/customerApplication/submitcustomerapplicationdocument"

payload = {
    "process": "AML_FPV",
    "documentType": "AMLBankStatement",
    "filename": "string",
    "base64data": "string"
}
headers = {
    "Authorization": "Bearer <token>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.json())
```

```javascript
const url = 'https://live.tradovateapi.com/v1/customerApplication/submitcustomerapplicationdocument';
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{"process":"AML_FPV","documentType":"AMLBankStatement","filename":"string","base64data":"string"}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```go
package main

import (
	"fmt"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://live.tradovateapi.com/v1/customerApplication/submitcustomerapplicationdocument"

	payload := strings.NewReader("{\n  \"process\": \"AML_FPV\",\n  \"documentType\": \"AMLBankStatement\",\n  \"filename\": \"string\",\n  \"base64data\": \"string\"\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("Authorization", "Bearer <token>")
	req.Header.Add("Content-Type", "application/json")

	res, _ := http.DefaultClient.Do(req)

	defer res.Body.Close()
	body, _ := io.ReadAll(res.Body)

	fmt.Println(res)
	fmt.Println(string(body))

}
```

```ruby
require 'uri'
require 'net/http'

url = URI("https://live.tradovateapi.com/v1/customerApplication/submitcustomerapplicationdocument")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"process\": \"AML_FPV\",\n  \"documentType\": \"AMLBankStatement\",\n  \"filename\": \"string\",\n  \"base64data\": \"string\"\n}"

response = http.request(request)
puts response.read_body
```

```java
import com.mashape.unirest.http.HttpResponse;
import com.mashape.unirest.http.Unirest;

HttpResponse<String> response = Unirest.post("https://live.tradovateapi.com/v1/customerApplication/submitcustomerapplicationdocument")
  .header("Authorization", "Bearer <token>")
  .header("Content-Type", "application/json")
  .body("{\n  \"process\": \"AML_FPV\",\n  \"documentType\": \"AMLBankStatement\",\n  \"filename\": \"string\",\n  \"base64data\": \"string\"\n}")
  .asString();
```

```php
<?php
require_once('vendor/autoload.php');

$client = new \GuzzleHttp\Client();

$response = $client->request('POST', 'https://live.tradovateapi.com/v1/customerApplication/submitcustomerapplicationdocument', [
  'body' => '{
  "process": "AML_FPV",
  "documentType": "AMLBankStatement",
  "filename": "string",
  "base64data": "string"
}',
  'headers' => [
    'Authorization' => 'Bearer <token>',
    'Content-Type' => 'application/json',
  ],
]);

echo $response->getBody();
```

```csharp
using RestSharp;

var client = new RestClient("https://live.tradovateapi.com/v1/customerApplication/submitcustomerapplicationdocument");
var request = new RestRequest(Method.POST);
request.AddHeader("Authorization", "Bearer <token>");
request.AddHeader("Content-Type", "application/json");
request.AddParameter("application/json", "{\n  \"process\": \"AML_FPV\",\n  \"documentType\": \"AMLBankStatement\",\n  \"filename\": \"string\",\n  \"base64data\": \"string\"\n}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
```

```swift
import Foundation

let headers = [
  "Authorization": "Bearer <token>",
  "Content-Type": "application/json"
]
let parameters = [
  "process": "AML_FPV",
  "documentType": "AMLBankStatement",
  "filename": "string",
  "base64data": "string"
] as [String : Any]

let postData = JSONSerialization.data(withJSONObject: parameters, options: [])

let request = NSMutableURLRequest(url: NSURL(string: "https://live.tradovateapi.com/v1/customerApplication/submitcustomerapplicationdocument")! as URL,
                                        cachePolicy: .useProtocolCachePolicy,
                                    timeoutInterval: 10.0)
request.httpMethod = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data

let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
  if (error != nil) {
    print(error as Any)
  } else {
    let httpResponse = response as? HTTPURLResponse
    print(httpResponse)
  }
})

dataTask.resume()
```