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


    The Meow API provides financial services and billing capabilities for your business.


    ### Core Features


    - **Financial data access**: access account information, transactions, balances,
    and payment networks.

    - **Crypto operations**: create and manage crypto contacts, and initiate USDC
    transfers across blockchain networks.

    - **Bill pay**: draft bills payable to your vendors and track them through payment.


    ### Bill Pay API


    The Bill Pay API lets you create bills for your vendors and track them through
    payment:


    - **Bill drafting**: create bills as drafts. Nothing is paid until someone approves
    the bill in the Meow dashboard.

    - **Attachments**: upload invoices and supporting documents to a bill.

    - **Bulk loads**: send an `Idempotency-Key` with every create so a retry never
    duplicates a bill. Drafting is capped at 500 bills per rolling 24 hours per creator
    — your entity key, or the user a user-scoped key acts as. Creates past the cap
    return `429 Too Many Requests`.


    ### Billing API


    The Billing API lets you create and manage invoices and collect payments:


    - **Product management**: create and manage products with custom pricing.

    - **Customer management**: maintain invoicing customers with their addresses.

    - **Invoice creation**: generate invoices with line items, discounts, and custom
    notes.

    - **Payment options**: accept payments via ACH, wire, international wire, card,
    and USDC.

    - **Collection accounts**: configure accounts for payment collection.


    ### Getting Started


    Authenticate by sending your API key in the `x-api-key` request header.


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


    ### Rate Limits


    Each API key has a limit on requests per minute. The `RateLimit-Policy` header
    on every response shows your key''s limit. The limit counts your requests in each
    clock minute, so you can spend the whole minute at once, and the count starts
    over when the minute ends.


    Responses carry the `RateLimit-Policy` and `RateLimit` headers. They show your
    limit, the requests you have left, and the seconds until the current minute ends.


    Meow is rolling out enforcement of this limit. Until it is enforced, going over
    the limit is logged, not rejected. Once it is, a request over the limit returns
    `429 Too Many Requests` with a `Retry-After` header, the headers above, and a
    body with `error_code` set to `rate_limited` and a `message`.


    A separate, coarser safeguard protects the API from abusive traffic and can also
    reject requests with `429`. Its response carries `Retry-After` and the same body,
    but not the quota headers.


    Whichever sends it, wait at least `Retry-After` seconds and add a small random
    delay. If the retry is limited again, back off exponentially. Send an `Idempotency-Key`
    when you retry a request that creates something or moves money.


    ### Error Responses


    Errors return JSON with `code`, `message`, and `debug_message`. The `code` aligns
    with FDX where possible; use `debug_message` 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
- url: https://api.dev.meow.com/v1
  description: Meow API Development
paths:
  /contacts:
    post:
      tags:
      - Contacts
      summary: Create Contact
      description: Creates a new contact with ACH, wire, or check payment details,
        international payment details, or one or more crypto addresses.
      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'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - contacts:write
      parameters:
      - $ref: '#/components/parameters/EntityIdHeader'
    get:
      tags:
      - Contacts
      summary: List Contacts
      description: Returns a paginated list of contacts, ordered by nickname. Use
        the `limit` and `offset` query parameters to page through results.
      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.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: Maximum number of results to return.
          default: 10
          title: Limit
        description: Maximum number of results to return.
      - 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/CustomerApiContactsList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - contacts:read
  /contacts/{contact_id}:
    delete:
      tags:
      - Contacts
      summary: Delete 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.
          title: Contact Id
        description: The unique identifier of the contact.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '204':
          description: Successful Response
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - contacts:write
    patch:
      tags:
      - Contacts
      summary: Update Contact
      description: Updates an existing contact and optionally adds new payment methods,
        including further crypto addresses.
      operationId: update_contact_contacts__contact_id__patch
      parameters:
      - name: contact_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The unique identifier of the contact.
          title: Contact Id
        description: The unique identifier of the contact.
      - $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'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      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
          description: Contact to fetch. Use list_contacts to find one.
          title: Contact Id
        description: Contact to fetch. Use list_contacts to find one.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CustomerApiContact'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - contacts:read
  /contacts/international-requirements:
    get:
      tags:
      - Contacts
      summary: Get International Contact Requirements
      description: 'Returns the fields an international contact needs before you create
        one, for a given currency and destination bank country. Destinations differ:
        some route on an IBAN, others on a domestic routing code, and some want the
        recipient''s full address. Ask here first, then send the answer''s fields
        as `international` on `POST /contacts`. Check `supported` before reading the
        fields, since not every currency reaches every country.'
      operationId: get_international_requirements_contacts_international_requirements_get
      parameters:
      - name: recipient_currency
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/Iso4217Code'
          description: Currency the recipient would be paid in.
        description: Currency the recipient would be paid in.
      - name: bank_country
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/CountryCodeAlpha2'
          description: ISO 3166-1 alpha-2 country code of the recipient's bank.
        description: ISO 3166-1 alpha-2 country code of the recipient's bank.
      - name: beneficiary_country
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/CountryCodeAlpha2'
          - type: 'null'
          description: ISO 3166-1 alpha-2 country code where the recipient lives or
            is registered. Defaults to `bank_country`.
          title: Beneficiary Country
        description: ISO 3166-1 alpha-2 country code where the recipient lives or
          is registered. Defaults to `bank_country`.
      - name: beneficiary_type
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/InternationalBeneficiaryType'
          - type: 'null'
          description: Whether the recipient is a person or a business. Some corridors
            ask for different fields for each; defaults to `company`.
          title: Beneficiary Type
        description: Whether the recipient is a person or a business. Some corridors
          ask for different fields for each; defaults to `company`.
      - name: payment_method
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/InternationalPaymentMethod'
          - type: 'null'
          description: Narrow the answer to one network. Left off, the destination's
            usual network decides.
          title: Payment Method
        description: Narrow the answer to one network. Left off, the destination's
          usual network decides.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternationalRequirements'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - contacts:read
  /accounts:
    get:
      tags:
      - Accounts
      summary: List Bank Accounts
      description: Returns a list of bank accounts. An API key restricted to one account
        sees only that account.
      operationId: list_accounts_accounts_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Accounts'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:read
      parameters:
      - $ref: '#/components/parameters/EntityIdHeader'
    post:
      tags:
      - Accounts
      summary: Create Bank Account
      description: Opens an additional bank account under the given `product`. You
        must already have an open account of that product, and your business must
        have completed verification and accepted its required agreements. See `consent`
        on the entity's onboarding status. The account may open immediately (status
        `created`, with `account_id`) or in the background (status `processing`);
        when `processing`, poll `GET /accounts` until the account appears. Not available
        to an API key restricted to one account.
      operationId: create_account_accounts_post
      parameters:
      - name: Idempotency-Key
        in: header
        required: true
        schema:
          type: string
          minLength: 1
          maxLength: 50
          pattern: ^[!-~]+$
          description: A unique key you generate (1-50 printable ASCII characters,
            no spaces) so retrying this request never creates a duplicate. Reusing
            a key is rejected.
          title: Idempotency-Key
        description: A unique key you generate (1-50 printable ASCII characters, no
          spaces) so retrying this request never creates a duplicate. Reusing a key
          is rejected.
      - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAccountRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAccountResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:write
  /accounts/{account_id}:
    get:
      tags:
      - Accounts
      summary: Get Account Details
      description: Returns detailed information about a specified bank account. Balance
        fields, and an investment account's holdings, are null unless the API key
        has the `accounts:balances` scope.
      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'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:read
    patch:
      tags:
      - Accounts
      summary: Update Bank Account
      description: Updates a bank account's `nickname` (display name), shown in the
        dashboard to distinguish it from other accounts. Supported for checking accounts
        (grasshopper, tcb, firstbank) and crb accounts. The nickname must be unique
        among your accounts.
      operationId: update_account_accounts__account_id__patch
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: string
          description: The ID of the bank account to update.
          title: Account Id
        description: The ID of the bank account to update.
      - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateAccountRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UpdateAccountResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:write
  /accounts/{account_id}/close:
    post:
      tags:
      - Accounts
      summary: Close a Bank Account
      description: Closes a bank account. The account must have a zero balance and
        no active cards, scheduled payments, or open invoices. Cancel or remove those
        first. Supported for checking accounts (grasshopper, tcb, firstbank) and crb
        accounts. Some accounts close immediately (status `closed`); others process
        the close asynchronously (status `close_pending`), in which case poll `GET
        /accounts/{account_id}` until its `status` reads `CLOSED`.
      operationId: close_account_accounts__account_id__close_post
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: string
          description: The ID of the bank account to close.
          title: Account Id
        description: The ID of the bank account to close.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CloseAccountResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:write
  /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: start_time
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 0
            maxLength: 100
          - type: 'null'
          description: Start time for filtering transactions, in ISO 8601 format.
          title: Start Time
        description: Start time for filtering transactions, in ISO 8601 format.
      - name: end_time
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 0
            maxLength: 100
          - type: 'null'
          description: End time for filtering transactions, in ISO 8601 format.
          title: End Time
        description: End time for filtering transactions, in ISO 8601 format.
      - 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: transfer_method
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/BankingTransactionMethod'
          - type: 'null'
          description: Filter to a specific transfer method.
          title: Transfer Method
        description: Filter to a specific transfer method.
      - name: deposit_tx_hash
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            maxLength: 255
          - type: 'null'
          description: Find the deposit with this on-chain transaction hash, as reported
            in a crypto_transfer webhook. Searches every status unless `status` is
            also given. Valid for global and bank accounts.
          title: Deposit Tx Hash
        description: Find the deposit with this on-chain transaction hash, as reported
          in a crypto_transfer webhook. Searches every status unless `status` is also
          given. Valid for global and bank accounts.
      - name: status
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/TransactionStatus'
          - type: 'null'
          description: Filter to one or more transaction statuses, as a list, e.g.
            `["PENDING", "POSTED"]`. Omit to return every status. `AUTHORIZATION`
            and `MEMO` are accepted but currently return no results.
          title: Status
        description: Filter to one or more transaction statuses, as a list, e.g. `["PENDING",
          "POSTED"]`. Omit to return every status. `AUTHORIZATION` and `MEMO` are
          accepted but currently return no results.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Transactions'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      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: start_time
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 0
            maxLength: 100
          - type: 'null'
          description: Start time for filtering balances, in ISO 8601 format.
          title: Start Time
        description: Start time for filtering balances, in ISO 8601 format.
      - name: end_time
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 0
            maxLength: 100
          - type: 'null'
          description: End time for filtering balances, in ISO 8601 format.
          title: End Time
        description: End time for filtering balances, in ISO 8601 format.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Balances'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:balances
  /accounts/{account_id}/payment-networks:
    get:
      tags:
      - Payment Networks
      summary: List Payment Networks for an Account
      description: Returns the payment networks supported by a specified 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: limit
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          description: Maximum number of payment networks to return.
          title: Limit
        description: Maximum number of payment networks to return.
      - name: offset
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - 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/AccountPaymentNetworkList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:payment-networks
  /accounts/{account_id}/liquidation-addresses:
    post:
      tags:
      - Payment Networks
      summary: Create Liquidation Address
      description: Creates a blockchain address that converts incoming cryptocurrency
        to USD and deposits it into the specified bank account. The business must
        have crypto deposits enabled, and the account must support them. Repeating
        the same account, network, and currency returns the existing address.
      operationId: create_account_liquidation_address_accounts__account_id__liquidation_addresses_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/CreateAccountLiquidationAddressRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountLiquidationAddressResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:write
  /accounts/{account_id}/usdc:
    post:
      tags:
      - Transfers
      summary: Create USDC Transaction (Legacy)
      description: Legacy endpoint for USDC transactions. Requires the `transfers:usdc:write`
        scope. For new integrations, use `POST /accounts/{account_id}/crypto`. The
        destination determines the currency and network.
      operationId: create_usdc_transaction_accounts__account_id__usdc_post
      deprecated: true
      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: Idempotency-Key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 50
            pattern: ^[!-~]+$
          - type: 'null'
          description: A unique key you generate (1-50 printable ASCII characters,
            no spaces) so retrying this request never creates a duplicate. Reusing
            a key is rejected.
          title: Idempotency-Key
        description: A unique key you generate (1-50 printable ASCII characters, no
          spaces) so retrying this request never creates a duplicate. Reusing a key
          is rejected.
      - $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'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - transfers:usdc:write
  /accounts/{account_id}/crypto:
    post:
      tags:
      - Transfers
      summary: Create Crypto Transaction
      description: 'Creates a new crypto transaction from a specified account. The
        currency and network are determined automatically from the destination''s
        payment method. Provide exactly one of `static_memo_id` or `crypto_id` to
        identify the destination:


        - **`static_memo_id`**: Use the ID from the contact''s `payment_methods.static_memos`
        array. Supported for both banking and wallet accounts.

        - **`crypto_id`**: Use the ID from the contact''s `payment_methods.crypto`
        array. Supported for both banking and wallet accounts.


        Supported currencies: `usdc`, `usdt`, `pyusd`, `cash`, `usdg`, `path_usd`.


        Requires the `transfers:crypto:write` scope. Use this endpoint for all crypto
        transfers. The legacy `/usdc` endpoint is deprecated.'
      operationId: create_crypto_transaction_accounts__account_id__crypto_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.
      - name: Idempotency-Key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 50
            pattern: ^[!-~]+$
          - type: 'null'
          description: A unique key you generate (1-50 printable ASCII characters,
            no spaces) so retrying this request never creates a duplicate. Reusing
            a key is rejected.
          title: Idempotency-Key
        description: A unique key you generate (1-50 printable ASCII characters, no
          spaces) so retrying this request never creates a duplicate. Reusing a key
          is rejected.
      - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCryptoTransactionRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCryptoTransactionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - transfers:crypto: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.
      - name: Idempotency-Key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 50
            pattern: ^[!-~]+$
          - type: 'null'
          description: A unique key you generate (1-50 printable ASCII characters,
            no spaces) so retrying this request never creates a duplicate. Reusing
            a key is rejected.
          title: Idempotency-Key
        description: A unique key you generate (1-50 printable ASCII characters, no
          spaces) so retrying this request never creates a duplicate. Reusing a key
          is rejected.
      - $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'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      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.
      - name: Idempotency-Key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 50
            pattern: ^[!-~]+$
          - type: 'null'
          description: A unique key you generate (1-50 printable ASCII characters,
            no spaces) so retrying this request never creates a duplicate. Reusing
            a key is rejected.
          title: Idempotency-Key
        description: A unique key you generate (1-50 printable ASCII characters, no
          spaces) so retrying this request never creates a duplicate. Reusing a key
          is rejected.
      - $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'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      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.
      - name: Idempotency-Key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 50
            pattern: ^[!-~]+$
          - type: 'null'
          description: A unique key you generate (1-50 printable ASCII characters,
            no spaces) so retrying this request never creates a duplicate. Reusing
            a key is rejected.
          title: Idempotency-Key
        description: A unique key you generate (1-50 printable ASCII characters, no
          spaces) so retrying this request never creates a duplicate. Reusing a key
          is rejected.
      - $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'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      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
          description: Maximum number of results to return.
          default: 10
          title: Limit
        description: Maximum number of results to return.
      - 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'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      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. Wires
        are sent in US dollars, including to a counterparty banking outside the US.
        To pay someone in their own currency, use `POST /accounts/{account_id}/international`.
      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.
      - name: Idempotency-Key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 50
            pattern: ^[!-~]+$
          - type: 'null'
          description: A unique key you generate (1-50 printable ASCII characters,
            no spaces) so retrying this request never creates a duplicate. Reusing
            a key is rejected.
          title: Idempotency-Key
        description: A unique key you generate (1-50 printable ASCII characters, no
          spaces) so retrying this request never creates a duplicate. Reusing a key
          is rejected.
      - $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'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - transfers:wire:write
  /accounts/{account_id}/wire/scheduled:
    post:
      tags:
      - Transfers
      summary: Create Scheduled Wire Transfer
      description: Creates a recurring or one-off future wire to an external counterparty.
        Each occurrence is sent in US dollars on the schedule's business-day rules.
      operationId: create_scheduled_wire_transfer_accounts__account_id__wire_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.
      - name: Idempotency-Key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 50
            pattern: ^[!-~]+$
          - type: 'null'
          description: A unique key you generate (1-50 printable ASCII characters,
            no spaces) so retrying this request never creates a duplicate. Reusing
            a key is rejected.
          title: Idempotency-Key
        description: A unique key you generate (1-50 printable ASCII characters, no
          spaces) so retrying this request never creates a duplicate. Reusing a key
          is rejected.
      - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateScheduledWireTransferRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateScheduledWireTransferResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - transfers:wire:write
    get:
      tags:
      - Transfers
      summary: List Scheduled Wire Transfers
      description: Returns a list of scheduled wire transfers for a specified account.
      operationId: list_scheduled_wire_transfers_accounts__account_id__wire_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
          description: Maximum number of results to return.
          default: 10
          title: Limit
        description: Maximum number of results to return.
      - 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/ScheduledWireTransfers'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:transactions
  /accounts/{account_id}/international:
    post:
      tags:
      - Transfers
      summary: Create International Payment
      description: 'Pays a contact in their local currency, converting from US dollars
        at the rate quoted when you call. Fix either leg: give `recipient_amount`
        to send an exact amount in their currency, or `source_amount` to spend an
        exact number of US dollars. Preview the rate and fee first with `POST /accounts/{account_id}/international/quote`.
        The contact must already have international payment details saved. To send
        US dollars instead, including to a bank outside the US, use `POST /accounts/{account_id}/wire`.'
      operationId: create_international_payment_accounts__account_id__international_post
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: string
          description: The account the payment is funded from.
          title: Account Id
        description: The account the payment is funded from.
      - name: Idempotency-Key
        in: header
        required: true
        schema:
          type: string
          minLength: 1
          maxLength: 50
          pattern: ^[!-~]+$
          description: A unique key you generate (1-50 printable ASCII characters,
            no spaces) so retrying this request never creates a duplicate. Reusing
            a key is rejected.
          title: Idempotency-Key
        description: A unique key you generate (1-50 printable ASCII characters, no
          spaces) so retrying this request never creates a duplicate. Reusing a key
          is rejected.
      - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateInternationalPaymentRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateInternationalPaymentResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - transfers:international:write
  /accounts/{account_id}/international/{handle}:
    get:
      tags:
      - Transfers
      summary: Get International Payment
      description: 'Returns an international payment: what the recipient receives,
        what left your account, and where the payment has got to. `status` is the
        same vocabulary whichever bank carried it. A payment gets its `handle` once
        it has been submitted: read it from `executed_transfer.id` on `GET /approvals/{approval_id}`,
        or from an `international_payment` webhook.'
      operationId: get_international_payment_by_handle_accounts__account_id__international__handle__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: handle
        in: path
        required: true
        schema:
          type: string
          description: The `handle` returned when the payment was created, or by an
            `international_payment` webhook.
          title: Handle
        description: The `handle` returned when the payment was created, or by an
          `international_payment` webhook.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternationalPayment'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:transactions
  /accounts/{account_id}/international/quote:
    post:
      tags:
      - Transfers
      summary: Quote an International Payment
      description: 'Prices an international payment without sending it, so you can
        show the rate, the fee, and the total debit before committing. Fix either
        leg: give `recipient_amount` to learn what the payment costs you, or `source_amount`
        to learn what the recipient gets. Nothing is reserved, and the payment is
        priced again when you call `POST /accounts/{account_id}/international`, so
        the figures can move if the rate does.'
      operationId: create_international_quote_accounts__account_id__international_quote_post
      parameters:
      - name: account_id
        in: path
        required: true
        schema:
          type: string
          description: The account the payment would be funded from.
          title: Account Id
        description: The account the payment would be funded from.
      - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InternationalQuoteRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternationalQuoteResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - transfers:international:write
  /accounts/{account_id}/transactions/{transaction_id}:
    get:
      tags:
      - Transfers
      summary: Get USDC Transaction (Legacy)
      description: Legacy endpoint for retrieving USDC transaction details. For new
        integrations, use `GET /accounts/{account_id}/crypto/{transaction_id}`.
      operationId: get_usdc_transaction_accounts__account_id__transactions__transaction_id__get
      deprecated: true
      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'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:transactions
  /accounts/{account_id}/crypto/{transaction_id}:
    get:
      tags:
      - Transfers
      summary: Get Crypto Transaction
      description: Returns details about a crypto transaction (incoming or outgoing)
        for the specified account by transaction ID, including the status of an outgoing
        crypto transfer after it has been initiated, and the sending address for an
        incoming deposit.
      operationId: get_crypto_transaction_accounts__account_id__crypto__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:
          anyOf:
          - type: string
          - type: string
            format: uuid
          description: The ID returned when you created the transfer, or the transaction
            ID of an incoming deposit as List Transactions reports it.
          title: Transaction Id
        description: The ID returned when you created the transfer, or the transaction
          ID of an incoming deposit as List Transactions reports it.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCryptoTransactionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:transactions
  /accounts/{account_id}/crypto/{transaction_id}/cancel:
    post:
      tags:
      - Transfers
      summary: Cancel Crypto Transaction
      description: Cancels an outgoing crypto transfer that is under review and has
        not been sent. Returns the transfer with its new status. A transfer that is
        already being sent cannot be canceled.
      operationId: cancel_crypto_transaction_accounts__account_id__crypto__transaction_id__cancel_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.
      - name: transaction_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The ID returned when you created the transfer.
          title: Transaction Id
        description: The ID returned when you created the transfer.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCryptoTransactionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - transfers:crypto:write
  /accounts/{account_id}/check-deposits/{transaction_id}:
    get:
      tags:
      - Transactions
      summary: Get Check Deposit
      description: Returns details about a check deposit for the specified account
        by transaction ID. Includes check number and originating bank details useful
        for reconciliation.
      operationId: get_check_deposit_accounts__account_id__check_deposits__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 transaction group ID for the check deposit (e.g. deposit_ttx_...).
          title: Transaction Id
        description: The transaction group ID for the check deposit (e.g. deposit_ttx_...).
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CheckDepositResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      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 (incoming or outgoing) for
        the specified account by wire transfer ID, including 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 (e.g. `withdrawal_wire_...`),
            the wire ID returned when you created the transfer (e.g. `wire_...`),
            or the ID of an inbound wire (e.g. `iw_...`).
          title: Wire Transfer Id
        description: The transaction group ID for the wire transfer (e.g. `withdrawal_wire_...`),
          the wire ID returned when you created the transfer (e.g. `wire_...`), or
          the ID of an inbound wire (e.g. `iw_...`).
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WireTransferResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:transactions
  /accounts/{account_id}/wires/{wire_transfer_id}/cancel:
    post:
      tags:
      - Transfers
      summary: Cancel Wire Transfer
      description: Cancels an outgoing wire that the bank has not yet sent. Returns
        the wire with its new status. A wire that has already left cannot be cancelled;
        contact your bank to request a recall instead.
      operationId: cancel_wire_transfer_accounts__account_id__wires__wire_transfer_id__cancel_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.
      - name: wire_transfer_id
        in: path
        required: true
        schema:
          type: string
          description: The transaction group ID for the wire transfer (e.g. `withdrawal_wire_...`),
            the wire ID returned when you created the transfer (e.g. `wire_...`),
            or the ID of an inbound wire (e.g. `iw_...`).
          title: Wire Transfer Id
        description: The transaction group ID for the wire transfer (e.g. `withdrawal_wire_...`),
          the wire ID returned when you created the transfer (e.g. `wire_...`), or
          the ID of an inbound wire (e.g. `iw_...`).
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WireTransferResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - transfers:wire:write
  /accounts/{account_id}/achs/{ach_transfer_id}:
    get:
      tags:
      - Transfers
      summary: Get ACH Transfer
      description: Returns details about an ACH transfer (incoming or outgoing) for
        the specified account by ACH transfer ID, including 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 the ACH ID returned when you created the transfer (e.g. `ach_...`).
          title: Ach Transfer Id
        description: The transaction group ID for the ACH transfer (e.g. `withdrawal_ach_...`),
          or the ACH ID returned when you created the transfer (e.g. `ach_...`).
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AchTransferResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      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
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      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'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      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, including a deleted product that existing
        invoices still reference. List Products omits deleted products, and Create
        Invoice rejects them.
      operationId: get_product_billing_products__product_id__get
      parameters:
      - name: product_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: Product to fetch. Use list_products to find one.
          title: Product Id
        description: Product to fetch. Use list_products to find one.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoiceProductResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      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
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      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'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      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
          description: Invoicing customer to fetch. Use list_invoicing_customers to
            find one.
          title: Customer Id
        description: Invoicing customer to fetch. Use list_invoicing_customers to
          find one.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvoicingCustomer'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billing:customers:read
  /billing/payment-method-types:
    get:
      tags:
      - Payment Methods
      summary: Get Payment Method Types
      description: Returns the payment method types available to you.
      operationId: get_payment_method_types_billing_payment_method_types_get
      parameters:
      - name: collection_account_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          description: Stripe ACH direct debit availability is scoped to a specific
            collection account. Pass this to check whether ACH_DIRECT_DEBIT can be
            enabled for invoices collecting into that account; when omitted, the response
            reflects entity-level availability and the collection-account binding
            is enforced at invoice create/pay time.
          title: Collection Account Id
        description: Stripe ACH direct debit availability is scoped to a specific
          collection account. Pass this to check whether ACH_DIRECT_DEBIT can be enabled
          for invoices collecting into that account; when omitted, the response reflects
          entity-level availability and the collection-account binding is enforced
          at invoice create/pay time.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentMethodTypes'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billing:invoices:read
  /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
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billing:invoices:read
      parameters:
      - $ref: '#/components/parameters/EntityIdHeader'
    post:
      tags:
      - Invoices
      summary: Create Invoice
      description: Creates a new invoice. Set `save_as_draft` to save it as a draft
        for review in the Meow dashboard instead of sending it.
      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'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      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
          description: Invoice to fetch. Use list_invoices to find one.
          title: Invoice Id
        description: Invoice to fetch. Use list_invoices to find one.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Invoice'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      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: The `Content-Disposition` header that triggers a 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:
                  error_code:
                    type: string
                  message:
                    type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billing:invoices:read
  /billing/invoices/{invoice_id}/line-items:
    get:
      tags:
      - Line Items
      summary: List Invoice Line Items
      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
          description: Invoice whose line items to list. Use list_invoices to find
            one.
          title: Invoice Id
        description: Invoice whose line items to list. Use list_invoices to find one.
      - $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
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billing:invoices:read
  /billing/invoices/{invoice_id}/line-items/{line_item_id}:
    get:
      tags:
      - Line Items
      summary: Get Invoice Line Item
      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
          description: Invoice the line item belongs to.
          title: Invoice Id
        description: Invoice the line item belongs to.
      - name: line_item_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: Line item to fetch. Use list_invoice_line_items to find one.
          title: Line Item Id
        description: Line item to fetch. Use list_invoice_line_items to find one.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/LineItem'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billing:invoices:read
  /billing/accounts:
    get:
      tags:
      - Collection Accounts
      summary: List Collection Accounts
      description: Returns the collection accounts you can use to collect invoice
        payments. Only open, unlocked accounts are returned, with your primary account
        first.
      operationId: list_billing_accounts_billing_accounts_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillingAccounts'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      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 nine-digit ABA routing number and returns best-effort
        bank information. Address fields may be null and do not form a complete bank
        address for creating a contact. A null payment-method support value means
        support is unknown, which is distinct from false.
      operationId: validate_routing_number_routing_numbers__routing_number__get
      parameters:
      - name: routing_number
        in: path
        required: true
        schema:
          type: string
          minLength: 9
          maxLength: 9
          description: Nine-digit ABA routing number to look up.
          title: Routing Number
        description: Nine-digit ABA routing number to look up.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RoutingNumber'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:read
  /bills:
    get:
      tags:
      - Bills
      summary: List Bills
      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'
          description: Filter to one or more bill statuses, as a list. Omit to return
            every status.
          title: Statuses
        description: Filter to one or more bill statuses, as a list. Omit to return
          every status.
      - name: contact_id
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              type: string
              format: uuid
          - type: 'null'
          description: Filter to one or more vendor contacts, as a list. Use list_contacts
            to find contact IDs.
          title: Contact Id
        description: Filter to one or more vendor contacts, as a list. Use list_contacts
          to find contact IDs.
      - name: amount_min
        in: query
        required: false
        schema:
          anyOf:
          - type: number
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          - type: 'null'
          description: Only return bills with a total at or above this amount.
          title: Amount Min
        description: Only return bills with a total at or above this amount.
      - name: amount_max
        in: query
        required: false
        schema:
          anyOf:
          - type: number
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          - type: 'null'
          description: Only return bills with a total at or below this amount.
          title: Amount Max
        description: Only return bills with a total at or below this amount.
      - name: bill_date_from
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Only return bills dated on or after this date.
          title: Bill Date From
        description: Only return bills dated on or after this date.
      - name: bill_date_to
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Only return bills dated on or before this date.
          title: Bill Date To
        description: Only return bills dated on or before this date.
      - name: due_date_from
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Only return bills due on or after this date.
          title: Due Date From
        description: Only return bills due on or after this date.
      - name: due_date_to
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          description: Only return bills due on or before this date.
          title: Due Date To
        description: Only return bills due on or before this date.
      - name: search
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Free-text search over vendor name and bill number.
          title: Search
        description: Free-text search over vendor name and bill number.
      - name: sort_by
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/BillSortEnum'
          - type: 'null'
          description: Field to sort by. Defaults to the bill's due date.
          title: Sort By
        description: Field to sort by. Defaults to the bill's due date.
      - name: sort_descending
        in: query
        required: false
        schema:
          type: boolean
          description: Sort descending instead of ascending.
          default: false
          title: Sort Descending
        description: Sort descending instead of ascending.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: Maximum number of results to return.
          default: 10
          title: Limit
        description: Maximum number of results to return.
      - 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'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:read
    post:
      tags:
      - Bills
      summary: Create Bill
      description: Creates a bill as a draft for approval. The bill is not paid until
        someone approves it in the Meow dashboard; this never moves money on its own.
        Drafting is capped at 500 bills per rolling 24 hours per creator; creates
        past the cap return `429 Too Many Requests`.
      operationId: create_bill
      parameters:
      - name: Idempotency-Key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 50
            pattern: ^[!-~]+$
          - type: 'null'
          description: A unique key you generate (1-50 printable ASCII characters,
            no spaces) so retrying this request never creates a duplicate. Reusing
            a key is rejected.
          title: Idempotency-Key
        description: A unique key you generate (1-50 printable ASCII characters, no
          spaces) so retrying this request never creates a duplicate. Reusing a key
          is rejected.
      - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBillRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:write
  /bills/{bill_id}:
    get:
      tags:
      - Bills
      summary: Get 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'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:read
    patch:
      tags:
      - Bills
      summary: Update Bill
      description: Updates an editable bill. Only the fields you send are changed,
        and the bill stays a draft pending approval; this never moves money.
      operationId: update_bill
      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'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateBillRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:write
    delete:
      tags:
      - Bills
      summary: Delete Bill
      description: Cancels a bill that is still a draft. Once it has been submitted
        for approval it can no longer be canceled here, whether or not anyone has
        approved it yet.
      operationId: delete_bill
      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'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:write
  /bills/{bill_id}/documents/presigned-urls:
    post:
      tags:
      - Bills
      summary: Create Bill Document Upload URLs
      description: Returns short-lived upload URLs for attaching documents (for example,
        an invoice) to a bill. Upload each file to its URL, then call the confirm
        endpoint.
      operationId: create_bill_document_urls
      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'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BillPresignedUrlRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillPresignedUrlResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:write
  /bills/{bill_id}/documents:
    post:
      tags:
      - Bills
      summary: Confirm Bill Documents
      description: Attaches documents to the bill after you have uploaded them to
        the URLs from the presigned-urls endpoint.
      operationId: confirm_bill_documents
      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'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BillConfirmUploadRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:write
  /bills/{bill_id}/invoice/presigned-url:
    post:
      tags:
      - Bills
      summary: Create Bill Invoice Upload URL
      description: Returns a short-lived upload URL for the bill's own invoice. Upload
        the file to it, then `POST /bills/{bill_id}/invoice` to attach it — the same
        two steps as the supporting-documents endpoints. The invoice is what an international
        wire files as proof of the payment and what the accounting integrations attach,
        so a bill that will be paid abroad should carry one.
      operationId: create_bill_invoice_url
      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'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BillFileMetadata'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillPresignedUrlResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:write
  /bills/{bill_id}/invoice:
    post:
      tags:
      - Bills
      summary: Confirm Bill Invoice
      description: Attaches an invoice to the bill after you have uploaded it to the
        URL from the presigned-url endpoint, replacing any invoice it already had.
      operationId: confirm_bill_invoice
      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'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BillConfirmUploadEntry'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:write
    delete:
      tags:
      - Bills
      summary: Delete Bill Invoice
      description: Removes the bill's invoice and deletes the stored file.
      operationId: delete_bill_invoice
      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'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:write
  /bills/{bill_id}/documents/{document_id}:
    delete:
      tags:
      - Bills
      summary: Delete Bill Document
      description: Removes one supporting document from the bill and deletes the stored
        file, freeing a slot against the per-bill document limit.
      operationId: delete_bill_document
      parameters:
      - name: document_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Document Id
      - 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'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:write
  /bills/{bill_id}/accounting-mappings:
    post:
      tags:
      - Bills
      summary: Update Bill Accounting Mappings
      description: Maps the bill to a vendor in your accounting system and every line
        item to an expense account, then queues the bill to sync. Use this to fix
        a bill whose `accounting.bill_sync_status` reports a failure.
      operationId: update_bill_accounting_mappings
      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'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateBillAccountingMappingsRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:write
  /bills/{bill_id}/line-items/{line_item_id}/expense-account:
    post:
      tags:
      - Bills
      summary: Update Bill Line Item Expense Account
      description: Points one line item at a different expense account and marks the
        bill as needing sync. It does not queue one, so several lines can be fixed
        before syncing once.
      operationId: update_bill_line_item_expense_account
      parameters:
      - name: line_item_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Line Item Id
      - 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'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateBillLineItemExpenseAccountRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:write
  /bills/{bill_id}/sync:
    post:
      tags:
      - Bills
      summary: Sync Bill
      description: Queues an already-mapped bill for another sync attempt with your
        accounting system.
      operationId: sync_bill
      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'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:write
  /bills/{bill_id}/line-items:
    post:
      tags:
      - Bills
      summary: Add Bill Line Item
      description: Adds one line item to an editable bill. Unlike sending the whole
        `line_items` array, this leaves the other lines and their IDs alone.
      operationId: create_bill_line_item
      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'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBillLineItem'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:write
  /bills/{bill_id}/line-items/{line_item_id}:
    patch:
      tags:
      - Bills
      summary: Update Bill Line Item
      description: Edits one line item in place, keeping its ID and the expense account
        mapped to it.
      operationId: update_bill_line_item
      parameters:
      - name: line_item_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Line Item Id
      - 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'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateBillLineItem'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:write
    delete:
      tags:
      - Bills
      summary: Delete Bill Line Item
      description: Removes one line item from an editable bill.
      operationId: delete_bill_line_item
      parameters:
      - name: line_item_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Line Item Id
      - 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'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:write
  /billpay/settings:
    get:
      tags:
      - Bill Pay
      summary: Get Bill Pay Settings
      description: 'Returns how bill pay is configured for your entity: whether it
        is on, which account bills are funded from by default, and how many dashboard
        approvals a bill needs before it pays.'
      operationId: get_billpay_settings
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillpaySettingsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:read
      parameters:
      - $ref: '#/components/parameters/EntityIdHeader'
  /billpay/expected-payment-date:
    get:
      tags:
      - Bill Pay
      summary: Get Expected Payment Date
      description: Returns the date a payment sent on a given rail is expected to
        reach the vendor, based on the banking calendar and the funding account's
        daily cutoffs.
      operationId: get_expected_payment_date
      parameters:
      - name: payment_type
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/PublicPaymentRail'
          description: The rail the payment would be sent on, named as a bill's `payment_details.payment_type`
            names it.
        description: The rail the payment would be sent on, named as a bill's `payment_details.payment_type`
          names it.
      - name: initiated_at
        in: query
        required: true
        schema:
          type: string
          format: date-time
          description: When the payment would be sent.
          title: Initiated At
        description: When the payment would be sent.
      - name: instant_eligible
        in: query
        required: false
        schema:
          type: boolean
          description: Whether the payment may auto-route an instant rail when it
            executes, which only a crypto send does and only when sent immediately.
            A scheduled send funds over a wire, so leave this false to get the wire-funded
            date.
          default: false
          title: Instant Eligible
        description: Whether the payment may auto-route an instant rail when it executes,
          which only a crypto send does and only when sent immediately. A scheduled
          send funds over a wire, so leave this false to get the wire-funded date.
      - name: account_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The funding account, in the same id format returned by `GET
            /accounts`. Defaults to the entity's default bill pay account, or to your
            key's account when the key is restricted to one account.
          title: Account Id
        description: The funding account, in the same id format returned by `GET /accounts`.
          Defaults to the entity's default bill pay account, or to your key's account
          when the key is restricted to one account.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpectedPaymentDateResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:read
  /billpay/accounting/vendors:
    get:
      tags:
      - Bill Pay
      summary: List Accounting Vendors
      description: Returns the vendors in your connected accounting system, so you
        can find the `accounting_vendor_id` a bill's accounting mapping needs.
      operationId: list_accounting_vendors
      parameters:
      - name: search
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: Filter to vendors whose name matches this text.
          title: Search
        description: Filter to vendors whose name matches this text.
      - name: page
        in: query
        required: false
        schema:
          type: integer
          minimum: 1
          description: Which page of vendors to return. Your accounting system pages
            these 100 at a time, so a full page means there are probably more.
          default: 1
          title: Page
        description: Which page of vendors to return. Your accounting system pages
          these 100 at a time, so a full page means there are probably more.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountingVendorsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:read
  /billpay/accounting/expense-accounts:
    get:
      tags:
      - Bill Pay
      summary: List Expense Accounts
      description: Returns the accounts a bill's line can be mapped to, so you can
        find the `expense_account_external_id` an accounting mapping needs.
      operationId: list_expense_accounts
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ExpenseAccountsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:read
      parameters:
      - $ref: '#/components/parameters/EntityIdHeader'
  /billpay/accounting/classes:
    get:
      tags:
      - Bill Pay
      summary: List Accounting Classes
      description: Returns the QuickBooks Classes a bill's line can be mapped to,
        so you can find the `class_external_id` an accounting mapping needs while
        `class_required` is true. Empty for a non-QuickBooks provider.
      operationId: list_accounting_classes
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccountingClassesResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:read
      parameters:
      - $ref: '#/components/parameters/EntityIdHeader'
  /bill-schedules:
    get:
      tags:
      - Bill Pay
      summary: List Bill Schedules
      description: Returns a paginated list of recurring bill schedules, each with
        the dates it pays on and the bills it has generated so far.
      operationId: list_bill_schedules
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: Maximum number of results to return.
          default: 10
          title: Limit
        description: Maximum number of results to return.
      - 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/BillSchedulesResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:read
  /bill-schedules/{schedule_id}:
    get:
      tags:
      - Bill Pay
      summary: Get Bill Schedule
      description: Returns a single recurring bill schedule by ID.
      operationId: get_bill_schedule
      parameters:
      - name: schedule_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The bill schedule ID.
          title: Schedule Id
        description: The bill schedule ID.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillScheduleResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:read
  /bill-schedules/{schedule_id}/cancel:
    post:
      tags:
      - Bill Pay
      summary: Cancel Bill Schedule
      description: Stops a recurring schedule from drafting any more bills. Bills
        it has already generated keep their own status, so this moves no money and
        reverses no approval.
      operationId: cancel_bill_schedule
      parameters:
      - name: schedule_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The bill schedule ID.
          title: Schedule Id
        description: The bill schedule ID.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BillScheduleResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - billpay:write
  /receipts/upload-urls:
    post:
      tags:
      - Cards
      summary: Create Receipt Upload URLs
      description: Returns short-lived upload URLs for card receipts. Upload each
        receipt to its URL, then create the receipts.
      operationId: create_receipt_upload_urls_receipts_upload_urls_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReceiptUploadUrlsRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReceiptUploadUrlsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - cards:write
      parameters:
      - $ref: '#/components/parameters/EntityIdHeader'
  /cards/transactions/{transaction_id}/receipts:
    post:
      tags:
      - Cards
      summary: Create a Transaction Receipt
      description: Attaches an uploaded receipt to a card transaction you can access.
        Use Create Receipt Upload URLs before calling this operation.
      operationId: create_transaction_receipt_cards_transactions__transaction_id__receipts_post
      parameters:
      - name: transaction_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The transaction's identifier.
          title: Transaction Id
        description: The transaction's identifier.
      - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateTransactionReceiptRequest'
      responses:
        '201':
          description: Receipt attached.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReceiptResponse'
          headers:
            Location:
              description: Path of the newly created receipt.
              schema:
                type: string
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - cards:write
  /receipts:
    post:
      tags:
      - Cards
      summary: Create Receipts
      description: Starts matching uploaded receipts to card transactions. Use the
        returned receipt IDs to track the matching results.
      operationId: create_receipts_receipts_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateReceiptsRequest'
      responses:
        '202':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReceiptsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - cards:write
      parameters:
      - $ref: '#/components/parameters/EntityIdHeader'
    get:
      tags:
      - Cards
      summary: Get Receipts
      description: Returns the receipts identified by `ids` that your API key can
        access.
      operationId: list_receipts_receipts_get
      parameters:
      - name: ids
        in: query
        required: true
        schema:
          type: array
          items:
            type: string
            format: uuid
          minItems: 1
          maxItems: 100
          description: Receipt identifiers.
          title: Ids
        description: Receipt identifiers.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReceiptsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - cards:read
  /receipts/{receipt_id}:
    get:
      tags:
      - Cards
      summary: Get a Receipt
      description: Returns one receipt that your API key can access.
      operationId: get_receipt_receipts__receipt_id__get
      parameters:
      - name: receipt_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The receipt's identifier.
          title: Receipt Id
        description: The receipt's identifier.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReceiptResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - cards:read
  /cards:
    post:
      tags:
      - Cards
      summary: Create Card
      description: Creates a virtual card with a spend limit. By default the card
        authorizes at any merchant up to that limit. Pass `spending_restriction` with
        merchant IDs from `GET /cards/merchants` to restrict it, and `allowed_categories`
        to restrict by merchant category. Set `single_use` to `true` (default) for
        a one-shot card that auto-cancels after the first approved authorization,
        or `false` for a multi-use card that stays active until expiry or explicit
        revoke. Retrieve the PAN by calling `POST /cards/{card_id}/pan`.
      operationId: create_card_cards_post
      parameters:
      - name: Idempotency-Key
        in: header
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 50
            pattern: ^[!-~]+$
          - type: 'null'
          description: A unique key you generate (1-50 printable ASCII characters,
            no spaces) so retrying this request never creates a duplicate. Reusing
            a key is rejected.
          title: Idempotency-Key
        description: A unique key you generate (1-50 printable ASCII characters, no
          spaces) so retrying this request never creates a duplicate. Reusing a key
          is rejected.
      - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateCardRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateCardResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - cards:write
    get:
      tags:
      - Cards
      summary: List Cards
      description: Returns the cards you have access to. As an admin or viewer you
        see all entity cards; as a card manager you see your team's cards; as a card
        user you see only your own.
      operationId: list_cards_cards_get
      parameters:
      - name: filters
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/ListCardsFilter'
          description: Card filters. Every field is optional.
          default:
            card_types: []
        description: Card filters. Every field is optional.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: Maximum number of results to return.
          default: 10
          title: Limit
        description: Maximum number of results to return.
      - 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/CardsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - cards:read
  /cards/merchants:
    get:
      tags:
      - Cards
      summary: List Merchants
      description: Returns merchants that can be used in a card's `spending_restriction`.
        Filter by name with `query`. Pass the returned `id` values to Create Card
        or Update Card.
      operationId: list_merchants_cards_merchants_get
      parameters:
      - name: query
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 100
          - type: 'null'
          description: Filter to merchants whose name starts with this text.
          title: Query
        description: Filter to merchants whose name starts with this text.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: Maximum number of results to return.
          default: 10
          title: Limit
        description: Maximum number of results to return.
      - 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/MerchantsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - cards:read
  /cards/payment-token:
    post:
      tags:
      - Cards
      summary: Create Payment Token
      description: Creates a Shared Payment Token for merchants that support the Agentic
        Commerce Protocol. Returns a token string, not full card details. Use a payment
        token instead of a card when the merchant accepts one. This endpoint is not
        yet available.
      operationId: create_payment_token_cards_payment_token_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePaymentTokenRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaymentTokenResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - cards:write
      parameters:
      - $ref: '#/components/parameters/EntityIdHeader'
  /cards/{card_id}/revoke:
    post:
      tags:
      - Cards
      summary: Revoke Card
      description: Immediately revoke a card. Revoke a card whose purchase failed
        to close it before it expires.
      operationId: revoke_card_cards__card_id__revoke_post
      parameters:
      - name: card_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: Card to act on. Use list_cards to find one.
          title: Card Id
        description: Card to act on. Use list_cards to find one.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RevokeCardResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - cards:write
  /cards/{card_id}/pan:
    post:
      tags:
      - Cards
      summary: Get Card PAN
      description: 'Claims the PAN for an agent card, such as one created via the
        API, and returns a short-lived reveal grant. GET the `reveal_url` with your
        API key and `Authorization: Bearer <reveal_token>` to receive the card number,
        CVC, and expiration. Requires the `cards:write` scope. Pass the `card_id`
        returned by Create Card. This can be called only once per card; subsequent
        calls return an error. A vendor failure before the reveal grant is created
        does not consume the one-time retrieval, so that request can be retried. Revoke
        and recreate the card if the PAN is needed again after a successful call.'
      operationId: get_card_pan_cards__card_id__pan_post
      parameters:
      - name: card_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: Card to act on. Use list_cards to find one.
          title: Card Id
        description: Card to act on. Use list_cards to find one.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardPanGrantResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - cards:write
  /cards/{card_id}/pan/reveal:
    get:
      tags:
      - Cards
      summary: Reveal Card PAN
      description: 'Returns the card number, CVC, and expiration for a claimed card.
        Call this via the `reveal_url` returned by Get Card PAN with `Authorization:
        Bearer <reveal_token>`, not against the API origin directly, which returns
        tokenized placeholders. Requires the `cards:write` scope and a valid reveal
        token.'
      operationId: reveal_card_pan_cards__card_id__pan_reveal_get
      parameters:
      - name: card_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: Card to act on. Use list_cards to find one.
          title: Card Id
        description: Card to act on. Use list_cards to find one.
      - name: authorization
        in: header
        required: false
        schema:
          type: string
          description: The `reveal_token` from Create Payment Token, as `Bearer <reveal_token>`.
            It is scoped to that one card and expires after `token_expires_in_seconds`.
          default: ''
          title: Authorization
        description: The `reveal_token` from Create Payment Token, as `Bearer <reveal_token>`.
          It is scoped to that one card and expires after `token_expires_in_seconds`.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardPanResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - cards:write
  /cards/transactions:
    get:
      tags:
      - Cards
      summary: List Card Transactions
      description: 'Returns transactions for the cards you have access to. A purchase
        produces several entries: an authorization when the merchant places the hold,
        a clearing when the money moves, and a refund or reversal if it comes back.
        Entries that share a `trace_id` are the same purchase; it can be absent, in
        which case an entry stands alone. Every amount is positive and `type` carries
        the direction, so to total actual spend take the clearing entries minus the
        refund and reversal entries: an authorization and its clearing are the same
        money, so counting both doubles the purchase. Filter by card, status, merchant,
        date range, or amount.'
      operationId: list_card_transactions_cards_transactions_get
      parameters:
      - name: public_filters
        in: query
        required: false
        schema:
          $ref: '#/components/schemas/ListCardTransactionsFilter'
          description: Transaction filters. Every field is optional.
          default: {}
        description: Transaction filters. Every field is optional.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: Maximum number of results to return.
          default: 10
          title: Limit
        description: Maximum number of results to return.
      - 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/CardTransactionsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - cards:read
  /cards/transactions/{transaction_id}:
    get:
      tags:
      - Cards
      summary: Get Card Transaction
      description: Returns one entry from a card's transaction history, by the `id`
        returned in List Card Transactions or in Get Card Spending Insights. An entry
        is one step of a purchase, so to see the whole purchase filter List Card Transactions
        by this entry's `trace_id`.
      operationId: get_card_transaction_cards_transactions__transaction_id__get
      parameters:
      - name: transaction_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The transaction's identifier.
          title: Transaction Id
        description: The transaction's identifier.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardTransactionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - cards:read
  /cards/transactions/{transaction_id}/memo:
    put:
      tags:
      - Cards
      summary: Update Card Transaction Memo
      description: Sets or removes your memo on a card transaction, such as what the
        purchase was for. The memo replaces any memo already on the transaction, and
        it counts toward a memo requirement in your card spend policy. On some cards
        related entries, such as a clearing and its refund, share one memo, so it
        changes on all of them. Send `null` to remove it. You can safely retry with
        the same memo.
      operationId: update_card_transaction_memo_cards_transactions__transaction_id__memo_put
      parameters:
      - name: transaction_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The transaction's identifier.
          title: Transaction Id
        description: The transaction's identifier.
      - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCardTransactionMemoRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardTransactionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - cards:write
  /cards/insights:
    get:
      tags:
      - Cards
      summary: Get Card Spending Insights
      description: 'Returns entity-wide spending analytics for your entity: total
        spend, cashback earned, top merchants, top expenses, and weekly trends. Requires
        admin, viewer, or card manager access.'
      operationId: get_card_insights_cards_insights_get
      parameters:
      - name: from_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          description: Only spend on or after this date.
          title: From Date
        description: Only spend on or after this date.
      - name: to_date
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          description: Only spend on or before this date.
          title: To Date
        description: Only spend on or before this date.
      - name: limit_top_expenses
        in: query
        required: false
        schema:
          type: integer
          maximum: 25
          minimum: 1
          description: How many top expenses to return.
          default: 5
          title: Limit Top Expenses
        description: How many top expenses to return.
      - name: limit_top_merchants
        in: query
        required: false
        schema:
          type: integer
          maximum: 25
          minimum: 1
          description: How many top merchants to return.
          default: 5
          title: Limit Top Merchants
        description: How many top merchants to return.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardInsightsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - cards:read
  /cards/{card_id}:
    get:
      tags:
      - Cards
      summary: Get Card
      description: Returns details of a specific card you have access to.
      operationId: get_card_cards__card_id__get
      parameters:
      - name: card_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: Card to fetch. Use list_cards to find one.
          title: Card Id
        description: Card to fetch. Use list_cards to find one.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - cards:read
    patch:
      tags:
      - Cards
      summary: Update Card
      description: Updates an agent card, such as one you created via the API. Freeze
        or unfreeze it with the `status` field, replace its spend limits with `spending_controls`,
        or change its merchant restriction with `spending_restriction` and its allowed
        merchant categories. All fields are optional; omitted fields are left unchanged.
        Read the current limits back from Get Card Limits.
      operationId: update_card_cards__card_id__patch
      parameters:
      - name: card_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: Card to act on. Use list_cards to find one.
          title: Card Id
        description: Card to act on. Use list_cards to find one.
      - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateCardRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - cards:write
  /cards/{card_id}/limits:
    get:
      tags:
      - Cards
      summary: Get Card Limits
      description: Returns a card's configured spend limits and, where the issuer
        reports it, how much of each limit is left. A null `remaining` means the issuer
        does not report it for this card, not that the limit is used up. To change
        these limits, send `spending_controls` to Update Card.
      operationId: get_card_limits_cards__card_id__limits_get
      parameters:
      - name: card_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: Card to act on. Use list_cards to find one.
          title: Card Id
        description: Card to act on. Use list_cards to find one.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardLimitsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - cards:read
  /cards/{card_id}/details:
    get:
      tags:
      - Cards
      summary: Get Card Details
      description: 'Returns operational details of a card: billing address, delivery
        address, linked banking account, and shipping tracking URL.'
      operationId: get_card_details_cards__card_id__details_get
      parameters:
      - name: card_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: Card to fetch details for. Use list_cards to find one.
          title: Card Id
        description: Card to fetch details for. Use list_cards to find one.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardDetailsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - cards:read
  /reimbursements:
    get:
      tags:
      - Reimbursements
      summary: List Reimbursements
      description: Returns submitted reimbursement requests for your entity, newest
        first. Each result includes a stable employee ID for external reconciliation.
        Filter by `employee_id` to retrieve one employee's reimbursements. Drafts
        are excluded. Not available to an API key restricted to one account.
      operationId: list_reimbursements_reimbursements_get
      parameters:
      - name: employee_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          description: Only return reimbursements for this employee ID. Use the `id`
            from `GET /users` or `employee.id` from a previous response.
          title: Employee Id
        description: Only return reimbursements for this employee ID. Use the `id`
          from `GET /users` or `employee.id` from a previous response.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: Maximum number of results to return.
          default: 10
          title: Limit
        description: Maximum number of results to return.
      - 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/ReimbursementsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - reimbursements:read
  /users/invitations:
    post:
      tags:
      - Users
      summary: Invite a team member
      description: Invite a colleague to your entity using a user API key with users:write
        and current admin access. Your key must have approved write access to the
        entity. Entity service keys cannot invite users. Your entity's approval policy
        applies before the invitation is sent. Your colleague must accept the invitation
        before gaining access. Existing members, pending invitations, and active invitation
        requests are rejected. Retrying while a request or invitation is active does
        not send another invitation.
      operationId: create_user_invitation_users_invitations_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateUserInvitationRequest'
        required: true
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateUserInvitationResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - users:write
      parameters:
      - $ref: '#/components/parameters/EntityIdHeader'
  /users:
    get:
      tags:
      - Users
      summary: List Users
      description: Returns active users for your entity in name order. Use `query`
        to search by name or email. User IDs are stable and can be passed as `employee_id`
        when listing reimbursements. Not available to an API key restricted to one
        account.
      operationId: list_users_users_get
      parameters:
      - name: query
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            minLength: 1
            maxLength: 200
          - type: 'null'
          description: Case-insensitive search over user name and email.
          title: Query
        description: Case-insensitive search over user name and email.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: Maximum number of results to return.
          default: 10
          title: Limit
        description: Maximum number of results to return.
      - 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/UsersResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - users:read
  /security-policies:
    get:
      tags:
      - Security Policies
      summary: List Security Policies
      description: Returns the security policies configured for your entity, including
        the required approvers and quorum for each.
      operationId: list_security_policies_security_policies_get
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: Maximum number of results to return.
          default: 10
          title: Limit
        description: Maximum number of results to return.
      - 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/CustomerApiSecurityPoliciesResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:read
  /approvals/{approval_id}:
    get:
      tags:
      - Approvals
      summary: Get Approval
      description: Returns the status and details of an approval request, including
        how many approvals are required and how many have been received. A key can
        always read an approval it initiated. Reading one that another key initiated
        also needs the `accounts:transactions` scope.
      operationId: get_approval_approvals__approval_id__get
      parameters:
      - name: approval_id
        in: path
        required: true
        schema:
          type: string
          description: Approval to fetch. Returned as approval_id by the payment-drafting
            tools.
          title: Approval Id
        description: Approval to fetch. Returned as approval_id by the payment-drafting
          tools.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApprovalResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:read
  /tax-forms:
    get:
      tags:
      - Tax Forms
      summary: Search Tax Forms
      description: Returns IRS tax forms (the 1099 family) issued for the specified
        account. Currently supports `Tax1099Int` for bank accounts; brokerage and
        wallet accounts return an empty list until additional form types are exposed.
      operationId: search_tax_forms_tax_forms_get
      parameters:
      - name: account_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          description: The account ID to list tax forms for.
          title: Account Id
        description: The account ID to list tax forms for.
      - name: tax_year
        in: query
        required: false
        schema:
          anyOf:
          - type: integer
          - type: 'null'
          description: Optional filter to a specific tax year.
          title: Tax Year
        description: Optional filter to a specific tax year.
      - name: tax_forms
        in: query
        required: false
        schema:
          anyOf:
          - type: array
            items:
              $ref: '#/components/schemas/TaxFormType'
          - type: 'null'
          description: Filter to one or more form types, as a list, e.g. `["Tax1099Int",
            "Tax1099Div"]`. Omit to return every form type.
          title: Tax Forms
        description: Filter to one or more form types, as a list, e.g. `["Tax1099Int",
          "Tax1099Div"]`. Omit to return every form type.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaxFormList'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:tax-documents
  /tax-forms/{tax_form_id}:
    get:
      tags:
      - Tax Forms
      summary: Retrieve Tax Form
      description: Returns a time-limited download URL for the tax form. Use a `tax_form_id`
        from the search endpoint; the value is opaque, so do not construct it yourself.
      operationId: get_tax_form_tax_forms__tax_form_id__get
      parameters:
      - name: tax_form_id
        in: path
        required: true
        schema:
          type: string
          description: The tax form ID. Use a value from the search endpoint; it is
            opaque, so do not construct it yourself.
          title: Tax Form Id
        description: The tax form ID. Use a value from the search endpoint; it is
          opaque, so do not construct it yourself.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TaxFormDownload'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:tax-documents
  /webhooks/subscriptions:
    post:
      tags:
      - Webhooks
      summary: Create Webhook Subscription
      description: Creates a webhook subscription for your entity and returns it along
        with the signing secret. The secret is returned only once, so store it now
        to verify delivery signatures.
      operationId: create_subscription_webhooks_subscriptions_post
      parameters:
      - name: Idempotency-Key
        in: header
        required: true
        schema:
          type: string
          minLength: 1
          maxLength: 50
          pattern: ^[!-~]+$
          description: A unique key you generate (1-50 printable ASCII characters,
            no spaces) so retrying this request never creates a duplicate. Reusing
            a key is rejected.
          title: Idempotency-Key
        description: A unique key you generate (1-50 printable ASCII characters, no
          spaces) so retrying this request never creates a duplicate. Reusing a key
          is rejected.
      - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateEntityWebhookSubscriptionRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookSubscriptionWithSecretResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - webhooks:write
    get:
      tags:
      - Webhooks
      summary: List Webhook Subscriptions
      description: Returns the webhook subscriptions configured for your entity.
      operationId: list_subscriptions_webhooks_subscriptions_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WebhookSubscriptionResponse'
                title: Response List Subscriptions Webhooks Subscriptions Get
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - webhooks:read
      parameters:
      - $ref: '#/components/parameters/EntityIdHeader'
  /webhooks/subscriptions/{subscription_id}:
    patch:
      tags:
      - Webhooks
      summary: Update Webhook Subscription
      description: Updates a webhook subscription. Returns the updated subscription,
        including a new signing secret when you request a rotation.
      operationId: update_subscription_webhooks_subscriptions__subscription_id__patch
      parameters:
      - name: subscription_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The webhook subscription.
          title: Subscription Id
        description: The webhook subscription.
      - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWebhookSubscriptionRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/WebhookSubscriptionResponse'
                - $ref: '#/components/schemas/WebhookSubscriptionWithSecretResponse'
                title: Response Update Subscription Webhooks Subscriptions  Subscription
                  Id  Patch
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - webhooks:write
    delete:
      tags:
      - Webhooks
      summary: Delete Webhook Subscription
      description: Deletes a webhook subscription. Its delivery history stays queryable
        so you can review past attempts.
      operationId: delete_subscription_webhooks_subscriptions__subscription_id__delete
      parameters:
      - name: subscription_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The webhook subscription.
          title: Subscription Id
        description: The webhook subscription.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '204':
          description: Successful Response
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - webhooks:write
  /webhooks/subscriptions/{subscription_id}/test:
    post:
      tags:
      - Webhooks
      summary: Send Test Webhook Event
      description: Sends a test event to a webhook subscription and queues it for
        delivery so you can verify your endpoint and signature handling.
      operationId: send_test_event_webhooks_subscriptions__subscription_id__test_post
      parameters:
      - name: subscription_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The webhook subscription.
          title: Subscription Id
        description: The webhook subscription.
      - name: Idempotency-Key
        in: header
        required: true
        schema:
          type: string
          minLength: 1
          maxLength: 50
          pattern: ^[!-~]+$
          description: A unique key you generate (1-50 printable ASCII characters,
            no spaces) so retrying this request never creates a duplicate. Reusing
            a key is rejected.
          title: Idempotency-Key
        description: A unique key you generate (1-50 printable ASCII characters, no
          spaces) so retrying this request never creates a duplicate. Reusing a key
          is rejected.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookTestEventResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - webhooks:write
  /webhooks/deliveries/{delivery_id}/redrive:
    post:
      tags:
      - Webhooks
      summary: Redrive Webhook Delivery
      description: Re-queues a failed webhook delivery for another attempt. A delivery
        that already succeeded or is currently being attempted cannot be redriven.
      operationId: redrive_delivery_webhooks_deliveries__delivery_id__redrive_post
      parameters:
      - name: delivery_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The webhook delivery.
          title: Delivery Id
        description: The webhook delivery.
      - name: Idempotency-Key
        in: header
        required: true
        schema:
          type: string
          minLength: 1
          maxLength: 50
          pattern: ^[!-~]+$
          description: A unique key you generate (1-50 printable ASCII characters,
            no spaces) so retrying this request never creates a duplicate. Reusing
            a key is rejected.
          title: Idempotency-Key
        description: A unique key you generate (1-50 printable ASCII characters, no
          spaces) so retrying this request never creates a duplicate. Reusing a key
          is rejected.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookRedriveResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - webhooks:write
  /webhooks/subscriptions/{subscription_id}/recover:
    post:
      tags:
      - Webhooks
      summary: Recover Failed Webhook Deliveries
      description: Queues every failed delivery to a webhook subscription that was
        created at or after `since` for another attempt. Use it once your endpoint
        is back after an outage. Each delivery restarts its retry schedule and keeps
        its `webhook-id`, so you can deduplicate anything you already processed. The
        subscription must be enabled. The start time must be within the last 14 days;
        older start times return HTTP 400.
      operationId: recover_deliveries_webhooks_subscriptions__subscription_id__recover_post
      parameters:
      - name: subscription_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The webhook subscription.
          title: Subscription Id
        description: The webhook subscription.
      - name: since
        in: query
        required: true
        schema:
          type: string
          format: date-time
          description: Recover failed deliveries created at or after this time, for
            example when your endpoint went down. Must be within the last 14 days.
          title: Since
        description: Recover failed deliveries created at or after this time, for
          example when your endpoint went down. Must be within the last 14 days.
      - name: Idempotency-Key
        in: header
        required: true
        schema:
          type: string
          minLength: 1
          maxLength: 50
          pattern: ^[!-~]+$
          description: A unique key you generate (1-50 printable ASCII characters,
            no spaces) so retrying this request never creates a duplicate. Reusing
            a key is rejected.
          title: Idempotency-Key
        description: A unique key you generate (1-50 printable ASCII characters, no
          spaces) so retrying this request never creates a duplicate. Reusing a key
          is rejected.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookRecoverResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - webhooks:write
  /webhooks/deliveries/{delivery_id}/attempts:
    get:
      tags:
      - Webhooks
      summary: List Webhook Delivery Attempts
      description: Returns the individual delivery attempts for a webhook delivery,
        including the response status of each attempt.
      operationId: list_delivery_attempts_webhooks_deliveries__delivery_id__attempts_get
      parameters:
      - name: delivery_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The webhook delivery.
          title: Delivery Id
        description: The webhook delivery.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: How many results to return.
          default: 20
          title: Limit
        description: How many results to return.
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: How many results to skip before this page.
          default: 0
          title: Offset
        description: How many results to skip before this page.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookDeliveryAttemptsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - webhooks:read
  /webhooks/deliveries:
    get:
      tags:
      - Webhooks
      summary: List Webhook Deliveries
      description: Returns the webhook deliveries for your entity across all subscriptions,
        most recent first. Filter by status, subscription, or creation time to find
        the deliveries to recover or redrive.
      operationId: list_deliveries_webhooks_deliveries_get
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: How many results to return.
          default: 20
          title: Limit
        description: How many results to return.
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: How many results to skip before this page.
          default: 0
          title: Offset
        description: How many results to skip before this page.
      - name: status
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/DeliveryStatus'
          - type: 'null'
          description: Only return deliveries in this status.
          title: Status
        description: Only return deliveries in this status.
      - name: subscription_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          description: Only return deliveries to this webhook subscription.
          title: Subscription Id
        description: Only return deliveries to this webhook subscription.
      - name: created_after
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          description: Only return deliveries created after this time.
          title: Created After
        description: Only return deliveries created after this time.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookDeliveryListResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - webhooks:read
  /webhooks/global/subscriptions:
    post:
      tags:
      - Webhooks
      summary: Create Global Webhook Subscription
      description: Creates a webhook subscription for every entity your global API
        key's user administers, including entities added later. New global API keys
        with business-specific write access cannot use this route. Use the entity-scoped
        webhook route with x-entity-id for an approved business. Existing global API
        keys keep their current behavior.
      operationId: create_global_subscription_webhooks_global_subscriptions_post
      parameters:
      - name: Idempotency-Key
        in: header
        required: true
        schema:
          type: string
          minLength: 1
          maxLength: 50
          pattern: ^[!-~]+$
          description: A unique key you generate (1-50 printable ASCII characters,
            no spaces) so retrying this request never creates a duplicate. Reusing
            a key is rejected.
          title: Idempotency-Key
        description: A unique key you generate (1-50 printable ASCII characters, no
          spaces) so retrying this request never creates a duplicate. Reusing a key
          is rejected.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWebhookSubscriptionRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookSubscriptionWithSecretResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - webhooks:write
    get:
      tags:
      - Webhooks
      summary: List Global Webhook Subscriptions
      description: Returns webhook subscriptions configured for your global API key
        user.
      operationId: list_global_subscriptions_webhooks_global_subscriptions_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/WebhookSubscriptionResponse'
                title: Response List Global Subscriptions Webhooks Global Subscriptions
                  Get
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - webhooks:read
  /webhooks/global/subscriptions/{subscription_id}:
    patch:
      tags:
      - Webhooks
      summary: Update Global Webhook Subscription
      description: Updates a global webhook subscription. Returns the updated subscription,
        including a new signing secret when you request a rotation. New global API
        keys with business-specific write access cannot use this route. Use the entity-scoped
        webhook route with x-entity-id for an approved business. Existing global API
        keys keep their current behavior.
      operationId: update_global_subscription_webhooks_global_subscriptions__subscription_id__patch
      parameters:
      - name: subscription_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The webhook subscription.
          title: Subscription Id
        description: The webhook subscription.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWebhookSubscriptionRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/WebhookSubscriptionResponse'
                - $ref: '#/components/schemas/WebhookSubscriptionWithSecretResponse'
                title: Response Update Global Subscription Webhooks Global Subscriptions  Subscription
                  Id  Patch
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - webhooks:write
    delete:
      tags:
      - Webhooks
      summary: Delete Global Webhook Subscription
      description: Deletes a global webhook subscription. Its delivery history stays
        queryable so you can review past attempts. New global API keys with business-specific
        write access cannot use this route. Use the entity-scoped webhook route with
        x-entity-id for an approved business. Existing global API keys keep their
        current behavior.
      operationId: delete_global_subscription_webhooks_global_subscriptions__subscription_id__delete
      parameters:
      - name: subscription_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The webhook subscription.
          title: Subscription Id
        description: The webhook subscription.
      responses:
        '204':
          description: Successful Response
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - webhooks:write
  /webhooks/global/subscriptions/{subscription_id}/test:
    post:
      tags:
      - Webhooks
      summary: Send Test Global Webhook Event
      description: Sends a test event to a global webhook subscription and queues
        it for delivery so you can verify your endpoint and signature handling. New
        global API keys with business-specific write access cannot use this route.
        Use the entity-scoped webhook route with x-entity-id for an approved business.
        Existing global API keys keep their current behavior.
      operationId: send_global_test_event_webhooks_global_subscriptions__subscription_id__test_post
      parameters:
      - name: subscription_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The webhook subscription.
          title: Subscription Id
        description: The webhook subscription.
      - name: Idempotency-Key
        in: header
        required: true
        schema:
          type: string
          minLength: 1
          maxLength: 50
          pattern: ^[!-~]+$
          description: A unique key you generate (1-50 printable ASCII characters,
            no spaces) so retrying this request never creates a duplicate. Reusing
            a key is rejected.
          title: Idempotency-Key
        description: A unique key you generate (1-50 printable ASCII characters, no
          spaces) so retrying this request never creates a duplicate. Reusing a key
          is rejected.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookTestEventResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - webhooks:write
  /webhooks/global/deliveries/{delivery_id}/redrive:
    post:
      tags:
      - Webhooks
      summary: Redrive Global Webhook Delivery
      description: Re-queues a failed global webhook delivery for another attempt.
        A delivery that already succeeded or is currently being attempted cannot be
        redriven. New global API keys with business-specific write access cannot use
        this route. Use the entity-scoped webhook route with x-entity-id for an approved
        business. Existing global API keys keep their current behavior.
      operationId: redrive_global_delivery_webhooks_global_deliveries__delivery_id__redrive_post
      parameters:
      - name: delivery_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The webhook delivery.
          title: Delivery Id
        description: The webhook delivery.
      - name: Idempotency-Key
        in: header
        required: true
        schema:
          type: string
          minLength: 1
          maxLength: 50
          pattern: ^[!-~]+$
          description: A unique key you generate (1-50 printable ASCII characters,
            no spaces) so retrying this request never creates a duplicate. Reusing
            a key is rejected.
          title: Idempotency-Key
        description: A unique key you generate (1-50 printable ASCII characters, no
          spaces) so retrying this request never creates a duplicate. Reusing a key
          is rejected.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookRedriveResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - webhooks:write
  /webhooks/global/deliveries/{delivery_id}/attempts:
    get:
      tags:
      - Webhooks
      summary: List Global Webhook Delivery Attempts
      description: Returns the individual delivery attempts for a global webhook delivery,
        including the response status of each attempt.
      operationId: list_global_delivery_attempts_webhooks_global_deliveries__delivery_id__attempts_get
      parameters:
      - name: delivery_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The webhook delivery.
          title: Delivery Id
        description: The webhook delivery.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: How many results to return.
          default: 20
          title: Limit
        description: How many results to return.
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: How many results to skip before this page.
          default: 0
          title: Offset
        description: How many results to skip before this page.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookDeliveryAttemptsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - webhooks:read
  /webhooks/global/deliveries:
    get:
      tags:
      - Webhooks
      summary: List Global Webhook Deliveries
      description: Returns webhook deliveries across all global subscriptions for
        your global API key user, most recent first. Filter by status, subscription,
        or creation time to find the deliveries to redrive.
      operationId: list_global_deliveries_webhooks_global_deliveries_get
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: How many results to return.
          default: 20
          title: Limit
        description: How many results to return.
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: How many results to skip before this page.
          default: 0
          title: Offset
        description: How many results to skip before this page.
      - name: status
        in: query
        required: false
        schema:
          anyOf:
          - $ref: '#/components/schemas/DeliveryStatus'
          - type: 'null'
          description: Only return deliveries in this status.
          title: Status
        description: Only return deliveries in this status.
      - name: subscription_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          description: Only return deliveries to this webhook subscription.
          title: Subscription Id
        description: Only return deliveries to this webhook subscription.
      - name: created_after
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          description: Only return deliveries created after this time.
          title: Created After
        description: Only return deliveries created after this time.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookDeliveryListResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - webhooks:read
  /limits/daily-withdrawal:
    get:
      tags:
      - Limits
      - Limits
      summary: Get Daily Withdrawal Limit
      description: Returns your current daily withdrawal limit, the highest you can
        raise it to, and how much you have withdrawn and can still withdraw today.
      operationId: get_daily_withdrawal_limit_limits_daily_withdrawal_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DailyWithdrawalLimitResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - banking:limits:read
      parameters:
      - $ref: '#/components/parameters/EntityIdHeader'
    put:
      tags:
      - Limits
      - Limits
      summary: Set Daily Withdrawal Limit
      description: Sets the most that can be withdrawn from your accounts in a single
        day across all transfer types. Must be a whole dollar amount from 0 up to
        the maximum set for your entity. Set it to 0 to block all outbound transfers
        while you collect funds, then raise it when you are ready to pay out. The
        limit is business-wide, so an API key restricted to one account cannot change
        it.
      operationId: update_daily_withdrawal_limit_limits_daily_withdrawal_put
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateDailyWithdrawalLimitRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DailyWithdrawalLimitResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - banking:limits:write
      parameters:
      - $ref: '#/components/parameters/EntityIdHeader'
  /feature-access/requests:
    get:
      tags:
      - Feature Access
      summary: List your feature access requests
      description: Returns your restricted-feature access requests and the status
        of each one.
      operationId: List_Feature_Access_Requests_feature_access_requests_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicFeatureAccessRequestsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - feature-access:read
      parameters:
      - $ref: '#/components/parameters/EntityIdHeader'
    post:
      tags:
      - Feature Access
      summary: Request access to a restricted feature
      description: Requests access to a restricted feature, such as international
        payments. Send the eligibility details for the feature and we notify the team
        that reviews them. Eligible businesses may be approved right away. If you
        have already requested this feature, we return its current status.
      operationId: Request_Feature_Access_feature_access_requests_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestFeatureAccessRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicFeatureAccessRequestResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - feature-access:write
      parameters:
      - $ref: '#/components/parameters/EntityIdHeader'
  /wire-drawdowns:
    get:
      tags:
      - Wire Drawdowns
      summary: List Wire Drawdown Requests
      description: Returns every wire drawdown request made against your accounts,
        pending ones first. A drawdown is a vendor asking you to wire them funds;
        nothing moves until you approve it.
      operationId: list_wire_drawdown_requests_wire_drawdowns_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WireDrawdownRequests'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:transactions
      parameters:
      - $ref: '#/components/parameters/EntityIdHeader'
  /wire-drawdowns/authorizations:
    get:
      tags:
      - Wire Drawdowns
      summary: List Wire Drawdown Authorizations
      description: Returns the vendors you have pre-authorized to draw funds, across
        all your accounts. A request from an authorized vendor within its limit is
        approved automatically.
      operationId: list_wire_drawdown_authorizations_wire_drawdowns_authorizations_get
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: Maximum number of results to return.
          default: 10
          title: Limit
        description: Maximum number of results to return.
      - 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/WireDrawdownAuthorizations'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:transactions
  /accounts/{account_id}/wire-drawdowns/{wire_id}/approve:
    post:
      tags:
      - Wire Drawdowns
      summary: Approve Wire Drawdown Request
      description: Approves a pending drawdown request, which sends a wire for the
        requested amount from the account. Requires the same scope as sending a wire.
      operationId: approve_wire_drawdown_request_accounts__account_id__wire_drawdowns__wire_id__approve_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.
      - name: wire_id
        in: path
        required: true
        schema:
          type: string
          description: The drawdown request ID.
          title: Wire Id
        description: The drawdown request ID.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '204':
          description: Successful Response
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - transfers:wire:write
  /accounts/{account_id}/wire-drawdowns/{wire_id}/reject:
    post:
      tags:
      - Wire Drawdowns
      summary: Reject Wire Drawdown Request
      description: Rejects a pending drawdown request. No funds move.
      operationId: reject_wire_drawdown_request_accounts__account_id__wire_drawdowns__wire_id__reject_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.
      - name: wire_id
        in: path
        required: true
        schema:
          type: string
          description: The drawdown request ID.
          title: Wire Id
        description: The drawdown request ID.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '204':
          description: Successful Response
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - transfers:wire:write
  /accounts/{account_id}/wire-drawdowns/authorizations:
    post:
      tags:
      - Wire Drawdowns
      summary: Create Wire Drawdown Authorization
      description: Pre-authorizes a vendor to draw funds from the account. Requests
        from that vendor within the transaction limit are approved automatically.
      operationId: create_wire_drawdown_authorization_accounts__account_id__wire_drawdowns_authorizations_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/WireDrawdownAuthorizationCreateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WireDrawdownAuthorization'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - transfers:wire:write
  /accounts/{account_id}/wire-drawdowns/authorizations/{authorization_id}:
    put:
      tags:
      - Wire Drawdowns
      summary: Update Wire Drawdown Authorization
      description: Changes the vendor name or transaction limit on an authorization.
      operationId: update_wire_drawdown_authorization_accounts__account_id__wire_drawdowns_authorizations__authorization_id__put
      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: authorization_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The authorization ID.
          title: Authorization Id
        description: The authorization ID.
      - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WireDrawdownAuthorizationUpdateRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WireDrawdownAuthorization'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - transfers:wire:write
    delete:
      tags:
      - Wire Drawdowns
      summary: Delete Wire Drawdown Authorization
      description: Revokes an authorization. Future requests from that vendor wait
        for manual approval.
      operationId: delete_wire_drawdown_authorization_accounts__account_id__wire_drawdowns_authorizations__authorization_id__delete
      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: authorization_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The authorization ID.
          title: Authorization Id
        description: The authorization ID.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '204':
          description: Successful Response
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - transfers:wire:write
  /api-keys/accessible-entities:
    get:
      tags:
      - API Keys
      summary: List Accessible Entities
      description: 'Returns the entities your API key can access, with their IDs and
        names, so

        you know which entity ID to pass in the `x-entity-id` header.'
      operationId: list_accessible_entities_api_keys_accessible_entities_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAccessibleEntitiesResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:read
  /api-keys/current:
    get:
      tags:
      - API Keys
      summary: Get Current API Key
      description: 'Returns metadata about the API key used for the current request,
        including

        its type and scopes.'
      operationId: get_current_api_key_api_keys_current_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CurrentApiKeyResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:read
  /entities:
    post:
      tags:
      - Entities
      summary: Create Business Entity
      description: 'Creates a new business entity owned by your API key''s user. Send
        an empty body to create a bare not-started entity, or seed any KYB business
        details up front: legal name, incorporation, the registered legal and (optional)
        physical address, and the business profile fields (phone, tax ID, website,
        description, industry, account purpose, and digital-currency questions). The
        creating user is granted admin on the new entity, so the same API key can
        immediately act on it by passing the returned entity ID in the `x-entity-id`
        header. Anything you omit can be added later with Update Business Details.
        The entity still completes KYB (beneficial owners and any remaining details)
        before it can be approved or open bank accounts.'
      operationId: create_business_entity_entities_post
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
              - $ref: '#/components/schemas/CreateBusinessEntityRequest'
              - type: 'null'
              title: Request
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateBusinessEntityResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - entity:create
    get:
      tags:
      - Entities
      summary: List Onboarding Entities
      description: Lists the business entities being onboarded by your API key's user.
      operationId: list_entity_onboarding_entities_get
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: Maximum number of results to return.
          default: 10
          title: Limit
        description: Maximum number of results to return.
      - 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.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityOnboardingListResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:read
  /entities/{entity_id}:
    get:
      tags:
      - Entities
      summary: Get Entity Onboarding Status
      description: Returns the onboarding status of a business entity, including uploaded
        documents and each representative's KYC status in the `representatives` array.
        The top-level `kyc_status` reflects the primary representative.
      operationId: get_entity_onboarding_entities__entity_id__get
      parameters:
      - name: entity_id
        in: path
        required: true
        schema:
          type: string
          description: The entity being onboarded.
          title: Entity Id
        description: The entity being onboarded.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityOnboardingStatusResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:read
  /entities/{entity_id}/business-details:
    patch:
      tags:
      - Entities
      summary: Update Business Details
      description: Update a business entity's KYB details before its application is
        submitted. Send only the fields you want to change; anything you omit keeps
        its current value. Use this to fill in the business phone, tax ID, website,
        description, industry, account purpose, and digital-currency questions, and
        the registered legal and physical addresses, or to correct details captured
        at creation. Send `physical_address` together with `business_address`; omitting
        it keeps any physical address already on file, or uses the legal address when
        none is set. Returns the refreshed onboarding status, including what is still
        required next.
      operationId: update_entity_business_details_entities__entity_id__business_details_patch
      parameters:
      - name: entity_id
        in: path
        required: true
        schema:
          type: string
          description: The entity being onboarded.
          title: Entity Id
        description: The entity being onboarded.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EntityUpdateBusinessDetailsRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityOnboardingStatusResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - entity:create
  /entities/{entity_id}/representatives:
    post:
      tags:
      - Entities
      summary: Add Entity Representative
      description: Add a representative (a beneficial owner or officer) to a business
        entity. Set `is_primary` to mark the primary representative (signer); exactly
        one primary is required before the application can be submitted. If this person
        already passed identity verification on another entity you administer, that
        verification carries over and `kyc_status` is `approved`. Otherwise verify
        the representative separately by submitting their KYC data or minting a self-serve
        verification link. This is allowed only before the application is submitted
        for review.
      operationId: create_representative_entities__entity_id__representatives_post
      parameters:
      - name: entity_id
        in: path
        required: true
        schema:
          type: string
          description: The entity being onboarded.
          title: Entity Id
        description: The entity being onboarded.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EntityCreateRepresentativeRequest'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityRepresentativeResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - entity:create
    get:
      tags:
      - Entities
      summary: List Entity Representatives
      description: List the representatives (beneficial owners and officers) on a
        business entity's application, each with their identity verification (KYC)
        status. The primary representative (signer) is returned first. Use each `representative_id`
        to submit KYC, mint a verification link, or make it primary.
      operationId: list_representatives_entities__entity_id__representatives_get
      parameters:
      - name: entity_id
        in: path
        required: true
        schema:
          type: string
          description: The entity being onboarded.
          title: Entity Id
        description: The entity being onboarded.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityRepresentativeListResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:read
  /entities/{entity_id}/representatives/{representative_id}/kyc:
    post:
      tags:
      - Entities
      summary: Submit Representative KYC Data
      description: Submit identity (KYC) data for a representative you added. Verification
        runs server-side; poll the entity onboarding status endpoint for the result.
        Use this when you hold the representative's identity details; otherwise mint
        a verification link for them to self-verify.
      operationId: submit_representative_kyc_data_entities__entity_id__representatives__representative_id__kyc_post
      parameters:
      - name: representative_id
        in: path
        required: true
        schema:
          type: string
          description: The representative, as returned in `representatives` on `GET
            /entities/{entity_id}`.
          title: Representative Id
        description: The representative, as returned in `representatives` on `GET
          /entities/{entity_id}`.
      - name: entity_id
        in: path
        required: true
        schema:
          type: string
          description: The entity being onboarded.
          title: Entity Id
        description: The entity being onboarded.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OnboardingKycIdentity'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityRepresentativeKycResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - entity:create
  /entities/{entity_id}/representatives/{representative_id}/verification-link:
    post:
      tags:
      - Entities
      summary: Create Representative Verification Link
      description: Mint a shareable identity-verification link the representative
        opens to complete KYC themselves. The alternative to submitting their KYC
        data directly.
      operationId: create_representative_verification_link_entities__entity_id__representatives__representative_id__verification_link_post
      parameters:
      - name: representative_id
        in: path
        required: true
        schema:
          type: string
          description: The representative, as returned in `representatives` on `GET
            /entities/{entity_id}`.
          title: Representative Id
        description: The representative, as returned in `representatives` on `GET
          /entities/{entity_id}`.
      - name: entity_id
        in: path
        required: true
        schema:
          type: string
          description: The entity being onboarded.
          title: Entity Id
        description: The entity being onboarded.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityRepresentativeVerificationLinkResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - entity:create
  /entities/{entity_id}/representatives/{representative_id}/make-primary:
    post:
      tags:
      - Entities
      summary: Make Representative Primary
      description: Make an existing representative the primary representative (signer).
        Any current primary is demoted, so exactly one remains. Allowed only before
        the application is submitted for review. Returns the updated onboarding status.
      operationId: set_primary_representative_entities__entity_id__representatives__representative_id__make_primary_post
      parameters:
      - name: representative_id
        in: path
        required: true
        schema:
          type: string
          description: The representative, as returned in `representatives` on `GET
            /entities/{entity_id}`.
          title: Representative Id
        description: The representative, as returned in `representatives` on `GET
          /entities/{entity_id}`.
      - name: entity_id
        in: path
        required: true
        schema:
          type: string
          description: The entity being onboarded.
          title: Entity Id
        description: The entity being onboarded.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityOnboardingStatusResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - entity:create
  /entities/{entity_id}/documents/upload-url:
    post:
      tags:
      - Entities
      summary: Get Entity Document Upload URL
      description: Get a pre-signed URL to upload a KYB document. Use HTTP PUT to
        upload the file to the returned URL, then confirm it. For a document that
        belongs to a specific representative (e.g. their ID or proof of address),
        pass their `representative_id` here and again on the confirm call, which records
        the link.
      operationId: upload_document_entities__entity_id__documents_upload_url_post
      parameters:
      - name: entity_id
        in: path
        required: true
        schema:
          type: string
          description: The entity being onboarded.
          title: Entity Id
        description: The entity being onboarded.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EntityDocumentUploadRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerDocumentUploadResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - entity:create
  /entities/{entity_id}/documents/confirm:
    post:
      tags:
      - Entities
      summary: Confirm Entity Document Upload
      description: Confirm that a KYB document was uploaded successfully. Pass the
        same `representative_id` given when the upload URL was generated (if any)
        to record which representative the document belongs to; it is echoed back
        on the entity's onboarding status under `documents`.
      operationId: confirm_document_entities__entity_id__documents_confirm_post
      parameters:
      - name: entity_id
        in: path
        required: true
        schema:
          type: string
          description: The entity being onboarded.
          title: Entity Id
        description: The entity being onboarded.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EntityDocumentConfirmRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerDocumentConfirmResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - entity:create
  /entities/{entity_id}/info-requests/{request_id}/documents/upload-url:
    post:
      tags:
      - Entities
      summary: Get Info Request Document Upload URL
      description: Get a pre-signed URL to upload a document a reviewer asked for
        after the application was submitted. Take `request_id` from `next_step.info_requests[]`
        on the onboarding status, and the `proof_type` from that entry's `required_proof_types`.
        Use HTTP PUT to upload the file to the returned URL, then confirm it. Unlike
        `/documents/upload-url`, this stays available after submission, which is when
        info requests are raised.
      operationId: upload_info_request_document_entities__entity_id__info_requests__request_id__documents_upload_url_post
      parameters:
      - name: request_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The information request, as returned in `next_step.info_requests[].request_id`.
          title: Request Id
        description: The information request, as returned in `next_step.info_requests[].request_id`.
      - name: entity_id
        in: path
        required: true
        schema:
          type: string
          description: The entity being onboarded.
          title: Entity Id
        description: The entity being onboarded.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartnerDocumentUploadRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerDocumentUploadResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - entity:create
  /entities/{entity_id}/info-requests/{request_id}/documents/confirm:
    post:
      tags:
      - Entities
      summary: Confirm Info Request Document Upload
      description: Confirm that a document for an info request was uploaded successfully.
        The document is attributed to `request_id`, so it counts against what that
        request is waiting on. `request_completed` reports whether this satisfied
        the request in full; a request also stays open on unanswered follow-up questions,
        which `next_step.info_requests[].questions_pending` flags.
      operationId: confirm_info_request_document_entities__entity_id__info_requests__request_id__documents_confirm_post
      parameters:
      - name: request_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The information request, as returned in `next_step.info_requests[].request_id`.
          title: Request Id
        description: The information request, as returned in `next_step.info_requests[].request_id`.
      - name: entity_id
        in: path
        required: true
        schema:
          type: string
          description: The entity being onboarded.
          title: Entity Id
        description: The entity being onboarded.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartnerDocumentConfirmRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityInfoRequestDocumentConfirmResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - entity:create
  /entities/{entity_id}/info-requests/{request_id}/schema:
    get:
      tags:
      - Entities
      summary: Get Info Request Form Schema
      description: 'The form describing everything an information request collects.
        Documents and follow-up questions are elements of one schema: a `file_upload`
        element carries the `proof_type` to pass to the document upload endpoints,
        and the remaining elements are questions to answer. Take `request_id` from
        `next_step.info_requests[].request_id`.'
      operationId: get_info_request_schema_entities__entity_id__info_requests__request_id__schema_get
      parameters:
      - name: request_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The information request, as returned in `next_step.info_requests[].request_id`.
          title: Request Id
        description: The information request, as returned in `next_step.info_requests[].request_id`.
      - name: entity_id
        in: path
        required: true
        schema:
          type: string
          description: The entity being onboarded.
          title: Entity Id
        description: The entity being onboarded.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityInfoRequestSchema'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:read
  /entities/{entity_id}/info-requests/{request_id}:
    post:
      tags:
      - Entities
      summary: Submit Info Request Answers
      description: Answer an information request's follow-up questions. Answers are
        validated against the request's form schema and submitted in one call. There
        is no draft state on this API. Documents are uploaded separately; `outstanding`
        reports whatever the request still owes.
      operationId: submit_info_request_answers_entities__entity_id__info_requests__request_id__post
      parameters:
      - name: request_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The information request, as returned in `next_step.info_requests[].request_id`.
          title: Request Id
        description: The information request, as returned in `next_step.info_requests[].request_id`.
      - name: entity_id
        in: path
        required: true
        schema:
          type: string
          description: The entity being onboarded.
          title: Entity Id
        description: The entity being onboarded.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EntityInfoRequestAnswersRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityInfoRequestAnswersResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - entity:create
  /entities/{entity_id}/submit:
    post:
      tags:
      - Entities
      summary: Submit Entity Application
      description: 'Submit a fully prepared business entity for review. Choose the
        checking account product to open. The application must have everything it
        needs first (check `next_step.can_submit` on the onboarding status); otherwise
        this returns the outstanding requirements. Once submitted, the application
        moves to review and can no longer be edited. Pass `product_features` to request
        additional products alongside the checking account (for example `stablecoins`
        for USDC access); they are enabled once the application is approved. Returns
        the updated onboarding status, including a `consent_url`: share it with the
        primary representative so they can review and accept the required agreements,
        disclosures, and attestations in their browser (no login needed). The same
        link is also returned on `GET /entities/{entity_id}` after submission.'
      operationId: submit_entity_application_entities__entity_id__submit_post
      parameters:
      - name: entity_id
        in: path
        required: true
        schema:
          type: string
          description: The entity being onboarded.
          title: Entity Id
        description: The entity being onboarded.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EntitySubmitApplicationRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityOnboardingStatusResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - entity:create
  /entities/{entity_id}/due-diligence:
    post:
      tags:
      - Entities
      summary: Submit Due Diligence Form
      description: Submit an enhanced due diligence form for a business entity. Some
        industries require additional due diligence before the application can be
        submitted (check `next_step.missing` on the onboarding status). Every standalone
        form with a schema can be submitted here. Supporting documents a form refers
        to are uploaded separately as entity documents, not in this body. Your answers
        are checked against the form schema, so fetch it first and send everything
        it marks required. Returns the updated onboarding status.
      operationId: submit_entity_due_diligence_entities__entity_id__due_diligence_post
      parameters:
      - name: entity_id
        in: path
        required: true
        schema:
          type: string
          description: The entity being onboarded.
          title: Entity Id
        description: The entity being onboarded.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
              - $ref: '#/components/schemas/CannabisEddFormRequest'
              - $ref: '#/components/schemas/CryptoEddFormRequest'
              - $ref: '#/components/schemas/InvestmentsEddFormRequest'
              - $ref: '#/components/schemas/HoldingsEddFormRequest'
              - $ref: '#/components/schemas/MpmEddFormRequest'
              - $ref: '#/components/schemas/RealEstateEddFormRequest'
              - $ref: '#/components/schemas/NoWebsiteEddFormRequest'
              - $ref: '#/components/schemas/NonUSUbosEddFormRequest'
              - $ref: '#/components/schemas/ProtocolEcosystemEddFormRequest'
              - $ref: '#/components/schemas/InternationalEddFormRequest'
              discriminator:
                propertyName: form_type
                mapping:
                  cannabis: '#/components/schemas/CannabisEddFormRequest'
                  crypto: '#/components/schemas/CryptoEddFormRequest'
                  investments: '#/components/schemas/InvestmentsEddFormRequest'
                  holdings: '#/components/schemas/HoldingsEddFormRequest'
                  mpm: '#/components/schemas/MpmEddFormRequest'
                  real_estate: '#/components/schemas/RealEstateEddFormRequest'
                  no_website: '#/components/schemas/NoWebsiteEddFormRequest'
                  non_us_ubos: '#/components/schemas/NonUSUbosEddFormRequest'
                  protocol_ecosystem: '#/components/schemas/ProtocolEcosystemEddFormRequest'
                  international: '#/components/schemas/InternationalEddFormRequest'
              title: Request
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityOnboardingStatusResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - entity:create
    get:
      tags:
      - Entities
      summary: Get Due Diligence Requirements
      description: List the enhanced due diligence forms required for a business entity,
        each with its completion status and whether it must be completed in the web
        app. Fetch each submittable form's schema, then submit it.
      operationId: get_entity_due_diligence_entities__entity_id__due_diligence_get
      parameters:
      - name: entity_id
        in: path
        required: true
        schema:
          type: string
          description: The entity being onboarded.
          title: Entity Id
        description: The entity being onboarded.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityDueDiligenceStatusResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:read
  /entities/{entity_id}/due-diligence/schema/{form_type}:
    get:
      tags:
      - Entities
      summary: Get Due Diligence Form Schema
      description: 'Get the field schema for a due diligence form: its pages and elements
        with types, choices, validation, and conditional visibility. Every standalone
        form with a schema can be submitted through the API. Use the schema to build
        a valid submission body.'
      operationId: get_entity_due_diligence_schema_entities__entity_id__due_diligence_schema__form_type__get
      parameters:
      - name: form_type
        in: path
        required: true
        schema:
          $ref: '#/components/schemas/CustomerApiEddFormType'
          description: The due diligence form to fetch the schema for.
        description: The due diligence form to fetch the schema for.
      - name: entity_id
        in: path
        required: true
        schema:
          type: string
          description: The entity being onboarded.
          title: Entity Id
        description: The entity being onboarded.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DDFormSchema'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - accounts:read
  /partner/applications:
    post:
      tags:
      - Partner Onboarding
      summary: Create Application
      description: Create a new onboarding application with business details. The
        applicant receives an invitation email to set their password and complete
        onboarding.
      operationId: create_application_partner_applications_post
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartnerCreateApplicationRequest'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerApplicationResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - partner:onboarding:write
    get:
      tags:
      - Partner Onboarding
      summary: List Applications
      description: List all applications you have created.
      operationId: list_applications_partner_applications_get
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 200
          minimum: 1
          description: Maximum number of results to return.
          default: 50
          title: Limit
        description: Maximum number of results to return.
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: Number of results to skip.
          default: 0
          title: Offset
        description: Number of results to skip.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerApplicationListResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - partner:onboarding:read
  /partner/applications/{app_id}:
    get:
      tags:
      - Partner Onboarding
      summary: Get Application Status
      description: Get the onboarding status of an application, including uploaded
        documents and the applicant's KYC status.
      operationId: get_application_partner_applications__app_id__get
      parameters:
      - name: app_id
        in: path
        required: true
        schema:
          type: string
          description: The onboarding application, as returned when it was created.
          title: App Id
        description: The onboarding application, as returned when it was created.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerApplicationStatusResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - partner:onboarding:read
  /partner/applications/{app_id}/documents/upload-url:
    post:
      tags:
      - Partner Onboarding
      summary: Get Document Upload URL
      description: Get a pre-signed URL to upload a KYB document. Use HTTP PUT to
        upload the file to the returned URL, then confirm it.
      operationId: get_upload_url_partner_applications__app_id__documents_upload_url_post
      parameters:
      - name: app_id
        in: path
        required: true
        schema:
          type: string
          description: The onboarding application, as returned when it was created.
          title: App Id
        description: The onboarding application, as returned when it was created.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartnerDocumentUploadRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerDocumentUploadResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - partner:onboarding:write
  /partner/applications/{app_id}/documents/confirm:
    post:
      tags:
      - Partner Onboarding
      summary: Confirm Document Upload
      description: Confirm that a KYB document was uploaded successfully.
      operationId: confirm_document_partner_applications__app_id__documents_confirm_post
      parameters:
      - name: app_id
        in: path
        required: true
        schema:
          type: string
          description: The onboarding application, as returned when it was created.
          title: App Id
        description: The onboarding application, as returned when it was created.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartnerDocumentConfirmRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerDocumentConfirmResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - partner:onboarding:write
  /partner/applications/{app_id}/kyc:
    post:
      tags:
      - Partner Onboarding
      summary: Submit KYC Data
      description: 'Submit identity (KYC) data you have already collected for the
        applicant, with their consent. Verification runs server-side; the applicant
        does not need to complete a verification link. The result is usually available
        asynchronously: poll the application status endpoint for the final `kyc_status`,
        or subscribe to the `identity_verification.*` webhook events. Repeat submissions
        while a verification is in progress are idempotent and return the current
        status without re-sending data; corrected data is applied on a new submission
        after the current attempt completes or fails.'
      operationId: submit_kyc_partner_applications__app_id__kyc_post
      parameters:
      - name: app_id
        in: path
        required: true
        schema:
          type: string
          description: The onboarding application, as returned when it was created.
          title: App Id
        description: The onboarding application, as returned when it was created.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PartnerKycSubmissionRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PartnerKycSubmissionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - partner:onboarding:write
  /partner/webhooks/subscriptions:
    get:
      tags:
      - Partner Webhooks
      summary: List Partner Webhook Subscriptions
      description: Returns your partner webhook subscriptions.
      operationId: list_subscriptions_partner_webhooks_subscriptions_get
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                items:
                  $ref: '#/components/schemas/WebhookSubscriptionResponse'
                type: array
                title: Response List Subscriptions Partner Webhooks Subscriptions
                  Get
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - partner:webhooks:read
    post:
      tags:
      - Partner Webhooks
      summary: Create Partner Webhook Subscription
      description: Creates a partner webhook subscription and returns it along with
        the signing secret. The secret is returned only once, so store it now to verify
        delivery signatures.
      operationId: create_subscription_partner_webhooks_subscriptions_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateWebhookSubscriptionRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookSubscriptionWithSecretResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - partner:webhooks:write
  /partner/webhooks/subscriptions/{subscription_id}:
    patch:
      tags:
      - Partner Webhooks
      summary: Update Partner Webhook Subscription
      description: Updates a partner webhook subscription. Returns the updated subscription,
        including a new signing secret when you request a rotation.
      operationId: update_subscription_partner_webhooks_subscriptions__subscription_id__patch
      parameters:
      - name: subscription_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The webhook subscription.
          title: Subscription Id
        description: The webhook subscription.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateWebhookSubscriptionRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                anyOf:
                - $ref: '#/components/schemas/WebhookSubscriptionResponse'
                - $ref: '#/components/schemas/WebhookSubscriptionWithSecretResponse'
                title: Response Update Subscription Partner Webhooks Subscriptions  Subscription
                  Id  Patch
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - partner:webhooks:write
    delete:
      tags:
      - Partner Webhooks
      summary: Delete Partner Webhook Subscription
      description: Deletes a partner webhook subscription.
      operationId: delete_subscription_partner_webhooks_subscriptions__subscription_id__delete
      parameters:
      - name: subscription_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The webhook subscription.
          title: Subscription Id
        description: The webhook subscription.
      responses:
        '204':
          description: Successful Response
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - partner:webhooks:write
  /partner/webhooks/subscriptions/{subscription_id}/test:
    post:
      tags:
      - Partner Webhooks
      summary: Send Test Partner Webhook Event
      description: Sends a test event to a partner webhook subscription and queues
        it for delivery so you can verify your endpoint and signature handling.
      operationId: send_test_event_partner_webhooks_subscriptions__subscription_id__test_post
      parameters:
      - name: subscription_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The webhook subscription.
          title: Subscription Id
        description: The webhook subscription.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookTestEventResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - partner:webhooks:write
  /partner/webhooks/deliveries/{delivery_id}/redrive:
    post:
      tags:
      - Partner Webhooks
      summary: Redrive Partner Webhook Delivery
      description: Re-queues a failed partner webhook delivery for another attempt.
        A delivery that already succeeded or is currently being attempted cannot be
        redriven.
      operationId: redrive_delivery_partner_webhooks_deliveries__delivery_id__redrive_post
      parameters:
      - name: delivery_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The webhook delivery.
          title: Delivery Id
        description: The webhook delivery.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookRedriveResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - partner:webhooks:write
  /partner/webhooks/deliveries/{delivery_id}/attempts:
    get:
      tags:
      - Partner Webhooks
      summary: List Partner Webhook Delivery Attempts
      description: Returns the individual delivery attempts for a partner webhook
        delivery, including the response status of each attempt.
      operationId: list_delivery_attempts_partner_webhooks_deliveries__delivery_id__attempts_get
      parameters:
      - name: delivery_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The webhook delivery.
          title: Delivery Id
        description: The webhook delivery.
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: How many results to return.
          default: 20
          title: Limit
        description: How many results to return.
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: How many results to skip before this page.
          default: 0
          title: Offset
        description: How many results to skip before this page.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookDeliveryAttemptsResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - partner:webhooks:read
  /partner/webhooks/deliveries:
    get:
      tags:
      - Partner Webhooks
      summary: List Partner Webhook Deliveries
      description: Returns your partner webhook deliveries across all subscriptions,
        most recent first.
      operationId: list_deliveries_partner_webhooks_deliveries_get
      parameters:
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 100
          minimum: 1
          description: How many results to return.
          default: 20
          title: Limit
        description: How many results to return.
      - name: offset
        in: query
        required: false
        schema:
          type: integer
          minimum: 0
          description: How many results to skip before this page.
          default: 0
          title: Offset
        description: How many results to skip before this page.
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WebhookDeliveryListResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - partner:webhooks:read
  /simulations/entities/{entity_id}/application_approval:
    post:
      tags:
      - Simulations
      summary: Simulate Application Approval
      description: '> ⚠️ **Sandbox & development only.** Simulation endpoints are
        not available in production and return `404 Not Found` there.


        Approves a submitted onboarding application in the sandbox as if the compliance
        review had passed, and kicks off checking-account onboarding for the selected
        product. Every representative must have passed identity verification (`kyc_status`
        is `approved`) first: like real review, the simulation will not approve an
        application whose beneficial owner failed KYC, and returns `400` until they
        pass. Requires an entity API key scoped to the requested entity, or a global
        API key with the `simulations:write` scope whose user administers the entity;
        the application must already be submitted. The application status moves to
        `submitted` immediately and to `approved` once the checking account activates.
        Poll `GET /entities/{entity_id}` or subscribe to `application.*` webhooks
        to observe the transition. Safe to call repeatedly: if account opening stalls
        in the sandbox, calling this again completes it.'
      operationId: simulate_application_approval_simulations_entities__entity_id__application_approval_post
      parameters:
      - name: entity_id
        in: path
        required: true
        schema:
          type: string
          description: The entity being onboarded.
          title: Entity Id
        description: The entity being onboarded.
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
              - $ref: '#/components/schemas/SimulateApplicationApprovalRequest'
              - type: 'null'
              title: Request
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityOnboardingStatusResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - simulations:write
  /simulations/inbound_transfers:
    post:
      tags:
      - Simulations
      summary: Simulate Inbound Transfer
      description: '> ⚠️ **Sandbox & development only.** Simulation endpoints are
        not available in production and return `404 Not Found` there.


        Simulates an inbound ACH, wire, RTP, or FedNow transfer into a cash account
        in the sandbox. Only cash accounts support this simulation.'
      operationId: simulate_inbound_transfer_simulations_inbound_transfers_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SimulateInboundTransferRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimulateInboundTransferResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - simulations:write
      parameters:
      - $ref: '#/components/parameters/EntityIdHeader'
  /simulations/inbound_transfers/{sender_name}:
    get:
      tags:
      - Simulations
      summary: Get Simulated Inbound Transfer Status
      description: '> ⚠️ **Sandbox & development only.** Simulation endpoints are
        not available in production and return `404 Not Found` there.


        Checks whether a simulated inbound transfer has settled into a transaction
        yet. Pass the `sender_name` returned by Simulate Inbound Transfer. Returns
        `processing` until the transfer settles, and `settled` with the resulting
        `transaction_id` once it does.'
      operationId: get_simulated_inbound_transfer_status_simulations_inbound_transfers__sender_name__get
      parameters:
      - name: sender_name
        in: path
        required: true
        schema:
          type: string
          description: The `sender_name` returned when the inbound transfer was simulated.
          title: Sender Name
        description: The `sender_name` returned when the inbound transfer was simulated.
      - $ref: '#/components/parameters/EntityIdHeader'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimulatedInboundTransferStatusResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - simulations:write
  /simulations/card_authorizations:
    post:
      tags:
      - Simulations
      summary: Simulate Card Authorization
      description: '> ⚠️ **Sandbox & development only.** Simulation endpoints are
        not available in production and return `404 Not Found` there.


        Simulates a card authorization in the sandbox and returns the resulting authorization,
        its status, and whether it was approved.'
      operationId: simulate_card_authorization_simulations_card_authorizations_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SimulateCardAuthorizationRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimulateCardAuthorizationResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - simulations:write
      parameters:
      - $ref: '#/components/parameters/EntityIdHeader'
  /simulations/card_authorizations/{authorization_id}/capture:
    post:
      tags:
      - Simulations
      summary: Simulate Card Authorization Capture
      description: '> ⚠️ **Sandbox & development only.** Simulation endpoints are
        not available in production and return `404 Not Found` there.


        Simulates capturing a previously simulated card authorization in the sandbox.
        Pass the `authorization_id` returned when you created the authorization.'
      operationId: simulate_card_capture_simulations_card_authorizations__authorization_id__capture_post
      parameters:
      - name: authorization_id
        in: path
        required: true
        schema:
          type: string
          description: The simulated authorization, as returned by Simulate Card Authorization.
          title: Authorization Id
        description: The simulated authorization, as returned by Simulate Card Authorization.
      - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
              - $ref: '#/components/schemas/SimulateCardCaptureRequest'
              - type: 'null'
              title: Request
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimulateCardAuthorizationResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - simulations:write
  /simulations/card_authorizations/{authorization_id}/increment:
    post:
      tags:
      - Simulations
      summary: Simulate Card Authorization Increment
      description: '> ⚠️ **Sandbox & development only.** Simulation endpoints are
        not available in production and return `404 Not Found` there.


        Simulates incrementing the amount of a previously simulated card authorization
        in the sandbox. Pass the `authorization_id` returned when you created the
        authorization.'
      operationId: simulate_card_increment_simulations_card_authorizations__authorization_id__increment_post
      parameters:
      - name: authorization_id
        in: path
        required: true
        schema:
          type: string
          description: The simulated authorization, as returned by Simulate Card Authorization.
          title: Authorization Id
        description: The simulated authorization, as returned by Simulate Card Authorization.
      - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SimulateCardIncrementRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimulateCardAuthorizationResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - simulations:write
  /simulations/card_authorizations/{authorization_id}/reverse:
    post:
      tags:
      - Simulations
      summary: Simulate Card Authorization Reversal
      description: '> ⚠️ **Sandbox & development only.** Simulation endpoints are
        not available in production and return `404 Not Found` there.


        Simulates reversing a previously simulated card authorization in the sandbox.
        Pass the `authorization_id` returned when you created the authorization.'
      operationId: simulate_card_reverse_simulations_card_authorizations__authorization_id__reverse_post
      parameters:
      - name: authorization_id
        in: path
        required: true
        schema:
          type: string
          description: The simulated authorization, as returned by Simulate Card Authorization.
          title: Authorization Id
        description: The simulated authorization, as returned by Simulate Card Authorization.
      - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
              - $ref: '#/components/schemas/SimulateCardReverseRequest'
              - type: 'null'
              title: Request
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimulateCardAuthorizationResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - simulations:write
  /simulations/card_transactions/{transaction_id}/refund:
    post:
      tags:
      - Simulations
      summary: Simulate Card Transaction Refund
      description: '> ⚠️ **Sandbox & development only.** Simulation endpoints are
        not available in production and return `404 Not Found` there.


        Simulates refunding a previously simulated card transaction in the sandbox.
        Pass the `transaction_id` of the transaction to refund.'
      operationId: simulate_card_refund_simulations_card_transactions__transaction_id__refund_post
      parameters:
      - name: transaction_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          description: The card transaction to refund, as returned by List Card Transactions.
          title: Transaction Id
        description: The card transaction to refund, as returned by List Card Transactions.
      - $ref: '#/components/parameters/EntityIdHeader'
      requestBody:
        content:
          application/json:
            schema:
              anyOf:
              - $ref: '#/components/schemas/SimulateCardRefundRequest'
              - type: 'null'
              title: Request
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimulateCardTransactionResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - simulations:write
  /simulations/fund_financial_account:
    post:
      tags:
      - Simulations
      summary: Simulate Stablecoin Account Funding
      description: '> ⚠️ **Sandbox & development only.** Simulation endpoints are
        not available in production and return `404 Not Found` there.


        Simulates funding your stablecoin account in the sandbox so you can test stablecoin
        flows with available balance. Not available to an API key restricted to one
        bank account.'
      operationId: simulate_fund_financial_account_simulations_fund_financial_account_post
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SimulateFundFinancialAccountRequest'
        required: true
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SimulateFundFinancialAccountResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/ForbiddenAdminKycRequired'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth:
        - simulations:write
      parameters:
      - $ref: '#/components/parameters/EntityIdHeader'
  /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
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '429':
          $ref: '#/components/responses/RateLimited'
      security:
      - apiKeyAuth: []
components:
  schemas:
    AcceptedPaymentMethods:
      type: string
      enum:
      - cash
      - check
      - credit_card
      - electronic_transfer
      title: AcceptedPaymentMethods
    AccessibleEntity:
      properties:
        entity_id:
          type: string
          title: Entity Id
          description: The entity's public identifier.
        entity_name:
          type: string
          title: Entity Name
          description: The entity's name.
        access_type:
          $ref: '#/components/schemas/AccessibleEntityAccessType'
          description: How your API key gains access to the entity.
        role:
          anyOf:
          - $ref: '#/components/schemas/UserRoleEnum'
          - type: 'null'
          description: Your role and permissions for this entity, when applicable
            (global API keys only).
      type: object
      required:
      - entity_id
      - entity_name
      - access_type
      title: AccessibleEntity
      description: An entity your API key can access.
    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
    AccountLiquidationAddressResponse:
      properties:
        address:
          type: string
          title: Address
          description: Blockchain address to use when depositing the selected cryptocurrency
            into this account.
          examples:
          - '0x0000000000000000000000000000000000000001'
        chain:
          $ref: '#/components/schemas/ExtBridgePaymentRail'
          description: Blockchain network for this deposit address.
          examples:
          - ethereum
        currency:
          $ref: '#/components/schemas/ExtBridgeCryptocurrency'
          description: Cryptocurrency accepted by this deposit address.
          examples:
          - usdc
        settlementRail:
          anyOf:
          - $ref: '#/components/schemas/DepositSettlementRail'
          - type: 'null'
          description: How a deposit to this crypto address settles into the account.
            `US_FEDNOW` settles within minutes for deposits up to $10,000,000; for
            larger deposits, contact support. `US_FEDWIRE` settles by wire within
            one business day. Absent for payment networks other than crypto addresses.
          examples:
          - US_FEDNOW
      type: object
      required:
      - address
      - chain
      - currency
      title: AccountLiquidationAddressResponse
    AccountPaymentNetwork:
      properties:
        bankId:
          anyOf:
          - type: string
          - type: 'null'
          title: Bankid
          description: The bank identifier used by this payment network, such as the
            routing number for ACH and wire.
        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: Whether the account can currently receive transfers (be credited)
            through this payment network.
        transferOut:
          type: boolean
          title: Transferout
          description: Whether the account can currently send transfers (be debited)
            through this payment network.
        network:
          anyOf:
          - $ref: '#/components/schemas/BlockchainNetwork'
          - type: 'null'
          description: The blockchain network for crypto payment networks.
        settlementRail:
          anyOf:
          - $ref: '#/components/schemas/DepositSettlementRail'
          - type: 'null'
          description: How a deposit to this crypto address settles into the account.
            `US_FEDNOW` settles within minutes for deposits up to $10,000,000; for
            larger deposits, contact support. `US_FEDWIRE` settles by wire within
            one business day. Absent for payment networks other than crypto addresses.
        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.
        accountType:
          anyOf:
          - $ref: '#/components/schemas/AccountType'
          - type: 'null'
          description: The type of account (e.g. CHECKING, SAVINGS).
        swiftCode:
          anyOf:
          - type: string
          - type: 'null'
          title: Swiftcode
          description: SWIFT/BIC code of the beneficiary bank for international wires.
        intermediaryBank:
          anyOf:
          - $ref: '#/components/schemas/IntermediaryBankSWIFT'
          - type: 'null'
          description: Intermediary bank details for international wire transfers.
        fiToFiReference:
          anyOf:
          - type: string
          - type: 'null'
          title: Fitofireference
          description: FI-to-FI reference for international wire transfers.
        foreignCurrencyWireInstructions:
          anyOf:
          - $ref: '#/components/schemas/ForeignCurrencyWireInstructions'
          - type: 'null'
          description: How a sender abroad wires you their local currency, which arrives
            converted to US dollars. Only on wire networks of accounts that accept
            foreign currency wires.
      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, or an empty array if none are available.
            Not all accounts support every network; for example, a prepaid debit card
            account does not support ACH.
          examples:
          - - bankId: 010088889
              identifier: '1111222233335820'
              transferIn: true
              transferOut: true
              type: US_ACH
          - - bankId: 010088889
              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
    AccountPurpose:
      type: string
      enum:
      - additional_yield
      - business_operations
      - other
      title: AccountPurpose
    AccountStatus:
      type: string
      enum:
      - CLOSED
      - DELINQUENT
      - NEGATIVECURRENTBALANCE
      - OPEN
      - PAID
      - PENDINGCLOSE
      - PENDINGOPEN
      - RESTRICTED
      title: AccountStatus
    AccountType:
      type: string
      enum:
      - BROKERAGEPRODUCT
      - CHECKING
      - MONEYMARKET
      - SAVINGS
      - 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.
    AccountingClassResponse:
      properties:
        id:
          type: string
          title: Id
          description: The Class's ID in QuickBooks. Pass it as `class_external_id`
            when mapping a bill's line.
        name:
          type: string
          title: Name
          description: The Class's name.
      type: object
      required:
      - id
      - name
      title: AccountingClassResponse
    AccountingClassesResponse:
      properties:
        classes:
          items:
            $ref: '#/components/schemas/AccountingClassResponse'
          type: array
          title: Classes
          description: Classes a bill's line can be mapped to. Empty unless your accounting
            settings collect a Class and the provider is QuickBooks.
      type: object
      required:
      - classes
      title: AccountingClassesResponse
    AccountingVendorResponse:
      properties:
        id:
          type: string
          title: Id
          description: The vendor's ID in your accounting system. Pass it as `accounting_vendor_id`
            when mapping a bill.
        name:
          type: string
          title: Name
          description: The vendor's name in your accounting system.
      type: object
      required:
      - id
      - name
      title: AccountingVendorResponse
    AccountingVendorsResponse:
      properties:
        vendors:
          items:
            $ref: '#/components/schemas/AccountingVendorResponse'
          type: array
          title: Vendors
          description: Vendors in your accounting system.
      type: object
      required:
      - vendors
      title: AccountingVendorsResponse
    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 bank accounts.
          examples:
          - - depositAccount:
                accountId: cash_account_12345678-1234-1234-1234-123456789012
                accountNumberDisplay: '5820'
                accountType: CHECKING
                bankProductType: Grasshopper Bank N.A.; Member FDIC
                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:
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: How much moved, in USD.
        status:
          $ref: '#/components/schemas/TransferStatus'
          description: Where the transfer is in its lifecycle. `pending` and `processing`
            still change; poll until the transfer settles. An ACH transfer settles
            at `sent`, `returned`, `canceled`, or `error`; a wire settles at `sent`,
            `canceled`, `error`, or `void`.
        direction:
          $ref: '#/components/schemas/TransferDirection'
          description: Whether the money moved into this account (`inbound`) or out
            of it (`outbound`). Inbound transfers were sent to you by someone else,
            so they have no counterparty you configured.
        counterparty_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Counterparty Id
          description: The contact you sent to. Null on inbound transfers, which arrive
            from someone you never configured.
        counterparty_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Counterparty Name
          description: Who you sent to, or who sent to you on an inbound transfer.
        counterparty_account_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Counterparty Account Number
          description: The other side's account number, when the bank reports it.
            Often absent on inbound transfers.
        counterparty_routing_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Counterparty Routing Number
          description: The other side's routing number, when the bank reports it.
            Often absent on inbound transfers.
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: When the transfer was created.
        updated_at:
          $ref: '#/components/schemas/Timestamp'
          description: When the transfer last changed, so you can detect new activity.
        internal_note:
          anyOf:
          - type: string
          - type: 'null'
          title: Internal Note
          description: Your private note on this transfer. Never leaves Meow.
        metadata:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 200
            propertyNames:
              maxLength: 40
              minLength: 1
            type: object
            maxProperties: 20
          - type: 'null'
          title: Metadata
          description: The metadata attached when this object was created, unchanged.
            `null` when none was attached. Rarely, a `.created` webhook can be published
            before the create request finishes committing, and that one event reports
            `null`; every later event and every read of the object carries the metadata.
        id:
          type: string
          title: Id
          description: Pass this back to Get ACH Transfer to check on the transfer.
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: The description carried on the transfer.
        additional_details:
          anyOf:
          - type: string
          - type: 'null'
          title: Additional Details
          description: Extra detail the bank returned about the transfer.
        trace_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Trace Number
          description: The ACH trace number, which the receiving bank uses to look
            the transfer up.
        payment_related_info:
          anyOf:
          - type: string
          - type: 'null'
          title: Payment Related Info
          description: The addenda the sender attached, on inbound transfers. Use
            it to match a payment to an invoice or account on your side.
      type: object
      required:
      - amount
      - status
      - direction
      - created_at
      - updated_at
      - id
      title: AchTransferResponse
    ActionType:
      type: string
      enum:
      - manage_users_and_policies
      - send_money
      title: ActionType
    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
    AgenticOnboardingConsentType:
      type: string
      enum:
      - patriot_act
      - application_attestation
      - stripe_connected_account
      - stripe_issuing_accountholder
      - lead_bank_prepaid_card
      - lead_bank_privacy
      - meow_privacy_policy
      - meow_terms_of_service
      - grasshopper_terms_of_service
      - grasshopper_ics_deposit_placement
      title: AgenticOnboardingConsentType
      x-enum-varnames:
      - patriot_act
      - application_attestation
      - stripe_connected_account
      - stripe_issuing_accountholder
      - lead_bank_prepaid_card
      - lead_bank_privacy
      - meow_privacy_policy
      - meow_terms_of_service
      - grasshopper_terms_of_service
      - grasshopper_ics_deposit_placement
    ApiKeyEntityInfo:
      properties:
        entity_id:
          type: string
          title: Entity Id
          description: The entity's public identifier.
        entity_name:
          type: string
          title: Entity Name
          description: The entity's display name.
      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:write
      - accounts:payment-networks
      - accounts:transactions
      - accounts:balances
      - accounts:statements
      - accounts:tax-documents
      - entity:create
      - transfers:crypto:write
      - transfers:usdc:write
      - transfers:ach:write
      - transfers:wire:write
      - transfers:book:write
      - transfers:international: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
      - billpay:write
      - onboarding:read
      - onboarding:write
      - cards:read
      - cards:write
      - reimbursements:read
      - users:read
      - users:write
      - webhooks:read
      - webhooks:write
      - partner:onboarding:read
      - partner:onboarding:write
      - partner:webhooks:read
      - partner:webhooks:write
      - simulations:write
      - banking:limits:read
      - banking:limits:write
      - feature-access:read
      - feature-access:write
      title: ApiKeyScope
    ApiKeyType:
      type: string
      enum:
      - entity
      - user
      title: ApiKeyType
    ApprovalResponse:
      properties:
        approval_id:
          type: string
          format: uuid
          title: Approval Id
          description: Identifier of this approval, as returned in `approval_id` by
            the endpoint that drafted the request.
        status:
          $ref: '#/components/schemas/ApprovalStatus'
          description: Where the request stands. `completed`, `rejected`, `expired`,
            and `failed` are terminal; `pending_approval`, `approved`, and `executing`
            will change on their own. `under_review` means the payment is approved
            but held for review and has not been sent; it moves to `executing` once
            the review clears it, or to `failed` if the business cancels it in the
            Meow dashboard.
        action_type:
          anyOf:
          - $ref: '#/components/schemas/ActionType'
          - type: 'null'
          description: Kind of action awaiting approval. `null` when Meow cannot resolve
            one, which happens on requests that carry neither request details nor
            a matched security policy.
        transfer_type:
          anyOf:
          - $ref: '#/components/schemas/TransferMethod'
          - type: 'null'
          description: Rail the request would send over. `null` for requests that
            move no money, such as `manage_users_and_policies`.
        amount:
          anyOf:
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          - type: 'null'
          title: Amount
          description: Amount the request would send, in USD. `null` for requests
            that carry no amount.
        counterparty_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Counterparty Id
          description: Contact the request would pay. `null` for requests with no
            contact, such as a book transfer between your own accounts.
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: Description carried on the drafted request, as submitted. `null`
            when the request has none.
        recipient_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Recipient Name
          description: 'Who the request would pay, as Meow shows it to approvers:
            a contact''s name with the last digits of their account, or your own account
            for a transfer between accounts. `null` when the request pays no one.'
        source_account:
          anyOf:
          - type: string
          - type: 'null'
          title: Source Account
          description: Your account the request would send from, by name and the last
            digits of its number. `null` when the request sends from no account.
        initiator:
          $ref: '#/components/schemas/Initiator'
          description: Who drafted the request.
        approvals_required:
          type: integer
          title: Approvals Required
          description: Approvals needed before the request executes — the matched
            policy's quorum. `0` when no policy matched and the initiator does not
            require human approval, meaning the request executes on its own.
        approvals_received:
          type: integer
          title: Approvals Received
          description: Approvals recorded so far.
        approver_display_names:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Approver Display Names
          description: Names of the people who may approve, from the matched policy.
            `null` when no policy matched — the initiator then approves it themselves
            in the Meow dashboard.
        security_policy_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Security Policy Id
          description: Security policy that gated this request, as it stood when the
            request was drafted. `null` when no policy matched.
        created_time:
          $ref: '#/components/schemas/Timestamp'
          description: When the request was drafted.
        expires_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: When the request expires if it is not approved by then. `null`
            once the request reaches a terminal status.
        executed_transfer:
          anyOf:
          - $ref: '#/components/schemas/ApprovalTransferHandle'
          - type: 'null'
          description: The transfer this approval produced. `null` until the request
            is executed, and on requests that move no money.
        rejection_reason:
          anyOf:
          - type: string
          - type: 'null'
          title: Rejection Reason
          description: Why the request did not go through. Set only when `status`
            is `rejected` or `failed`; otherwise `null`.
        metadata:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 200
            propertyNames:
              maxLength: 40
              minLength: 1
            type: object
            maxProperties: 20
          - type: 'null'
          title: Metadata
          description: The metadata attached when this object was created, unchanged.
            `null` when none was attached. Rarely, a `.created` webhook can be published
            before the create request finishes committing, and that one event reports
            `null`; every later event and every read of the object carries the metadata.
      type: object
      required:
      - approval_id
      - status
      - initiator
      - approvals_required
      - approvals_received
      - created_time
      title: ApprovalResponse
    ApprovalStatus:
      type: string
      enum:
      - pending_approval
      - approved
      - executing
      - under_review
      - completed
      - rejected
      - expired
      - failed
      title: ApprovalStatus
    ApprovalTransferHandle:
      properties:
        id:
          type: string
          title: Id
          description: Identifier of the transfer at the bank. Use it with the Get
            endpoint for the matching rail.
        transfer_type:
          $ref: '#/components/schemas/TransferMethod'
          description: Rail the transfer went out on.
        status:
          $ref: '#/components/schemas/TransferStatus'
          description: '`sent` once the approval completes, `processing` while it
            is still executing. This is a coarse view of the approval''s own progress
            — read the transfer itself for its live bank status.'
      type: object
      required:
      - id
      - transfer_type
      - status
      title: ApprovalTransferHandle
      description: The transfer an approved request actually produced.
    AtmFunding:
      type: string
      enum:
      - armored_car
      - store_proceeds
      - other
      title: AtmFunding
    AtmOwner:
      type: string
      enum:
      - financial_institution
      - contractor
      - business
      title: AtmOwner
    Balance:
      properties:
        balance:
          type: number
          title: Balance
          description: The account's closing balance on `date`, in the account's currency.
        date:
          type: string
          format: date
          title: Date
          description: The day this balance is the closing balance for.
      additionalProperties: false
      type: object
      required:
      - balance
      - date
      title: Balance
    Balances:
      properties:
        balances:
          items:
            $ref: '#/components/schemas/Balance'
          type: array
          title: Balances
          description: One closing balance per day in the requested range. Days the
            account reported no balance are omitted rather than repeated, so the series
            can have gaps.
      type: object
      required:
      - balances
      title: Balances
    BankingAccountReference:
      properties:
        platform:
          $ref: '#/components/schemas/BankingPlatform'
          description: Banking provider that holds the account.
        id:
          type: string
          format: uuid
          title: Id
          description: Meow's identifier for the account. Its shape depends on `platform`,
            so read the two together.
      type: object
      required:
      - platform
      - id
      title: BankingAccountReference
    BankingPlatform:
      type: string
      enum:
      - treasury_prime
      - crb
      - bridge
      - stripe
      - atomic
      title: BankingPlatform
      x-enum-varnames:
      - treasury_prime
      - crb
      - bridge
      - stripe
      - atomic
    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
      - INCOMING_INSTANT_PAYMENT
      - OUTGOING_INSTANT_PAYMENT
      - MEOW_INSTANT_NETWORK
      - INTERNATIONAL_PAYMENT_FEE
      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
      - INCOMING_INSTANT_PAYMENT
      - OUTGOING_INSTANT_PAYMENT
      - MEOW_INSTANT_NETWORK
      - INTERNATIONAL_PAYMENT_FEE
    BillConfirmUploadEntry:
      properties:
        object_key:
          type: string
          title: Object Key
          description: Storage key returned with the upload URL. It must belong to
            your entity and the file must already be uploaded.
        filename:
          type: string
          title: Filename
          description: Name to show the document under on the bill.
      type: object
      required:
      - object_key
      - filename
      title: BillConfirmUploadEntry
      description: One uploaded file to attach to the bill.
    BillConfirmUploadRequest:
      properties:
        documents:
          items:
            $ref: '#/components/schemas/BillConfirmUploadEntry'
          type: array
          maxItems: 5
          minItems: 1
          title: Documents
          description: Uploaded files to attach to the bill. A bill holds at most
            5 documents in total.
      type: object
      required:
      - documents
      title: BillConfirmUploadRequest
    BillCreationSourceEnum:
      type: string
      enum:
      - USER
      - EMAIL
      - SCHEDULE
      title: BillCreationSourceEnum
      x-enum-varnames:
      - USER
      - EMAIL
      - SCHEDULE
    BillDocumentResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Identifier for this document.
        name:
          type: string
          title: Name
          description: The file name.
        url:
          type: string
          title: Url
          description: A short-lived URL to download the document (expires in 1 hour).
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: When the document was attached.
      type: object
      required:
      - id
      - name
      - url
      - created_at
      title: BillDocumentResponse
    BillFileMetadata:
      properties:
        filename:
          type: string
          title: Filename
          description: Name to store the document under, shown alongside the bill.
        content_type:
          type: string
          title: Content Type
          description: MIME type of the file. Only PDF, JPEG, PNG, HEIC, and DOCX
            are accepted.
        size:
          type: integer
          title: Size
          description: Size of the file in bytes. Must be between 1 KB and 50 MB,
            and must match what you actually upload — the upload URL enforces the
            same range.
      type: object
      required:
      - filename
      - content_type
      - size
      title: BillFileMetadata
      description: Details of a file you intend to upload, used to mint its upload
        URL.
    BillLineItemAccountMappingRequest:
      properties:
        line_item_id:
          type: string
          format: uuid
          title: Line Item Id
          description: A line item on this bill, from the bill's `line_items`.
        expense_account_external_id:
          type: string
          title: Expense Account External Id
          description: The expense account's ID in your accounting system. Get valid
            IDs from `GET /billpay/accounting/expense-accounts`.
        class_external_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Class External Id
          description: The QuickBooks Class's ID, when your accounting settings collect
            one. Omit the field to leave the line's saved Class alone; send null to
            clear it. Required on every line while `billpay.class_required` is true,
            which `GET /billpay/settings` reports.
      type: object
      required:
      - line_item_id
      - expense_account_external_id
      title: BillLineItemAccountMappingRequest
    BillLineItemResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Identifier for this line item.
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: The unit amount for the line, in the bill's currency.
        quantity:
          anyOf:
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          - type: 'null'
          title: Quantity
          description: Quantity for an itemized line; omitted for an expense line.
        description:
          type: string
          title: Description
          description: What this line is for.
        type:
          $ref: '#/components/schemas/BillLineItemTypeEnum'
          description: Whether this line is an expense or an itemized quantity.
        amount_total:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount Total
          description: 'The line total: the unit amount times the quantity for an
            itemized line, or the unit amount for an expense line.'
        split_group:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Split Group
          description: Identifier shared by expense lines that allocate one original
            line.
        expense_account_external_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Expense Account External Id
          description: The expense account this line is mapped to in your accounting
            system, as set by `POST /bills/{bill_id}/accounting-mappings` or the line's
            expense-account endpoint. Null when the line is not mapped yet.
        class_external_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Class External Id
          description: The QuickBooks Class this line is mapped to, when your accounting
            settings collect one. Null when Class is off for your entity or the line
            has none.
      type: object
      required:
      - id
      - amount
      - description
      - type
      - amount_total
      title: BillLineItemResponse
    BillLineItemTypeEnum:
      type: string
      enum:
      - EXPENSE
      - ITEM
      title: BillLineItemTypeEnum
      x-enum-varnames:
      - EXPENSE
      - ITEM
    BillPaymentDetailsResponse:
      properties:
        account_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Account Id
          description: The account this bill will be paid from, in the same id format
            returned by `GET /accounts`.
        payment_type:
          anyOf:
          - $ref: '#/components/schemas/BillPaymentTypeEnum'
          - type: 'null'
          description: 'How this bill will be paid: `ACH`, `WIRE`, `CHECK`, `CRYPTO`,
            or `INTERNATIONAL_PAYMENT_FX`.'
        currency:
          anyOf:
          - $ref: '#/components/schemas/Iso4217Code'
          - type: 'null'
          description: The currency this bill will be paid in.
        scheduled_payment_date:
          anyOf:
          - $ref: '#/components/schemas/DateString'
          - type: 'null'
          description: The date the payment is scheduled for, if one is set.
        crypto_destination:
          anyOf:
          - $ref: '#/components/schemas/CryptoContactDestinationResponse'
          - type: 'null'
          description: The vendor crypto address this bill pays, when `payment_type`
            is `CRYPTO` and a destination has been chosen.
        ach_transfer_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Ach Transfer Id
          description: The bank's ID for the ACH transfer that paid this bill, once
            one has been sent. On a Treasury Prime funding account this is the `ach_...`
            ID that `GET /accounts/{account_id}/achs/{ach_transfer_id}` accepts; on
            other banks that endpoint is keyed by transaction group ID, so use this
            value to reconcile rather than to look the transfer up.
        wire_transfer_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Wire Transfer Id
          description: The bank's ID for the wire transfer that paid this bill, once
            one has been sent. On a Treasury Prime funding account this is the `wire_...`
            ID that `GET /accounts/{account_id}/wires/{wire_transfer_id}` accepts;
            on other banks that endpoint is keyed by transaction group ID, so use
            this value to reconcile rather than to look the transfer up.
        crypto_transaction_hash:
          anyOf:
          - type: string
          - type: 'null'
          title: Crypto Transaction Hash
          description: The on-chain transaction that settled this bill, once it has
            settled.
      type: object
      title: BillPaymentDetailsResponse
    BillPaymentTypeEnum:
      type: string
      enum:
      - ACH
      - CRYPTO
      - INTERNATIONAL_PAYMENT_FX
      - WIRE
      - CHECK
      title: BillPaymentTypeEnum
      x-enum-varnames:
      - ACH
      - CRYPTO
      - INTERNATIONAL_PAYMENT_FX
      - WIRE
      - CHECK
    BillPresignedUrlEntry:
      properties:
        url:
          type: string
          title: Url
          description: URL to POST the file to as `multipart/form-data`. Valid for
            5 minutes.
        fields:
          additionalProperties:
            type: string
          type: object
          title: Fields
          description: Form fields to send with the upload, before the file part.
            Send them exactly as given — they carry the signature.
        object_key:
          type: string
          title: Object Key
          description: Storage key for the uploaded file. Pass it to Confirm Bill
            Documents once the upload succeeds, to attach the file to the bill.
        filename:
          type: string
          title: Filename
          description: The filename you asked for, echoed so you can match entries
            to files.
        max_bytes:
          type: integer
          title: Max Bytes
          description: Largest file size the upload URL accepts, in bytes.
      type: object
      required:
      - url
      - fields
      - object_key
      - filename
      - max_bytes
      title: BillPresignedUrlEntry
      description: One file's upload target. Upload to it, then confirm the object
        key.
    BillPresignedUrlRequest:
      properties:
        files:
          items:
            $ref: '#/components/schemas/BillFileMetadata'
          type: array
          maxItems: 5
          minItems: 1
          title: Files
          description: Files to mint upload URLs for. A bill holds at most 5 documents
            in total, counting ones already attached.
      type: object
      required:
      - files
      title: BillPresignedUrlRequest
    BillPresignedUrlResponse:
      properties:
        uploads:
          items:
            $ref: '#/components/schemas/BillPresignedUrlEntry'
          type: array
          title: Uploads
          description: One upload target per requested file, in the order you sent
            them.
      type: object
      required:
      - uploads
      title: BillPresignedUrlResponse
    BillResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Identifier for this 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
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          - type: 'null'
          title: Bill Total
          description: The total amount of the bill.
        currency:
          anyOf:
          - $ref: '#/components/schemas/Iso4217Code'
          - type: 'null'
          description: The bill's currency.
        payment_type:
          anyOf:
          - $ref: '#/components/schemas/BillPaymentTypeEnum'
          - type: 'null'
          description: 'How this bill is paid: `ACH`, `WIRE`, `CHECK`, `CRYPTO`, or
            `INTERNATIONAL_PAYMENT_FX`.'
        contact_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Contact Id
          description: The ID of the associated contact.
        category_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Category Id
          description: The spend category this bill is coded to, if any.
        category_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Category Name
          description: The name of the spend category, if any.
        creation_source:
          $ref: '#/components/schemas/BillCreationSourceEnum'
          description: How the bill was created.
        created_by:
          type: string
          title: Created By
          description: Who created the bill.
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: The creation timestamp.
        updated_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: The last-updated timestamp.
        submitted_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: When the bill was submitted for approval.
        submitted_by:
          anyOf:
          - type: string
          - type: 'null'
          title: Submitted By
          description: Who submitted the bill.
        paid_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: The paid timestamp.
        paid_by:
          anyOf:
          - type: string
          - type: 'null'
          title: Paid By
          description: Who paid the bill.
        scheduled_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: The scheduled payment timestamp.
        resolved_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: When the bill was resolved.
        canceled_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: When the bill was canceled.
        canceled_by:
          anyOf:
          - type: string
          - type: 'null'
          title: Canceled By
          description: Who canceled the bill.
        bill_schedule_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Bill Schedule Id
          description: The recurring schedule this bill belongs to, if any.
        ordinal:
          anyOf:
          - type: integer
          - type: 'null'
          title: Ordinal
          description: The bill's position in its recurring schedule (template is
            0).
        line_items:
          items:
            $ref: '#/components/schemas/BillLineItemResponse'
          type: array
          title: Line Items
          description: Line items for the bill.
        bill_payment_details:
          anyOf:
          - $ref: '#/components/schemas/BillPaymentDetailsResponse'
          - type: 'null'
          description: 'How this bill will be paid once approved: the funding account,
            payment type, currency, and scheduled date.'
        additional_documents:
          items:
            $ref: '#/components/schemas/BillDocumentResponse'
          type: array
          title: Additional Documents
          description: Documents attached to the bill, each with a download URL.
        img_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Img Url
          description: A short-lived URL to download the bill's primary document.
        rrule:
          anyOf:
          - type: string
            maxLength: 120
            minLength: 1
            description: 'RFC 5545 RRULE string. Required: DTSTART, RRULE. Allowed
              frequencies: WEEKLY, MONTHLY.'
          - type: 'null'
          title: Rrule
          description: The recurrence rule, when this bill is part of a schedule.
        auto_approval_enabled:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Auto Approval Enabled
          description: Whether the recurring schedule auto-approves generated bills.
        bill_sync_status:
          anyOf:
          - $ref: '#/components/schemas/IntegrationBillSyncStatus'
          - type: 'null'
          description: Sync status of the bill to your accounting integration.
        payment_sync_status:
          anyOf:
          - $ref: '#/components/schemas/IntegrationBillPaymentSyncStatus'
          - type: 'null'
          description: Sync status of the payment to your accounting integration.
        accounting_vendor:
          anyOf:
          - $ref: '#/components/schemas/IntegrationVendor'
          - type: 'null'
          description: The accounting integration this bill syncs to, if any.
        accounting_bill_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Accounting Bill Id
          description: The bill's ID in your accounting system, once it has synced
            there.
        is_excluded_from_accounting:
          type: boolean
          title: Is Excluded From Accounting
          description: Whether this bill was excluded from accounting sync. An excluded
            bill reports no sync status, same as one that never synced.
          default: false
      type: object
      required:
      - id
      - status
      - vendor_name
      - creation_source
      - created_by
      - created_at
      title: BillResponse
    BillScheduleResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Identifier for the schedule.
        status:
          $ref: '#/components/schemas/BillScheduleStatus'
          description: '`DRAFT` when the schedule is created here, since a schedule
            created through the API has not been submitted for approval yet. It becomes
            `PENDING` once submitted on the dashboard, then `ACTIVE` while it generates
            bills. `CANCELED`, `COMPLETED` and `REJECTED` are terminal — none of them
            generates anything further.'
        rrule:
          type: string
          maxLength: 120
          minLength: 1
          title: Rrule
          description: The recurrence rule the schedule repeats on.
        occurrences:
          items:
            $ref: '#/components/schemas/DateString'
          type: array
          title: Occurrences
          description: Every date this schedule pays on, past occurrences included.
            For an open-ended schedule this is the dates already generated plus the
            next five.
        bills:
          items:
            $ref: '#/components/schemas/ScheduledBillSummary'
          type: array
          title: Bills
          description: The bills this schedule has generated so far.
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: When the schedule was created.
      type: object
      required:
      - id
      - status
      - rrule
      - created_at
      title: BillScheduleResponse
    BillScheduleStatus:
      type: string
      enum:
      - DRAFT
      - PENDING
      - ACTIVE
      - CANCELED
      - COMPLETED
      - REJECTED
      title: BillScheduleStatus
      x-enum-varnames:
      - DRAFT
      - PENDING
      - ACTIVE
      - CANCELED
      - COMPLETED
      - REJECTED
    BillSchedulesResponse:
      properties:
        bill_schedules:
          items:
            $ref: '#/components/schemas/BillScheduleResponse'
          type: array
          title: Bill Schedules
          description: List of bill schedules.
        page:
          anyOf:
          - $ref: '#/components/schemas/PageMetadata'
          - type: 'null'
          description: Pagination metadata.
      type: object
      required:
      - bill_schedules
      title: BillSchedulesResponse
    BillSortEnum:
      type: string
      enum:
      - VENDOR_NAME
      - STATUS
      - AMOUNT
      - PAYMENT_DATE
      - BILL_DATE
      - CREATED_TIME
      - BILL_DUE_DATE
      - INVOICE_NUMBER
      - DESCRIPTION
      - PAYMENT_TYPE
      - CATEGORY
      title: BillSortEnum
      x-enum-varnames:
      - VENDOR_NAME
      - STATUS
      - AMOUNT
      - PAYMENT_DATE
      - BILL_DATE
      - CREATED_TIME
      - BILL_DUE_DATE
      - INVOICE_NUMBER
      - DESCRIPTION
      - PAYMENT_TYPE
      - CATEGORY
    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: Identifier for this 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
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          - type: 'null'
          title: Bill Total
          description: The total amount of the bill.
        currency:
          anyOf:
          - $ref: '#/components/schemas/Iso4217Code'
          - type: 'null'
          description: The bill's currency.
        payment_type:
          anyOf:
          - $ref: '#/components/schemas/BillPaymentTypeEnum'
          - type: 'null'
          description: 'How this bill is paid: `ACH`, `WIRE`, `CHECK`, `CRYPTO`, or
            `INTERNATIONAL_PAYMENT_FX`.'
        contact_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Contact Id
          description: The ID of the associated contact.
        category_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Category Id
          description: The spend category this bill is coded to, if any.
        category_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Category Name
          description: The name of the spend category, if any.
        creation_source:
          $ref: '#/components/schemas/BillCreationSourceEnum'
          description: How the bill was created.
        created_by:
          type: string
          title: Created By
          description: Who created the bill.
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: The creation timestamp.
        updated_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: The last-updated timestamp.
        submitted_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: When the bill was submitted for approval.
        submitted_by:
          anyOf:
          - type: string
          - type: 'null'
          title: Submitted By
          description: Who submitted the bill.
        paid_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: The paid timestamp.
        paid_by:
          anyOf:
          - type: string
          - type: 'null'
          title: Paid By
          description: Who paid the bill.
        scheduled_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: The scheduled payment timestamp.
        resolved_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: When the bill was resolved.
        canceled_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: When the bill was canceled.
        canceled_by:
          anyOf:
          - type: string
          - type: 'null'
          title: Canceled By
          description: Who canceled the bill.
        bill_schedule_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Bill Schedule Id
          description: The recurring schedule this bill belongs to, if any.
        ordinal:
          anyOf:
          - type: integer
          - type: 'null'
          title: Ordinal
          description: The bill's position in its recurring schedule (template is
            0).
      type: object
      required:
      - id
      - status
      - vendor_name
      - creation_source
      - created_by
      - 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 the 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 the entity designated this as its primary operational
            account. Every account can be false: nothing requires a primary, and Cross
            River Bank accounts never carry the designation.'
        banking_product:
          type: string
          title: Banking Product
          description: The bank this account is held at.
      type: object
      required:
      - id
      - display_name
      - account_number_mask
      - status
      - is_primary
      - banking_product
      title: BillingAccount
      description: 'A checking 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.'
    BillpayApprovalSettingsEnum:
      type: string
      enum:
      - AUTO_APPROVAL
      - ONE_ADMIN_APPROVAL
      - ALL_ADMINS_APPROVAL
      title: BillpayApprovalSettingsEnum
    BillpaySettingsResponse:
      properties:
        is_enabled:
          type: boolean
          title: Is Enabled
          description: Whether bill pay is turned on for this entity. Bills can be
            drafted before it is, but nothing pays out until it is, and the rest of
            the bill pay endpoints reject the entity while it is `false`.
        default_account_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Default Account Id
          description: The saved default account, in the same id format returned by
            `GET /accounts`. A bill you create without an `account_id` is funded from
            it. If it is closed, the bill is funded from the entity's next open account
            instead. For a key restricted to one account, this is that account.
        approval_mode:
          anyOf:
          - $ref: '#/components/schemas/BillpayApprovalSettingsEnum'
          - type: 'null'
          description: 'How many dashboard approvals a bill needs before it pays:
            `AUTO_APPROVAL`, `ONE_ADMIN_APPROVAL`, or `ALL_ADMINS_APPROVAL`.'
        class_enabled:
          type: boolean
          title: Class Enabled
          description: Whether your accounting settings collect a QuickBooks Class
            on each bill line. Send `class_external_id` on a line mapping only while
            this is true.
          default: false
        class_required:
          type: boolean
          title: Class Required
          description: Whether every line must name a Class before the bill can sync.
            While this is true, `POST /bills/{bill_id}/accounting-mappings` rejects
            a mapping that leaves any line without one.
          default: false
      type: object
      required:
      - is_enabled
      title: BillpaySettingsResponse
    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
      - SUI
      - TEMPO
      - TRON
      - XDC
      title: BlockchainNetwork
    BridgeStaticMemoResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Identifier of the static memo. Pass it as `static_memo_id`
            to send a crypto transaction to this destination.
        destination_address:
          type: string
          title: Destination Address
          description: On-chain address the memo pays out to.
        destination_payment_rail:
          $ref: '#/components/schemas/ExtBridgePaymentRail'
          description: Blockchain network the payout settles on.
        destination_payment_currency:
          $ref: '#/components/schemas/ExtBridgeCryptocurrency'
          description: Cryptocurrency the payout is delivered in.
      type: object
      required:
      - id
      - destination_address
      - destination_payment_rail
      - destination_payment_currency
      title: BridgeStaticMemoResponse
    CannabisCultivatorDueDiligence:
      properties:
        hemp_cultivation_location_details:
          items:
            $ref: '#/components/schemas/HempCultivationLocation'
          type: array
          title: Hemp Cultivation Location Details
          description: Please include information for each location in which hemp
            is cultivated.
        harvest_testing_processes:
          type: string
          title: Harvest Testing Processes
          description: What harvest testing processes are in place?
        non_compliant_plants_disposal:
          type: string
          title: Non Compliant Plants Disposal
          description: How are non-compliant plants disposed of?
        customer_base_product_acquisition:
          type: string
          title: Customer Base Product Acquisition
          description: Who is your customer base, and how is your product obtained?
        purchase_controls:
          type: string
          title: Purchase Controls
          description: Describe any controls in place to ensure your customers are
            legally able to purchase/handle your product.
      type: object
      required:
      - hemp_cultivation_location_details
      - harvest_testing_processes
      - non_compliant_plants_disposal
      - customer_base_product_acquisition
      - purchase_controls
      title: CannabisCultivatorDueDiligence
    CannabisDueDiligence:
      properties:
        compounds:
          items:
            $ref: '#/components/schemas/CbdType'
          type: array
          minItems: 1
          title: Compounds
          description: What plants/compounds do you work with?
        hemp_cbd:
          anyOf:
          - $ref: '#/components/schemas/HempCbdDueDiligence'
          - type: 'null'
          description: Hemp and CBD answers. Applies only when `compounds` includes
            `hemp`.
        mrb:
          anyOf:
          - $ref: '#/components/schemas/MrbDueDiligence'
          - type: 'null'
          description: Marijuana-related business answers. Applies only when `compounds`
            includes `marijuana`.
      type: object
      required:
      - compounds
      title: CannabisDueDiligence
    CannabisEddFormRequest:
      properties:
        form_type:
          type: string
          const: cannabis
          title: Form Type
          description: Selects the cannabis form. Must be `cannabis`.
        form_data:
          $ref: '#/components/schemas/CannabisDueDiligence'
          description: Answers to the cannabis form. Fetch the form's schema first,
            and answer every element it marks required.
      type: object
      required:
      - form_type
      - form_data
      title: CannabisEddFormRequest
    CannabisProcessorManufacturerDueDiligence:
      properties:
        plant_sources:
          type: string
          title: Plant Sources
          description: Please provide a list of cultivators/processors in which you
            source your plant for processing.
        final_products:
          type: string
          title: Final Products
          description: Please provide a list of your final products.
        products_contain_thc:
          $ref: '#/components/schemas/ProductContainsThc'
          description: Do any of your products contain THC?
        cbd_type:
          items:
            $ref: '#/components/schemas/CbdType'
          type: array
          title: Cbd Type
          description: What type of CBD is used in your product?
        product_testing_processes:
          type: string
          title: Product Testing Processes
          description: What product testing processes are in place? Please include
            testing methods and timing.
        customer_base:
          type: string
          title: Customer Base
          description: Who is your customer base?
        how_products_sold:
          type: string
          title: How Products Sold
          description: How are your products sold?
        purchase_controls:
          type: string
          title: Purchase Controls
          description: Describe any controls in place to ensure your customers are
            legally able to purchase/handle your product.
      type: object
      required:
      - plant_sources
      - final_products
      - products_contain_thc
      - cbd_type
      - product_testing_processes
      - customer_base
      - how_products_sold
      - purchase_controls
      title: CannabisProcessorManufacturerDueDiligence
    CannabisRetailSaleDueDiligence:
      properties:
        products_description:
          type: string
          title: Products Description
          description: Please provide a description of products sold.
        products_contain_thc:
          $ref: '#/components/schemas/ProductContainsThc'
          description: Do any of your products contain THC?
        cbd_type:
          items:
            $ref: '#/components/schemas/CbdType'
          type: array
          title: Cbd Type
          description: What type of CBD is used in your product?
        product_sources:
          type: string
          title: Product Sources
          description: Please provide a list of hemp processors/manufactures in which
            you source your product.
        product_compliance:
          type: string
          title: Product Compliance
          description: How do you ensure your product is compliant with Federal and
            State requirements?
        sale_method:
          items:
            $ref: '#/components/schemas/CannabisRetailSaleMethod'
          type: array
          title: Sale Method
          description: How are your products sold?
        online_sales_tracking:
          anyOf:
          - type: string
          - type: 'null'
          title: Online Sales Tracking
          description: For online sales, how do you track your customer's physical
            location? Applies only when `sale_method` includes `online`.
        physical_store_locations:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Physical Store Locations
          description: Addresses of every physical location your product is sold at.
            Applies only to in-person sales.
        accepted_payment_methods:
          items:
            $ref: '#/components/schemas/AcceptedPaymentMethods'
          type: array
          title: Accepted Payment Methods
          description: How do you receive payment for your products/services?
      type: object
      required:
      - products_description
      - products_contain_thc
      - cbd_type
      - product_sources
      - product_compliance
      - sale_method
      - accepted_payment_methods
      title: CannabisRetailSaleDueDiligence
    CannabisRetailSaleMethod:
      type: string
      enum:
      - online
      - non_proprietary_store
      - proprietary_store
      title: CannabisRetailSaleMethod
    CardAddress:
      properties:
        street_line_1:
          anyOf:
          - type: string
          - type: 'null'
          title: Street Line 1
          description: Street address.
          examples:
          - 9 Whisker Way
        street_line_2:
          anyOf:
          - type: string
          - type: 'null'
          title: Street Line 2
          description: Apartment, suite, or floor.
          examples:
          - Suite 4
        city:
          anyOf:
          - type: string
          - type: 'null'
          title: City
          description: City.
          examples:
          - Portland
        state:
          anyOf:
          - type: string
          - type: 'null'
          title: State
          description: State or province.
          examples:
          - OR
        postal_code:
          anyOf:
          - type: string
          - type: 'null'
          title: Postal Code
          description: Postal code.
          examples:
          - '97209'
        country:
          anyOf:
          - type: string
          - type: 'null'
          title: Country
          description: Two-letter country code.
          examples:
          - US
      type: object
      title: CardAddress
    CardCardholder:
      properties:
        name:
          type: string
          title: Name
          description: Cardholder's full name.
        public_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Public Id
          description: Cardholder's public user ID.
      type: object
      required:
      - name
      title: CardCardholder
    CardControls:
      properties:
        spending_controls:
          $ref: '#/components/schemas/SpendingControls'
          description: Spend limits applied to the card.
        single_use:
          type: boolean
          title: Single Use
          description: Whether the card is single-use.
        expires_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: When the card stops working, if an expiry was set. The card
            is not revoked automatically; revoke it explicitly when you are done with
            it.
        spending_restriction:
          anyOf:
          - $ref: '#/components/schemas/CardSpendingRestriction'
          - type: 'null'
          description: Merchant restriction applied to the card, if any.
      type: object
      required:
      - spending_controls
      - single_use
      title: CardControls
    CardDebitAccount:
      properties:
        id:
          type: string
          title: Id
          description: The account this card draws from. Pass it back as `debit_account`
            on Create Card to issue another card against it.
          examples:
          - cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2
        name:
          type: string
          title: Name
          description: The account's display name.
          examples:
          - Catnip Coffee Co
        bank:
          anyOf:
          - type: string
          - type: 'null'
          title: Bank
          description: The name of the bank this account is held at.
          examples:
          - Grasshopper Bank N.A.; Member FDIC
      type: object
      required:
      - id
      - name
      title: CardDebitAccount
    CardDetailsResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Unique card identifier.
        billing_address:
          $ref: '#/components/schemas/CardAddress'
          description: The address the card authorizes against.
        delivery_address:
          anyOf:
          - $ref: '#/components/schemas/CardAddress'
          - type: 'null'
          description: Where the physical card ships. Null for virtual cards.
        debit_account:
          $ref: '#/components/schemas/CardDebitAccount'
          description: The account this card draws from.
        tracking_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Tracking Url
          description: Shipping tracking URL for the physical card.
      type: object
      required:
      - id
      - billing_address
      - debit_account
      title: CardDetailsResponse
    CardFormFactor:
      type: string
      enum:
      - physical
      - virtual
      title: CardFormFactor
      x-enum-varnames:
      - physical
      - virtual
    CardInsightsResponse:
      properties:
        currency:
          $ref: '#/components/schemas/Iso4217Code'
          description: Currency these totals are in.
        total_spend:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Total Spend
          description: Total spent across the entity's cards.
        total_cashback:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Total Cashback
          description: Total cashback earned.
        top_expenses:
          items:
            $ref: '#/components/schemas/TopCardExpense'
          type: array
          title: Top Expenses
          description: The largest single transactions.
        top_merchants:
          items:
            $ref: '#/components/schemas/MerchantSpend'
          type: array
          title: Top Merchants
          description: The most-used merchants.
        weekly_spend_by_cardholder:
          items:
            $ref: '#/components/schemas/WeeklySpend'
          type: array
          title: Weekly Spend By Cardholder
          description: Weekly totals broken down by cardholder.
        weekly_spend_by_merchant:
          items:
            $ref: '#/components/schemas/WeeklySpend'
          type: array
          title: Weekly Spend By Merchant
          description: Weekly totals broken down by merchant.
      type: object
      required:
      - currency
      - total_spend
      - total_cashback
      - top_expenses
      - top_merchants
      - weekly_spend_by_cardholder
      - weekly_spend_by_merchant
      title: CardInsightsResponse
    CardLimitResponse:
      properties:
        interval:
          $ref: '#/components/schemas/LimitInterval'
          description: 'The window this limit applies to. Period windows are calendar
            windows anchored at midnight UTC: weekly windows start Sunday, monthly
            windows on the 1st, yearly on January 1st.'
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: The configured limit, in the currency reported by `currency`
            on the enclosing response. Limits are set in whole dollars.
        remaining:
          anyOf:
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          - type: 'null'
          title: Remaining
          description: How much of this limit is left. Only reported for cards whose
            issuer tracks it, so treat null as unknown rather than as zero or as the
            full amount.
      type: object
      required:
      - interval
      - amount
      title: CardLimitResponse
    CardLimitsResponse:
      properties:
        currency:
          $ref: '#/components/schemas/Iso4217Code'
          description: Currency the limits are denominated in.
        limits:
          items:
            $ref: '#/components/schemas/CardLimitResponse'
          type: array
          title: Limits
          description: One entry per configured limit.
      type: object
      required:
      - currency
      - limits
      title: CardLimitsResponse
    CardMetadata:
      properties:
        card_id:
          type: string
          format: uuid
          title: Card Id
          description: Identifier for the issued card.
        purpose:
          anyOf:
          - type: string
            maxLength: 500
            minLength: 1
            pattern: ^[ -~]+$
          - type: 'null'
          title: Purpose
          description: Echoes the purpose from your request, if you sent one.
        debit_account:
          type: string
          title: Debit Account
          description: The account this card draws from, whether you named one or
            the default was used.
          examples:
          - cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2
      type: object
      required:
      - card_id
      - debit_account
      title: CardMetadata
    CardPanGrantResponse:
      properties:
        reveal_url:
          type: string
          title: Reveal Url
          description: 'URL to fetch the card number from. GET this URL with your
            API key and `Authorization: Bearer <reveal_token>` to receive the PAN,
            CVC, and expiration.'
        reveal_token:
          type: string
          title: Reveal Token
          description: Short-lived bearer token for the reveal URL.
          writeOnly: true
        token_expires_in_seconds:
          type: integer
          title: Token Expires In Seconds
          description: Seconds until the reveal token expires.
        exp_month:
          anyOf:
          - type: integer
          - type: 'null'
          title: Exp Month
          description: Expiration month (1-12).
        exp_year:
          anyOf:
          - type: integer
          - type: 'null'
          title: Exp Year
          description: Expiration year (4-digit).
      type: object
      required:
      - reveal_url
      - reveal_token
      - token_expires_in_seconds
      title: CardPanGrantResponse
    CardPanResponse:
      properties:
        card_number:
          type: string
          title: Card Number
          description: Full card number (PAN).
          writeOnly: true
        cvc:
          anyOf:
          - type: string
          - type: 'null'
          title: Cvc
          description: Card verification code.
        exp_month:
          anyOf:
          - type: integer
          - type: 'null'
          title: Exp Month
          description: Expiration month (1-12).
        exp_year:
          anyOf:
          - type: integer
          - type: 'null'
          title: Exp Year
          description: Expiration year (4-digit).
      type: object
      required:
      - card_number
      title: CardPanResponse
    CardResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Unique card identifier.
        display_name:
          type: string
          title: Display Name
          description: Card name or nickname.
        last_four:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Four
          description: Last 4 digits of the card number. Null until the issuer assigns
            the card number, so pending cards have no value.
        status:
          $ref: '#/components/schemas/CardStatus'
          description: Card status.
        is_physical:
          type: boolean
          title: Is Physical
          description: Whether this is a physical card.
        is_single_use:
          type: boolean
          title: Is Single Use
          description: Whether this is a single-use card.
          default: false
        cardholder:
          $ref: '#/components/schemas/CardCardholder'
          description: Cardholder info.
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: When the card was created.
        expiration:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: When the card expires.
        spending_restriction:
          anyOf:
          - $ref: '#/components/schemas/CardSpendingRestriction'
          - type: 'null'
          description: Merchant spending restrictions.
        allowed_categories:
          anyOf:
          - items:
              $ref: '#/components/schemas/CardTransactionCategory'
            type: array
          - type: 'null'
          title: Allowed Categories
          description: Merchant categories the card is restricted to. Null means every
            category is allowed.
      type: object
      required:
      - id
      - display_name
      - last_four
      - status
      - is_physical
      - cardholder
      - created_at
      title: CardResponse
    CardSpendingRestriction:
      properties:
        type:
          $ref: '#/components/schemas/MerchantRestrictionType'
          description: Whether the merchant list is an allowlist or blocklist.
        merchants:
          items:
            type: string
          type: array
          title: Merchants
          description: Merchant names in the restriction list.
      type: object
      required:
      - type
      - merchants
      title: CardSpendingRestriction
    CardSpendingRestrictionRequest:
      properties:
        type:
          $ref: '#/components/schemas/MerchantRestrictionType'
          description: Whether the merchant list is an allowlist or blocklist.
        merchants:
          items:
            type: string
            format: uuid
          type: array
          maxItems: 100
          minItems: 1
          title: Merchants
          description: Merchant IDs from `GET /cards/merchants`. When `type` is `allow`
            the card authorizes only at these merchants; when `block` it is refused
            at them and allowed everywhere else.
      type: object
      required:
      - type
      - merchants
      title: CardSpendingRestrictionRequest
    CardStatus:
      type: string
      enum:
      - pending
      - active
      - suspended
      - closed
      - failed
      title: CardStatus
      x-enum-varnames:
      - pending
      - active
      - suspended
      - closed
      - failed
    CardStatusUpdate:
      type: string
      enum:
      - active
      - inactive
      title: CardStatusUpdate
      x-enum-varnames:
      - active
      - inactive
    CardTransactionCategory:
      type: string
      enum:
      - Advertising
      - Airlines
      - Books and Newspapers
      - Car Rental
      - Charity
      - Clothing
      - Electronics
      - Entertainment
      - Facilities Expenses
      - Financial Institutions and Fees
      - Fuel
      - Furniture
      - Gifts and Flowers
      - Government Services
      - Grocery
      - Ground Transportation
      - Insurance
      - Legal
      - Lodging
      - Meals
      - Medical
      - Memberships and Dues
      - Office Supplies
      - Parking
      - Personal Care
      - Political
      - Professional Services
      - Recruiting
      - Rent
      - Restaurants
      - Shipping
      - Software
      - Taxes
      - Taxis and Rideshare
      - Technology Infrastructure
      - Training and Education
      - Travel Services
      - Utilities
      - Vehicle Expenses
      title: CardTransactionCategory
      x-enum-varnames:
      - advertising
      - airlines
      - books_and_newspapers
      - car_rental
      - charity
      - clothing
      - electronics
      - entertainment
      - facilities_expenses
      - financial_institutions_and_fees
      - fuel
      - furniture
      - gifts_and_flowers
      - government_services
      - grocery
      - ground_transportation
      - insurance
      - legal
      - lodging
      - meals
      - medical
      - memberships_and_dues
      - office_supplies
      - parking
      - personal_care
      - political
      - professional_services
      - recruiting
      - rent
      - restaurants
      - shipping
      - software
      - taxes
      - taxis_and_rideshare
      - technology_infrastructure
      - training_and_education
      - travel_services
      - utilities
      - vehicle_expenses
    CardTransactionMerchant:
      properties:
        name:
          type: string
          title: Name
          description: The merchant's name as Meow resolved it.
          examples:
          - Whisker Roasters
        website:
          anyOf:
          - type: string
          - type: 'null'
          title: Website
          description: The merchant's website.
          examples:
          - https://whiskerroasters.com
      type: object
      required:
      - name
      title: CardTransactionMerchant
    CardTransactionResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Meow's identifier for this entry. It is stable, but it identifies
            one step rather than the whole purchase, so an authorization and its later
            clearing have different ids.
        card_id:
          type: string
          format: uuid
          title: Card Id
          description: The card this was made on.
        card_last_four:
          type: string
          title: Card Last Four
          description: Last 4 digits of that card.
          examples:
          - '4242'
        type:
          $ref: '#/components/schemas/CardTransactionType'
          description: Which step of the lifecycle this is.
        status:
          $ref: '#/components/schemas/CardTransactionStatus'
          description: State of this step. `pending` and `approved` mean money is
            held but not moved; `cleared` means it moved; `reversed` and `failed`
            mean it did not. `expired` means the hold lapsed, which does not always
            rule out a later clearing.
        description:
          type: string
          title: Description
          description: Merchant descriptor as it was sent.
          examples:
          - WHISKER ROASTERS  PORTLAND OR
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: Amount billed to the card, in the card's currency. Always positive,
            including on a refund or reversal, where `type` is what tells you the
            money came back. An authorization and its clearing carry the same amount,
            so summing both double-counts the purchase.
          examples:
          - '48.20'
        currency:
          $ref: '#/components/schemas/Iso4217Code'
          description: The currency `amount` is in. Usually the card's currency, but
            a declined foreign-currency purchase is never priced, so `amount` and
            `currency` then match the merchant's.
          examples:
          - USD
        merchant_amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Merchant Amount
          description: Amount in the currency the merchant charged in, always positive.
            Differs from `amount` on a foreign-currency purchase that was priced;
            divide the two to get the rate applied. They are equal, and the rate undefined,
            when `currency` equals `merchant_currency`.
          examples:
          - '44.15'
        merchant_currency:
          $ref: '#/components/schemas/Iso4217Code'
          description: The currency the merchant charged in.
          examples:
          - EUR
        merchant:
          anyOf:
          - $ref: '#/components/schemas/CardTransactionMerchant'
          - type: 'null'
          description: The merchant, when Meow could identify it.
        category:
          anyOf:
          - $ref: '#/components/schemas/CardTransactionCategory'
          - type: 'null'
          description: Spend category, when known.
        memo:
          anyOf:
          - type: string
          - type: 'null'
          title: Memo
          description: Your memo for this transaction, such as what the purchase was
            for. Null when it has none. On some cards related entries, such as a clearing
            and its refund, share one memo.
          examples:
          - Team lunch with the Catnip Coffee Co buyers
        trace_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Trace Id
          description: Identifier for the purchase this entry belongs to. Entries
            sharing one are the same purchase, so filter List Card Transactions by
            it to tie an authorization to its later clearing or refund. It is the
            same trace_id the rest of Meow shows for this transaction. Absent on an
            entry the network gave no identifier for, which then stands alone.
          examples:
          - card_24692111234567890123456
        decline_reason:
          anyOf:
          - type: string
          - type: 'null'
          title: Decline Reason
          description: Why this was declined, when it was.
        authorized_at:
          $ref: '#/components/schemas/Timestamp'
          description: When the purchase was made, as reported by the network.
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: When Meow recorded this step.
        updated_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: When Meow last updated this step.
      type: object
      required:
      - id
      - card_id
      - card_last_four
      - type
      - status
      - description
      - amount
      - currency
      - merchant_amount
      - merchant_currency
      - authorized_at
      - created_at
      title: CardTransactionResponse
      description: 'A single movement in a card transaction''s life.


        A purchase produces several of these: an `authorization` when the merchant

        places the hold, then a `clearing` when the money actually moves, and a

        `refund` or `reversal` if it comes back. Entries sharing a

        `trace_id` are the same purchase.


        Do not add up every entry. An `authorization` and the `clearing` that

        follows it are the same money: the hold, then the settlement that replaces

        it. Every amount is positive, and `type` carries the direction, so to total

        what was actually spent take the `clearing` entries minus the `refund` and

        `reversal` entries, and read `authorization` as money held but not yet

        taken.


        Whether a state is final depends on the issuer, so do not infer it from

        `status` alone: an expired authorization can still be captured late on

        some networks. Treat `cleared`, `reversed` and `failed` as settled and

        re-read anything else.'
    CardTransactionStatus:
      type: string
      enum:
      - pending
      - approved
      - cleared
      - reversed
      - failed
      - expired
      title: CardTransactionStatus
      x-enum-varnames:
      - pending
      - approved
      - cleared
      - reversed
      - failed
      - expired
    CardTransactionType:
      type: string
      enum:
      - authorization
      - clearing
      - refund
      - reversal
      - original_credit
      title: CardTransactionType
      x-enum-varnames:
      - authorization
      - clearing
      - refund
      - reversal
      - original_credit
    CardTransactionsResponse:
      properties:
        data:
          items:
            $ref: '#/components/schemas/CardTransactionResponse'
          type: array
          title: Data
          description: Transactions on the cards you have access to.
        page:
          anyOf:
          - $ref: '#/components/schemas/PageMetadata'
          - type: 'null'
          description: Pagination metadata.
      type: object
      required:
      - data
      title: CardTransactionsResponse
    CardsResponse:
      properties:
        data:
          items:
            $ref: '#/components/schemas/CardResponse'
          type: array
          title: Data
          description: The cards you have access to.
        page:
          anyOf:
          - $ref: '#/components/schemas/PageMetadata'
          - type: 'null'
          description: Pagination metadata.
      type: object
      required:
      - data
      title: CardsResponse
    CbdType:
      type: string
      enum:
      - hemp
      - marijuana
      title: CbdType
    CheckDepositResponse:
      properties:
        id:
          type: string
          title: Id
          description: The transaction group ID for this check deposit.
        status:
          $ref: '#/components/schemas/TransactionStatus'
          description: Current status of the check deposit.
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: The check deposit amount.
        posted_timestamp:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Posted Timestamp
          description: Timestamp when the transaction was posted.
        check_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Check Number
          description: The check number from the deposited check.
        counterparty_routing_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Counterparty Routing Number
          description: Routing number from the deposited check.
        counterparty_account_number_masked:
          anyOf:
          - type: string
          - type: 'null'
          title: Counterparty Account Number Masked
          description: Masked account number from the deposited check (last 4 digits).
      type: object
      required:
      - id
      - status
      - amount
      title: CheckDepositResponse
    CloseAccountResponse:
      properties:
        status:
          $ref: '#/components/schemas/CloseAccountStatus'
          description: '`closed` when the bank confirmed the closure while handling
            this request. `close_pending` when the bank processes closures asynchronously
            — poll List Accounts until the account reports closed.'
      type: object
      required:
      - status
      title: CloseAccountResponse
    CloseAccountStatus:
      type: string
      enum:
      - closed
      - close_pending
      title: CloseAccountStatus
    ConduitCounterpartyProfileRequest:
      properties:
        type:
          $ref: '#/components/schemas/ExtConduitCounterpartyType'
          description: Whether the account holder is a business or an individual.
            This decides which of the fields below apply.
        business_name:
          anyOf:
          - type: string
            maxLength: 300
            minLength: 1
          - type: 'null'
          title: Business Name
          description: Legal name of the business. For a business holder.
        first_name:
          anyOf:
          - type: string
            maxLength: 300
            minLength: 1
          - type: 'null'
          title: First Name
          description: Given name of the individual. For an individual holder.
        last_name:
          anyOf:
          - type: string
            maxLength: 300
            minLength: 1
          - type: 'null'
          title: Last Name
          description: Family name of the individual. For an individual holder.
        date_of_birth:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: Date Of Birth
          description: Date of birth of the individual, as `YYYY-MM-DD`. For an individual
            holder.
        identification_type:
          anyOf:
          - $ref: '#/components/schemas/ExtConduitCounterpartyIdentificationType'
          - type: 'null'
          description: Kind of identity document `identification_number` refers to.
        identification_number:
          anyOf:
          - type: string
            maxLength: 100
            minLength: 1
          - type: 'null'
          title: Identification Number
          description: Number on the identity document named by `identification_type`.
      type: object
      required:
      - type
      title: ConduitCounterpartyProfileRequest
    CounterpartyDetailsRequest:
      properties:
        ach:
          anyOf:
          - $ref: '#/components/schemas/MeowApiAchSubobject'
          - type: 'null'
          description: Account details for paying this contact by ACH.
        wire:
          anyOf:
          - $ref: '#/components/schemas/MeowApiWireSubobject'
          - type: 'null'
          description: Account details for paying this contact by wire.
        check:
          anyOf:
          - $ref: '#/components/schemas/MeowApiCheckSubobject'
          - type: 'null'
          description: Mailing details for paying this contact by check.
        tch:
          anyOf:
          - $ref: '#/components/schemas/MeowApiTchSubobject'
          - type: 'null'
          description: Account details for paying this contact over The Clearing House
            RTP.
        fednow:
          anyOf:
          - $ref: '#/components/schemas/MeowApiFedNowSubobject'
          - type: 'null'
          description: Account details for paying this contact over FedNow.
        crnow:
          anyOf:
          - $ref: '#/components/schemas/MeowApiCrNowSubobject'
          - type: 'null'
          description: Account details for paying this contact over Cross River's
            instant rail.
        name_on_account:
          type: string
          maxLength: 300
          minLength: 1
          title: Name On Account
          description: Name of the account holder as their bank has it. Sent to the
            receiving bank, so a mismatch can have a payment returned.
        nickname:
          type: string
          maxLength: 300
          minLength: 1
          title: Nickname
          description: Label for these banking details, for your own reference.
        plaid_processor_token:
          anyOf:
          - type: string
            maxLength: 300
            minLength: 1
          - type: 'null'
          title: Plaid Processor Token
          description: Plaid processor token identifying an account the contact linked
            through Plaid, as an alternative to sending account and routing numbers
            yourself.
        email:
          anyOf:
          - type: string
            format: email
          - type: 'null'
          title: Email
          description: Email address to notify when this contact is paid.
        company_ids:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Company Ids
          description: Identifiers of the companies within your organization that
            may pay this contact.
        conduit_counterparty_profile:
          anyOf:
          - $ref: '#/components/schemas/ConduitCounterpartyProfileRequest'
          - type: 'null'
          description: Identity details for the account holder, required by some destinations
            before a payment can be settled.
      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
    CreateAccountLiquidationAddressRequest:
      properties:
        chain:
          $ref: '#/components/schemas/ExtBridgePaymentRail'
          description: Blockchain network where you want to receive funds.
          examples:
          - ethereum
        currency:
          $ref: '#/components/schemas/ExtBridgeCryptocurrency'
          description: Cryptocurrency you want to receive at this address.
          examples:
          - usdc
      type: object
      required:
      - chain
      - currency
      title: CreateAccountLiquidationAddressRequest
    CreateAccountRequest:
      properties:
        product:
          $ref: '#/components/schemas/OpenableBankProduct'
          description: The product to open the new account under. You must already
            have an open account of this product. The account may open immediately
            (status `created`, with `account_id`) or in the background (status `processing`);
            when `processing`, poll `GET /accounts` until the account appears.
          examples:
          - grasshopper
        reference_id:
          anyOf:
          - type: string
            maxLength: 255
            minLength: 1
          - type: 'null'
          title: Reference Id
          description: Your own identifier for this account. It is echoed back on
            the account read endpoints and in `account.created` / `account.updated`
            webhooks, so you can match the account to the request that opened it.
            This matters most for products that open in the background, where the
            response carries no `account_id`. It is a label, not an idempotency key,
            so reuse it freely. Use the `Idempotency-Key` header to make a retry safe.
          examples:
          - catnip-payroll-2026
      type: object
      required:
      - product
      title: CreateAccountRequest
    CreateAccountResponse:
      properties:
        status:
          $ref: '#/components/schemas/CreateAccountStatus'
          description: '`created` when the new account is ready immediately and its
            `account_id` is returned. `processing` when the account is still being
            opened; poll `GET /accounts` until it appears.'
          examples:
          - created
        account_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Account Id
          description: The new `account_id`, returned only when status is `created`.
            Null when status is `processing`; fetch it from `GET /accounts` once the
            account appears.
          examples:
          - cash_account_3f9c1b2e-7a4d-4e88-9c21-0b6f5d8e1a2c
        reference_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Reference Id
          description: Echoes the `reference_id` from your request, confirming it
            was stored. The same value arrives on the `account.created` webhook, which
            is how you match that event back to this call.
          examples:
          - catnip-payroll-2026
      type: object
      required:
      - status
      title: CreateAccountResponse
    CreateAccountStatus:
      type: string
      enum:
      - processing
      - created
      title: CreateAccountStatus
      x-enum-varnames:
      - processing
      - created
    CreateAchTransferRequest:
      properties:
        amount:
          anyOf:
          - type: number
            maximum: 1000000.0
            minimum: 0.01
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Amount
          description: Amount to send, in USD.
        counterparty_id:
          type: string
          format: uuid
          title: Counterparty Id
          description: Contact to pay. Use list_contacts to find one.
        description:
          anyOf:
          - type: string
            maxLength: 10
            minLength: 1
          - type: 'null'
          title: Description
          description: Text shown on the recipient's bank statement.
        internal_note:
          anyOf:
          - type: string
            maxLength: 255
            minLength: 5
          - type: 'null'
          title: Internal Note
          description: Private note, visible only inside Meow.
        email:
          anyOf:
          - type: string
            format: email
          - type: 'null'
          title: Email
          description: Address to notify when the transfer is sent.
        metadata:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 200
            propertyNames:
              maxLength: 40
              minLength: 1
            type: object
            maxProperties: 20
          - type: 'null'
          title: Metadata
          description: Your own key/value data to attach to this object. Meow stores
            it unchanged and returns it on every read of the object and on every webhook
            event about it, so you can match it back to your own records. Up to 20
            pairs; keys up to 40 characters, values up to 200, and 5 KB serialized
            as JSON in total — note that a non-ASCII character counts as 6 bytes and
            an emoji as 12. Values must be strings. Meow never interprets it — do
            not put anything here that needs to stay private.
        idempotency_key:
          anyOf:
          - type: string
            maxLength: 50
            minLength: 1
          - type: 'null'
          title: Idempotency Key
          description: 'Deprecated: send the key in the `Idempotency-Key` header instead.
            When both are sent they must match.'
          deprecated: true
      type: object
      required:
      - amount
      - counterparty_id
      title: CreateAchTransferRequest
    CreateAchTransferResponse:
      properties:
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
          description: Identifier of the ACH transfer at the bank. `null` until the
            transfer leaves the queue, so it is always absent while `status` is `processing`
            or `pending_approval`, or while the transfer is under review. Use `approval_id`
            as the stable handle instead.
        status:
          $ref: '#/components/schemas/TransferStatus'
          description: Where the transfer is in its lifecycle. `pending_approval`
            means an approval policy is holding it; `processing` means it was queued
            for submission to the bank; `pending` means it was sent to the bank, or
            is under review when `message` says so.
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: Amount sent, in USD. Echoes the request.
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: Text shown on the recipient's bank statement. Echoes the request.
        counterparty_id:
          type: string
          format: uuid
          title: Counterparty Id
          description: Contact that was paid. Echoes the request.
        created_time:
          type: integer
          title: Created Time
          description: When the transfer was created, as a Unix timestamp in seconds.
        transfer_type:
          $ref: '#/components/schemas/TransferMethod'
          description: Rail used. Always `ach` for this endpoint.
        approval_id:
          type: string
          format: uuid
          title: Approval Id
          description: Handle for this transfer, returned whether or not an approval
            policy gated it. Pass it to `GET /approvals/{approval_id}` to follow the
            transfer to completion.
        message:
          anyOf:
          - type: string
          - type: 'null'
          title: Message
          description: Human-readable next step. Set when `status` is `pending_approval`
            or the transfer is under review; otherwise `null`.
        metadata:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 200
            propertyNames:
              maxLength: 40
              minLength: 1
            type: object
            maxProperties: 20
          - type: 'null'
          title: Metadata
          description: The metadata attached when this object was created, unchanged.
            `null` when none was attached. Rarely, a `.created` webhook can be published
            before the create request finishes committing, and that one event reports
            `null`; every later event and every read of the object carries the metadata.
      type: object
      required:
      - status
      - amount
      - description
      - counterparty_id
      - created_time
      - transfer_type
      - approval_id
      title: CreateAchTransferResponse
    CreateBillLineItem:
      properties:
        type:
          $ref: '#/components/schemas/BillLineItemTypeEnum'
          description: Whether this line is an expense or an itemized quantity.
        amount:
          anyOf:
          - type: number
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Amount
          description: The unit amount for the line, in the bill's currency. Unsplit
            lines must be positive; split expense lines may be zero or negative.
        description:
          type: string
          minLength: 1
          title: Description
          description: What this line is for.
        quantity:
          anyOf:
          - type: number
            exclusiveMinimum: 0.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,3}0*$
          - type: 'null'
          title: Quantity
          description: Quantity, required when the line is itemized.
        split_group:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Split Group
          description: Identifier shared by expense lines that allocate one original
            line. Every line in the group must use the same description.
      type: object
      required:
      - type
      - amount
      - description
      title: CreateBillLineItem
    CreateBillRequest:
      properties:
        idempotency_key:
          anyOf:
          - type: string
            maxLength: 50
            minLength: 1
          - type: 'null'
          title: Idempotency Key
          description: 'Deprecated: send the key in the `Idempotency-Key` header instead.
            When both are sent they must match.'
          deprecated: true
        contact_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Contact Id
          description: The vendor this bill is payable to. The vendor must already
            exist as a contact.
        invoice_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Invoice Number
          description: The vendor's invoice number. On a recurring bill, its first
            run of letters A-Z and digits 0-9, cut to 16 characters, becomes the prefix
            for generated bills, which are numbered `<prefix>-01`, `<prefix>-02`,
            and so on. A recurring bill's invoice number is rejected only when it
            has no letters A-Z or digits 0-9.
        bill_date:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: Bill Date
          description: The date on the bill (`YYYY-MM-DD`), between 1900-01-01 and
            2099-12-31.
        bill_due_date:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: Bill Due Date
          description: The date the bill is due (`YYYY-MM-DD`), between 1900-01-01
            and 2099-12-31.
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: A short description of the bill.
        memo:
          anyOf:
          - type: string
          - type: 'null'
          title: Memo
          description: An internal memo (up to 140 characters).
        payment_type:
          anyOf:
          - type: string
            enum:
            - ACH
            - WIRE
            - CHECK
            - CRYPTO
          - type: 'null'
          title: Payment Type
          description: 'How the bill will be paid once approved: `ACH`, `WIRE`, `CHECK`,
            or `CRYPTO`. Defaults to `ACH`.'
        crypto_contact_destination_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Crypto Contact Destination Id
          description: Which of the vendor's saved crypto addresses to pay, taken
            from the contact's `payment_methods.crypto[].id`. Required when `payment_type`
            is `CRYPTO`, and rejected otherwise.
        account_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Account Id
          description: The account to pay from, in the same id format returned by
            `GET /accounts`. Defaults to your configured bill pay account when omitted.
            A key restricted to one account can only pay from that account, and defaults
            to it.
        currency:
          anyOf:
          - $ref: '#/components/schemas/Iso4217Code'
          - type: 'null'
          description: The bill's currency. Defaults to USD.
        rrule:
          anyOf:
          - type: string
            maxLength: 120
            minLength: 1
            description: 'RFC 5545 RRULE string. Required: DTSTART, RRULE. Allowed
              frequencies: WEEKLY, MONTHLY.'
          - type: 'null'
          title: Rrule
          description: An iCalendar RRULE (with DTSTART) to make this a recurring
            bill. Each occurrence is generated as its own draft for human approval.
        line_items:
          items:
            $ref: '#/components/schemas/CreateBillLineItem'
          type: array
          title: Line Items
          description: The line items that make up the bill.
      type: object
      title: CreateBillRequest
    CreateBookTransferRequest:
      properties:
        amount:
          anyOf:
          - type: number
            maximum: 1000000000.0
            minimum: 0.01
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Amount
          description: Amount to move, in USD.
        to_account_id:
          type: string
          format: uuid
          title: To Account Id
          description: Destination account, owned by the same entity. Use list_bank_accounts
            to find one.
        description:
          anyOf:
          - type: string
            maxLength: 50
            minLength: 1
          - type: 'null'
          title: Description
          description: Description shown on the transfer.
        metadata:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 200
            propertyNames:
              maxLength: 40
              minLength: 1
            type: object
            maxProperties: 20
          - type: 'null'
          title: Metadata
          description: Your own key/value data to attach to this object. Meow stores
            it unchanged and returns it on every read of the object and on every webhook
            event about it, so you can match it back to your own records. Up to 20
            pairs; keys up to 40 characters, values up to 200, and 5 KB serialized
            as JSON in total — note that a non-ASCII character counts as 6 bytes and
            an emoji as 12. Values must be strings. Meow never interprets it — do
            not put anything here that needs to stay private.
        idempotency_key:
          anyOf:
          - type: string
            maxLength: 50
            minLength: 1
          - type: 'null'
          title: Idempotency Key
          description: 'Deprecated: send the key in the `Idempotency-Key` header instead.
            When both are sent they must match.'
          deprecated: true
      type: object
      required:
      - amount
      - to_account_id
      title: CreateBookTransferRequest
    CreateBookTransferResponse:
      properties:
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
          description: Identifier of the book transfer at the bank. `null` until the
            transfer leaves the queue, so it is always absent while `status` is `processing`
            or `pending_approval`. Use `approval_id` as the stable handle instead.
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: Amount moved, in USD. Echoes the request.
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: Description shown on the transfer. Echoes the request.
        created_time:
          type: integer
          title: Created Time
          description: When the transfer was created, as a Unix timestamp in seconds.
        transfer_type:
          $ref: '#/components/schemas/TransferMethod'
          description: Rail used. Always `book` for this endpoint.
        to_account_id:
          type: string
          format: uuid
          title: To Account Id
          description: Destination account. Echoes the request.
        to_account_name:
          type: string
          title: To Account Name
          description: Display name of the destination account.
        to_account_account_number_masked:
          type: string
          title: To Account Account Number Masked
          description: Last 4 digits of the destination account number.
        to_entity_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: To Entity Id
          description: Entity that owns the destination account. Set only when that
            entity differs from the one sending the transfer; `null` for a transfer
            between two of your own accounts.
        to_entity_name:
          anyOf:
          - type: string
          - type: 'null'
          title: To Entity Name
          description: Legal name of the entity that owns the destination account.
            Set under the same condition as `to_entity_id`.
        status:
          anyOf:
          - $ref: '#/components/schemas/TransferStatus'
          - type: 'null'
          description: Where the transfer is in its lifecycle. `pending_approval`
            means an approval policy is holding it; `processing` means it was queued
            for submission to the bank.
        approval_id:
          type: string
          format: uuid
          title: Approval Id
          description: Handle for this transfer, returned whether or not an approval
            policy gated it. Pass it to `GET /approvals/{approval_id}` to follow the
            transfer to completion.
        message:
          anyOf:
          - type: string
          - type: 'null'
          title: Message
          description: Human-readable next step. Set only when `status` is `pending_approval`;
            otherwise `null`.
        metadata:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 200
            propertyNames:
              maxLength: 40
              minLength: 1
            type: object
            maxProperties: 20
          - type: 'null'
          title: Metadata
          description: The metadata attached when this object was created, unchanged.
            `null` when none was attached. Rarely, a `.created` webhook can be published
            before the create request finishes committing, and that one event reports
            `null`; every later event and every read of the object carries the metadata.
      type: object
      required:
      - amount
      - description
      - created_time
      - transfer_type
      - to_account_id
      - to_account_name
      - to_account_account_number_masked
      - approval_id
      title: CreateBookTransferResponse
    CreateBusinessEntityRequest:
      properties:
        business_phone:
          anyOf:
          - type: string
            maxLength: 20
            minLength: 10
          - type: 'null'
          title: Business Phone
          description: Business phone number.
          examples:
          - '+14155550123'
        business_taxid:
          anyOf:
          - type: string
            maxLength: 50
            minLength: 0
          - type: 'null'
          title: Business Taxid
          description: 'Business tax ID: the EIN for US businesses, or the local registration/tax
            number elsewhere (e.g. UEN in Singapore, UTR in the UK).'
          examples:
          - 12-3456789
        business_website:
          anyOf:
          - type: string
            maxLength: 400
            minLength: 0
          - type: 'null'
          title: Business Website
          description: Public website of the business.
          examples:
          - https://catnipcoffee.com
        business_description:
          anyOf:
          - type: string
            maxLength: 400
            minLength: 0
          - type: 'null'
          title: Business Description
          description: Short description of what the business does.
          examples:
          - Specialty coffee roaster and cafe
        business_asset_source_description:
          anyOf:
          - type: string
            maxLength: 400
            minLength: 0
          - type: 'null'
          title: Business Asset Source Description
          description: Description of the source of the business's assets. Required
            before submitting an application that requests `stablecoins`.
          examples:
          - Operating revenue
        industry:
          anyOf:
          - $ref: '#/components/schemas/Industry'
          - type: 'null'
          description: The industry the business operates in.
        account_purpose:
          anyOf:
          - $ref: '#/components/schemas/AccountPurpose'
          - type: 'null'
          description: Why the business needs the account.
        account_purpose_description:
          anyOf:
          - type: string
            maxLength: 400
            minLength: 0
          - type: 'null'
          title: Account Purpose Description
          description: Free-text detail for the account purpose, when relevant.
        provides_blockchain_or_digital_currency_services:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Provides Blockchain Or Digital Currency Services
          description: Whether the business provides blockchain or digital currency
            services.
        transacts_in_digital_currency:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Transacts In Digital Currency
          description: Whether the business transacts in digital currency.
        develops_governs_supports_blockchain_protocol:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Develops Governs Supports Blockchain Protocol
          description: Whether the business develops, governs, or supports a blockchain
            protocol.
        business_name:
          anyOf:
          - type: string
            maxLength: 400
            minLength: 1
          - type: 'null'
          title: Business Name
          description: Legal business name.
          examples:
          - Catnip Coffee Co
        business_date_of_incorporation:
          anyOf:
          - $ref: '#/components/schemas/DateString'
          - type: 'null'
          description: Date the business was incorporated.
        incorporation_state:
          anyOf:
          - $ref: '#/components/schemas/StateCode'
          - type: 'null'
          description: US state of incorporation. Required for businesses incorporated
            in the US; omit for businesses incorporated elsewhere.
          examples:
          - DE
        legal_structure:
          anyOf:
          - $ref: '#/components/schemas/LegalStructure'
          - type: 'null'
          description: Legal structure of the business (e.g. `llc`, `corp`). Businesses
            incorporated outside the US use `foreign_entity`.
        business_address:
          anyOf:
          - $ref: '#/components/schemas/OnboardingAddress'
          - type: 'null'
          description: Registered legal business address. Must be in a country where
            Meow supports business onboarding; unsupported countries are rejected
            with the full supported list.
        physical_address:
          anyOf:
          - $ref: '#/components/schemas/OnboardingAddress'
          - type: 'null'
          description: Primary operating address, sent together with `business_address`.
            Provide it only when it differs from the legal address; omitting it keeps
            a physical address already on file, or uses the legal address when none
            is set yet.
        reference_id:
          anyOf:
          - type: string
            maxLength: 255
            minLength: 1
          - type: 'null'
          title: Reference Id
          description: 'Your own identifier for this entity. Pass the same value to
            retry safely: a create reusing a `reference_id` you already used returns
            the original entity instead of creating a duplicate.'
          examples:
          - catnip-coffee-4471
      type: object
      title: CreateBusinessEntityRequest
    CreateBusinessEntityResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Public ID of the new business entity. Use it as the `entity_id`
            path parameter on the onboarding endpoints, and in the `x-entity-id` header
            for entity-scoped requests once the entity is onboarded.
        business_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Business Name
          description: Legal business name.
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: ISO 8601 timestamp of when the entity was created.
      type: object
      required:
      - id
      - business_name
      - created_at
      title: CreateBusinessEntityResponse
    CreateCardRequest:
      properties:
        spending_controls:
          $ref: '#/components/schemas/SpendingControls'
          description: Spend limits for the card. `per_transaction_limit` is required;
            period and all-time limits are optional.
        nickname:
          type: string
          maxLength: 30
          minLength: 1
          pattern: ^[ -~]+$
          title: Nickname
          description: Display name for the card (max 30 characters).
        spending_restriction:
          anyOf:
          - $ref: '#/components/schemas/CardSpendingRestrictionRequest'
          - type: 'null'
          description: Restrict which merchants can authorize on this card. Omit to
            allow any merchant up to the spend limit.
        allowed_categories:
          anyOf:
          - items:
              $ref: '#/components/schemas/CardTransactionCategory'
            type: array
          - type: 'null'
          title: Allowed Categories
          description: Restrict the card to these merchant categories.
        debit_account:
          anyOf:
          - type: string
          - type: 'null'
          title: Debit Account
          description: The account this card draws from, as a `cash_account_` id from
            List Accounts. It must be one of your own open accounts. Omit to use the
            account this entity issues cards from by default.
          examples:
          - cash_account_9f1c3b6e-2a1d-4f8e-9c77-3b0d5e2a41f2
        purpose:
          anyOf:
          - type: string
            maxLength: 500
            minLength: 1
            pattern: ^[ -~]+$
          - type: 'null'
          title: Purpose
          description: A memo for your own records, recorded on the card's audit trail.
            It is never sent to the issuer or the merchant, so it does not appear
            on a statement and does not restrict what the card can buy.
          examples:
          - Q3 ad spend for the Catnip Coffee Co launch
        expires_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: When the card should stop working. Omit for a card that stays
            active until you revoke it. Cannot be further out than the issuer allows.
        single_use:
          type: boolean
          title: Single Use
          description: If `true`, the card is revoked automatically after the first
            authorization. If `false`, the card stays usable until expiry or explicit
            revoke.
          default: true
      type: object
      required:
      - spending_controls
      - nickname
      title: CreateCardRequest
    CreateCardResponse:
      properties:
        payment_type:
          type: string
          const: card
          title: Payment Type
          description: Always `card`, so you can tell this apart from a payment token
            response.
          default: card
        controls:
          $ref: '#/components/schemas/CardControls'
          description: The limits and restrictions the card was issued with.
        metadata:
          $ref: '#/components/schemas/CardMetadata'
          description: The card's identifier and your memo.
      type: object
      required:
      - controls
      - metadata
      title: CreateCardResponse
    CreateContactRequest:
      properties:
        nickname:
          type: string
          maxLength: 300
          minLength: 1
          title: Nickname
          description: A nickname or display name for the contact (1-300 characters).
        email:
          anyOf:
          - type: string
            format: email
          - type: 'null'
          title: Email
          description: The email address of the contact.
        address:
          anyOf:
          - $ref: '#/components/schemas/MeowAddressRequest'
          - type: 'null'
          description: Optional postal address stored alongside ACH, wire, or check
            contacts.
        counterparty:
          anyOf:
          - $ref: '#/components/schemas/CounterpartyDetailsRequest'
          - type: 'null'
          description: Banking (ACH, domestic or international wire, or check) details.
            Provide exactly one of this, `international`, or `crypto_addresses`.
        international:
          anyOf:
          - $ref: '#/components/schemas/CustomerApiInternationalDetailsRequest'
          - type: 'null'
          description: International payment details (IBAN, BIC/SWIFT, or a local
            routing code). Provide exactly one of this, `counterparty`, or `crypto_addresses`.
        crypto_addresses:
          anyOf:
          - items:
              $ref: '#/components/schemas/CryptoAddressRequest'
            type: array
          - type: 'null'
          title: Crypto Addresses
          description: Crypto addresses to pay this contact at. Provide exactly one
            of this, `counterparty`, or `international`. Add more addresses later
            with `PATCH /contacts/{id}`.
        crypto_address:
          anyOf:
          - $ref: '#/components/schemas/CryptoAddressRequest'
          - type: 'null'
          description: Deprecated. Use `crypto_addresses`, which accepts more than
            one address.
          deprecated: true
      type: object
      required:
      - nickname
      title: CreateContactRequest
    CreateCryptoTransactionRequest:
      properties:
        amount:
          anyOf:
          - type: number
            maximum: 1000000000.0
            minimum: 1.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Amount
          description: Amount to send, in USD.
        static_memo_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Static Memo Id
          description: Destination static memo. Provide exactly one of static_memo_id
            or crypto_id.
        crypto_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Crypto Id
          description: Destination crypto address on a contact. Provide exactly one
            of static_memo_id or crypto_id.
        internal_note:
          anyOf:
          - type: string
            maxLength: 255
            minLength: 5
          - type: 'null'
          title: Internal Note
          description: Private note, visible only inside Meow.
        emails:
          anyOf:
          - items:
              type: string
              format: email
            type: array
          - type: 'null'
          title: Emails
          description: Addresses to notify when the transaction is sent, as a list.
        metadata:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 200
            propertyNames:
              maxLength: 40
              minLength: 1
            type: object
            maxProperties: 20
          - type: 'null'
          title: Metadata
          description: Your own key/value data to attach to this object. Meow stores
            it unchanged and returns it on every read of the object and on every webhook
            event about it, so you can match it back to your own records. Up to 20
            pairs; keys up to 40 characters, values up to 200, and 5 KB serialized
            as JSON in total — note that a non-ASCII character counts as 6 bytes and
            an emoji as 12. Values must be strings. Meow never interprets it — do
            not put anything here that needs to stay private.
      type: object
      required:
      - amount
      title: CreateCryptoTransactionRequest
    CreateCryptoTransactionResponse:
      properties:
        id:
          anyOf:
          - type: string
          - type: string
            format: uuid
          - type: 'null'
          title: Id
          description: Identifier of the transaction, for use with Get Crypto Transaction.
            `null` until the transfer leaves the queue, so it is always absent while
            `status` is `processing` or `pending_approval`. Use `approval_id` as the
            stable handle instead.
        status:
          $ref: '#/components/schemas/TransferStatus'
          description: Where the transaction is in its lifecycle. `pending_approval`
            means an approval policy is holding it; `processing` means it was queued
            for submission.
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: Amount sent, in USD. Echoes the request.
        internal_note:
          anyOf:
          - type: string
          - type: 'null'
          title: Internal Note
          description: Private note, visible only inside Meow. Echoes the request.
        created_time:
          type: integer
          title: Created Time
          description: When the transaction was created, as a Unix timestamp in seconds.
        destination_address:
          type: string
          title: Destination Address
          description: On-chain address the funds were sent to.
        destination_payment_rail:
          $ref: '#/components/schemas/ExtBridgePaymentRail'
          description: Blockchain network the funds were sent over.
        destination_address_nickname:
          anyOf:
          - type: string
          - type: 'null'
          title: Destination Address Nickname
          description: Nickname of the contact that owns the destination address.
            `null` when the address is not attached to a contact.
        approval_id:
          type: string
          format: uuid
          title: Approval Id
          description: Handle for this transaction, returned whether or not an approval
            policy gated it. Pass it to `GET /approvals/{approval_id}` to follow the
            transaction to completion.
        message:
          anyOf:
          - type: string
          - type: 'null'
          title: Message
          description: Human-readable next step. Set only when `status` is `pending_approval`;
            otherwise `null`.
        metadata:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 200
            propertyNames:
              maxLength: 40
              minLength: 1
            type: object
            maxProperties: 20
          - type: 'null'
          title: Metadata
          description: The metadata attached when this object was created, unchanged.
            `null` when none was attached. Rarely, a `.created` webhook can be published
            before the create request finishes committing, and that one event reports
            `null`; every later event and every read of the object carries the metadata.
      type: object
      required:
      - status
      - amount
      - created_time
      - destination_address
      - destination_payment_rail
      - approval_id
      title: CreateCryptoTransactionResponse
    CreateEntityWebhookSubscriptionRequest:
      properties:
        name:
          type: string
          maxLength: 255
          title: Name
          description: Label for the subscription, for your own reference. Must not
            be blank.
        url:
          type: string
          maxLength: 2048
          minLength: 1
          format: uri
          title: Url
          description: HTTPS endpoint Meow POSTs each event to.
        event_types:
          anyOf:
          - items:
              $ref: '#/components/schemas/WebhookEventType'
            type: array
          - type: 'null'
          title: Event Types
          description: Event types to deliver. Omit or send `null` to receive every
            event. An empty list is rejected, since it would match nothing.
        payload_mode:
          $ref: '#/components/schemas/WebhookPayloadMode'
          description: How much of the resource each delivery carries. `snapshot`
            (the default) sends the full resource in `data.object`; `thin` sends only
            its id and object type, and you fetch the current state yourself.
          default: snapshot
        account_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Account Id
          description: Receive only this bank account's lifecycle and transfer events.
            Use a cash_account_ ID from GET /accounts. Omit or send null for all entity
            events. The account cannot be changed after creation. Book transfer events
            belong to the source account.
      type: object
      required:
      - name
      - url
      title: CreateEntityWebhookSubscriptionRequest
    CreateInternationalPaymentRequest:
      properties:
        contact_id:
          type: string
          format: uuid
          title: Contact Id
          description: Contact to pay. The contact must already have international
            payment details saved. Use list_contacts to find one.
        recipient_amount:
          anyOf:
          - type: number
            exclusiveMinimum: 0.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          - type: 'null'
          title: Recipient Amount
          description: How much the recipient receives, in `recipient_currency`. The
            dollar amount debited is derived from this at the current rate. Give this
            or `source_amount`, never both.
        source_amount:
          anyOf:
          - type: number
            exclusiveMinimum: 0.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          - type: 'null'
          title: Source Amount
          description: US dollars to convert, before the fee. What the recipient receives
            is derived from this at the current rate. Give this or `recipient_amount`,
            never both.
        recipient_currency:
          $ref: '#/components/schemas/Iso4217Code'
          description: Currency the recipient is paid in.
        purpose:
          type: string
          maxLength: 50
          minLength: 1
          title: Purpose
          description: Why the money is being sent. Required for every destination,
            and some destinations reject a purpose that is too short or too vague.
            Anything longer than 50 characters is rejected.
        purpose_code:
          anyOf:
          - $ref: '#/components/schemas/InternationalPaymentPurposeCode'
          - type: 'null'
          description: A destination-specific classification of the payment. Required
            for some destination currencies and countries; when it is required and
            missing, the error names it.
        invoice_number:
          anyOf:
          - type: string
            maxLength: 30
            minLength: 1
          - type: 'null'
          title: Invoice Number
          description: Reference of the invoice this payment settles. Required for
            some destination currencies and countries. Anything that is not a letter
            or a digit is removed and the result is cut to 30 characters before it
            reaches the banking partner; an INR payment needs what remains to be non-empty.
        invoice_date:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: Invoice Date
          description: Date of the invoice this payment settles. Required for some
            destination currencies and countries.
        reference:
          anyOf:
          - type: string
            maxLength: 140
            minLength: 1
          - type: 'null'
          title: Reference
          description: Reference shown to the recipient, where the destination rail
            supports one.
        metadata:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 200
            propertyNames:
              maxLength: 40
              minLength: 1
            type: object
            maxProperties: 20
          - type: 'null'
          title: Metadata
          description: Your own key/value data to attach to this object. Meow stores
            it unchanged and returns it on every read of the object and on every webhook
            event about it, so you can match it back to your own records. Up to 20
            pairs; keys up to 40 characters, values up to 200, and 5 KB serialized
            as JSON in total — note that a non-ASCII character counts as 6 bytes and
            an emoji as 12. Values must be strings. Meow never interprets it — do
            not put anything here that needs to stay private.
      type: object
      required:
      - contact_id
      - recipient_currency
      - purpose
      title: CreateInternationalPaymentRequest
    CreateInternationalPaymentResponse:
      properties:
        approval_id:
          type: string
          format: uuid
          title: Approval Id
          description: Handle for this payment. Poll `GET /approvals/{approval_id}`
            to learn the outcome.
        status:
          $ref: '#/components/schemas/InternationalPaymentRequestStatus'
          description: '`processing` means the payment was accepted and is being sent.
            `pending_approval` means someone must approve it in the Meow dashboard
            before any money moves.'
        contact_id:
          type: string
          format: uuid
          title: Contact Id
          description: Contact being paid.
        recipient_amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Recipient Amount
          description: How much the recipient receives.
        recipient_currency:
          $ref: '#/components/schemas/Iso4217Code'
          description: Currency the recipient is paid in.
        source_amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Source Amount
          description: US dollars converted to fund the payment, at the rate quoted
            when you called. The final debit is set when the payment executes and
            can differ slightly if the rate moves.
        fee_amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Fee Amount
          description: Meow's fee for the conversion, in US dollars.
        total_amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Total Amount
          description: US dollars debited in total, fee included. This is the figure
            your approval rules are evaluated against.
        created_time:
          type: integer
          title: Created Time
          description: When the payment was requested, as a Unix timestamp.
        message:
          anyOf:
          - type: string
          - type: 'null'
          title: Message
          description: Present when the payment needs approval, to say so.
        metadata:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 200
            propertyNames:
              maxLength: 40
              minLength: 1
            type: object
            maxProperties: 20
          - type: 'null'
          title: Metadata
          description: The metadata attached when this object was created, unchanged.
            `null` when none was attached. Rarely, a `.created` webhook can be published
            before the create request finishes committing, and that one event reports
            `null`; every later event and every read of the object carries the metadata.
      type: object
      required:
      - approval_id
      - status
      - contact_id
      - recipient_amount
      - recipient_currency
      - source_amount
      - fee_amount
      - total_amount
      - created_time
      title: CreateInternationalPaymentResponse
    CreateInvoiceRequest:
      properties:
        customer_id:
          type: string
          format: uuid
          title: Customer Id
          description: Invoicing customer to bill. Use list_invoicing_customers to
            find one.
        line_items:
          items:
            $ref: '#/components/schemas/InvoiceLineRequest'
          type: array
          title: Line Items
          description: Line items to bill, as a list. At least one is required.
        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 as an RFC 2445 RRULE string.
            A generator is available at 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 customer (and any additional
            recipients) on the `invoice_date`. For a draft (`save_as_draft`), nothing
            is sent until a Meow user publishes it.
        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: The collection account ID where payments on this invoice will
            be deposited.
        show_contact_address:
          type: boolean
          title: Show Contact Address
          description: Whether to show the customer's address on the invoice, if it
            exists.
          default: false
        save_as_draft:
          type: boolean
          title: Save As Draft
          description: If true, saves the invoice as a draft. A draft has no invoice
            number, is not sent, and sends no email, even when `send_email_on_creation`
            is true. A Meow user reviews and publishes it in the Meow dashboard. Not
            supported with `recurring_schedule`. If false, the invoice is published,
            and an `invoice_date` of today or earlier sends it immediately.
          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
          maxLength: 400
          minLength: 1
          title: Nickname
          description: Display name for the customer.
        email:
          type: string
          format: email
          title: Email
          description: Address invoices are sent to.
        address:
          anyOf:
          - $ref: '#/components/schemas/AddressRequest'
          - type: 'null'
          description: Billing address shown on the invoice.
      type: object
      required:
      - nickname
      - email
      title: CreateInvoicingCustomerRequest
    CreatePaymentTokenRequest:
      properties:
        amount:
          type: integer
          maximum: 25000.0
          exclusiveMinimum: 0.0
          title: Amount
          description: Maximum amount for this token in whole dollars.
        currency:
          $ref: '#/components/schemas/Iso4217Code'
          description: Three-letter ISO 4217 currency code.
          default: USD
        merchant_name:
          type: string
          maxLength: 100
          minLength: 1
          pattern: ^[ -~]+$
          title: Merchant Name
          description: Name of the merchant.
        purpose:
          anyOf:
          - type: string
            maxLength: 500
            minLength: 1
            pattern: ^[ -~]+$
          - type: 'null'
          title: Purpose
          description: A memo for your own records. It is never sent to the merchant
            and does not restrict what the token can buy.
        expires_in_minutes:
          type: integer
          maximum: 1440.0
          exclusiveMinimum: 0.0
          title: Expires In Minutes
          description: Token expires after this many minutes (default 60).
          default: 60
      type: object
      required:
      - amount
      - merchant_name
      title: CreatePaymentTokenRequest
    CreateProductRequest:
      properties:
        name:
          type: string
          maxLength: 100
          title: Name
          description: Product name shown on invoices.
        description:
          anyOf:
          - type: string
            maxLength: 400
          - type: 'null'
          title: Description
          description: Longer product description for invoices.
        default_price:
          anyOf:
          - type: number
            maximum: 10000000.0
            minimum: 0.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Default Price
          description: Default price for the product (0.00 to 10,000,000.00).
      type: object
      required:
      - name
      - default_price
      title: CreateProductRequest
    CreateReceiptsRequest:
      properties:
        receipts:
          items:
            $ref: '#/components/schemas/ReceiptConfirmation'
          type: array
          maxItems: 10
          minItems: 1
          title: Receipts
          description: Receipts that finished uploading and should be matched.
      type: object
      required:
      - receipts
      title: CreateReceiptsRequest
    CreateScheduledAchTransferRequest:
      properties:
        amount:
          anyOf:
          - type: number
            maximum: 1000000.0
            minimum: 0.01
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Amount
          description: Amount to send on each occurrence, in USD.
        counterparty_id:
          type: string
          format: uuid
          title: Counterparty Id
          description: Contact to pay. Use list_contacts to find one.
        description:
          anyOf:
          - type: string
            maxLength: 10
            minLength: 1
          - type: 'null'
          title: Description
          description: Text shown on the recipient's bank statement.
        internal_note:
          anyOf:
          - type: string
            maxLength: 255
            minLength: 5
          - type: 'null'
          title: Internal Note
          description: Private note, visible only inside Meow.
        email:
          anyOf:
          - type: string
            format: email
          - type: 'null'
          title: Email
          description: Address to notify on each occurrence.
        metadata:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 200
            propertyNames:
              maxLength: 40
              minLength: 1
            type: object
            maxProperties: 20
          - type: 'null'
          title: Metadata
          description: Your own key/value data to attach to this object. Meow stores
            it unchanged and returns it on every read of the object and on every webhook
            event about it, so you can match it back to your own records. Up to 20
            pairs; keys up to 40 characters, values up to 200, and 5 KB serialized
            as JSON in total — note that a non-ASCII character counts as 6 bytes and
            an emoji as 12. Values must be strings. Meow never interprets it — do
            not put anything here that needs to stay private.
        idempotency_key:
          anyOf:
          - type: string
            maxLength: 50
            minLength: 1
          - type: 'null'
          title: Idempotency Key
          description: 'Deprecated: send the key in the `Idempotency-Key` header instead.
            When both are sent they must match.'
          deprecated: true
        rrule:
          type: string
          maxLength: 120
          minLength: 1
          title: Rrule
          description: Recurrence rule (RFC 5545 RRULE) defining the schedule.
      type: object
      required:
      - amount
      - counterparty_id
      - rrule
      title: CreateScheduledAchTransferRequest
    CreateScheduledAchTransferResponse:
      properties:
        id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Id
          description: Identifier of the schedule, for use with List Scheduled ACH
            Transfers. `null` until the schedule is actually created, so it is always
            absent while `status` is `processing` or `pending_approval`. Use `approval_id`
            as the stable handle instead.
        status:
          $ref: '#/components/schemas/TransferStatus'
          description: State of the schedule, not of any individual payment. `pending`
            means the schedule is live and waiting for its first occurrence; `pending_approval`
            means an approval policy is holding it; `processing` means it was queued
            for creation.
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: Amount sent on each occurrence, in USD. Echoes the request.
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: Text shown on the recipient's bank statement. Echoes the request.
        counterparty_id:
          type: string
          format: uuid
          title: Counterparty Id
          description: Contact paid on each occurrence. Echoes the request.
        rrule:
          type: string
          maxLength: 120
          minLength: 1
          title: Rrule
          description: Recurrence rule (RFC 5545 RRULE) driving the schedule. Echoes
            the request.
        first_occurrence:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: When the first payment will be sent. Scheduled payments run
            at 10:00 UTC, and an occurrence that falls on a weekend or bank holiday
            moves to the previous business day. `null` until the schedule is created.
        transfer_type:
          $ref: '#/components/schemas/TransferMethod'
          description: Rail used on each occurrence. Always `ach` for this endpoint.
        approval_id:
          type: string
          format: uuid
          title: Approval Id
          description: Handle for this schedule, returned whether or not an approval
            policy gated it. Pass it to `GET /approvals/{approval_id}` to follow the
            request to completion.
        message:
          anyOf:
          - type: string
          - type: 'null'
          title: Message
          description: Human-readable next step. Set only when `status` is `pending_approval`;
            otherwise `null`.
        metadata:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 200
            propertyNames:
              maxLength: 40
              minLength: 1
            type: object
            maxProperties: 20
          - type: 'null'
          title: Metadata
          description: The metadata attached when this schedule was created, unchanged.
            Every payment the schedule sends carries it too, so the webhook for any
            occurrence reports the same value. `null` when none was attached.
      type: object
      required:
      - status
      - amount
      - description
      - counterparty_id
      - rrule
      - transfer_type
      - approval_id
      title: CreateScheduledAchTransferResponse
    CreateScheduledWireTransferRequest:
      properties:
        amount:
          anyOf:
          - type: number
            maximum: 1000000000.0
            minimum: 1.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Amount
          description: Amount to send on each occurrence, in USD.
        counterparty_id:
          type: string
          format: uuid
          title: Counterparty Id
          description: Contact to pay. Use list_contacts to find one.
        instructions:
          anyOf:
          - type: string
            maxLength: 140
            minLength: 1
          - type: 'null'
          title: Instructions
          description: Wire instructions sent to the receiving bank.
        purpose:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
          title: Purpose
          description: 'Purpose of payment. Required by some receiving banks. Your
            account''s bank sets the maximum length: 16 characters on most accounts,
            50 on some. A longer purpose is rejected with a message giving your limit.'
        internal_note:
          anyOf:
          - type: string
            maxLength: 255
            minLength: 5
          - type: 'null'
          title: Internal Note
          description: Private note, visible only inside Meow.
        email:
          anyOf:
          - type: string
            format: email
          - type: 'null'
          title: Email
          description: Address to notify on each occurrence.
        metadata:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 200
            propertyNames:
              maxLength: 40
              minLength: 1
            type: object
            maxProperties: 20
          - type: 'null'
          title: Metadata
          description: Your own key/value data to attach to this object. Meow stores
            it unchanged and returns it on every read of the object and on every webhook
            event about it, so you can match it back to your own records. Up to 20
            pairs; keys up to 40 characters, values up to 200, and 5 KB serialized
            as JSON in total — note that a non-ASCII character counts as 6 bytes and
            an emoji as 12. Values must be strings. Meow never interprets it — do
            not put anything here that needs to stay private.
        idempotency_key:
          anyOf:
          - type: string
            maxLength: 50
            minLength: 1
          - type: 'null'
          title: Idempotency Key
          description: 'Deprecated: send the key in the `Idempotency-Key` header instead.
            When both are sent they must match.'
          deprecated: true
        rrule:
          type: string
          maxLength: 120
          minLength: 1
          title: Rrule
          description: Recurrence rule (RFC 5545 RRULE) defining the schedule.
      type: object
      required:
      - amount
      - counterparty_id
      - rrule
      title: CreateScheduledWireTransferRequest
    CreateScheduledWireTransferResponse:
      properties:
        id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Id
          description: Identifier of the schedule, for use with List Scheduled Wire
            Transfers. `null` until the schedule is actually created, so it is always
            absent while `status` is `processing` or `pending_approval`. Use `approval_id`
            as the stable handle instead.
        status:
          $ref: '#/components/schemas/TransferStatus'
          description: State of the schedule, not of any individual wire. `pending`
            means the schedule is live and waiting for its first occurrence; `pending_approval`
            means an approval policy is holding it; `processing` means it was queued
            for creation.
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: Amount sent on each occurrence, in USD. Echoes the request.
        instructions:
          anyOf:
          - type: string
          - type: 'null'
          title: Instructions
          description: Wire instructions sent to the receiving bank on each occurrence.
            Echoes the request, except for contacts paid through your brokerage account,
            where Meow replaces the submitted memo with system-generated instructions.
        counterparty_id:
          type: string
          format: uuid
          title: Counterparty Id
          description: Contact paid on each occurrence. Echoes the request.
        rrule:
          type: string
          maxLength: 120
          minLength: 1
          title: Rrule
          description: Recurrence rule (RFC 5545 RRULE) driving the schedule. Echoes
            the request.
        first_occurrence:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: When the first wire will be sent. Scheduled payments run at
            10:00 UTC, and an occurrence that falls on a weekend or bank holiday moves
            to the previous business day. `null` until the schedule is created.
        transfer_type:
          $ref: '#/components/schemas/TransferMethod'
          description: Rail used on each occurrence. Always `wire` for this endpoint.
        approval_id:
          type: string
          format: uuid
          title: Approval Id
          description: Handle for this schedule, returned whether or not an approval
            policy gated it. Pass it to `GET /approvals/{approval_id}` to follow the
            request to completion.
        message:
          anyOf:
          - type: string
          - type: 'null'
          title: Message
          description: Human-readable next step. Set only when `status` is `pending_approval`;
            otherwise `null`.
        metadata:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 200
            propertyNames:
              maxLength: 40
              minLength: 1
            type: object
            maxProperties: 20
          - type: 'null'
          title: Metadata
          description: The metadata attached when this schedule was created, unchanged.
            Every wire the schedule sends carries it too, so the webhook for any occurrence
            reports the same value. `null` when none was attached.
      type: object
      required:
      - status
      - amount
      - instructions
      - counterparty_id
      - rrule
      - transfer_type
      - approval_id
      title: CreateScheduledWireTransferResponse
    CreateTransactionReceiptRequest:
      properties:
        object_key:
          type: string
          title: Object Key
          description: Opaque upload key returned with the upload URL.
        filename:
          type: string
          title: Filename
          description: Name of the uploaded receipt file.
      type: object
      required:
      - object_key
      - filename
      title: CreateTransactionReceiptRequest
      description: An uploaded receipt to attach to a known card transaction.
    CreateUSDCTransactionRequest:
      properties:
        amount:
          anyOf:
          - type: number
            maximum: 1000000000.0
            minimum: 1.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Amount
          description: Amount to send, in USD.
        static_memo_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Static Memo Id
          description: Destination static memo. Provide exactly one of static_memo_id
            or crypto_id.
        crypto_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Crypto Id
          description: Destination crypto address on a contact. Provide exactly one
            of static_memo_id or crypto_id.
        internal_note:
          anyOf:
          - type: string
            maxLength: 255
            minLength: 5
          - type: 'null'
          title: Internal Note
          description: Private note, visible only inside Meow.
        emails:
          anyOf:
          - items:
              type: string
              format: email
            type: array
          - type: 'null'
          title: Emails
          description: Addresses to notify when the transaction is sent, as a list.
        metadata:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 200
            propertyNames:
              maxLength: 40
              minLength: 1
            type: object
            maxProperties: 20
          - type: 'null'
          title: Metadata
          description: Your own key/value data to attach to this object. Meow stores
            it unchanged and returns it on every read of the object and on every webhook
            event about it, so you can match it back to your own records. Up to 20
            pairs; keys up to 40 characters, values up to 200, and 5 KB serialized
            as JSON in total — note that a non-ASCII character counts as 6 bytes and
            an emoji as 12. Values must be strings. Meow never interprets it — do
            not put anything here that needs to stay private.
      type: object
      required:
      - amount
      title: CreateUSDCTransactionRequest
    CreateUSDCTransactionResponse:
      properties:
        id:
          anyOf:
          - type: string
          - type: string
            format: uuid
          - type: 'null'
          title: Id
          description: Identifier of the transaction, for use with Get Crypto Transaction.
            `null` until the transfer leaves the queue, so it is always absent while
            `status` is `processing` or `pending_approval`. Use `approval_id` as the
            stable handle instead.
        status:
          $ref: '#/components/schemas/TransferStatus'
          description: Where the transaction is in its lifecycle. `pending_approval`
            means an approval policy is holding it; `processing` means it was queued
            for submission.
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: Amount sent, in USD. Echoes the request.
        internal_note:
          anyOf:
          - type: string
          - type: 'null'
          title: Internal Note
          description: Private note, visible only inside Meow. Echoes the request.
        created_time:
          type: integer
          title: Created Time
          description: When the transaction was created, as a Unix timestamp in seconds.
        destination_address:
          type: string
          title: Destination Address
          description: On-chain address the funds were sent to.
        destination_payment_rail:
          $ref: '#/components/schemas/ExtBridgePaymentRail'
          description: Blockchain network the funds were sent over.
        destination_address_nickname:
          anyOf:
          - type: string
          - type: 'null'
          title: Destination Address Nickname
          description: Nickname of the contact that owns the destination address.
            `null` when the address is not attached to a contact.
        approval_id:
          type: string
          format: uuid
          title: Approval Id
          description: Handle for this transaction, returned whether or not an approval
            policy gated it. Pass it to `GET /approvals/{approval_id}` to follow the
            transaction to completion.
        message:
          anyOf:
          - type: string
          - type: 'null'
          title: Message
          description: Human-readable next step. Set only when `status` is `pending_approval`;
            otherwise `null`.
        metadata:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 200
            propertyNames:
              maxLength: 40
              minLength: 1
            type: object
            maxProperties: 20
          - type: 'null'
          title: Metadata
          description: The metadata attached when this object was created, unchanged.
            `null` when none was attached. Rarely, a `.created` webhook can be published
            before the create request finishes committing, and that one event reports
            `null`; every later event and every read of the object carries the metadata.
      type: object
      required:
      - status
      - amount
      - created_time
      - destination_address
      - destination_payment_rail
      - approval_id
      title: CreateUSDCTransactionResponse
    CreateUserInvitationRequest:
      properties:
        email:
          type: string
          maxLength: 100
          format: email
          title: Email
          description: Email address of the colleague you want to invite.
        role:
          type: string
          enum:
          - Admin
          - Viewer
          - Bookkeeper
          - Controller
          - Card user
          - Card manager
          - Invoice user
          - AP Clerk
          - AP/AR Bookkeeper
          - Bill Approver
          description: Role your colleague receives after accepting the invitation.
      additionalProperties: false
      type: object
      required:
      - email
      - role
      title: CreateUserInvitationRequest
    CreateUserInvitationResponse:
      properties:
        approval_id:
          type: string
          format: uuid
          title: Approval Id
          description: Approval ID. Use it with GET /approvals/{approval_id} to check
            the request status.
        status:
          $ref: '#/components/schemas/ApprovalStatus'
          description: Request status. A pending_approval request needs approval in
            your dashboard before your colleague receives an invitation.
      type: object
      required:
      - approval_id
      - status
      title: CreateUserInvitationResponse
    CreateWebhookSubscriptionRequest:
      properties:
        name:
          type: string
          maxLength: 255
          title: Name
          description: Label for the subscription, for your own reference. Must not
            be blank.
        url:
          type: string
          maxLength: 2048
          minLength: 1
          format: uri
          title: Url
          description: HTTPS endpoint Meow POSTs each event to.
        event_types:
          anyOf:
          - items:
              $ref: '#/components/schemas/WebhookEventType'
            type: array
          - type: 'null'
          title: Event Types
          description: Event types to deliver. Omit or send `null` to receive every
            event. An empty list is rejected, since it would match nothing.
        payload_mode:
          $ref: '#/components/schemas/WebhookPayloadMode'
          description: How much of the resource each delivery carries. `snapshot`
            (the default) sends the full resource in `data.object`; `thin` sends only
            its id and object type, and you fetch the current state yourself.
          default: snapshot
      type: object
      required:
      - name
      - url
      title: CreateWebhookSubscriptionRequest
    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.0
            minimum: 1.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Amount
          description: Amount to send, in USD.
        counterparty_id:
          type: string
          format: uuid
          title: Counterparty Id
          description: Contact to pay. Use list_contacts to find one.
        instructions:
          anyOf:
          - type: string
            maxLength: 140
            minLength: 1
          - type: 'null'
          title: Instructions
          description: Wire instructions sent to the receiving bank.
        purpose:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
          title: Purpose
          description: 'Purpose of payment. Required by some receiving banks. Your
            account''s bank sets the maximum length: 16 characters on most accounts,
            50 on some. A longer purpose is rejected with a message giving your limit.'
        internal_note:
          anyOf:
          - type: string
            maxLength: 255
            minLength: 5
          - type: 'null'
          title: Internal Note
          description: Private note, visible only inside Meow.
        metadata:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 200
            propertyNames:
              maxLength: 40
              minLength: 1
            type: object
            maxProperties: 20
          - type: 'null'
          title: Metadata
          description: Your own key/value data to attach to this object. Meow stores
            it unchanged and returns it on every read of the object and on every webhook
            event about it, so you can match it back to your own records. Up to 20
            pairs; keys up to 40 characters, values up to 200, and 5 KB serialized
            as JSON in total — note that a non-ASCII character counts as 6 bytes and
            an emoji as 12. Values must be strings. Meow never interprets it — do
            not put anything here that needs to stay private.
        idempotency_key:
          anyOf:
          - type: string
            maxLength: 50
            minLength: 1
          - type: 'null'
          title: Idempotency Key
          description: 'Deprecated: send the key in the `Idempotency-Key` header instead.
            When both are sent they must match.'
          deprecated: true
      type: object
      required:
      - amount
      - counterparty_id
      title: CreateWireTransferRequest
    CreateWireTransferResponse:
      properties:
        id:
          anyOf:
          - type: string
          - type: 'null'
          title: Id
          description: Identifier of the wire at the bank. `null` until the transfer
            leaves the queue, so it is always absent while `status` is `processing`
            or `pending_approval`. Use `approval_id` as the stable handle instead.
        status:
          $ref: '#/components/schemas/TransferStatus'
          description: Where the wire is in its lifecycle. `pending_approval` means
            an approval policy is holding it; `processing` means it was queued for
            submission to the bank.
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: Amount sent, in USD. Echoes the request.
        instructions:
          anyOf:
          - type: string
          - type: 'null'
          title: Instructions
          description: Wire instructions sent to the receiving bank. Echoes the request,
            except for contacts paid through your brokerage account, where Meow replaces
            the submitted memo with system-generated instructions.
        counterparty_id:
          type: string
          format: uuid
          title: Counterparty Id
          description: Contact that was paid. Echoes the request.
        created_time:
          type: integer
          title: Created Time
          description: When the transfer was created, as a Unix timestamp in seconds.
        transfer_type:
          $ref: '#/components/schemas/TransferMethod'
          description: Rail used. Always `wire` for this endpoint.
        approval_id:
          type: string
          format: uuid
          title: Approval Id
          description: Handle for this transfer, returned whether or not an approval
            policy gated it. Pass it to `GET /approvals/{approval_id}` to follow the
            transfer to completion.
        message:
          anyOf:
          - type: string
          - type: 'null'
          title: Message
          description: Human-readable next step. Set only when `status` is `pending_approval`;
            otherwise `null`.
        metadata:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 200
            propertyNames:
              maxLength: 40
              minLength: 1
            type: object
            maxProperties: 20
          - type: 'null'
          title: Metadata
          description: The metadata attached when this object was created, unchanged.
            `null` when none was attached. Rarely, a `.created` webhook can be published
            before the create request finishes committing, and that one event reports
            `null`; every later event and every read of the object carries the metadata.
      type: object
      required:
      - status
      - amount
      - instructions
      - counterparty_id
      - created_time
      - transfer_type
      - approval_id
      title: CreateWireTransferResponse
    CryptoAddressRequest:
      properties:
        address:
          type: string
          maxLength: 66
          minLength: 10
          title: Address
          description: On-chain address to send funds to. Validated against `payment_rail`,
            so an address that does not belong to that network is rejected.
        payment_rail:
          $ref: '#/components/schemas/ExtBridgePaymentRail'
          description: Blockchain network the address lives on.
        currency:
          $ref: '#/components/schemas/ExtBridgeCryptocurrency'
          description: Cryptocurrency to send to the address. Must be supported on
            `payment_rail`.
      type: object
      required:
      - address
      - payment_rail
      - currency
      title: CryptoAddressRequest
    CryptoContactDestinationResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Identifier of this crypto address on the contact. Pass it as
            `crypto_id` to send a crypto transaction here.
        destination_address:
          type: string
          title: Destination Address
          description: On-chain address funds are sent to, exactly as it was submitted.
        destination_payment_rail:
          anyOf:
          - $ref: '#/components/schemas/ExtBridgePaymentRail'
          - type: 'null'
          description: The `network` expressed in Bridge's vocabulary. `null` when
            the network has no Bridge equivalent, in which case this destination cannot
            be paid over Bridge.
        destination_currency:
          anyOf:
          - $ref: '#/components/schemas/ExtBridgeCryptocurrency'
          - type: 'null'
          description: The `currency` expressed in Bridge's vocabulary. `null` under
            the same condition as `destination_payment_rail`.
        currency:
          anyOf:
          - $ref: '#/components/schemas/CryptoCurrency'
          - type: 'null'
          description: Cryptocurrency to send to this address. `null` only on addresses
            stored before Meow recorded the currency separately from the Bridge value;
            read `destination_currency` for those.
        network:
          anyOf:
          - $ref: '#/components/schemas/CryptoNetwork'
          - type: 'null'
          description: Blockchain network the address lives on. `null` under the same
            condition as `currency`; read `destination_payment_rail` for those.
        destination_tag:
          anyOf:
          - type: string
          - type: 'null'
          title: Destination Tag
          description: Destination tag or memo the receiving exchange needs to credit
            the funds. When the address is an X-address the tag is read out of it,
            so this is the tag that will actually be used. `null` for networks and
            addresses that need no tag.
      type: object
      required:
      - id
      - destination_address
      title: CryptoContactDestinationResponse
    CryptoCurrency:
      type: string
      enum:
      - usdc
      - usdt
      - pyusd
      - cash
      - usdg
      - usdv
      - eurc
      - eth
      - sol
      - btc
      - xrp
      - path_usd
      - ousd
      title: CryptoCurrency
      x-enum-varnames:
      - usdc
      - usdt
      - pyusd
      - cash
      - usdg
      - usdv
      - eurc
      - eth
      - sol
      - btc
      - xrp
      - path_usd
      - ousd
    CryptoDueDiligence:
      properties:
        business_overview:
          type: string
          title: Business Overview
          description: Please provide an overview of the business.
        revenue_source:
          type: string
          title: Revenue Source
          description: How does the business generate revenue? If you are not generating
            revenue currently, please provide a description of how you plan to generate
            revenue in the future or how funds are received to support ongoing business
            activities.
        product_service_description:
          type: string
          title: Product Service Description
          description: Please provide a list of all products and services being offered
            by the company including the key features of each.
        customer_base:
          type: string
          title: Customer Base
          description: Please describe your customer base.
        source_of_funds:
          type: string
          title: Source Of Funds
          description: Please describe the source of wealth/funding for the entity's
            activities.
        anticipated_day_one_balance:
          anyOf:
          - type: string
          - type: 'null'
          title: Anticipated Day One Balance
          description: Please provide your anticipated day one balance.
        is_money_service_business:
          type: boolean
          title: Is Money Service Business
          description: Is the business classified as a money service business (MSB)?
        received_legal_opinion:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Received Legal Opinion
          description: Have you received a legal opinion regarding your MSB or money
            transmitter status?
        requires_license_money_transmitter:
          type: boolean
          title: Requires License Money Transmitter
          description: Is the business required to be licensed as money transmitter?
        custodies_cryptocurrency_nfts:
          type: boolean
          title: Custodies Cryptocurrency Nfts
          description: Does the business custody cryptocurrency/NFT assets?
        operations:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Operations
          description: Which of these does the business's operations include?
        operations_details:
          anyOf:
          - type: string
          - type: 'null'
          title: Operations Details
          description: Please provide further details for each of the operations selected
            above. Applies only when `operations` is answered.
        aml_sanctions_compliance_policy:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Aml Sanctions Compliance Policy
          description: Do you currently have an AML/Sanctions Compliance Policy in
            place?
        screening_for_sanctions:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Screening For Sanctions
          description: Are you currently screening for sanctions (OFAC, EU, UK, etc.)?
        third_party_screening:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Third Party Screening
          description: Are you currently working with any third parties that conduct
            screening on your transactions?
        third_party_screening_details:
          anyOf:
          - type: string
          - type: 'null'
          title: Third Party Screening Details
          description: Please provide the details of the third party screening you
            are working with. Applies only when `third_party_screening` is `true`.
        sanctions_screening_process:
          anyOf:
          - type: string
          - type: 'null'
          title: Sanctions Screening Process
          description: Please describe your screening process.
        subject_to_regulatory_actions:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Subject To Regulatory Actions
          description: Has the entity been subject to any regulatory actions related
            to the services offered?
        regulatory_actions_explanation:
          anyOf:
          - type: string
          - type: 'null'
          title: Regulatory Actions Explanation
          description: Please provide an explanation. Applies only when `subject_to_regulatory_actions`
            is `true`.
        international_transactions:
          anyOf:
          - type: boolean
          - type: 'null'
          title: International Transactions
          description: Whether the business expects to send or receive international
            transactions.
        international_transactions_description:
          anyOf:
          - type: string
          - type: 'null'
          title: International Transactions Description
          description: Details of the international transactions the business expects.
        anticipated_account_use:
          anyOf:
          - type: string
          - type: 'null'
          title: Anticipated Account Use
          description: Please describe the entity's flow of funds to depict anticipated
            account use.
        expected_activity:
          $ref: '#/components/schemas/ExpectedActivity'
          description: Transaction activity you expect, broken down by region, rail,
            and direction.
        multiple_locations:
          type: boolean
          title: Multiple Locations
          description: Does the business have operations in multiple locations?
          default: false
        locations_list:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Locations List
          description: Please list the addresses of all physical locations for the
            business. Please include the location type/purpose as well (e.g. Headquarters,
            Branch, etc.). Applies only when `multiple_locations` is `true`.
        has_adverse_media:
          type: boolean
          title: Has Adverse Media
          description: Do the entity, parent organization, owner(s), signer(s), or
            control person(s) have any adverse media incident?
          default: false
        adverse_media_explanation:
          anyOf:
          - type: string
          - type: 'null'
          title: Adverse Media Explanation
          description: Please provide an explanation for the adverse media incident(s)
            and any remediation efforts. Applies only when `has_adverse_media` is
            `true`.
        has_adverse_media_related_issues:
          type: boolean
          title: Has Adverse Media Related Issues
          description: Has the entity, parent organization, owner(s), or product been
            subject to adverse media related to corruption, bribery, money laundering,
            fraud, exploitation, or similar issues?
          default: false
        adverse_media_related_issues_explanation:
          anyOf:
          - type: string
          - type: 'null'
          title: Adverse Media Related Issues Explanation
          description: Please explain the incident and remediation efforts. Applies
            only when `has_adverse_media_related_issues` is `true`.
        funding_sources:
          anyOf:
          - type: string
          - type: 'null'
          title: Funding Sources
          description: Provide a detailed breakdown of funding sources (funding rounds,
            staking, etc.), including investor KYC and PEP/sanctions screening.
        grant_disbursement_criteria:
          anyOf:
          - type: string
          - type: 'null'
          title: Grant Disbursement Criteria
          description: Provide clear grant disbursement criteria and beneficiary KYC/PEP/sanctions
            screening procedures.
        affiliations:
          anyOf:
          - type: string
          - type: 'null'
          title: Affiliations
          description: List any affiliations with other charities, non-profit organizations
            (NPOs), governments, etc.
        attestation:
          type: boolean
          title: Attestation
          description: I confirm that all information provided in this form is true
            and accurate to the best of my knowledge.
          default: false
      type: object
      required:
      - business_overview
      - revenue_source
      - product_service_description
      - customer_base
      - source_of_funds
      - is_money_service_business
      - requires_license_money_transmitter
      - custodies_cryptocurrency_nfts
      - expected_activity
      title: CryptoDueDiligence
    CryptoEddFormRequest:
      properties:
        form_type:
          type: string
          const: crypto
          title: Form Type
          description: Selects the crypto form. Must be `crypto`.
        form_data:
          $ref: '#/components/schemas/CryptoDueDiligence'
          description: Answers to the crypto form. Fetch the form's schema first,
            and answer every element it marks required.
      type: object
      required:
      - form_type
      - form_data
      title: CryptoEddFormRequest
    CryptoNetwork:
      type: string
      enum:
      - ethereum
      - base
      - solana
      - arbitrum
      - polygon
      - optimism
      - tron
      - stellar
      - avalanche_c_chain
      - binance
      - sui
      - tempo
      - xdc
      - bitcoin
      - ripple
      title: CryptoNetwork
      x-enum-varnames:
      - ethereum
      - base
      - solana
      - arbitrum
      - polygon
      - optimism
      - tron
      - stellar
      - avalanche_c_chain
      - binance
      - sui
      - tempo
      - xdc
      - bitcoin
      - ripple
    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: The API key's opaque identifier.
        key_type:
          $ref: '#/components/schemas/ApiKeyType'
          description: The type of API key.
        scopes:
          items:
            $ref: '#/components/schemas/ApiKeyScope'
          type: array
          title: Scopes
          description: The scopes granted to this key, in order.
        owner_entity:
          anyOf:
          - $ref: '#/components/schemas/ApiKeyEntityInfo'
          - type: 'null'
          description: The entity associated with this key, when applicable.
        owner_email:
          anyOf:
          - type: string
          - type: 'null'
          title: Owner Email
          description: Email address of the user who owns this key, when applicable.
        restricted_banking_account:
          anyOf:
          - $ref: '#/components/schemas/BankingAccountReference'
          - type: 'null'
          description: 'The bank account this key is confined to, when it is restricted
            to one account: it reads and acts on that account, its transfers, cards,
            bills, invoices and documents only, and cannot create accounts, change
            the daily limit, or manage webhooks. Null for a key that may act on every
            account.'
      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: Identifier for this contact's saved ACH payment destination.
        name_on_account:
          type: string
          title: Name On Account
          description: Account holder name as it appears on the bank account.
        nickname:
          type: string
          title: Nickname
          description: Label you set for this payment method.
        account_type:
          $ref: '#/components/schemas/TreasuryPrimeAccountType'
          description: Whether the destination is a checking or savings account.
        account_number:
          type: string
          title: Account Number
          description: Bank account number for the destination.
        routing_number:
          type: string
          title: Routing Number
          description: Routing number for the destination bank.
        address_on_account:
          anyOf:
          - $ref: '#/components/schemas/MeowApiAddress'
          - type: 'null'
          description: Address on file for this 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: Identifier for this contact's saved check payment destination.
        name_on_account:
          type: string
          title: Name On Account
          description: Payee name printed on the check.
        nickname:
          type: string
          title: Nickname
          description: Label you set for this payment method.
        mailing_address:
          $ref: '#/components/schemas/MeowApiAddress'
          description: Address the check is mailed to.
      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 of 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/AddressResponse'
          - 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: Payment reason recorded on the most recent payment 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.
        page:
          anyOf:
          - $ref: '#/components/schemas/PageMetadata'
          - type: 'null'
          description: Pagination metadata.
      type: object
      required:
      - contacts
      title: CustomerApiContactsList
    CustomerApiEddFormType:
      type: string
      enum:
      - cannabis
      - crypto
      - investments
      - holdings
      - mpm
      - no_website
      - real_estate
      - non_us_ubos
      - protocol_ecosystem
      - international
      title: CustomerApiEddFormType
      x-enum-varnames:
      - cannabis
      - crypto
      - investments
      - holdings
      - mpm
      - no_website
      - real_estate
      - non_us_ubos
      - protocol_ecosystem
      - international
    CustomerApiInternationalDetailsRequest:
      properties:
        payment_method:
          $ref: '#/components/schemas/InternationalPaymentMethod'
          description: '`SWIFT` sends over the correspondent banking network and reaches
            any bank that accepts SWIFT. `LOCAL` uses the destination country''s domestic
            clearing system, which is cheaper but needs that country''s routing code.'
        beneficiary_type:
          $ref: '#/components/schemas/InternationalBeneficiaryType'
          description: Whether the account holder is a person or a business.
        currency:
          $ref: '#/components/schemas/Iso4217Code'
          description: Currency the destination account is held in.
        first_name:
          anyOf:
          - type: string
          - type: 'null'
          title: First Name
          description: Account holder's first name. Required for individuals.
        last_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Name
          description: Account holder's last name. Required for individuals.
        company_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Company Name
          description: Account holder's legal business name. Required for companies.
          examples:
          - Catnip Coffee GmbH
        date_of_birth:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: Date Of Birth
          description: Account holder's date of birth, when known.
        address:
          anyOf:
          - $ref: '#/components/schemas/AddressRequest'
          - type: 'null'
          description: Address of the person or business receiving the payment.
        bank_name:
          anyOf:
          - type: string
            maxLength: 255
            minLength: 1
          - type: 'null'
          title: Bank Name
          description: Name of the destination bank.
          examples:
          - Deutsche Bank
        bank_country:
          anyOf:
          - $ref: '#/components/schemas/CountryCodeAlpha2'
          - type: 'null'
          description: ISO 3166-1 alpha-2 country code of the destination bank.
        bank_address:
          anyOf:
          - type: string
            maxLength: 255
            minLength: 1
          - type: 'null'
          title: Bank Address
          description: Street address of the destination bank.
        account_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Account Number
          description: Destination account number. Provide this or `iban`, depending
            on what the destination country uses.
          examples:
          - '12345678'
        iban:
          anyOf:
          - type: string
          - type: 'null'
          title: Iban
          description: Destination IBAN, for countries that use one.
          examples:
          - DE89370400440532013000
        bic_swift:
          anyOf:
          - type: string
            pattern: ^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$
          - type: 'null'
          title: Bic Swift
          description: BIC/SWIFT code of the destination bank. Required for `SWIFT`
            payments.
          examples:
          - DEUTDEFF
        routing_code_type:
          anyOf:
          - $ref: '#/components/schemas/InternationalRoutingCodeType'
          - type: 'null'
          description: Which domestic routing code `routing_code_value` holds. Required
            for `LOCAL` payments to countries that route on one.
        routing_code_value:
          anyOf:
          - type: string
          - type: 'null'
          title: Routing Code Value
          description: The domestic routing code itself.
          examples:
          - '200000'
        routing_code_type_2:
          anyOf:
          - $ref: '#/components/schemas/InternationalRoutingCodeType'
          - type: 'null'
          description: A second routing code type, for countries that need two.
        routing_code_value_2:
          anyOf:
          - type: string
          - type: 'null'
          title: Routing Code Value 2
          description: The second domestic routing code.
        correspondent_bank_name:
          anyOf:
          - type: string
            maxLength: 50
            minLength: 1
          - type: 'null'
          title: Correspondent Bank Name
          description: Name of the correspondent bank, when one is needed.
        correspondent_bank_bic_swift:
          anyOf:
          - type: string
            pattern: ^[A-Z]{6}[A-Z0-9]{2}([A-Z0-9]{3})?$
          - type: 'null'
          title: Correspondent Bank Bic Swift
          description: BIC/SWIFT code of the correspondent bank.
      type: object
      required:
      - payment_method
      - beneficiary_type
      - currency
      title: CustomerApiInternationalDetailsRequest
    CustomerApiInternationalPaymentMethod:
      properties:
        beneficiary_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Beneficiary Id
          description: Identifier for this contact's saved international payment destination.
            Only set on destinations created before `international_beneficiary_id`
            existed.
        international_beneficiary_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: International Beneficiary Id
          description: Identifier for this contact's international payment destination.
        preferred_currency:
          anyOf:
          - $ref: '#/components/schemas/Iso4217Code'
          - type: 'null'
          description: Default currency for international payments to this contact.
        payment_methods:
          items:
            $ref: '#/components/schemas/InternationalPaymentMethod'
          type: array
          title: Payment Methods
          description: Networks payments to this destination can be sent over.
        beneficiary_type:
          anyOf:
          - $ref: '#/components/schemas/InternationalBeneficiaryType'
          - type: 'null'
          description: Whether the account holder is a person or a business.
        first_name:
          anyOf:
          - type: string
          - type: 'null'
          title: First Name
          description: Account holder's first name.
        last_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Name
          description: Account holder's last name.
        company_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Company Name
          description: Account holder's legal business name.
        date_of_birth:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: Date Of Birth
          description: Account holder's date of birth.
        address:
          anyOf:
          - $ref: '#/components/schemas/AddressResponse'
          - type: 'null'
          description: Address of the person or business receiving the payment.
        currency:
          anyOf:
          - $ref: '#/components/schemas/Iso4217Code'
          - type: 'null'
          description: Currency the destination account is held in.
        account_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Account Number
          description: Destination account number.
        iban:
          anyOf:
          - type: string
          - type: 'null'
          title: Iban
          description: Destination IBAN.
        bic_swift:
          anyOf:
          - type: string
          - type: 'null'
          title: Bic Swift
          description: BIC/SWIFT code of the destination bank.
        bank_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Bank Name
          description: Name of the destination bank.
        bank_country:
          anyOf:
          - $ref: '#/components/schemas/CountryCodeAlpha2'
          - type: 'null'
          description: ISO 3166-1 alpha-2 country code of the destination bank.
        bank_address:
          anyOf:
          - type: string
          - type: 'null'
          title: Bank Address
          description: Street address of the destination bank.
        routing_code_type:
          anyOf:
          - $ref: '#/components/schemas/InternationalRoutingCodeType'
          - type: 'null'
          description: Which domestic routing code `routing_code_value` holds. Null
            for destinations whose rail routes on the value alone and does not retain
            the type, and for stored codes that predate this API and use a vocabulary
            it cannot express.
        routing_code_value:
          anyOf:
          - type: string
          - type: 'null'
          title: Routing Code Value
          description: The domestic routing code itself.
        routing_code_type_2:
          anyOf:
          - $ref: '#/components/schemas/InternationalRoutingCodeType'
          - type: 'null'
          description: A second routing code type, for countries that need two.
        routing_code_value_2:
          anyOf:
          - type: string
          - type: 'null'
          title: Routing Code Value 2
          description: The second domestic routing code.
        correspondent_bank_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Correspondent Bank Name
          description: Name of the correspondent bank.
        correspondent_bank_bic_swift:
          anyOf:
          - type: string
          - type: 'null'
          title: Correspondent Bank Bic Swift
          description: BIC/SWIFT code of the correspondent bank.
      type: object
      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: Crypto addresses you can pay this contact at.
        static_memos:
          items:
            $ref: '#/components/schemas/BridgeStaticMemoResponse'
          type: array
          title: Static Memos
          description: Memo-routed deposit destinations you can pay this contact at.
      type: object
      title: CustomerApiPaymentMethods
    CustomerApiSecurityPoliciesResponse:
      properties:
        security_policies:
          items:
            $ref: '#/components/schemas/CustomerApiSecurityPolicyResponse'
          type: array
          title: Security Policies
          description: Security policies on this page.
        page:
          anyOf:
          - $ref: '#/components/schemas/PageMetadata'
          - type: 'null'
          description: Pagination cursor. `null` on the last page.
      type: object
      required:
      - security_policies
      title: CustomerApiSecurityPoliciesResponse
    CustomerApiSecurityPolicyResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Unique identifier for the policy.
        action_type:
          $ref: '#/components/schemas/ActionType'
          description: Kind of action this policy gates.
        quorum:
          type: integer
          title: Quorum
          description: How many approvals a gated request needs before it executes.
        minimum_amount:
          anyOf:
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          - type: 'null'
          title: Minimum Amount
          description: Amount, in USD, at or above which this policy applies. `null`
            means it applies to every matching action regardless of amount.
        approver_user_ids:
          items:
            type: string
            format: uuid
          type: array
          title: Approver User Ids
          description: Users who may approve a request this policy gates. Excludes
            members whose membership has been removed.
        initiator_user_ids:
          items:
            type: string
            format: uuid
          type: array
          title: Initiator User Ids
          description: Users whose requests this policy applies to. Excludes members
            whose membership has been removed.
        created_time:
          type: integer
          title: Created Time
          description: When the policy was created, as a Unix timestamp in seconds.
        updated_time:
          type: integer
          title: Updated Time
          description: When the policy was last changed, as a Unix timestamp in seconds.
      type: object
      required:
      - id
      - action_type
      - quorum
      - approver_user_ids
      - initiator_user_ids
      - created_time
      - updated_time
      title: CustomerApiSecurityPolicyResponse
    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: Identifier for this contact's saved wire payment destination.
        name_on_account:
          type: string
          title: Name On Account
          description: Account holder name as it appears on the bank account.
        nickname:
          type: string
          title: Nickname
          description: Label you set for this payment method.
        bank_name:
          type: string
          title: Bank Name
          description: Name of the destination bank.
        account_number:
          type: string
          title: Account Number
          description: Bank account number for the destination.
        routing_number:
          type: string
          title: Routing Number
          description: Routing number for the destination bank.
        beneficiary_address:
          $ref: '#/components/schemas/MeowApiAddress'
          description: Address of the person or business receiving the wire.
        bank_address:
          $ref: '#/components/schemas/MeowApiAddress'
          description: Address of the destination bank.
        intermediary_bank:
          anyOf:
          - $ref: '#/components/schemas/CustomerApiWireIntermediaryBank'
          - type: 'null'
          description: Intermediary bank to route the wire through, if one is needed.
      type: object
      required:
      - counterparty_id
      - name_on_account
      - nickname
      - bank_name
      - account_number
      - routing_number
      - beneficiary_address
      - bank_address
      title: CustomerApiWirePaymentMethod
    DDChoice:
      properties:
        value:
          type: string
          title: Value
          description: Value to submit when this option is chosen.
        label:
          type: string
          title: Label
          description: Text to show the person choosing.
      type: object
      required:
      - value
      - label
      title: DDChoice
      description: One selectable option on a `dropdown` or `checkbox` element.
    DDCompoundCondition:
      properties:
        logical_operator:
          $ref: '#/components/schemas/DDLogicalOperator'
          description: Whether every nested condition must pass, or just one.
        conditions:
          items:
            anyOf:
            - $ref: '#/components/schemas/DDCondition'
            - $ref: '#/components/schemas/DDCompoundCondition'
          type: array
          title: Conditions
          description: Conditions to combine. These may nest further.
      type: object
      required:
      - logical_operator
      - conditions
      title: DDCompoundCondition
      description: Several conditions combined into one test.
    DDCondition:
      properties:
        field:
          type: string
          title: Field
          description: Name of the element to test, resolved against the same object
            this element lives in. Use `parent.child` to reach into a `group`, or
            into every item of a `repeat`.
        operator:
          $ref: '#/components/schemas/DDOperator'
          description: How to compare. `contains` and `contains_any` apply to list
            answers; `not_empty` ignores `value` and passes when the answer is present
            and non-blank.
        value:
          anyOf:
          - type: string
          - type: boolean
          - type: integer
          - type: number
          - items:
              type: string
            type: array
          - type: 'null'
          title: Value
          description: Value to compare the answer against. Unused by `not_empty`,
            and a list for `contains_any`.
      type: object
      required:
      - field
      - operator
      title: DDCondition
      description: A test against another answer, used to show or require an element.
    DDElement:
      properties:
        type:
          $ref: '#/components/schemas/DDElementType'
          description: 'Kind of element, which decides the shape of its answer: a
            string for `text`, `comment`, `dropdown`, and `date`; a boolean for `boolean`;
            a number for `number`; a list of strings for `checkbox`, `text_list`,
            and `file_upload`; an object for `group`; a list of objects for `repeat`.'
        name:
          type: string
          title: Name
          description: Key to submit this element's answer under, within its enclosing
            object.
        title:
          type: string
          title: Title
          description: Question or label to show. Also the name Meow uses when reporting
            a validation error on this element.
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: Supporting text explaining what the question is asking for.
        required:
          type: boolean
          title: Required
          description: Whether an answer is always required. See `required_when` for
            elements required only in some cases.
          default: false
        sensitive:
          type: boolean
          title: Sensitive
          description: Encrypt this text answer and mask it in forms and ordinary
            responses.
          default: false
        default_value:
          anyOf:
          - type: string
          - type: boolean
          - type: integer
          - type: number
          - items:
              type: string
            type: array
          - type: 'null'
          title: Default Value
          description: Value to prefill the element with.
        choices:
          anyOf:
          - items:
              $ref: '#/components/schemas/DDChoice'
            type: array
          - type: 'null'
          title: Choices
          description: Allowed options, for `dropdown` and `checkbox`. Submitting
            a value outside this list is rejected. `null` for elements with no fixed
            options.
        visible_when:
          anyOf:
          - $ref: '#/components/schemas/DDCondition'
          - $ref: '#/components/schemas/DDCompoundCondition'
          - type: 'null'
          title: Visible When
          description: Show this element only while the condition holds. While it
            does not hold, the element is skipped entirely and is not validated, even
            if it is required. `null` means always shown.
        required_when:
          anyOf:
          - $ref: '#/components/schemas/DDCondition'
          - $ref: '#/components/schemas/DDCompoundCondition'
          - type: 'null'
          title: Required When
          description: Require an answer only while the condition holds. Ignored when
            `required` is already `true`.
        validation:
          anyOf:
          - $ref: '#/components/schemas/DDValidation'
          - type: 'null'
          description: Length or value bounds for the answer. `null` when unbounded.
        multiple:
          type: boolean
          title: Multiple
          description: For `country_select` and `state_select`, whether more than
            one may be chosen — and so whether the answer is a list of strings rather
            than a single string.
          default: false
        elements:
          anyOf:
          - items:
              $ref: '#/components/schemas/DDElement'
            type: array
          - type: 'null'
          title: Elements
          description: Child elements, for `group` and `repeat`. A `group`'s answer
            is an object keyed by these children's names; a `repeat`'s answer is a
            list of such objects. `null` for every other type.
        min_items:
          anyOf:
          - type: integer
          - type: 'null'
          title: Min Items
          description: Fewest entries a `repeat` may have. `null` when unbounded.
        max_items:
          anyOf:
          - type: integer
          - type: 'null'
          title: Max Items
          description: Most entries a `repeat` may have. `null` when unbounded.
        file_upload_config:
          anyOf:
          - $ref: '#/components/schemas/DDFileUploadConfig'
          - type: 'null'
          description: Upload rules, for `file_upload`. `null` for every other type.
        input_format:
          anyOf:
          - type: string
            enum:
            - currency
            - percentage
          - type: 'null'
          title: Input Format
          description: How to present a `number` element — as currency or as a percentage.
            Formatting only; submit the plain number either way.
        component:
          anyOf:
          - type: string
          - type: 'null'
          title: Component
          description: Name of a purpose-built control to render instead of the default
            one for `type`. Rendering only; it does not change the answer's shape.
            `null` for the default control.
        exclude_countries:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Exclude Countries
          description: ISO 3166-1 alpha-2 country codes to leave out of a `country_select`.
            `null` when nothing is excluded.
      type: object
      required:
      - type
      - name
      - title
      title: DDElement
      description: One question, group, or upload in a due-diligence form.
    DDElementType:
      type: string
      enum:
      - text
      - comment
      - boolean
      - dropdown
      - checkbox
      - number
      - date
      - country_select
      - state_select
      - text_list
      - group
      - repeat
      - file_upload
      - confirm
      title: DDElementType
    DDFileUploadConfig:
      properties:
        accepted_types:
          items:
            type: string
          type: array
          title: Accepted Types
          description: File extensions the upload accepts, such as `pdf` or `png`.
        proof_type:
          anyOf:
          - type: string
          - type: 'null'
          title: Proof Type
          description: Document type this element collects. Pass it to the document
            upload endpoints so the file is filed against the right requirement. `null`
            on uploads that are not tied to a document requirement.
        max_files:
          type: integer
          title: Max Files
          description: Most files that may be attached to this element.
          default: 1
      type: object
      required:
      - accepted_types
      title: DDFileUploadConfig
      description: Upload rules for a `file_upload` element.
    DDFormSchema:
      properties:
        title:
          type: string
          title: Title
          description: Name of the form.
        pages:
          items:
            $ref: '#/components/schemas/DDPage'
          type: array
          title: Pages
          description: Pages of the form, in order.
      type: object
      required:
      - title
      - pages
      title: DDFormSchema
      description: 'A due-diligence form: everything it asks for, and how to validate
        it.'
    DDLogicalOperator:
      type: string
      enum:
      - and
      - or
      title: DDLogicalOperator
    DDOperator:
      type: string
      enum:
      - eq
      - neq
      - contains
      - contains_any
      - not_empty
      title: DDOperator
    DDPage:
      properties:
        name:
          type: string
          title: Name
          description: Identifier for the page. Pages group elements for display only
            — answers are submitted in one flat object keyed by element name, not
            nested per page.
        title:
          type: string
          title: Title
          description: Heading to show for the page.
        elements:
          items:
            $ref: '#/components/schemas/DDElement'
          type: array
          title: Elements
          description: Elements on this page, in the order they should be shown.
      type: object
      required:
      - name
      - title
      - elements
      title: DDPage
      description: One page of a due-diligence form.
    DDValidation:
      properties:
        min_length:
          anyOf:
          - type: integer
          - type: 'null'
          title: Min Length
          description: Fewest characters a text answer may have.
        max_length:
          anyOf:
          - type: integer
          - type: 'null'
          title: Max Length
          description: Most characters a text answer may have.
        min_value:
          anyOf:
          - type: number
          - type: 'null'
          title: Min Value
          description: Smallest value a number answer may take, inclusive.
        max_value:
          anyOf:
          - type: number
          - type: 'null'
          title: Max Value
          description: Largest value a number answer may take, inclusive.
      type: object
      title: DDValidation
      description: Bounds an answer must satisfy. Each bound is `null` when unconstrained.
    DailyWithdrawalLimitResponse:
      properties:
        daily_withdrawal_limit:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Daily Withdrawal Limit
          description: The most, in USD, that can be withdrawn from your accounts
            in a single day across all transfer types. This is the limit enforced
            on outbound transfers today.
          examples:
          - '50000'
        max_daily_withdrawal_limit:
          anyOf:
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          - type: 'null'
          title: Max Daily Withdrawal Limit
          description: The highest daily withdrawal limit you can set, in USD. When
            `null`, no maximum is configured for your entity yet, so you can only
            lower the limit. Contact support@meow.com to raise it.
          examples:
          - '100000'
        spent_today:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Spent Today
          description: The total, in USD, you have already withdrawn today.
          examples:
          - '12500'
        remaining_today:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Remaining Today
          description: How much more, in USD, you can withdraw today before reaching
            your daily limit.
          examples:
          - '37500'
      type: object
      required:
      - daily_withdrawal_limit
      - max_daily_withdrawal_limit
      - spent_today
      - remaining_today
      title: DailyWithdrawalLimitResponse
    DateString:
      type: string
      format: date
      title: DateString
      description: ISO 8601 full-date in the format `YYYY-MM-DD` (per [IETF RFC 3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)).
    DebitCreditMemo:
      type: string
      enum:
      - CREDIT
      - DEBIT
      - MEMO
      - NONE
      title: DebitCreditMemo
    DeliveryStatus:
      type: string
      enum:
      - pending
      - retrying
      - in_progress
      - succeeded
      - failed_permanent
      title: DeliveryStatus
      x-enum-varnames:
      - pending
      - retrying
      - in_progress
      - succeeded
      - failed_permanent
    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:
          title: Currentbalance
          description: Total balance of posted transactions. Null unless the API key
            has the `accounts:balances` scope.
          anyOf:
          - type: number
          - type: 'null'
        availableBalance:
          title: Availablebalance
          description: Balance available for transfers and payments. Null unless the
            API key has the `accounts:balances` scope.
          anyOf:
          - type: number
          - type: 'null'
        bankProductType:
          anyOf:
          - type: string
          - type: 'null'
          title: Bankproducttype
          description: Full legal name of the bank this account is held at, including
            its FDIC membership. Despite the name, this is not a product type.
          examples:
          - Grasshopper Bank N.A.; Member FDIC
        referenceId:
          anyOf:
          - type: string
          - type: 'null'
          title: Referenceid
          description: Your own identifier for this account, as you supplied it on
            `POST /accounts`.
          examples:
          - catnip-payroll-2026
      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: Full legal name of the bank this account is held at, including
            its FDIC membership. Despite the name, this is not a product type.
          examples:
          - Grasshopper Bank N.A.; Member FDIC
        referenceId:
          anyOf:
          - type: string
          - type: 'null'
          title: Referenceid
          description: Your own identifier for this account, as you supplied it on
            `POST /accounts`.
          examples:
          - catnip-payroll-2026
      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
    DepositSettlementRail:
      type: string
      enum:
      - US_FEDNOW
      - US_FEDWIRE
      title: DepositSettlementRail
    DepositTransaction:
      properties:
        transactionId:
          $ref: '#/components/schemas/Identifier'
          description: Long-term persistent identity of the transaction, unique to
            the account. Transactions with status `PENDING` and `POSTED` 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 the transaction was posted to the account.
            When omitted, `transactionTimestamp` may be used instead. Absent for `PENDING`
            transactions and required for `POSTED` transactions.
        transactionTimestamp:
          $ref: '#/components/schemas/Timestamp'
          description: The date and time the transaction was recorded.
        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 an MCC or SIC code.
        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.
        currency:
          $ref: '#/components/schemas/Currency'
          description: The ISO 4217 currency `amount` is denominated in.
        foreignAmount:
          anyOf:
          - type: number
          - type: 'null'
          title: Foreignamount
          description: The amount of money in the foreign currency. When set, `foreignCurrency`
            is also 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: string
          - type: 'null'
          title: Checknumber
          description: Check number associated with a check deposit transaction.
      type: object
      required:
      - transactionId
      - transactionTimestamp
      - description
      - debitCreditMemo
      - status
      - amount
      - currency
      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:
          title: Currentbalance
          description: Total balance of the wallet. Null unless the API key has the
            `accounts:balances` scope.
          anyOf:
          - type: number
          - type: 'null'
        availableBalance:
          title: Availablebalance
          description: Balance available for transfers. Null unless the API key has
            the `accounts:balances` scope.
          anyOf:
          - type: number
          - type: 'null'
      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
            the account. Transactions with status `PENDING` and `POSTED` 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 the transaction was posted to the account.
            When omitted, `transactionTimestamp` may be used instead. Absent for `PENDING`
            transactions and required for `POSTED` transactions.
        transactionTimestamp:
          $ref: '#/components/schemas/Timestamp'
          description: The date and time the transaction was recorded.
        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 an MCC or SIC code.
        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.
        currency:
          $ref: '#/components/schemas/Currency'
          description: The ISO 4217 currency `amount` is denominated in.
        foreignAmount:
          anyOf:
          - type: number
          - type: 'null'
          title: Foreignamount
          description: The amount of money in the foreign currency. When set, `foreignCurrency`
            is also 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
      - currency
      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
    DisplayInitiator:
      properties:
        primary:
          type: string
          title: Primary
          description: Ready-to-render name for whoever acted, with the mechanism
            folded in — "Jane Doe", "Jane Doe's API key", or 'Service API key "Production
            Cards"'. Drop it straight into a sentence rather than reassembling it
            from the fields below.
      type: object
      required:
      - primary
      title: DisplayInitiator
    DueDiligenceFormType:
      type: string
      enum:
      - cannabis
      - crypto
      - investments
      - holdings
      - mpm
      - mrb
      - no_website
      - real_estate
      - non_us_ubos
      - protocol_ecosystem
      - international
      title: DueDiligenceFormType
    EntityCheckingAccountProduct:
      type: string
      enum:
      - grasshopper
      - crb
      title: EntityCheckingAccountProduct
      x-enum-varnames:
      - grasshopper
      - crb
    EntityCreateRepresentativeRequest:
      properties:
        is_beneficial_owner:
          type: boolean
          title: Is Beneficial Owner
          description: Whether this person owns 25% or more of the business.
          default: false
        percent_ownership:
          anyOf:
          - type: number
            maximum: 100.0
            minimum: 25.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          - type: 'null'
          title: Percent Ownership
          description: Ownership percentage; required when `is_beneficial_owner` is
            true.
          examples:
          - '50'
        email:
          type: string
          format: email
          title: Email
          description: Email address of the representative.
          examples:
          - felix@catnipcoffee.com
        first_name:
          anyOf:
          - type: string
          - type: 'null'
          title: First Name
          description: Legal first name.
          examples:
          - Felix
        last_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Name
          description: Legal last name.
          examples:
          - Whiskers
        title_id:
          $ref: '#/components/schemas/RepresentativeTitle'
          description: The representative's job title.
        is_primary:
          type: boolean
          title: Is Primary
          description: Whether this representative is the primary representative (signer)
            for the application. Setting this demotes any existing primary; exactly
            one primary is required before the application can be submitted.
          default: false
      type: object
      required:
      - email
      - title_id
      title: EntityCreateRepresentativeRequest
    EntityDocumentConfirmRequest:
      properties:
        object_key:
          type: string
          title: Object Key
          description: Object key returned from the upload-url endpoint.
        proof_type:
          $ref: '#/components/schemas/PublicKybProofType'
          description: Type of KYB document being confirmed. Use the same `proof_type`
            you passed when requesting the upload URL.
        representative_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Representative Id
          description: The representative this document belongs to; must match the
            value passed when the upload URL was generated. Omit for business-level
            documents.
      type: object
      required:
      - object_key
      - proof_type
      title: EntityDocumentConfirmRequest
    EntityDocumentUploadRequest:
      properties:
        proof_type:
          $ref: '#/components/schemas/PublicKybProofType'
          description: Type of KYB document being uploaded. Common values are `incorporation`
            (certificate of incorporation or formation document), `address` (proof
            of business address), and `bank_statement`. Non-US businesses also upload
            `shareholder_registry` (your shareholder registry, also called the register
            of members) and `officer_registry` (your register of directors and officers).
            The onboarding status response lists exactly what an entity owes in `next_step.required_proof_types`.
        file_name:
          type: string
          title: File Name
          description: Original file name including extension.
        content_type:
          type: string
          title: Content Type
          description: MIME type of the file (e.g. `application/pdf`, `image/png`).
          default: application/pdf
        representative_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Representative Id
          description: Attach this document to a representative (e.g. their ID or
            proof of address). Pass the `representative_id` returned when the representative
            was added or listed; omit for business-level documents. Pass the same
            value again when confirming the upload. The confirm call is what records
            the link.
      type: object
      required:
      - proof_type
      - file_name
      title: EntityDocumentUploadRequest
    EntityDueDiligenceForm:
      properties:
        form_type:
          $ref: '#/components/schemas/DueDiligenceFormType'
          description: The required due diligence form.
        complete:
          type: boolean
          title: Complete
          description: Whether this form has been submitted for the entity.
        requires_webapp:
          type: boolean
          title: Requires Webapp
          description: Whether this form must be completed in the web app. Forms where
            this is `false` can be fetched and submitted via the due-diligence endpoints.
      type: object
      required:
      - form_type
      - complete
      - requires_webapp
      title: EntityDueDiligenceForm
    EntityDueDiligenceStatusResponse:
      properties:
        complete:
          type: boolean
          title: Complete
          description: Whether all required due diligence for the entity is complete.
        forms:
          items:
            $ref: '#/components/schemas/EntityDueDiligenceForm'
          type: array
          title: Forms
          description: The due diligence forms required for the entity, with status.
      type: object
      required:
      - complete
      - forms
      title: EntityDueDiligenceStatusResponse
    EntityInfoRequestAnswersRequest:
      properties:
        tin_value:
          anyOf:
          - type: string
            format: password
            writeOnly: true
          - type: 'null'
          title: Tin Value
          description: The requested tax identification number. Omit to retain a saved
            draft.
        answers:
          anyOf:
          - additionalProperties:
              anyOf:
              - type: string
              - type: boolean
              - type: integer
              - type: number
              - items: {}
                type: array
              - additionalProperties: true
                type: object
              - type: 'null'
            type: object
          - type: 'null'
          title: Answers
          description: Answers keyed by the element `name` in the request's form schema.
            Validated against that schema, so send them complete. This submits, it
            does not save a draft. Omit it when the request asks no questions.
        unavailable_proof_explanations:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 1000
              minLength: 1
            propertyNames:
              $ref: '#/components/schemas/PublicKybProofType'
            type: object
          - type: 'null'
          title: Unavailable Proof Explanations
          description: 'Why the business cannot provide a requested document, keyed
            by its `proof_type`. An accepted explanation settles that document the
            same way an upload does, so use it when no upload will ever satisfy the
            request. Send every explanation the request should keep: this replaces
            the set on file rather than adding to it, and an explanation for a document
            you have since uploaded is dropped.'
      type: object
      title: EntityInfoRequestAnswersRequest
    EntityInfoRequestAnswersResponse:
      properties:
        request_completed:
          type: boolean
          title: Request Completed
          description: Whether the information request is now satisfied in full. False
            while it still owes documents.
        outstanding:
          items:
            $ref: '#/components/schemas/PublicOutstandingItem'
          type: array
          title: Outstanding
          description: What the request is still waiting on after this submission.
      type: object
      required:
      - request_completed
      - outstanding
      title: EntityInfoRequestAnswersResponse
    EntityInfoRequestDocumentConfirmResponse:
      properties:
        confirmed:
          type: boolean
          title: Confirmed
          description: Whether the document was successfully confirmed.
        file_name:
          type: string
          title: File Name
          description: Confirmed file name.
        request_completed:
          type: boolean
          title: Request Completed
          description: Whether this upload satisfied the info request in full. False
            while the request still owes documents or unanswered questions; check
            `next_step.info_requests` on the onboarding status for what is left.
      type: object
      required:
      - confirmed
      - file_name
      - request_completed
      title: EntityInfoRequestDocumentConfirmResponse
    EntityInfoRequestSchema:
      properties:
        title:
          type: string
          title: Title
          description: Name of the form.
        pages:
          items:
            $ref: '#/components/schemas/DDPage'
          type: array
          title: Pages
          description: Pages of the form, in order.
        tin_collection:
          anyOf:
          - $ref: '#/components/schemas/TinCollectionResponse'
          - type: 'null'
          description: The requested tax identification number and saved state. Stored
            values are never returned.
      type: object
      required:
      - title
      - pages
      title: EntityInfoRequestSchema
    EntityOnboardingListResponse:
      properties:
        entities:
          items:
            $ref: '#/components/schemas/EntityOnboardingSummary'
          type: array
          title: Entities
          description: Business entities being onboarded by your API key's user.
        page:
          anyOf:
          - $ref: '#/components/schemas/PageMetadata'
          - type: 'null'
          description: Pagination metadata.
      type: object
      required:
      - entities
      title: EntityOnboardingListResponse
    EntityOnboardingStatusResponse:
      properties:
        entity_id:
          type: string
          format: uuid
          title: Entity Id
          description: Public ID of the onboarded business entity, stable across the
            onboarding lifecycle and matching the `entity_id` used in the Customer
            API, MCP, and webhook payloads.
        status:
          $ref: '#/components/schemas/OnboardingApplicationStatus'
          description: Current onboarding status.
        business_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Business Name
          description: Legal business name.
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: ISO 8601 timestamp of when the entity was created.
        updated_at:
          $ref: '#/components/schemas/Timestamp'
          description: ISO 8601 timestamp of when onboarding was last updated.
        documents:
          items:
            $ref: '#/components/schemas/OnboardingDocumentStatus'
          type: array
          title: Documents
          description: Documents uploaded during onboarding.
        kyc_status:
          $ref: '#/components/schemas/OnboardingKycStatus'
          description: 'Identity verification status of the primary representative.
            After you submit KYC data or they complete verification, this moves to
            `pending` and resolves on its own; poll it to track progress. `action_required`
            means their verification needs another step from them (for example, a
            document): create a link with `POST /entities/{entity_id}/representatives/{representative_id}/verification-link`
            and share it so they can finish. See `representatives` for every representative''s
            status and failed checks.'
        onboarding_type:
          $ref: '#/components/schemas/PublicOnboardingType'
          description: How this entity was onboarded (e.g. `api`, `smb`, `partner`).
        next_step:
          $ref: '#/components/schemas/OnboardingNextStep'
          description: 'What you must do next: the current onboarding step, the items
            still missing for it, and whether the application is ready to be submitted
            for review.'
        representatives:
          items:
            $ref: '#/components/schemas/OnboardingRepresentativeKyc'
          type: array
          title: Representatives
          description: Every representative on the application with their identity
            verification (KYC) status. The top-level `kyc_status` reflects the primary
            representative; the application can only be approved once every representative
            is approved.
        consent_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Consent Url
          description: Link where the primary representative reviews and accepts the
            required agreements and disclosures in their browser. Populated once the
            application has been submitted; share it with the primary representative.
            The link needs no login and anyone holding it can accept on the business's
            behalf, so treat it as a secret.
        consent:
          anyOf:
          - $ref: '#/components/schemas/OnboardingConsentState'
          - type: 'null'
          description: Progress through the agreements at `consent_url`. Populated
            alongside it once the application has been submitted. Consent is collected
            in parallel with review, so `status` moves to `under_review` on submission
            whether or not these are accepted. Poll this field, not `status`, to see
            whether the primary representative still owes anything.
      type: object
      required:
      - entity_id
      - status
      - business_name
      - created_at
      - updated_at
      - documents
      - kyc_status
      - onboarding_type
      - next_step
      - representatives
      - consent_url
      - consent
      title: EntityOnboardingStatusResponse
    EntityOnboardingSummary:
      properties:
        entity_id:
          type: string
          format: uuid
          title: Entity Id
          description: Public ID of the onboarded business entity, stable across the
            onboarding lifecycle and matching the `entity_id` used in the Customer
            API, MCP, and webhook payloads.
        status:
          $ref: '#/components/schemas/OnboardingApplicationStatus'
          description: Current onboarding status.
        business_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Business Name
          description: Legal business name.
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: ISO 8601 timestamp of when the entity was created.
        updated_at:
          $ref: '#/components/schemas/Timestamp'
          description: ISO 8601 timestamp of when onboarding was last updated.
        onboarding_type:
          $ref: '#/components/schemas/PublicOnboardingType'
          description: How this entity was onboarded (e.g. `api`, `smb`, `partner`).
      type: object
      required:
      - entity_id
      - status
      - business_name
      - created_at
      - updated_at
      - onboarding_type
      title: EntityOnboardingSummary
    EntityRepresentativeKycResponse:
      properties:
        representative_id:
          type: string
          format: uuid
          title: Representative Id
          description: ID of the representative whose KYC was submitted.
        kyc_status:
          $ref: '#/components/schemas/OnboardingKycStatus'
          description: This representative's identity verification status right after
            submission. It completes asynchronously; track this representative's status
            in the `representatives` array on `GET /entities/{entity_id}` or via the
            `identity_verification.*` webhooks. The entity's top-level `kyc_status`
            reflects only the primary representative, and `next_step` advances once
            every representative has started verification (not once they pass), so
            neither confirms this representative's outcome.
      type: object
      required:
      - representative_id
      - kyc_status
      title: EntityRepresentativeKycResponse
    EntityRepresentativeListResponse:
      properties:
        representatives:
          items:
            $ref: '#/components/schemas/OnboardingRepresentativeKyc'
          type: array
          title: Representatives
          description: Every representative on the entity's application with their
            identity verification (KYC) status, primary representative first. Deleted
            representatives are omitted.
      type: object
      required:
      - representatives
      title: EntityRepresentativeListResponse
    EntityRepresentativeResponse:
      properties:
        representative_id:
          type: string
          format: uuid
          title: Representative Id
          description: ID of the created representative. Use it to submit the representative's
            KYC or mint a verification link.
        email:
          type: string
          title: Email
          description: Representative's email address.
        title_id:
          $ref: '#/components/schemas/RepresentativeTitle'
          description: The representative's job title.
        is_beneficial_owner:
          type: boolean
          title: Is Beneficial Owner
          description: Whether they are a beneficial owner.
        percent_ownership:
          anyOf:
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          - type: 'null'
          title: Percent Ownership
          description: Ownership percentage, if any.
        is_primary:
          type: boolean
          title: Is Primary
          description: Whether they are the primary representative (signer).
        kyc_status:
          $ref: '#/components/schemas/OnboardingKycStatus'
          description: This representative's identity verification status. `approved`
            means they already passed verification on another entity you administer,
            so there is nothing to submit. `not_started` means submit their KYC data
            or mint a verification link.
      type: object
      required:
      - representative_id
      - email
      - title_id
      - is_beneficial_owner
      - percent_ownership
      - is_primary
      - kyc_status
      title: EntityRepresentativeResponse
    EntityRepresentativeVerificationLinkResponse:
      properties:
        representative_id:
          type: string
          format: uuid
          title: Representative Id
          description: ID of the representative the link is for.
        identity_verification_url:
          type: string
          title: Identity Verification Url
          description: Shareable identity-verification link the representative opens
            to complete KYC themselves. A representative who cannot be given a link
            (already verified, or a verification already in progress from submitted
            KYC data) is rejected with an error explaining why, rather than returned
            here as null.
      type: object
      required:
      - representative_id
      - identity_verification_url
      title: EntityRepresentativeVerificationLinkResponse
    EntitySubmitApplicationRequest:
      properties:
        banking_account_product_type:
          $ref: '#/components/schemas/EntityCheckingAccountProduct'
          description: The checking account product to open for this entity once it
            is approved.
        product_features:
          items:
            $ref: '#/components/schemas/OnboardingProductFeature'
          type: array
          title: Product Features
          description: Additional products to request for this entity alongside the
            checking account. `stablecoins` requests USDC stablecoin access. The primary
            representative accepts each requested product's terms on the `consent_url`
            page; the product is enabled once they have accepted and the application
            is approved.
      type: object
      required:
      - banking_account_product_type
      title: EntitySubmitApplicationRequest
    EntityUpdateBusinessDetailsRequest:
      properties:
        business_phone:
          anyOf:
          - type: string
            maxLength: 20
            minLength: 10
          - type: 'null'
          title: Business Phone
          description: Business phone number.
          examples:
          - '+14155550123'
        business_taxid:
          anyOf:
          - type: string
            maxLength: 50
            minLength: 0
          - type: 'null'
          title: Business Taxid
          description: 'Business tax ID: the EIN for US businesses, or the local registration/tax
            number elsewhere (e.g. UEN in Singapore, UTR in the UK).'
          examples:
          - 12-3456789
        business_website:
          anyOf:
          - type: string
            maxLength: 400
            minLength: 0
          - type: 'null'
          title: Business Website
          description: Public website of the business.
          examples:
          - https://catnipcoffee.com
        business_description:
          anyOf:
          - type: string
            maxLength: 400
            minLength: 0
          - type: 'null'
          title: Business Description
          description: Short description of what the business does.
          examples:
          - Specialty coffee roaster and cafe
        business_asset_source_description:
          anyOf:
          - type: string
            maxLength: 400
            minLength: 0
          - type: 'null'
          title: Business Asset Source Description
          description: Description of the source of the business's assets. Required
            before submitting an application that requests `stablecoins`.
          examples:
          - Operating revenue
        industry:
          anyOf:
          - $ref: '#/components/schemas/Industry'
          - type: 'null'
          description: The industry the business operates in.
        account_purpose:
          anyOf:
          - $ref: '#/components/schemas/AccountPurpose'
          - type: 'null'
          description: Why the business needs the account.
        account_purpose_description:
          anyOf:
          - type: string
            maxLength: 400
            minLength: 0
          - type: 'null'
          title: Account Purpose Description
          description: Free-text detail for the account purpose, when relevant.
        provides_blockchain_or_digital_currency_services:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Provides Blockchain Or Digital Currency Services
          description: Whether the business provides blockchain or digital currency
            services.
        transacts_in_digital_currency:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Transacts In Digital Currency
          description: Whether the business transacts in digital currency.
        develops_governs_supports_blockchain_protocol:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Develops Governs Supports Blockchain Protocol
          description: Whether the business develops, governs, or supports a blockchain
            protocol.
        business_name:
          anyOf:
          - type: string
            maxLength: 400
            minLength: 1
          - type: 'null'
          title: Business Name
          description: Legal business name.
          examples:
          - Catnip Coffee Co
        business_date_of_incorporation:
          anyOf:
          - $ref: '#/components/schemas/DateString'
          - type: 'null'
          description: Date the business was incorporated.
        incorporation_state:
          anyOf:
          - $ref: '#/components/schemas/StateCode'
          - type: 'null'
          description: US state of incorporation. Required for businesses incorporated
            in the US; omit for businesses incorporated elsewhere.
          examples:
          - DE
        legal_structure:
          anyOf:
          - $ref: '#/components/schemas/LegalStructure'
          - type: 'null'
          description: Legal structure of the business (e.g. `llc`, `corp`). Businesses
            incorporated outside the US use `foreign_entity`.
        business_address:
          anyOf:
          - $ref: '#/components/schemas/OnboardingAddress'
          - type: 'null'
          description: Registered legal business address. Must be in a country where
            Meow supports business onboarding; unsupported countries are rejected
            with the full supported list.
        physical_address:
          anyOf:
          - $ref: '#/components/schemas/OnboardingAddress'
          - type: 'null'
          description: Primary operating address, sent together with `business_address`.
            Provide it only when it differs from the legal address; omitting it keeps
            a physical address already on file, or uses the legal address when none
            is set yet.
      type: object
      title: EntityUpdateBusinessDetailsRequest
    ExpectedActivity:
      properties:
        local:
          anyOf:
          - $ref: '#/components/schemas/ExpectedTransactionsRegion'
          - type: 'null'
          description: Expected activity on domestic (US) transactions.
        intl:
          anyOf:
          - $ref: '#/components/schemas/ExpectedTransactionsRegion'
          - type: 'null'
          description: Expected activity on international transactions.
      type: object
      title: ExpectedActivity
    ExpectedPaymentDateResponse:
      properties:
        expected_delivery_date:
          $ref: '#/components/schemas/DateString'
          description: The date a payment sent on this rail is expected to reach the
            vendor. An estimate from the banking calendar and the funding account's
            daily cutoffs; it does not account for the payment's amount, so a payment
            large enough to lose an instant rail may land later.
      type: object
      required:
      - expected_delivery_date
      title: ExpectedPaymentDateResponse
    ExpectedTransactionQuantities:
      properties:
        dollar_amount:
          anyOf:
          - $ref: '#/components/schemas/ExpectedTransactionQuantity'
          - type: 'null'
          description: Expected dollar amount per month, as a band.
        volume:
          anyOf:
          - $ref: '#/components/schemas/ExpectedTransactionQuantity'
          - type: 'null'
          description: Expected number of transactions per month, as a band.
      type: object
      title: ExpectedTransactionQuantities
    ExpectedTransactionQuantity:
      type: string
      enum:
      - very_low
      - low
      - medium
      - high
      - very_high
      title: ExpectedTransactionQuantity
    ExpectedTransactionsNetwork:
      properties:
        inbound:
          anyOf:
          - $ref: '#/components/schemas/ExpectedTransactionQuantities'
          - type: 'null'
          description: Expected activity on money coming in.
        outbound:
          anyOf:
          - $ref: '#/components/schemas/ExpectedTransactionQuantities'
          - type: 'null'
          description: Expected activity on money going out.
      type: object
      title: ExpectedTransactionsNetwork
    ExpectedTransactionsRegion:
      properties:
        ach:
          anyOf:
          - $ref: '#/components/schemas/ExpectedTransactionsNetwork'
          - type: 'null'
          description: Expected ACH activity in this region.
        wire:
          anyOf:
          - $ref: '#/components/schemas/ExpectedTransactionsNetwork'
          - type: 'null'
          description: Expected wire activity in this region.
      type: object
      title: ExpectedTransactionsRegion
    ExpenseAccountResponse:
      properties:
        id:
          type: string
          title: Id
          description: The account's ID in your accounting system. Pass it as `expense_account_external_id`
            when mapping a bill's line.
        name:
          type: string
          title: Name
          description: The account's name.
        fully_qualified_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Fully Qualified Name
          description: The account's full path, when it sits under a parent.
        number:
          anyOf:
          - type: string
          - type: 'null'
          title: Number
          description: The account number, when it has one.
        account_type:
          anyOf:
          - type: string
          - type: 'null'
          title: Account Type
          description: The account's type.
        account_subtype:
          anyOf:
          - type: string
          - type: 'null'
          title: Account Subtype
          description: The account's subtype.
      type: object
      required:
      - id
      - name
      title: ExpenseAccountResponse
    ExpenseAccountsResponse:
      properties:
        expense_accounts:
          items:
            $ref: '#/components/schemas/ExpenseAccountResponse'
          type: array
          title: Expense Accounts
          description: Accounts a bill's line can be mapped to.
      type: object
      required:
      - expense_accounts
      title: ExpenseAccountsResponse
    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
      - usdv
      - eurc
      - usd
      - eur
      - gbp
      - mxn
      - path_usd
      - ousd
      title: ExtBridgeCryptocurrency
      x-enum-varnames:
      - usdb
      - usdc
      - usdt
      - dai
      - pyusd
      - cash
      - usdg
      - usdv
      - eurc
      - usd
      - eur
      - gbp
      - mxn
      - path_usd
      - ousd
    ExtBridgePaymentRail:
      type: string
      enum:
      - arbitrum
      - avalanche_c_chain
      - base
      - ethereum
      - optimism
      - polygon
      - solana
      - stellar
      - sui
      - tempo
      - tron
      - xdc
      - ach
      - ach_push
      - ach_same_day
      - fednow
      - wire
      - swift
      - sepa
      - faster_payments
      - spei
      - bridge_transfer
      title: ExtBridgePaymentRail
      x-enum-varnames:
      - arbitrum
      - avalanche_c_chain
      - base
      - ethereum
      - optimism
      - polygon
      - solana
      - stellar
      - sui
      - tempo
      - tron
      - xdc
      - ach
      - ach_push
      - ach_same_day
      - fednow
      - wire
      - swift
      - sepa
      - faster_payments
      - spei
      - bridge_transfer
    ExtConduitCounterpartyIdentificationType:
      type: string
      enum:
      - tin
      - nit
      - cc
      - ce
      - passport
      - cpf
      - cnpj
      - rfc
      - curp
      - cuit
      - cuil
      title: ExtConduitCounterpartyIdentificationType
      x-enum-varnames:
      - tin
      - nit
      - cc
      - ce
      - passport
      - cpf
      - cnpj
      - rfc
      - curp
      - cuit
      - cuil
    ExtConduitCounterpartyType:
      type: string
      enum:
      - individual
      - business
      title: ExtConduitCounterpartyType
      x-enum-varnames:
      - individual
      - business
    ExtPlaidIDNumberType:
      type: string
      enum:
      - ar_dni
      - au_drivers_license
      - au_passport
      - br_cpf
      - ca_sin
      - cl_run
      - cn_resident_card
      - co_nit
      - dk_cpr
      - eg_national_id
      - es_dni
      - es_nie
      - hk_hkid
      - in_pan
      - in_epic
      - it_cf
      - jo_civil_id
      - jp_my_number
      - ke_huduma_namba
      - kw_civil_id
      - mx_curp
      - mx_rfc
      - my_nric
      - ng_nin
      - nz_drivers_license
      - om_civil_id
      - ph_psn
      - pl_pesel
      - ro_cnp
      - sa_national_id
      - se_pin
      - sg_nric
      - tr_tc_kimlik
      - us_ssn
      - us_ssn_last_4
      - za_smart_id
      title: ExtPlaidIDNumberType
      x-enum-varnames:
      - ar_dni
      - au_drivers_license
      - au_passport
      - br_cpf
      - ca_sin
      - cl_run
      - cn_resident_card
      - co_nit
      - dk_cpr
      - eg_national_id
      - es_dni
      - es_nie
      - hk_hkid
      - in_pan
      - in_epic
      - it_cf
      - jo_civil_id
      - jp_my_number
      - ke_huduma_namba
      - kw_civil_id
      - mx_curp
      - mx_rfc
      - my_nric
      - ng_nin
      - nz_drivers_license
      - om_civil_id
      - ph_psn
      - pl_pesel
      - ro_cnp
      - sa_national_id
      - se_pin
      - sg_nric
      - tr_tc_kimlik
      - us_ssn
      - us_ssn_last_4
      - za_smart_id
    ExtStripeIssuingMerchantCategory:
      type: string
      enum:
      - ac_refrigeration_repair
      - accounting_bookkeeping_services
      - advertising_services
      - agricultural_cooperative
      - airlines_air_carriers
      - airports_flying_fields
      - ambulance_services
      - amusement_parks_carnivals
      - antique_reproductions
      - antique_shops
      - aquariums
      - architectural_surveying_services
      - art_dealers_and_galleries
      - artists_supply_and_craft_shops
      - auto_and_home_supply_stores
      - auto_body_repair_shops
      - auto_paint_shops
      - auto_service_shops
      - automated_cash_disburse
      - automated_fuel_dispensers
      - automobile_associations
      - automotive_parts_and_accessories_stores
      - automotive_tire_stores
      - bail_and_bond_payments
      - bakeries
      - bands_orchestras
      - barber_and_beauty_shops
      - betting_casino_gambling
      - bicycle_shops
      - billiard_pool_establishments
      - boat_dealers
      - boat_rentals_and_leases
      - book_stores
      - books_periodicals_and_newspapers
      - bowling_alleys
      - bus_lines
      - business_secretarial_schools
      - buying_shopping_services
      - cable_satellite_and_other_pay_television_and_radio
      - camera_and_photographic_supply_stores
      - candy_nut_and_confectionery_stores
      - car_and_truck_dealers_new_used
      - car_and_truck_dealers_used_only
      - car_rental_agencies
      - car_washes
      - carpentry_services
      - carpet_upholstery_cleaning
      - caterers
      - charitable_and_social_service_organizations_fundraising
      - chemicals_and_allied_products
      - child_care_services
      - childrens_and_infants_wear_stores
      - chiropodists_podiatrists
      - chiropractors
      - cigar_stores_and_stands
      - civic_social_fraternal_associations
      - cleaning_and_maintenance
      - clothing_rental
      - colleges_universities
      - commercial_equipment
      - commercial_footwear
      - commercial_photography_art_and_graphics
      - commuter_transport_and_ferries
      - computer_network_services
      - computer_programming
      - computer_repair
      - computer_software_stores
      - computers_peripherals_and_software
      - concrete_work_services
      - construction_materials
      - consulting_public_relations
      - correspondence_schools
      - cosmetic_stores
      - counseling_services
      - country_clubs
      - courier_services
      - court_costs
      - credit_reporting_agencies
      - cruise_lines
      - dairy_products_stores
      - dance_hall_studios_schools
      - dating_escort_services
      - dentists_orthodontists
      - department_stores
      - detective_agencies
      - digital_goods_applications
      - digital_goods_games
      - digital_goods_large_volume
      - digital_goods_media
      - direct_marketing_catalog_merchant
      - direct_marketing_combination_catalog_and_retail_merchant
      - direct_marketing_inbound_telemarketing
      - direct_marketing_insurance_services
      - direct_marketing_other
      - direct_marketing_outbound_telemarketing
      - direct_marketing_subscription
      - direct_marketing_travel
      - discount_stores
      - doctors
      - door_to_door_sales
      - drapery_window_covering_and_upholstery_stores
      - drinking_places
      - drug_stores_and_pharmacies
      - drugs_drug_proprietaries_and_druggist_sundries
      - dry_cleaners
      - durable_goods
      - duty_free_stores
      - eating_places_restaurants
      - educational_services
      - electric_razor_stores
      - electric_vehicle_charging
      - electrical_parts_and_equipment
      - electrical_services
      - electronics_repair_shops
      - electronics_stores
      - elementary_secondary_schools
      - emergency_services_gcas_visa_use_only
      - employment_temp_agencies
      - equipment_rental
      - exterminating_services
      - family_clothing_stores
      - fast_food_restaurants
      - financial_institutions
      - fines_government_administrative_entities
      - fireplace_fireplace_screens_and_accessories_stores
      - floor_covering_stores
      - florists
      - florists_supplies_nursery_stock_and_flowers
      - freezer_and_locker_meat_provisioners
      - fuel_dealers_non_automotive
      - funeral_services_crematories
      - furniture_home_furnishings_and_equipment_stores_except_appliances
      - furniture_repair_refinishing
      - furriers_and_fur_shops
      - general_services
      - gift_card_novelty_and_souvenir_shops
      - glass_paint_and_wallpaper_stores
      - glassware_crystal_stores
      - golf_courses_public
      - government_licensed_horse_dog_racing_us_region_only
      - government_licensed_online_casions_online_gambling_us_region_only
      - government_owned_lotteries_non_us_region
      - government_owned_lotteries_us_region_only
      - government_services
      - grocery_stores_supermarkets
      - hardware_equipment_and_supplies
      - hardware_stores
      - health_and_beauty_spas
      - hearing_aids_sales_and_supplies
      - heating_plumbing_a_c
      - hobby_toy_and_game_shops
      - home_supply_warehouse_stores
      - hospitals
      - hotels_motels_and_resorts
      - household_appliance_stores
      - industrial_supplies
      - information_retrieval_services
      - insurance_default
      - insurance_underwriting_premiums
      - intra_company_purchases
      - jewelry_stores_watches_clocks_and_silverware_stores
      - landscaping_services
      - laundries
      - laundry_cleaning_services
      - legal_services_attorneys
      - luggage_and_leather_goods_stores
      - lumber_building_materials_stores
      - manual_cash_disburse
      - marinas_service_and_supplies
      - marketplaces
      - masonry_stonework_and_plaster
      - massage_parlors
      - medical_and_dental_labs
      - medical_dental_ophthalmic_and_hospital_equipment_and_supplies
      - medical_services
      - membership_organizations
      - mens_and_boys_clothing_and_accessories_stores
      - mens_womens_clothing_stores
      - metal_service_centers
      - miscellaneous
      - miscellaneous_apparel_and_accessory_shops
      - miscellaneous_auto_dealers
      - miscellaneous_business_services
      - miscellaneous_food_stores
      - miscellaneous_general_merchandise
      - miscellaneous_general_services
      - miscellaneous_home_furnishing_specialty_stores
      - miscellaneous_publishing_and_printing
      - miscellaneous_recreation_services
      - miscellaneous_repair_shops
      - miscellaneous_specialty_retail
      - mobile_home_dealers
      - motion_picture_theaters
      - motor_freight_carriers_and_trucking
      - motor_homes_dealers
      - motor_vehicle_supplies_and_new_parts
      - motorcycle_shops_and_dealers
      - motorcycle_shops_dealers
      - music_stores_musical_instruments_pianos_and_sheet_music
      - news_dealers_and_newsstands
      - non_fi_money_orders
      - non_fi_stored_value_card_purchase_load
      - nondurable_goods
      - nurseries_lawn_and_garden_supply_stores
      - nursing_personal_care
      - office_and_commercial_furniture
      - opticians_eyeglasses
      - optometrists_ophthalmologist
      - orthopedic_goods_prosthetic_devices
      - osteopaths
      - package_stores_beer_wine_and_liquor
      - paints_varnishes_and_supplies
      - parking_lots_garages
      - passenger_railways
      - pawn_shops
      - pet_shops_pet_food_and_supplies
      - petroleum_and_petroleum_products
      - photo_developing
      - photographic_photocopy_microfilm_equipment_and_supplies
      - photographic_studios
      - picture_video_production
      - piece_goods_notions_and_other_dry_goods
      - plumbing_heating_equipment_and_supplies
      - political_organizations
      - postal_services_government_only
      - precious_stones_and_metals_watches_and_jewelry
      - professional_services
      - public_warehousing_and_storage
      - quick_copy_repro_and_blueprint
      - railroads
      - real_estate_agents_and_managers_rentals
      - record_stores
      - recreational_vehicle_rentals
      - religious_goods_stores
      - religious_organizations
      - roofing_siding_sheet_metal
      - secretarial_support_services
      - security_brokers_dealers
      - service_stations
      - sewing_needlework_fabric_and_piece_goods_stores
      - shoe_repair_hat_cleaning
      - shoe_stores
      - small_appliance_repair
      - snowmobile_dealers
      - special_trade_services
      - specialty_cleaning
      - sporting_goods_stores
      - sporting_recreation_camps
      - sports_and_riding_apparel_stores
      - sports_clubs_fields
      - stamp_and_coin_stores
      - stationary_office_supplies_printing_and_writing_paper
      - stationery_stores_office_and_school_supply_stores
      - swimming_pools_sales
      - t_ui_travel_germany
      - tailors_alterations
      - tax_payments_government_agencies
      - tax_preparation_services
      - taxicabs_limousines
      - telecommunication_equipment_and_telephone_sales
      - telecommunication_services
      - telegraph_services
      - tent_and_awning_shops
      - testing_laboratories
      - theatrical_ticket_agencies
      - timeshares
      - tire_retreading_and_repair
      - tolls_bridge_fees
      - tourist_attractions_and_exhibits
      - towing_services
      - trailer_parks_campgrounds
      - transportation_services
      - travel_agencies_tour_operators
      - truck_stop_iteration
      - truck_utility_trailer_rentals
      - typesetting_plate_making_and_related_services
      - typewriter_stores
      - u_s_federal_government_agencies_or_departments
      - uniforms_commercial_clothing
      - used_merchandise_and_secondhand_stores
      - utilities
      - variety_stores
      - veterinary_services
      - video_amusement_game_supplies
      - video_game_arcades
      - video_tape_rental_stores
      - vocational_trade_schools
      - watch_jewelry_repair
      - welding_repair
      - wholesale_clubs
      - wig_and_toupee_stores
      - wires_money_orders
      - womens_accessory_and_specialty_shops
      - womens_ready_to_wear_stores
      - wrecking_and_salvage_yards
      title: ExtStripeIssuingMerchantCategory
      x-enum-varnames:
      - ac_refrigeration_repair
      - accounting_bookkeeping_services
      - advertising_services
      - agricultural_cooperative
      - airlines_air_carriers
      - airports_flying_fields
      - ambulance_services
      - amusement_parks_carnivals
      - antique_reproductions
      - antique_shops
      - aquariums
      - architectural_surveying_services
      - art_dealers_and_galleries
      - artists_supply_and_craft_shops
      - auto_and_home_supply_stores
      - auto_body_repair_shops
      - auto_paint_shops
      - auto_service_shops
      - automated_cash_disburse
      - automated_fuel_dispensers
      - automobile_associations
      - automotive_parts_and_accessories_stores
      - automotive_tire_stores
      - bail_and_bond_payments
      - bakeries
      - bands_orchestras
      - barber_and_beauty_shops
      - betting_casino_gambling
      - bicycle_shops
      - billiard_pool_establishments
      - boat_dealers
      - boat_rentals_and_leases
      - book_stores
      - books_periodicals_and_newspapers
      - bowling_alleys
      - bus_lines
      - business_secretarial_schools
      - buying_shopping_services
      - cable_satellite_and_other_pay_television_and_radio
      - camera_and_photographic_supply_stores
      - candy_nut_and_confectionery_stores
      - car_and_truck_dealers_new_used
      - car_and_truck_dealers_used_only
      - car_rental_agencies
      - car_washes
      - carpentry_services
      - carpet_upholstery_cleaning
      - caterers
      - charitable_and_social_service_organizations_fundraising
      - chemicals_and_allied_products
      - child_care_services
      - childrens_and_infants_wear_stores
      - chiropodists_podiatrists
      - chiropractors
      - cigar_stores_and_stands
      - civic_social_fraternal_associations
      - cleaning_and_maintenance
      - clothing_rental
      - colleges_universities
      - commercial_equipment
      - commercial_footwear
      - commercial_photography_art_and_graphics
      - commuter_transport_and_ferries
      - computer_network_services
      - computer_programming
      - computer_repair
      - computer_software_stores
      - computers_peripherals_and_software
      - concrete_work_services
      - construction_materials
      - consulting_public_relations
      - correspondence_schools
      - cosmetic_stores
      - counseling_services
      - country_clubs
      - courier_services
      - court_costs
      - credit_reporting_agencies
      - cruise_lines
      - dairy_products_stores
      - dance_hall_studios_schools
      - dating_escort_services
      - dentists_orthodontists
      - department_stores
      - detective_agencies
      - digital_goods_applications
      - digital_goods_games
      - digital_goods_large_volume
      - digital_goods_media
      - direct_marketing_catalog_merchant
      - direct_marketing_combination_catalog_and_retail_merchant
      - direct_marketing_inbound_telemarketing
      - direct_marketing_insurance_services
      - direct_marketing_other
      - direct_marketing_outbound_telemarketing
      - direct_marketing_subscription
      - direct_marketing_travel
      - discount_stores
      - doctors
      - door_to_door_sales
      - drapery_window_covering_and_upholstery_stores
      - drinking_places
      - drug_stores_and_pharmacies
      - drugs_drug_proprietaries_and_druggist_sundries
      - dry_cleaners
      - durable_goods
      - duty_free_stores
      - eating_places_restaurants
      - educational_services
      - electric_razor_stores
      - electric_vehicle_charging
      - electrical_parts_and_equipment
      - electrical_services
      - electronics_repair_shops
      - electronics_stores
      - elementary_secondary_schools
      - emergency_services_gcas_visa_use_only
      - employment_temp_agencies
      - equipment_rental
      - exterminating_services
      - family_clothing_stores
      - fast_food_restaurants
      - financial_institutions
      - fines_government_administrative_entities
      - fireplace_fireplace_screens_and_accessories_stores
      - floor_covering_stores
      - florists
      - florists_supplies_nursery_stock_and_flowers
      - freezer_and_locker_meat_provisioners
      - fuel_dealers_non_automotive
      - funeral_services_crematories
      - furniture_home_furnishings_and_equipment_stores_except_appliances
      - furniture_repair_refinishing
      - furriers_and_fur_shops
      - general_services
      - gift_card_novelty_and_souvenir_shops
      - glass_paint_and_wallpaper_stores
      - glassware_crystal_stores
      - golf_courses_public
      - government_licensed_horse_dog_racing_us_region_only
      - government_licensed_online_casions_online_gambling_us_region_only
      - government_owned_lotteries_non_us_region
      - government_owned_lotteries_us_region_only
      - government_services
      - grocery_stores_supermarkets
      - hardware_equipment_and_supplies
      - hardware_stores
      - health_and_beauty_spas
      - hearing_aids_sales_and_supplies
      - heating_plumbing_a_c
      - hobby_toy_and_game_shops
      - home_supply_warehouse_stores
      - hospitals
      - hotels_motels_and_resorts
      - household_appliance_stores
      - industrial_supplies
      - information_retrieval_services
      - insurance_default
      - insurance_underwriting_premiums
      - intra_company_purchases
      - jewelry_stores_watches_clocks_and_silverware_stores
      - landscaping_services
      - laundries
      - laundry_cleaning_services
      - legal_services_attorneys
      - luggage_and_leather_goods_stores
      - lumber_building_materials_stores
      - manual_cash_disburse
      - marinas_service_and_supplies
      - marketplaces
      - masonry_stonework_and_plaster
      - massage_parlors
      - medical_and_dental_labs
      - medical_dental_ophthalmic_and_hospital_equipment_and_supplies
      - medical_services
      - membership_organizations
      - mens_and_boys_clothing_and_accessories_stores
      - mens_womens_clothing_stores
      - metal_service_centers
      - miscellaneous
      - miscellaneous_apparel_and_accessory_shops
      - miscellaneous_auto_dealers
      - miscellaneous_business_services
      - miscellaneous_food_stores
      - miscellaneous_general_merchandise
      - miscellaneous_general_services
      - miscellaneous_home_furnishing_specialty_stores
      - miscellaneous_publishing_and_printing
      - miscellaneous_recreation_services
      - miscellaneous_repair_shops
      - miscellaneous_specialty_retail
      - mobile_home_dealers
      - motion_picture_theaters
      - motor_freight_carriers_and_trucking
      - motor_homes_dealers
      - motor_vehicle_supplies_and_new_parts
      - motorcycle_shops_and_dealers
      - motorcycle_shops_dealers
      - music_stores_musical_instruments_pianos_and_sheet_music
      - news_dealers_and_newsstands
      - non_fi_money_orders
      - non_fi_stored_value_card_purchase_load
      - nondurable_goods
      - nurseries_lawn_and_garden_supply_stores
      - nursing_personal_care
      - office_and_commercial_furniture
      - opticians_eyeglasses
      - optometrists_ophthalmologist
      - orthopedic_goods_prosthetic_devices
      - osteopaths
      - package_stores_beer_wine_and_liquor
      - paints_varnishes_and_supplies
      - parking_lots_garages
      - passenger_railways
      - pawn_shops
      - pet_shops_pet_food_and_supplies
      - petroleum_and_petroleum_products
      - photo_developing
      - photographic_photocopy_microfilm_equipment_and_supplies
      - photographic_studios
      - picture_video_production
      - piece_goods_notions_and_other_dry_goods
      - plumbing_heating_equipment_and_supplies
      - political_organizations
      - postal_services_government_only
      - precious_stones_and_metals_watches_and_jewelry
      - professional_services
      - public_warehousing_and_storage
      - quick_copy_repro_and_blueprint
      - railroads
      - real_estate_agents_and_managers_rentals
      - record_stores
      - recreational_vehicle_rentals
      - religious_goods_stores
      - religious_organizations
      - roofing_siding_sheet_metal
      - secretarial_support_services
      - security_brokers_dealers
      - service_stations
      - sewing_needlework_fabric_and_piece_goods_stores
      - shoe_repair_hat_cleaning
      - shoe_stores
      - small_appliance_repair
      - snowmobile_dealers
      - special_trade_services
      - specialty_cleaning
      - sporting_goods_stores
      - sporting_recreation_camps
      - sports_and_riding_apparel_stores
      - sports_clubs_fields
      - stamp_and_coin_stores
      - stationary_office_supplies_printing_and_writing_paper
      - stationery_stores_office_and_school_supply_stores
      - swimming_pools_sales
      - t_ui_travel_germany
      - tailors_alterations
      - tax_payments_government_agencies
      - tax_preparation_services
      - taxicabs_limousines
      - telecommunication_equipment_and_telephone_sales
      - telecommunication_services
      - telegraph_services
      - tent_and_awning_shops
      - testing_laboratories
      - theatrical_ticket_agencies
      - timeshares
      - tire_retreading_and_repair
      - tolls_bridge_fees
      - tourist_attractions_and_exhibits
      - towing_services
      - trailer_parks_campgrounds
      - transportation_services
      - travel_agencies_tour_operators
      - truck_stop_iteration
      - truck_utility_trailer_rentals
      - typesetting_plate_making_and_related_services
      - typewriter_stores
      - u_s_federal_government_agencies_or_departments
      - uniforms_commercial_clothing
      - used_merchandise_and_secondhand_stores
      - utilities
      - variety_stores
      - veterinary_services
      - video_amusement_game_supplies
      - video_game_arcades
      - video_tape_rental_stores
      - vocational_trade_schools
      - watch_jewelry_repair
      - welding_repair
      - wholesale_clubs
      - wig_and_toupee_stores
      - wires_money_orders
      - womens_accessory_and_specialty_shops
      - womens_ready_to_wear_stores
      - wrecking_and_salvage_yards
    FileType:
      type: string
      enum:
      - text/csv
      - application/pdf
      - image/jpeg
      - image/png
      - image/webp
      - image/heic
      title: FileType
    ForeignCurrencyWireAgent:
      properties:
        bank_name:
          type: string
          title: Bank Name
          description: Name of the bank at this hop.
        swift_code:
          anyOf:
          - type: string
          - type: 'null'
          title: Swift Code
          description: SWIFT/BIC of the bank.
        account_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Account Number
          description: Account to credit at this bank, when one is needed.
        iban:
          anyOf:
          - type: string
          - type: 'null'
          title: Iban
          description: IBAN to credit, when one is used.
        transit_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Transit Number
          description: Domestic transit number, when the country uses one.
        national_clearing_code:
          anyOf:
          - type: string
          - type: 'null'
          title: National Clearing Code
          description: Domestic clearing code, when the country uses one.
      type: object
      required:
      - bank_name
      title: ForeignCurrencyWireAgent
    ForeignCurrencyWireBeneficiary:
      properties:
        name:
          type: string
          title: Name
          description: Your business name, as the sender must state it.
        address:
          type: string
          title: Address
          description: Your business address, as the sender must state it.
        account_number:
          type: string
          title: Account Number
          description: The account number the sender credits.
        payment_reference:
          type: string
          title: Payment Reference
          description: Reference the sender must put on the wire so it reaches this
            account. Currently the account number.
      type: object
      required:
      - name
      - address
      - account_number
      - payment_reference
      title: ForeignCurrencyWireBeneficiary
    ForeignCurrencyWireInstruction:
      properties:
        currency:
          $ref: '#/components/schemas/Iso4217Code'
          description: Currency the sender pays in.
        intermediary_agent_2:
          $ref: '#/components/schemas/ForeignCurrencyWireAgent'
          description: First bank in the chain, in the sender's currency.
        intermediary_agent_1:
          $ref: '#/components/schemas/ForeignCurrencyWireAgent'
          description: Correspondent bank that moves the funds into US dollars.
        creditor_agent:
          $ref: '#/components/schemas/ForeignCurrencyWireAgent'
          description: Bank that credits your account.
        remittance_info:
          anyOf:
          - type: string
          - type: 'null'
          title: Remittance Info
          description: Text the sender must include so the wire is routed to you.
      type: object
      required:
      - currency
      - intermediary_agent_2
      - intermediary_agent_1
      - creditor_agent
      title: ForeignCurrencyWireInstruction
    ForeignCurrencyWireInstructions:
      properties:
        beneficiary:
          $ref: '#/components/schemas/ForeignCurrencyWireBeneficiary'
          description: Who the sender names as the beneficiary.
        instructions:
          items:
            $ref: '#/components/schemas/ForeignCurrencyWireInstruction'
          type: array
          title: Instructions
          description: One entry per currency you can receive, giving the agent chain
            the sender's bank routes through. Funds arrive converted to US dollars.
      type: object
      required:
      - beneficiary
      - instructions
      title: ForeignCurrencyWireInstructions
    GetCryptoTransactionResponse:
      properties:
        id:
          anyOf:
          - type: string
          - type: string
            format: uuid
          title: Id
          description: Identifier of the transaction. For an outbound transfer this
            is the id returned when you created it; for an inbound deposit it is the
            transaction id List Transactions reports, or the id the crypto_transfer
            webhook published before the deposit settled.
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: Size of the transaction, in USD. Always positive, in both directions.
        direction:
          $ref: '#/components/schemas/TransferDirection'
          description: Whether the money moved into this account (`inbound`) or out
            of it (`outbound`). Inbound transfers were sent to you by someone else,
            so they have no counterparty you configured.
        status:
          $ref: '#/components/schemas/TransferStatus'
          description: The current status of the crypto transaction.
        destination_address:
          type: string
          title: Destination Address
          description: On-chain address the funds were sent to.
        destination_payment_rail:
          $ref: '#/components/schemas/CryptoNetwork'
          description: Blockchain network the funds moved over.
        destination_tx_hash:
          anyOf:
          - type: string
          - type: 'null'
          title: Destination Tx Hash
          description: On-chain hash of the transfer we sent. Set on outbound transactions
            once they settle.
        destination_address_nickname:
          anyOf:
          - type: string
          - type: 'null'
          title: Destination Address Nickname
          description: Nickname of the contact that owns the destination address.
            `null` when the address is not attached to a contact, which is the usual
            case for inbound deposits.
        source_address:
          anyOf:
          - type: string
          - type: 'null'
          title: Source Address
          description: On-chain address the funds were sent from. Set on inbound deposits,
            so you can match a deposit to whoever sent it.
        source_tx_hash:
          anyOf:
          - type: string
          - type: 'null'
          title: Source Tx Hash
          description: On-chain hash of the deposit. Set on inbound deposits.
        metadata:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 200
            propertyNames:
              maxLength: 40
              minLength: 1
            type: object
            maxProperties: 20
          - type: 'null'
          title: Metadata
          description: The metadata attached when this object was created, unchanged.
            `null` when none was attached. Rarely, a `.created` webhook can be published
            before the create request finishes committing, and that one event reports
            `null`; every later event and every read of the object carries the metadata.
      type: object
      required:
      - id
      - amount
      - direction
      - status
      - destination_address
      - destination_payment_rail
      title: GetCryptoTransactionResponse
    GetUSDCTransactionResponse:
      properties:
        id:
          type: string
          title: Id
          description: Identifier of the transaction, as returned when you created
            it.
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: Size of the transaction, in USD.
        destination_address:
          type: string
          title: Destination Address
          description: On-chain address the funds were sent to.
        destination_payment_rail:
          $ref: '#/components/schemas/ExtBridgePaymentRail'
          description: Blockchain network the funds moved over.
        destination_tx_hash:
          anyOf:
          - type: string
          - type: 'null'
          title: Destination Tx Hash
          description: On-chain hash of the transfer. `null` until the transaction
            settles.
        destination_address_nickname:
          anyOf:
          - type: string
          - type: 'null'
          title: Destination Address Nickname
          description: Nickname of the contact that owns the destination address.
            `null` when the address is not attached to a contact.
      type: object
      required:
      - id
      - amount
      - destination_address
      - destination_payment_rail
      title: GetUSDCTransactionResponse
    HTTPValidationError:
      properties:
        detail:
          items:
            $ref: '#/components/schemas/ValidationError'
          type: array
          title: Detail
          description: One entry per field that failed validation. Returned with `422
            Unprocessable Entity` when the request body or parameters do not match
            the schema; other errors use the `code` / `message` / `debug_message`
            shape described above.
      type: object
      title: HTTPValidationError
    HempActivities:
      type: string
      enum:
      - cultivation
      - manufacturing_products
      - processing
      - retail_sale
      - other
      title: HempActivities
    HempCbdDueDiligence:
      properties:
        activities:
          items:
            $ref: '#/components/schemas/HempActivities'
          type: array
          title: Activities
          description: Does your business engage in any of the following activities?
        operation_states:
          items:
            $ref: '#/components/schemas/StateCode'
          type: array
          title: Operation States
          description: Please list the states in which you do business and/or operate
            in.
        cultivation:
          anyOf:
          - $ref: '#/components/schemas/CannabisCultivatorDueDiligence'
          - type: 'null'
          description: Answers about the hemp cultivation operation. Applies only
            when `activities` includes `cultivation`.
        manufacturing_products:
          anyOf:
          - $ref: '#/components/schemas/CannabisProcessorManufacturerDueDiligence'
          - type: 'null'
          description: Answers about hemp product manufacturing. Applies only when
            `activities` includes `manufacturing_products`.
        processing:
          anyOf:
          - $ref: '#/components/schemas/CannabisProcessorManufacturerDueDiligence'
          - type: 'null'
          description: Answers about hemp processing. Applies only when `activities`
            includes `processing`.
        retail_sale:
          anyOf:
          - $ref: '#/components/schemas/CannabisRetailSaleDueDiligence'
          - type: 'null'
          description: Answers about hemp retail sale. Applies only when `activities`
            includes `retail_sale`.
      type: object
      required:
      - activities
      - operation_states
      title: HempCbdDueDiligence
    HempCultivationLocation:
      properties:
        name:
          type: string
          title: Name
          description: Name of the cultivation location.
        physical_address:
          type: string
          title: Physical Address
          description: Physical address of the cultivation location.
        date_of_last_harvest:
          type: string
          format: date
          title: Date Of Last Harvest
          description: Date of the most recent harvest at this location.
        state_license:
          type: boolean
          title: State License
          description: Whether this location holds a state cultivation license.
      type: object
      required:
      - name
      - physical_address
      - date_of_last_harvest
      - state_license
      title: HempCultivationLocation
    Holding:
      properties:
        securityId:
          anyOf:
          - type: string
          - type: 'null'
          title: Securityid
          description: Security identifier used to look up the closing price. Required
            together with `securityIdType` unless you provide `symbol`.
        securityIdType:
          anyOf:
          - $ref: '#/components/schemas/customer_api__v1__models__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-Output'
          - 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 or market symbol. 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`, per [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339.html#section-5.6).
        units:
          anyOf:
          - type: number
          - type: 'null'
          title: Units
          description: 'Quantity for security-based holdings: shares for stocks and
            mutual funds, face value for bonds, contracts for options. Required when
            the holding involves a security.'
        marketValue:
          type: number
          title: Marketvalue
          description: Market value at the time the data was retrieved.
        faceValue:
          anyOf:
          - type: number
          - type: 'null'
          title: Facevalue
          description: Required for bonds. Face value at the time the data was 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 of the holding, if different from the account's currency.
      type: object
      required:
      - marketValue
      title: Holding
      description: A holding in an investment account.
    HoldingEntityType:
      type: string
      enum:
      - businesses
      - individuals
      - investors
      title: HoldingEntityType
    HoldingSubType:
      type: string
      enum:
      - CASH
      - MONEYMARKET
      title: HoldingSubType
      description: The subtype of an investment holding. Set `holdingSubType` to `CASH`
        or `MONEYMARKET` to indicate cash-type holdings.
    HoldingType-Input:
      type: string
      enum:
      - investor
      - real_estate
      title: HoldingType
    HoldingType-Output:
      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'
    HoldingsDueDiligence:
      properties:
        holding_type:
          $ref: '#/components/schemas/HoldingType-Input'
          description: Select holding type.
        holding_entity_type:
          items:
            $ref: '#/components/schemas/HoldingEntityType'
          type: array
          title: Holding Entity Type
          description: Was this holding company established to protect properties
            acquired by a business, investors, or an individual?
        real_estate:
          anyOf:
          - $ref: '#/components/schemas/RealEstateHoldingDueDiligence'
          - type: 'null'
          description: Answers about the real-estate holdings. Applies only when `holding_type`
            is `real_estate`.
        investors:
          anyOf:
          - $ref: '#/components/schemas/InvestorsDueDiligence'
          - type: 'null'
          description: Answers about the investors behind the holding company. Applies
            only when `holding_entity_type` includes `investors`.
      type: object
      required:
      - holding_type
      - holding_entity_type
      title: HoldingsDueDiligence
    HoldingsEddFormRequest:
      properties:
        form_type:
          type: string
          const: holdings
          title: Form Type
          description: Selects the holding-company form. Must be `holdings`.
        form_data:
          $ref: '#/components/schemas/HoldingsDueDiligence'
          description: Answers to the holding-company form. Fetch the form's schema
            first, and answer every element it marks required.
      type: object
      required:
      - form_type
      - form_data
      title: HoldingsEddFormRequest
    Identifier:
      type: string
      maxLength: 256
      title: Identifier
      description: Value for a unique identifier.
    Industry:
      type: string
      enum:
      - accounting_bookkeeping
      - accounting_bookkeeping_tax_preparation
      - advertising
      - art
      - art_theater
      - art_painting
      - art_sculpting
      - beauty_cosmetic_services
      - biotech
      - business_management
      - cafeterias_grill_buffets_buffets
      - caterers
      - cleaning_services
      - construction
      - consulting
      - consulting_strategy
      - consulting_business
      - consulting_financial
      - crypto
      - crypto_exchange
      - crypto_investments
      - crypto_daos
      - crypto_nfts
      - crypto_mining
      - saas
      - design
      - design_web
      - design_digital
      - design_interior
      - design_fashion
      - drinking_places_alcoholic_beverages
      - ecommerce
      - ecommerce_amazon
      - ecommerce_ebay
      - ecommerce_shopify
      - education
      - education_university
      - education_financial
      - energy
      - energy_solar
      - energy_wind
      - energy_refining
      - energy_fuel
      - entertainment
      - entertainment_television
      - entertainment_film
      - entertainment_music
      - entertainment_print
      - financial_services
      - financial_services_money_services_business
      - financial_services_payment_processor
      - financial_services_fintech
      - financial_services_consumer_commercial_lending
      - fitness
      - food
      - food_restaurant_food_truck
      - food_manufacturing
      - food_service_contractors
      - full_service_restaurants
      - hardware
      - health_services
      - health_services_clinic
      - health_services_telehealth
      - health_services_holistic_services
      - health_services_healthcare_tech
      - holding
      - insurance
      - investment
      - investment_venture_capital
      - legal
      - legal_attorney
      - legal_paralegal
      - limited_service_restaurants
      - marketing
      - marketplace
      - merchant_banking
      - merges_and_acquisitions
      - mining
      - mobile_food_services
      - nonprofit
      - other
      - private_equity
      - professional_services
      - professional_services_architect
      - professional_services_attorney
      - professional_services_doctor
      - professional_services_engineer
      - professional_services_paralegal
      - real_estate
      - real_estate_short_term_rental
      - real_estate_development
      - real_estate_investing
      - real_estate_property_management
      - recruiting
      - research
      - research_medical
      - research_scientific
      - research_market
      - retail_wholesale
      - security
      - security_private
      - security_infosec
      - shipping_warehousing
      - sports_team
      - support_services
      - snack_and_nonalcoholic_beverage_bars
      - software
      - software_b2b
      - software_developer_tools
      - software_enterprise_software
      - technology
      - technology_agriculture
      - technology_artificial_intelligence
      - technology_augmented_reality
      - technology_community
      - technology_consumer
      - technology_drones
      - technology_government
      - technology_it_telecom
      - technology_robotics
      - technology_virtual_reality
      - transportation
      - transportation_limo_car_service
      - transportation_ride_share
      - travel
      - travel_agency
      - travel_hotel_reservations
      - waste_management
      - cannabis
      title: Industry
    Initiator:
      properties:
        email:
          anyOf:
          - type: string
          - type: 'null'
          title: Email
          description: Email address of the person who acted. `null` when no person
            acted, such as an API key with no user behind it or a Meow system job.
        name:
          anyOf:
          - type: string
          - type: 'null'
          title: Name
          description: Full name of the Meow user who acted, as it stood when they
            acted. `null` when no Meow user acted.
        public_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Public Id
          description: Identifier of the user who acted. `null` when no Meow user
            acted.
        api_key_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Api Key Id
          description: Identifier of the API key used. `null` when no API key was
            used.
        api_key_nickname:
          anyOf:
          - type: string
          - type: 'null'
          title: Api Key Nickname
          description: Nickname of the API key used. `null` when no key was used,
            or the key has no nickname.
        identity_type:
          $ref: '#/components/schemas/InitiatorIdentityType'
          description: Credential the action came in on.
          default: web_user
        user_id:
          anyOf:
          - type: integer
          - type: 'null'
          title: User Id
          description: Meow-internal numeric id of the user who acted. Prefer `public_id`,
            which is the identifier the API accepts elsewhere.
        display:
          $ref: '#/components/schemas/DisplayInitiator'
          description: Pre-rendered presentation of this initiator, so every surface
            names them the same way.
          readOnly: true
      type: object
      required:
      - display
      title: Initiator
    InitiatorIdentityType:
      type: string
      enum:
      - web_user
      - user_api_key
      - entity_api_key
      - mcp_oauth
      - cli_key
      - partner_api_key
      - vendor_link
      - system
      title: InitiatorIdentityType
      x-enum-varnames:
      - web_user
      - user_api_key
      - entity_api_key
      - mcp_oauth
      - cli_key
      - partner_api_key
      - vendor_link
      - system
    IntegrationBillPaymentSyncStatus:
      type: string
      enum:
      - synced
      - requires_sync
      - sync_complete
      - sync_failed
      title: IntegrationBillPaymentSyncStatus
      description: Tracks the sync status of a bill payment with external accounting
        systems.
      x-enum-varnames:
      - synced
      - requires_sync
      - sync_complete
      - sync_failed
    IntegrationBillSyncStatus:
      type: string
      enum:
      - synced
      - requires_sync
      - sync_complete
      - sync_failed
      title: IntegrationBillSyncStatus
      description: Tracks the sync status of a bill with external accounting systems.
      x-enum-varnames:
      - synced
      - requires_sync
      - sync_complete
      - sync_failed
    IntegrationVendor:
      type: string
      enum:
      - QuickBooks
      - Xero
      - NetSuite
      - Puzzle
      - Ramp
      - Stripe
      - Wave
      - Relay
      - Mastercard
      title: IntegrationVendor
    IntermediaryBank:
      properties:
        name:
          type: string
          maxLength: 35
          minLength: 1
          title: Name
          description: Name of the intermediary bank.
        routing_number:
          type: string
          maxLength: 9
          minLength: 9
          title: Routing Number
          description: 9-digit ABA routing number of the intermediary bank.
        address:
          $ref: '#/components/schemas/MeowApiAddress'
          description: Postal address of the intermediary bank.
      type: object
      required:
      - name
      - routing_number
      - address
      title: IntermediaryBank
      description: 'Correspondent bank a wire is routed through before it reaches
        the

        beneficiary''s bank.'
    IntermediaryBankSWIFT:
      properties:
        swift:
          type: string
          title: Swift
          description: BIC/SWIFT code of the intermediary bank.
        bank_name:
          type: string
          title: Bank Name
          description: Name of the intermediary bank.
        bank_address:
          type: string
          title: Bank Address
          description: Postal address of the intermediary bank, as a single line.
      type: object
      required:
      - swift
      - bank_name
      - bank_address
      title: IntermediaryBankSWIFT
    InternationalBeneficiaryType:
      type: string
      enum:
      - individual
      - company
      title: InternationalBeneficiaryType
      x-enum-varnames:
      - individual
      - company
    InternationalDueDiligence:
      properties:
        business_overview:
          type: string
          title: Business Overview
          description: Please provide a general overview of your business and what
            it does.
        revenue_source:
          type: string
          title: Revenue Source
          description: How does the business generate revenue? If not yet generating
            revenue, describe your planned revenue model.
        product_service_description:
          type: string
          title: Product Service Description
          description: Please list all products and services offered, including key
            features of each.
        customer_base:
          type: string
          title: Customer Base
          description: Please describe your customer base, including the geographic
            markets you do business in.
        source_of_funds:
          type: string
          title: Source Of Funds
          description: Please describe the source of funds that will be used to fund
            the Meow account.
        multiple_locations:
          type: boolean
          title: Multiple Locations
          description: Does the entity have multiple business locations?
        locations_list:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Locations List
          description: Please list all business locations. Applies only when `multiple_locations`
            is `true`.
        ownership_structure:
          type: string
          title: Ownership Structure
          description: Please provide an org chart, or a written description of your
            ownership and management structure (parent/subsidiary relationships, key
            executives, beneficial owners).
        account_purpose:
          type: string
          title: Account Purpose
          description: What is the purpose of the Meow account you're requesting,
            and what specific need will it serve?
        anticipated_account_use:
          type: string
          title: Anticipated Account Use
          description: Please describe how the account will be used (which business
            operations it will support).
        anticipated_day_one_balance:
          type: string
          title: Anticipated Day One Balance
          description: What is your anticipated initial deposit amount?
        requires_financial_services_license:
          type: boolean
          title: Requires Financial Services License
          description: Is the business required to hold any financial services, money
            transmission, or similar licensing/registration?
        incoming_funds_flow:
          type: string
          title: Incoming Funds Flow
          description: 'Please describe your incoming funds flow: the types of counterparties
            who send you funds (e.g., customers, vendors, affiliates, marketplaces,
            payment processors) and by what method (wire, ACH, card, etc.).'
        outgoing_funds_flow:
          type: string
          title: Outgoing Funds Flow
          description: 'Please describe your outgoing funds flow: the types of counterparties
            you send funds to (e.g., suppliers, employees, contractors, affiliates)
            and by what method.'
        international_transactions_description:
          type: string
          title: International Transactions Description
          description: What is the purpose of your international transactions?
        international_transactions_countries:
          items:
            $ref: '#/components/schemas/CountryCodeAlpha2'
          type: array
          title: International Transactions Countries
          description: Which specific countries are involved in your international
            transactions?
        aml_sanctions_compliance_policy:
          type: boolean
          title: Aml Sanctions Compliance Policy
          description: Do you have an AML/Sanctions Compliance Policy in place?
        sanctions_screening_process:
          anyOf:
          - type: string
          - type: 'null'
          title: Sanctions Screening Process
          description: Please describe your sanctions screening process (OFAC, EU,
            UK, etc.). Applies only when `aml_sanctions_compliance_policy` is `false`.
        subject_to_regulatory_actions:
          type: boolean
          title: Subject To Regulatory Actions
          description: Has the entity been subject to any regulatory actions related
            to the services it offers?
        regulatory_actions_explanation:
          anyOf:
          - type: string
          - type: 'null'
          title: Regulatory Actions Explanation
          description: Please explain. Applies only when `subject_to_regulatory_actions`
            is `true`.
        expected_activity:
          $ref: '#/components/schemas/ExpectedActivity'
          description: Transaction activity you expect, broken down by region, rail,
            and direction.
        attestation:
          type: boolean
          title: Attestation
          description: I confirm that all information provided in this form is true
            and accurate to the best of my knowledge.
          default: false
      type: object
      required:
      - business_overview
      - revenue_source
      - product_service_description
      - customer_base
      - source_of_funds
      - multiple_locations
      - ownership_structure
      - account_purpose
      - anticipated_account_use
      - anticipated_day_one_balance
      - requires_financial_services_license
      - incoming_funds_flow
      - outgoing_funds_flow
      - international_transactions_description
      - international_transactions_countries
      - aml_sanctions_compliance_policy
      - subject_to_regulatory_actions
      - expected_activity
      title: InternationalDueDiligence
    InternationalEddFormRequest:
      properties:
        form_type:
          type: string
          const: international
          title: Form Type
          description: Selects the international form. Must be `international`.
        form_data:
          $ref: '#/components/schemas/InternationalDueDiligence'
          description: Answers to the international form. Fetch the form's schema
            first, and answer every element it marks required.
      type: object
      required:
      - form_type
      - form_data
      title: InternationalEddFormRequest
    InternationalMonthlyPaymentCount:
      type: string
      enum:
      - ten_or_fewer
      - from_11_to_20
      - from_21_to_30
      - from_31_to_40
      - over_40
      title: InternationalMonthlyPaymentCount
      x-enum-varnames:
      - ten_or_fewer
      - from_11_to_20
      - from_21_to_30
      - from_31_to_40
      - over_40
    InternationalMonthlyVolume:
      type: string
      enum:
      - less_than_10k
      - from_10k_to_25k
      - from_25k_to_100k
      - from_100k_to_500k
      - over_500k
      title: InternationalMonthlyVolume
      x-enum-varnames:
      - less_than_10k
      - from_10k_to_25k
      - from_25k_to_100k
      - from_100k_to_500k
      - over_500k
    InternationalPayment:
      properties:
        handle:
          type: string
          title: Handle
          description: The handle identifying the international payment.
        status:
          $ref: '#/components/schemas/InternationalPaymentStatus'
          description: The current status of the payment.
        entity_public_id:
          type: string
          format: uuid
          title: Entity Public Id
          description: The ID of the business that was debited.
        funding_account:
          anyOf:
          - $ref: '#/components/schemas/BankingAccountReference'
          - type: 'null'
          description: The Meow account the payment was funded from.
        contact_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Contact Id
          description: The contact that was paid.
        recipient_account_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Recipient Account Name
          description: The name on the destination account.
        destination_amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Destination Amount
          description: The amount the recipient receives.
        destination_currency:
          $ref: '#/components/schemas/Iso4217Code'
          description: The currency the recipient is paid in.
        source_debit_amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Source Debit Amount
          description: The US dollars converted to fund the payment, before the fee.
        source_currency:
          $ref: '#/components/schemas/Iso4217Code'
          description: The currency the payment was funded in.
        fee_amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Fee Amount
          description: The fee, in US dollars.
        total_debit_amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Total Debit Amount
          description: The US dollars debited in total, fee included.
        purpose:
          anyOf:
          - type: string
          - type: 'null'
          title: Purpose
          description: Why the money was sent.
        failure_reason:
          anyOf:
          - type: string
          - type: 'null'
          title: Failure Reason
          description: Why the payment failed, when it did.
        created_time:
          type: string
          format: date-time
          title: Created Time
          description: When the payment was created.
        confirmation_available:
          type: boolean
          title: Confirmation Available
          description: Whether a confirmation document can be downloaded.
        bank_details:
          anyOf:
          - $ref: '#/components/schemas/InternationalPaymentBankDetails'
          - type: 'null'
          description: Where the money was sent.
        metadata:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 200
            propertyNames:
              maxLength: 40
              minLength: 1
            type: object
            maxProperties: 20
          - type: 'null'
          title: Metadata
          description: The metadata attached when this object was created, unchanged.
            `null` when none was attached. Rarely, a `.created` webhook can be published
            before the create request finishes committing, and that one event reports
            `null`; every later event and every read of the object carries the metadata.
      type: object
      required:
      - handle
      - status
      - entity_public_id
      - funding_account
      - contact_id
      - recipient_account_name
      - destination_amount
      - destination_currency
      - source_debit_amount
      - source_currency
      - fee_amount
      - total_debit_amount
      - purpose
      - failure_reason
      - created_time
      - confirmation_available
      - bank_details
      title: InternationalPayment
      description: 'The provider-neutral view of one international payment. Amounts
        follow the

        domain split: `destination_amount` is what the recipient receives,

        `source_debit_amount` is the US dollars converted before the fee, and

        `total_debit_amount` is what actually left the funding account.'
    InternationalPaymentBankDetails:
      properties:
        bank_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Bank Name
          description: The recipient's bank.
        bank_country_code:
          anyOf:
          - type: string
          - type: 'null'
          title: Bank Country Code
          description: ISO 3166-1 alpha-2 country code of the recipient's bank.
        account_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Account Number
          description: The recipient's account number, where one applies.
        iban:
          anyOf:
          - type: string
          - type: 'null'
          title: Iban
          description: The recipient's IBAN, where the corridor uses one.
        swift_code:
          anyOf:
          - type: string
          - type: 'null'
          title: Swift Code
          description: The recipient bank's BIC/SWIFT.
        account_routing_type1:
          anyOf:
          - type: string
          - type: 'null'
          title: Account Routing Type1
          description: The kind of the first routing code, such as SortCode.
        account_routing_value1:
          anyOf:
          - type: string
          - type: 'null'
          title: Account Routing Value1
          description: The first routing code.
        account_routing_type2:
          anyOf:
          - type: string
          - type: 'null'
          title: Account Routing Type2
          description: The kind of the second routing code, where one applies.
        account_routing_value2:
          anyOf:
          - type: string
          - type: 'null'
          title: Account Routing Value2
          description: The second routing code, where one applies.
      type: object
      required:
      - bank_name
      - bank_country_code
      - account_number
      - iban
      - swift_code
      - account_routing_type1
      - account_routing_value1
      - account_routing_type2
      - account_routing_value2
      title: InternationalPaymentBankDetails
    InternationalPaymentMethod:
      type: string
      enum:
      - SWIFT
      - LOCAL
      title: InternationalPaymentMethod
      x-enum-varnames:
      - SWIFT
      - LOCAL
    InternationalPaymentPurpose:
      type: string
      enum:
      - supplier_payments
      - payroll
      - customer_refunds
      - other
      title: InternationalPaymentPurpose
      x-enum-varnames:
      - supplier_payments
      - payroll
      - customer_refunds
      - other
    InternationalPaymentPurposeCode:
      type: string
      enum:
      - advertising
      - advisor_fees
      - construction
      - education
      - exports
      - family
      - fund_investment
      - goods
      - hotel
      - insurance_claims
      - insurance_premium
      - loan_repayment
      - medical
      - other_fees
      - property_purchase
      - property_rental
      - royalties
      - services
      - tax
      - transfer
      - travel
      - utilities
      - business_insurance
      - delivery
      - office
      - share_investment
      - transportation
      - ACM
      - AES
      - AFA
      - AFL
      - ALW
      - ATS
      - BON
      - CCP
      - CEA
      - CEL
      - CHC
      - CIN
      - COM
      - COP
      - CRP
      - DCP
      - DIV
      - DLA
      - DLF
      - DLL
      - DOE
      - DSA
      - DSF
      - DSL
      - EDU
      - EMI
      - EOS
      - FAM
      - FDA
      - FDL
      - FIA
      - FIL
      - FIS
      - FSA
      - FSL
      - GDE
      - GDI
      - GMS
      - GOS
      - GRI
      - IFS
      - IGD
      - IGT
      - IID
      - INS
      - IOD
      - IOL
      - IPC
      - IPO
      - IRP
      - IRW
      - ISH
      - ISL
      - ISS
      - ITS
      - LAS
      - LDL
      - LDS
      - LEA
      - LEL
      - LIP
      - LLA
      - LLL
      - LNC
      - LND
      - MCR
      - MWI
      - MWO
      - MWP
      - OAT
      - OTS
      - OVT
      - PEN
      - PIN
      - PIP
      - PMS
      - POR
      - POS
      - PPA
      - PPL
      - PRP
      - PRR
      - PRS
      - PRW
      - RDS
      - RFS
      - RLS
      - RNT
      - SAA
      - SAL
      - SCO
      - SLA
      - SLL
      - STR
      - STS
      - SVI
      - SVO
      - SVP
      - TCP
      - TCR
      - TCS
      - TKT
      - TOF
      - TTS
      - UTL
      title: InternationalPaymentPurposeCode
      x-enum-varnames:
      - advertising
      - advisor_fees
      - construction
      - education
      - exports
      - family
      - fund_investment
      - goods
      - hotel
      - insurance_claims
      - insurance_premium
      - loan_repayment
      - medical
      - other_fees
      - property_purchase
      - property_rental
      - royalties
      - services
      - tax
      - transfer
      - travel
      - utilities
      - business_insurance
      - delivery
      - office
      - share_investment
      - transportation
      - ACM
      - AES
      - AFA
      - AFL
      - ALW
      - ATS
      - BON
      - CCP
      - CEA
      - CEL
      - CHC
      - CIN
      - COM
      - COP
      - CRP
      - DCP
      - DIV
      - DLA
      - DLF
      - DLL
      - DOE
      - DSA
      - DSF
      - DSL
      - EDU
      - EMI
      - EOS
      - FAM
      - FDA
      - FDL
      - FIA
      - FIL
      - FIS
      - FSA
      - FSL
      - GDE
      - GDI
      - GMS
      - GOS
      - GRI
      - IFS
      - IGD
      - IGT
      - IID
      - INS
      - IOD
      - IOL
      - IPC
      - IPO
      - IRP
      - IRW
      - ISH
      - ISL
      - ISS
      - ITS
      - LAS
      - LDL
      - LDS
      - LEA
      - LEL
      - LIP
      - LLA
      - LLL
      - LNC
      - LND
      - MCR
      - MWI
      - MWO
      - MWP
      - OAT
      - OTS
      - OVT
      - PEN
      - PIN
      - PIP
      - PMS
      - POR
      - POS
      - PPA
      - PPL
      - PRP
      - PRR
      - PRS
      - PRW
      - RDS
      - RFS
      - RLS
      - RNT
      - SAA
      - SAL
      - SCO
      - SLA
      - SLL
      - STR
      - STS
      - SVI
      - SVO
      - SVP
      - TCP
      - TCR
      - TCS
      - TKT
      - TOF
      - TTS
      - UTL
    InternationalPaymentRequestStatus:
      type: string
      enum:
      - processing
      - pending_approval
      title: InternationalPaymentRequestStatus
      x-enum-varnames:
      - processing
      - pending_approval
    InternationalPaymentStatus:
      type: string
      enum:
      - pending
      - sent
      - completed
      - returned
      - rejected
      - failed
      - canceled
      title: InternationalPaymentStatus
      x-enum-varnames:
      - pending
      - sent
      - completed
      - returned
      - rejected
      - failed
      - canceled
    InternationalPaymentsEligibility:
      properties:
        monthly_volume:
          $ref: '#/components/schemas/InternationalMonthlyVolume'
          description: How much you expect to send internationally in a typical month.
          examples:
          - from_25k_to_100k
        monthly_payment_count:
          $ref: '#/components/schemas/InternationalMonthlyPaymentCount'
          description: How many international payments you expect to make in a typical
            month.
          examples:
          - from_11_to_20
        purposes:
          anyOf:
          - items:
              $ref: '#/components/schemas/InternationalPaymentPurpose'
            type: array
          - type: 'null'
          title: Purposes
          description: What you will use international payments for. Include `other`
            and describe it in `other_purpose` if none of the listed purposes fit.
          examples:
          - - supplier_payments
        other_purpose:
          anyOf:
          - type: string
            maxLength: 1000
            minLength: 1
          - type: 'null'
          title: Other Purpose
          description: Describe your use of international payments when `purposes`
            includes `other`.
          examples:
          - Paying coffee growers in East Africa
        countries_served:
          items:
            type: string
          type: array
          minItems: 1
          title: Countries Served
          description: The destination countries you plan to send to, as ISO 3166-1
            alpha-2 codes. This drives the eligibility review, so list every country
            you expect to pay.
          examples:
          - - GB
            - DE
            - KE
      type: object
      required:
      - monthly_volume
      - monthly_payment_count
      - countries_served
      title: InternationalPaymentsEligibility
    InternationalQuoteFixedSide:
      type: string
      enum:
      - recipient_amount
      - source_amount
      title: InternationalQuoteFixedSide
      x-enum-varnames:
      - recipient_amount
      - source_amount
    InternationalQuoteRequest:
      properties:
        contact_id:
          type: string
          format: uuid
          title: Contact Id
          description: Contact you intend to pay. The contact must already have international
            payment details saved, because the destination decides which rail prices
            the conversion.
        recipient_currency:
          $ref: '#/components/schemas/Iso4217Code'
          description: Currency the recipient would be paid in.
        recipient_amount:
          anyOf:
          - type: number
            exclusiveMinimum: 0.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          - type: 'null'
          title: Recipient Amount
          description: Price the conversion from what the recipient must receive.
            Provide exactly one of `recipient_amount` or `source_amount`.
        source_amount:
          anyOf:
          - type: number
            exclusiveMinimum: 0.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          - type: 'null'
          title: Source Amount
          description: Price the conversion from the US dollars you want converted,
            before the fee. Provide exactly one of `recipient_amount` or `source_amount`.
      type: object
      required:
      - contact_id
      - recipient_currency
      title: InternationalQuoteRequest
    InternationalQuoteResponse:
      properties:
        contact_id:
          type: string
          format: uuid
          title: Contact Id
          description: Contact the quote was priced for.
        recipient_amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Recipient Amount
          description: How much the recipient would receive.
        recipient_currency:
          $ref: '#/components/schemas/Iso4217Code'
          description: Currency the recipient would be paid in.
        source_amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Source Amount
          description: US dollars converted to fund the payment, before the fee.
        rate:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Rate
          description: Rate this conversion was priced at. `source_amount` and `recipient_amount`
            are the figures to reconcile against, since rounding is applied to both.
        fee:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Fee
          description: What the conversion would cost you, in US dollars.
        total_debit:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Total Debit
          description: US dollars that would leave the account in total, fee included.
            This is the figure your approval rules are evaluated against.
        fixed_side:
          $ref: '#/components/schemas/InternationalQuoteFixedSide'
          description: Which leg you held fixed, and so the only one of the two amounts
            that comes back exactly as you sent it.
      type: object
      required:
      - contact_id
      - recipient_amount
      - recipient_currency
      - source_amount
      - rate
      - fee
      - total_debit
      - fixed_side
      title: InternationalQuoteResponse
    InternationalRequirementAlternativeGroup:
      type: string
      enum:
      - destination_account
      title: InternationalRequirementAlternativeGroup
      x-enum-varnames:
      - destination_account
    InternationalRequirementField:
      properties:
        field:
          $ref: '#/components/schemas/InternationalRequirementFieldName'
          description: Which field of the contact's `international` details.
        pattern:
          anyOf:
          - type: string
          - type: 'null'
          title: Pattern
          description: Regular expression the value must match. Absent when the field
            is required but has no single format, which happens when two ways of funding
            the payment disagree on the format.
        fixed_value:
          anyOf:
          - type: string
          - type: 'null'
          title: Fixed Value
          description: The only value this corridor accepts for the field. Send it
            verbatim.
        alternative_group:
          anyOf:
          - $ref: '#/components/schemas/InternationalRequirementAlternativeGroup'
          - type: 'null'
          description: Fields with the same value are alternatives. Supply at least
            one field from that group.
      type: object
      required:
      - field
      title: InternationalRequirementField
    InternationalRequirementFieldName:
      type: string
      enum:
      - first_name
      - last_name
      - company_name
      - payment_method
      - beneficiary_type
      - currency
      - address.street_line_1
      - address.city
      - address.state
      - address.postal_code
      - address.country
      - bank_name
      - bank_country
      - bank_address
      - account_number
      - iban
      - bic_swift
      - routing_code_type
      - routing_code_value
      - routing_code_type_2
      - routing_code_value_2
      title: InternationalRequirementFieldName
      description: 'Field paths into the `international` object of a create or update
        contact

        request. A dotted value addresses a nested field: `address.city` is `city`

        inside `international.address`.'
      x-enum-varnames:
      - first_name
      - last_name
      - company_name
      - payment_method
      - beneficiary_type
      - currency
      - address_street_line_1
      - address_city
      - address_state
      - address_postal_code
      - address_country
      - bank_name
      - bank_country
      - bank_address
      - account_number
      - iban
      - bic_swift
      - routing_code_type
      - routing_code_value
      - routing_code_type_2
      - routing_code_value_2
    InternationalRequirements:
      properties:
        recipient_currency:
          $ref: '#/components/schemas/Iso4217Code'
          description: Currency the requirements were resolved for.
        bank_country:
          $ref: '#/components/schemas/CountryCodeAlpha2'
          description: Destination bank country the requirements were resolved for.
        supported:
          type: boolean
          title: Supported
          description: Whether this business can pay that currency into that country
            at all. When `false`, `required_fields` is empty.
        unsupported_reason:
          anyOf:
          - type: string
          - type: 'null'
          title: Unsupported Reason
          description: Why the corridor is unavailable, when `supported` is false.
        required_fields:
          items:
            $ref: '#/components/schemas/InternationalRequirementField'
          type: array
          title: Required Fields
          description: 'Fields you must supply. Fields in the same alternative group
            are exceptions: supply at least one from that group. The list is the union
            across the ways your accounts can fund the payment, so a contact carrying
            all of them is payable from any of them.'
      type: object
      required:
      - recipient_currency
      - bank_country
      - supported
      - required_fields
      title: InternationalRequirements
    InternationalRoutingCodeType:
      type: string
      enum:
      - SortCode
      - ABA
      - BSBCode
      - InstitutionNo
      - BankCode
      - BranchCode
      - Clabe
      - Cnaps
      - Ifsc
      title: InternationalRoutingCodeType
      x-enum-varnames:
      - SortCode
      - ABA
      - BSBCode
      - InstitutionNo
      - BankCode
      - BranchCode
      - Clabe
      - Cnaps
      - Ifsc
    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:
          title: Availablecashbalance
          description: Cash available for withdrawal or investment. Null unless the
            API key has the `accounts:balances` scope.
          anyOf:
          - type: number
          - type: 'null'
        currentValue:
          title: Currentvalue
          description: Total current value of the account including all holdings.
            Null unless the API key has the `accounts:balances` scope.
          anyOf:
          - type: number
          - type: 'null'
        holdings:
          anyOf:
          - items:
              $ref: '#/components/schemas/Holding'
            type: array
          - type: 'null'
          title: Holdings
          description: List of securities and cash positions in the account. Null
            unless the API key has the `accounts:balances` scope.
      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
            the account. Transactions with status `PENDING` and `POSTED` 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 the transaction was posted to the account.
            When omitted, `transactionTimestamp` may be used instead. Absent for `PENDING`
            transactions and required for `POSTED` transactions.
        transactionTimestamp:
          $ref: '#/components/schemas/Timestamp'
          description: The date and time the transaction was recorded.
        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 an MCC or SIC code.
        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.
        currency:
          $ref: '#/components/schemas/Currency'
          description: The ISO 4217 currency `amount` is denominated in.
        foreignAmount:
          anyOf:
          - type: number
          - type: 'null'
          title: Foreignamount
          description: The amount of money in the foreign currency. When set, `foreignCurrency`
            is also 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
      - currency
      - 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
    InvestmentsDueDiligence:
      properties:
        overview:
          type: string
          title: Overview
          description: Provide an overview of business activities and market focus.
            Make sure to include industry and area focuses as applicable.
        international_investments:
          type: boolean
          title: International Investments
          description: Do you invest in Businesses outside of the US?
        countries_invested:
          anyOf:
          - items:
              $ref: '#/components/schemas/CountryCodeAlpha2'
            type: array
          - type: 'null'
          title: Countries Invested
          description: Which non-US countries are/will you have investments in? Applies
            only when `international_investments` is `true`.
        registered_sec:
          type: boolean
          title: Registered Sec
          description: Are you or your firm registered with the SEC?
        current_portfolio_value:
          anyOf:
          - type: number
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Current Portfolio Value
          description: What is the current value of your portfolio?
        works_with_investors:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Works With Investors
          description: Do you work with investors?
        investors:
          anyOf:
          - $ref: '#/components/schemas/InvestorsDueDiligence'
          - type: 'null'
          description: Answers about the investors you work with. Applies only when
            `works_with_investors` is `true`.
      type: object
      required:
      - overview
      - international_investments
      - registered_sec
      - current_portfolio_value
      title: InvestmentsDueDiligence
    InvestmentsEddFormRequest:
      properties:
        form_type:
          type: string
          const: investments
          title: Form Type
          description: Selects the investment form. Must be `investments`.
        form_data:
          $ref: '#/components/schemas/InvestmentsDueDiligence'
          description: Answers to the investment form. Fetch the form's schema first,
            and answer every element it marks required.
      type: object
      required:
      - form_type
      - form_data
      title: InvestmentsEddFormRequest
    InvestorType:
      type: string
      enum:
      - accredited_investors
      - qualified_purchasers
      - institutional_firms
      title: InvestorType
    InvestorsDueDiligence:
      properties:
        type_of_investors:
          items:
            $ref: '#/components/schemas/InvestorType'
          type: array
          title: Type Of Investors
          description: Which types of investors do you work with?
        international_investors:
          type: boolean
          title: International Investors
          description: Do you have international investors?
        investor_countries:
          anyOf:
          - items:
              $ref: '#/components/schemas/CountryCodeAlpha2'
            type: array
          - type: 'null'
          title: Investor Countries
          description: Which countries do you accept investors from? Applies only
            when `international_investors` is `true`.
        investor_verification_process:
          type: string
          title: Investor Verification Process
          description: How do you verify the identities of your investors? Include
            what information is collected and how it is verified.
        additional_investors_due_diligence:
          anyOf:
          - type: string
          - type: 'null'
          title: Additional Investors Due Diligence
          description: Describe additional due diligence or requirements for investors
            as applicable.
      type: object
      required:
      - type_of_investors
      - international_investors
      - investor_verification_process
      title: InvestorsDueDiligence
    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.
        status:
          $ref: '#/components/schemas/InvoiceStatus'
          description: The current status of the invoice.
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: The total amount of the invoice.
        amount_paid:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount Paid
          description: The amount that has been paid on the invoice.
        amount_due:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount Due
          description: The remaining amount due on the invoice.
        invoice_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Invoice Number
          description: The public-facing invoice number.
        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 method types 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 collection 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.
        paid_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: The timestamp when the invoice was fully paid.
        canceled_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: The timestamp when the invoice was canceled.
        sent_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: The timestamp when the invoice was sent.
        expired_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: The timestamp when the invoice expired.
      type: object
      required:
      - id
      - customer_id
      - status
      - amount
      - amount_paid
      - amount_due
      - 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
          description: Product this line bills for. Use List Products to find one.
        quantity:
          anyOf:
          - type: number
            maximum: 100000000.0
            exclusiveMinimum: 0.001
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,3}0*$
          title: Quantity
          description: Quantity of the product.
        price:
          anyOf:
          - anyOf:
            - type: number
              maximum: 100000000.0
              minimum: 0.01
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
            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. Defaults to the product's description
            if not provided.
        discount_percentage:
          anyOf:
          - anyOf:
            - type: number
              maximum: 100.0
              minimum: 0.0
            - type: string
              pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,0}0*$
            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
    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
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Default Price
          description: The default price of the product.
      type: object
      required:
      - id
      - name
      - default_price
      title: InvoiceProductResponse
    InvoiceStatus:
      type: string
      enum:
      - Draft
      - Open
      - Pending
      - Scheduled
      - Partially Paid
      - Paid
      - Canceled
      - Expired
      - Overdue
      title: InvoiceStatus
      x-enum-varnames:
      - DRAFT
      - OPEN
      - PENDING
      - SCHEDULED
      - PARTIALLY_PAID
      - PAID
      - CANCELED
      - EXPIRED
      - OVERDUE
    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
    LegalStructure:
      type: string
      enum:
      - ccorp
      - corp
      - estate
      - foreign_entity
      - llc
      - llp
      - lp
      - nonprofit
      - partnership
      - scheme
      - scorp
      - soleprop
      - trust
      title: LegalStructure
    LimitInterval:
      type: string
      enum:
      - PER_TRANSACTION
      - DAILY
      - WEEKLY
      - MONTHLY
      - QUARTERLY
      - YEARLY
      - ALL_TIME
      title: LimitInterval
      x-enum-varnames:
      - PER_TRANSACTION
      - DAILY
      - WEEKLY
      - MONTHLY
      - QUARTERLY
      - YEARLY
      - ALL_TIME
    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
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: The total amount for the line item.
        quantity:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Quantity
          description: The quantity of the product.
        price:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          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
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          - 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: The entities your API key can access.
      type: object
      required:
      - entities
      title: ListAccessibleEntitiesResponse
      description: The entities your API key can access.
      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
    ListCardTransactionsFilter:
      properties:
        card_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Card Id
          description: Only transactions on this card.
        statuses:
          anyOf:
          - items:
              $ref: '#/components/schemas/CardTransactionStatus'
            type: array
          - type: 'null'
          title: Statuses
          description: Only transactions in these states.
        merchant_name:
          anyOf:
          - type: string
            maxLength: 100
            minLength: 1
            pattern: ^[ -~]+$
          - type: 'null'
          title: Merchant Name
          description: Only transactions whose merchant matches.
        trace_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Trace Id
          description: All entries of one purchase, by its trace_id.
          examples:
          - card_24692111234567890123456
        from_authorized_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: From Authorized At
          description: Only transactions authorized at or after this.
        to_authorized_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: To Authorized At
          description: Only transactions authorized at or before this.
        amount_min:
          anyOf:
          - type: number
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          - type: 'null'
          title: Amount Min
          description: Only transactions of at least this amount.
        amount_max:
          anyOf:
          - type: number
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          - type: 'null'
          title: Amount Max
          description: Only transactions of at most this amount.
      type: object
      title: ListCardTransactionsFilter
    ListCardsFilter:
      properties:
        query:
          anyOf:
          - type: string
          - type: 'null'
          title: Query
          description: Free-text search over card nickname, last 4 digits, and cardholder
            name.
        statuses:
          anyOf:
          - items:
              $ref: '#/components/schemas/CardStatus'
            type: array
          - type: 'null'
          title: Statuses
          description: Filter to one or more card statuses, as a list, e.g. `["active"]`.
            Omit to return every status.
        card_types:
          items:
            $ref: '#/components/schemas/CardFormFactor'
          type: array
          title: Card Types
          description: Filter to physical and/or virtual cards. Empty returns both.
          default: []
        from_created_time:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: From Created Time
          description: Only return cards created at or after this time (ISO 8601).
        to_created_time:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: To Created Time
          description: Only return cards created at or before this time (ISO 8601).
      type: object
      title: ListCardsFilter
    LoanType:
      type: string
      enum:
      - bridge_short_term_financing
      - construction_loans
      - property_rehab_loans
      - other
      title: LoanType
    MarijuanaActivities:
      type: string
      enum:
      - Directly manufacture, distribute, and/or dispense marijuana.
      - Provide product(s)/service(s) to companies that directly manufacture, distribute,
        and/or dispense marijuana.
      title: MarijuanaActivities
    MeowAddressRequest:
      properties:
        street_line_1:
          type: string
          maxLength: 300
          minLength: 1
          title: Street Line 1
          description: Street address, including house or building number.
        street_line_2:
          anyOf:
          - type: string
            maxLength: 300
            minLength: 0
          - type: 'null'
          title: Street Line 2
          description: Apartment, suite, unit, or floor.
        city:
          type: string
          maxLength: 50
          minLength: 0
          title: City
          description: City or town.
        state:
          anyOf:
          - type: string
            maxLength: 200
            minLength: 0
          - type: 'null'
          title: State
          description: State, province, or region. A name or abbreviation is accepted
            and normalized to its ISO 3166-2 subdivision code. Required in countries
            that address by subdivision, such as the US.
        country:
          $ref: '#/components/schemas/CountryCodeAlpha2'
          description: ISO 3166-1 alpha-2 country code, such as `US`.
        postal_code:
          anyOf:
          - type: string
            maxLength: 20
            minLength: 1
          - type: 'null'
          title: Postal Code
          description: Postal or ZIP code. Required except in countries that do not
            use postal codes.
      type: object
      required:
      - street_line_1
      - city
      - country
      title: MeowAddressRequest
    MeowApiAchSubobject:
      properties:
        account_number:
          type: string
          maxLength: 18
          minLength: 1
          title: Account Number
          description: Bank account number to send ACH payments to.
        account_type:
          $ref: '#/components/schemas/TreasuryPrimeAccountType'
          description: Whether the account is a checking or savings account.
        routing_number:
          type: string
          maxLength: 9
          minLength: 9
          title: Routing Number
          description: 9-digit ABA routing number of the receiving bank.
        address_on_account:
          anyOf:
          - $ref: '#/components/schemas/MeowApiAddress'
          - type: 'null'
          description: Postal address on file for the account holder, if you have
            one.
      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
          description: Street address, including house or building number.
        street_line_2:
          anyOf:
          - type: string
            maxLength: 300
            minLength: 0
          - type: 'null'
          title: Street Line 2
          description: Apartment, suite, unit, or floor.
        city:
          type: string
          maxLength: 21
          minLength: 0
          title: City
          description: City or town.
        state:
          anyOf:
          - type: string
            maxLength: 3
            minLength: 0
          - type: 'null'
          title: State
          description: State, province, or region code of up to 3 characters. Omit
            this for countries without subdivisions. For a US address, use the two-letter
            state code.
        country:
          $ref: '#/components/schemas/CountryCodeAlpha2'
          description: ISO 3166-1 alpha-2 country code, such as `US`.
        postal_code:
          type: string
          maxLength: 20
          minLength: 1
          title: Postal Code
          description: Postal or ZIP code for the address.
      type: object
      required:
      - street_line_1
      - city
      - country
      - postal_code
      title: MeowApiAddress
    MeowApiCheckSubobject:
      properties:
        address:
          $ref: '#/components/schemas/MeowApiAddress'
          description: Postal address to mail the check to.
        created_time:
          type: string
          format: date-time
          title: Created Time
          description: When the check details were stored. Ignored when you create
            or update a contact — only `address` is read there.
        updated_time:
          type: string
          format: date-time
          title: Updated Time
          description: When the check details were last changed. Ignored when you
            create or update a contact.
      type: object
      required:
      - address
      - created_time
      - updated_time
      title: MeowApiCheckSubobject
    MeowApiCrNowSubobject:
      properties:
        account_number:
          type: string
          maxLength: 18
          minLength: 1
          title: Account Number
          description: Bank account number to send instant payments to over Cross
            River's instant rail.
        account_type:
          $ref: '#/components/schemas/TreasuryPrimeAccountType'
          description: Whether the account is a checking or savings account.
        routing_number:
          type: string
          maxLength: 9
          minLength: 9
          title: Routing Number
          description: 9-digit ABA routing number of the receiving bank.
        address_on_account:
          anyOf:
          - $ref: '#/components/schemas/MeowApiAddress'
          - type: 'null'
          description: Postal address on file for the account holder, if you have
            one.
      type: object
      required:
      - account_number
      - account_type
      - routing_number
      title: MeowApiCrNowSubobject
    MeowApiFedNowSubobject:
      properties:
        account_number:
          type: string
          maxLength: 18
          minLength: 1
          title: Account Number
          description: Bank account number to send instant payments to over FedNow.
        account_type:
          $ref: '#/components/schemas/TreasuryPrimeAccountType'
          description: Whether the account is a checking or savings account.
        routing_number:
          type: string
          maxLength: 9
          minLength: 9
          title: Routing Number
          description: 9-digit ABA routing number of the receiving bank.
        address_on_account:
          anyOf:
          - $ref: '#/components/schemas/MeowApiAddress'
          - type: 'null'
          description: Postal address on file for the account holder, if you have
            one.
      type: object
      required:
      - account_number
      - account_type
      - routing_number
      title: MeowApiFedNowSubobject
    MeowApiTchSubobject:
      properties:
        account_number:
          type: string
          maxLength: 18
          minLength: 1
          title: Account Number
          description: Bank account number to send RTP payments to over The Clearing
            House.
        account_type:
          $ref: '#/components/schemas/TreasuryPrimeAccountType'
          description: Whether the account is a checking or savings account.
        routing_number:
          type: string
          maxLength: 9
          minLength: 9
          title: Routing Number
          description: 9-digit ABA routing number of the receiving bank.
        address_on_account:
          anyOf:
          - $ref: '#/components/schemas/MeowApiAddress'
          - type: 'null'
          description: Postal address on file for the account holder, if you have
            one.
      type: object
      required:
      - account_number
      - account_type
      - routing_number
      title: MeowApiTchSubobject
    MeowApiWireSubobject:
      properties:
        account_number:
          type: string
          maxLength: 34
          minLength: 1
          title: Account Number
          description: Bank account number to wire funds to.
        routing_number:
          type: string
          maxLength: 11
          minLength: 8
          title: Routing Number
          description: 'Routing identifier of the beneficiary''s bank: a 9-digit ABA
            routing number domestically, or an 8- or 11-character BIC/SWIFT code.'
        address_on_account:
          $ref: '#/components/schemas/MeowApiAddress'
          description: Postal address of the account holder, as their bank has it
            on file.
        bank_address:
          $ref: '#/components/schemas/MeowApiAddress'
          description: Postal address of the beneficiary's bank.
        bank_name:
          type: string
          maxLength: 400
          minLength: 1
          title: Bank Name
          description: Name of the beneficiary's bank.
        intermediary_bank:
          anyOf:
          - $ref: '#/components/schemas/IntermediaryBank'
          - type: 'null'
          description: Correspondent bank to route the wire through. Required for
            international wires when the entity has a bank account that requires intermediary
            details.
      type: object
      required:
      - account_number
      - routing_number
      - address_on_account
      - bank_address
      - bank_name
      title: MeowApiWireSubobject
    MerchantResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Pass this in `spending_restriction.merchants` to allow or block
            the card at this merchant.
        name:
          type: string
          title: Name
          description: The merchant's display name.
          examples:
          - Whisker Roasters
        logo_url:
          type: string
          title: Logo Url
          description: URL of the merchant's logo.
        website:
          anyOf:
          - type: string
          - type: 'null'
          title: Website
          description: The merchant's website, when known.
      type: object
      required:
      - id
      - name
      - logo_url
      title: MerchantResponse
      description: A merchant you can reference in a card's spending restriction.
    MerchantRestrictionType:
      type: string
      enum:
      - allow
      - block
      title: MerchantRestrictionType
      x-enum-varnames:
      - allow
      - block
    MerchantSpend:
      properties:
        merchant:
          type: string
          title: Merchant
          description: The merchant's name.
          examples:
          - Whisker Roasters
        total:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Total
          description: Total spent at this merchant.
        transaction_count:
          type: integer
          title: Transaction Count
          description: How many transactions made it up.
        website:
          anyOf:
          - type: string
          - type: 'null'
          title: Website
          description: The merchant's website.
      type: object
      required:
      - merchant
      - total
      - transaction_count
      title: MerchantSpend
    MerchantsResponse:
      properties:
        data:
          items:
            $ref: '#/components/schemas/MerchantResponse'
          type: array
          title: Data
          description: Merchants you can reference in a card's spending restriction.
        page:
          anyOf:
          - $ref: '#/components/schemas/PageMetadata'
          - type: 'null'
          description: Pagination metadata.
      type: object
      required:
      - data
      title: MerchantsResponse
    MpmDueDiligence:
      properties:
        overview:
          type: string
          title: Overview
          description: Please provide an overview of business activities and market
            focus. Please include any specialties (distressed investing, growth, sector,
            etc.).
        services_offered:
          items:
            $ref: '#/components/schemas/MpmServicesOffered'
          type: array
          title: Services Offered
          description: Services Offered (please check all that apply).
        international_businesses:
          anyOf:
          - type: boolean
          - type: 'null'
          title: International Businesses
          description: Do you work with international businesses?
        other_countries_operations:
          anyOf:
          - items:
              $ref: '#/components/schemas/CountryCodeAlpha2'
            type: array
          - type: 'null'
          title: Other Countries Operations
          description: Which non-US countries do you operate in (current or planned)?
            Applies only when `international_businesses` is `true`.
        works_with_investors:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Works With Investors
          description: Do you work with investors?
        investors:
          anyOf:
          - $ref: '#/components/schemas/InvestorsDueDiligence'
          - type: 'null'
          description: Answers about the investors you work with. Applies only when
            `works_with_investors` is `true`.
      type: object
      required:
      - overview
      - services_offered
      title: MpmDueDiligence
    MpmEddFormRequest:
      properties:
        form_type:
          type: string
          const: mpm
          title: Form Type
          description: Selects the managed-property-manager form. Must be `mpm`.
        form_data:
          $ref: '#/components/schemas/MpmDueDiligence'
          description: Answers to the managed-property-manager form. Fetch the form's
            schema first, and answer every element it marks required.
      type: object
      required:
      - form_type
      - form_data
      title: MpmEddFormRequest
    MpmServicesOffered:
      type: string
      enum:
      - fundraising
      - portfolio_management
      - fractional_executive_services
      - financing
      - loan_syndication
      - underwriting
      - advisory_services
      title: MpmServicesOffered
    MrbDueDiligence:
      properties:
        marijuana_activities:
          items:
            $ref: '#/components/schemas/MarijuanaActivities'
          type: array
          title: Marijuana Activities
          description: Which of these marijuana-related activities does your business
            engage in?
        marijuana_percentage_revenue:
          anyOf:
          - type: number
            maximum: 100.0
            minimum: 0.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Marijuana Percentage Revenue
          description: What percentage of your revenue does the above activity represent?
        product_service_description:
          type: string
          title: Product Service Description
          description: Please provide a description of the products and/or services
            offered.
        customer_base_revenue:
          type: string
          title: Customer Base Revenue
          description: Please describe your customer base and how revenue is generated.
        accepted_payment_methods:
          items:
            $ref: '#/components/schemas/AcceptedPaymentMethods'
          type: array
          title: Accepted Payment Methods
          description: How do you receive payment for your products/services?
        business_physical_locations:
          anyOf:
          - items:
              type: string
            type: array
          - type: 'null'
          title: Business Physical Locations
          description: Please list the addresses of all physical locations for the
            business.
        business_states:
          items:
            $ref: '#/components/schemas/StateCode'
          type: array
          title: Business States
          description: Please list the states in which you do business.
        atm_on_site:
          type: boolean
          title: Atm On Site
          description: ATM on site?
        atm_owner:
          anyOf:
          - $ref: '#/components/schemas/AtmOwner'
          - type: 'null'
          description: Who owns the ATM? Applies only when `atm_on_site` is `true`.
        atm_owner_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Atm Owner Name
          description: Name of the ATM's owner. Applies only when `atm_on_site` is
            `true` and the ATM is owned by a financial institution or a contractor.
        atm_funding:
          anyOf:
          - $ref: '#/components/schemas/AtmFunding'
          - type: 'null'
          description: How the ATM is funded. Applies only when `atm_on_site` is `true`
            and the business owns the ATM.
      type: object
      required:
      - marijuana_activities
      - marijuana_percentage_revenue
      - product_service_description
      - customer_base_revenue
      - accepted_payment_methods
      - business_states
      - atm_on_site
      title: MrbDueDiligence
    NoWebsiteDueDiligence:
      properties:
        previous_experience:
          type: string
          title: Previous Experience
          description: Please describe any previous experience in this industry.
        industry_certs_licenses:
          type: boolean
          title: Industry Certs Licenses
          description: Do you or your business hold industry-related certifications
            or licenses?
        product_service_revenue:
          type: string
          title: Product Service Revenue
          description: Describe your current product/service offering and how revenue
            is generated.
        accepted_payment_methods:
          items:
            $ref: '#/components/schemas/AcceptedPaymentMethods'
          type: array
          title: Accepted Payment Methods
          description: How do you receive payment for your products/services?
        customer_base:
          type: string
          title: Customer Base
          description: Please describe your customer base.
      type: object
      required:
      - previous_experience
      - industry_certs_licenses
      - product_service_revenue
      - accepted_payment_methods
      - customer_base
      title: NoWebsiteDueDiligence
    NoWebsiteEddFormRequest:
      properties:
        form_type:
          type: string
          const: no_website
          title: Form Type
          description: Selects the no-website form. Must be `no_website`.
        form_data:
          $ref: '#/components/schemas/NoWebsiteDueDiligence'
          description: Answers to the no-website form. Fetch the form's schema first,
            and answer every element it marks required.
      type: object
      required:
      - form_type
      - form_data
      title: NoWebsiteEddFormRequest
    NonUSUbosDueDiligence:
      properties:
        has_us_based_beneficial_owners:
          type: boolean
          title: Has Us Based Beneficial Owners
          description: Does your business have at least one US-based beneficial owner?
        currently_has_us_based_operations:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Currently Has Us Based Operations
          description: Does your business currently have US-based operations? Applies
            only when `has_us_based_beneficial_owners` is `false`.
        us_based_operations_start_date:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: Us Based Operations Start Date
          description: When did your business start its US-based operations? Applies
            only when the business has US-based operations.
        physical_presence_in_us:
          anyOf:
          - $ref: '#/components/schemas/PhysicalPresenceInUsType'
          - type: 'null'
          description: Do you have a physical presence in the US?
        physical_presence_in_us_address:
          anyOf:
          - type: string
          - type: 'null'
          title: Physical Presence In Us Address
          description: The US address. Applies only when `physical_presence_in_us`
            reports premises of your own (`physical_presence_in_us`) or a third-party
            operations partner (`third_party_operations_partnership`); remote employees
            in the US need no address.
        physical_presence_in_us_description:
          anyOf:
          - type: string
          - type: 'null'
          title: Physical Presence In Us Description
          description: How do you serve the US market without a physical presence?
            Applies only when `physical_presence_in_us` is `no_physical_presence`.
        products_and_services_offered_in_us:
          anyOf:
          - type: string
          - type: 'null'
          title: Products And Services Offered In Us
          description: What products and/or services do you offer in the US?
        how_do_you_attract_us_customers:
          anyOf:
          - type: string
          - type: 'null'
          title: How Do You Attract Us Customers
          description: How do you market to/attract customers from the US?
      type: object
      required:
      - has_us_based_beneficial_owners
      title: NonUSUbosDueDiligence
    NonUSUbosEddFormRequest:
      properties:
        form_type:
          type: string
          const: non_us_ubos
          title: Form Type
          description: Selects the non-US beneficial owners form. Must be `non_us_ubos`.
        form_data:
          $ref: '#/components/schemas/NonUSUbosDueDiligence'
          description: Answers to the non-US beneficial owners form. Fetch the form's
            schema first, and answer every element it marks required.
      type: object
      required:
      - form_type
      - form_data
      title: NonUSUbosEddFormRequest
    OnboardingAddress:
      properties:
        address:
          type: string
          maxLength: 900
          minLength: 1
          title: Address
          description: Street address line 1.
          examples:
          - 9 Whisker Way
        address_2:
          anyOf:
          - type: string
            maxLength: 900
          - type: 'null'
          title: Address 2
          description: Street address line 2.
          examples:
          - Suite 9
        city:
          type: string
          maxLength: 300
          minLength: 1
          title: City
          description: City name.
          examples:
          - San Francisco
        state:
          anyOf:
          - type: string
            maxLength: 300
          - type: 'null'
          title: State
          description: State or province code.
          examples:
          - CA
        zip:
          type: string
          maxLength: 100
          minLength: 1
          title: Zip
          description: Postal or ZIP code.
          examples:
          - '94105'
        country:
          $ref: '#/components/schemas/CountryCodeAlpha2'
          description: ISO 3166-1 alpha-2 country code.
      type: object
      required:
      - address
      - city
      - zip
      - country
      title: OnboardingAddress
    OnboardingApplicationStatus:
      type: string
      enum:
      - pending_document_upload
      - pending_user_action
      - submitted
      - under_review
      - approved
      - rejected
      title: OnboardingApplicationStatus
    OnboardingConsentState:
      properties:
        status:
          $ref: '#/components/schemas/OnboardingConsentStatus'
          description: Whether the primary representative has opened the consent page
            and accepted every required agreement. `pending` means they have not opened
            it yet, `viewed` means they opened it but have items left, and `completed`
            means nothing is outstanding.
        consented_items:
          items:
            $ref: '#/components/schemas/AgenticOnboardingConsentType'
          type: array
          title: Consented Items
          description: Agreements the primary representative has accepted so far.
        remaining_items:
          items:
            $ref: '#/components/schemas/AgenticOnboardingConsentType'
          type: array
          title: Remaining Items
          description: Required agreements still outstanding. Review proceeds while
            this is non-empty, but no account can be opened until it is empty, so
            share `consent_url` with the primary representative so they can finish.
        viewed_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: When the consent page was first opened, if it has been.
        completed_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: When the last required agreement was accepted, if all have
            been.
      type: object
      required:
      - status
      - consented_items
      - remaining_items
      - viewed_at
      - completed_at
      title: OnboardingConsentState
    OnboardingConsentStatus:
      type: string
      enum:
      - pending
      - viewed
      - completed
      title: OnboardingConsentStatus
      x-enum-varnames:
      - pending
      - viewed
      - completed
    OnboardingDocumentStatus:
      properties:
        proof_type:
          $ref: '#/components/schemas/PublicKybProofType'
          description: Type of KYB document on file.
        file_name:
          anyOf:
          - type: string
          - type: 'null'
          title: File Name
          description: Uploaded file name, or null if not yet uploaded.
        representative_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Representative Id
          description: The representative this document belongs to, or null for business-level
            documents.
      type: object
      required:
      - proof_type
      - file_name
      title: OnboardingDocumentStatus
    OnboardingInfoRequest:
      properties:
        request_id:
          type: string
          format: uuid
          title: Request Id
          description: Pass this to `POST /entities/{entity_id}/info-requests/{request_id}/documents/upload-url`
            and its confirm call, so the uploaded file is attributed to this request.
            The pre-submission `/documents/upload-url` pair does not take it and is
            closed once the application is submitted.
        required_proof_types:
          items:
            $ref: '#/components/schemas/PublicKybProofType'
          type: array
          title: Required Proof Types
          description: Documents this request is still waiting on. Empty once every
            requested document is on file.
        questions_pending:
          type: boolean
          title: Questions Pending
          description: Whether this request also asks questions that have not been
            answered yet. The request stays open until they are, even once every document
            is on file. Answer them at `POST /entities/{entity_id}/info-requests/{request_id}`.
        outstanding:
          items:
            $ref: '#/components/schemas/PublicOutstandingItem'
          type: array
          title: Outstanding
          description: Everything this request is still waiting on, documents and
            questions alike, as structured items. `required_proof_types` above is
            the document half of this list.
        note:
          anyOf:
          - type: string
          - type: 'null'
          title: Note
          description: What the reviewer asked for, if they left a note.
        expires_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: When the request stops accepting uploads. Uploads against an
            expired request are rejected.
      type: object
      required:
      - request_id
      - required_proof_types
      - questions_pending
      - outstanding
      - note
      - expires_at
      title: OnboardingInfoRequest
    OnboardingKycFailedCheck:
      type: string
      enum:
      - accept_tos
      - verify_sms
      - kyc_check
      - documentary_verification
      - selfie_check
      - watchlist_screening
      - risk_check
      title: OnboardingKycFailedCheck
      x-enum-varnames:
      - accept_tos
      - verify_sms
      - kyc_check
      - documentary_verification
      - selfie_check
      - watchlist_screening
      - risk_check
    OnboardingKycIdentity:
      properties:
        first_name:
          type: string
          minLength: 1
          title: First Name
          description: Legal first name.
          examples:
          - Felix
        last_name:
          type: string
          minLength: 1
          title: Last Name
          description: Legal last name.
          examples:
          - Whiskers
        date_of_birth:
          $ref: '#/components/schemas/DateString'
          description: Date of birth (`YYYY-MM-DD`).
        id_number:
          anyOf:
          - type: string
            format: password
            writeOnly: true
          - type: 'null'
          title: Id Number
          description: Government ID number matching `id_type`. For `us_ssn` use nine
            digits, with or without dashes (123-45-6789 or 123456789); for `us_ssn_last_4`
            use the last four digits; for non-US ID types provide the number as issued.
            Formatting characters are stripped before verification. Required when
            the representative's country issues an ID type we can verify, and must
            be omitted when it does not (e.g. the United Kingdom, which has no supported
            ID type).
          examples:
          - 123-45-6789
        id_type:
          $ref: '#/components/schemas/ExtPlaidIDNumberType'
          description: Type of government ID, which must belong to the country of
            the representative's `address`. Defaults to `us_ssn`; non-US representatives
            pass their country-specific type (e.g. `sg_nric`, `au_passport`, `ca_sin`).
            Ignored when the country has no supported ID type.
          default: us_ssn
        address:
          $ref: '#/components/schemas/OnboardingAddress'
          description: Residential address.
        phone_number:
          anyOf:
          - type: string
            pattern: ^\+[1-9]\d{1,14}$
          - type: 'null'
          title: Phone Number
          description: Phone number in E.164 format (e.g. +14155550123).
          examples:
          - '+14155550123'
        ip:
          type: string
          format: ipvanyaddress
          title: Ip
          description: IPv4 or IPv6 address of the end user submitting this verification.
            Forwarded to the identity-verification provider as a fraud signal.
          examples:
          - 203.0.113.42
      type: object
      required:
      - first_name
      - last_name
      - date_of_birth
      - address
      - ip
      title: OnboardingKycIdentity
    OnboardingKycStatus:
      type: string
      enum:
      - not_started
      - pending
      - action_required
      - approved
      - rejected
      title: OnboardingKycStatus
      x-enum-varnames:
      - not_started
      - pending
      - action_required
      - approved
      - rejected
    OnboardingNextStep:
      properties:
        step:
          $ref: '#/components/schemas/PublicOnboardingStep'
          description: The onboarding step the application is currently on. `onboarding_complete`
            means the application reached a terminal status (approved or rejected)
            and there is nothing left to do.
        phase:
          $ref: '#/components/schemas/OnboardingPhase'
          description: Coarse onboarding phase (collecting info, ready to submit,
            or submitted).
        missing:
          items:
            type: string
          type: array
          title: Missing
          description: Items you still need to provide to advance past the current
            step. After submission this also lists any agreements still outstanding,
            which are owed alongside an open information request rather than after
            it. Empty once nothing is owed.
        required_proof_types:
          items:
            $ref: '#/components/schemas/PublicKybProofType'
          type: array
          title: Required Proof Types
          description: KYB documents you still owe, as `proof_type` values to pass
            to a document upload endpoint. Before submission these are the application's
            own required documents, uploaded through `/entities/{entity_id}/documents/upload-url`;
            for a non-US business that usually includes `incorporation`, `shareholder_registry`
            (your shareholder registry or register of members), and `officer_registry`
            (your register of directors). Once `step` is `resolve_info_requests` these
            are instead what the open info requests still owe, uploaded through `/entities/{entity_id}/info-requests/{request_id}/documents/upload-url`.
            See `info_requests` for which request each belongs to. Empty once every
            required document is on file.
        can_submit:
          type: boolean
          title: Can Submit
          description: Whether all requirements are met and the application is ready
            to be submitted for review.
        info_requests:
          items:
            $ref: '#/components/schemas/OnboardingInfoRequest'
          type: array
          title: Info Requests
          description: Open requests for follow-up information. Non-empty whenever
            a reviewer has asked for something, which is normally after submission
            and then `step` is `resolve_info_requests`, where `required_proof_types`
            above is the deduplicated union of what these still owe. A request raised
            before submission is reported here too, while `step` stays on the pre-submission
            work. Use the per-request entries when you need the `request_id` to upload
            against.
      type: object
      required:
      - step
      - phase
      - missing
      - can_submit
      title: OnboardingNextStep
    OnboardingPhase:
      type: string
      enum:
      - business_info
      - ready_to_submit
      - submitted
      title: OnboardingPhase
    OnboardingProductFeature:
      type: string
      enum:
      - stablecoins
      title: OnboardingProductFeature
      x-enum-varnames:
      - stablecoins
    OnboardingRepresentativeKyc:
      properties:
        representative_id:
          type: string
          format: uuid
          title: Representative Id
          description: ID of the representative.
        first_name:
          anyOf:
          - type: string
          - type: 'null'
          title: First Name
          description: Legal first name.
        last_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Last Name
          description: Legal last name.
        email:
          type: string
          title: Email
          description: Representative's email address.
        is_primary:
          type: boolean
          title: Is Primary
          description: Whether they are the primary representative (signer).
        is_beneficial_owner:
          type: boolean
          title: Is Beneficial Owner
          description: Whether they are a beneficial owner.
        percent_ownership:
          anyOf:
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          - type: 'null'
          title: Percent Ownership
          description: Ownership percentage, if any.
        kyc_status:
          $ref: '#/components/schemas/OnboardingKycStatus'
          description: 'This representative''s identity verification status, kept
            consistent with the `identity_verification.*` webhook events. `action_required`
            means their verification needs another step from them (for example, a
            document or selfie): create a link with `POST /entities/{entity_id}/representatives/{representative_id}/verification-link`
            and share it so they can finish.'
        failed_checks:
          items:
            $ref: '#/components/schemas/OnboardingKycFailedCheck'
          type: array
          title: Failed Checks
          description: The identity-verification checks that failed when `kyc_status`
            is `rejected`. Empty for other statuses or when check details are unavailable.
      type: object
      required:
      - representative_id
      - first_name
      - last_name
      - email
      - is_primary
      - is_beneficial_owner
      - percent_ownership
      - kyc_status
      - failed_checks
      title: OnboardingRepresentativeKyc
    OpenableBankProduct:
      type: string
      enum:
      - grasshopper
      - crb
      title: OpenableBankProduct
      x-enum-varnames:
      - grasshopper
      - crb
    PageMetadata:
      properties:
        nextOffset:
          anyOf:
          - type: string
          - type: 'null'
          title: Nextoffset
          description: Opaque offset identifier.
          examples:
          - qwer123454q2f
      type: object
      title: PageMetadata
    PartnerApplicationListResponse:
      properties:
        applications:
          items:
            $ref: '#/components/schemas/PartnerApplicationResponse'
          type: array
          title: Applications
          description: List of partner applications.
      type: object
      required:
      - applications
      title: PartnerApplicationListResponse
    PartnerApplicationResponse:
      properties:
        entity_id:
          type: string
          format: uuid
          title: Entity Id
          description: Public ID of the onboarded business entity, stable across the
            onboarding lifecycle and matching the `entity_id` used in the Customer
            API, MCP, and webhook payloads.
        status:
          $ref: '#/components/schemas/OnboardingApplicationStatus'
          description: Current onboarding status.
        business_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Business Name
          description: Legal business name.
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: ISO 8601 timestamp of when the entity was created.
        updated_at:
          $ref: '#/components/schemas/Timestamp'
          description: ISO 8601 timestamp of when onboarding was last updated.
        application_id:
          type: string
          format: uuid
          title: Application Id
          description: Unique application identifier.
        partner_reference_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Partner Reference Id
          description: Your reference ID.
        onboarding_url:
          type: string
          title: Onboarding Url
          description: URL the applicant opens to complete onboarding.
      type: object
      required:
      - entity_id
      - status
      - business_name
      - created_at
      - updated_at
      - application_id
      - partner_reference_id
      - onboarding_url
      title: PartnerApplicationResponse
    PartnerApplicationStatusResponse:
      properties:
        entity_id:
          type: string
          format: uuid
          title: Entity Id
          description: Public ID of the onboarded business entity, stable across the
            onboarding lifecycle and matching the `entity_id` used in the Customer
            API, MCP, and webhook payloads.
        status:
          $ref: '#/components/schemas/OnboardingApplicationStatus'
          description: Current onboarding status.
        business_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Business Name
          description: Legal business name.
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: ISO 8601 timestamp of when the entity was created.
        updated_at:
          $ref: '#/components/schemas/Timestamp'
          description: ISO 8601 timestamp of when onboarding was last updated.
        documents:
          items:
            $ref: '#/components/schemas/OnboardingDocumentStatus'
          type: array
          title: Documents
          description: Documents uploaded during onboarding.
        kyc_status:
          $ref: '#/components/schemas/OnboardingKycStatus'
          description: Identity verification status of the primary representative.
            After you submit KYC data or they complete verification, this moves to
            `pending` and resolves on its own; poll it to track progress.
        application_id:
          type: string
          format: uuid
          title: Application Id
          description: Unique application identifier.
        partner_reference_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Partner Reference Id
          description: Your reference ID.
        onboarding_url:
          type: string
          title: Onboarding Url
          description: URL the applicant opens to complete onboarding.
      type: object
      required:
      - entity_id
      - status
      - business_name
      - created_at
      - updated_at
      - documents
      - kyc_status
      - application_id
      - partner_reference_id
      - onboarding_url
      title: PartnerApplicationStatusResponse
    PartnerCreateApplicationRequest:
      properties:
        business_name:
          type: string
          maxLength: 400
          title: Business Name
          description: Legal business name.
          examples:
          - Catnip Coffee Co
        business_date_of_incorporation:
          $ref: '#/components/schemas/DateString'
          description: Date the business was incorporated.
        incorporation_state:
          anyOf:
          - $ref: '#/components/schemas/StateCode'
          - type: 'null'
          description: US state of incorporation. Required for businesses incorporated
            in the US; omit for businesses incorporated elsewhere.
          examples:
          - DE
        legal_structure:
          $ref: '#/components/schemas/LegalStructure'
          description: Legal structure of the business (e.g. `llc`, `corp`). Businesses
            incorporated outside the US use `foreign_entity`.
        business_address:
          $ref: '#/components/schemas/OnboardingAddress'
          description: Registered legal business address. Must be in a country where
            Meow supports business onboarding; unsupported countries are rejected
            with the full supported list.
        physical_address:
          anyOf:
          - $ref: '#/components/schemas/OnboardingAddress'
          - type: 'null'
          description: Primary operating address. Omit it when the business operates
            at its registered legal address; that address is then used as the physical
            address too.
        user_email:
          type: string
          format: email
          title: User Email
          description: Email address of the primary representative who will own the
            account.
        partner_reference_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Partner Reference Id
          description: Your own reference ID for this application, used to make creation
            idempotent.
      type: object
      required:
      - business_name
      - business_date_of_incorporation
      - legal_structure
      - business_address
      - user_email
      title: PartnerCreateApplicationRequest
    PartnerDocumentConfirmRequest:
      properties:
        object_key:
          type: string
          title: Object Key
          description: Object key returned from the upload-url endpoint.
        proof_type:
          $ref: '#/components/schemas/PublicKybProofType'
          description: Type of KYB document being confirmed. Use the same `proof_type`
            you passed when requesting the upload URL.
      type: object
      required:
      - object_key
      - proof_type
      title: PartnerDocumentConfirmRequest
    PartnerDocumentConfirmResponse:
      properties:
        confirmed:
          type: boolean
          title: Confirmed
          description: Whether the document was successfully confirmed.
        file_name:
          type: string
          title: File Name
          description: Confirmed file name.
      type: object
      required:
      - confirmed
      - file_name
      title: PartnerDocumentConfirmResponse
    PartnerDocumentUploadRequest:
      properties:
        proof_type:
          $ref: '#/components/schemas/PublicKybProofType'
          description: Type of KYB document being uploaded. Common values are `incorporation`
            (certificate of incorporation or formation document), `address` (proof
            of business address), and `bank_statement`. Non-US businesses also upload
            `shareholder_registry` (your shareholder registry, also called the register
            of members) and `officer_registry` (your register of directors and officers).
            The onboarding status response lists exactly what an entity owes in `next_step.required_proof_types`.
        file_name:
          type: string
          title: File Name
          description: Original file name including extension.
        content_type:
          type: string
          title: Content Type
          description: MIME type of the file (e.g. `application/pdf`, `image/png`).
          default: application/pdf
      type: object
      required:
      - proof_type
      - file_name
      title: PartnerDocumentUploadRequest
    PartnerDocumentUploadResponse:
      properties:
        upload_url:
          type: string
          title: Upload Url
          description: Pre-signed URL to upload the file via HTTP PUT.
        object_key:
          type: string
          title: Object Key
          description: Object key, required when confirming the upload.
        max_bytes:
          type: integer
          title: Max Bytes
          description: Maximum allowed file size in bytes.
        expires_in_seconds:
          type: integer
          title: Expires In Seconds
          description: Number of seconds until the upload URL expires.
      type: object
      required:
      - upload_url
      - object_key
      - max_bytes
      - expires_in_seconds
      title: PartnerDocumentUploadResponse
    PartnerKycSubmissionRequest:
      properties:
        first_name:
          type: string
          minLength: 1
          title: First Name
          description: Legal first name.
          examples:
          - Felix
        last_name:
          type: string
          minLength: 1
          title: Last Name
          description: Legal last name.
          examples:
          - Whiskers
        date_of_birth:
          $ref: '#/components/schemas/DateString'
          description: Date of birth (`YYYY-MM-DD`).
        id_number:
          anyOf:
          - type: string
            format: password
            writeOnly: true
          - type: 'null'
          title: Id Number
          description: Government ID number matching `id_type`. For `us_ssn` use nine
            digits, with or without dashes (123-45-6789 or 123456789); for `us_ssn_last_4`
            use the last four digits; for non-US ID types provide the number as issued.
            Formatting characters are stripped before verification. Required when
            the representative's country issues an ID type we can verify, and must
            be omitted when it does not (e.g. the United Kingdom, which has no supported
            ID type).
          examples:
          - 123-45-6789
        id_type:
          $ref: '#/components/schemas/ExtPlaidIDNumberType'
          description: Type of government ID, which must belong to the country of
            the representative's `address`. Defaults to `us_ssn`; non-US representatives
            pass their country-specific type (e.g. `sg_nric`, `au_passport`, `ca_sin`).
            Ignored when the country has no supported ID type.
          default: us_ssn
        address:
          $ref: '#/components/schemas/OnboardingAddress'
          description: Residential address.
        phone_number:
          anyOf:
          - type: string
            pattern: ^\+[1-9]\d{1,14}$
          - type: 'null'
          title: Phone Number
          description: Phone number in E.164 format (e.g. +14155550123).
          examples:
          - '+14155550123'
        ip:
          type: string
          format: ipvanyaddress
          title: Ip
          description: IPv4 or IPv6 address of the end user submitting this verification.
            Forwarded to the identity-verification provider as a fraud signal.
          examples:
          - 203.0.113.42
        user_email:
          type: string
          format: email
          title: User Email
          description: Email address of the applicant this KYC data belongs to. Must
            match the `user_email` the application was created with.
      type: object
      required:
      - first_name
      - last_name
      - date_of_birth
      - address
      - ip
      - user_email
      title: PartnerKycSubmissionRequest
    PartnerKycSubmissionResponse:
      properties:
        application_id:
          type: string
          format: uuid
          title: Application Id
          description: Unique application identifier.
        user_email:
          type: string
          title: User Email
          description: Email address of the verified applicant.
        kyc_status:
          $ref: '#/components/schemas/OnboardingKycStatus'
          description: 'Identity verification status after this submission. Verification
            usually completes asynchronously; poll the application status endpoint
            for the final result. This polled status has no `action_required` value:
            attempts the `identity_verification.*` webhook stream reports as `identity_verification.action_required`
            appear here as `pending` until a new attempt resolves. A `rejected` status
            does not include a reason; contact support if you need a review.'
      type: object
      required:
      - application_id
      - user_email
      - kyc_status
      title: PartnerKycSubmissionResponse
    PaymentMethodType:
      type: string
      enum:
      - BANK_TRANSFER
      - CARD
      - ACH_DIRECT_DEBIT
      - INTERNATIONAL_WIRE
      - USDC_ETHEREUM
      - USDC_SOLANA
      - USDC_BASE
      - USDC_XDC
      - USDT_ETHEREUM
      - USDT_SOLANA
      - CASH_SOLANA
      title: PaymentMethodType
      x-enum-varnames:
      - BANK_TRANSFER
      - CARD
      - ACH_DIRECT_DEBIT
      - INTERNATIONAL_WIRE
      - USDC_ETHEREUM
      - USDC_SOLANA
      - USDC_BASE
      - USDC_XDC
      - USDT_ETHEREUM
      - USDT_SOLANA
      - CASH_SOLANA
    PaymentMethodTypes:
      properties:
        allowed_types:
          items:
            $ref: '#/components/schemas/PaymentMethodType'
          type: array
          title: Allowed Types
          description: List of allowed payment method types.
      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
    PaymentTokenResponse:
      properties:
        payment_type:
          type: string
          const: spt
          title: Payment Type
          description: Always `spt`, so you can tell this apart from a card response.
          default: spt
        token:
          type: string
          title: Token
          description: The token to hand the merchant in place of a card number.
        usage_limits:
          $ref: '#/components/schemas/TokenUsageLimits'
          description: The limits this token authorizes.
        metadata:
          $ref: '#/components/schemas/CardMetadata'
          description: Your reference data for the token.
      type: object
      required:
      - token
      - usage_limits
      - metadata
      title: PaymentTokenResponse
    PhysicalPresenceInUsType:
      type: string
      enum:
      - no_physical_presence
      - remote_employees_in_us
      - physical_presence_in_us
      - third_party_operations_partnership
      title: PhysicalPresenceInUsType
      x-enum-varnames:
      - no_physical_presence
      - remote_employees_in_us
      - physical_presence_in_us
      - third_party_operations_partnership
    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
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Default Price
          description: The default price of the product.
      type: object
      required:
      - id
      - name
      - default_price
      title: Product
    ProductContainsThc:
      type: string
      enum:
      - 'no'
      - low
      - high
      title: ProductContainsThc
    PropertyType:
      type: string
      enum:
      - residential
      - single_family
      - commercial_use
      title: PropertyType
    ProtocolEcosystemDueDiligence:
      properties:
        protocol_name:
          type: string
          title: Protocol Name
          description: Name of the protocol or project.
        related_entities:
          anyOf:
          - items:
              $ref: '#/components/schemas/RelatedEntity'
            type: array
          - type: 'null'
          title: Related Entities
          description: Every entity in the broader ecosystem that supports, develops,
            governs, issues tokens for, or otherwise relates to the protocol — not
            just subsidiaries and affiliates.
        corporate_structure_description:
          anyOf:
          - type: string
          - type: 'null'
          title: Corporate Structure Description
          description: Corporate Structure Description or Notes. Please provide a
            corporate structure chart showing parent/subsidiary relationships, ownership
            percentages, and any shared directors or managers across ecosystem entities.
            You may attach a separate diagram.
        protocol_upgrade_process:
          type: string
          title: Protocol Upgrade Process
          description: How are protocol upgrades proposed and implemented? Answer
            for protocol-level governance and control; token issuance authority and
            the user-facing interface are asked about separately.
        treasury_authority:
          type: string
          title: Treasury Authority
          description: Who has authority over protocol treasury assets?
        has_unilateral_authority:
          type: boolean
          title: Has Unilateral Authority
          description: Does any entity have unilateral administrative, upgrade, pause,
            or emergency authority over the protocol?
        unilateral_authority_details:
          anyOf:
          - type: string
          - type: 'null'
          title: Unilateral Authority Details
          description: Identify the entity or governance mechanism that holds this
            authority. Applies only when `has_unilateral_authority` is `true`.
        fund_flows_description:
          type: string
          title: Fund Flows Description
          description: Description of Fund Flows. Please describe all fund flows between
            ecosystem entities, including the purpose of each flow.
        has_contractual_arrangements:
          type: boolean
          title: Has Contractual Arrangements
          description: Are there contractual arrangements governing such flows?
        protocol_generates_fees:
          type: boolean
          title: Protocol Generates Fees
          description: Does protocol usage generate fees or other value?
        fee_accrual_destination:
          anyOf:
          - type: string
          - type: 'null'
          title: Fee Accrual Destination
          description: Where do such fees or value accrue (e.g., smart contract, treasury
            wallet, multisig, entity-level account)? Applies only when `protocol_generates_fees`
            is `true`.
        fee_control_entity:
          anyOf:
          - type: string
          - type: 'null'
          title: Fee Control Entity
          description: Which entity, governance mechanism, or group ultimately controls
            those accrued amounts? Applies only when `protocol_generates_fees` is
            `true`.
        interface_operator_entity:
          anyOf:
          - type: string
          - type: 'null'
          title: Interface Operator Entity
          description: Which entity operates or maintains the user-facing website
            or interface? Answered only when the protocol has one.
        website_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Website Url
          description: Website URL (if applicable).
        users_can_interact_directly:
          type: boolean
          title: Users Can Interact Directly
          description: Can users interact directly with the smart contracts without
            using the official interface?
        interface_implements_screening:
          type: boolean
          title: Interface Implements Screening
          description: Does the interface implement sanctions screening, wallet screening,
            or geographic/IP-based restrictions?
        screening_controls_description:
          anyOf:
          - type: string
          - type: 'null'
          title: Screening Controls Description
          description: Describe the controls and any third-party vendors used. Applies
            only when `interface_implements_screening` is `true`.
        offers_wallet:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Offers Wallet
          description: Whether an ecosystem entity offers or supports a user wallet.
        wallet_overview_custody:
          anyOf:
          - $ref: '#/components/schemas/WalletOverviewCustody'
          - type: 'null'
          description: Wallet operator, product, access, custody, and safeguarding
            details.
        wallet_supported_assets_networks:
          anyOf:
          - $ref: '#/components/schemas/WalletSupportedAssetsNetworks'
          - type: 'null'
          description: Blockchains, networks, and asset types supported by the wallet.
        wallet_functionality_services:
          anyOf:
          - $ref: '#/components/schemas/WalletFunctionalityServices'
          - type: 'null'
          description: Transfers, swaps, yield, bridges, fiat, and other wallet services.
        wallet_users_controls:
          anyOf:
          - $ref: '#/components/schemas/WalletUsersControls'
          - type: 'null'
          description: Wallet identity verification and account-limit controls.
        wallet_address_screening:
          type: string
          title: Wallet Address Screening
          description: Whether wallet or address screening is implemented at any layer
            of the ecosystem — protocol, interface, token distribution, treasury,
            grants, or otherwise.
        ip_geoblocking:
          type: string
          title: Ip Geoblocking
          description: IP-based geoblocking.
        blocking_sanctioned_jurisdictions:
          type: string
          title: Blocking Sanctioned Jurisdictions
          description: Blocking of sanctioned jurisdictions.
        blocking_sanctioned_wallets:
          type: string
          title: Blocking Sanctioned Wallets
          description: Blocking of sanctioned wallet addresses.
        screening_token_sale:
          type: string
          title: Screening Token Sale
          description: Screening applied to token sale participants.
        screening_governance:
          type: string
          title: Screening Governance
          description: Screening applied to governance participation.
        screening_fee_distributions:
          type: string
          title: Screening Fee Distributions
          description: Screening applied to protocol-generated fee distributions.
        screening_treasury:
          type: string
          title: Screening Treasury
          description: Screening applied to treasury disbursements.
        sanctions_implementing_entity:
          anyOf:
          - type: string
          - type: 'null'
          title: Sanctions Implementing Entity
          description: Which entity implements the screening controls answered `yes`
            above.
        sanctions_restricted_countries:
          anyOf:
          - items:
              $ref: '#/components/schemas/CountryCodeAlpha2'
            type: array
          - type: 'null'
          title: Sanctions Restricted Countries
          description: Specific countries subject to restriction.
        has_token:
          type: boolean
          title: Has Token
          description: Does this ecosystem have a token? The token fields are answered
            only when this is `true`.
        token_basics:
          anyOf:
          - $ref: '#/components/schemas/TokenBasics'
          - type: 'null'
          description: Name, ticker, network, and deployment date of the token. Applies
            only when `has_token` is `true`.
        token_issuer:
          anyOf:
          - $ref: '#/components/schemas/TokenIssuer'
          - type: 'null'
          description: Who issued the token. Applies only when `has_token` is `true`.
        token_supply:
          anyOf:
          - $ref: '#/components/schemas/TokenSupply'
          - type: 'null'
          description: Supply and initial distribution of the token. Applies only
            when `has_token` is `true`.
        token_function:
          anyOf:
          - $ref: '#/components/schemas/TokenFunction'
          - type: 'null'
          description: What the token does and what its holders receive. Applies only
            when `has_token` is `true`.
        token_custody:
          anyOf:
          - $ref: '#/components/schemas/TokenCustody'
          - type: 'null'
          description: How the token is issued, distributed, and custodied. Applies
            only when `has_token` is `true`.
        obtained_legal_analysis:
          type: boolean
          title: Obtained Legal Analysis
          description: Has any ecosystem entity obtained a legal analysis regarding
            licensing or registration obligations under applicable virtual asset,
            money transmission, or securities laws?
        legal_analysis_summary:
          anyOf:
          - type: string
          - type: 'null'
          title: Legal Analysis Summary
          description: Please attach a copy or provide a summary below. Applies only
            when `obtained_legal_analysis` is `true`.
        registered_as_msb_vasp:
          type: boolean
          title: Registered As Msb Vasp
          description: Has any ecosystem entity registered as a money services business,
            VASP, or similar regulated entity?
        msb_vasp_details:
          anyOf:
          - type: string
          - type: 'null'
          title: Msb Vasp Details
          description: Please provide details (entity name, registration type, jurisdiction).
            Applies only when `registered_as_msb_vasp` is `true`.
        registration_not_required:
          type: boolean
          title: Registration Not Required
          description: Has any ecosystem entity determined that registration is not
            required?
        registration_not_required_details:
          anyOf:
          - type: string
          - type: 'null'
          title: Registration Not Required Details
          description: Please provide details or supporting documentation. Applies
            only when `registration_not_required` is `true`.
      type: object
      required:
      - protocol_name
      - protocol_upgrade_process
      - treasury_authority
      - has_unilateral_authority
      - fund_flows_description
      - has_contractual_arrangements
      - protocol_generates_fees
      - users_can_interact_directly
      - interface_implements_screening
      - wallet_address_screening
      - ip_geoblocking
      - blocking_sanctioned_jurisdictions
      - blocking_sanctioned_wallets
      - screening_token_sale
      - screening_governance
      - screening_fee_distributions
      - screening_treasury
      - has_token
      - obtained_legal_analysis
      - registered_as_msb_vasp
      - registration_not_required
      title: ProtocolEcosystemDueDiligence
    ProtocolEcosystemEddFormRequest:
      properties:
        form_type:
          type: string
          const: protocol_ecosystem
          title: Form Type
          description: Selects the protocol-ecosystem form. Must be `protocol_ecosystem`.
        form_data:
          $ref: '#/components/schemas/ProtocolEcosystemDueDiligence'
          description: Answers to the protocol-ecosystem form. Fetch the form's schema
            first, and answer every element it marks required.
      type: object
      required:
      - form_type
      - form_data
      title: ProtocolEcosystemEddFormRequest
    PublicFeatureAccessRequestResponse:
      properties:
        feature:
          $ref: '#/components/schemas/PublicRestrictedFeature'
          description: The restricted feature this request is for.
        status:
          $ref: '#/components/schemas/PublicFeatureAccessStatus'
          description: Where the request stands. `pending` is awaiting review, `approved`
            means the feature is enabled, and `rejected` means it was declined.
      type: object
      required:
      - feature
      - status
      title: PublicFeatureAccessRequestResponse
    PublicFeatureAccessRequestsResponse:
      properties:
        data:
          items:
            $ref: '#/components/schemas/PublicFeatureAccessRequestResponse'
          type: array
          title: Data
          description: Your feature access requests, one per feature you have requested.
      type: object
      required:
      - data
      title: PublicFeatureAccessRequestsResponse
    PublicFeatureAccessStatus:
      type: string
      enum:
      - pending
      - approved
      - rejected
      title: PublicFeatureAccessStatus
      x-enum-varnames:
      - pending
      - approved
      - rejected
    PublicKybProofType:
      type: string
      enum:
      - accredited
      - address
      - articles_of_organization
      - bank_statement
      - client_contract
      - client_invoice
      - beneficial_owner_address
      - beneficial_owner_id
      - beneficial_owner_id_back
      - beneficial_ownership_register
      - bylaws
      - certificate_of_good_standing
      - corporate_resolution
      - drivers_license
      - due_diligence
      - ein
      - final_edd_report
      - periodic_review_report
      - government_issued_business_license
      - hemp_cultivator_state_license
      - incorporation
      - industry_related_license
      - lease_agreement
      - llc_resolution
      - money_service_business_license
      - money_transmitter_registration
      - mortgage_statement
      - national_id
      - org_chart
      - partnership_agreement
      - partnership_agreement_due_diligence
      - partnership_resolution
      - personal_address
      - remote_employees_due_diligence
      - signed_ss4
      - tax_exemption_certificate
      - uk_officer_passport
      - officer_registry
      - uk_registry
      - shareholder_registry
      - uk_w8_en
      - utility_bill
      - us_based_office_proof_of_address_due_diligence
      - pitch_deck
      - active_business_registration
      - proof_of_ownership_or_banking_authorization
      - non_profit_bylaws
      - operating_agreement
      - flow_of_funds
      - aml_sanction
      - registration_or_license
      - sec_filing
      - legal_opinion
      - certificate_of_formation_master_llc
      - series_operating_agreement
      - share_subscription_agreement
      - fund_subscription_agreement
      - safe_agreement
      - convertible_note_agreement
      - loan_promissory_note
      - token_purchase_agreement
      - saft_agreement
      - deal_memo_hybrid_agreement
      - issuer_due_diligence_report
      - protocol_ecosystem_questionnaire
      - investment_company_due_diligence_form
      - us_based_operations_due_diligence_form
      - register_of_directors
      - articles_of_association
      - memorandum_of_association
      - non_profit_status
      - ofac_sanctions_screening_policy
      - aml_kyc_policy
      - w8_bene
      - corporate_structure_chart
      - custody_safeguarding_agreement
      - reserve_attestation
      - sanctions_vendor_service_agreement
      - contractual_fund_flow_agreements
      title: PublicKybProofType
      x-enum-varnames:
      - accredited
      - address
      - articles_of_organization
      - bank_statement
      - client_contract
      - client_invoice
      - beneficial_owner_address
      - beneficial_owner_id
      - beneficial_owner_id_back
      - beneficial_ownership_register
      - bylaws
      - certificate_of_good_standing
      - corporate_resolution
      - drivers_license
      - due_diligence
      - ein
      - final_edd_report
      - periodic_review_report
      - government_issued_business_license
      - hemp_cultivator_state_license
      - incorporation
      - industry_related_license
      - lease_agreement
      - llc_resolution
      - money_service_business_license
      - money_transmitter_registration
      - mortgage_statement
      - national_id
      - org_chart
      - partnership_agreement
      - partnership_agreement_due_diligence
      - partnership_resolution
      - personal_address
      - remote_employees_due_diligence
      - signed_ss4
      - tax_exemption_certificate
      - uk_officer_passport
      - officer_registry
      - uk_registry
      - shareholder_registry
      - uk_w8_en
      - utility_bill
      - us_based_office_proof_of_address_due_diligence
      - pitch_deck
      - active_business_registration
      - proof_of_ownership_or_banking_authorization
      - non_profit_bylaws
      - operating_agreement
      - flow_of_funds
      - aml_sanction
      - registration_or_license
      - sec_filing
      - legal_opinion
      - certificate_of_formation_master_llc
      - series_operating_agreement
      - share_subscription_agreement
      - fund_subscription_agreement
      - safe_agreement
      - convertible_note_agreement
      - loan_promissory_note
      - token_purchase_agreement
      - saft_agreement
      - deal_memo_hybrid_agreement
      - issuer_due_diligence_report
      - protocol_ecosystem_questionnaire
      - investment_company_due_diligence_form
      - us_based_operations_due_diligence_form
      - register_of_directors
      - articles_of_association
      - memorandum_of_association
      - non_profit_status
      - ofac_sanctions_screening_policy
      - aml_kyc_policy
      - w8_bene
      - corporate_structure_chart
      - custody_safeguarding_agreement
      - reserve_attestation
      - sanctions_vendor_service_agreement
      - contractual_fund_flow_agreements
    PublicOnboardingStep:
      type: string
      enum:
      - gather_business_context
      - collect_user_info
      - collect_business_addresses
      - collect_business_details
      - collect_additional_details
      - complete_due_diligence
      - upload_documents
      - manage_representatives
      - complete_identity_verification
      - accept_terms
      - submit_application
      - monitor_review
      - resolve_info_requests
      - onboarding_complete
      title: PublicOnboardingStep
      x-enum-varnames:
      - gather_business_context
      - collect_user_info
      - collect_business_addresses
      - collect_business_details
      - collect_additional_details
      - complete_due_diligence
      - upload_documents
      - manage_representatives
      - complete_identity_verification
      - accept_terms
      - submit_application
      - monitor_review
      - resolve_info_requests
      - onboarding_complete
    PublicOnboardingType:
      type: string
      enum:
      - api
      - smb
      - mcp
      - partner
      title: PublicOnboardingType
      x-enum-varnames:
      - api
      - smb
      - mcp
      - partner
    PublicOutstandingItem:
      properties:
        kind:
          $ref: '#/components/schemas/PublicOutstandingItemKind'
          description: '`document` for a file the request is still missing, `answers`
            for its follow-up questions, or `tin` for its tax identification number.'
        proof_type:
          anyOf:
          - $ref: '#/components/schemas/PublicKybProofType'
          - type: 'null'
          description: The document still owed, as a `proof_type` value to pass to
            the document upload endpoints. Null for an `answers` or `tin` item.
        detail:
          type: string
          title: Detail
          description: The item written out for a person to read. Prose, so match
            on `kind` and `proof_type` rather than on this.
      type: object
      required:
      - kind
      - detail
      title: PublicOutstandingItem
    PublicOutstandingItemKind:
      type: string
      enum:
      - document
      - answers
      - tin
      title: PublicOutstandingItemKind
      x-enum-varnames:
      - document
      - answers
      - tin
    PublicPaymentRail:
      type: string
      enum:
      - ACH
      - WIRE
      - INTERNATIONAL_PAYMENT_FX
      - CHECK
      - CRYPTO
      title: PublicPaymentRail
      description: 'The rails this API names, spelled the way the bills API spells
        them.


        A caller reads `payment_details.payment_type` off a bill and feeds it back

        here, so the FX rail has to answer to BillPaymentTypeEnum''s name for it —

        the internal PaymentDeliveryRail calls the same rail INTERNATIONAL_PAYMENT.'
      x-enum-varnames:
      - ACH
      - WIRE
      - INTERNATIONAL_PAYMENT_FX
      - CHECK
      - CRYPTO
    PublicRestrictedFeature:
      type: string
      enum:
      - international_payments
      title: PublicRestrictedFeature
      x-enum-varnames:
      - international_payments
    PublicWireDrawdownRequestStatus:
      type: string
      enum:
      - pending
      - approved
      - rejected
      - failed
      title: PublicWireDrawdownRequestStatus
      x-enum-varnames:
      - pending
      - approved
      - rejected
      - failed
    RealEstateDueDiligence:
      properties:
        overview:
          type: string
          title: Overview
          description: Provide an overview of business activities and market focus.
            Make sure to include industry and area focuses as applicable.
        collects_rent_payments:
          type: boolean
          title: Collects Rent Payments
          description: Do you collect rent payments as part of your business operations?
        property_types:
          items:
            $ref: '#/components/schemas/PropertyType'
          type: array
          title: Property Types
          description: What type of properties are held?
        restricted_purpose:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Restricted Purpose
          description: Do you hold commercial properties being used for any of the
            following purposes? Cannabis-Related Businesses, Fire-Arm Retailers, Adult
            Entertainment Establishments, Gambling Establishments. Applies only when
            `property_types` includes `commercial_use`.
        other_countries_invested:
          anyOf:
          - items:
              $ref: '#/components/schemas/CountryCodeAlpha2'
            type: array
          - type: 'null'
          title: Other Countries Invested
          description: Do you have properties (current or planned) in other countries
            aside from the US?
        works_with_investors:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Works With Investors
          description: Do you work with investors?
        investors:
          anyOf:
          - $ref: '#/components/schemas/InvestorsDueDiligence'
          - type: 'null'
          description: Answers about the investors you work with. Applies only when
            `works_with_investors` is `true`.
        loan_types:
          anyOf:
          - items:
              $ref: '#/components/schemas/LoanType'
            type: array
          - type: 'null'
          title: Loan Types
          description: If you offer loans, please select the type from the options
            below.
        other_loan_types:
          anyOf:
          - type: string
          - type: 'null'
          title: Other Loan Types
          description: What other loan types are managed? Applies only when `loan_types`
            includes `other`.
      type: object
      required:
      - overview
      - collects_rent_payments
      - property_types
      title: RealEstateDueDiligence
    RealEstateEddFormRequest:
      properties:
        form_type:
          type: string
          const: real_estate
          title: Form Type
          description: Selects the real-estate form. Must be `real_estate`.
        form_data:
          $ref: '#/components/schemas/RealEstateDueDiligence'
          description: Answers to the real-estate form. Fetch the form's schema first,
            and answer every element it marks required.
      type: object
      required:
      - form_type
      - form_data
      title: RealEstateEddFormRequest
    RealEstateHoldingDueDiligence:
      properties:
        property_types:
          items:
            $ref: '#/components/schemas/PropertyType'
          type: array
          title: Property Types
          description: What type of properties are held?
        restricted_purpose:
          type: boolean
          title: Restricted Purpose
          description: Do you hold commercial properties being used for any of the
            following purposes? Cannabis-Related Businesses, Fire-Arm Retailers, Adult
            Entertainment Establishments, Gambling Establishments. Applies only when
            `property_types` includes `commercial_use`.
          default: false
      type: object
      required:
      - property_types
      title: RealEstateHoldingDueDiligence
    ReceiptConfirmation:
      properties:
        object_key:
          type: string
          title: Object Key
          description: Opaque upload key returned with the upload URL.
        filename:
          type: string
          title: Filename
          description: Name of the uploaded receipt file.
      type: object
      required:
      - object_key
      - filename
      title: ReceiptConfirmation
    ReceiptFile:
      properties:
        filename:
          type: string
          title: Filename
          description: Name of the receipt file you will upload.
        content_type:
          $ref: '#/components/schemas/FileType'
          description: MIME type of the receipt file.
        size:
          type: integer
          maximum: 10485760.0
          minimum: 1.0
          title: Size
          description: Size of the receipt file in bytes.
      type: object
      required:
      - filename
      - content_type
      - size
      title: ReceiptFile
    ReceiptMatchFailureReason:
      type: string
      enum:
      - no_matching_transactions
      - vendor_name_mismatch
      - transaction_already_has_receipt
      - document_not_receipt
      - unreadable
      - unsupported_currency
      title: ReceiptMatchFailureReason
      x-enum-varnames:
      - no_matching_transactions
      - vendor_name_mismatch
      - transaction_already_has_receipt
      - document_not_receipt
      - unreadable
      - unsupported_currency
    ReceiptMatchStatus:
      type: string
      enum:
      - processing
      - matched
      - failed
      - dismissed
      title: ReceiptMatchStatus
      x-enum-varnames:
      - processing
      - matched
      - failed
      - dismissed
    ReceiptResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Identifier used to retrieve this receipt.
        filename:
          type: string
          title: Filename
          description: Name of the receipt file.
        match_status:
          $ref: '#/components/schemas/ReceiptMatchStatus'
          description: Current receipt matching status.
        match_failure_reason:
          anyOf:
          - $ref: '#/components/schemas/ReceiptMatchFailureReason'
          - type: 'null'
          description: Why matching failed, or null while matching or after a match.
        matched_transaction_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Matched Transaction Id
          description: The matched card transaction's identifier, or null until matched.
      type: object
      required:
      - id
      - filename
      - match_status
      - match_failure_reason
      - matched_transaction_id
      title: ReceiptResponse
    ReceiptUpload:
      properties:
        url:
          type: string
          title: Url
          description: Short-lived URL for uploading this receipt.
        fields:
          additionalProperties:
            type: string
          type: object
          title: Fields
          description: Form fields required with the upload.
        object_key:
          type: string
          title: Object Key
          description: Opaque upload key to pass to Create Receipts.
        filename:
          type: string
          title: Filename
          description: Name of the receipt file.
        max_bytes:
          type: integer
          title: Max Bytes
          description: Maximum accepted file size in bytes.
      type: object
      required:
      - url
      - fields
      - object_key
      - filename
      - max_bytes
      title: ReceiptUpload
    ReceiptUploadUrlsRequest:
      properties:
        files:
          items:
            $ref: '#/components/schemas/ReceiptFile'
          type: array
          maxItems: 10
          minItems: 1
          title: Files
          description: Receipt files that need upload URLs.
      type: object
      required:
      - files
      title: ReceiptUploadUrlsRequest
    ReceiptUploadUrlsResponse:
      properties:
        uploads:
          items:
            $ref: '#/components/schemas/ReceiptUpload'
          type: array
          title: Uploads
          description: Upload instructions for each receipt.
      type: object
      required:
      - uploads
      title: ReceiptUploadUrlsResponse
    ReceiptsResponse:
      properties:
        data:
          items:
            $ref: '#/components/schemas/ReceiptResponse'
          type: array
          title: Data
          description: Receipts available to your API key.
      type: object
      required:
      - data
      title: ReceiptsResponse
    ReconcileBillLineItem:
      properties:
        type:
          $ref: '#/components/schemas/BillLineItemTypeEnum'
          description: Whether this line is an expense or an itemized quantity.
        amount:
          anyOf:
          - type: number
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Amount
          description: The unit amount for the line, in the bill's currency. Unsplit
            lines must be positive; split expense lines may be zero or negative.
        description:
          type: string
          minLength: 1
          title: Description
          description: What this line is for.
        quantity:
          anyOf:
          - type: number
            exclusiveMinimum: 0.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,3}0*$
          - type: 'null'
          title: Quantity
          description: Quantity, required when the line is itemized.
        split_group:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Split Group
          description: Identifier shared by expense lines that allocate one original
            line. Every line in the group must use the same description.
        line_item_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Line Item Id
          description: The ID of an existing line on this bill, from its `line_items`.
            Send it to edit that line in place and keep the expense account and Class
            mapped to it; omit it to add a new line. Any line you leave out of the
            list is removed, along with its mappings.
      type: object
      required:
      - type
      - amount
      - description
      title: ReconcileBillLineItem
    ReimbursementRequestStatusEnum:
      type: string
      enum:
      - DRAFT
      - PENDING
      - APPROVED
      - REJECTED
      - PAID
      - CANCELLED
      - PROCESSING
      - PAYMENT_FAILED
      title: ReimbursementRequestStatusEnum
      x-enum-varnames:
      - DRAFT
      - PENDING
      - APPROVED
      - REJECTED
      - PAID
      - CANCELLED
      - PROCESSING
      - PAYMENT_FAILED
    ReimbursementResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Meow's stable identifier for the reimbursement request.
        employee:
          $ref: '#/components/schemas/UserResponse'
          description: The employee receiving the reimbursement.
        amount:
          anyOf:
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          - type: 'null'
          title: Amount
          description: Amount requested in `currency`. Null when no amount was recorded.
        currency:
          $ref: '#/components/schemas/Iso4217Code'
          description: ISO 4217 currency code for `amount`.
        status:
          $ref: '#/components/schemas/ReimbursementRequestStatusEnum'
          description: Current reimbursement status.
        merchant_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Merchant Name
          description: Merchant associated with the expense, when supplied.
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: Employee-provided explanation of the expense, when supplied.
        attachment_url:
          anyOf:
          - type: string
          - type: 'null'
          title: Attachment Url
          description: A short-lived URL to download the reimbursement attachment.
            Null when no attachment was provided.
        transaction_date:
          anyOf:
          - $ref: '#/components/schemas/DateString'
          - type: 'null'
          description: Date of the reimbursed purchase, when supplied.
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: When the reimbursement request was created in Meow.
        completed_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: When the reimbursement was approved, rejected, or paid, when
            known.
      type: object
      required:
      - id
      - employee
      - amount
      - currency
      - status
      - merchant_name
      - description
      - attachment_url
      - transaction_date
      - created_at
      - completed_at
      title: ReimbursementResponse
    ReimbursementsResponse:
      properties:
        data:
          items:
            $ref: '#/components/schemas/ReimbursementResponse'
          type: array
          title: Data
          description: Reimbursement requests for your entity.
        page:
          anyOf:
          - $ref: '#/components/schemas/PageMetadata'
          - type: 'null'
          description: Pagination metadata.
      type: object
      required:
      - data
      title: ReimbursementsResponse
    RelatedEntity:
      properties:
        legal_name:
          type: string
          title: Legal Name
          description: Legal name of the related entity.
        jurisdiction_of_formation:
          $ref: '#/components/schemas/CountryCodeAlpha2'
          description: Country the related entity was formed in.
        primary_functional_role:
          type: string
          title: Primary Functional Role
          description: What the related entity does within the protocol ecosystem.
      type: object
      required:
      - legal_name
      - jurisdiction_of_formation
      - primary_functional_role
      title: RelatedEntity
    RepresentativeTitle:
      type: string
      enum:
      - chief executive officer
      - chief financial officer
      - chief operating officer
      - finance manager
      - general partner
      - managing member
      - president
      title: RepresentativeTitle
      x-enum-varnames:
      - chief_executive_officer
      - chief_financial_officer
      - chief_operating_officer
      - finance_manager
      - general_partner
      - managing_member
      - president
    RequestFeatureAccessRequest:
      properties:
        feature:
          $ref: '#/components/schemas/PublicRestrictedFeature'
          description: The restricted feature you are requesting access to.
        eligibility:
          $ref: '#/components/schemas/InternationalPaymentsEligibility'
          description: The eligibility details we need to review your international
            payments request.
      type: object
      required:
      - feature
      - eligibility
      title: RequestFeatureAccessRequest
    RevokeCardResponse:
      properties:
        card_id:
          type: string
          format: uuid
          title: Card Id
          description: The card that was revoked.
        status:
          $ref: '#/components/schemas/CardStatus'
          description: The card's status after revoking, which is always `closed`.
      type: object
      required:
      - card_id
      - status
      title: RevokeCardResponse
    RoutingNumber:
      properties:
        routing_number:
          type: string
          title: Routing Number
          description: The nine-digit ABA 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 bank address line, when available.
        address_2:
          anyOf:
          - type: string
          - type: 'null'
          title: Address 2
          description: The secondary bank address line, when available.
        wire:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Wire
          description: Whether the bank supports wire transfers. Null means support
            is unknown, which is distinct from false.
        ach:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Ach
          description: Whether the bank supports ACH transfers. Null means support
            is unknown, which is distinct from false.
        city:
          anyOf:
          - type: string
          - type: 'null'
          title: City
          description: The city of the bank branch, when available.
        state:
          anyOf:
          - type: string
          - type: 'null'
          title: State
          description: The state of the bank branch, when available.
        zip_code:
          anyOf:
          - type: string
          - type: 'null'
          title: Zip Code
          description: The ZIP code of the bank branch, when available.
      type: object
      required:
      - routing_number
      - bank_name
      title: RoutingNumber
      description: 'Best-effort bank information for a nine-digit ABA routing number.


        This response is not a complete bank address for creating a contact.'
    ScheduledAchTransfer:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Unique identifier for the scheduled transfer.
        status:
          $ref: '#/components/schemas/TransferStatus'
          description: Current status of the scheduled transfer.
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          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 on
            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 transfer method (e.g. `ach`).
        metadata:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 200
            propertyNames:
              maxLength: 40
              minLength: 1
            type: object
            maxProperties: 20
          - type: 'null'
          title: Metadata
          description: The metadata attached when this schedule was created, unchanged.
            Every payment the schedule sends carries it too. `null` when none was
            attached.
      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
    ScheduledBillSummary:
      properties:
        bill_id:
          type: string
          format: uuid
          title: Bill Id
          description: The bill this occurrence produced.
        status:
          $ref: '#/components/schemas/BillStatusEnum'
          description: The bill's current status.
        scheduled_payment_date:
          anyOf:
          - $ref: '#/components/schemas/DateString'
          - type: 'null'
          description: The date this occurrence is set to pay.
        total:
          anyOf:
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          - type: 'null'
          title: Total
          description: The bill's total, in the schedule's currency.
      type: object
      required:
      - bill_id
      - status
      title: ScheduledBillSummary
    ScheduledWireTransfer:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Unique identifier for the scheduled wire.
        status:
          $ref: '#/components/schemas/TransferStatus'
          description: Current status of the schedule, not of any single wire.
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: Amount sent on each occurrence, in USD.
        instructions:
          anyOf:
          - type: string
          - type: 'null'
          title: Instructions
          description: Wire instructions sent to the receiving bank each time.
        purpose:
          anyOf:
          - type: string
          - type: 'null'
          title: Purpose
          description: The purpose of payment you stated when scheduling.
        schedule_description:
          anyOf:
          - type: string
          - type: 'null'
          title: Schedule Description
          description: A human-readable description of the schedule (e.g. "once on
            Dec 29, 2025").
        counterparty_id:
          type: string
          format: uuid
          title: Counterparty Id
          description: Contact paid on each occurrence.
        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: When the next wire will be sent.
        transfer_type:
          $ref: '#/components/schemas/TransferMethod'
          description: Rail used on each occurrence. Always `wire`.
        metadata:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 200
            propertyNames:
              maxLength: 40
              minLength: 1
            type: object
            maxProperties: 20
          - type: 'null'
          title: Metadata
          description: The metadata attached when this schedule was created, unchanged.
            Every wire the schedule sends carries it too. `null` when none was attached.
      type: object
      required:
      - id
      - status
      - amount
      - counterparty_id
      - rrule
      - first_occurrence
      - transfer_type
      title: ScheduledWireTransfer
    ScheduledWireTransfers:
      properties:
        page:
          anyOf:
          - $ref: '#/components/schemas/PageMetadata'
          - type: 'null'
          description: Metadata for pagination.
        scheduled_wire_transfers:
          items:
            $ref: '#/components/schemas/ScheduledWireTransfer'
          type: array
          title: Scheduled Wire Transfers
          description: A list of scheduled wire transfers for the account.
      type: object
      required:
      - scheduled_wire_transfers
      title: ScheduledWireTransfers
    SecurityType:
      type: string
      enum:
      - BOND
      - DEBT
      - MUTUALFUND
      - OPTION
      - OTHER
      - STOCK
      - SWEEP
      title: SecurityType
    SimulateApplicationApprovalRequest:
      properties:
        banking_account_product_type:
          $ref: '#/components/schemas/EntityCheckingAccountProduct'
          description: The checking account product to open once the application is
            approved. Defaults to `grasshopper`.
          default: grasshopper
      type: object
      title: SimulateApplicationApprovalRequest
    SimulateCardAuthorizationRequest:
      properties:
        card_id:
          type: string
          format: uuid
          title: Card Id
          description: The card to authorize against, as returned by Create Card.
        amount:
          anyOf:
          - type: number
            maximum: 20000000.0
            exclusiveMinimum: 0.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Amount
          description: The authorization amount, in dollars.
        currency:
          $ref: '#/components/schemas/Iso4217Code'
          description: The ISO 4217 currency of the authorization.
          default: USD
        merchant:
          $ref: '#/components/schemas/SimulatedCardMerchant'
          description: The merchant presenting the authorization.
        is_amount_controllable:
          type: boolean
          title: Is Amount Controllable
          description: Whether the final captured amount may differ from the requested
            amount (for example, partial captures or added tips).
          default: true
        authorization_method:
          anyOf:
          - $ref: '#/components/schemas/SimulatedCardAuthorizationMethod'
          - type: 'null'
          description: How the card was presented for the authorization.
        wallet:
          anyOf:
          - $ref: '#/components/schemas/SimulatedCardWallet'
          - type: 'null'
          description: The digital wallet used, if any.
      type: object
      required:
      - card_id
      - amount
      - merchant
      title: SimulateCardAuthorizationRequest
    SimulateCardAuthorizationResponse:
      properties:
        authorization_id:
          type: string
          title: Authorization Id
          description: The authorization identifier. Pass this to capture, increment,
            or reverse the authorization.
        status:
          $ref: '#/components/schemas/SimulatedCardAuthorizationStatus'
          description: The authorization status.
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: The authorization amount, in dollars.
        approved:
          type: boolean
          title: Approved
          description: Whether the authorization was approved.
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: When the authorization was created.
      type: object
      required:
      - authorization_id
      - status
      - amount
      - approved
      - created_at
      title: SimulateCardAuthorizationResponse
    SimulateCardCaptureRequest:
      properties:
        capture_amount:
          anyOf:
          - type: number
            maximum: 20000000.0
            exclusiveMinimum: 0.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          - type: 'null'
          title: Capture Amount
          description: Amount to capture, in dollars. Defaults to the full authorized
            amount.
        close_authorization:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Close Authorization
          description: Whether to close the authorization after capturing.
      type: object
      title: SimulateCardCaptureRequest
    SimulateCardIncrementRequest:
      properties:
        increment_amount:
          anyOf:
          - type: number
            maximum: 20000000.0
            exclusiveMinimum: 0.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Increment Amount
          description: Amount to increase the authorization by, in dollars.
        is_amount_controllable:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Is Amount Controllable
          description: Whether the final captured amount may differ from the incremented
            amount.
      type: object
      required:
      - increment_amount
      title: SimulateCardIncrementRequest
    SimulateCardRefundRequest:
      properties:
        refund_amount:
          anyOf:
          - type: number
            maximum: 20000000.0
            exclusiveMinimum: 0.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          - type: 'null'
          title: Refund Amount
          description: Amount to refund, in dollars. Defaults to the full transaction
            amount.
      type: object
      title: SimulateCardRefundRequest
    SimulateCardReverseRequest:
      properties:
        reverse_amount:
          anyOf:
          - type: number
            maximum: 20000000.0
            exclusiveMinimum: 0.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          - type: 'null'
          title: Reverse Amount
          description: Amount to reverse, in dollars. Defaults to the full authorized
            amount.
      type: object
      title: SimulateCardReverseRequest
    SimulateCardTransactionResponse:
      properties:
        transaction_id:
          type: string
          format: uuid
          title: Transaction Id
          description: The identifier of the transaction that was refunded, as returned
            by the list card transactions endpoint.
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: The refunded amount, in dollars.
        currency:
          $ref: '#/components/schemas/Iso4217Code'
          description: The ISO 4217 currency of the transaction.
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: When the transaction was created.
      type: object
      required:
      - transaction_id
      - amount
      - currency
      - created_at
      title: SimulateCardTransactionResponse
    SimulateFundFinancialAccountRequest:
      properties:
        amount:
          anyOf:
          - type: number
            maximum: 20000000.0
            exclusiveMinimum: 0.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Amount
          description: Amount to fund the account with, in dollars.
      type: object
      required:
      - amount
      title: SimulateFundFinancialAccountRequest
    SimulateFundFinancialAccountResponse:
      properties:
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: The simulated funding amount, in dollars.
        status:
          $ref: '#/components/schemas/SimulatedTransferStatus'
          description: The status of the simulated funding.
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: When the simulation was submitted.
      type: object
      required:
      - amount
      - status
      - created_at
      title: SimulateFundFinancialAccountResponse
    SimulateInboundTransferRequest:
      properties:
        account_id:
          type: string
          title: Account Id
          description: The cash account ID, exactly as returned by the list accounts
            endpoint (for example, `cash_account_<uuid>`).
        rail:
          $ref: '#/components/schemas/SimulatedInboundRail'
          description: The payment rail to simulate the inbound transfer over.
        amount:
          anyOf:
          - type: number
            maximum: 20000000.0
            exclusiveMinimum: 0.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,2}0*$
          title: Amount
          description: The transfer amount, in dollars.
        memo:
          anyOf:
          - type: string
            minLength: 1
          - type: 'null'
          title: Memo
          description: Optional payment memo or reference. The maximum length depends
            on the rail and the cash account's bank, and some combinations carry no
            memo. A memo that the simulator cannot carry returns 400 without creating
            a transfer. Omit or send null to keep the default simulation text.
      type: object
      required:
      - account_id
      - rail
      - amount
      title: SimulateInboundTransferRequest
    SimulateInboundTransferResponse:
      properties:
        account_id:
          type: string
          title: Account Id
          description: The cash account the simulated funds were credited to.
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: The simulated transfer amount, in dollars.
        rail:
          $ref: '#/components/schemas/SimulatedInboundRail'
          description: The payment rail the transfer was simulated over.
        status:
          $ref: '#/components/schemas/SimulatedTransferStatus'
          description: The status of the simulated transfer.
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: When the simulation was submitted.
        sender_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Sender Name
          description: The simulated sender name stamped on this transfer. It appears
            as the transaction's counterparty name once the transfer settles, and
            as `originator_name` on the resulting `inbound_ach_transfer.*` / `inbound_wire_transfer.*`
            webhook — use it to correlate this simulation with the transaction and
            webhook it produces. Poll `GET /simulations/inbound_transfers/{sender_name}`
            to check whether it has settled yet. Null for `fednow`, whose simulation
            has no sender-name field.
      type: object
      required:
      - account_id
      - amount
      - rail
      - status
      - created_at
      title: SimulateInboundTransferResponse
    SimulatedCardAuthorizationMethod:
      type: string
      enum:
      - chip
      - contactless
      - keyed_in
      - online
      - swipe
      title: SimulatedCardAuthorizationMethod
      x-enum-varnames:
      - chip
      - contactless
      - keyed_in
      - online
      - swipe
    SimulatedCardAuthorizationStatus:
      type: string
      enum:
      - pending
      - closed
      - expired
      - reversed
      title: SimulatedCardAuthorizationStatus
      x-enum-varnames:
      - pending
      - closed
      - expired
      - reversed
    SimulatedCardMerchant:
      properties:
        name:
          type: string
          title: Name
          description: Merchant name, as it would appear on the transaction.
        category:
          $ref: '#/components/schemas/ExtStripeIssuingMerchantCategory'
          description: Merchant category name, such as `eating_places_restaurants`.
            Send the name, not the four-digit merchant category code (MCC). Card spending
            controls match against this category.
        city:
          type: string
          title: City
          description: City the merchant is in.
        country:
          $ref: '#/components/schemas/CountryCodeAlpha2'
          description: ISO 3166-1 alpha-2 country code of the merchant.
        state:
          anyOf:
          - $ref: '#/components/schemas/StateCode'
          - type: 'null'
          description: State or province of the merchant.
        postal_code:
          anyOf:
          - type: string
          - type: 'null'
          title: Postal Code
          description: Postal or ZIP code of the merchant.
        network_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Network Id
          description: Card-network identifier assigned to the merchant.
        terminal_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Terminal Id
          description: Identifier of the terminal the card was presented at.
        url:
          anyOf:
          - type: string
          - type: 'null'
          title: Url
          description: Merchant website.
      type: object
      required:
      - name
      - category
      - city
      - country
      title: SimulatedCardMerchant
      description: Merchant details to stamp on a simulated card authorization.
    SimulatedCardWallet:
      type: string
      enum:
      - apple_pay
      - google_pay
      - samsung_pay
      title: SimulatedCardWallet
      x-enum-varnames:
      - apple_pay
      - google_pay
      - samsung_pay
    SimulatedInboundRail:
      type: string
      enum:
      - ach
      - wire
      - rtp
      - fednow
      title: SimulatedInboundRail
      x-enum-varnames:
      - ach
      - wire
      - rtp
      - fednow
    SimulatedInboundTransferSettlementStatus:
      type: string
      enum:
      - processing
      - settled
      title: SimulatedInboundTransferSettlementStatus
      x-enum-varnames:
      - processing
      - settled
    SimulatedInboundTransferStatusResponse:
      properties:
        sender_name:
          type: string
          title: Sender Name
          description: The simulation's correlation token.
        status:
          $ref: '#/components/schemas/SimulatedInboundTransferSettlementStatus'
          description: '`processing` until the simulated transfer settles into a transaction;
            `settled` once it has.'
        transaction_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Transaction Id
          description: The settled transaction's ID, as returned by the list transactions
            endpoint. Null while `processing`.
        amount:
          anyOf:
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          - type: 'null'
          title: Amount
          description: The settled transaction's amount, in dollars. Null while `processing`.
      type: object
      required:
      - sender_name
      - status
      title: SimulatedInboundTransferStatusResponse
    SimulatedTransferStatus:
      type: string
      enum:
      - submitted
      title: SimulatedTransferStatus
      x-enum-varnames:
      - submitted
    SpendBucket:
      properties:
        label:
          type: string
          title: Label
          description: What this bucket counts, such as a cardholder.
        total:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Total
          description: Total spent in this bucket.
      type: object
      required:
      - label
      - total
      title: SpendBucket
    SpendingControls:
      properties:
        per_transaction_limit:
          type: integer
          maximum: 200000.0
          exclusiveMinimum: 0.0
          title: Per Transaction Limit
          description: Per-transaction spend limit in whole dollars. It can't exceed
            your entity's limit for agent cards, which is $25,000 unless Meow has
            set a different one.
        daily_limit:
          anyOf:
          - type: integer
            maximum: 1000000000.0
            minimum: 0.0
          - type: 'null'
          title: Daily Limit
          description: Daily spend limit in whole dollars, resetting at midnight UTC.
        weekly_limit:
          anyOf:
          - type: integer
            maximum: 1000000000.0
            minimum: 0.0
          - type: 'null'
          title: Weekly Limit
          description: Weekly spend limit in whole dollars, resetting Sunday at midnight
            UTC.
        monthly_limit:
          anyOf:
          - type: integer
            maximum: 1000000000.0
            minimum: 0.0
          - type: 'null'
          title: Monthly Limit
          description: Monthly spend limit in whole dollars, resetting on the 1st
            at midnight UTC.
        yearly_limit:
          anyOf:
          - type: integer
            maximum: 1000000000.0
            minimum: 0.0
          - type: 'null'
          title: Yearly Limit
          description: Yearly spend limit in whole dollars, resetting January 1st
            at midnight UTC.
        all_time_limit:
          anyOf:
          - type: integer
            maximum: 1000000000.0
            minimum: 0.0
          - type: 'null'
          title: All Time Limit
          description: Lifetime spend limit in whole dollars. It never resets.
      type: object
      required:
      - per_transaction_limit
      title: SpendingControls
    StateCode:
      type: string
      enum:
      - AL
      - AK
      - AZ
      - AR
      - CA
      - CO
      - CT
      - DC
      - DE
      - FL
      - GA
      - HI
      - ID
      - IL
      - IN
      - IA
      - KS
      - KY
      - LA
      - ME
      - MD
      - MA
      - MI
      - MN
      - MS
      - MO
      - MT
      - NE
      - NV
      - NH
      - NJ
      - NM
      - NY
      - NC
      - ND
      - OH
      - OK
      - OR
      - PA
      - RI
      - SC
      - SD
      - TN
      - TX
      - UT
      - VT
      - VA
      - WA
      - WV
      - WI
      - WY
      - PR
      title: StateCode
      x-enum-varnames:
      - AL
      - AK
      - AZ
      - AR
      - CA
      - CO
      - CT
      - DC
      - DE
      - FL
      - GA
      - HI
      - ID
      - IL
      - IN
      - IA
      - KS
      - KY
      - LA
      - ME
      - MD
      - MA
      - MI
      - MN
      - MS
      - MO
      - MT
      - NE
      - NV
      - NH
      - NJ
      - NM
      - NY
      - NC
      - ND
      - OH
      - OK
      - OR
      - PA
      - RI
      - SC
      - SD
      - TN
      - TX
      - UT
      - VT
      - VA
      - WA
      - WV
      - WI
      - WY
      - PR
    String255:
      type: string
      maxLength: 255
      title: String255
      description: String of maximum length 255.
    TaxFormDescriptor:
      properties:
        tax_form_id:
          type: string
          title: Tax Form Id
          description: Identifier for this tax form. Pass it to the retrieve endpoint
            to get a download URL.
        tax_year:
          type: integer
          title: Tax Year
          description: The tax year the form covers.
        tax_form_type:
          $ref: '#/components/schemas/TaxFormType'
          description: Form type, such as `Tax1099Int`, `Tax1099Div`, `Tax1099B`,
            or `Tax1099`.
      type: object
      required:
      - tax_form_id
      - tax_year
      - tax_form_type
      title: TaxFormDescriptor
    TaxFormDownload:
      properties:
        tax_form_id:
          type: string
          title: Tax Form Id
          description: Identifier of the tax form, echoing the one you requested.
        account_id:
          type: string
          title: Account Id
          description: Account the form was issued for.
        tax_year:
          type: integer
          title: Tax Year
          description: The tax year the form covers.
        tax_form_type:
          $ref: '#/components/schemas/TaxFormType'
          description: Form type, such as `Tax1099Int`, `Tax1099Div`, `Tax1099B`,
            or `Tax1099`.
        download_url:
          type: string
          title: Download Url
          description: Time-limited URL to download the tax form PDF.
        expires_at:
          type: string
          format: date-time
          title: Expires At
          description: When the download URL expires.
      type: object
      required:
      - tax_form_id
      - account_id
      - tax_year
      - tax_form_type
      - download_url
      - expires_at
      title: TaxFormDownload
    TaxFormList:
      properties:
        tax_forms:
          items:
            $ref: '#/components/schemas/TaxFormDescriptor'
          type: array
          title: Tax Forms
          description: Tax forms issued for this account. Empty if none have been
            issued, or none match your year and form-type filters.
      type: object
      required:
      - tax_forms
      title: TaxFormList
    TaxFormType:
      type: string
      enum:
      - Tax1099Int
      - Tax1099Div
      - Tax1099B
      - Tax1099
      title: TaxFormType
    Timestamp:
      type: string
      format: date-time
      title: Timestamp
      description: ISO 8601 date-time in the format `YYYY-MM-DDThh:mm:ss.nnn[Z|[+|-]hh:mm]`
        (per [IETF RFC 3339](https://xml2rfc.tools.ietf.org/public/rfc/html/rfc3339.html#anchor14)).
    TinCollectionResponse:
      properties:
        kind:
          $ref: '#/components/schemas/TinKind'
          description: The type of tax identification number you must provide.
        country:
          $ref: '#/components/schemas/CountryCodeAlpha2'
          description: The country that issued the requested tax identification number.
        saved:
          type: boolean
          title: Saved
          description: Whether a number has been saved securely. Its value is never
            returned.
        submitted:
          type: boolean
          title: Submitted
          description: Whether the saved number has been submitted and can no longer
            be replaced.
        subject_type:
          $ref: '#/components/schemas/TinSubjectType'
          description: Whether you are providing the business or representative's
            number.
        subject_name:
          type: string
          title: Subject Name
          description: The business or representative whose number you must provide.
      type: object
      required:
      - kind
      - country
      - saved
      - submitted
      - subject_type
      - subject_name
      title: TinCollectionResponse
    TinKind:
      type: string
      enum:
      - ein
      - ssn
      - itin
      - foreign_tin
      title: TinKind
      x-enum-varnames:
      - ein
      - ssn
      - itin
      - foreign_tin
    TinSubjectType:
      type: string
      enum:
      - business
      - representative
      title: TinSubjectType
      x-enum-varnames:
      - business
      - representative
    TokenBasics:
      properties:
        token_name:
          type: string
          title: Token Name
          description: Name of the token.
        ticker_symbol:
          type: string
          title: Ticker Symbol
          description: Ticker symbol of the token.
        blockchain_network:
          type: string
          title: Blockchain Network
          description: Blockchain or network the token is deployed on.
        date_of_deployment:
          anyOf:
          - type: string
          - type: 'null'
          title: Date Of Deployment
          description: Date the token was deployed.
      type: object
      required:
      - token_name
      - ticker_symbol
      - blockchain_network
      title: TokenBasics
    TokenCustody:
      properties:
        issuance_authority:
          type: string
          title: Issuance Authority
          description: Who has authority over token issuance or distribution decisions?
        third_party_conducts_sales:
          type: boolean
          title: Third Party Conducts Sales
          description: Does any entity other than the issuer conduct token sales or
            distributions?
        third_party_sales_details:
          anyOf:
          - type: string
          - type: 'null'
          title: Third Party Sales Details
          description: Identify the entity and describe the arrangement. Applies only
            when `third_party_conducts_sales` is `true`.
        entity_maintains_custody:
          type: boolean
          title: Entity Maintains Custody
          description: Does any ecosystem entity maintain custody of tokens for users?
        custody_entity:
          anyOf:
          - type: string
          - type: 'null'
          title: Custody Entity
          description: Identify the entity. Applies only when `entity_maintains_custody`
            is `true`.
      type: object
      required:
      - issuance_authority
      - third_party_conducts_sales
      - entity_maintains_custody
      title: TokenCustody
    TokenFunction:
      properties:
        primary_function:
          type: string
          title: Primary Function
          description: Primary function of the token. e.g., governance, protocol utility,
            staking, gas/transaction fees.
        holders_receive_equity:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Holders Receive Equity
          description: Whether token holders receive equity ownership.
        holders_receive_revenue_share:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Holders Receive Revenue Share
          description: Whether token holders receive a revenue share.
        holders_receive_dividends:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Holders Receive Dividends
          description: Whether token holders receive dividends.
        holders_receive_contractual_claim:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Holders Receive Contractual Claim
          description: Whether token holders receive a contractual claim on the entity's
            assets.
      type: object
      required:
      - primary_function
      title: TokenFunction
    TokenIssuer:
      properties:
        issuer_legal_entity:
          type: string
          title: Issuer Legal Entity
          description: Legal entity that deployed or issued the token.
        issuer_jurisdiction:
          $ref: '#/components/schemas/CountryCodeAlpha2'
          description: Jurisdiction of formation of the issuing entity.
        issuer_acted_as_principal:
          type: boolean
          title: Issuer Acted As Principal
          description: Did the issuing entity act solely as principal in connection
            with issuance or sale?
      type: object
      required:
      - issuer_legal_entity
      - issuer_jurisdiction
      - issuer_acted_as_principal
      title: TokenIssuer
    TokenSupply:
      properties:
        supply_type:
          type: string
          title: Supply Type
          description: Whether the token's total supply is fixed or uncapped.
        total_supply:
          anyOf:
          - type: string
          - type: 'null'
          title: Total Supply
          description: Total supply of the token.
        distribution_description:
          type: string
          title: Distribution Description
          description: High-level description of initial distribution. e.g., ecosystem
            allocation, team allocation, treasury allocation, public sale, private
            sale.
        primary_sale_occurred:
          type: boolean
          title: Primary Sale Occurred
          description: Did a primary token sale occur?
        primary_sale_entity:
          anyOf:
          - type: string
          - type: 'null'
          title: Primary Sale Entity
          description: Which entity conducted the sale? Applies only when `primary_sale_occurred`
            is `true`.
        jurisdictional_restrictions_applied:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Jurisdictional Restrictions Applied
          description: Did jurisdictional participation restrictions apply to the
            token sale? Applies only when `primary_sale_occurred` is `true`.
      type: object
      required:
      - supply_type
      - distribution_description
      - primary_sale_occurred
      title: TokenSupply
    TokenUsageLimits:
      properties:
        max_amount:
          type: integer
          title: Max Amount
          description: Maximum amount in whole dollars.
        currency:
          $ref: '#/components/schemas/Iso4217Code'
          description: Three-letter ISO 4217 currency code.
        expires_at:
          $ref: '#/components/schemas/Timestamp'
          description: When the token expires.
      type: object
      required:
      - max_amount
      - currency
      - expires_at
      title: TokenUsageLimits
    TopCardExpense:
      properties:
        transaction_id:
          type: string
          format: uuid
          title: Transaction Id
          description: Matches the `id` of the corresponding entry in List Card Transactions.
        card_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Card Id
          description: The card it was made on.
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: Amount spent.
        description:
          type: string
          title: Description
          description: Merchant descriptor as it was sent.
        cardholder:
          type: string
          title: Cardholder
          description: Who the card belongs to.
          examples:
          - Felix Whiskers
        posted_at:
          $ref: '#/components/schemas/Timestamp'
          description: When the spend posted.
        trace_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Trace Id
          description: The purchase this expense belongs to. Filter List Card Transactions
            by it to see the rest of the purchase.
          examples:
          - card_24692111234567890123456
      type: object
      required:
      - transaction_id
      - amount
      - description
      - cardholder
      - posted_at
      title: TopCardExpense
    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: The account's transactions. The transaction shape depends on
            the account type; this is empty when there are no transactions to return.
      type: object
      required:
      - transactions
      title: Transactions
    TransferDirection:
      type: string
      enum:
      - inbound
      - outbound
      title: TransferDirection
    TransferMethod:
      type: string
      enum:
      - book
      - usdc
      - usdt
      - pyusd
      - cash
      - usdg
      - path_usd
      - ach
      - wire
      - international
      title: TransferMethod
      description: The rail a transfer moves on, as the customer API reports it.
      x-enum-varnames:
      - book
      - usdc
      - usdt
      - pyusd
      - cash
      - usdg
      - path_usd
      - ach
      - wire
      - international
    TransferStatus:
      type: string
      enum:
      - pending
      - pending_approval
      - canceled
      - processing
      - error
      - sent
      - returned
      - void
      title: TransferStatus
    TreasuryPrimeAccountType:
      type: string
      enum:
      - checking
      - savings
      title: TreasuryPrimeAccountType
    UnitType:
      type: string
      enum:
      - CURRENCY
      - SHARES
      title: UnitType
    UpdateAccountRequest:
      properties:
        nickname:
          type: string
          maxLength: 25
          minLength: 2
          pattern: ^[A-Za-z0-9\-' ]+$
          title: Nickname
          description: A custom display name for the account, shown in the dashboard
            to distinguish it from other accounts. 2-25 characters; letters, numbers,
            hyphens, apostrophes, and spaces only. Must be unique among your accounts.
          examples:
          - Payroll
      type: object
      required:
      - nickname
      title: UpdateAccountRequest
    UpdateAccountResponse:
      properties:
        account_id:
          type: string
          title: Account Id
          description: The `account_id` of the updated account.
          examples:
          - cash_account_3f9c1b2e-7a4d-4e88-9c21-0b6f5d8e1a2c
        nickname:
          type: string
          title: Nickname
          description: The account's display name after the update.
          examples:
          - Payroll
      type: object
      required:
      - account_id
      - nickname
      title: UpdateAccountResponse
    UpdateBillAccountingMappingsRequest:
      properties:
        accounting_vendor_id:
          type: string
          title: Accounting Vendor Id
          description: The vendor's ID in your accounting system. Get valid IDs from
            `GET /billpay/accounting/vendors`.
        line_item_mappings:
          items:
            $ref: '#/components/schemas/BillLineItemAccountMappingRequest'
          type: array
          title: Line Item Mappings
          description: One mapping per line item on the bill. Every line item must
            be mapped — the accounting system rejects a bill whose lines do not all
            name an expense account.
      type: object
      required:
      - accounting_vendor_id
      - line_item_mappings
      title: UpdateBillAccountingMappingsRequest
    UpdateBillLineItemExpenseAccountRequest:
      properties:
        expense_account_external_id:
          type: string
          title: Expense Account External Id
          description: The expense account's ID in your accounting system. Get valid
            IDs from `GET /billpay/accounting/expense-accounts`.
      type: object
      required:
      - expense_account_external_id
      title: UpdateBillLineItemExpenseAccountRequest
    UpdateBillRequest:
      properties:
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
          description: A short description of the bill. Send null to clear it.
        memo:
          anyOf:
          - type: string
          - type: 'null'
          title: Memo
          description: An internal memo (up to 140 characters). Send null to clear
            it.
        invoice_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Invoice Number
          description: The vendor's invoice number. Send null to clear it. On a recurring
            bill's template (`ordinal` 0), its first run of letters A-Z and digits
            0-9, cut to 16 characters, becomes the schedule's prefix and the template's
            stored number. The update is rejected when the number has no letters A-Z
            or digits 0-9. For a pending, active, or completed schedule, it is also
            rejected when it would clear the number or when another pending, active,
            or completed schedule uses that prefix.
        contact_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Contact Id
          description: The vendor this bill is payable to. The vendor must exist.
            A bill cannot be left without one, so send a different vendor rather than
            null.
        bill_date:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: Bill Date
          description: The date on the bill (`YYYY-MM-DD`), between 1900-01-01 and
            2099-12-31.
        bill_due_date:
          anyOf:
          - type: string
            format: date
          - type: 'null'
          title: Bill Due Date
          description: The date the bill is due (`YYYY-MM-DD`), between 1900-01-01
            and 2099-12-31.
        payment_type:
          anyOf:
          - type: string
            enum:
            - ACH
            - WIRE
            - CHECK
            - CRYPTO
          - type: 'null'
          title: Payment Type
          description: How the bill will be paid once approved.
        crypto_contact_destination_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Crypto Contact Destination Id
          description: Which of the vendor's saved crypto addresses to pay, taken
            from the contact's `payment_methods.crypto[].id`. Required when `payment_type`
            is `CRYPTO`, and rejected otherwise.
        currency:
          anyOf:
          - $ref: '#/components/schemas/Iso4217Code'
          - type: 'null'
          description: The bill's currency.
        line_items:
          anyOf:
          - items:
              $ref: '#/components/schemas/ReconcileBillLineItem'
            type: array
          - type: 'null'
          title: Line Items
          description: The bill's line items after the edit, when provided. Lines
            you send with a `line_item_id` are edited in place and keep their accounting
            mappings; lines without one are added; lines you leave out are removed.
            Omit the field to leave them unchanged; send an empty list to clear them.
      type: object
      title: UpdateBillRequest
    UpdateCardRequest:
      properties:
        status:
          anyOf:
          - $ref: '#/components/schemas/CardStatusUpdate'
          - type: 'null'
          description: Set to `inactive` to freeze the card or `active` to unfreeze
            it.
        nickname:
          anyOf:
          - type: string
            maxLength: 30
            minLength: 1
            pattern: ^[ -~]+$
          - type: 'null'
          title: Nickname
          description: Rename the card's display name (max 30 characters).
        spending_controls:
          anyOf:
          - $ref: '#/components/schemas/SpendingControls'
          - type: 'null'
          description: Replace the card's spend limits.
        allowed_categories:
          anyOf:
          - items:
              $ref: '#/components/schemas/CardTransactionCategory'
            type: array
          - type: 'null'
          title: Allowed Categories
          description: Restrict the card to these merchant categories. Pass `null`
            to clear all category restrictions.
        spending_restriction:
          anyOf:
          - $ref: '#/components/schemas/CardSpendingRestrictionRequest'
          - type: 'null'
          description: Replace the card's merchant restriction. Pass `null` to clear
            it and allow any merchant.
      type: object
      title: UpdateCardRequest
    UpdateCardTransactionMemoRequest:
      properties:
        memo:
          anyOf:
          - type: string
            maxLength: 140
            minLength: 1
          - type: 'null'
          title: Memo
          description: The memo to save, up to 140 characters. It replaces the current
            memo. Send null to remove it.
          examples:
          - Team lunch with the Catnip Coffee Co buyers
      type: object
      required:
      - memo
      title: UpdateCardTransactionMemoRequest
    UpdateContactRequest:
      properties:
        nickname:
          anyOf:
          - type: string
            maxLength: 300
            minLength: 1
          - type: 'null'
          title: Nickname
          description: A new nickname or display name for the contact (1-300 characters).
        email:
          anyOf:
          - type: string
            format: email
          - type: 'null'
          title: Email
          description: A new email address for the contact.
        address:
          anyOf:
          - $ref: '#/components/schemas/MeowAddressRequest'
          - type: 'null'
          description: Postal address stored alongside ACH, wire, or check contacts.
        counterparty:
          anyOf:
          - $ref: '#/components/schemas/CounterpartyDetailsRequest'
          - type: 'null'
          description: Banking (ACH, domestic or international wire, or check) details.
            Replaces the details the contact already has.
        international:
          anyOf:
          - $ref: '#/components/schemas/CustomerApiInternationalDetailsRequest'
          - type: 'null'
          description: International payment details (IBAN, BIC/SWIFT, or a local
            routing code). Replaces the contact's existing international destination,
            or adds one if the contact has none.
        crypto_addresses:
          anyOf:
          - items:
              $ref: '#/components/schemas/CryptoAddressRequest'
            type: array
          - type: 'null'
          title: Crypto Addresses
          description: Crypto addresses to add to this contact. Addresses the contact
            already has are kept.
      type: object
      title: UpdateContactRequest
    UpdateDailyWithdrawalLimitRequest:
      properties:
        daily_withdrawal_limit:
          anyOf:
          - type: number
            multipleOf: 1.0
            maximum: 1000000000.0
            minimum: 0.0
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d{0,0}0*$
          title: Daily Withdrawal Limit
          description: The most, in USD, that can be withdrawn from your accounts
            in a single day across all transfer types. Must be a whole dollar amount
            from 0 up to the maximum set for your entity. Set it to 0 to block all
            outbound transfers while you collect funds.
          examples:
          - '25000'
      type: object
      required:
      - daily_withdrawal_limit
      title: UpdateDailyWithdrawalLimitRequest
    UpdateWebhookSubscriptionRequest:
      properties:
        name:
          anyOf:
          - type: string
            maxLength: 255
          - type: 'null'
          title: Name
          description: New label for the subscription. Omit to leave it unchanged.
        url:
          anyOf:
          - type: string
            maxLength: 2048
            minLength: 1
            format: uri
          - type: 'null'
          title: Url
          description: New HTTPS endpoint to POST events to. Omit to leave it unchanged.
        event_types:
          anyOf:
          - items:
              $ref: '#/components/schemas/WebhookEventType'
            type: array
          - type: 'null'
          title: Event Types
          description: Replacement list of event types to deliver. Omit to leave the
            current selection unchanged. An empty list is rejected.
        rotate_secret:
          type: boolean
          title: Rotate Secret
          description: Issue a new signing secret. The new plaintext secret is returned
            once in this response and never again.
          default: false
        expire_previous_secret:
          type: boolean
          title: Expire Previous Secret
          description: Set to `true` with `rotate_secret` to stop signing with the
            old secret right away. Use this when you believe the old secret leaked.
            By default, Meow signs each delivery with both the old and the new secret
            for 7 days, so you can update your receiver without rejecting any deliveries.
          default: false
        is_enabled:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Is Enabled
          description: Set to `true` to re-enable a subscription Meow disabled after
            repeated delivery failures, a `410 Gone` response, or an unsafe URL. The
            subscription keeps its id and delivery history. Omit to leave it unchanged.
        payload_mode:
          anyOf:
          - $ref: '#/components/schemas/WebhookPayloadMode'
          - type: 'null'
          description: New payload mode. Applies to events fanned out from here on;
            deliveries already queued keep the mode they were created with. Omit to
            leave it unchanged.
      type: object
      title: UpdateWebhookSubscriptionRequest
    UserResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Meow's stable identifier for the user.
        name:
          type: string
          title: Name
          description: The user's full name.
        email:
          type: string
          format: email
          title: Email
          description: The user's email address.
      type: object
      required:
      - id
      - name
      - email
      title: UserResponse
    UserRoleEnum:
      type: string
      enum:
      - Admin
      - Viewer
      - Bookkeeper
      - Controller
      - Card user
      - Card manager
      - Invoice user
      - AP Clerk
      - AP/AR Bookkeeper
      - Bill Approver
      - None
      title: UserRoleEnum
    UsersResponse:
      properties:
        data:
          items:
            $ref: '#/components/schemas/UserResponse'
          type: array
          title: Data
          description: Active users for your entity.
        page:
          anyOf:
          - $ref: '#/components/schemas/PageMetadata'
          - type: 'null'
          description: Pagination metadata.
      type: object
      required:
      - data
      title: UsersResponse
    ValidationError:
      properties:
        loc:
          items:
            anyOf:
            - type: string
            - type: integer
          type: array
          title: Location
          description: Path to the offending value, from the outside in — for example
            `["body", "amount"]`. Integers are list indexes.
        msg:
          type: string
          title: Message
          description: Human-readable explanation of what was wrong with the value.
        type:
          type: string
          title: Error Type
          description: Machine-readable error identifier, such as `missing` or `decimal_max_places`.
            Use it instead of matching on `msg`.
        input:
          title: Input
          description: The value that was rejected, as it was received.
        ctx:
          type: object
          title: Context
          description: Extra detail specific to the `type`, such as the limit a value
            exceeded. Absent for error types that carry no context.
      type: object
      required:
      - loc
      - msg
      - type
      title: ValidationError
    WalletCustodyModel:
      type: string
      enum:
      - non_custodial
      - custodial
      - mpc_shared_control
      - other
      title: WalletCustodyModel
      x-enum-varnames:
      - non_custodial
      - custodial
      - mpc_shared_control
      - other
    WalletFunctionalityServices:
      properties:
        send_receive_transfers:
          type: boolean
          title: Send Receive Transfers
          description: Whether the wallet supports send and receive transfers.
        in_wallet_swaps:
          type: boolean
          title: In Wallet Swaps
          description: Whether the wallet supports swaps or exchange.
        staking_yield:
          type: boolean
          title: Staking Yield
          description: Whether the wallet supports staking or yield generation.
        bridging_cross_chain:
          type: boolean
          title: Bridging Cross Chain
          description: Whether the wallet supports bridging or cross-chain transfers.
        fiat_on_ramp:
          type: boolean
          title: Fiat On Ramp
          description: Whether the wallet supports buying crypto with fiat.
        fiat_off_ramp:
          type: boolean
          title: Fiat Off Ramp
          description: Whether the wallet supports selling or withdrawing to fiat.
        card_payment:
          type: boolean
          title: Card Payment
          description: Whether the wallet supports card or payment functionality.
        lending_borrowing:
          type: boolean
          title: Lending Borrowing
          description: Whether the wallet supports lending or borrowing.
        third_party_dapps:
          type: boolean
          title: Third Party Dapps
          description: Whether the wallet connects to third-party applications.
        third_party_providers:
          anyOf:
          - type: string
          - type: 'null'
          title: Third Party Providers
          description: Third parties used for swaps, bridges, or fiat services.
      type: object
      required:
      - send_receive_transfers
      - in_wallet_swaps
      - staking_yield
      - bridging_cross_chain
      - fiat_on_ramp
      - fiat_off_ramp
      - card_payment
      - lending_borrowing
      - third_party_dapps
      title: WalletFunctionalityServices
    WalletOverviewCustody:
      properties:
        operator_entity:
          type: string
          title: Operator Entity
          description: The ecosystem entity that operates or maintains the wallet.
        operator_jurisdiction:
          anyOf:
          - $ref: '#/components/schemas/CountryCodeAlpha2'
          - type: 'null'
          description: The wallet operator's jurisdiction when different from the
            applicant.
        product_name:
          type: string
          title: Product Name
          description: The wallet product or brand name.
        access_description:
          type: string
          title: Access Description
          description: How users access the wallet, such as through an app or integration.
        wallet_type:
          $ref: '#/components/schemas/WalletProductType'
          description: Whether the wallet is proprietary or integrates a third party.
        provider_infrastructure:
          anyOf:
          - type: string
          - type: 'null'
          title: Provider Infrastructure
          description: Any wallet provider or infrastructure used by the product.
        custody_model:
          $ref: '#/components/schemas/WalletCustodyModel'
          description: The wallet's custody model.
        entity_or_third_party_asset_control:
          type: boolean
          title: Entity Or Third Party Asset Control
          description: Whether an ecosystem entity or third party can control user
            assets.
        asset_control_details:
          anyOf:
          - type: string
          - type: 'null'
          title: Asset Control Details
          description: How an ecosystem entity or third party can control user assets.
        user_assets_segregated:
          anyOf:
          - $ref: '#/components/schemas/WalletSafeguardingAnswer'
          - type: 'null'
          description: Whether custodial user assets are segregated from company assets.
        user_assets_rehypothecated:
          anyOf:
          - $ref: '#/components/schemas/WalletSafeguardingAnswer'
          - type: 'null'
          description: Whether custodial user assets may be lent or rehypothecated.
        user_assets_held_one_to_one:
          anyOf:
          - $ref: '#/components/schemas/WalletSafeguardingAnswer'
          - type: 'null'
          description: Whether custodial user assets are held one-to-one.
        third_party_custodians:
          anyOf:
          - type: string
          - type: 'null'
          title: Third Party Custodians
          description: Any third-party custodians holding wallet user assets.
      type: object
      required:
      - operator_entity
      - product_name
      - access_description
      - wallet_type
      - custody_model
      - entity_or_third_party_asset_control
      title: WalletOverviewCustody
    WalletProductType:
      type: string
      enum:
      - third_party_integrated
      - proprietary
      title: WalletProductType
      x-enum-varnames:
      - third_party_integrated
      - proprietary
    WalletSafeguardingAnswer:
      type: string
      enum:
      - 'yes'
      - 'no'
      - na
      title: WalletSafeguardingAnswer
      x-enum-varnames:
      - 'yes'
      - 'no'
      - na
    WalletSupportedAssetsNetworks:
      properties:
        networks_supported:
          type: string
          title: Networks Supported
          description: The blockchains or networks supported by the wallet.
        asset_types_supported:
          type: string
          title: Asset Types Supported
          description: The types of assets supported by the wallet.
      type: object
      required:
      - networks_supported
      - asset_types_supported
      title: WalletSupportedAssetsNetworks
    WalletUsersControls:
      properties:
        requires_kyc:
          type: boolean
          title: Requires Kyc
          description: Whether wallet users must complete identity verification.
        kyc_details:
          anyOf:
          - type: string
          - type: 'null'
          title: Kyc Details
          description: The identity verification provider, responsible entity, and
            timing.
        wallet_limits:
          type: string
          title: Wallet Limits
          description: Transaction, balance, or withdrawal limits applied to the wallet.
      type: object
      required:
      - requires_kyc
      - wallet_limits
      title: WalletUsersControls
    WebhookDeliveryAttemptResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Unique identifier for this attempt.
        delivery_id:
          type: string
          format: uuid
          title: Delivery Id
          description: Delivery this attempt belongs to.
        attempt_number:
          type: integer
          title: Attempt Number
          description: Position of this attempt in the delivery's history, starting
            at 1. Keeps counting across redrives, unlike the delivery's `attempt_count`.
        webhook_msg_id:
          type: string
          title: Webhook Msg Id
          description: Value sent in the `webhook-id` header on this attempt. It is
            the delivery id and is identical on every attempt, so a receiver can dedupe
            retries on it.
        request_url:
          type: string
          title: Request Url
          description: URL this attempt POSTed to — the subscription's URL as it stood
            at the time, which may differ from its current value.
        response_status:
          anyOf:
          - type: integer
          - type: 'null'
          title: Response Status
          description: HTTP status your endpoint returned. `null` when no response
            arrived, in which case `error_message` says why.
        response_body_excerpt:
          anyOf:
          - type: string
          - type: 'null'
          title: Response Body Excerpt
          description: Beginning of your endpoint's response body, truncated. `null`
            when no response arrived.
        duration_ms:
          anyOf:
          - type: integer
          - type: 'null'
          title: Duration Ms
          description: How long the request took, in milliseconds. `null` when the
            attempt did not complete a round trip.
        error_message:
          anyOf:
          - type: string
          - type: 'null'
          title: Error Message
          description: Why the attempt failed without an HTTP response — a timeout,
            a TLS failure, or an unreachable host. `null` when a response arrived,
            even an unsuccessful one.
        attempted_at:
          type: string
          format: date-time
          title: Attempted At
          description: When this attempt ran.
      type: object
      required:
      - id
      - delivery_id
      - attempt_number
      - webhook_msg_id
      - request_url
      - response_status
      - response_body_excerpt
      - duration_ms
      - error_message
      - attempted_at
      title: WebhookDeliveryAttemptResponse
    WebhookDeliveryAttemptsResponse:
      properties:
        items:
          items:
            $ref: '#/components/schemas/WebhookDeliveryAttemptResponse'
          type: array
          title: Items
          description: Attempts on this page, oldest first.
        total_count:
          type: integer
          title: Total Count
          description: Total attempts for the delivery, across all pages.
        has_more:
          type: boolean
          title: Has More
          description: Whether more attempts remain past this page.
      type: object
      required:
      - items
      - total_count
      - has_more
      title: WebhookDeliveryAttemptsResponse
    WebhookDeliveryListResponse:
      properties:
        items:
          items:
            $ref: '#/components/schemas/WebhookDeliveryResponse'
          type: array
          title: Items
          description: Deliveries on this page, newest first.
        total_count:
          type: integer
          title: Total Count
          description: Total deliveries matching the filters, across all pages.
        has_more:
          type: boolean
          title: Has More
          description: Whether more deliveries remain past this page.
      type: object
      required:
      - items
      - total_count
      - has_more
      title: WebhookDeliveryListResponse
    WebhookDeliveryResponse:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Unique identifier for this delivery. Also sent as the `webhook-id`
            header on every attempt, so receivers can dedupe on it.
        event_id:
          type: string
          format: uuid
          title: Event Id
          description: The event being delivered. One event fans out to one delivery
            per matching subscription, so several deliveries can share an `event_id`.
        subscription_id:
          type: string
          format: uuid
          title: Subscription Id
          description: Subscription this delivery was addressed to.
        status:
          $ref: '#/components/schemas/DeliveryStatus'
          description: Where the delivery stands. `succeeded` and `failed_permanent`
            are terminal; `pending`, `retrying`, and `in_progress` will change on
            their own.
        attempt_count:
          type: integer
          title: Attempt Count
          description: Attempts made under the current retry schedule. Reset to 0
            by a redrive, so it is not a lifetime total — count `attempts` for that.
        next_attempt_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Next Attempt At
          description: When the next attempt is due. `null` once the delivery reaches
            a terminal status.
        last_attempted_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Attempted At
          description: When the most recent attempt ran. `null` before the first attempt.
        created_time:
          type: string
          format: date-time
          title: Created Time
          description: When the delivery was created.
        updated_time:
          type: string
          format: date-time
          title: Updated Time
          description: When the delivery was last modified.
        event_type:
          $ref: '#/components/schemas/WebhookEventType'
          description: Type of the event being delivered.
        entity_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Entity Id
          description: 'The entity this delivery''s event belongs to, so a consumer
            of a global (user-scoped) subscription can attribute each delivery to
            an entity. `null` for events that are not scoped to a single entity: the
            `webhook.test` and `message.attempt.exhausted` meta events.'
        resource_object:
          anyOf:
          - type: string
          - type: 'null'
          title: Resource Object
          description: 'Type of the resource the event describes, such as `card` or
            `transfer`. `null` for events that carry no resource: the test and meta
            events, and partner onboarding events.'
        resource_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Resource Id
          description: Identifier of the resource the event describes. `null` under
            the same conditions as `resource_object`.
        sequence:
          anyOf:
          - type: integer
          - type: 'null'
          title: Sequence
          description: Monotonic sequence number within this resource's event stream.
            Keep a high-water mark per resource and skip any delivery whose sequence
            is at or below it, so a retry or a reordered delivery cannot overwrite
            newer state. `null` under the same conditions as `resource_object`.
        payload:
          additionalProperties: true
          type: object
          title: Payload
          description: The exact JSON body POSTed to the subscription for this delivery,
            including the event `type`, `timestamp`, and `data`. Reflects the subscription's
            `payload_mode`, so a `thin` subscription shows the thin body it actually
            received rather than the full snapshot.
      type: object
      required:
      - id
      - event_id
      - subscription_id
      - status
      - attempt_count
      - next_attempt_at
      - last_attempted_at
      - created_time
      - updated_time
      - event_type
      - entity_id
      - resource_object
      - resource_id
      - sequence
      - payload
      title: WebhookDeliveryResponse
    WebhookEventType:
      type: string
      enum:
      - ach_transfer.created
      - ach_transfer.updated
      - wire_transfer.created
      - wire_transfer.updated
      - book_transfer.created
      - book_transfer.updated
      - international_payment.created
      - international_payment.updated
      - inbound_ach_transfer.created
      - inbound_ach_transfer.updated
      - inbound_wire_transfer.created
      - inbound_wire_transfer.updated
      - check_deposit.created
      - check_deposit.updated
      - global_account_transfer.created
      - crypto_transfer.created
      - crypto_transfer.updated
      - account.created
      - account.updated
      - card.created
      - card.updated
      - bill.created
      - bill.updated
      - onboarding_consent.updated
      - info_request.created
      - info_request.updated
      - application.created
      - application.under_review
      - application.submitted
      - application.approved
      - application.rejected
      - identity_verification.action_required
      - identity_verification.approved
      - identity_verification.rejected
      - message.attempt.exhausted
      - webhook.test
      title: WebhookEventType
      x-enum-varnames:
      - ach_transfer_created
      - ach_transfer_updated
      - wire_transfer_created
      - wire_transfer_updated
      - book_transfer_created
      - book_transfer_updated
      - international_payment_created
      - international_payment_updated
      - inbound_ach_transfer_created
      - inbound_ach_transfer_updated
      - inbound_wire_transfer_created
      - inbound_wire_transfer_updated
      - check_deposit_created
      - check_deposit_updated
      - global_account_transfer_created
      - crypto_transfer_created
      - crypto_transfer_updated
      - account_created
      - account_updated
      - card_created
      - card_updated
      - bill_created
      - bill_updated
      - onboarding_consent_updated
      - info_request_created
      - info_request_updated
      - application_created
      - application_under_review
      - application_submitted
      - application_approved
      - application_rejected
      - identity_verification_action_required
      - identity_verification_approved
      - identity_verification_rejected
      - message_attempt_exhausted
      - webhook_test
    WebhookPayloadMode:
      type: string
      enum:
      - snapshot
      - thin
      title: WebhookPayloadMode
      x-enum-varnames:
      - snapshot
      - thin
    WebhookRecoverResponse:
      properties:
        recovered_count:
          type: integer
          title: Recovered Count
          description: How many failed deliveries were queued for another attempt.
            Each one restarts its retry schedule. `0` when no delivery created at
            or after `since` had failed.
      type: object
      required:
      - recovered_count
      title: WebhookRecoverResponse
    WebhookRedriveResponse:
      properties:
        delivery_id:
          type: string
          format: uuid
          title: Delivery Id
          description: The delivery that was re-queued.
        queued:
          type: boolean
          title: Queued
          description: Always `true`. The delivery's retry schedule was reset and
            it was queued for another attempt.
      type: object
      required:
      - delivery_id
      - queued
      title: WebhookRedriveResponse
    WebhookSubscriptionResponse:
      properties:
        account_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Account Id
          description: Bank account whose events this subscription receives. Null
            means no account filter. Fixed at creation.
        id:
          type: string
          format: uuid
          title: Id
          description: Unique identifier for the subscription.
        name:
          type: string
          title: Name
          description: Label for the subscription.
        url:
          type: string
          title: Url
          description: Endpoint Meow POSTs each event to.
        is_enabled:
          type: boolean
          title: Is Enabled
          description: Whether the subscription is currently receiving deliveries.
            Meow sets this to `false` after repeated delivery failures, a `410 Gone`
            response, or an unsafe URL; re-enable it with a PATCH.
        event_types:
          anyOf:
          - items:
              $ref: '#/components/schemas/WebhookEventType'
            type: array
          - type: 'null'
          title: Event Types
          description: Event types this subscription receives. `null` means every
            event.
        payload_mode:
          $ref: '#/components/schemas/WebhookPayloadMode'
          description: 'How much of the resource each delivery carries: `snapshot`
            for the full resource, `thin` for its id and object type only.'
        created_time:
          type: string
          format: date-time
          title: Created Time
          description: When the subscription was created.
        updated_time:
          type: string
          format: date-time
          title: Updated Time
          description: When the subscription was last modified.
      type: object
      required:
      - id
      - name
      - url
      - is_enabled
      - event_types
      - payload_mode
      - created_time
      - updated_time
      title: WebhookSubscriptionResponse
    WebhookSubscriptionWithSecretResponse:
      properties:
        account_id:
          anyOf:
          - type: string
          - type: 'null'
          title: Account Id
          description: Bank account whose events this subscription receives. Null
            means no account filter. Fixed at creation.
        id:
          type: string
          format: uuid
          title: Id
          description: Unique identifier for the subscription.
        name:
          type: string
          title: Name
          description: Label for the subscription.
        url:
          type: string
          title: Url
          description: Endpoint Meow POSTs each event to.
        is_enabled:
          type: boolean
          title: Is Enabled
          description: Whether the subscription is currently receiving deliveries.
            Meow sets this to `false` after repeated delivery failures, a `410 Gone`
            response, or an unsafe URL; re-enable it with a PATCH.
        event_types:
          anyOf:
          - items:
              $ref: '#/components/schemas/WebhookEventType'
            type: array
          - type: 'null'
          title: Event Types
          description: Event types this subscription receives. `null` means every
            event.
        payload_mode:
          $ref: '#/components/schemas/WebhookPayloadMode'
          description: 'How much of the resource each delivery carries: `snapshot`
            for the full resource, `thin` for its id and object type only.'
        created_time:
          type: string
          format: date-time
          title: Created Time
          description: When the subscription was created.
        updated_time:
          type: string
          format: date-time
          title: Updated Time
          description: When the subscription was last modified.
        secret:
          type: string
          format: password
          title: Secret
          description: Signing secret for verifying delivery signatures. Returned
            only when the subscription is created and when you rotate the secret —
            Meow cannot show it again, so store it now.
          writeOnly: false
      type: object
      required:
      - id
      - name
      - url
      - is_enabled
      - event_types
      - payload_mode
      - created_time
      - updated_time
      - secret
      title: WebhookSubscriptionWithSecretResponse
    WebhookTestEventResponse:
      properties:
        event_id:
          type: string
          format: uuid
          title: Event Id
          description: The `webhook.test` event that was created.
        delivery_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Delivery Id
          description: Delivery created for the event, to inspect with Get Delivery.
            `null` if no delivery was created, in which case `queued` is `false`.
        queued:
          type: boolean
          title: Queued
          description: Whether the test event was queued for delivery. The test event
            bypasses the subscription's event-type filter, so it is sent even if the
            subscription does not select `webhook.test`.
      type: object
      required:
      - event_id
      - delivery_id
      - queued
      title: WebhookTestEventResponse
    WeeklySpend:
      properties:
        week_starting:
          $ref: '#/components/schemas/DateString'
          description: First day of the week counted.
        spend:
          items:
            $ref: '#/components/schemas/SpendBucket'
          type: array
          title: Spend
          description: Totals for that week.
      type: object
      required:
      - week_starting
      - spend
      title: WeeklySpend
    WireDrawdownAuthorization:
      properties:
        id:
          type: string
          format: uuid
          title: Id
          description: Pass this to Update or Delete Wire Drawdown Authorization.
        account_id:
          type: string
          title: Account Id
          description: The account the vendor may draw from.
        company_name:
          type: string
          title: Company Name
          description: The vendor authorized to draw funds.
        originator_account_number:
          type: string
          title: Originator Account Number
          description: The vendor's account number.
        originator_routing_number:
          type: string
          title: Originator Routing Number
          description: The vendor's ABA routing number.
        transaction_limit:
          anyOf:
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          - type: 'null'
          title: Transaction Limit
          description: Largest single drawdown approved automatically, in USD. `null`
            means no limit.
        created_by:
          $ref: '#/components/schemas/Initiator'
          description: Who created the authorization.
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: When it was created.
        updated_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: When it last changed.
      type: object
      required:
      - id
      - account_id
      - company_name
      - originator_account_number
      - originator_routing_number
      - created_by
      - created_at
      title: WireDrawdownAuthorization
    WireDrawdownAuthorizationCreateRequest:
      properties:
        company_name:
          type: string
          maxLength: 200
          title: Company Name
          description: The vendor you are authorizing to draw funds.
        originator_account_number:
          type: string
          title: Originator Account Number
          description: The vendor's account number, digits only, at most 20.
        originator_routing_number:
          type: string
          title: Originator Routing Number
          description: The vendor's ABA routing number.
        transaction_limit:
          anyOf:
          - type: number
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          - type: 'null'
          title: Transaction Limit
          description: Largest single drawdown approved automatically, in USD. Omit
            for no limit; anything above the limit waits for manual approval.
      type: object
      required:
      - company_name
      - originator_account_number
      - originator_routing_number
      title: WireDrawdownAuthorizationCreateRequest
    WireDrawdownAuthorizationUpdateRequest:
      properties:
        company_name:
          type: string
          maxLength: 200
          title: Company Name
          description: The vendor you are authorizing to draw funds.
        transaction_limit:
          anyOf:
          - type: number
          - type: string
            pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          - type: 'null'
          title: Transaction Limit
          description: Largest single drawdown approved automatically, in USD. Omit
            for no limit; anything above the limit waits for manual approval.
      type: object
      required:
      - company_name
      title: WireDrawdownAuthorizationUpdateRequest
    WireDrawdownAuthorizations:
      properties:
        page:
          anyOf:
          - $ref: '#/components/schemas/PageMetadata'
          - type: 'null'
          description: Metadata for pagination.
        wire_drawdown_authorizations:
          items:
            $ref: '#/components/schemas/WireDrawdownAuthorization'
          type: array
          title: Wire Drawdown Authorizations
          description: Active drawdown authorizations across your accounts.
      type: object
      required:
      - wire_drawdown_authorizations
      title: WireDrawdownAuthorizations
    WireDrawdownRequest:
      properties:
        id:
          type: string
          title: Id
          description: Pass this to Approve or Reject Wire Drawdown Request.
        account_id:
          type: string
          title: Account Id
          description: The account the requester wants to draw from.
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: Amount requested, in USD.
        status:
          $ref: '#/components/schemas/PublicWireDrawdownRequestStatus'
          description: '`pending` until you approve or reject it. Approving sends
            a wire for the amount; rejecting closes the request without payment.'
        originator_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Originator Name
          description: Who is asking to draw the funds.
        beneficiary_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Beneficiary Name
          description: Who receives the wire when you approve.
        sender_routing_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Sender Routing Number
          description: Routing number of the requester's bank.
        wire_beneficiary_account_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Wire Beneficiary Account Number
          description: Account number the wire pays into when you approve.
        originator_to_beneficiary:
          anyOf:
          - type: string
          - type: 'null'
          title: Originator To Beneficiary
          description: Free-text reference the requester sent with the request.
        approved_by:
          anyOf:
          - $ref: '#/components/schemas/Initiator'
          - type: 'null'
          description: Who approved the request, once approved. Null while pending,
            and on requests that an authorization approved automatically.
        approved_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: When it was approved.
        rejected_by:
          anyOf:
          - $ref: '#/components/schemas/Initiator'
          - type: 'null'
          description: Who rejected the request, once rejected.
        rejected_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: When it was rejected.
        failed_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: When the resulting wire failed, if it did.
        failure_reason:
          anyOf:
          - type: string
          - type: 'null'
          title: Failure Reason
          description: Why the resulting wire failed, when it did.
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: When the request arrived.
        updated_at:
          anyOf:
          - $ref: '#/components/schemas/Timestamp'
          - type: 'null'
          description: When it last changed.
      type: object
      required:
      - id
      - account_id
      - amount
      - status
      - created_at
      title: WireDrawdownRequest
    WireDrawdownRequests:
      properties:
        wire_drawdown_requests:
          items:
            $ref: '#/components/schemas/WireDrawdownRequest'
          type: array
          title: Wire Drawdown Requests
          description: Every drawdown request across your accounts, pending ones first.
      type: object
      required:
      - wire_drawdown_requests
      title: WireDrawdownRequests
    WireTransferResponse:
      properties:
        amount:
          type: string
          pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
          title: Amount
          description: How much moved, in USD.
        status:
          $ref: '#/components/schemas/TransferStatus'
          description: Where the transfer is in its lifecycle. `pending` and `processing`
            still change; poll until the transfer settles. An ACH transfer settles
            at `sent`, `returned`, `canceled`, or `error`; a wire settles at `sent`,
            `canceled`, `error`, or `void`.
        direction:
          $ref: '#/components/schemas/TransferDirection'
          description: Whether the money moved into this account (`inbound`) or out
            of it (`outbound`). Inbound transfers were sent to you by someone else,
            so they have no counterparty you configured.
        counterparty_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Counterparty Id
          description: The contact you sent to. Null on inbound transfers, which arrive
            from someone you never configured.
        counterparty_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Counterparty Name
          description: Who you sent to, or who sent to you on an inbound transfer.
        counterparty_account_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Counterparty Account Number
          description: The other side's account number, when the bank reports it.
            Often absent on inbound transfers.
        counterparty_routing_number:
          anyOf:
          - type: string
          - type: 'null'
          title: Counterparty Routing Number
          description: The other side's routing number, when the bank reports it.
            Often absent on inbound transfers.
        created_at:
          $ref: '#/components/schemas/Timestamp'
          description: When the transfer was created.
        updated_at:
          $ref: '#/components/schemas/Timestamp'
          description: When the transfer last changed, so you can detect new activity.
        internal_note:
          anyOf:
          - type: string
          - type: 'null'
          title: Internal Note
          description: Your private note on this transfer. Never leaves Meow.
        metadata:
          anyOf:
          - additionalProperties:
              type: string
              maxLength: 200
            propertyNames:
              maxLength: 40
              minLength: 1
            type: object
            maxProperties: 20
          - type: 'null'
          title: Metadata
          description: The metadata attached when this object was created, unchanged.
            `null` when none was attached. Rarely, a `.created` webhook can be published
            before the create request finishes committing, and that one event reports
            `null`; every later event and every read of the object carries the metadata.
        id:
          type: string
          title: Id
          description: Pass this back to Get Wire Transfer to check on the transfer.
        instructions:
          anyOf:
          - type: string
          - type: 'null'
          title: Instructions
          description: The originator to beneficiary information carried on the wire.
            On an inbound wire this is where a sender puts a reference you can match
            on.
        counterparty_bank_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Counterparty Bank Name
          description: The other side's bank, when the bank reports it. Often absent
            on inbound wires.
        error:
          anyOf:
          - type: string
          - type: 'null'
          title: Error
          description: Why the transfer failed, when it did.
        imad:
          anyOf:
          - type: string
          - type: 'null'
          title: Imad
          description: The wire's IMAD, which uniquely identifies it on the Fedwire
            network. Use it when tracing a wire with a bank.
        purpose:
          anyOf:
          - type: string
          - type: 'null'
          title: Purpose
          description: The purpose you stated when sending. Null on inbound wires,
            which carry no purpose you set.
        counterparty_address:
          anyOf:
          - type: string
          - type: 'null'
          title: Counterparty Address
          description: The sender's postal address as their bank reported it. Only
            set on inbound wires.
        counterparty_bank_address:
          anyOf:
          - type: string
          - type: 'null'
          title: Counterparty Bank Address
          description: The sending bank's postal address as it arrived on the wire.
            Only set on inbound wires.
        is_international:
          anyOf:
          - type: boolean
          - type: 'null'
          title: Is International
          description: True when an inbound wire came from a bank outside the US.
            Null when the bank did not say, and on outbound wires.
      type: object
      required:
      - amount
      - status
      - direction
      - created_at
      - updated_at
      - id
      title: WireTransferResponse
      examples:
      - amount: '1000.00'
        counterparty_account_number: '123456789'
        counterparty_bank_name: Example Bank N.A.
        counterparty_id: cp_3b0d5e2a41f2
        counterparty_name: Catnip Coffee Co
        counterparty_routing_number: '021000021'
        created_at: '2026-01-15T14:46:41.375Z'
        direction: outbound
        id: wire_9f1c3b6e2a1d
        imad: '2026011500000001'
        instructions: catnip-payroll-2026
        internal_note: Q1 roasting supplies
        purpose: invoice_payment
        status: sent
        updated_at: '2026-01-15T14:46:41.375Z'
    customer_api__v1__app__transactions__models__SecurityIdType:
      type: string
      enum:
      - CUSIP
      - ISIN
      - SEDOL
      - SICC
      - VALOR
      - WKN
      title: SecurityIdType
      description: 'Supported security identifier types: CUSIP, ISIN, SEDOL, SICC,
        VALOR, WKN.'
    customer_api__v1__models__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)'
    CustomerApiError:
      oneOf:
      - $ref: '#/components/schemas/CustomerApiServiceError'
      - $ref: '#/components/schemas/CustomerApiGatewayError'
    CustomerApiServiceError:
      type: object
      required:
      - code
      - message
      - debug_message
      properties:
        code:
          type: integer
        message:
          type: string
        debug_message:
          type: string
    CustomerApiGatewayError:
      type: object
      required:
      - error_code
      - message
      properties:
        error_code:
          type: string
        message:
          type: string
  securitySchemes:
    apiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key
      description: Your Meow API key, sent in the `x-api-key` header for authentication.
      x-scopes:
      - accounts:read
      - accounts:write
      - accounts:payment-networks
      - accounts:transactions
      - accounts:balances
      - accounts:statements
      - accounts:tax-documents
      - entity:create
      - transfers:crypto:write
      - transfers:usdc:write
      - transfers:ach:write
      - transfers:wire:write
      - transfers:book:write
      - transfers:international: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
      - billpay:write
      - onboarding:read
      - onboarding:write
      - cards:read
      - cards:write
      - reimbursements:read
      - users:read
      - users:write
      - webhooks:read
      - webhooks:write
      - partner:onboarding:read
      - partner:onboarding:write
      - partner:webhooks:read
      - partner:webhooks:write
      - simulations:write
      - banking:limits:read
      - banking:limits:write
      - feature-access:read
      - feature-access:write
  parameters:
    EntityIdHeader:
      name: x-entity-id
      in: header
      required: false
      schema:
        type: string
        format: uuid
      description: Optional `entity_id` to scope requests to a specific entity.
  responses:
    BadRequest:
      description: The request could not be processed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerApiError'
    Unauthorized:
      description: Authentication failed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerApiGatewayError'
    Forbidden:
      description: The API key is not authorized for this operation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerApiGatewayError'
    ForbiddenAdminKycRequired:
      description: The API key is not authorized for this operation, or the user of
        a global API key is an admin or controller without approved KYC. The KYC case
        returns the message `KYC is required for controllers and admins.` until that
        user completes KYC in the Meow dashboard.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerApiGatewayError'
    RateLimited:
      description: Too many requests.
      headers:
        Retry-After:
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/CustomerApiGatewayError'
security:
- apiKeyAuth: []
tags:
- name: API Keys
  description: Retrieve metadata about API keys and their accessible entities.
- name: Accounts
  description: Access and manage accounts.
- name: Approvals
- name: Balances
  description: Retrieve account balances and available funds.
- name: Bill Pay
- name: Bills
  description: View and manage bills for vendor payments.
- name: Cards
  description: Manage virtual and physical cards, and view transactions and insights.
- name: Collection Accounts
  description: Manage accounts for payment collection.
- name: Contacts
  description: Manage contacts for crypto and USDC transfers.
- name: Customers
  description: Manage invoicing customers and their details.
- name: Entities
- name: Feature Access
  description: Request access to restricted features, such as international payments,
    and track the status of your requests.
- name: Invoices
  description: Create and manage invoices.
- name: Limits
- name: Line Items
  description: Manage invoice line items.
- name: Partner Onboarding
  description: Onboard entities using your partner API key.
- name: Partner Webhooks
- name: Payment Methods
  description: View available payment method types.
- name: Payment Networks
  description: Manage payment networks and routing information.
- name: Products
  description: Manage products and pricing for invoicing.
- name: Reimbursements
  description: View reimbursement requests by employee.
- name: Routing Numbers
  description: Validate routing numbers and retrieve bank information.
- name: Security Policies
- name: Simulations
  description: 'Trigger simulated events (inbound transfers, card authorizations,
    application approval) to test integrations end-to-end without real money movement.
    **Not available in production**: these endpoints exist only in sandbox and development
    environments and return `404 Not Found` in production.'
- name: Tax Forms
  description: Retrieve IRS tax forms (1099 family) issued for accounts.
- name: Transactions
  description: Retrieve account transaction history and details.
- name: Transfers
  description: Initiate ACH, wire, book, and crypto transfers, and retrieve transfer
    details.
- name: Users
  description: View active users for your entity.
- name: Webhooks
  description: Manage webhook subscriptions and inspect delivery history.
- name: Wire Drawdowns
  description: Review vendor requests to draw funds by wire, and pre-authorize trusted
    vendors.
x-tagGroups:
- name: Core API
  tags:
  - API Keys
  - Contacts
  - Accounts
  - Transactions
  - Balances
  - Payment Networks
  - Transfers
  - Wire Drawdowns
  - Routing Numbers
  - Cards
  - Users
  - Reimbursements
  - Tax Forms
  - Webhooks
  - Feature Access
- name: Bill Pay
  tags:
  - Bills
- name: Billing
  tags:
  - Products
  - Customers
  - Invoices
  - Line Items
  - Payment Methods
  - Collection Accounts
- name: Partner Onboarding
  tags:
  - Partner Onboarding
- name: Sandbox
  tags:
  - Simulations
