openapi: 3.1.0
info:
  title: Meow API
  description: >
    ## Overview


    The Meow API provides comprehensive financial services and billing
    capabilities for businesses. 


    ### Core Features


    - Financial Data Access: Securely access account information, transactions,
    balances, and payment networks

    - USDC Operations: Create and manage cryptocurrency contacts, initiate USDC
    transfers across multiple blockchain networks


    ### Billing API


    The Billing API enables businesses to streamline their invoicing and payment
    collection:


    - **Product Management**: Create and manage products with customizable
    pricing

    - **Customer Management**: Maintain invoicing customers with billing
    addresses

    - **Invoice Creation**: Generate invoices with line items, discounts, and
    custom notes

    - **Flexible Payment Options**: Accept payments via bank transfer, ACH,
    cards, international wires, and USDC 

    - **Collection Accounts**: Configure accounts for automated payment
    collection


    ### Getting Started


    Authenticate using your API key in the request header: `x-api-key:
    your-api-key`


    For multi-entity access, you can optionally include the `x-entity-id` header
    to scope API requests to a specific entity. Use the
    `/api-keys/accessible-entities` endpoint to list all entities accessible by
    your API key.


    ### Error Responses


    Errors return JSON with `code`, `message`, and `debug_message`. The `code`
    aligns with FDX where possible; `debug_message` is for troubleshooting only.


    Common error codes:


    - `500`: Internal server error

    - `501`: Subsystem unavailable

    - `503`: Scheduled maintenance

    - `601`: Data not found

    - `602`: Customer not authorized

    - `701`: Account not found

    - `703`: Invalid input (including invalid date ranges)

    - `704`: Account type not supported

    - `705`: Account is closed

    - `801`: Transaction not found
  contact:
    name: Meow
    url: https://meow.com/
    email: support@meow.com
  version: 1.0.0
  license:
    name: Proprietary
    url: https://www.meow.com/terms-of-service
servers:
  - url: https://api.meow.com/v1
    description: Meow API Production
  - url: https://api.sandbox.meow.com/v1
    description: Meow API Sandbox
paths:
  /contacts:
    post:
      tags:
        - Contacts
      summary: Create Contact
      description: >-
        Creates a new contact with either ACH/wire/check counterparty details or
        a crypto address (USDC).
      operationId: create_contact_contacts_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateContactRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerApiContact'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - contacts:write
      parameters:
        - $ref: '#/components/parameters/EntityIdHeader'
    get:
      tags:
        - Contacts
      summary: List Contacts
      description: Returns a list of all contacts.
      operationId: list_contacts_contacts_get
      parameters:
        - name: nickname_query
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Optional filter to search contacts by nickname
            title: Nickname Query
          description: Optional filter to search contacts by nickname
        - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerApiContactsList'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - contacts:read
  /contacts/{contact_id}:
    delete:
      tags:
        - Contacts
      summary: Delete a Contact
      description: Deletes a contact.
      operationId: delete_contact_contacts__contact_id__delete
      parameters:
        - name: contact_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: The unique identifier of the contact to delete
            title: Contact Id
          description: The unique identifier of the contact to delete
        - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - contacts:write
    patch:
      tags:
        - Contacts
      summary: Update Contact
      description: Updates an existing contact and optionally adds new payment details.
      operationId: update_contact_contacts__contact_id__patch
      parameters:
        - name: contact_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: Contact identifier.
            title: Contact Id
          description: Contact identifier.
        - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateContactRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerApiContact'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - contacts:write
    get:
      tags:
        - Contacts
      summary: Get Contact
      description: Returns details of a specific contact.
      operationId: get_contact_contacts__contact_id__get
      parameters:
        - name: contact_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Contact Id
        - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerApiContact'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - contacts:read
  /accounts:
    get:
      tags:
        - Accounts
      summary: List Bank Accounts
      description: Returns a list of bank accounts.
      operationId: list_accounts_accounts_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Accounts'
      security:
        - apiKeyAuth:
            - accounts:read
      parameters:
        - $ref: '#/components/parameters/EntityIdHeader'
  /accounts/{account_id}:
    get:
      tags:
        - Accounts
      summary: Get Account Details
      description: Returns detailed information about a specified bank account.
      operationId: get_account_handler_accounts__account_id__get
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
            description: The ID of the account.
            title: Account Id
          description: The ID of the account.
        - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountWithDetails'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - accounts:read
  /accounts/{account_id}/transactions:
    get:
      tags:
        - Transactions
      summary: List Transactions for an Account
      description: Returns a list of transactions for a specified account.
      operationId: list_account_transactions_accounts__account_id__transactions_get
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
            description: The ID of the account.
            title: Account Id
          description: The ID of the account.
        - name: startTime
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                minLength: 0
                maxLength: 100
              - type: 'null'
            description: >-
              Start time for filtering transactions (ISO 8601 format). Also
              accepts 'start_time' for backwards compatibility.
            title: Starttime
          description: >-
            Start time for filtering transactions (ISO 8601 format). Also
            accepts 'start_time' for backwards compatibility.
        - name: endTime
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                minLength: 0
                maxLength: 100
              - type: 'null'
            description: >-
              End time for filtering transactions (ISO 8601 format). Also
              accepts 'end_time' for backwards compatibility.
            title: Endtime
          description: >-
            End time for filtering transactions (ISO 8601 format). Also accepts
            'end_time' for backwards compatibility.
        - name: offset
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                maxLength: 100
              - type: 'null'
            description: >-
              Opaque offset identifier for pagination. Use the nextOffset from a
              previous response.
            title: Offset
          description: >-
            Opaque offset identifier for pagination. Use the nextOffset from a
            previous response.
        - name: limit
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
                maximum: 100
                minimum: 1
              - type: 'null'
            description: Maximum number of transactions to return
            default: 10
            title: Limit
          description: Maximum number of transactions to return
        - name: transferMethod
          in: query
          required: false
          schema:
            anyOf:
              - $ref: '#/components/schemas/BankingTransactionMethod'
              - type: 'null'
            description: Filter to a specific transfer method.
            title: Transfermethod
          description: Filter to a specific transfer method.
        - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transactions'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - accounts:transactions
  /accounts/{account_id}/balances:
    get:
      tags:
        - Balances
      summary: List Balances for an Account
      description: Returns a list of balances for a specified account.
      operationId: list_account_balances_accounts__account_id__balances_get
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
            description: The ID of the account.
            title: Account Id
          description: The ID of the account.
        - name: startTime
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                minLength: 0
                maxLength: 100
              - type: 'null'
            description: >-
              Start time for filtering balances (ISO 8601 format). Also accepts
              'start_date' for backwards compatibility.
            title: Starttime
          description: >-
            Start time for filtering balances (ISO 8601 format). Also accepts
            'start_date' for backwards compatibility.
        - name: endTime
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                minLength: 0
                maxLength: 100
              - type: 'null'
            description: >-
              End time for filtering balances (ISO 8601 format). Also accepts
              'end_date' for backwards compatibility.
            title: Endtime
          description: >-
            End time for filtering balances (ISO 8601 format). Also accepts
            'end_date' for backwards compatibility.
        - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Balances'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - accounts:balances
  /accounts/{account_id}/payment-networks:
    get:
      tags:
        - Payment Networks
      summary: List Payment Networks for an Account
      description: Get payment networks supported by the account
      operationId: list_account_payment_networks_accounts__account_id__payment_networks_get
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
            description: The ID of the account.
            title: Account Id
          description: The ID of the account.
        - name: offset
          in: query
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            title: Offset
        - name: limit
          in: query
          required: false
          schema:
            anyOf:
              - type: integer
              - type: 'null'
            title: Limit
        - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountPaymentNetworkList'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - accounts:payment-networks
  /accounts/{account_id}/usdc:
    post:
      tags:
        - Transfers
      summary: Create USDC Transaction
      description: >-
        Creates a new USDC transaction from a specified bank account. The
        destination address is identified by the static_memo_id provided in the
        request body.
      operationId: create_usdc_transaction_accounts__account_id__usdc_post
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
            description: The ID of the account.
            title: Account Id
          description: The ID of the account.
        - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateUSDCTransactionRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateUSDCTransactionResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - transfers:usdc:write
  /accounts/{account_id}/book:
    post:
      tags:
        - Transfers
      summary: Create Book Transfer
      description: Creates a new internal book transfer between bank accounts.
      operationId: create_book_transfer_accounts__account_id__book_post
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
            description: The ID of the account.
            title: Account Id
          description: The ID of the account.
        - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBookTransferRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateBookTransferResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - transfers:book:write
  /accounts/{account_id}/ach:
    post:
      tags:
        - Transfers
      summary: Create ACH Transfer
      description: Creates a new ACH transfer to an external counterparty.
      operationId: create_ach_transfer_accounts__account_id__ach_post
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
            description: The ID of the account.
            title: Account Id
          description: The ID of the account.
        - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAchTransferRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAchTransferResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - transfers:ach:write
  /accounts/{account_id}/ach/scheduled:
    post:
      tags:
        - Transfers
      summary: Create Scheduled ACH Transfer
      description: Creates a new scheduled ACH transfer to an external counterparty.
      operationId: create_scheduled_ach_transfer_accounts__account_id__ach_scheduled_post
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
            description: The ID of the account.
            title: Account Id
          description: The ID of the account.
        - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateScheduledAchTransferRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateScheduledAchTransferResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - transfers:ach:write
    get:
      tags:
        - Transfers
      summary: List Scheduled ACH Transfers
      description: Returns a list of scheduled ACH transfers for a specified account.
      operationId: list_scheduled_ach_transfers_accounts__account_id__ach_scheduled_get
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
            description: The ID of the account.
            title: Account Id
          description: The ID of the account.
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 1
            default: 10
            title: Limit
        - name: offset
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                maxLength: 100
              - type: 'null'
            description: >-
              Opaque offset identifier for pagination. Use the nextOffset from a
              previous response.
            title: Offset
          description: >-
            Opaque offset identifier for pagination. Use the nextOffset from a
            previous response.
        - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScheduledAchTransfers'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - accounts:transactions
  /accounts/{account_id}/wire:
    post:
      tags:
        - Transfers
      summary: Create Wire Transfer
      description: Creates a new wire transfer to an external counterparty.
      operationId: create_wire_transfer_accounts__account_id__wire_post
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
            description: The ID of the account.
            title: Account Id
          description: The ID of the account.
        - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWireTransferRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateWireTransferResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - transfers:wire:write
  /accounts/{account_id}/transactions/{transaction_id}:
    get:
      tags:
        - Transfers
      summary: Get USDC Transaction
      description: >-
        Returns details about a USDC transaction from a transaction id. This
        endpoint can be used to check the status of an outgoing USDC transfer
        after it has been initiated.
      operationId: >-
        get_usdc_transaction_accounts__account_id__transactions__transaction_id__get
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
            description: The ID of the account.
            title: Account Id
          description: The ID of the account.
        - name: transaction_id
          in: path
          required: true
          schema:
            type: string
            description: The ID of the usdc transaction
            title: Transaction Id
          description: The ID of the usdc transaction
        - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetUSDCTransactionResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - accounts:transactions
  /accounts/{account_id}/wires/{wire_transfer_id}:
    get:
      tags:
        - Transfers
      summary: Get Wire Transfer
      description: >-
        Returns details about a wire transfer for the specified account by wire
        transfer ID. This endpoint returns details for both incoming and
        outgoing wire transfers, and can be used to check the status of an
        outgoing wire after it has been initiated.
      operationId: get_wire_transfer_accounts__account_id__wires__wire_transfer_id__get
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
            description: The ID of the account.
            title: Account Id
          description: The ID of the account.
        - name: wire_transfer_id
          in: path
          required: true
          schema:
            type: string
            description: The transaction group ID for the wire transfer
            title: Wire Transfer Id
          description: The transaction group ID for the wire transfer
        - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WireTransferResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - accounts:transactions
  /accounts/{account_id}/achs/{ach_transfer_id}:
    get:
      tags:
        - Transfers
      summary: Get ACH Transfer
      description: >-
        Returns details about an ACH transfer for the specified account by ACH
        transfer ID. This endpoint returns details for both incoming and
        outgoing ACH transfers, and can be used to check the status of an
        outgoing ACH transfer after it has been initiated.
      operationId: get_ach_transfer_accounts__account_id__achs__ach_transfer_id__get
      parameters:
        - name: account_id
          in: path
          required: true
          schema:
            type: string
            description: The ID of the account.
            title: Account Id
          description: The ID of the account.
        - name: ach_transfer_id
          in: path
          required: true
          schema:
            type: string
            description: >-
              The transaction group ID for the ACH transfer (e.g.
              withdrawal_ach_...), or a Treasury Prime ACH id returned from
              create_ach (e.g. ach_...)
            title: Ach Transfer Id
          description: >-
            The transaction group ID for the ACH transfer (e.g.
            withdrawal_ach_...), or a Treasury Prime ACH id returned from
            create_ach (e.g. ach_...)
        - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AchTransferResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - accounts:transactions
  /billing/products:
    get:
      tags:
        - Products
      summary: List Products
      description: Returns a list of all products to be used with invoicing.
      operationId: list_products_billing_products_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/InvoiceProductResponse'
                type: array
                title: Response List Products Billing Products Get
      security:
        - apiKeyAuth:
            - billing:products:read
      parameters:
        - $ref: '#/components/parameters/EntityIdHeader'
    post:
      tags:
        - Products
      summary: Create Product
      description: Creates a new product.
      operationId: create_product_billing_products_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProductRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceProductResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - billing:products:write
      parameters:
        - $ref: '#/components/parameters/EntityIdHeader'
  /billing/products/{product_id}:
    get:
      tags:
        - Products
      summary: Get Product by ID
      description: Returns a product by its ID.
      operationId: get_product_billing_products__product_id__get
      parameters:
        - name: product_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Product Id
        - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceProductResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - billing:products:read
  /billing/customers:
    get:
      tags:
        - Customers
      summary: List Invoicing Customers
      description: Returns a list of all invoicing customers.
      operationId: list_invoicing_customers_billing_customers_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/InvoicingCustomer'
                type: array
                title: Response List Invoicing Customers Billing Customers Get
      security:
        - apiKeyAuth:
            - billing:customers:read
      parameters:
        - $ref: '#/components/parameters/EntityIdHeader'
    post:
      tags:
        - Customers
      summary: Create Invoicing Customer
      description: Creates a new invoicing customer.
      operationId: create_invoicing_customer_billing_customers_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateInvoicingCustomerRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoicingCustomer'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - billing:customers:write
      parameters:
        - $ref: '#/components/parameters/EntityIdHeader'
  /billing/customers/{customer_id}:
    get:
      tags:
        - Customers
      summary: Get Invoicing Customer by ID
      description: Returns an invoicing customer by their ID.
      operationId: get_invoicing_customer_billing_customers__customer_id__get
      parameters:
        - name: customer_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Customer Id
        - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoicingCustomer'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - billing:customers:read
  /billing/payment-method-types:
    get:
      tags:
        - Payment Methods
      summary: Get Payment Method Types
      description: Returns the payment method types that are available for the entity.
      operationId: get_payment_method_types_billing_payment_method_types_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentMethodTypes'
      security:
        - apiKeyAuth:
            - billing:invoices:read
      parameters:
        - $ref: '#/components/parameters/EntityIdHeader'
  /billing/invoices:
    get:
      tags:
        - Invoices
      summary: List Invoices
      description: Lists all invoices.
      operationId: list_invoices_billing_invoices_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/Invoice'
                type: array
                title: Response List Invoices Billing Invoices Get
      security:
        - apiKeyAuth:
            - billing:invoices:read
      parameters:
        - $ref: '#/components/parameters/EntityIdHeader'
    post:
      tags:
        - Invoices
      summary: Create Invoice
      description: Creates a new invoice.
      operationId: create_invoice_billing_invoices_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateInvoiceRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - billing:invoices:write
      parameters:
        - $ref: '#/components/parameters/EntityIdHeader'
  /billing/invoices/{invoice_id}:
    get:
      tags:
        - Invoices
      summary: Get Invoice
      description: Gets an invoice by ID.
      operationId: get_invoice_billing_invoices__invoice_id__get
      parameters:
        - name: invoice_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Invoice Id
        - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - billing:invoices:read
  /billing/invoices/{invoice_id}/download:
    get:
      tags:
        - Invoices
      summary: Download Invoice PDF
      description: Downloads an invoice as a PDF file.
      operationId: download_invoice_pdf_billing_invoices__invoice_id__download_get
      parameters:
        - name: invoice_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: The unique identifier of the invoice to download
            title: Invoice Id
          description: The unique identifier of the invoice to download
        - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: The invoice as a PDF file. Returns binary data (raw bytes).
          content:
            application/pdf:
              schema:
                type: string
                format: binary
              example: Binary PDF content
          headers:
            Content-Disposition:
              description: >-
                Attachment header that triggers file download with the invoice
                filename
              schema:
                type: string
                example: attachment; filename="Invoice - INV-2024-001.pdf"
        '404':
          description: Invoice not found
          content:
            application/json:
              schema:
                properties:
                  message:
                    type: string
                  code:
                    type: integer
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - billing:invoices:read
  /billing/invoices/{invoice_id}/line-items:
    get:
      tags:
        - Line Items
      summary: List all line items for an invoice
      description: Returns all line items associated with a specific invoice
      operationId: List_Invoice_Line_Items_billing_invoices__invoice_id__line_items_get
      parameters:
        - name: invoice_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Invoice Id
        - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/LineItem'
                title: >-
                  Response List Invoice Line Items Billing Invoices  Invoice Id 
                  Line Items Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - billing:invoices:read
  /billing/invoices/{invoice_id}/line-items/{line_item_id}:
    get:
      tags:
        - Line Items
      summary: Get a specific line item for an invoice
      description: Returns a specific line item by ID for a given invoice
      operationId: >-
        Get_Invoice_Line_Item_billing_invoices__invoice_id__line_items__line_item_id__get
      parameters:
        - name: invoice_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Invoice Id
        - name: line_item_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            title: Line Item Id
        - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LineItem'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - billing:invoices:read
  /billing/accounts:
    get:
      tags:
        - Collection Accounts
      summary: List collection accounts
      description: >-
        Returns treasury prime accounts that can be used as collection accounts
        for invoices. Only returns open, unlocked accounts sorted with primary
        accounts first.
      operationId: list_billing_accounts_billing_accounts_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillingAccounts'
      security:
        - apiKeyAuth:
            - billing:accounts:read
      parameters:
        - $ref: '#/components/parameters/EntityIdHeader'
  /routing-numbers/{routing_number}:
    get:
      tags:
        - Routing Numbers
      summary: Validate Routing Number
      description: >-
        Validates a routing number and returns bank information including name,
        address, and supported payment methods (ACH/Wire).
      operationId: validate_routing_number_routing_numbers__routing_number__get
      parameters:
        - name: routing_number
          in: path
          required: true
          schema:
            type: string
            minLength: 9
            maxLength: 9
            title: Routing Number
        - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoutingNumber'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - accounts:read
  /bills:
    get:
      tags:
        - Bill
      summary: List all bills for the entity
      description: Returns a paginated list of bills with optional status filtering.
      operationId: List_Bills_bills_get
      parameters:
        - name: statuses
          in: query
          required: false
          schema:
            anyOf:
              - type: array
                items:
                  $ref: '#/components/schemas/BillStatusEnum'
              - type: 'null'
            title: Statuses
        - name: limit
          in: query
          required: false
          schema:
            type: integer
            maximum: 100
            minimum: 1
            default: 10
            title: Limit
        - name: offset
          in: query
          required: false
          schema:
            anyOf:
              - type: string
                maxLength: 100
              - type: 'null'
            description: >-
              Opaque offset identifier for pagination. Use the nextOffset from a
              previous response.
            title: Offset
          description: >-
            Opaque offset identifier for pagination. Use the nextOffset from a
            previous response.
        - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillsResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - billpay:read
  /bills/{bill_id}:
    get:
      tags:
        - Bill
      summary: Get a specific bill
      description: Returns details for a specific bill by ID, including all line items.
      operationId: Get_Bill_bills__bill_id__get
      parameters:
        - name: bill_id
          in: path
          required: true
          schema:
            type: string
            format: uuid
            description: The bill ID
            title: Bill Id
          description: The bill ID
        - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
      security:
        - apiKeyAuth:
            - billpay:read
  /api-keys/accessible-entities:
    get:
      tags:
        - API Keys
      summary: List Accessible Entities
      description: >-
        List all entities accessible by the current API key.


        This endpoint returns the entities the API key holder can administer
        (write access),

        including entity IDs and names. This helps customers know which entity
        IDs they can

        use in the x-entity-id header when making API calls.


        Returns:
            ListAccessibleEntitiesResponse: List of accessible entities with their IDs and names
      operationId: list_accessible_entities_api_keys_accessible_entities_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAccessibleEntitiesResponse'
      security:
        - apiKeyAuth:
            - accounts:read
  /api-keys/current:
    get:
      tags:
        - API Keys
      summary: Get Current Api Key
      description: Return metadata about the API key used for this request.
      operationId: get_current_api_key_api_keys_current_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CurrentApiKeyResponse'
      security:
        - apiKeyAuth: []
  /health:
    get:
      summary: Health Check
      description: Check the health status of the API service
      operationId: health_health_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                additionalProperties: true
                type: object
                title: Response Health Health Get
      security:
        - ApiKeyAuth: []
