Submit Customer Application Document

### 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 | `ResidentialAddressConfirmation` | `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 | | `ResidentialAddressConfirmation` | 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.

Authentication

AuthorizationBearer

Bearer authentication of the form Bearer <token>, where token is your auth token.

Request

This endpoint expects an object.
processenumRequired
The workflow process type.
documentTypestringRequired
Type of document being submitted. See document type reference above.
filenamestringRequired5-64 characters

Document filename (5-64 characters).

base64datastringRequired<=8388608 characters

Document content as a base64-encoded data URI. Format must be data:<mime-type>;base64,<content>. Supported MIME types are application/pdf, text/plain, and image/*.

userIdlongOptional
Optional. User ID of the person the document is being uploaded for. Must be greater than 0. Requires organization administrator privileges.
personTypeenumOptional
Optional. Type of person. Use SubAccount for subaccount request uploads.
customerApplicationIdlongOptional
Optional. Customer application ID. Must be greater than 0 if provided.

Response

SubmitCustomerApplicationDocumentResponse
okboolean or null
true if the upload succeeded, false otherwise.
documentIdlong or null
ID of the uploaded document. Present on success.
errorTextstring or null
Error message if the upload failed.