Modern Treasury LegalEntity API

The LegalEntity API from Modern Treasury — 3 operation(s) for legalentity.

OpenAPI Specification

modern-treasury-legalentity-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Modern Treasury AccountCapability LegalEntity API
  version: v1
  contact:
    name: Modern Treasury Engineering Team
    url: https://moderntreasury.com
  description: The Modern Treasury REST API. Please see https://docs.moderntreasury.com for more details.
servers:
- url: http://localhost:3000
- url: https://app.moderntreasury.com
tags:
- name: LegalEntity
paths:
  /api/legal_entities:
    get:
      summary: list legal_entities
      tags:
      - LegalEntity
      operationId: listLegalEntities
      description: Get a list of all legal entities.
      security:
      - basic_auth: []
      parameters:
      - name: after_cursor
        in: query
        schema:
          type: string
          nullable: true
        required: false
      - name: per_page
        in: query
        required: false
        schema:
          type: integer
      - name: legal_entity_type
        in: query
        schema:
          type: string
          enum:
          - business
          - individual
        required: false
      - name: status
        in: query
        schema:
          type: string
          enum:
          - pending
          - active
          - suspended
          - denied
        required: false
      - name: show_deleted
        in: query
        required: false
        schema:
          type: string
      - name: external_id
        in: query
        schema:
          type: string
        required: false
        description: An optional user-defined 180 character unique identifier.
      - $ref: '#/components/parameters/metadata_query'
      responses:
        '200':
          description: successful
          headers:
            X-After-Cursor:
              schema:
                type: string
                nullable: true
              required: false
              description: The cursor for the next page. Including this in a call as `after_cursor` will return the next page.
            X-Per-Page:
              schema:
                type: integer
                nullable: true
              description: The current `per_page`.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/legal_entity'
    post:
      summary: create legal_entity
      tags:
      - LegalEntity
      operationId: createLegalEntity
      security:
      - basic_auth: []
      parameters:
      - name: Idempotency-Key
        in: header
        required: false
        description: This key should be something unique, preferably something like an UUID.
        schema:
          type: string
      responses:
        '201':
          description: successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/legal_entity'
        '422':
          description: unsuccessful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/legal_entity_create_request'
  /api/legal_entities/{id}:
    parameters:
    - name: id
      in: path
      description: id
      required: true
      schema:
        type: string
    get:
      summary: get legal_entity
      tags:
      - LegalEntity
      operationId: getLegalEntity
      description: Get details on a single legal entity.
      security:
      - basic_auth: []
      parameters:
      - name: Idempotency-Key
        in: header
        required: false
        description: This key should be something unique, preferably something like an UUID.
        schema:
          type: string
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/legal_entity'
        '404':
          description: not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
    patch:
      summary: update legal entity
      tags:
      - LegalEntity
      operationId: updateLegalEntity
      description: Update a legal entity.
      security:
      - basic_auth: []
      parameters: []
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/legal_entity'
        '404':
          description: not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
        '409':
          description: conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
        '422':
          description: unsuccessful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/legal_entity_update_request'
  /api/simulations/legal_entities/{id}/update_status:
    parameters:
    - name: id
      in: path
      description: Legal entity ID
      required: true
      schema:
        type: string
    patch:
      summary: update legal entity status
      tags:
      - LegalEntity
      operationId: updateLegalEntityStatus
      description: Update Legal Entity Status (sandbox only)
      security:
      - basic_auth: []
      parameters: []
      responses:
        '202':
          description: process started
        '405':
          description: not allowed in production
        '422':
          description: unprocessable entity
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/legal_entity_update_status_request'
components:
  schemas:
    legal_entity_regulator:
      type: object
      properties:
        name:
          type: string
          description: Full name of the regulatory body.
        jurisdiction:
          type: string
          description: The country code where the regulator operates in the ISO 3166-1 alpha-2 format (e.g., "US", "CA", "GB").
        registration_number:
          type: string
          description: Registration or identification number with the regulator.
      required:
      - name
      - jurisdiction
      - registration_number
      additionalProperties: false
    legal_entity_update_request:
      type: object
      properties:
        risk_rating:
          type: string
          enum:
          - low
          - medium
          - high
          nullable: true
          description: The risk rating of the legal entity. One of low, medium, high.
        prefix:
          type: string
          nullable: true
          description: An individual's prefix.
        first_name:
          type: string
          nullable: true
          description: An individual's first name.
        middle_name:
          type: string
          nullable: true
          description: An individual's middle name.
        last_name:
          type: string
          nullable: true
          description: An individual's last name.
        suffix:
          type: string
          nullable: true
          description: An individual's suffix.
        preferred_name:
          type: string
          nullable: true
          description: An individual's preferred name.
        citizenship_country:
          type: string
          nullable: true
          description: The country of citizenship for an individual.
        politically_exposed_person:
          type: boolean
          nullable: true
          description: Whether the individual is a politically exposed person.
        date_of_birth:
          type: string
          format: date
          nullable: true
          description: An individual's date of birth (YYYY-MM-DD).
        date_formed:
          type: string
          format: date
          nullable: true
          description: A business's formation date (YYYY-MM-DD).
        business_name:
          type: string
          nullable: true
          description: The business's legal business name.
        doing_business_as_names:
          type: array
          items:
            type: string
            description: A list of "Doing Business As" (DBA) / trade names for a business, different than their legal business name.
        legal_structure:
          type: string
          enum:
          - corporation
          - llc
          - non_profit
          - partnership
          - sole_proprietorship
          - trust
          nullable: true
          description: The business's legal structure.
        phone_numbers:
          type: array
          items:
            type: object
            properties:
              phone_number:
                type: string
            description: A list of phone numbers in E.164 format.
        email:
          type: string
          nullable: true
          description: The entity's primary email.
        website:
          type: string
          nullable: true
          description: The entity's primary website URL.
        business_description:
          type: string
          nullable: true
          description: A description of the business.
        intended_use:
          type: string
          nullable: true
          description: A description of the intended use of the legal entity.
        expected_activity_volume:
          type: integer
          nullable: true
          description: Monthly expected transaction volume in USD.
        country_of_incorporation:
          type: string
          nullable: true
          description: The country code where the business is incorporated in the ISO 3166-1 alpha-2 or alpha-3 formats.
        operating_jurisdictions:
          type: array
          items:
            type: string
          description: A list of countries where the business operates (ISO 3166-1 alpha-2 or alpha-3 codes).
        primary_social_media_sites:
          type: array
          items:
            type: string
          description: A list of primary social media URLs for the business.
        listed_exchange:
          type: string
          nullable: true
          description: ISO 10383 market identifier code.
        ticker_symbol:
          type: string
          nullable: true
          description: Stock ticker symbol for publicly traded companies.
        regulators:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/legal_entity_regulator'
          description: Array of regulatory bodies overseeing this institution.
        third_party_verification:
          $ref: '#/components/schemas/third_party_verification'
          nullable: true
          deprecated: true
          description: Deprecated. Use `third_party_verifications` instead.
        third_party_verifications:
          type: array
          items:
            $ref: '#/components/schemas/third_party_verification'
          description: A list of third-party verifications run by external vendors.
          title: Third Party Verfications
        service_provider_legal_entity_id:
          type: string
          format: uuid
          nullable: true
          description: The UUID of the parent legal entity in the service provider tree.
        metadata:
          type: object
          description: Additional data represented as key-value pairs. Both the key and value must be strings.
          additionalProperties:
            type: string
          example:
            key: value
            foo: bar
            modern: treasury
        external_id:
          type: string
          nullable: true
          description: An optional user-defined 180 character unique identifier.
        bank_settings:
          $ref: '#/components/schemas/legal_entity_bank_setting'
          nullable: true
        wealth_and_employment_details:
          $ref: '#/components/schemas/legal_entity_wealth_employment_detail'
          nullable: true
        addresses:
          type: array
          description: A list of addresses for the entity.
          items:
            $ref: '#/components/schemas/legal_entity_address_create_request'
        identifications:
          type: array
          description: A list of identifications for the legal entity.
          items:
            $ref: '#/components/schemas/identification_create_request'
        industry_classifications:
          type: array
          description: A list of industry classifications for the legal entity.
          items:
            $ref: '#/components/schemas/legal_entity_industry_classification'
    legal_entity_industry_classification:
      type: object
      properties:
        id:
          type: string
          format: uuid
        object:
          type: string
        live_mode:
          type: boolean
          description: This field will be true if this object exists in the live environment or false if it exists in the test environment.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        discarded_at:
          type: string
          format: date-time
          nullable: true
        classification_type:
          type: string
          enum:
          - anzsic
          - bics
          - gics
          - hsics
          - icb
          - isic
          - mgecs
          - nace
          - naics
          - rbics
          - sic
          - sni
          - trbc
          - uksic
          - unspsc
          nullable: false
          description: The classification system of the classification codes.
        classification_codes:
          type: array
          items:
            type: string
          nullable: false
          description: The industry classification codes for the legal entity.
      additionalProperties: false
      minProperties: 8
      required:
      - id
      - object
      - live_mode
      - created_at
      - updated_at
      - discarded_at
      - classification_type
      - classification_codes
    legal_entity_update_status_request:
      type: object
      required:
      - status
      properties:
        status:
          type: string
          enum:
          - active
          - suspended
          - denied
          description: The target status for the legal entity. One of `active`, `suspended`, or `denied`. Valid transitions depend on the current status.
    legal_entity_bank_setting:
      type: object
      properties:
        id:
          type: string
          format: uuid
        object:
          type: string
        live_mode:
          type: boolean
          description: This field will be true if this object exists in the live environment or false if it exists in the test environment.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        discarded_at:
          type: string
          format: date-time
          nullable: true
        enable_backup_withholding:
          type: boolean
          nullable: true
          description: Whether backup withholding is enabled. See more here - https://www.irs.gov/businesses/small-businesses-self-employed/backup-withholding.
        backup_withholding_percentage:
          type: integer
          nullable: true
          description: The percentage of backup withholding to apply to the legal entity.
        privacy_opt_out:
          type: boolean
          nullable: true
          description: Cross River Bank specific setting to opt out of privacy policy.
        regulation_o:
          type: boolean
          nullable: true
          description: It covers, among other types of insider loans, extensions of credit by a member bank to an executive officer, director, or principal shareholder of the member bank; a bank holding company of which the member bank is a subsidiary; and any other subsidiary of that bank holding company.
      additionalProperties: false
      minProperties: 10
      required:
      - id
      - object
      - live_mode
      - created_at
      - updated_at
      - discarded_at
      - enable_backup_withholding
      - backup_withholding_percentage
      - privacy_opt_out
      - regulation_o
    error_message:
      type: object
      properties:
        errors:
          type: object
          properties:
            code:
              type: string
              enum:
              - parameter_invalid
              - parameter_missing
              - resource_not_found
              - not_found
              - forbidden
              - invalid_ip
              - invalid_key
              - header_invalid
              - expired_key
              - conflict
              - too_many_requests
            message:
              type: string
            parameter:
              type: string
      required:
      - errors
    legal_entity_address:
      type: object
      properties:
        id:
          type: string
          format: uuid
        object:
          type: string
        live_mode:
          type: boolean
          description: This field will be true if this object exists in the live environment or false if it exists in the test environment.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        discarded_at:
          type: string
          format: date-time
          nullable: true
        address_types:
          type: array
          items:
            type: string
            enum:
            - business
            - business_registered
            - mailing
            - other
            - po_box
            - residential
          description: The types of this address.
        line1:
          type: string
          nullable: true
        line2:
          type: string
          nullable: true
        locality:
          type: string
          nullable: true
          description: Locality or City.
        region:
          type: string
          nullable: true
          description: Region or State.
        postal_code:
          type: string
          description: The postal code of the address.
          nullable: true
        country:
          type: string
          description: Country code conforms to [ISO 3166-1 alpha-2]
          nullable: true
      additionalProperties: false
      minProperties: 13
      required:
      - id
      - object
      - live_mode
      - created_at
      - updated_at
      - discarded_at
      - address_types
      - line1
      - line2
      - locality
      - region
      - postal_code
      - country
    legal_entity_wealth_employment_detail:
      type: object
      properties:
        id:
          type: string
          format: uuid
        object:
          type: string
        live_mode:
          type: boolean
          description: This field will be true if this object exists in the live environment or false if it exists in the test environment.
        created_at:
          type: string
          format: date-time
        updated_at:
          type: string
          format: date-time
        discarded_at:
          type: string
          format: date-time
          nullable: true
        employment_status:
          type: string
          enum:
          - employed
          - retired
          - self_employed
          - student
          - unemployed
          nullable: true
          description: The employment status of the individual.
        occupation:
          type: string
          enum:
          - consulting
          - executive
          - finance_accounting
          - food_services
          - government
          - healthcare
          - legal_services
          - manufacturing
          - other
          - sales
          - science_engineering
          - technology
          nullable: true
          description: The occupation of the individual.
        industry:
          type: string
          enum:
          - accounting
          - agriculture
          - automotive
          - chemical_manufacturing
          - construction
          - educational_medical
          - food_service
          - finance
          - gasoline
          - health_stores
          - laundry
          - maintenance
          - manufacturing
          - merchant_wholesale
          - mining
          - performing_arts
          - professional_non_legal
          - public_administration
          - publishing
          - real_estate
          - recreation_gambling
          - religious_charity
          - rental_services
          - retail_clothing
          - retail_electronics
          - retail_food
          - retail_furnishing
          - retail_home
          - retail_non_store
          - retail_sporting
          - transportation
          - travel
          - utilities
          nullable: true
          description: The industry of the individual.
        income_source:
          type: string
          enum:
          - family_support
          - government_benefits
          - inheritance
          - investments
          - rental_income
          - retirement
          - salary
          - self_employed
          nullable: true
          description: The source of the individual's income.
        income_state:
          type: string
          nullable: true
          description: The state in which the individual's income is earned.
        income_country:
          type: string
          nullable: true
          description: The country in which the individual's income is earned.
        employer_name:
          type: string
          nullable: true
          description: The name of the employer.
        employer_state:
          type: string
          nullable: true
          description: The state in which the employer is located.
        employer_country:
          type: string
          nullable: true
          description: The country in which the employer is located.
        source_of_funds:
          type: string
          enum:
          - alimony
          - annuity
          - business_owner
          - business_revenue
          - debt_financing
          - general_employee
          - government_benefits
          - homemaker
          - inheritance_gift
          - intercompany_loan
          - investment
          - investor_funding
          - legal_settlement
          - lottery
          - real_estate
          - retained_earnings_or_savings
          - retired
          - retirement
          - salary
          - sale_of_business_assets
          - sale_of_real_estate
          - self_employed
          - senior_executive
          - trust_income
          nullable: true
          description: The source of the individual's funds.
        wealth_source:
          type: string
          enum:
          - business_sale
          - family_support
          - government_benefits
          - inheritance
          - investments
          - other
          - rental_income
          - retirement
          - salary
          - self_employed
          nullable: true
          description: The source of the individual's wealth.
        annual_income:
          type: integer
          nullable: true
          description: The annual income of the individual in USD.
      additionalProperties: false
      minProperties: 18
      required:
      - id
      - object
      - live_mode
      - created_at
      - updated_at
      - discarded_at
      - employment_status
      - occupation
      - industry
      - income_source
      - income_state
      - income_country
      - employer_name
      - employer_state
      - employer_country
      - source_of_funds
      - wealth_source
      - annual_income
    child_legal_entity_create:
      type: object
      properties:
        legal_entity_type:
          type: string
          enum:
          - business
          - individual
          description: The type of legal entity.
        risk_rating:
          type: string
          enum:
          - low
          - medium
          - high
          nullable: true
          description: The risk rating of the legal entity. One of low, medium, high.
        prefix:
          type: string
          nullable: true
          description: An individual's prefix.
        first_name:
          type: string
          nullable: true
          description: An individual's first name.
        middle_name:
          type: string
          nullable: true
          description: An individual's middle name.
        last_name:
          type: string
          nullable: true
          description: An individual's last name.
        suffix:
          type: string
          nullable: true
          description: An individual's suffix.
        preferred_name:
          type: string
          nullable: true
          description: An individual's preferred name.
        citizenship_country:
          type: string
          nullable: true
          description: The country of citizenship for an individual.
        politically_exposed_person:
          type: boolean
          nullable: true
          description: Whether the individual is a politically exposed person.
        date_of_birth:
          type: string
          format: date
          nullable: true
          description: An individual's date of birth (YYYY-MM-DD).
        date_formed:
          type: string
          format: date
          nullable: true
          description: A business's formation date (YYYY-MM-DD).
        business_name:
          type: string
          nullable: true
          description: The business's legal business name.
        doing_business_as_names:
          type: array
          items:
            type: string
            description: A list of "Doing Business As" (DBA) / trade names for a business, different than their legal business name.
        legal_structure:
          type: string
          enum:
          - corporation
          - llc
          - non_profit
          - partnership
          - sole_proprietorship
          - trust
          nullable: true
          description: The business's legal structure.
        phone_numbers:
          type: array
          items:
            type: object
            properties:
              phone_number:
                type: string
            description: A list of phone numbers in E.164 format.
        email:
          type: string
          nullable: true
          description: The entity's primary email.
        website:
          type: string
          nullable: true
          description: The entity's primary website URL.
        business_description:
          type: string
          nullable: true
          description: A description of the business.
        intended_use:
          type: string
          nullable: true
          description: A description of the intended use of the legal entity.
        expected_activity_volume:
          type: integer
          nullable: true
          description: Monthly expected transaction volume in USD.
        country_of_incorporation:
          type: string
          nullable: true
          description: The country code where the business is incorporated in the ISO 3166-1 alpha-2 or alpha-3 formats.
        operating_jurisdictions:
          type: array
          items:
            type: string
          description: A list of countries where the business operates (ISO 3166-1 alpha-2 or alpha-3 codes).
        primary_social_media_sites:
          type: array
          items:
            type: string
          description: A list of primary social media URLs for the business.
        listed_exchange:
          type: string
          nullable: true
          description: ISO 10383 market identifier code.
        ticker_symbol:
          type: string
          nullable: true
          description: Stock ticker symbol for publicly traded companies.
        regulators:
          type: array
          nullable: true
          items:
            $ref: '#/components/schemas/legal_entity_regulator'
          description: Array of regulatory bodies overseeing this institution.
        third_party_verification:
          $ref: '#/components/schemas/third_party_verification'
          nullable: true
          deprecated: true
          description: Deprecated. Use `third_party_verifications` instead.
        third_party_verifications:
          type: array
          items:
            $ref: '#/components/schemas/third_party_verification'
          description: A list of third-party verifications run by external vendors.
          title: Third Party Verfications
        service_provider_legal_entity_id:
          type: string
          format: uuid
          nullable: true
          description: The UUID of the parent legal entity in the service provider tree.
        metadata:
          type: object
          description: Additional data represented as key-value pairs. Both the key and value must be strings.
          additionalProperties:
            type: string
          example:
            key: value
            foo: bar
            modern: treasury
        external_id:
          type: string
          nullable: true
          description: An optional user-defined 180 character unique identifier.
        bank_settings:
          $ref: '#/components/schemas/legal_entity_bank_setting'
          nullable: true
        wealth_and_employment_details:
          $ref: '#/components/schemas/legal_entity_wealth_employment_detail'
          nullable: true
        compliance_details:
          type: object
          nullable: true
          deprecated: true
        addresses:
          type: array
          description: A list of addresses for the entity.
          items:
            $ref: '#/components/schemas/legal_entity_address_create_request'
        identifications:
          type: array
          description: A list of identifications for the legal entity.
          items:
            $ref: '#/components/schemas/identification_create_request'
        documents:
          type: array
          description: A list of documents to attach to the legal entity (e.g. articles of incorporation, certificate of good standing, proof of address).
          items:
            type: object
            properties:
              document_type:
                type: string
                enum:
                - articles_of_incorporation
                - certificate_of_good_standing
                - ein_letter
                - generic
                - identification_back
                - identification_front
                - proof_of_address
                description: A category given to the document, can be `null`.
              file_data:
                type: string
                description: Base64-encoded file content for the document.
              filename:
                type: string
                description: The original filename of the document.
            required:
            - document_type
            - file_data
        industry_classifications:
          type: array
          description: A list of industry classifications for the legal entity.
          items:
            $ref: '#/components/schemas/legal_entity_industry_classification'
        legal_entity_associations:
          type: array
          items:
            $ref: '#/components/schemas/legal_entity_association_inline_create_request'
          nullable: true
          description: The legal entity associations and its child legal entities.
        connection_id:
          type: string
          nullable: true
          description: The connection ID for the connection the legal entity is associated with. Defaults to the id of the connection designated with an is_default value of true or the id of an existing operational connection if only one is available. Pass in a value of null to prevent the connection from being associated with the legal entity.
      additionalProperties: false
      minProperties: 41
    legal_entity_association:
      type: object
      properties:
        id:
          type: string
          format: uuid
        object:
          type: string
        live_mode:
          type: boolean
          description: This field will be true if this object exists in the live environment or false if it

# --- truncated at 32 KB (70 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/modern-treasury/refs/heads/main/openapi/modern-treasury-legalentity-api-openapi.yml