Modern Treasury AccountDetail API

The AccountDetail API from Modern Treasury — 2 operation(s) for accountdetail.

OpenAPI Specification

modern-treasury-accountdetail-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Modern Treasury AccountCapability AccountDetail 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: AccountDetail
paths:
  /api/{accounts_type}/{account_id}/account_details:
    get:
      summary: list account_details
      tags:
      - AccountDetail
      description: Get a list of account details for a single internal or external account.
      operationId: listAccountDetails
      security:
      - basic_auth: []
      parameters:
      - name: accounts_type
        in: path
        schema:
          $ref: '#/components/schemas/accounts_type'
        required: true
      - name: account_id
        in: path
        schema:
          type: string
        description: The ID of the account.
        required: true
      - name: after_cursor
        in: query
        schema:
          type: string
          nullable: true
        required: false
      - name: per_page
        in: query
        required: false
        schema:
          type: integer
      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/account_detail'
    post:
      summary: create account_detail
      tags:
      - AccountDetail
      description: Create an account detail for an external account.
      operationId: createAccountDetail
      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: accounts_type
        in: path
        schema:
          type: string
          enum:
          - external_accounts
        required: true
      - name: account_id
        in: path
        schema:
          type: string
        description: The ID of the account.
        required: true
      responses:
        '201':
          description: successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account_detail'
        '404':
          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/account_detail_create_request'
  /api/{accounts_type}/{account_id}/account_details/{id}:
    get:
      summary: get account_detail
      tags:
      - AccountDetail
      description: Get a single account detail for a single internal or external account.
      operationId: getAccountDetail
      security:
      - basic_auth: []
      parameters:
      - name: accounts_type
        in: path
        schema:
          $ref: '#/components/schemas/accounts_type'
        required: true
      - name: account_id
        in: path
        schema:
          type: string
        description: The ID of the account.
        required: true
      - name: id
        in: path
        schema:
          type: string
        description: The ID of the account detail.
        required: true
      responses:
        '200':
          description: successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account_detail'
        '404':
          description: not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error_message'
    delete:
      summary: delete account_detail
      tags:
      - AccountDetail
      description: Delete a single account detail for an external account.
      operationId: deleteAccountDetail
      security:
      - basic_auth: []
      parameters:
      - name: accounts_type
        in: path
        schema:
          type: string
          enum:
          - external_accounts
        required: true
      - name: account_id
        in: path
        schema:
          type: string
        description: The ID of the account.
        required: true
      - name: id
        in: path
        schema:
          type: string
        description: The ID of the account detail.
        required: true
      responses:
        '204':
          description: successful
components:
  schemas:
    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
    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
    accounts_type:
      type: string
      enum:
      - external_accounts
      - internal_accounts
    account_detail_create_request:
      type: object
      properties:
        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.
      required:
      - account_number
  securitySchemes:
    basic_auth:
      type: http
      scheme: basic