openapi: 3.0.1 info: title: Modern Treasury AccountCapability Counterparty 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: Counterparty paths: /api/counterparties/{id}/collect_account: post: summary: collect account details tags: - Counterparty operationId: collectAccountDetails description: Send an email requesting account details. 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 - name: id in: path schema: type: string description: counterparty id required: true responses: '200': description: successful content: application/json: schema: $ref: '#/components/schemas/counterparty_collect_account_response' '422': description: unsuccessful content: application/json: schema: $ref: '#/components/schemas/error_message' requestBody: content: application/json: schema: $ref: '#/components/schemas/counterparty_collect_account_request' /api/counterparties: get: summary: list counterparties tags: - Counterparty operationId: listCounterparties description: Get a paginated list of all counterparties. 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: name in: query required: false description: Performs a partial string match of the name field. This is also case insensitive. schema: type: string - name: email in: query schema: type: string format: email required: false description: Performs a partial string match of the email field. This is also case insensitive. - name: external_id in: query schema: type: string required: false description: An optional user-defined 180 character unique identifier. - name: legal_entity_id in: query schema: type: string required: false description: Filters for counterparties with the given legal entity ID. - $ref: '#/components/parameters/metadata_query' - name: created_at_lower_bound in: query schema: type: string format: date-time required: false description: Used to return counterparties created after some datetime. - name: created_at_upper_bound in: query schema: type: string format: date-time required: false description: Used to return counterparties created before some datetime. 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/counterparty' '400': description: bad_request '401': description: unsuccessful content: application/json: schema: $ref: '#/components/schemas/error_message' post: summary: create counterparty tags: - Counterparty operationId: createCounterparty description: Create a new counterparty. 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/counterparty' '415': description: unsuccessful 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/counterparty_create_request' /api/counterparties/{id}: parameters: - name: id in: path schema: type: string description: The id of an existing counterparty. required: true get: summary: show counterparty tags: - Counterparty operationId: getCounterparty description: Get details on a single counterparty. security: - basic_auth: [] responses: '200': description: successful content: application/json: schema: $ref: '#/components/schemas/counterparty' '404': description: not found content: application/json: schema: $ref: '#/components/schemas/error_message' patch: summary: update counterparty tags: - Counterparty operationId: updateCounterparty description: Updates a given counterparty with new information. security: - basic_auth: [] parameters: [] responses: '200': description: successful content: application/json: schema: $ref: '#/components/schemas/counterparty' '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/counterparty_update_request' delete: summary: delete counterparty tags: - Counterparty operationId: deleteCounterparty description: Deletes a given counterparty. security: - basic_auth: [] responses: '204': description: successful 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 external_account_type: type: string enum: - base_wallet - cash - checking - crypto_wallet - ethereum_wallet - general_ledger - loan - non_resident - other - overdraft - polygon_wallet - savings - solana_wallet description: Can be `checking`, `savings` or `other`. counterparty_update_request: type: object properties: name: type: string description: A new name for the counterparty. Will only update if passed. email: type: string format: email description: A new email for the counterparty. metadata: type: object additionalProperties: type: string description: Additional data in the form of key-value pairs. Pairs can be removed by passing an empty string or `null` as the value. send_remittance_advice: type: boolean description: If this is `true`, Modern Treasury will send an email to the counterparty whenever an associated payment order is sent to the bank. legal_entity_id: type: string format: uuid description: The id of the legal entity. nullable: true taxpayer_identifier: type: string description: Either a valid SSN or EIN. external_id: type: string description: An optional user-defined 180 character unique identifier. nullable: true 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 counterparty: 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 name: type: string description: A human friendly name for this counterparty. nullable: true accounts: type: array items: 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 account_type: $ref: '#/components/schemas/external_account_type' party_type: type: string enum: - business - individual nullable: true description: Either `individual` or `business`. party_address: $ref: '#/components/schemas/address' description: The address associated with the owner or `null`. name: type: string nullable: true description: A nickname for the external account. This is only for internal usage and won't affect any payments account_details: type: array items: $ref: '#/components/schemas/account_detail' routing_details: type: array items: $ref: '#/components/schemas/routing_detail' external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. metadata: type: object additionalProperties: type: string example: key: value foo: bar modern: treasury description: Additional data represented as key-value pairs. Both the key and value must be strings. party_name: type: string description: The legal name of the entity which owns the account. contact_details: type: array items: $ref: '#/components/schemas/contact_detail' ledger_account_id: type: string format: uuid nullable: true description: If the external account links to a ledger account in Modern Treasury, the id of the ledger account will be populated here. verification_status: type: string enum: - pending_verification - unverified - verified verification_source: type: string enum: - ach_prenote - microdeposits - plaid nullable: true additionalProperties: false minProperties: 19 description: The accounts for this counterparty. email: type: string format: email description: The counterparty's email. nullable: true legal_entity_id: type: string format: uuid description: The id of the legal entity. nullable: true metadata: type: object additionalProperties: type: string example: key: value foo: bar modern: treasury description: Additional data represented as key-value pairs. Both the key and value must be strings. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. send_remittance_advice: type: boolean description: Send an email to the counterparty whenever an associated payment order is sent to the bank. verification_status: type: string deprecated: true description: The verification status of the counterparty. additionalProperties: false minProperties: 14 required: - id - object - live_mode - created_at - updated_at - discarded_at - name - accounts - email - legal_entity_id - metadata - external_id - send_remittance_advice - verification_status counterparty_create_request: type: object properties: name: type: string description: A human friendly name for this counterparty. nullable: true accounts: type: array items: type: object properties: account_type: $ref: '#/components/schemas/external_account_type' party_type: type: string enum: - business - individual nullable: true description: Either `individual` or `business`. party_address: $ref: '#/components/schemas/address_request' description: Required if receiving wire payments. name: type: string nullable: true description: A nickname for the external account. This is only for internal usage and won't affect any payments account_details: type: array items: type: object properties: account_number: type: string account_number_type: type: string enum: - au_number - base_address - card_token - clabe - ethereum_address - hk_number - iban - id_number - nz_number - other - pan - polygon_address - sg_number - solana_address - wallet_address required: - account_number routing_details: type: array items: type: object properties: routing_number: type: string routing_number_type: type: string enum: - aba - au_bsb - br_codigo - ca_cpa - chips - cnaps - dk_interbank_clearing_code - gb_sort_code - hk_interbank_clearing_code - hu_interbank_clearing_code - id_sknbi_code - il_bank_code - in_ifsc - jp_zengin_code - my_branch_code - mx_bank_identifier - nz_national_clearing_code - pl_national_clearing_code - se_bankgiro_clearing_code - sg_interbank_clearing_code - swift - za_national_clearing_code payment_type: type: string enum: - ach - au_becs - bacs - book - card - chats - check - cross_border - dk_nets - eft - gb_fps - hu_ics - interac - masav - mx_ccen - neft - nics - nz_becs - pl_elixir - provxchange - ro_sent - rtp - se_bankgirot - sen - sepa - sg_giro - sic - signet - sknbi - stablecoin - wire - zengin required: - routing_number - routing_number_type external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. metadata: type: object additionalProperties: type: string example: key: value foo: bar modern: treasury description: Additional data represented as key-value pairs. Both the key and value must be strings. party_name: type: string description: If this value isn't provided, it will be inherited from the counterparty's name. party_identifier: type: string ledger_account: $ref: '#/components/schemas/ledger_account_create_request' description: Specifies a ledger account object that will be created with the external account. The resulting ledger account is linked to the external account for auto-ledgering Payment objects. See https://docs.moderntreasury.com/docs/linking-to-other-modern-treasury-objects for more details. plaid_processor_token: type: string description: If you've enabled the Modern Treasury + Plaid integration in your Plaid account, you can pass the processor token in this field. contact_details: type: array items: $ref: '#/components/schemas/contact_detail_create_request' description: The accounts for this counterparty. email: type: string format: email description: The counterparty's email. nullable: true legal_entity_id: type: string format: uuid description: The id of the legal entity. nullable: true metadata: type: object additionalProperties: type: string example: key: value foo: bar modern: treasury description: Additional data represented as key-value pairs. Both the key and value must be strings. external_id: type: string nullable: true description: An optional user-defined 180 character unique identifier. send_remittance_advice: type: boolean description: Send an email to the counterparty whenever an associated payment order is sent to the bank. verification_status: type: string deprecated: true description: The verification status of the counterparty. accounting: type: object deprecated: true properties: type: type: string enum: - customer - vendor description: An optional type to auto-sync the counterparty to your ledger. Either `customer` or `vendor`. ledger_type: type: string enum: - customer - vendor description: An optional type to auto-sync the counterparty to your ledger. Either `customer` or `vendor`. deprecated: true taxpayer_identifier: type: string description: Either a valid SSN or EIN. legal_entity: $ref: '#/components/schemas/legal_entity_create_request' required: - name ledger_account_create_request: type: object properties: name: type: string description: The name of the ledger account. description: type: string description: The description of the ledger account. nullable: true normal_balance: type: string enum: - credit - debit description: The normal balance of the ledger account. _x-stainless-modelDefPath: $shared.transaction_direction ledger_id: type: string format: uuid description: The id of the ledger that this account belongs to. currency: type: string description: The currency of the ledger account. currency_exponent: type: integer description: The currency exponent of the ledger account. nullable: true ledger_account_category_ids: type: array items: type: string format: uuid description: The array of ledger account category ids that this ledger account should be a child of. ledgerable_id: type: string format: uuid description: If the ledger account links to another object in Modern Treasury, the id will be populated here, otherwise null. ledgerable_type: type: string enum: - counterparty - external_account - internal_account - virtual_account description: If the ledger account links to another object in Modern Treasury, the type will be populated here, otherwise null. The value is one of internal_account or external_account. 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. required: - name - normal_balance - ledger_id - currency 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_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 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 routing_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 routing_number: type: string description: The routing number of the bank. routing_number_type: type: string enum: - aba - au_bsb - br_codigo - ca_cpa - chips - cnaps - dk_interbank_clearing_code - gb_sort_code - hk_interbank_clearing_code - hu_interbank_clearing_code - id_sknbi_code - il_bank_code - in_ifsc - jp_zengin_code - mx_bank_identifier - my_branch_code - nz_national_clearing_code - pl_national_clearing_code - se_bankgiro_clearing_code - sg_interbank_clearing_code - swift - za_national_clearing_code description: The type of routing number. See https://docs.moderntreasury.com/platform/reference/routing-detail-object for more details. payment_type: type: string enum: - ach - au_becs - bacs - book - card - chats - check - cross_border - dk_nets - eft - gb_fps - hu_ics - interac - masav - mx_ccen - neft - nics - nz_becs - pl_elixir - provxchange - ro_sent - rtp - se_bankgirot - sen - sepa - sg_giro - sic - signet - sknbi - stablecoin - wire - zengin nullable: true description: If the routing detail is to be used for a specific payment type this field will be populated, otherwise null. bank_name: type: string description: The name of the bank. bank_address: $ref: '#/components/schemas/address' additionalProperties: false minProperties: 11 required: - id - object - live_mode - created_at - updated_at - discarded_at - routing_number - routing_number_type - payment_type - bank_name - bank_address counterparty_collect_account_request: type: object properties: direction: type: string enum: - credit - debit description: One of `credit` or `debit`. Use `credit` when you want to pay a counterparty. Use `debit` when you need to charge a counterparty. This field helps us send a more tailored email to your counterparties." _x-stainless-modelDefPath: $shared.transaction_direction send_email: type: boolean description: By default, Modern Treasury will send an email to your counterparty that includes a link to the form they must fill out. However, if you would like to send the counterparty the link, you can set this parameter to `false`. The JSON body will include the link to the secure Modern Treasury form. fields: type: array items: type: string enum: - name - nameOnAccount - taxpayerIdentifier - accountType - accountNumber - ibanNumber - clabeNumber - walletAddress - panNumber - routingNumber - abaWireRoutingNumber - swiftCode - auBsb - caCpa - cnaps - gbSortCode - inIfsc - myBranchCode - brCodigo - routingNumberType - address - jpZenginCode - seBankgiroClearingCode - nzNationalClearingCode - hkInterbankClearingCode - huInterbankClearingCode - dkInterbankClearingCode - idSknbiCode - zaNationalClearingCode description: The list of fields you want on the form. This field is optional and if it is not set, will default to [\"nameOnAccount\", \"accountType\", \"accountNumber\", \"routingNumber\", \"address\"]. The full list of options is [\"name\", \"nameOnAccount\", \"taxpayerIdentifier\", \"accountType\", \"accountNumber\", \"routingNumber\", \"address\", \"ibanNumber\", \"swiftCode\"]. custom_redirect: type: string format: uri description: The URL you want your customer to visit upon filling out the form. By default, they will be sent to a Modern Treasury landing page. This must be a valid HTTPS URL if set. required: - direction 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 address_request: type: object properties: 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 account_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 account_number: type: string description: The account number for the bank account. account_number_type: type: string enum: - au_number - base_address - card_token - clabe - ethereum_address - hk_number - iban - id_number - nz_number - other - pan - polygon_address - sg_number - solana_address - wallet_address description: One of `iban`, `clabe`, `wallet_address`, or `other`. Use `other` if the bank account number is in a generic format. account_number_safe: type: string description: The last 4 digits of the account_number. additionalProperties: false minProperties: 8 maxProperties: 9 required: - id - object - live_mode - created_at - updated_at - discarded_at - account_number_type - account_number_safe 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 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 nullable: true additionalProperties: false minProperties: 11 required: - id - object - live_mode - created_at - updated_at - line1 - line2 - locality - region - postal_code - country legal_entity_create_request: 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. required: - legal_entity_type contact_detail_create_request: type: object properties: contact_identifier: type: string contact_identifier_type: type: string enum: - email - phone_number - website counterparty_collect_account_response: type: object properties: id: type: string description: The id of the existing counterparty. is_resend: type: boolean description: This field will be `true` if an email requesting account details has already been sent to this counterparty. form_link: type: string format: uri description: This is the link to the secure Modern Treasury form. By default, Modern Treasury will send an email to your counterparty that includes a link to this form. However, if `send_email` is passed as `false` in the body then Modern Treasury will not send the email and you can send it to the counterparty directly. additionalProperties: false minProperties: 3 required: - id - is_resend - form_link legal_entity_address_create_request: type: object properties: 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 required: - line1 - locality - region - postal_code - country contact_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 contact_identifier: type: string contact_identifier_type: type: string enum: - email - phone_number - website additionalProperties: false minProperties: 8 required: - id - object - live_mode - created_at - updated_at - discarded_at - contact_identifier - contact_identifier_type third_party_verification: type: object properties: vendor_verification_id: type: string description: The identification of the third party verification in `vendor`'s system. vendor: type: string enum: - persona - middesk - alloy - sumsub - veriff description: The vendor that performed the verification, e.g. `persona`. verification_category: type: string enum: - legal_name - date_of_birth - address - government_id_number - adverse_media description: The category of verification performed. verification_method: type: string description: The method used to perform the verification. comment: type: string nullable: true description: An optional comment about the verification. outcome: type: string enum: - passed - failed description: The outcome of the verification. One of `passed` or `failed`. verification_time: type: string format: date-time description: The timestamp when the verification was performed. required: - vendor_verification_id - vendor - verification_category - verification_method - outcome - verification_time additionalProperties: false identification_create_request: type: object properties: id_number: type: string description: The ID number of identification document. documents: type: array description: A list of documents to attach to the identification. 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 id_type: type: string enum: - ar_cuil - ar_cuit - br_cnpj - br_cpf - ca_sin - cl_run - cl_rut - co_cedulas - co_nit - drivers_license - hn_id - hn_rtn - ie_pps - in_lei - kr_brn - kr_crn - kr_rrn - passport - sa_tin - sa_vat - us_ein - us_itin - us_ssn - vn_tin description: The type of ID number. expiration_date: type: string format: date nullable: true description: The date when the Identification is no longer considered valid by the issuing authority. issuing_country: type: string nullable: true description: The ISO 3166-1 alpha-2 country code of the country that issued the identification issuing_region: type: string nullable: true description: The region in which the identifcation was issued. required: - id_number - id_type legal_entity_association_inline_create_request: type: object properties: relationship_types: type: array items: type: string enum: - authorized_signer - beneficial_owner - control_person description: A list of relationship types for how the child entity relates to parent entity. title: type: string nullable: true description: The job title of the child entity at the parent entity. ownership_percentage: type: integer nullable: true description: The child entity's ownership percentage iff they are a beneficial owner. child_legal_entity: $ref: '#/components/schemas/child_legal_entity_create' description: The child legal entity. child_legal_entity_id: type: string description: The ID of the child legal entity. required: - relationship_types parameters: metadata_query: name: metadata in: query schema: type: object additionalProperties: type: string style: deepObject explode: true required: false description: For example, if you want to query for records with metadata key `Type` and value `Loan`, the query would be `metadata%5BType%5D=Loan`. This encodes the query parameters. securitySchemes: basic_auth: type: http scheme: basic