components:
  schemas:
    AccessibleEntity:
      properties:
        entity_id:
          type: string
          title: Entity Id
          description: The UUID of the entity
        entity_name:
          type: string
          title: Entity Name
          description: The name of the entity
        access_type:
          $ref: '#/components/schemas/AccessibleEntityAccessType'
          description: How the API key gains access to the entity
        role:
          anyOf:
            - $ref: '#/components/schemas/UserRoleEnum'
            - type: 'null'
          description: >-
            User role/permissions for this entity when applicable (only for
            global API keys)
      type: object
      required:
        - entity_id
        - entity_name
        - access_type
      title: AccessibleEntity
      description: Entity that an API key has access to.
    AccessibleEntityAccessType:
      type: string
      enum:
        - global_api_key
        - entity_api_key
      title: AccessibleEntityAccessType
    AccountCategory:
      type: string
      enum:
        - DEPOSIT_ACCOUNT
        - DIGITAL_WALLET
        - INVESTMENT_ACCOUNT
      title: AccountCategory
    AccountDescriptor:
      properties:
        accountId:
          $ref: '#/components/schemas/Identifier'
          description: Unique identifier for this account
        accountType:
          $ref: '#/components/schemas/AccountType'
          description: The type of account
        accountNumberDisplay:
          anyOf:
            - type: string
            - type: 'null'
          title: Accountnumberdisplay
          description: Last 4 digits of the account number
          examples:
            - 4321
        productName:
          type: string
          title: Productname
          description: Product name (e.g., Business Checking, Treasury)
        nickname:
          anyOf:
            - type: string
            - type: 'null'
          title: Nickname
          description: Custom display name for the account
        status:
          $ref: '#/components/schemas/AccountStatus'
          description: Current account status
        currency:
          $ref: '#/components/schemas/Currency'
          description: Currency of the account
      type: object
      required:
        - accountId
        - accountType
        - productName
        - status
        - currency
      title: AccountDescriptor
    AccountPaymentNetwork:
      properties:
        bankId:
          anyOf:
            - type: string
            - type: 'null'
          title: Bankid
          description: Bank identifier used by the payment network ie. Routing Number
        identifier:
          anyOf:
            - type: string
            - type: 'null'
          title: Identifier
          description: The number used to identify the account within the payment network.
        type:
          $ref: '#/components/schemas/PaymentNetworkType'
          description: The type of payment network
        transferIn:
          type: boolean
          title: Transferin
          description: >-
            Indicates if the account can receive transfers through this payment
            network. Represents the account's current ability to be credited
            through this payment network.
        transferOut:
          type: boolean
          title: Transferout
          description: >-
            Indicates if the account can send transfers through this payment
            network. Represents the account's current ability to be debited
            through this payment network.
        network:
          anyOf:
            - $ref: '#/components/schemas/BlockchainNetwork'
            - type: 'null'
          description: The blockchain network for crypto payment networks.
        bankName:
          anyOf:
            - type: string
            - type: 'null'
          title: Bankname
          description: Name of the bank for wire/ACH deposits.
        bankAddress:
          anyOf:
            - type: string
            - type: 'null'
          title: Bankaddress
          description: Address of the bank for wire/ACH deposits.
        beneficiaryName:
          anyOf:
            - type: string
            - type: 'null'
          title: Beneficiaryname
          description: Name of the beneficiary for wire/ACH deposits.
        beneficiaryAddress:
          anyOf:
            - type: string
            - type: 'null'
          title: Beneficiaryaddress
          description: Address of the beneficiary for wire/ACH deposits.
      type: object
      required:
        - type
        - transferIn
        - transferOut
      title: AccountPaymentNetwork
    AccountPaymentNetworkList:
      properties:
        page:
          anyOf:
            - $ref: '#/components/schemas/PageMetadata'
            - type: 'null'
          description: Metadata for pagination
        paymentNetworks:
          items:
            $ref: '#/components/schemas/AccountPaymentNetwork'
          type: array
          minItems: 0
          title: Paymentnetworks
          description: >-
            Array of payment networks. Returns an empty array if this
            information isn't available. Not all deposit accounts support ACH
            transfers. For example, a prepaid debit card account doesn't support
            ACH.
          examples:
            - - bankId: 10088889
                identifier: '1111222233335820'
                transferIn: true
                transferOut: true
                type: US_ACH
            - - bankId: 10088889
                identifier: '1111222233335820'
                transferIn: true
                transferOut: true
                type: US_ACH
              - identifier: '0x1234567890abcdef1234567890abcdef12345678'
                network: ETHEREUM
                transferIn: true
                transferOut: true
                type: USDC
            - - identifier: 8xDc123456789abcdef123456789abcdef123456789abcdef
                network: SOLANA
                transferIn: true
                transferOut: true
                type: USDC
      type: object
      required:
        - paymentNetworks
      title: AccountPaymentNetworkList
    AccountStatus:
      type: string
      enum:
        - CLOSED
        - DELINQUENT
        - NEGATIVECURRENTBALANCE
        - OPEN
        - PAID
        - PENDINGCLOSE
        - PENDINGOPEN
        - RESTRICTED
      title: AccountStatus
    AccountType:
      type: string
      enum:
        - BROKERAGEPRODUCT
        - CHECKING
        - MONEYMARKET
        - TAXABLE
      title: AccountType
    AccountWithDescriptor:
      anyOf:
        - $ref: '#/components/schemas/DepositAccountDescriptor'
        - $ref: '#/components/schemas/InvestmentAccountDescriptor'
        - $ref: '#/components/schemas/DigitalWalletDescriptor'
      title: AccountWithDescriptor
      description: Account summary without balance details
    AccountWithDetails:
      anyOf:
        - $ref: '#/components/schemas/DepositAccountWithDetail'
        - $ref: '#/components/schemas/InvestmentAccountWithDetail'
        - $ref: '#/components/schemas/DigitalWalletWithDetail'
      title: AccountWithDetails
      description: Account with balance details
    Accounts:
      properties:
        page:
          anyOf:
            - $ref: '#/components/schemas/PageMetadata'
            - type: 'null'
          description: Metadata for pagination
        accounts:
          items:
            $ref: '#/components/schemas/AccountWithDescriptor'
          type: array
          title: Accounts
          description: List of accounts
          examples:
            - - depositAccount:
                  accountId: cash_account_12345678-1234-1234-1234-123456789012
                  accountNumberDisplay: '5820'
                  accountType: CHECKING
                  bankProductType: Grasshopper Bank
                  currency:
                    currencyCode: USD
                  nickname: Main Checking
                  productName: Business Checking
                  status: OPEN
              - investmentAccount:
                  accountId: brokerage_account_12345678-1234-1234-1234-123456789012
                  accountNumberDisplay: '8200'
                  accountType: TAXABLE
                  currency:
                    currencyCode: USD
                  nickname: Treasury Account
                  productName: Treasury
                  status: OPEN
      type: object
      required:
        - accounts
      title: Accounts
    AchTransferResponse:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the ACH transfer
        amount:
          type: string
          title: Amount
          description: The amount of the transfer
        status:
          $ref: '#/components/schemas/TransferStatus'
          description: The current status of the transfer
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: A description of the transfer
        counterparty_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Counterparty Id
          description: The unique identifier for the counterparty
        counterparty_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Counterparty Name
          description: The name of the counterparty
        counterparty_account_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Counterparty Account Number
          description: The account number of the counterparty
        counterparty_routing_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Counterparty Routing Number
          description: The routing number of the counterparty
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: The time the transfer was created
        updated_at:
          $ref: '#/components/schemas/Timestamp'
          description: The time the transfer was last updated
        internal_note:
          anyOf:
            - type: string
            - type: 'null'
          title: Internal Note
          description: An internal note associated with the transfer
        additional_details:
          anyOf:
            - type: string
            - type: 'null'
          title: Additional Details
          description: Additional details about the transfer
        trace_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Trace Number
          description: The ACH trace number for the transfer
        payment_related_info:
          anyOf:
            - type: string
            - type: 'null'
          title: Payment Related Info
          description: Payment related information (e.g. for incoming ACH)
      type: object
      required:
        - id
        - amount
        - status
        - created_at
        - updated_at
      title: AchTransferResponse
    AddressRequest:
      properties:
        street_line_1:
          type: string
          maxLength: 300
          minLength: 1
          title: Street Line 1
          description: The primary address line
        street_line_2:
          anyOf:
            - type: string
              maxLength: 300
              minLength: 0
            - type: 'null'
          title: Street Line 2
          description: The secondary address line
        city:
          type: string
          maxLength: 50
          minLength: 0
          title: City
          description: The city
        state:
          anyOf:
            - type: string
              maxLength: 200
              minLength: 0
            - type: 'null'
          title: State
          description: The state or province
        country:
          $ref: '#/components/schemas/CountryCodeAlpha2'
          description: The ISO 3166-1 alpha-2 country code
        postal_code:
          anyOf:
            - type: string
              maxLength: 20
              minLength: 1
            - type: 'null'
          title: Postal Code
          description: The postal or zip code
      type: object
      required:
        - street_line_1
        - city
        - country
      title: AddressRequest
    AddressResponse:
      properties:
        street_line_1:
          anyOf:
            - type: string
            - type: 'null'
          title: Street Line 1
          description: The primary address line
        street_line_2:
          anyOf:
            - type: string
            - type: 'null'
          title: Street Line 2
          description: The secondary address line
        city:
          anyOf:
            - type: string
            - type: 'null'
          title: City
          description: The city
        state:
          anyOf:
            - type: string
            - type: 'null'
          title: State
          description: The state or province
        country:
          anyOf:
            - $ref: '#/components/schemas/CountryCodeAlpha2'
            - type: 'null'
          description: The ISO 3166-1 alpha-2 country code
        postal_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Postal Code
          description: The postal or zip code
      type: object
      title: AddressResponse
    ApiKeyEntityInfo:
      properties:
        entity_id:
          type: string
          title: Entity Id
          description: Public identifier for the entity
        entity_name:
          type: string
          title: Entity Name
          description: Display name for the entity
      type: object
      required:
        - entity_id
        - entity_name
      title: ApiKeyEntityInfo
      description: Identifying information for the entity that owns an API key.
    ApiKeyScope:
      type: string
      enum:
        - accounts:read
        - accounts:payment-networks
        - accounts:transactions
        - accounts:balances
        - accounts:statements
        - transfers:usdc:write
        - transfers:ach:write
        - transfers:wire:write
        - transfers:book:write
        - contacts:read
        - contacts:write
        - billing:products:read
        - billing:products:write
        - billing:customers:read
        - billing:customers:write
        - billing:invoices:read
        - billing:invoices:write
        - billing:accounts:read
        - billpay:read
      title: ApiKeyScope
    ApiKeyType:
      type: string
      enum:
        - entity
        - user
      title: ApiKeyType
    Balance:
      properties:
        balance:
          type: number
          title: Balance
          description: The balance amount
        date:
          type: string
          format: date
          title: Date
          description: The date of the balance
      additionalProperties: false
      type: object
      required:
        - balance
        - date
      title: Balance
    Balances:
      properties:
        balances:
          items:
            $ref: '#/components/schemas/Balance'
          type: array
          title: Balances
          description: An array of balances
      type: object
      required:
        - balances
      title: Balances
    BankingTransactionMethod:
      type: string
      enum:
        - INCOMING_ACH
        - INCOMING_WIRE
        - OUTGOING_ACH
        - OUTGOING_WIRE
        - CHECK_DEPOSIT
        - BOOK_TRANSFER
        - ISSUED_CHECK
        - HOLD
        - CARD
        - INTEREST
        - MANUAL_POST
        - INTERNATIONAL_PAYMENT
      title: BankingTransactionMethod
      x-enum-varnames:
        - INCOMING_ACH
        - INCOMING_WIRE
        - OUTGOING_ACH
        - OUTGOING_WIRE
        - CHECK_DEPOSIT
        - BOOK_TRANSFER
        - ISSUED_CHECK
        - HOLD
        - CARD
        - INTEREST
        - MANUAL_POST
        - INTERNATIONAL_PAYMENT
    BillLineItemResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier for the line item
        amount:
          type: string
          title: Amount
          description: The amount for the line item
        quantity:
          anyOf:
            - type: string
            - type: 'null'
          title: Quantity
          description: The quantity (for ITEM type)
        description:
          type: string
          title: Description
          description: Description of the line item
        type:
          $ref: '#/components/schemas/BillLineItemTypeEnum'
          description: Type of line item (EXPENSE or ITEM)
        amount_total:
          type: string
          title: Amount Total
          description: The total amount (amount * quantity for ITEM)
      type: object
      required:
        - id
        - amount
        - description
        - type
        - amount_total
      title: BillLineItemResponse
    BillLineItemTypeEnum:
      type: string
      enum:
        - EXPENSE
        - ITEM
      title: BillLineItemTypeEnum
      x-enum-varnames:
        - EXPENSE
        - ITEM
    BillPaymentTypeEnum:
      type: string
      enum:
        - ACH
        - CRYPTO
        - INTERNATIONAL_PAYMENT_FX
        - WIRE
        - CHECK
      title: BillPaymentTypeEnum
      x-enum-varnames:
        - ACH
        - CRYPTO
        - INTERNATIONAL_PAYMENT_FX
        - WIRE
        - CHECK
    BillResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier for the bill
        status:
          $ref: '#/components/schemas/BillStatusEnum'
          description: The current status of the bill
        vendor_name:
          type: string
          title: Vendor Name
          description: The name of the vendor
        invoice_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Invoice Number
          description: The invoice number
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: Description of the bill
        memo:
          anyOf:
            - type: string
            - type: 'null'
          title: Memo
          description: Memo for the bill
        bill_date:
          anyOf:
            - $ref: '#/components/schemas/DateString'
            - type: 'null'
          description: The bill date
        bill_due_date:
          anyOf:
            - $ref: '#/components/schemas/DateString'
            - type: 'null'
          description: The due date
        bill_total:
          anyOf:
            - type: string
            - type: 'null'
          title: Bill Total
          description: The total amount of the bill
        currency:
          anyOf:
            - type: string
            - type: 'null'
          title: Currency
          description: The currency code (ISO 4217)
        payment_type:
          anyOf:
            - $ref: '#/components/schemas/BillPaymentTypeEnum'
            - type: 'null'
          description: The payment type
        contact_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Contact Id
          description: The ID of the associated contact
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: The creation timestamp
        paid_at:
          anyOf:
            - $ref: '#/components/schemas/Timestamp'
            - type: 'null'
          description: The paid timestamp
        scheduled_at:
          anyOf:
            - $ref: '#/components/schemas/Timestamp'
            - type: 'null'
          description: The scheduled payment timestamp
        line_items:
          items:
            $ref: '#/components/schemas/BillLineItemResponse'
          type: array
          title: Line Items
          description: Line items for the bill
      type: object
      required:
        - id
        - status
        - vendor_name
        - created_at
      title: BillResponse
    BillStatusEnum:
      type: string
      enum:
        - CANCELED
        - DRAFT_PROCESSING
        - DRAFT
        - PAYMENT_INFO_NEEDED
        - PENDING
        - APPROVED
        - REJECTED
        - SCHEDULED
        - PAYMENT_INITIATED
        - PAYMENT_DELIVERED
        - PAYMENT_FAILED
        - PAYMENT_CANCELED
      title: BillStatusEnum
      x-enum-varnames:
        - CANCELED
        - DRAFT_PROCESSING
        - DRAFT
        - PAYMENT_INFO_NEEDED
        - PENDING
        - APPROVED
        - REJECTED
        - SCHEDULED
        - PAYMENT_INITIATED
        - PAYMENT_DELIVERED
        - PAYMENT_FAILED
        - PAYMENT_CANCELED
    BillSummaryResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier for the bill
        status:
          $ref: '#/components/schemas/BillStatusEnum'
          description: The current status of the bill
        vendor_name:
          type: string
          title: Vendor Name
          description: The name of the vendor
        invoice_number:
          anyOf:
            - type: string
            - type: 'null'
          title: Invoice Number
          description: The invoice number
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: Description of the bill
        memo:
          anyOf:
            - type: string
            - type: 'null'
          title: Memo
          description: Memo for the bill
        bill_date:
          anyOf:
            - $ref: '#/components/schemas/DateString'
            - type: 'null'
          description: The bill date
        bill_due_date:
          anyOf:
            - $ref: '#/components/schemas/DateString'
            - type: 'null'
          description: The due date
        bill_total:
          anyOf:
            - type: string
            - type: 'null'
          title: Bill Total
          description: The total amount of the bill
        currency:
          anyOf:
            - type: string
            - type: 'null'
          title: Currency
          description: The currency code (ISO 4217)
        payment_type:
          anyOf:
            - $ref: '#/components/schemas/BillPaymentTypeEnum'
            - type: 'null'
          description: The payment type
        contact_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Contact Id
          description: The ID of the associated contact
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: The creation timestamp
        paid_at:
          anyOf:
            - $ref: '#/components/schemas/Timestamp'
            - type: 'null'
          description: The paid timestamp
        scheduled_at:
          anyOf:
            - $ref: '#/components/schemas/Timestamp'
            - type: 'null'
          description: The scheduled payment timestamp
      type: object
      required:
        - id
        - status
        - vendor_name
        - created_at
      title: BillSummaryResponse
    BillingAccount:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: >-
            The account ID to use as collection_account_id when creating
            invoices
        display_name:
          type: string
          title: Display Name
          description: The display name of the account
        account_number_mask:
          type: string
          title: Account Number Mask
          description: Masked account number showing only last 4 digits
          examples:
            - ••1234
        status:
          type: string
          title: Status
          description: The status of the account
          examples:
            - open
            - closed
        is_primary:
          type: boolean
          title: Is Primary
          description: Whether this is the primary operational account
        banking_product:
          type: string
          title: Banking Product
          description: The banking product type
          examples:
            - GRASSHOPPER
            - FIRSTBANK
            - TCB
      type: object
      required:
        - id
        - display_name
        - account_number_mask
        - status
        - is_primary
        - banking_product
      title: BillingAccount
      description: |-
        A treasury prime account that can receive invoice payments.

        Only includes accounts that are open and not locked.
    BillingAccounts:
      properties:
        accounts:
          items:
            $ref: '#/components/schemas/BillingAccount'
          type: array
          title: Accounts
          description: List of available collection accounts for invoices
      type: object
      required:
        - accounts
      title: BillingAccounts
      description: |-
        List of billing accounts available for invoice collection.

        Accounts are sorted with primary accounts first, then by display name.
    BillsResponse:
      properties:
        bills:
          items:
            $ref: '#/components/schemas/BillSummaryResponse'
          type: array
          title: Bills
          description: List of bills
        page:
          anyOf:
            - $ref: '#/components/schemas/PageMetadata'
            - type: 'null'
          description: Pagination metadata
      type: object
      required:
        - bills
      title: BillsResponse
    BlockchainNetwork:
      type: string
      enum:
        - ARBITRUM
        - AVALANCHE_C_CHAIN
        - BASE
        - ETHEREUM
        - OPTIMISM
        - POLYGON
        - SOLANA
        - STELLAR
        - TRON
      title: BlockchainNetwork
    BridgeStaticMemoResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        destination_address:
          type: string
          title: Destination Address
        destination_payment_rail:
          $ref: '#/components/schemas/ExtBridgePaymentRail'
        destination_payment_currency:
          $ref: '#/components/schemas/ExtBridgeCryptocurrency'
      type: object
      required:
        - id
        - destination_address
        - destination_payment_rail
        - destination_payment_currency
      title: BridgeStaticMemoResponse
    CounterpartyDetailsRequest:
      properties:
        ach:
          anyOf:
            - $ref: '#/components/schemas/MeowApiAchSubobject'
            - type: 'null'
        wire:
          anyOf:
            - $ref: '#/components/schemas/MeowApiWireSubobject'
            - type: 'null'
        check:
          anyOf:
            - $ref: '#/components/schemas/MeowApiCheckSubobject'
            - type: 'null'
        name_on_account:
          type: string
          maxLength: 300
          minLength: 1
          title: Name On Account
        nickname:
          type: string
          maxLength: 300
          minLength: 1
          title: Nickname
        plaid_processor_token:
          anyOf:
            - type: string
              maxLength: 300
              minLength: 1
            - type: 'null'
          title: Plaid Processor Token
        email:
          anyOf:
            - type: string
              format: email
            - type: 'null'
          title: Email
        company_ids:
          anyOf:
            - items:
                type: string
              type: array
            - type: 'null'
          title: Company Ids
      type: object
      required:
        - name_on_account
        - nickname
      title: CounterpartyDetailsRequest
    CountryCodeAlpha2:
      type: string
      enum:
        - AW
        - AF
        - AO
        - AI
        - AX
        - AL
        - AD
        - AE
        - AR
        - AM
        - AS
        - AQ
        - TF
        - AG
        - AU
        - AT
        - AZ
        - BI
        - BE
        - BJ
        - BQ
        - BF
        - BD
        - BG
        - BH
        - BS
        - BA
        - BL
        - BY
        - BZ
        - BM
        - BO
        - BR
        - BB
        - BN
        - BT
        - BV
        - BW
        - CF
        - CA
        - CC
        - CH
        - CL
        - CN
        - CI
        - CM
        - CD
        - CG
        - CK
        - CO
        - KM
        - CV
        - CR
        - CU
        - CW
        - CX
        - KY
        - CY
        - CZ
        - DE
        - DJ
        - DM
        - DK
        - DO
        - DZ
        - EC
        - EG
        - ER
        - EH
        - ES
        - EE
        - ET
        - FI
        - FJ
        - FK
        - FR
        - FO
        - FM
        - GA
        - GB
        - GE
        - GG
        - GH
        - GI
        - GN
        - GP
        - GM
        - GW
        - GQ
        - GR
        - GD
        - GL
        - GT
        - GF
        - GU
        - GY
        - HK
        - HM
        - HN
        - HR
        - HT
        - HU
        - ID
        - IM
        - IN
        - IO
        - IE
        - IR
        - IQ
        - IS
        - IL
        - IT
        - JM
        - JE
        - JO
        - JP
        - KZ
        - KE
        - KG
        - KH
        - KI
        - KN
        - KR
        - KW
        - LA
        - LB
        - LR
        - LY
        - LC
        - LI
        - LK
        - LS
        - LT
        - LU
        - LV
        - MO
        - MF
        - MA
        - MC
        - MD
        - MG
        - MV
        - MX
        - MH
        - MK
        - ML
        - MT
        - MM
        - ME
        - MN
        - MP
        - MZ
        - MR
        - MS
        - MQ
        - MU
        - MW
        - MY
        - YT
        - NA
        - NC
        - NE
        - NF
        - NG
        - NI
        - NU
        - NL
        - 'NO'
        - NP
        - NR
        - NZ
        - OM
        - PK
        - PA
        - PN
        - PE
        - PH
        - PW
        - PG
        - PL
        - PR
        - KP
        - PT
        - PY
        - PS
        - PF
        - QA
        - RE
        - RO
        - RU
        - RW
        - SA
        - SD
        - SN
        - SG
        - GS
        - SH
        - SJ
        - SB
        - SL
        - SV
        - SM
        - SO
        - PM
        - RS
        - SS
        - ST
        - SR
        - SK
        - SI
        - SE
        - SZ
        - SX
        - SC
        - SY
        - TC
        - TD
        - TG
        - TH
        - TJ
        - TK
        - TM
        - TL
        - TO
        - TT
        - TN
        - TR
        - TV
        - TW
        - TZ
        - UG
        - UA
        - UM
        - UY
        - US
        - UZ
        - VA
        - VC
        - VE
        - VG
        - VI
        - VN
        - VU
        - WF
        - WS
        - XK
        - YE
        - ZA
        - ZM
        - ZW
      title: CountryCodeAlpha2
      x-enum-varnames:
        - AW
        - AF
        - AO
        - AI
        - AX
        - AL
        - AD
        - AE
        - AR
        - AM
        - AS
        - AQ
        - TF
        - AG
        - AU
        - AT
        - AZ
        - BI
        - BE
        - BJ
        - BQ
        - BF
        - BD
        - BG
        - BH
        - BS
        - BA
        - BL
        - BY
        - BZ
        - BM
        - BO
        - BR
        - BB
        - BN
        - BT
        - BV
        - BW
        - CF
        - CA
        - CC
        - CH
        - CL
        - CN
        - CI
        - CM
        - CD
        - CG
        - CK
        - CO
        - KM
        - CV
        - CR
        - CU
        - CW
        - CX
        - KY
        - CY
        - CZ
        - DE
        - DJ
        - DM
        - DK
        - DO
        - DZ
        - EC
        - EG
        - ER
        - EH
        - ES
        - EE
        - ET
        - FI
        - FJ
        - FK
        - FR
        - FO
        - FM
        - GA
        - GB
        - GE
        - GG
        - GH
        - GI
        - GN
        - GP
        - GM
        - GW
        - GQ
        - GR
        - GD
        - GL
        - GT
        - GF
        - GU
        - GY
        - HK
        - HM
        - HN
        - HR
        - HT
        - HU
        - ID
        - IM
        - IN
        - IO
        - IE
        - IR
        - IQ
        - IS
        - IL
        - IT
        - JM
        - JE
        - JO
        - JP
        - KZ
        - KE
        - KG
        - KH
        - KI
        - KN
        - KR
        - KW
        - LA
        - LB
        - LR
        - LY
        - LC
        - LI
        - LK
        - LS
        - LT
        - LU
        - LV
        - MO
        - MF
        - MA
        - MC
        - MD
        - MG
        - MV
        - MX
        - MH
        - MK
        - ML
        - MT
        - MM
        - ME
        - MN
        - MP
        - MZ
        - MR
        - MS
        - MQ
        - MU
        - MW
        - MY
        - YT
        - NA
        - NC
        - NE
        - NF
        - NG
        - NI
        - NU
        - NL
        - 'NO'
        - NP
        - NR
        - NZ
        - OM
        - PK
        - PA
        - PN
        - PE
        - PH
        - PW
        - PG
        - PL
        - PR
        - KP
        - PT
        - PY
        - PS
        - PF
        - QA
        - RE
        - RO
        - RU
        - RW
        - SA
        - SD
        - SN
        - SG
        - GS
        - SH
        - SJ
        - SB
        - SL
        - SV
        - SM
        - SO
        - PM
        - RS
        - SS
        - ST
        - SR
        - SK
        - SI
        - SE
        - SZ
        - SX
        - SC
        - SY
        - TC
        - TD
        - TG
        - TH
        - TJ
        - TK
        - TM
        - TL
        - TO
        - TT
        - TN
        - TR
        - TV
        - TW
        - TZ
        - UG
        - UA
        - UM
        - UY
        - US
        - UZ
        - VA
        - VC
        - VE
        - VG
        - VI
        - VN
        - VU
        - WF
        - WS
        - XK
        - YE
        - ZA
        - ZM
        - ZW
    CreateAchTransferRequest:
      properties:
        amount:
          anyOf:
            - type: number
              maximum: 1000000
              minimum: 0.01
            - type: string
          title: Amount
        counterparty_id:
          type: string
          format: uuid
          title: Counterparty Id
        description:
          anyOf:
            - type: string
              maxLength: 10
              minLength: 1
            - type: 'null'
          title: Description
        internal_note:
          anyOf:
            - type: string
              maxLength: 255
              minLength: 5
            - type: 'null'
          title: Internal Note
        email:
          anyOf:
            - type: string
              format: email
            - type: 'null'
          title: Email
        idempotency_key:
          type: string
          maxLength: 50
          minLength: 1
          title: Idempotency Key
      type: object
      required:
        - amount
        - counterparty_id
        - idempotency_key
      title: CreateAchTransferRequest
    CreateAchTransferResponse:
      properties:
        id:
          type: string
          title: Id
        status:
          $ref: '#/components/schemas/TransferStatus'
        amount:
          type: string
          title: Amount
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        counterparty_id:
          type: string
          format: uuid
          title: Counterparty Id
        created_time:
          type: integer
          title: Created Time
        transfer_type:
          $ref: '#/components/schemas/TransferMethod'
      type: object
      required:
        - id
        - status
        - amount
        - description
        - counterparty_id
        - created_time
        - transfer_type
      title: CreateAchTransferResponse
    CreateBookTransferRequest:
      properties:
        amount:
          anyOf:
            - type: number
              maximum: 1000000000
              minimum: 0.01
            - type: string
          title: Amount
        to_account_id:
          type: string
          format: uuid
          title: To Account Id
        description:
          anyOf:
            - type: string
              maxLength: 50
              minLength: 1
            - type: 'null'
          title: Description
        idempotency_key:
          type: string
          maxLength: 50
          minLength: 1
          title: Idempotency Key
      type: object
      required:
        - amount
        - to_account_id
        - idempotency_key
      title: CreateBookTransferRequest
    CreateBookTransferResponse:
      properties:
        id:
          type: string
          title: Id
        amount:
          type: string
          title: Amount
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        created_time:
          type: integer
          title: Created Time
        transfer_type:
          $ref: '#/components/schemas/TransferMethod'
        to_account_id:
          type: string
          format: uuid
          title: To Account Id
        to_account_name:
          type: string
          title: To Account Name
        to_account_account_number_masked:
          type: string
          title: To Account Account Number Masked
        to_entity_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: To Entity Id
        to_entity_name:
          anyOf:
            - type: string
            - type: 'null'
          title: To Entity Name
      type: object
      required:
        - id
        - amount
        - description
        - created_time
        - transfer_type
        - to_account_id
        - to_account_name
        - to_account_account_number_masked
      title: CreateBookTransferResponse
    CreateContactRequest:
      properties:
        nickname:
          type: string
          maxLength: 300
          minLength: 1
          title: Nickname
          description: Display name for the contact (1-300 characters).
        email:
          anyOf:
            - type: string
              format: email
            - type: 'null'
          title: Email
          description: Optional contact email stored with the contact record.
        address:
          anyOf:
            - $ref: '#/components/schemas/MeowAddressRequest'
            - type: 'null'
          description: Optional postal address stored alongside ACH/wire/check contacts.
        counterparty:
          anyOf:
            - $ref: '#/components/schemas/CounterpartyDetailsRequest'
            - type: 'null'
          description: >-
            Banking (ACH/wire/check) instructions. Provide this OR
            crypto_address.
        crypto_address:
          anyOf:
            - $ref: '#/components/schemas/CryptoAddressRequest'
            - type: 'null'
          description: USDC crypto address. Provide this OR counterparty.
      type: object
      required:
        - nickname
      title: CreateContactRequest
      description: Payload for creating a contact via the Customer API.
    CreateInvoiceRequest:
      properties:
        customer_id:
          type: string
          format: uuid
          title: Customer Id
        line_items:
          items:
            $ref: '#/components/schemas/InvoiceLineRequest'
          type: array
          title: Line Items
        invoice_date:
          $ref: '#/components/schemas/DateString'
          description: Date the invoice is scheduled to be sent
        due_date:
          $ref: '#/components/schemas/DateString'
          description: Date the invoice is due
        payment_method_types:
          items:
            $ref: '#/components/schemas/PaymentMethodType'
          type: array
          title: Payment Method Types
          description: >-
            Payment method types to enable on the invoice. BANK_TRANSFER is
            always enabled.
        recurring_schedule:
          anyOf:
            - type: string
              maxLength: 120
              minLength: 1
              description: >-
                RFC 5545 RRULE string. Required: DTSTART, RRULE. Allowed
                frequencies: WEEKLY, MONTHLY.
            - type: 'null'
          title: Recurring Schedule
          description: >-
            Recurring schedule for the invoice. Enter a valid RFC 2445 RRULE
            string. If you need help creating one, use
            https://icalendar.org/rrule-tool.html
        send_email_on_creation:
          type: boolean
          title: Send Email On Creation
          description: >-
            If true, sends an email to the contact (and any additional
            recipients) on the invoice_date.
        additional_recipient_emails:
          anyOf:
            - items:
                type: string
                format: email
              type: array
              maxItems: 20
            - type: 'null'
          title: Additional Recipient Emails
          description: Additional recipient emails to send the invoice and any reminders to
        note:
          anyOf:
            - type: string
              maxLength: 300
            - type: 'null'
          title: Note
          description: Note to include on the invoice
        name:
          anyOf:
            - type: string
              maxLength: 32
            - type: 'null'
          title: Name
          description: Name of the invoice
        collection_account_id:
          type: string
          format: uuid
          title: Collection Account Id
          description: Account ID that payments on this invoice will be deposited to
        show_contact_address:
          type: boolean
          title: Show Contact Address
          description: Whether to show the contact's address on the invoice, if it exists
          default: false
      type: object
      required:
        - customer_id
        - line_items
        - invoice_date
        - due_date
        - payment_method_types
        - send_email_on_creation
        - collection_account_id
      title: CreateInvoiceRequest
    CreateInvoicingCustomerRequest:
      properties:
        nickname:
          type: string
          minLength: 1
          title: Nickname
        email:
          type: string
          format: email
          title: Email
        address:
          anyOf:
            - $ref: '#/components/schemas/AddressRequest'
            - type: 'null'
      type: object
      required:
        - nickname
        - email
      title: CreateInvoicingCustomerRequest
    CreateProductRequest:
      properties:
        name:
          type: string
          maxLength: 100
          title: Name
        description:
          anyOf:
            - type: string
              maxLength: 400
            - type: 'null'
          title: Description
        default_price:
          anyOf:
            - type: number
              maximum: 10000000
              minimum: 0
            - type: string
          title: Default Price
          description: Default price for the product (0.00 to 10,000,000.00)
      type: object
      required:
        - name
        - default_price
      title: CreateProductRequest
    CreateScheduledAchTransferRequest:
      properties:
        amount:
          anyOf:
            - type: number
              maximum: 1000000
              minimum: 0.01
            - type: string
          title: Amount
        counterparty_id:
          type: string
          format: uuid
          title: Counterparty Id
        description:
          anyOf:
            - type: string
              maxLength: 10
              minLength: 1
            - type: 'null'
          title: Description
        internal_note:
          anyOf:
            - type: string
              maxLength: 255
              minLength: 5
            - type: 'null'
          title: Internal Note
        email:
          anyOf:
            - type: string
              format: email
            - type: 'null'
          title: Email
        idempotency_key:
          type: string
          maxLength: 50
          minLength: 1
          title: Idempotency Key
        rrule:
          type: string
          maxLength: 120
          minLength: 1
          title: Rrule
          description: >-
            RFC 5545 RRULE string. Required: DTSTART, RRULE. Allowed
            frequencies: WEEKLY, MONTHLY.
      type: object
      required:
        - amount
        - counterparty_id
        - idempotency_key
        - rrule
      title: CreateScheduledAchTransferRequest
    CreateScheduledAchTransferResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        status:
          $ref: '#/components/schemas/TransferStatus'
        amount:
          type: string
          title: Amount
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
        counterparty_id:
          type: string
          format: uuid
          title: Counterparty Id
        rrule:
          type: string
          maxLength: 120
          minLength: 1
          title: Rrule
          description: >-
            RFC 5545 RRULE string. Required: DTSTART, RRULE. Allowed
            frequencies: WEEKLY, MONTHLY.
        first_occurrence:
          $ref: '#/components/schemas/Timestamp'
        transfer_type:
          $ref: '#/components/schemas/TransferMethod'
      type: object
      required:
        - id
        - status
        - amount
        - description
        - counterparty_id
        - rrule
        - first_occurrence
        - transfer_type
      title: CreateScheduledAchTransferResponse
    CreateUSDCTransactionRequest:
      properties:
        amount:
          anyOf:
            - type: number
              maximum: 1000000000
              minimum: 1
            - type: string
          title: Amount
        static_memo_id:
          type: string
          format: uuid
          title: Static Memo Id
        internal_note:
          anyOf:
            - type: string
              maxLength: 255
              minLength: 5
            - type: 'null'
          title: Internal Note
        emails:
          anyOf:
            - items:
                type: string
              type: array
              maxItems: 255
              minItems: 5
            - type: 'null'
          title: Emails
      type: object
      required:
        - amount
        - static_memo_id
      title: CreateUSDCTransactionRequest
      description: |-
        Request model for creating a USDC transaction.

        Attributes:
            amount: The amount to send in USD (min $1, max $1,000,000,000)
            internal_note: Optional text for creating an internal note about the transaction
            emails: Optional list of email addresses to send notifications to
            static_memo_id: The ID of the static memo containing destination information
    CreateUSDCTransactionResponse:
      properties:
        id:
          type: string
          title: Id
        status:
          $ref: '#/components/schemas/TransferStatus'
        amount:
          type: string
          title: Amount
        internal_note:
          anyOf:
            - type: string
            - type: 'null'
          title: Internal Note
        created_time:
          type: integer
          title: Created Time
        destination_address:
          type: string
          title: Destination Address
        destination_payment_rail:
          $ref: '#/components/schemas/ExtBridgePaymentRail'
        destination_address_nickname:
          anyOf:
            - type: string
            - type: 'null'
          title: Destination Address Nickname
      type: object
      required:
        - id
        - status
        - amount
        - created_time
        - destination_address
        - destination_payment_rail
      title: CreateUSDCTransactionResponse
    CreateWireTransferRequest:
      properties:
        email:
          anyOf:
            - type: string
              format: email
            - type: 'null'
          title: Email
          description: Email address to notify when the operation completes
        amount:
          anyOf:
            - type: number
              maximum: 1000000000
              minimum: 1
            - type: string
          title: Amount
        counterparty_id:
          type: string
          format: uuid
          title: Counterparty Id
        instructions:
          anyOf:
            - type: string
              maxLength: 140
              minLength: 1
            - type: 'null'
          title: Instructions
        purpose:
          anyOf:
            - type: string
              maxLength: 64
              minLength: 1
            - type: 'null'
          title: Purpose
        internal_note:
          anyOf:
            - type: string
              maxLength: 255
              minLength: 5
            - type: 'null'
          title: Internal Note
        idempotency_key:
          type: string
          maxLength: 50
          minLength: 1
          title: Idempotency Key
      type: object
      required:
        - amount
        - counterparty_id
        - idempotency_key
      title: CreateWireTransferRequest
    CreateWireTransferResponse:
      properties:
        id:
          type: string
          title: Id
        status:
          $ref: '#/components/schemas/TransferStatus'
        amount:
          type: string
          title: Amount
        instructions:
          anyOf:
            - type: string
            - type: 'null'
          title: Instructions
        counterparty_id:
          type: string
          format: uuid
          title: Counterparty Id
        created_time:
          type: integer
          title: Created Time
        transfer_type:
          $ref: '#/components/schemas/TransferMethod'
      type: object
      required:
        - id
        - status
        - amount
        - instructions
        - counterparty_id
        - created_time
        - transfer_type
      title: CreateWireTransferResponse
    CryptoAddressRequest:
      properties:
        address:
          type: string
          maxLength: 50
          minLength: 10
          title: Address
        payment_rail:
          $ref: '#/components/schemas/ExtBridgePaymentRail'
        currency:
          $ref: '#/components/schemas/ExtBridgeCryptocurrency'
      type: object
      required:
        - address
        - payment_rail
        - currency
      title: CryptoAddressRequest
    CryptoContactDestinationResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        destination_address:
          type: string
          title: Destination Address
        destination_payment_rail:
          $ref: '#/components/schemas/ExtBridgePaymentRail'
        destination_currency:
          $ref: '#/components/schemas/ExtBridgeCryptocurrency'
      type: object
      required:
        - id
        - destination_address
        - destination_payment_rail
        - destination_currency
      title: CryptoContactDestinationResponse
    Currency:
      properties:
        currencyCode:
          $ref: '#/components/schemas/Iso4217Code'
          description: ISO 4217 currency code
      type: object
      required:
        - currencyCode
      title: Currency
    CurrentApiKeyResponse:
      properties:
        id:
          type: string
          title: Id
          description: Opaque identifier for the API key
        key_type:
          $ref: '#/components/schemas/ApiKeyType'
          description: Type of API key
        scopes:
          items:
            $ref: '#/components/schemas/ApiKeyScope'
          type: array
          title: Scopes
          description: Ordered list of scopes granted to this key
        owner_entity:
          anyOf:
            - $ref: '#/components/schemas/ApiKeyEntityInfo'
            - type: 'null'
          description: Entity associated with the key when applicable
        owner_email:
          anyOf:
            - type: string
            - type: 'null'
          title: Owner Email
          description: Email address of the user who owns the key when applicable
      type: object
      required:
        - id
        - key_type
        - scopes
      title: CurrentApiKeyResponse
      description: Metadata describing the API key used for the current request.
      example:
        id: a_AEVN-4eFgihjZr8-BH3g
        key_type: entity
        owner_entity:
          entity_id: 94a60dc7-93ab-4fed-8b2f-4008cdf7289b
          entity_name: AMITY
        scopes:
          - accounts:read
          - accounts:transactions
          - transfers:book:write
    CustomerApiAchPaymentMethod:
      properties:
        counterparty_id:
          type: string
          format: uuid
          title: Counterparty Id
          description: The unique identifier for the counterparty
        name_on_account:
          type: string
          title: Name On Account
          description: The name on the bank account
        nickname:
          type: string
          title: Nickname
          description: A nickname for the payment method
        account_type:
          $ref: '#/components/schemas/TreasuryPrimeAccountType'
          description: The type of bank account
        account_number:
          type: string
          title: Account Number
          description: The bank account number
        routing_number:
          type: string
          title: Routing Number
          description: The bank routing number
        address_on_account:
          anyOf:
            - $ref: '#/components/schemas/MeowApiAddress'
            - type: 'null'
          description: The address associated with the bank account
      type: object
      required:
        - counterparty_id
        - name_on_account
        - nickname
        - account_type
        - account_number
        - routing_number
      title: CustomerApiAchPaymentMethod
    CustomerApiCheckPaymentMethod:
      properties:
        counterparty_id:
          type: string
          format: uuid
          title: Counterparty Id
          description: The unique identifier for the counterparty
        name_on_account:
          type: string
          title: Name On Account
          description: The name on the check
        nickname:
          type: string
          title: Nickname
          description: A nickname for the payment method
        mailing_address:
          $ref: '#/components/schemas/MeowApiAddress'
          description: The mailing address for the check
      type: object
      required:
        - counterparty_id
        - name_on_account
        - nickname
        - mailing_address
      title: CustomerApiCheckPaymentMethod
    CustomerApiContact:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier for the contact
        nickname:
          type: string
          maxLength: 400
          minLength: 1
          title: Nickname
          description: A nickname or display name for the contact
        email:
          anyOf:
            - type: string
              format: email
            - type: 'null'
          title: Email
          description: The email address of the contact
        address:
          anyOf:
            - $ref: '#/components/schemas/MeowApiAddress'
            - type: 'null'
          description: The physical address of the contact
        payment_methods:
          $ref: '#/components/schemas/CustomerApiPaymentMethods'
          description: Payment methods associated with this contact
        supported_payment_methods:
          items:
            $ref: '#/components/schemas/CustomerApiPaymentMethodType'
          type: array
          title: Supported Payment Methods
          description: List of payment methods supported by this contact
        last_payment_reason:
          anyOf:
            - $ref: '#/components/schemas/ExtAwxPaymentReason'
            - type: 'null'
          description: The reason for the last payment made to this contact
      type: object
      required:
        - id
        - nickname
        - payment_methods
        - supported_payment_methods
      title: CustomerApiContact
    CustomerApiContactsList:
      properties:
        contacts:
          items:
            $ref: '#/components/schemas/CustomerApiContact'
          type: array
          title: Contacts
          description: List of contacts
      type: object
      required:
        - contacts
      title: CustomerApiContactsList
    CustomerApiInternationalPaymentMethod:
      properties:
        beneficiary_id:
          type: string
          title: Beneficiary Id
          description: The unique identifier for the international beneficiary
        preferred_currency:
          anyOf:
            - $ref: '#/components/schemas/Iso4217Code'
            - type: 'null'
          description: The preferred currency for payments to this beneficiary
      type: object
      required:
        - beneficiary_id
      title: CustomerApiInternationalPaymentMethod
    CustomerApiPaymentMethodType:
      type: string
      enum:
        - ach
        - wire
        - check
        - international
        - crypto
        - static_memo
      title: CustomerApiPaymentMethodType
      x-enum-varnames:
        - ach
        - wire
        - check
        - international
        - crypto
        - static_memo
    CustomerApiPaymentMethods:
      properties:
        ach:
          anyOf:
            - $ref: '#/components/schemas/CustomerApiAchPaymentMethod'
            - type: 'null'
          description: ACH payment method details
        wire:
          anyOf:
            - $ref: '#/components/schemas/CustomerApiWirePaymentMethod'
            - type: 'null'
          description: Wire payment method details
        check:
          anyOf:
            - $ref: '#/components/schemas/CustomerApiCheckPaymentMethod'
            - type: 'null'
          description: Check payment method details
        international:
          anyOf:
            - $ref: '#/components/schemas/CustomerApiInternationalPaymentMethod'
            - type: 'null'
          description: International payment method details
        crypto:
          items:
            $ref: '#/components/schemas/CryptoContactDestinationResponse'
          type: array
          title: Crypto
          description: List of crypto delivery destinations
        static_memos:
          items:
            $ref: '#/components/schemas/BridgeStaticMemoResponse'
          type: array
          title: Static Memos
          description: List of static memo destinations
      type: object
      title: CustomerApiPaymentMethods
    CustomerApiWireIntermediaryBank:
      properties:
        name:
          type: string
          title: Name
          description: The name of the intermediary bank
        routing_number:
          type: string
          title: Routing Number
          description: The routing number of the intermediary bank
        address:
          $ref: '#/components/schemas/MeowApiAddress'
          description: The address of the intermediary bank
      type: object
      required:
        - name
        - routing_number
        - address
      title: CustomerApiWireIntermediaryBank
    CustomerApiWirePaymentMethod:
      properties:
        counterparty_id:
          type: string
          format: uuid
          title: Counterparty Id
          description: The unique identifier for the counterparty
        name_on_account:
          type: string
          title: Name On Account
          description: The name on the bank account
        nickname:
          type: string
          title: Nickname
          description: A nickname for the payment method
        bank_name:
          type: string
          title: Bank Name
          description: The name of the bank
        account_number:
          type: string
          title: Account Number
          description: The bank account number
        routing_number:
          type: string
          title: Routing Number
          description: The bank routing number
        beneficiary_address:
          $ref: '#/components/schemas/MeowApiAddress'
          description: The address of the beneficiary
        bank_address:
          $ref: '#/components/schemas/MeowApiAddress'
          description: The address of the bank
        intermediary_bank:
          anyOf:
            - $ref: '#/components/schemas/CustomerApiWireIntermediaryBank'
            - type: 'null'
          description: Optional intermediary bank details
      type: object
      required:
        - counterparty_id
        - name_on_account
        - nickname
        - bank_name
        - account_number
        - routing_number
        - beneficiary_address
        - bank_address
      title: CustomerApiWirePaymentMethod
    DateString:
      type: string
      format: date
      title: DateString
      description: >-
        ISO 8601 full-date in format 'YYYY-MM-DD' according to [IETF
        RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)
    DebitCreditMemo:
      type: string
      enum:
        - CREDIT
        - DEBIT
        - MEMO
        - NONE
      title: DebitCreditMemo
    DepositAccount:
      properties:
        accountId:
          $ref: '#/components/schemas/Identifier'
          description: Unique identifier for this account
        accountType:
          $ref: '#/components/schemas/AccountType'
          description: The type of account
        accountNumberDisplay:
          anyOf:
            - type: string
            - type: 'null'
          title: Accountnumberdisplay
          description: Last 4 digits of the account number
          examples:
            - 4321
        productName:
          type: string
          title: Productname
          description: Product name (e.g., Business Checking, Treasury)
        nickname:
          anyOf:
            - type: string
            - type: 'null'
          title: Nickname
          description: Custom display name for the account
        status:
          $ref: '#/components/schemas/AccountStatus'
          description: Current account status
        currency:
          $ref: '#/components/schemas/Currency'
          description: Currency of the account
        currentBalance:
          type: number
          title: Currentbalance
          description: Total balance of posted transactions
        availableBalance:
          type: number
          title: Availablebalance
          description: Balance available for transfers and payments
        bankProductType:
          anyOf:
            - type: string
            - type: 'null'
          title: Bankproducttype
          description: Bank partner for this account
      type: object
      required:
        - accountId
        - accountType
        - productName
        - status
        - currency
        - currentBalance
        - availableBalance
      title: DepositAccount
    DepositAccountDescriptor:
      properties:
        depositAccount:
          $ref: '#/components/schemas/DepositAccountInfo'
          description: Deposit account details
      additionalProperties: false
      type: object
      required:
        - depositAccount
      title: DepositAccountDescriptor
    DepositAccountInfo:
      properties:
        accountId:
          $ref: '#/components/schemas/Identifier'
          description: Unique identifier for this account
        accountType:
          $ref: '#/components/schemas/AccountType'
          description: The type of account
        accountNumberDisplay:
          anyOf:
            - type: string
            - type: 'null'
          title: Accountnumberdisplay
          description: Last 4 digits of the account number
          examples:
            - 4321
        productName:
          type: string
          title: Productname
          description: Product name (e.g., Business Checking, Treasury)
        nickname:
          anyOf:
            - type: string
            - type: 'null'
          title: Nickname
          description: Custom display name for the account
        status:
          $ref: '#/components/schemas/AccountStatus'
          description: Current account status
        currency:
          $ref: '#/components/schemas/Currency'
          description: Currency of the account
        bankProductType:
          anyOf:
            - type: string
            - type: 'null'
          title: Bankproducttype
          description: Bank partner for this account
      type: object
      required:
        - accountId
        - accountType
        - productName
        - status
        - currency
      title: DepositAccountInfo
    DepositAccountWithDetail:
      properties:
        depositAccount:
          $ref: '#/components/schemas/DepositAccount'
          description: Deposit account with balances
      additionalProperties: false
      type: object
      required:
        - depositAccount
      title: DepositAccountWithDetail
    DepositTransaction:
      properties:
        transactionId:
          $ref: '#/components/schemas/Identifier'
          description: >-
            Long term persistent identity of the transaction (unique to
            account). Transactions with status PENDING and POSTED should have
            different IDs.
        referenceTransactionId:
          anyOf:
            - $ref: '#/components/schemas/Identifier'
            - type: 'null'
          description: >-
            For reverse postings, the identity of the transaction being
            reversed. For the correction transaction, the identity of the
            reversing post. For credit card posting transactions, the identity
            of the authorization transaction
        postedTimestamp:
          anyOf:
            - $ref: '#/components/schemas/Timestamp'
            - type: 'null'
          description: >-
            The date and time that the transaction was posted to the account. If
            not provided then TransactionTimestamp can be used as
            PostedTimeStamp. This property should not be provided for PENDING
            transactions and is required for POSTED transactions.
        transactionTimestamp:
          $ref: '#/components/schemas/Timestamp'
          description: >-
            The date and time that the transaction was added to the server
            backend systems.
        description:
          type: string
          title: Description
          description: The description of the transaction
        debitCreditMemo:
          $ref: '#/components/schemas/DebitCreditMemo'
          description: Debit or credit memo for the transaction
        category:
          anyOf:
            - type: string
            - type: 'null'
          title: Category
          description: >-
            Transaction category, preferably MCC or SIC. Provide MCC if
            available.
        subCategory:
          anyOf:
            - type: string
            - type: 'null'
          title: Subcategory
          description: Transaction category detail
        status:
          $ref: '#/components/schemas/TransactionStatus'
          description: The status of the transaction
        amount:
          type: number
          title: Amount
          description: The amount of money in the account currency
        foreignAmount:
          anyOf:
            - type: number
            - type: 'null'
          title: Foreignamount
          description: >-
            The amount of money in the foreign currency. If this amount is
            specified, the foreignCurrency property should also be set.
        foreignCurrency:
          anyOf:
            - $ref: '#/components/schemas/Iso4217Code'
            - type: 'null'
          description: The ISO 4217 code of the foreign currency
        card_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Card Id
          description: >-
            The ID of the card used for this transaction, if it was a card
            transaction.
        transactionType:
          anyOf:
            - $ref: '#/components/schemas/DepositTransactionType'
            - type: 'null'
          description: The type of the deposit transaction
        payee:
          anyOf:
            - $ref: '#/components/schemas/String255'
            - type: 'null'
          description: Payee name
        checkNumber:
          anyOf:
            - type: integer
            - type: 'null'
          title: Checknumber
          description: Check number. Only provide this if the transaction involves a check.
      type: object
      required:
        - transactionId
        - transactionTimestamp
        - description
        - debitCreditMemo
        - status
        - amount
      title: DepositTransaction
    DepositTransactionModel:
      properties:
        depositTransaction:
          $ref: '#/components/schemas/DepositTransaction'
          description: Detailed information about the deposit transaction
      additionalProperties: false
      type: object
      required:
        - depositTransaction
      title: DepositTransactionModel
    DepositTransactionType:
      type: string
      enum:
        - ADJUSTMENT
        - ATMDEPOSIT
        - ATMWITHDRAWAL
        - BILLPAYMENT
        - CHECK
        - DEPOSIT
        - DIRECTDEPOSIT
        - DIVIDEND
        - FEE
        - INTEREST
        - POSCREDIT
        - POSDEBIT
        - TRANSFER
        - WITHDRAWAL
        - NONE
      title: DepositTransactionType
    DigitalWallet:
      properties:
        accountId:
          $ref: '#/components/schemas/Identifier'
          description: Unique identifier for this wallet
        accountCategory:
          $ref: '#/components/schemas/AccountCategory'
          description: Account category
          default: DIGITAL_WALLET
        accountType:
          $ref: '#/components/schemas/DigitalWalletType'
          description: The type of digital wallet
        accountNumberDisplay:
          anyOf:
            - type: string
            - type: 'null'
          title: Accountnumberdisplay
          description: Last 4 digits of the wallet address
          examples:
            - 4321
        productName:
          type: string
          title: Productname
          description: Product name (e.g., USDC Wallet)
        nickname:
          anyOf:
            - type: string
            - type: 'null'
          title: Nickname
          description: Custom display name for the wallet
        status:
          $ref: '#/components/schemas/AccountStatus'
          description: Current wallet status
        currency:
          $ref: '#/components/schemas/Currency'
          description: Currency of the wallet
        currentBalance:
          type: number
          title: Currentbalance
          description: Total balance of the wallet
        availableBalance:
          type: number
          title: Availablebalance
          description: Balance available for transfers
      type: object
      required:
        - accountId
        - accountType
        - productName
        - status
        - currency
        - currentBalance
        - availableBalance
      title: DigitalWallet
    DigitalWalletDescriptor:
      properties:
        digitalWallet:
          $ref: '#/components/schemas/DigitalWalletInfo'
          description: Digital wallet details
      additionalProperties: false
      type: object
      required:
        - digitalWallet
      title: DigitalWalletDescriptor
    DigitalWalletInfo:
      properties:
        accountId:
          $ref: '#/components/schemas/Identifier'
          description: Unique identifier for this wallet
        accountCategory:
          $ref: '#/components/schemas/AccountCategory'
          description: Account category
          default: DIGITAL_WALLET
        accountType:
          $ref: '#/components/schemas/DigitalWalletType'
          description: The type of digital wallet
        accountNumberDisplay:
          anyOf:
            - type: string
            - type: 'null'
          title: Accountnumberdisplay
          description: Last 4 digits of the wallet address
          examples:
            - 4321
        productName:
          type: string
          title: Productname
          description: Product name (e.g., USDC Wallet)
        nickname:
          anyOf:
            - type: string
            - type: 'null'
          title: Nickname
          description: Custom display name for the wallet
        status:
          $ref: '#/components/schemas/AccountStatus'
          description: Current wallet status
        currency:
          $ref: '#/components/schemas/Currency'
          description: Currency of the wallet
      type: object
      required:
        - accountId
        - accountType
        - productName
        - status
        - currency
      title: DigitalWalletInfo
    DigitalWalletTransaction:
      properties:
        transactionId:
          $ref: '#/components/schemas/Identifier'
          description: >-
            Long term persistent identity of the transaction (unique to
            account). Transactions with status PENDING and POSTED should have
            different IDs.
        referenceTransactionId:
          anyOf:
            - $ref: '#/components/schemas/Identifier'
            - type: 'null'
          description: >-
            For reverse postings, the identity of the transaction being
            reversed. For the correction transaction, the identity of the
            reversing post. For credit card posting transactions, the identity
            of the authorization transaction
        postedTimestamp:
          anyOf:
            - $ref: '#/components/schemas/Timestamp'
            - type: 'null'
          description: >-
            The date and time that the transaction was posted to the account. If
            not provided then TransactionTimestamp can be used as
            PostedTimeStamp. This property should not be provided for PENDING
            transactions and is required for POSTED transactions.
        transactionTimestamp:
          $ref: '#/components/schemas/Timestamp'
          description: >-
            The date and time that the transaction was added to the server
            backend systems.
        description:
          type: string
          title: Description
          description: The description of the transaction
        debitCreditMemo:
          $ref: '#/components/schemas/DebitCreditMemo'
          description: Debit or credit memo for the transaction
        category:
          anyOf:
            - type: string
            - type: 'null'
          title: Category
          description: >-
            Transaction category, preferably MCC or SIC. Provide MCC if
            available.
        subCategory:
          anyOf:
            - type: string
            - type: 'null'
          title: Subcategory
          description: Transaction category detail
        status:
          $ref: '#/components/schemas/TransactionStatus'
          description: The status of the transaction
        amount:
          type: number
          title: Amount
          description: The amount of money in the account currency
        foreignAmount:
          anyOf:
            - type: number
            - type: 'null'
          title: Foreignamount
          description: >-
            The amount of money in the foreign currency. If this amount is
            specified, the foreignCurrency property should also be set.
        foreignCurrency:
          anyOf:
            - $ref: '#/components/schemas/Iso4217Code'
            - type: 'null'
          description: The ISO 4217 code of the foreign currency
        card_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Card Id
          description: >-
            The ID of the card used for this transaction, if it was a card
            transaction.
        transactionType:
          anyOf:
            - $ref: '#/components/schemas/DigitalWalletTransactionType'
            - type: 'null'
          description: The type of the digital wallet transaction
        payee:
          anyOf:
            - $ref: '#/components/schemas/String255'
            - type: 'null'
          description: Payee or counterparty name
      type: object
      required:
        - transactionId
        - transactionTimestamp
        - description
        - debitCreditMemo
        - status
        - amount
      title: DigitalWalletTransaction
    DigitalWalletTransactionModel:
      properties:
        digitalWalletTransaction:
          $ref: '#/components/schemas/DigitalWalletTransaction'
          description: Detailed information about the digital wallet transaction
      additionalProperties: false
      type: object
      required:
        - digitalWalletTransaction
      title: DigitalWalletTransactionModel
    DigitalWalletTransactionType:
      type: string
      enum:
        - DEPOSIT
        - WITHDRAWAL
        - FEE
        - INTEREST
      title: DigitalWalletTransactionType
    DigitalWalletType:
      type: string
      enum:
        - DIGITALWALLET
      title: DigitalWalletType
    DigitalWalletWithDetail:
      properties:
        digitalWallet:
          $ref: '#/components/schemas/DigitalWallet'
          description: Digital wallet with balances
      additionalProperties: false
      type: object
      required:
        - digitalWallet
      title: DigitalWalletWithDetail
    ExtAwxPaymentReason:
      type: string
      enum:
        - audio_visual_services
        - bill_payment
        - business_expenses
        - construction
        - donation_charitable_contribution
        - education_training
        - family_support
        - freight
        - goods_purchased
        - investment_capital
        - investment_proceeds
        - living_expenses
        - loan_credit_repayment
        - medical_services
        - pension
        - personal_remittance
        - professional_business_services
        - real_estate
        - taxes
        - technical_services
        - transfer_to_own_account
        - travel
        - wages_salary
        - other_services
      title: ExtAwxPaymentReason
      x-enum-varnames:
        - AUDIO_VISUAL_SERVICES
        - BILL_PAYMENT
        - BUSINESS_EXPENSES
        - CONSTRUCTION
        - DONATION_CHARITABLE_CONTRIBUTION
        - EDUCATION_TRAINING
        - FAMILY_SUPPORT
        - FREIGHT
        - GOODS_PURCHASED
        - INVESTMENT_CAPITAL
        - INVESTMENT_PROCEEDS
        - LIVING_EXPENSES
        - LOAN_CREDIT_REPAYMENT
        - MEDICAL_SERVICES
        - PENSION
        - PERSONAL_REMITTANCE
        - PROFESSIONAL_BUSINESS_SERVICES
        - REAL_ESTATE
        - TAXES
        - TECHNICAL_SERVICES
        - TRANSFER_TO_OWN_ACCOUNT
        - TRAVEL
        - WAGES_SALARY
        - OTHER_SERVICES
    ExtBridgeCryptocurrency:
      type: string
      enum:
        - usdb
        - usdc
        - usdt
        - dai
        - pyusd
        - cash
        - usdg
        - eurc
        - usd
      title: ExtBridgeCryptocurrency
      x-enum-varnames:
        - usdb
        - usdc
        - usdt
        - dai
        - pyusd
        - cash
        - usdg
        - eurc
        - usd
    ExtBridgePaymentRail:
      type: string
      enum:
        - arbitrum
        - avalanche_c_chain
        - base
        - ethereum
        - optimism
        - polygon
        - solana
        - stellar
        - tron
        - ach
        - ach_push
        - ach_same_day
        - wire
      title: ExtBridgePaymentRail
      x-enum-varnames:
        - arbitrum
        - avalanche_c_chain
        - base
        - ethereum
        - optimism
        - polygon
        - solana
        - stellar
        - tron
        - ach
        - ach_push
        - ach_same_day
        - wire
    GetUSDCTransactionResponse:
      properties:
        id:
          type: string
          title: Id
        amount:
          type: string
          title: Amount
        destination_address:
          type: string
          title: Destination Address
        destination_payment_rail:
          $ref: '#/components/schemas/ExtBridgePaymentRail'
        destination_tx_hash:
          anyOf:
            - type: string
            - type: 'null'
          title: Destination Tx Hash
        destination_address_nickname:
          anyOf:
            - type: string
            - type: 'null'
          title: Destination Address Nickname
      type: object
      required:
        - id
        - amount
        - destination_address
        - destination_payment_rail
      title: GetUSDCTransactionResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
      type: object
      title: HTTPValidationError
    Holding:
      properties:
        securityId:
          anyOf:
            - type: string
            - type: 'null'
          title: Securityid
          description: >-
            Security identifier for looking up closing price from NYSE Group
            Security Master. This field, along with `securityIdType` are
            **required** unless `symbol` is provided. **Note:** If `securityId`
            is provided, `securityIdType` is required.
        securityIdType:
          anyOf:
            - $ref: '#/components/schemas/SecurityIdType'
            - type: 'null'
          description: Type of security identifier provided (e.g., CUSIP, ISIN).
        holdingName:
          anyOf:
            - type: string
            - type: 'null'
          title: Holdingname
          description: Holding name or security name
        holdingType:
          anyOf:
            - $ref: '#/components/schemas/HoldingType'
            - type: 'null'
          description: The high-level type of the holding (e.g., STOCK, BOND).
        holdingSubType:
          anyOf:
            - $ref: '#/components/schemas/HoldingSubType'
            - type: 'null'
          description: The more granular subtype of the holding (e.g., CASH, MONEYMARKET).
        symbol:
          anyOf:
            - type: string
            - type: 'null'
          title: Symbol
          description: >-
            Ticker / Market symbol. This field is **required** unless both
            `securityId` and `securityIdType` are provided
        purchasedPrice:
          anyOf:
            - type: number
            - type: 'null'
          title: Purchasedprice
          description: >-
            Price of holding at the time of purchase. Used to determine the
            approximate cost basis using the purchase price and the number of
            units.
        currentUnitPrice:
          anyOf:
            - type: number
            - type: 'null'
          title: Currentunitprice
          description: >-
            Current unit price. Used as the institution price and fallback for
            the close price if a security ID is not provided.
        currentUnitPriceDate:
          anyOf:
            - $ref: '#/components/schemas/DateString'
            - type: 'null'
          description: >-
            Current unit price as of date. ISO 8601 full-date in format
            'YYYY-MM-DD' according to [IETF
            RFC3339](https://datatracker.ietf.org/doc/html/rfc3339.html#section-5.6)
        units:
          anyOf:
            - type: number
            - type: 'null'
          title: Units
          description: >-
            Required for holdings involving securities. For security-based
            actions other than stock splits, quantity. Shares for stocks, mutual
            funds, and others. Face value for bonds. Contracts for options.
            **Note:** This field is required if the transaction involves a
            security.
        marketValue:
          type: number
          title: Marketvalue
          description: Market value at the time of data retrieved
        faceValue:
          anyOf:
            - type: number
            - type: 'null'
          title: Facevalue
          description: >-
            Required for bonds. Face value at the time of data retrieved. If not
            present, assume the holding isn't a bond and fall back to
            `marketValue`.
        cashAccount:
          type: boolean
          title: Cashaccount
          description: >-
            If true, indicates that this holding is used to maintain proceeds
            from sales, dividends, and other cash postings to the investment
            account. Used in determining if the security is a cash equivalent.
          default: false
        currency:
          anyOf:
            - $ref: '#/components/schemas/Currency'
            - type: 'null'
          description: Currency information if it is different from Account entity
      type: object
      required:
        - marketValue
      title: Holding
      description: |-
        A holding in an investment account.
        Holdings in the investment account.
    HoldingSubType:
      type: string
      enum:
        - CASH
        - MONEYMARKET
      title: HoldingSubType
      description: >-
        The subtype of an investment holding. Use `OTHER` and set the
        `holdingSubType` to indicate cash-type holdings (CASH, MONEYMARKET).
    HoldingType:
      type: string
      enum:
        - ANNUITY
        - BOND
        - CD
        - MUTUALFUND
        - OPTION
        - OTHER
        - STOCK
      title: HoldingType
      description: >-
        Types of financial holdings or investments.


        ANNUITY - A contract sold by financial institutions that provides fixed
        payments to the holder at specified intervals

        BOND - A debt security where an investor loans money to an entity for a
        defined period at a fixed interest rate

        CD - Certificate of Deposit, a time deposit with a bank with fixed term
        and interest rate

        MUTUALFUND - An investment vehicle made up of a pool of funds collected
        from many investors

        OPTION - A contract giving the buyer the right to buy or sell an
        underlying asset at a specific price

        OTHER - Any holding type not covered by the other categories

        STOCK - Shares or equity in a corporation
    Identifier:
      type: string
      maxLength: 256
      title: Identifier
      description: Value for a unique identifier
    IntermediaryBank:
      properties:
        name:
          type: string
          maxLength: 35
          minLength: 1
          title: Name
        routing_number:
          type: string
          maxLength: 9
          minLength: 9
          title: Routing Number
        address:
          $ref: '#/components/schemas/MeowApiAddress'
      type: object
      required:
        - name
        - routing_number
        - address
      title: IntermediaryBank
    InvestmentAccount:
      properties:
        accountId:
          $ref: '#/components/schemas/Identifier'
          description: Unique identifier for this account
        accountType:
          $ref: '#/components/schemas/AccountType'
          description: The type of account
        accountNumberDisplay:
          anyOf:
            - type: string
            - type: 'null'
          title: Accountnumberdisplay
          description: Last 4 digits of the account number
          examples:
            - 4321
        productName:
          type: string
          title: Productname
          description: Product name (e.g., Business Checking, Treasury)
        nickname:
          anyOf:
            - type: string
            - type: 'null'
          title: Nickname
          description: Custom display name for the account
        status:
          $ref: '#/components/schemas/AccountStatus'
          description: Current account status
        currency:
          $ref: '#/components/schemas/Currency'
          description: Currency of the account
        availableCashBalance:
          type: number
          title: Availablecashbalance
          description: Cash available for withdrawal or investment
        currentValue:
          type: number
          title: Currentvalue
          description: Total current value of the account including all holdings
        holdings:
          anyOf:
            - items:
                $ref: '#/components/schemas/Holding'
              type: array
            - type: 'null'
          title: Holdings
          description: List of securities and cash positions in the account
      type: object
      required:
        - accountId
        - accountType
        - productName
        - status
        - currency
        - availableCashBalance
        - currentValue
        - holdings
      title: InvestmentAccount
    InvestmentAccountDescriptor:
      properties:
        investmentAccount:
          $ref: '#/components/schemas/AccountDescriptor'
          description: Investment account details
      additionalProperties: false
      type: object
      required:
        - investmentAccount
      title: InvestmentAccountDescriptor
    InvestmentAccountWithDetail:
      properties:
        investmentAccount:
          $ref: '#/components/schemas/InvestmentAccount'
          description: Investment account with balances and holdings
      additionalProperties: false
      type: object
      required:
        - investmentAccount
      title: InvestmentAccountWithDetail
    InvestmentTransaction:
      properties:
        transactionId:
          $ref: '#/components/schemas/Identifier'
          description: >-
            Long term persistent identity of the transaction (unique to
            account). Transactions with status PENDING and POSTED should have
            different IDs.
        referenceTransactionId:
          anyOf:
            - $ref: '#/components/schemas/Identifier'
            - type: 'null'
          description: >-
            For reverse postings, the identity of the transaction being
            reversed. For the correction transaction, the identity of the
            reversing post. For credit card posting transactions, the identity
            of the authorization transaction
        postedTimestamp:
          anyOf:
            - $ref: '#/components/schemas/Timestamp'
            - type: 'null'
          description: >-
            The date and time that the transaction was posted to the account. If
            not provided then TransactionTimestamp can be used as
            PostedTimeStamp. This property should not be provided for PENDING
            transactions and is required for POSTED transactions.
        transactionTimestamp:
          $ref: '#/components/schemas/Timestamp'
          description: >-
            The date and time that the transaction was added to the server
            backend systems.
        description:
          type: string
          title: Description
          description: The description of the transaction
        debitCreditMemo:
          $ref: '#/components/schemas/DebitCreditMemo'
          description: Debit or credit memo for the transaction
        category:
          anyOf:
            - type: string
            - type: 'null'
          title: Category
          description: >-
            Transaction category, preferably MCC or SIC. Provide MCC if
            available.
        subCategory:
          anyOf:
            - type: string
            - type: 'null'
          title: Subcategory
          description: Transaction category detail
        status:
          $ref: '#/components/schemas/TransactionStatus'
          description: The status of the transaction
        amount:
          type: number
          title: Amount
          description: The amount of money in the account currency
        foreignAmount:
          anyOf:
            - type: number
            - type: 'null'
          title: Foreignamount
          description: >-
            The amount of money in the foreign currency. If this amount is
            specified, the foreignCurrency property should also be set.
        foreignCurrency:
          anyOf:
            - $ref: '#/components/schemas/Iso4217Code'
            - type: 'null'
          description: The ISO 4217 code of the foreign currency
        card_id:
          anyOf:
            - type: string
            - type: 'null'
          title: Card Id
          description: >-
            The ID of the card used for this transaction, if it was a card
            transaction.
        transactionType:
          $ref: '#/components/schemas/InvestmentTransactionType'
          description: Investment transaction type
        securityId:
          anyOf:
            - type: string
            - type: 'null'
          title: Securityid
          description: Security ID
        securityIdType:
          anyOf:
            - $ref: >-
                #/components/schemas/customer_api__v1__app__transactions__models__SecurityIdType
            - type: 'null'
          description: Security ID type
        securityType:
          anyOf:
            - $ref: '#/components/schemas/SecurityType'
            - type: 'null'
          description: Security type
        symbol:
          anyOf:
            - type: string
            - type: 'null'
          title: Symbol
          description: Ticker symbol
        commission:
          anyOf:
            - type: number
            - type: 'null'
          title: Commission
          description: Commission
        fees:
          type: number
          title: Fees
          description: Fees
        unitPrice:
          anyOf:
            - type: number
            - type: 'null'
          title: Unitprice
          description: Unit price
        units:
          anyOf:
            - type: number
            - type: 'null'
          title: Units
          description: Units
        unitType:
          anyOf:
            - $ref: '#/components/schemas/UnitType'
            - type: 'null'
          description: Unit type
      type: object
      required:
        - transactionId
        - transactionTimestamp
        - description
        - debitCreditMemo
        - status
        - amount
        - transactionType
        - fees
      title: InvestmentTransaction
    InvestmentTransactionModel:
      properties:
        investmentTransaction:
          $ref: '#/components/schemas/InvestmentTransaction'
          description: Detailed information about the investment transaction
      additionalProperties: false
      type: object
      required:
        - investmentTransaction
      title: InvestmentTransactionModel
    InvestmentTransactionType:
      type: string
      enum:
        - ADJUSTMENT
        - ATM
        - CASH
        - CHECK
        - CLOSURE
        - CLOSUREOPT
        - CONTRIBUTION
        - DEP
        - DEPOSIT
        - DIRECTDEBIT
        - DIRECTDEP
        - DIV
        - DIVIDEND
        - DIVIDENDREINVEST
        - EXPENSE
        - FEE
        - INCOME
        - INTEREST
        - INVEXPENSE
        - JRNLFUND
        - JRNLSEC
        - MARGININTEREST
        - OPTIONEXERCISE
        - OPTIONEXPIRATION
        - OTHER
        - PAYMENT
        - POS
        - PURCHASED
        - PURCHASEDTOCOVER
        - PURCHASETOCLOSE
        - PURCHASETOOPEN
        - REINVESTOFINCOME
        - REPEATPMT
        - RETURNOFCAPITAL
        - SOLD
        - SOLDTOCLOSE
        - SOLDTOOPEN
        - SPLIT
        - SRVCHG
        - TRANSFER
        - XFER
      title: InvestmentTransactionType
    Invoice:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier for the invoice
        name:
          anyOf:
            - type: string
            - type: 'null'
          title: Name
          description: The name of the invoice
        customer_id:
          type: string
          format: uuid
          title: Customer Id
          description: The unique identifier for the customer
        line_item_ids:
          items:
            type: string
            format: uuid
          type: array
          title: Line Item Ids
          description: List of line item IDs associated with the invoice
        invoice_date:
          anyOf:
            - $ref: '#/components/schemas/DateString'
            - type: 'null'
          description: The date the invoice is scheduled to be sent
        due_date:
          anyOf:
            - $ref: '#/components/schemas/DateString'
            - type: 'null'
          description: The date the invoice payment is due
        payment_method_types:
          items:
            $ref: '#/components/schemas/PaymentMethodType'
          type: array
          title: Payment Method Types
          description: List of allowed payment methods for the invoice
        send_email_on_creation:
          type: boolean
          title: Send Email On Creation
          description: Whether to send an email upon invoice creation
        additional_recipient_emails:
          items:
            type: string
          type: array
          title: Additional Recipient Emails
          description: List of additional email addresses to receive the invoice
        note:
          anyOf:
            - type: string
            - type: 'null'
          title: Note
          description: A note associated with the invoice
        collection_account_id:
          type: string
          format: uuid
          title: Collection Account Id
          description: The account ID where funds will be collected
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: The timestamp when the invoice was created
        updated_at:
          anyOf:
            - $ref: '#/components/schemas/Timestamp'
            - type: 'null'
          description: The timestamp when the invoice was last updated
      type: object
      required:
        - id
        - customer_id
        - line_item_ids
        - payment_method_types
        - send_email_on_creation
        - additional_recipient_emails
        - collection_account_id
        - created_at
      title: Invoice
    InvoiceLineRequest:
      properties:
        product_id:
          type: string
          format: uuid
          title: Product Id
        quantity:
          anyOf:
            - type: number
              maximum: 100000000
              exclusiveMinimum: 0.001
            - type: string
          title: Quantity
          description: Quantity of the product
        price:
          anyOf:
            - anyOf:
                - type: number
                  maximum: 100000000
                  minimum: 0.01
                - type: string
              description: Price of the product, defaults to the product's default price
            - type: 'null'
          title: Price
        description:
          anyOf:
            - type: string
              maxLength: 400
            - type: 'null'
          title: Description
          description: >-
            Description of the product, will default to the product's
            description if not provided
        discount_percentage:
          anyOf:
            - anyOf:
                - type: number
                  maximum: 100
                  minimum: 0
                - type: string
              description: Discount percentage of the product
            - type: 'null'
          title: Discount Percentage
        discount_description:
          anyOf:
            - type: string
              maxLength: 100
            - type: 'null'
          title: Discount Description
          description: Description of the discount applied to the product
      type: object
      required:
        - product_id
        - quantity
      title: InvoiceLineRequest
      description: >-
        Customer API invoice line request with optional amount, description, and
        price.
    InvoiceProductResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier for the product
        name:
          type: string
          title: Name
          description: The name of the product
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: The description of the product
        default_price:
          type: string
          title: Default Price
          description: The default price of the product
      type: object
      required:
        - id
        - name
        - default_price
      title: InvoiceProductResponse
    InvoicingCustomer:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier for the customer
        nickname:
          type: string
          title: Nickname
          description: The customer's nickname
        email:
          anyOf:
            - type: string
              format: email
            - type: 'null'
          title: Email
          description: The customer's email address
        address:
          anyOf:
            - $ref: '#/components/schemas/AddressResponse'
            - type: 'null'
          description: The customer's address details
        created_time:
          type: string
          format: date-time
          title: Created Time
          description: The timestamp when the customer was created
        updated_time:
          anyOf:
            - type: string
              format: date-time
            - type: 'null'
          title: Updated Time
          description: The timestamp when the customer was last updated
      type: object
      required:
        - id
        - nickname
        - created_time
      title: InvoicingCustomer
    Iso4217Code:
      type: string
      enum:
        - AED
        - AFN
        - ALL
        - AMD
        - ANG
        - AOA
        - ARS
        - AUD
        - AWG
        - AZN
        - BAM
        - BBD
        - BDT
        - BGN
        - BHD
        - BIF
        - BMD
        - BND
        - BOB
        - BOV
        - BRL
        - BSD
        - BTN
        - BWP
        - BYN
        - BZD
        - CAD
        - CDF
        - CHE
        - CHF
        - CHW
        - CLF
        - CLP
        - CNY
        - COP
        - COU
        - CRC
        - CUC
        - CUP
        - CVE
        - CZK
        - DJF
        - DKK
        - DOP
        - DZD
        - EGP
        - ERN
        - ETB
        - EUR
        - FJD
        - FKP
        - GBP
        - GEL
        - GHS
        - GIP
        - GMD
        - GNF
        - GTQ
        - GYD
        - HKD
        - HNL
        - HRK
        - HTG
        - HUF
        - IDR
        - ILS
        - INR
        - IQD
        - IRR
        - ISK
        - JMD
        - JOD
        - JPY
        - KES
        - KGS
        - KHR
        - KMF
        - KPW
        - KRW
        - KWD
        - KYD
        - KZT
        - LAK
        - LBP
        - LKR
        - LRD
        - LSL
        - LYD
        - MAD
        - MDL
        - MGA
        - MKD
        - MMK
        - MNT
        - MOP
        - MRU
        - MUR
        - MVR
        - MWK
        - MXN
        - MXV
        - MYR
        - MZN
        - NAD
        - NGN
        - NIO
        - NOK
        - NPR
        - NZD
        - OMR
        - PAB
        - PEN
        - PGK
        - PHP
        - PKR
        - PLN
        - PYG
        - QAR
        - RON
        - RSD
        - RUB
        - RWF
        - SAR
        - SBD
        - SCR
        - SDG
        - SLE
        - SEK
        - SGD
        - SHP
        - SLL
        - SOS
        - SRD
        - SSP
        - STN
        - SVC
        - SYP
        - SZL
        - THB
        - TJS
        - TMT
        - TND
        - TOP
        - TRY
        - TTD
        - TWD
        - TZS
        - UAH
        - UGX
        - USD
        - USN
        - UYI
        - UYU
        - UYW
        - UZS
        - VED
        - VES
        - VND
        - VUV
        - WST
        - XAF
        - XAG
        - XAU
        - XBA
        - XBB
        - XBC
        - XBD
        - XCD
        - XDR
        - XOF
        - XPD
        - XPF
        - XPT
        - XSU
        - XTS
        - XUA
        - XXX
        - YER
        - ZAR
        - ZMW
        - ZWG
        - ZWL
      title: Iso4217Code
    LineItem:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier for the line item
        product:
          $ref: '#/components/schemas/Product'
          description: The product associated with the line item
        amount:
          type: string
          title: Amount
          description: The total amount for the line item
        quantity:
          type: string
          title: Quantity
          description: The quantity of the product
        price:
          type: string
          title: Price
          description: The price per unit of the product
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: A description of the line item
        discount:
          anyOf:
            - type: string
            - type: 'null'
          title: Discount
          description: The discount applied to the line item
        discount_description:
          anyOf:
            - type: string
            - type: 'null'
          title: Discount Description
          description: A description of the discount
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: The timestamp when the line item was created
      type: object
      required:
        - id
        - product
        - amount
        - quantity
        - price
        - created_at
      title: LineItem
    ListAccessibleEntitiesResponse:
      properties:
        entities:
          items:
            $ref: '#/components/schemas/AccessibleEntity'
          type: array
          title: Entities
          description: List of entities accessible by this API key
      type: object
      required:
        - entities
      title: ListAccessibleEntitiesResponse
      description: Response model for listing accessible entities.
      example:
        entities:
          - access_type: global_api_key
            entity_id: 94a60dc7-93ab-4fed-8b2f-4008cdf7289b
            entity_name: AMITY
            role: Admin
          - access_type: global_api_key
            entity_id: 123e4567-e89b-12d3-a456-426614174000
            entity_name: Acme Corp
            role: Viewer
          - access_type: entity_api_key
            entity_id: 123e4567-e89b-12d3-a456-426614174111
            entity_name: Entity API Key Example
    MeowAddressRequest:
      properties:
        street_line_1:
          type: string
          maxLength: 300
          minLength: 1
          title: Street Line 1
        street_line_2:
          anyOf:
            - type: string
              maxLength: 300
              minLength: 0
            - type: 'null'
          title: Street Line 2
        city:
          type: string
          maxLength: 50
          minLength: 0
          title: City
        state:
          anyOf:
            - type: string
              maxLength: 200
              minLength: 0
            - type: 'null'
          title: State
        country:
          $ref: '#/components/schemas/CountryCodeAlpha2'
        postal_code:
          anyOf:
            - type: string
              maxLength: 20
              minLength: 1
            - type: 'null'
          title: Postal Code
      type: object
      required:
        - street_line_1
        - city
        - country
      title: MeowAddressRequest
    MeowApiAchSubobject:
      properties:
        account_number:
          type: string
          maxLength: 18
          minLength: 1
          title: Account Number
        account_type:
          $ref: '#/components/schemas/TreasuryPrimeAccountType'
        routing_number:
          type: string
          maxLength: 9
          minLength: 9
          title: Routing Number
        address_on_account:
          anyOf:
            - $ref: '#/components/schemas/MeowApiAddress'
            - type: 'null'
      type: object
      required:
        - account_number
        - account_type
        - routing_number
      title: MeowApiAchSubobject
    MeowApiAddress:
      properties:
        street_line_1:
          type: string
          maxLength: 300
          minLength: 1
          title: Street Line 1
        street_line_2:
          anyOf:
            - type: string
              maxLength: 300
              minLength: 0
            - type: 'null'
          title: Street Line 2
        city:
          type: string
          maxLength: 21
          minLength: 0
          title: City
        state:
          anyOf:
            - type: string
              maxLength: 3
              minLength: 0
            - type: 'null'
          title: State
        country:
          $ref: '#/components/schemas/CountryCodeAlpha2'
        postal_code:
          type: string
          maxLength: 20
          minLength: 1
          title: Postal Code
      type: object
      required:
        - street_line_1
        - city
        - country
        - postal_code
      title: MeowApiAddress
    MeowApiCheckSubobject:
      properties:
        address:
          $ref: '#/components/schemas/MeowApiAddress'
        created_time:
          type: string
          format: date-time
          title: Created Time
        updated_time:
          type: string
          format: date-time
          title: Updated Time
      type: object
      required:
        - address
        - created_time
        - updated_time
      title: MeowApiCheckSubobject
    MeowApiWireSubobject:
      properties:
        account_number:
          type: string
          maxLength: 34
          minLength: 1
          title: Account Number
        routing_number:
          type: string
          maxLength: 11
          minLength: 8
          title: Routing Number
        address_on_account:
          $ref: '#/components/schemas/MeowApiAddress'
        bank_address:
          $ref: '#/components/schemas/MeowApiAddress'
        bank_name:
          type: string
          maxLength: 400
          minLength: 1
          title: Bank Name
        intermediary_bank:
          anyOf:
            - $ref: '#/components/schemas/IntermediaryBank'
            - type: 'null'
      type: object
      required:
        - account_number
        - routing_number
        - address_on_account
        - bank_address
        - bank_name
      title: MeowApiWireSubobject
    PageMetadata:
      properties:
        nextOffset:
          anyOf:
            - type: string
            - type: 'null'
          title: Nextoffset
          description: Opaque offset identifier.
          examples:
            - qwer123454q2f
      type: object
      title: PageMetadata
    PaymentMethodType:
      type: string
      enum:
        - BANK_TRANSFER
        - CARD
        - ACH_DIRECT_DEBIT
        - INTERNATIONAL_WIRE
        - USDC_ETHEREUM
        - USDC_SOLANA
        - USDC_BASE
        - USDT_ETHEREUM
        - CASH_SOLANA
      title: PaymentMethodType
      x-enum-varnames:
        - BANK_TRANSFER
        - CARD
        - ACH_DIRECT_DEBIT
        - INTERNATIONAL_WIRE
        - USDC_ETHEREUM
        - USDC_SOLANA
        - USDC_BASE
        - USDT_ETHEREUM
        - CASH_SOLANA
    PaymentMethodTypes:
      properties:
        allowed_types:
          items:
            $ref: '#/components/schemas/PaymentMethodType'
          type: array
          title: Allowed Types
          description: List of allowed payment methods
      type: object
      required:
        - allowed_types
      title: PaymentMethodTypes
    PaymentNetworkType:
      type: string
      enum:
        - US_ACH
        - US_FEDWIRE
        - US_CHIPS
        - CA_ACSS
        - CA_LVTS
        - USDC
        - USDT
      title: PaymentNetworkType
    Product:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: The unique identifier for the product
        name:
          type: string
          title: Name
          description: The name of the product
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: The description of the product
        default_price:
          type: string
          title: Default Price
          description: The default price of the product
      type: object
      required:
        - id
        - name
        - default_price
      title: Product
    RoutingNumber:
      properties:
        routing_number:
          type: string
          title: Routing Number
          description: The routing number
        bank_name:
          type: string
          title: Bank Name
          description: The name of the bank
        bank_short_name:
          anyOf:
            - type: string
            - type: 'null'
          title: Bank Short Name
          description: The short name of the bank if available
        address_1:
          anyOf:
            - type: string
            - type: 'null'
          title: Address 1
          description: The primary address line
        address_2:
          anyOf:
            - type: string
            - type: 'null'
          title: Address 2
          description: The secondary address line
        wire:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Wire
          description: Whether the bank supports wire transfers
        ach:
          anyOf:
            - type: boolean
            - type: 'null'
          title: Ach
          description: Whether the bank supports ACH transfers
        city:
          anyOf:
            - type: string
            - type: 'null'
          title: City
          description: The city of the bank branch
        state:
          anyOf:
            - type: string
            - type: 'null'
          title: State
          description: The state of the bank branch
        zip_code:
          anyOf:
            - type: string
            - type: 'null'
          title: Zip Code
          description: The zip code of the bank branch
      type: object
      required:
        - routing_number
        - bank_name
      title: RoutingNumber
    ScheduledAchTransfer:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Unique identifier for the scheduled payment.
        status:
          $ref: '#/components/schemas/TransferStatus'
          description: Current status of the scheduled payment.
        amount:
          type: string
          title: Amount
          description: The amount to be transferred.
        description:
          anyOf:
            - type: string
            - type: 'null'
          title: Description
          description: A brief description of the transfer.
        schedule_description:
          anyOf:
            - type: string
            - type: 'null'
          title: Schedule Description
          description: >-
            A human-readable description of the schedule (e.g., 'once at Dec 29,
            2025').
        counterparty_id:
          type: string
          format: uuid
          title: Counterparty Id
          description: The ID of the counterparty.
        rrule:
          type: string
          maxLength: 120
          minLength: 1
          title: Rrule
          description: The recurrence rule (RFC 5545) for the schedule.
        first_occurrence:
          $ref: '#/components/schemas/Timestamp'
          description: The timestamp of the next occurrence.
        transfer_type:
          $ref: '#/components/schemas/TransferMethod'
          description: The type of transfer (e.g., 'ach').
      type: object
      required:
        - id
        - status
        - amount
        - counterparty_id
        - rrule
        - first_occurrence
        - transfer_type
      title: ScheduledAchTransfer
    ScheduledAchTransfers:
      properties:
        page:
          anyOf:
            - $ref: '#/components/schemas/PageMetadata'
            - type: 'null'
          description: Metadata for pagination
        scheduled_ach_transfers:
          items:
            $ref: '#/components/schemas/ScheduledAchTransfer'
          type: array
          title: Scheduled Ach Transfers
          description: A list of scheduled ACH transfers for the account.
      type: object
      required:
        - scheduled_ach_transfers
      title: ScheduledAchTransfers
    SecurityIdType:
      type: string
      enum:
        - CUSIP
        - ISIN
        - SEDOL
        - SICC
        - VALOR
        - WKN
      title: SecurityIdType
      description: >-
        Standard identifiers used for securities in financial markets.

        CUSIP - Committee on Uniform Securities Identification Procedures (North
        American securities)

        ISIN - International Securities Identification Number (global standard)

        SEDOL - Stock Exchange Daily Official List (UK securities)

        SICC - Standard Industrial Classification Code

        VALOR - Swiss security identification number

        WKN - Wertpapierkennnummer (German securities)
    SecurityType:
      type: string
      enum:
        - BOND
        - DEBT
        - MUTUALFUND
        - OPTION
        - OTHER
        - STOCK
        - SWEEP
      title: SecurityType
    String255:
      type: string
      maxLength: 255
      title: String255
      description: String of maximum length 255
    Timestamp:
      type: string
      format: date-time
      title: Timestamp
      description: >-
        ISO 8601 date-time in format 'YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]'
        according to [IETF
        RFC3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)
    TransactionStatus:
      type: string
      enum:
        - AUTHORIZATION
        - MEMO
        - PENDING
        - POSTED
      title: TransactionStatus
    Transactions:
      properties:
        page:
          anyOf:
            - $ref: '#/components/schemas/PageMetadata'
            - type: 'null'
          description: Metadata for pagination
        transactions:
          items:
            anyOf:
              - $ref: '#/components/schemas/DepositTransactionModel'
              - $ref: '#/components/schemas/InvestmentTransactionModel'
              - $ref: '#/components/schemas/DigitalWalletTransactionModel'
          type: array
          title: Transactions
          description: >-
            An array of transactions with entity type dependent on the account
            type. Return an empty array if this information isn't available.
      type: object
      required:
        - transactions
      title: Transactions
    TransferMethod:
      type: string
      enum:
        - book
        - usdc
        - ach
        - wire
      title: TransferMethod
    TransferStatus:
      type: string
      enum:
        - pending
        - canceled
        - processing
        - error
        - sent
        - returned
        - void
      title: TransferStatus
    TreasuryPrimeAccountType:
      type: string
      enum:
        - checking
        - savings
      title: TreasuryPrimeAccountType
    UnitType:
      type: string
      enum:
        - CURRENCY
        - SHARES
      title: UnitType
    UpdateContactRequest:
      properties:
        nickname:
          anyOf:
            - type: string
              maxLength: 300
              minLength: 1
            - type: 'null'
          title: Nickname
        email:
          anyOf:
            - type: string
              format: email
            - type: 'null'
          title: Email
        address:
          anyOf:
            - $ref: '#/components/schemas/MeowAddressRequest'
            - type: 'null'
        counterparty:
          anyOf:
            - $ref: '#/components/schemas/CounterpartyDetailsRequest'
            - type: 'null'
      type: object
      title: UpdateContactRequest
    UserRoleEnum:
      type: string
      enum:
        - Admin
        - Viewer
        - Bookkeeper
        - Controller
        - Card user
        - Card manager
        - Invoice user
        - AP Clerk
        - AP/AR Bookkeeper
        - None
      title: UserRoleEnum
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
              - type: string
              - type: integer
          type: array
          title: Location
        msg:
          type: string
          title: Message
        type:
          type: string
          title: Error Type
      type: object
      required:
        - loc
        - msg
        - type
      title: ValidationError
    WireTransferResponse:
      properties:
        id:
          type: string
          title: Id
          description: The unique identifier for the wire transfer
        amount:
          type: string
          title: Amount
          description: The amount of the transfer
        status:
          $ref: '#/components/schemas/TransferStatus'
          description: The current status of the transfer
        instructions:
          anyOf:
            - type: string
            - type: 'null'
          title: Instructions
          description: Instructions or OBI (Originator to Beneficiary Information)
        counterparty_id:
          anyOf:
            - type: string
              format: uuid
            - type: 'null'
          title: Counterparty Id
          description: The unique identifier for the counterparty
        counterparty_name:
          type: string
          title: Counterparty Name
          description: The name of the counterparty
        counterparty_account_number:
          type: string
          title: Counterparty Account Number
          description: The account number of the counterparty
        counterparty_routing_number:
          type: string
          title: Counterparty Routing Number
          description: The routing number of the counterparty
        counterparty_bank_name:
          type: string
          title: Counterparty Bank Name
          description: The name of the counterparty's bank
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: The time the transfer was created
        updated_at:
          $ref: '#/components/schemas/Timestamp'
          description: The time the transfer was last updated
        error:
          anyOf:
            - type: string
            - type: 'null'
          title: Error
          description: Error message if the transfer failed
        imad:
          anyOf:
            - type: string
            - type: 'null'
          title: Imad
          description: IMAD (Input Message Accountability Data) for the wire
        purpose:
          anyOf:
            - type: string
            - type: 'null'
          title: Purpose
          description: The purpose of the wire transfer
        internal_note:
          anyOf:
            - type: string
            - type: 'null'
          title: Internal Note
          description: An internal note associated with the transfer
      type: object
      required:
        - id
        - amount
        - status
        - counterparty_name
        - counterparty_account_number
        - counterparty_routing_number
        - counterparty_bank_name
        - created_at
        - updated_at
      title: WireTransferResponse
      description: Response model for wire transfer details
      example:
        amount: '1000.00'
        counterparty_account_number: '123456789'
        counterparty_bank_name: Chase Bank
        counterparty_id: cp_789
        counterparty_name: ABC Corp
        counterparty_routing_number: '021000021'
        created_at: '2024-01-01T12:00:00Z'
        id: wire_123456
        imad: '2024010100000001'
        instructions: Wire transfer for invoice payment
        internal_note: Payment for invoice 123
        purpose: invoice_payment
        status: sent
        updated_at: '2024-01-01T12:00:00Z'
    customer_api__v1__app__transactions__models__SecurityIdType:
      type: string
      enum:
        - CUSIP
        - ISIN
        - SEDOL
        - SICC
        - VALOR
        - WKN
      title: SecurityIdType
      description: 'Security identifier types supported: CUSIP, ISIN, and SEDOL.'
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Your Meow API key for authentication
      x-scopes:
        - accounts:read
        - accounts:balances
        - accounts:transactions
        - accounts:statements
        - accounts:payment-networks
        - billing:products:read
        - billing:products:write
        - billing:customers:read
        - billing:customers:write
        - billing:invoices:read
        - billing:invoices:write
        - billing:accounts:read
        - billpay:read
        - contacts:read
        - contacts:write
        - transfers:usdc:write
        - transfers:ach:write
        - transfers:book:write
        - transfers:wire:write
  parameters:
    EntityIdHeader:
      name: x-entity-id
      in: header
      required: false
      schema:
        type: string
        format: uuid
      description: Optional entity ID for scoped access to entity-specific data
security:
  - ApiKeyAuth: []
tags:
  - name: API Keys
    description: Retrieve metadata about API keys and their accessible entities
  - name: Accounts
    description: Access and manage financial accounts
  - name: Balances
    description: Check account balances and available funds
  - name: Bill
    description: View and manage bills for vendor payments
  - name: Collection Accounts
    description: Manage accounts for payment collection
  - name: Contacts
    description: Manage USDC contacts for cryptocurrency transfers
  - name: Customers
    description: Manage billing customers and their information
  - name: Invoices
    description: Create and manage invoices
  - name: Line Items
    description: Manage invoice line items
  - name: Payment Methods
    description: Configure available payment methods
  - name: Payment Networks
    description: Manage payment networks and routing information
  - name: Products
    description: Manage products and pricing for invoicing
  - name: Routing Numbers
    description: Validate routing numbers and get bank information
  - name: Transactions
    description: View account transaction history and details
  - name: Transfers
    description: >-
      Initiate ACH, wire, book, and USDC transfers, and retrieve transfer
      details
x-tagGroups:
  - name: Core API
    tags:
      - API Keys
      - Contacts
      - Accounts
      - Transactions
      - Balances
      - Payment Networks
      - Transfers
      - Routing Numbers
  - name: Billpay
    tags:
      - Bill
  - name: Billing
    tags:
      - Products
      - Customers
      - Invoices
      - Line Items
      - Payment Methods
      - Collection Accounts
