Base URL:
Authentication: All API requests require an X-API-KEY header with your API key.
Getting Started
Create a developer account like as:
Navigate to API Keys to generate your API key
Postman Collection
All API requests must include your API key in the request header:
1. Creating an Offering
The offering creation workflow consists of three main steps: registering an issuer account, creating an issuer entity, and creating the offering with associated assets.
Step 1: Register Issuer Account
Creates a user account with authentication credentials for managing the issuer entity and offerings.
Endpoint: POST /register/issuer
Request Body:
Response:
Step 2: Create Issuer Entity
Establishes a legal issuer entity representing the company or organization conducting the offering.
Endpoint: POST /issuers
Request Body:
Response:
Step 3: Create Offering
Creates a new offering with regulatory type, funding goals, investment limits, and timeline. Automatically creates a primary asset.
Endpoint: POST /offerings
Request Body:
Response:
Step 4: Create Additional Assets (Optional)
Creates additional assets for an existing offering to offer multiple types of securities.
Endpoint: POST /assets
Request Body:
Response:
API Calling Flow
Important Notes:
Each step depends on successful completion of the previous step
The issuerId from Step 2 is required for Step 3
The offeringId from Step 3 is required for Step 4
Store returned IDs for subsequent API calls
All offerings initially have status "PENDING" for compliance review
2. Creating an Investor Account
This section covers the complete process of creating and setting up investor accounts. The workflow varies by account type and includes compliance steps for Regulation D offerings.
Investor Account Types
The platform supports three investor account types:
INDIVIDUAL: Single person investor account
JOINT: Jointly held account (requires 2 individuals with shared ownership)
LEGAL_ENTITY: Business entity investor account (requires entity information and authorized signers)
Step 1: Register Investor User
Creates user authentication credentials for the investor.
Endpoint: POST /auth/register/investor
Request Body:
Response:
Key Fields:
userId: Unique identifier for the registered user (required for creating investor accounts)
site: The investor portal domain where this user will access their account
Step 2: Create Investor Account
Creates the investor account structure and defines the account type.
Endpoint: POST /investor-accounts
Request Body:
Response:
Key Fields:
id: Unique investor account identifier (required for creating individuals/entities)
investorAccountType: Determines the account structure
regAQualified, regCfQualified, regDQualified: Qualification status for different regulations
setupStatus: Current stage of account setup
Next Steps by Account Type:
INDIVIDUAL: Proceed to Step 3 (Create Individual)
JOINT: Proceed to Step 3, then create a second individual with role: "JOINT"
LEGAL_ENTITY: Proceed to Step 4 (Create Legal Entity)
Step 3: Create Individual
Creates a comprehensive individual profile with personal, financial, and compliance information.
Endpoint: POST /individuals
Request Body:
Response:
For Joint Accounts:
Create a second individual with role: "JOINT" and appropriate ownership percentage (typically 50/50).
Step 4: Create Legal Entity (For Legal Entity Accounts Only)
Creates a legal entity profile with business information.
Endpoint: POST /legal-entities
Request Body:
Response:
Key Fields:
ein: Employer Identification Number (tax ID)
companyType: Legal structure (LLC, CORPORATION, PARTNERSHIP, TRUST, etc.)
Regulation D (Reg D) Compliance Steps
For Regulation D offerings, additional steps are required to verify accredited investor status.
Step 5: Add AIC Questionnaire
Updates an individual's profile with an Accredited Investor Certification questionnaire.
Endpoint: PATCH /individuals/{individualId}
Request Body:
Questionnaire Fields:
investment_objective: Primary investment goal
investment_experience: Years of investment experience
risk_willingness: Risk tolerance level
equities_allocation, bonds_allocation, etc.: Portfolio composition
overall_portfolio_percentage: Percentage of portfolio in alternative investments
investment_time_horizon: Expected investment duration
Step 6: Upload AIC Supporting Documents
Uploads documents to verify accredited investor status.
Endpoint: POST /files?targetId={individual_id}&category=Investor+Accreditation&label={LABEL}&name={filename}&metadata={metadata_json}
Query Parameters:
targetId: Individual ID (e.g., individual_xxxxxx)
category: Always Investor Accreditation
label: Document type (e.g., PROOF_OF_NET_WORTH)
metadata: JSON string with file-specific metadata
Request Body:
Field
Type
Required
Description
PDF, image, or document file
Response:
Step 7: Initialize/Get Individual AIC
Retrieves or initializes the AIC record for an individual.
Endpoint: GET /individual/{individualId}/aic
Response:
Step 8: Attach AIC Documentation
Attaches accreditation files and metadata to verify investor status.
Endpoint: PUT /individual/{individualId}/aic
Request Body:
Accreditation Methods:
NET_WORTH: Bank statements, brokerage statements
PROFESSIONAL: Professional certifications/licenses
EMPLOYEE: Knowledgeable employee status
Response:
API Calling Flows for Investor Accounts
Individual Investor Account Flow
Joint Investor Account Flow
Legal Entity Investor Account Flow
3. Attaching KYC Documentation
After creating an investor account, you need to complete the Know Your Customer (KYC) verification process by uploading identity documents. This section covers the complete KYC document submission workflow.
KYC Document Types
The platform supports three types of identity documents:
PASSPORT: International passport
DRIVER_LICENSE: State-issued driver's license
STATE_ID: State-issued identification card
Step 1: Get Investor Accounts
Retrieve the list of investor accounts to select the individual for KYC verification.
Endpoint: GET /investor-accounts
Response:
json
Step 2: Upload KYC Document Files
Upload the required identity documents. The document front image is mandatory, while the selfie is optional.
Endpoint: POST /files?name={filename}&category=kyc-document&label={LABEL}&targetId={individual_id}
Query Parameters:
name: Original filename (e.g., Passport_01.png)
category: Always kyc-document
label: Document type label
For document front: KYC_DOCUMENT_FRONT
For document back (driver's license/state ID): KYC_DOCUMENT_BACK
targetId: Individual ID (e.g., individual_xxxxxx)
Request Body:
Field
Type
Required
Description
Image file (PNG, JPG, JPEG, PDF)
Example: Upload Document Front (Mandatory)
Request:
Response:
json
Example: Upload Selfie (Optional)
Request:
Response:
json
Step 3: Submit KYC Record
After uploading the required documents, submit the KYC verification record with document details and file references.
Endpoint: POST /kyc
Request Body:
For Passport:
json
For Driver's License:
json
For State ID:
json
Key Fields:
individualId: The individual ID for KYC verification
kycDocumentType: Type of document (PASSPORT, DRIVER_LICENSE, STATE_ID)
kycDocumentId: Document number/ID
kycDocumentIssuer: Issuing country (for passport) or state (for driver's license/state ID)
kycProvider: KYC verification provider (default: WITH_PERSONA)
kycDocumentFrontFileId: Mandatory - File ID of document front image
kycDocumentBackFileId: Required for DRIVER_LICENSE and STATE_ID - File ID of document back image
kycSelfieFileId: Optional - File ID of selfie image
Response:
json
KYC Attachment Flow
Complete KYC Workflow
Document Requirements by Type
Document Type
Front Image
Back Image
Selfie
Issuer Format
Country Code (e.g., BR, US)
State Code (e.g., CA, NY)
State Code (e.g., TX, FL)
Important Notes
File Upload Order: Always upload files before submitting the KYC record
File Categories: Use kyc-document category for all KYC-related files
Document Front: Mandatory for all document types
Document Back: Required only for DRIVER_LICENSE and STATE_ID
Selfie: Optional for all document types
Supported Formats: PNG, JPG, JPEG, PDF
Provider: Default KYC provider is WITH_PERSONA
Status Flow: KYC records start with PENDING status and are processed by the verification provider
4. How to Place a Trade
The place trade workflow consists of multiple sequential steps to create and finalize an investment trade. This process involves selecting accounts, choosing offerings and assets, managing cart items, configuring payment methods, and checking out.
Step 1: Get User's Investor Accounts
Description:
Retrieves all investor accounts associated with a user to select which account will be used for the trade.
Example Request:
Response:
Step 2: Browse Available Offerings
Description:
Retrieves a paginated list of available offerings for investment.
Example Request:
Response:
Step 3: Get Offering Details with Assets
Description:
Retrieves detailed information about a specific offering, including all available assets for purchase.
Query Parameters:
include - Related entities to include (use assets to get asset details)
Example Request:
Response:
Step 4: Retrieve or Create Cart
Description:
Retrieves the current cart for a user. If no cart exists, a new one is automatically created.
Query Parameters:
Example Request:
Response:
Step 5a: Add Asset to Cart (Create Trade Line Item)
Description:
Adds an asset to the cart by creating a new trade line item. If no cart exists for the user, one will be created automatically.
Query Parameters:
Request Body:
Example Request:
Response:
Step 5b: Update Existing Trade Line Item
Description:
Updates the quantity of an existing trade line item in the cart.
Request Body:
Example Request:
Response:
Step 6a: Get Payment Methods
Description:
Retrieves all payment methods associated with a user.
Query Parameters:
Example Request:
Response:
Step 6b: Create Payment Method (if needed)
Description:
Creates a new payment method for the user.
Query Parameters:
Request Body:
Example Request:
Response:
Step 7: Update Cart with Investor Account and Payment Method
Description:
Associates an investor account and payment method with the cart to prepare for checkout.
Request Body:
Example Request:
Response:
Step 8: Upload Subscription Agreement
Description:
Uploads a subscription agreement document for the trade.
Query Parameters:
name - File name (e.g., subscription-agreement.pdf)
category - offering-document
label - SUBSCRIPTION_AGREEMENT
targetId - Trade ID (cart ID)
Content-Type:
multipart/form-data
Example Request:
Response:
Step 9: Attach Subscription Agreement to Trade Line Item
Description:
Attaches an uploaded subscription agreement to a specific trade line item and records signature statuses.
Request Body:
Example Request:
Response:
Step 10: Checkout Cart (Place Trade)
Description:
Finalizes the cart and places the trade. This transitions the cart from CART status to a placed trade status.
Request Body:
Example Request:
Response:
Complete Workflow Summary
Sequential API Calls:
GET /investor-accounts - Select investor account
GET /offerings - Browse available offerings
GET /offerings/{id}?include=assets - Get offering details with assets
GET /carts?userId={userId} - Retrieve or create cart
POST /trade-line-items?userId={userId} - Add asset to cart (or PATCH /trade-line-items/{id} to update existing)
GET /payment-methods?userId={userId} - Get payment methods (or POST /payment-methods?userId={userId} to create new)
PATCH /carts/{id} - Attach investor account and payment method
POST /files - Upload subscription agreement
POST /trades/{id}/attach-subdoc - Attach document to line item (optional)
POST /carts/checkout - Place the trade
Quick Reference
Step
Method
Endpoint
Purpose
Get user's investor accounts
Browse available offerings
/offerings/{id}?include=assets
/trade-line-items?userId={userId}
Update line item quantity
/payment-methods?userId={userId}
/payment-methods?userId={userId}
Update cart with account & payment
Upload subscription agreement
/trades/{id}/attach-subdoc
Attach subdoc to line item
For additional support or questions, please refer to:
Postman Collection for Testing