openapi: 3.1.0
info:
  title: Apiture Digital Banking
  description: |-
    APIs for digital banking client applications.

    ## Banking Products

    Banking products describes product offerings against which bank customers open new accounts. A banking product resource describes the type, label, product code, rates, constraints (limits) and other data about a banking products such as Basic Savings, Premiere Checking, 180 Day CD and other products.

    Use [`listBankingProducts`](#op-listBankingProducts) to list the account products offered by the financial institution, and use [`getBankingProduct`](#op-getBankingProduct) to fetch the full details of a specific product.

    ## Customer Accounts

    Customer-level API for listing banking accounts, balances, and other account-specific data.

    Clients may use this API to:

      * [`listAccounts`](#op-listAccounts) - obtain a list of accounts that the authorized user has access to,
      returning a [`accounts`](#schema-accounts) collection with a `list` of account objects.
      * [`listEligibleAchAccounts`](#op-listEligibleAchAccounts) - obtain a list of ACH accounts that allow
      transfers based on SEC code and authorized account privileges.
      * [`listAccountBalances`](#op-listAccountBalances) - list the balances of the customer' accounts.
      * [`getAccount`](#op-getAccount) - fetch a more complete set of properties of an internal account.
      * Manage overdraft protection:
        * [`listEligibleOverdraftAccounts`](#op-listEligibleOverdraftAccounts) - list accounts which may be set as
        overdraft protection accounts for another account.
        * [`getOverdraftProtection`](#op-getOverdraftProtection) - fetch an account's overdraft protection settings.
        * [`patchOverdraftAccounts`](#op-patchOverdraftAccounts) - update an account's overdraft protection settings.
        * [`setOverdraftProtectionElections`](#op-setOverdraftProtectionElections) -
        overdraft protection elections (opt in, opt out) for one or more accounts.
      * Manage CD renewal settings
        * [`getCdSettings`](#op-getCdSettings) - fetch an account's CD renewal settings.
        * [`patchCdSettings`](#op-patchCdSettings) - update an account's CD renewal settings.
      * Manage peer accounts.
        Peer accounts are accounts owned by other account holders at the same
        financial institution (bank or credit union). Adding a peer account
        allows one account holder to transfer funds directly to another account
        holder's account, bypassing normal fund transfer processes like ACH.
        For example, a parent can add a peer account for their child's checking
        account (if they are both customers/members of the same financial institution)
        in order to directly transfer funds to their child's account.
        In credit unions, this is often referred to as a "member to member transfer",
        although this is really a transfer from one member's deposit account to another member's
        checking, savings, or loan account.
        * [List peer accounts](#op-listPeerAccounts)
        * [Create a new peer account](#op-createPeerAccount)
        * [Get a peer account](#op-getPeerAccount)
        * [Mark a peer account as archived](#op-archivePeerAccount)
        * [Delete a peer account](#op-deletePeerAccount)
      * [`generateLoanPayoffQuote`](#op-generateLoanPayoffQuote) - fetch the loan payoff quote for a loan account.

    ## Challenges

    The Challenges API supports challenging banking users to verify their identity when performing other API operations.

    This API supports _challenges_ when the financial institution requires the user to prove their identity though a secondary challenge _factor_, such as entering a code sent to them via SMS (text message), email, voice call, or by answering security questions. User may have has one or more _channels_  associated with each factor, such as a multiple phone numbers or e-mail addresses. The financial institution may require a challenge before certain actions that warrant extra validation, such as making transfers to an external institution, updating the customer's mailing address, or ordering replacement debit cards.

    An API operation may return a 403 response with a `challengeRequired` problem type name to indicate a challenge is required for that operation. (The [problem response's](#schema-problemResponse) `type` is the URI [`https://static.api.apiture.com/errors/challengeRequired/v1.0.0/`](https://static.api.apiture.com/errors/challengeRequired/v1.0.0/). The actual version number `v1.0.0` may change, although the problem `type` URL always starts with `https://static.api.apiture.com/errors/challengeRequired/`.) For `challengeRequired`, the `attributes` in the [`apiProblem`](#schema-apiProblem) response lists the challenges that the client may choose from as described in the [`requiredIdentityChallenge`](#schema-requiredIdentityChallenge) schema. The user must complete one of the offered challenges.

    Each challenge contains a [`challengeFactor`](#schema-challengeFactor) which identifies how the user receives and completes the challenge. This object has a [`type`](#schema-challengeFactorType) which describes the factor used to complete the challenge and optional string `labels` which describe the channel(s) through which the user can complete the challenge. For `sms` and `voice` factors, the label is the last four digits of a phone number. For `email` challenges, the label is a masked email address. For `securityQuestions`, the `challengeFactor` includes a prompt for each of the user's security questions, and does not use the `labels`.

    The user selects their preferred channel from those available, and the client then starts that challenge flow via [the `startIdentityChallenge` operation](#op-startIdentityChallenge). In response to that operation, the service will send an _one-time passcode_ of several digits to the user via the corresponding channel for the `sms`, `email`, `voice`, `authenticatorToken` challenge factors. The start operation is required to activate the challenge, even if the service does not have to send information to the user, such as with `securityQuestions`.

    The user enters the challenge response, such as the _one-time passcode_ that was sent to them or the answers to their security questions, in the client. Then the client completes the challenge by [verifying the user's challenge response](#op-verifyIdentityChallenge).

    The system verifies the submitted challenge response(s) and, if valid, returns a token that the client must pass via the `Challenge` request header (in conjunction with the existing `Authorization` header) when it retries the operation.

    For example, if the user chose to complete the following `sms` challenge factor:
    `{ "type": "sms", "id": "15488eb31d2aef258d59", "labels": [ "3774" ] }`

      1. The client will [start that challenge](#op-startIdentityChallenge).
      1. The system sends the one-time passcode such as `987303` via SMS text message to their phone ending in 3774.
      1. The user enters that one-time passcode `987303` in the client application.
      1. The client application submits the one-time passcode response and the corresponding challenge `id`
         (`15488eb31d2aef258d59`) and `factor` (`sms`) and `responses` using the
         [`verifyIdentityChallenge`](#op-verifyIdentityChallenge) operation.

    The `verifyIdentityChallenge` response includes a `result`. A result of `failed` means the verification failed. A result of `locked` means the user has failed too many verification attempts and the system has locked them out. The response also include an `allows` object which indicate if the user can submit new response, restart the factor (i.e. resend the one-time passcode), or try the operation again to get a new challenge.

    A result of `verified` means the user's response matched the expected response. A response with a verified result also includes a `challengeToken` value. The client must send this in the `Challenge` request header in addition to the `Authorization` header when retrying the operation.

    For example, if the result from verifying the response contains `{ ... "result": "verified", "challengeToken": "91a2a7724d6e82f5cd73", ... }` and their existing bearer token is `eyJraWQi...VVb1pH9bcBbg`, then the client should send the request headers:

      * `Authentication: Bearer eyJraWQi...VVb1pH9bcBbg`
      * `Challenge: 91a2a7724d6e82f5cd73`

    when retrying the operation.

    ## Monetary Currencies

    Operations related to monetary currencies (US Dollar, Euro, Japanese Yen, etc.) used in (international) financial transactions, such as international wire transfers.

    This API provides the following features:

      1. [List available currencies](#op-listCurrencies) for foreign exchange transactions.
      1. [Generate a currency conversion quote](#op-generateCurrencyConversionQuote)
      1. [Accept a currency conversion quote](#op-acceptedCurrencyConversionQuote)

    ## Customers

    Banking Customers. Customers can be either individuals or businesses who hold bank accounts.

    ## Financial Institutions

    Operations related to bank and credit union financial institutions (FIs). This API provides the following features

      1. [Calculating upcoming dates](#op-getTransferSchedule) for transfer schedules, factoring in weekends, non-business days, and
      banking holidays as determined by the institution,
      1. Provide a [list of transfer date restrictions](#op-listTransferDateRestrictions):
      dates when users should not schedule transfers, based on transfer parameters,
      1. [Look up a financial institution](#op-lookUpInstitutionByLocator) by an FI locator value: either an ABA routing and transit number,
      an IBAN account number, or a SWIFT/BIC code,
      1. [Fetching Cutoff times for FI money movement requests](#op-listCutoffTimes).
      1. [Searching branch and ATM locations](#op-listInstitutionAccessLocations)
      1. [Configurations for institutions and their features](#op-getInstitutionConfigurations)

    Some of the operations in this API require an `institutionId` path parameter. This is the unique alphanumeric code that uniquely identifies a financial institution.

    ## Account Transactions

    The Transactions API allows bank customers to [list the transactions history](#op-listTransactions) associated with a banking account. The client may filter the transaction history by date, amount, transaction type, and other criteria. The transaction response is paginated since there may be many thousands of transactions for an account.

    Transaction history items have a `type` which indicates if the item is a `debit` or a `credit` transaction or a balance line item which establishes the account's balance. Examples of debit transactions are checks drawn against an account, withdrawals, transfers from the account, fees, and adjustments. Examples of credit transactions are deposits, transfers to the account, interest, and adjustments. Check transactions include the check number.

    Some transactions have associated images such as check images or deposit slips. If a transaction item has images, the `hasImages` property is `true`. The [list transaction images](#op-listTransactionImages) operation returns those images.

    Some transactions, such as ACH transfers or debit card payments, include information about the merchant, such as the merchant name, the merchant's website URL, and logo URL if available.

    Transactions may also have a `memo` descriptive field and a _category_.

    **Note:** The financial institution may limit transaction history to the last 12 months of data.

    ## Account to Account Transfers

    Schedule and manage account to account transfers.

    When creating new simple transfers, the source and target accounts, amount, and transfer schedule are required and the transfer is scheduled to be processed on the scheduled date. Some financial institutions support immediate transfers between local accounts scheduled on the current day. Transfers to or from external accounts typically are processed after the financial institution's ACH cut-off time but require several business days.

    Transfers have a [`state`](#schema-transferState) property which indicates if the transfer is pending, pending approvals, scheduled (queued for processing), processing, or processed.

    Transfers support recurring schedules, such as repeating every week or every month. Recurring transfers can also be variable transfers; they recur without an amount. Occasional recurring transfers do not have a scheduled date. Both of these situations result in transfers in a `pending` state. They remain pending until a [`patchTransfer`](#op-patchTransfer) operation sets the amount and schedule. Once a `pending` transfer has an amount and schedule, it becomes `scheduled`.

    ## Payment Batches

    _Payment batches_ are collections of one or more payments (or drafts) to one or more third-parties. An ACH batch is a payment batch with a payment batch `type` of `ach`. A payment can also be a wire transfer (`type` is `wireTransfer`) or a NACHA pass-through file (`type` is `nachaPassThrough`). Each batch can only manage one type of payment.

    ACH and wire transfer batches contains a list of _payment instructions_, which include an amount and specific payment details for that payment contact, such as an ACH payment to a specific bank account identified by a routing number and account number, or the intermediary financial institution and beneficiary financial institution for a wire transfer. Batches have a payment _direction_. In a credit batch, the business pays one or more recipients. In a debit batch, the business drafts payment from one or more payers. Batches imported from an ACH file may have payment instructions in both directions. Wire transfers must be `credit`. NACHA pass-trough payments do not provide access to the individual payment instructions.

    The parties involved in the payments are known as _payment contacts_. Each payment contact resource provides relevant information about a contact needed to facilitate a batch payment, such as a physical address and phone numbers. Payment contacts are used to create an association between payees and their accounts. They contain _payment methods_ which are used to populate _payment batches_, along with financial institution accounts and payment amounts.

    A payment contact can contain multiple _payment methods_. Payment methods may contain a contact's financial institution account information or other account identification fields. A payment contact can be designated as being the `primary` method. Only one payment method can be designated as `primary`. If a new payment method is set as the primary method when the payment contact has an already existing primary payment method, the new payment method becomes the primary method.

    A batch also has a _schedule_ which consists of a scheduled date and optional recurrence. The schedule may be a one-time or recurring payment. NACHA pass-through schedules are determined by the dates in the NACHA file and do not support recurring payments.

    All the payments in a batch either draw from or are credited to a _settlement account_, usually a business checking account. The payment can be either a summary (all payment instructions are aggregated into one transaction) against the settlement account or detailed settlement (one transaction per payment instruction).

    Saved payment batches may have one or more problems associated with them, including but not limited to the following:

      * No payment instructions
      * Insufficient funds for the payment
      * The sum of all payments in the batch may exceed customer limits
      * Some payment instructions may have invalid data, such as a 0 amount,
        an invalid ACH routing number, or an invalid account number
      * Missing or invalid intermediary or beneficiary financial institutions
        for wire transfers
      * It is past the cutoff time of the approval due date


    If a payment batch contains new payment contacts whose ACH payment details have not yet been verified, the API supports creating and submitting a _prenote batch_ which verifies the ACH payment routing number and account number where needed.

    After editing all the payment details and payment instructions and all problems have been resolved, the customer may submit the payment batch. If the batch also requires additional approval from other business users, the author can list potential approvers and request approval from those with approval authority. Once all approvals have been given, the batch is scheduled for processing after the cutoff time on the derived processing date. An approver may reject the batch, requiring changes to it, and the approval process starts over.

    The API provides an operation to list pending, pending approval, scheduled, rejected, failed, processing, or previously processed payment batches.

    Payment batches can be deleted in bulk by using the [`deletePaymentBatches` operation](#op-deletePaymentBatches). Payment batches are not deleted if they are already processing or have been processed. When using `deletePaymentBatches`, if any of payment batches are ineligible for deletion, they are excluded from processing. All remaining payment batches from the list are deleted.
    ### Approval Flows
    The financial institution may require one or more account holders to approve payment batches. The `listEligiblePaymentBatchApprovers` operation returns a list of eligible approvers. The customer creating or editing the batch should select one or more from that list and add them to the batch with the `addPaymentBatchApprovers` operation. The length of the `approvals` array in the batch indicates the minimum number of approvals before a payment batch may be processed.

    If a customer has `submit` permission on the batch, they can submit a batch with the `submitPaymentBatch` operation. If they also have `approval` permission, their approval is implicitly given. The batch remains in the `pendingApproval` state as long as the number of approvals given is less than required. Other approvers can either approve the batch (`approvePaymentBatch`) or reject it (`rejectPaymentBatch`). Once the minimum number of approvers have approved the batch, its state changes to `scheduled`. Customers with `unlock` permissions may also remove all approvals ([`unlockPaymentBatch`](#op-unlockPaymentBatch)) of a `scheduled` batch in order to make the batch editable, for example to change the processing date. Rejected batches require updating to address the given reason for rejection; rejecting also removes all approvals. After removing all approvals or rejecting a payment batch, the approval process starts over.
    ### Dates
    Payments have several dates associated with them:

      * The _scheduled date_ is the target date when the payment must be _completed_. For example, if payroll
        is due the last day of the month, the scheduled date for May is the 31<sup>st</sup>.
        The scheduled date is required when creating a payment batch. The remaining dates are derived from the
        scheduled date.
      * The _effective date_ is the date when the processing must be completed. For example, if the payroll
        payments' scheduled date falls on a weekend or holiday, the effective date is computed so the payroll
        deposits complete the processing day immediately before. Thus, if the scheduled May 31 is a Memorial Day Monday,
        the effective date is Friday May 28.
      * The _approval due date_ is computed as the date when all approvals must be given (before the financial
        institution cutoff date) in order for the payment processing to begin and complete by the scheduled date.
        This may be a day earlier than the effective date.

    ### Disclosure Acknowledgement
    Some wire transfers, such as international retail wire transfers, require an acknowledgement of fee and tax disclosures. The banking customer acknowledges these disclosures at the time of wire transfer creation. These disclosures may be updated over time. If the banking customer updates a wire transfer after the disclosure has changed, the banking customer must acknowledge the disclosure again. The banking customer can review the timestamps for acknowledged disclosures for a wire transfer at any time.

    ## Payment Templates

    _Payment templates_ are used to store re-usable payment information, and are available for both domestic and international wire transfer and any ACH batches. New payment batches can be created from these templates.

    Both types of payment templates function similarly. A key difference is that templates for ACH batches can be created as _pending_, while wire transfer templates are immediately active when they are created and are not able to be in a pending state.

    Templates can be created from scratch or by copying an existing template. Templates can be copied for wire transfers via the [copy wire transfer template operation](#op-copyWireTransferTemplate) or via the [copy ACH payment batch template operation](#op-copyAchTemplate). When templates are copied from another template, they receive copies of the values for the properties on the source template. The values in the copy are not updated when the source template is changed.

    Certain properties of a payment template may be locked for editing when the template is used for creating a payment batch. When a payment batch is created using a template, patch or other operations may not change the properties that are locked in the template.
  version: 0.528.0
  contact:
    name: Apiture
    url: https://developer.apiture.com/help/support/
    email: api@apiture.com
  termsOfService: https://developer.apiture.com/docs/Apiture-API-License-Agreement.pdf
  license:
    name: Apiture API License
    url: https://developer.apiture.com/docs/Apiture-API-License-Agreement.pdf
servers:
  - url: /banking
tags:
  - name: Banking Products
    description: Banking Products which describe banking accounts
  - name: Overdraft Protection
    description: Overdraft Protection Plans
  - name: Accounts
    description: Banking Accounts
  - name: Peer Accounts
    description: Peer Accounts
  - name: Peer Account Actions
    description: Actions on Peer Accounts
  - name: Account Joint Owners
    description: Account Joint Owners
  - name: Account CD Settings
    description: Account CD Renewal Settings
  - name: Challenges
    description: Challenges
  - name: Currencies
    description: Banking Currencies
  - name: Customers
    description: Banking Customers
  - name: Institutions
    description: Banking Institutions
  - name: Institution Configurations
    description: Banking Institution Configurations
  - name: Schedules
    description: Schedules
  - name: Wire Transfer Disclosures
    description: Wire Transfer Disclosures
  - name: Transactions
    description: Banking Account Transactions
  - name: Transaction Categories
    description: Banking Account Transaction Categories
  - name: Transaction Images
    description: Images Associated With a Transaction
  - name: Transfers
    description: Banking Transfers
  - name: Payment Batches
    description: Payment Batches
  - name: Payment Batch Actions
    description: Actions on Payment Batches
  - name: Business Transfers
    description: Business Transfers
  - name: Payment Instructions
    description: Payment Instructions
  - name: Payment History Records
    description: Payment History Records
  - name: Payment Instruction Actions
    description: Payment Instruction Actions
  - name: Payment Contacts
    description: Payment Contacts
  - name: Payment Contact Actions
    description: Payment Contact Actions
  - name: Payment Methods
    description: Payment Methods
  - name: ACH Templates
    description: ACH Templates
  - name: ACH Template Actions
    description: ACH Template Actions
  - name: Wire Transfer Templates
    description: Wire Transfer Templates
  - name: Wire Transfer Template Actions
    description: Wire Transfer Template Actions
paths:
  /bankingProducts:
    get:
      summary: Return a collection of banking products
      description: |-
        Return a collection of the financial institution's banking products. The products describe the banking accounts at the institution. Each account is an instance of one banking product.

        By default, this operation lists products for the institution associated with the API Key. Use the `Institution-Id` request header to view the products for another institution allowed by the API key.<br>The operation `listBankingProducts` was added on version `0.6.0` of the API.
      operationId: listBankingProducts
      x-apiture-api: bankingProducts
      x-apiture-group: products
      x-apiture-since: 0.6.0
      tags:
        - Banking Products
      parameters:
        - name: type
          description: Filter banking products to those whose `type` property is in this pipe-delimited list.
          in: query
          style: pipeDelimited
          explode: false
          schema:
            type: array
            uniqueItems: true
            minItems: 1
            maxItems: 7
            items:
              $ref: '#/components/schemas/productType'
        - name: state
          description: Filter banking products to those whose `state` property is in this pipe-delimited list.
          in: query
          style: pipeDelimited
          explode: false
          schema:
            type: array
            uniqueItems: true
            minItems: 1
            maxItems: 6
            items:
              $ref: '#/components/schemas/productState'
        - $ref: '#/components/parameters/resolveQueryParam'
        - $ref: '#/components/parameters/institutionIdHeaderParam'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bankingProducts'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - apiKey: []
  /bankingProducts/{productIdOrCode}:
    parameters:
      - $ref: '#/components/parameters/productIdOrCodePathParam'
    get:
      summary: Fetch a banking product
      description: |-
        Return the JSON representation of this banking product. This response contains additional detail not present in the [`listBankingProducts`](#op-listBankingProducts) response, such as the account currency, rates, and links to the product's terms and conditions.

        By default, this operation lists products for the institution associated with the API Key. Use the `Institution-Id` request header to view a product for another institution allowed by the API key.<br>The operation `getBankingProduct` was added on version `0.6.0` of the API.
      operationId: getBankingProduct
      x-apiture-api: bankingProducts
      x-apiture-group: products
      x-apiture-since: 0.6.0
      tags:
        - Banking Products
      parameters:
        - $ref: '#/components/parameters/resolveQueryParam'
        - $ref: '#/components/parameters/ifNoneMatchHeaderParam'
        - $ref: '#/components/parameters/institutionIdHeaderParam'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bankingProduct'
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
        '304':
          $ref: '#/components/responses/304'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404BankingProduct'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - apiKey: []
  /products/{productIdOrCode}/overdraftProtectionPolicies:
    parameters:
      - $ref: '#/components/parameters/productIdOrCodePathParam'
    get:
      operationId: getProductOverdraftProtectionPolicies
      x-apiture-api: bankingProducts
      x-apiture-group: overdraftProtection
      summary: Return the financial institution's overdraft protection election policies for this product.
      description: Return the financial institution's policies that govern how the banking customer may change elections (can opt in or opt out) of overdraft protection plans for their accounts associated with this banking product.
      tags:
        - Overdraft Protection
      security:
        - apiKey: []
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/productOverdraftProtectionPolicies'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/productOverdraftProtectionPolicies'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '404':
          $ref: '#/components/responses/404BankingProduct'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
  /accounts:
    get:
      summary: List Accounts
      operationId: listAccounts
      x-apiture-api: bankingAccounts
      x-apiture-group: accounts
      description: Return a paginated list of the customer's accounts, consisting of internal accounts at this financial institution and accounts at other financial institutions, if any.
      parameters:
        - $ref: '#/components/parameters/unmaskedAccountNumberQueryParam'
        - name: productType
          description: |-
            Include only accounts whose `product.type` is in pipe-delimited set. For example, to list only savings, checking, and CD accounts, use

            `?productType=savings|checking|cd` .
          in: query
          style: pipeDelimited
          explode: false
          schema:
            type: array
            minItems: 1
            maxItems: 6
            uniqueItems: true
            items:
              $ref: '#/components/schemas/productType'
        - name: location
          in: query
          schema:
            type: string
            enum:
              - internal
              - external
          description: Filter accounts to just a subset of `internal` or `external` accounts (per the `location` property on the [`accountItem`](#schema-accountItem) schema).
        - name: allows
          in: query
          description: Filter the result to accounts that have corresponding `true` values in `account.allows`. For example `?allows=transferTo,transferFrom,view` returns only accounts where `account.allows.transferTo`, `account.allows.transferFrom`, and `account.allows.view` are all `true` for the caller.
          style: form
          explode: false
          schema:
            type: array
            minItems: 1
            x-apiture-note: maxItems 8 is the number of enum items in accountAllowsFilter
            maxItems: 8
            uniqueItems: true
            items:
              $ref: '#/components/schemas/accountAllowsFilter'
        - $ref: '#/components/parameters/startQueryParam'
        - $ref: '#/components/parameters/limitQueryParam'
      tags:
        - Accounts
      security:
        - accessToken:
            - banking/read
      responses:
        '200':
          description: OK. A page from the full list of the customer's accounts. This list contains only accounts that the customer is entitled to access. While the `nextPage_url` property is present in the response, the client can fetch the next page of accounts by performing a `GET` on that URL.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/accounts'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: listAccounts
  /accounts/{accountId}:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
      - $ref: '#/components/parameters/unmaskedAccountNumberQueryParam'
    get:
      summary: Get an Account
      operationId: getAccount
      x-apiture-api: bankingAccounts
      x-apiture-group: accounts
      description: Return details of the customer's internal account.
      tags:
        - Accounts
      security:
        - accessToken:
            - banking/read
      responses:
        '200':
          description: OK. The response is a representation of the customer's account.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/account'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404Account'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: getAccount
  /accountBalances:
    get:
      summary: List Account Balances
      operationId: listAccountBalances
      x-apiture-api: bankingAccounts
      x-apiture-group: accounts
      description: |-
        Return a list of the requested internal accounts' balances. The `accounts` query parameter is a list of account IDs which typically comes from the `getAccounts` operation response. The returned list does not include external accounts. The caller must have entitlements to view each account's details, as indicated by a `true` value for `account.allows.view`. Requests to list balances for accounts the user is not allowed to read results in a 403 Forbidden response.

        The response may be incomplete. Given a `Retry-After` response header, the client can retry the operation after a short delay, requesting only the accounts which are incomplete; see the 202 Accepted response for details.
      parameters:
        - name: accounts
          description: 'The unique account identifiers of one or more internal accounts. (Internal accounts are those with `location` value of `internal`.) If omitted, this operation uses the accounts for which the customer has view permissions but is limited to at most 1000 accounts. Note: The account IDs are unrelated to the account number.'
          in: query
          required: false
          style: form
          explode: false
          schema:
            $ref: '#/components/schemas/accountIds'
        - name: retryCount
          description: When retrying the operation, pass the `retryCount` from the `incompleteAccountBalances` response.
          in: query
          schema:
            type: integer
            format: int32
            minimum: 1
            maximum: 10
      tags:
        - Accounts
      security:
        - accessToken:
            - banking/read
      responses:
        '200':
          description: OK. The response contains the balances for all the accounts in the `?accounts=` query parameter.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/accountBalances'
        '202':
          description: Accepted. The service accepted the request but could not provide balances for all the requested accounts and returned an incomplete response. Try the call again after the time in the `Retry-After` response header has passed, and request only those accounts which are `incomplete`. If there is no `Retry-After` response header, the client has reached its maximum number of tries and should not retry the operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/incompleteAccountBalances'
          headers:
            Retry-After:
              $ref: '#/components/headers/Retry-After'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well-formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidAccountId/v0.2.0`](https://static.api.apiture.com/errors/invalidAccountId/v0.2.0)<br>
              The named `accountId` does not exist or the user is not entitled to access the account.
              Remediation: Pass the `id` of an existing account the caller has access to.
          x-apiture-errors:
            - invalidAccountId
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
              example:
                id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
                type: https://static.api.apiture.com/errors/invalidAccountId/v1.0.0
                title: Unprocessable Entity
                status: 422
                occurredAt: '2022-04-25T12:42:21.375Z'
                detail: No such account exists for the given account ID.
                instance: https://static.api.apiture.com/banking/accountBalances?accounts=bb709151-575041fcd617
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
              example:
                id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
                type: https://static.api.apiture.com/errors/invalidAccountId/v1.0.0
                title: Unprocessable Entity
                status: 422
                occurredAt: '2022-04-25T12:42:21.375Z'
                detail: No such account exists for the given account ID.
                instance: https://static.api.apiture.com/banking/accountBalances?accounts=bb709151-575041fcd617
        '429':
          $ref: '#/components/responses/429'
        '503':
          description: Service Unavailable. Could not fetch the account balance from the banking core.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: listAccountBalances
  /peerAccounts:
    get:
      summary: Return a collection of peer accounts
      description: |-
        Return a list of the peer accounts owned by the banking customer/member.

        Note: the default response includes peer accounts in all states. To list only active accounts use the `?state=active` filter.
      operationId: listPeerAccounts
      x-apiture-api: bankingAccounts
      x-apiture-group: peerAccounts
      tags:
        - Peer Accounts
      security:
        - accessToken:
            - banking/read
      parameters:
        - name: state
          in: query
          description: Return only peer accounts which are in any of the listed states. For example, with `?state=active`, the list includes only peer accounts where `peerAccount.state` is `"active"`.
          style: pipeDelimited
          explode: false
          schema:
            type: array
            minItems: 1
            maxItems: 3
            uniqueItems: true
            items:
              $ref: '#/components/schemas/peerAccountState'
        - name: allows
          in: query
          description: Return only peer accounts which have all the listed permissions. For example, with `?allows=transferFrom,transferTo`, the list includes only peer accounts where `peerAccount.allows.transferFrom` is `true` _and_ `peerAccount.allows.transferTo` is `true`.
          schema:
            type: array
            minItems: 1
            maxItems: 4
            uniqueItems: true
            items:
              $ref: '#/components/schemas/peerAccountPermissions'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/peerAccounts'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: listPeerAccounts
    post:
      summary: Create a new peer account
      description: Create a new peer account.
      operationId: createPeerAccount
      x-apiture-api: bankingAccounts
      x-apiture-group: peerAccounts
      tags:
        - Peer Accounts
      security:
        - accessToken:
            - banking/write
      requestBody:
        required: true
        description: The data necessary to create a new peer account.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/newPeerAccount'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/peerAccount'
          headers:
            Location:
              description: The URI of the new peer account.
              schema:
                type: string
                format: uri-reference
                maxLength: 2048
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '409':
          $ref: '#/components/responses/409PeerAccount'
        '422':
          $ref: '#/components/responses/422PeerAccount'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: createPeerAccount
  /peerAccounts/{peerAccountId}/replacement:
    parameters:
      - $ref: '#/components/parameters/peerAccountIdPathParam'
    post:
      summary: Replace this peer account with a revised peer account.
      operationId: replacePeerAccount
      x-apiture-api: bankingAccounts
      x-apiture-group: peerAccounts
      description: |-
        Key account identifying attributes of a peer account are not mutable; [`patchPeerAccount`](#op-patchPeerAccount) only allows changing the `nickname`. Instead of mutating a peer account, this operation _replaces_ an `active` peer account with a revised instance based on properties in the request body. The replacement is a 1-to-1 copy of the source peer account and its nested objects, with properties provided in the request body replacing corresponding properties in the source peer account as per [JSON Merge Patch (RFC 7386)](https://datatracker.ietf.org/doc/html/rfc7386) semantics. The replacement peer account is assigned unique `id`.

        *Note*: This operation [deletes the source peer account](#op-deletePeerAccount) at `/peerAccounts/{peerAccountId}` if `allows.delete` is true, otherwise this [archives the source peer account](#op-archivePeerAccount).

        *Note*: Any historical transfers or banking event history items remain associated with the source archived peer account, not the replacement. Any pending transfers are updated with the replacement peer account.
      tags:
        - Peer Account Actions
      security:
        - accessToken:
            - banking/write
      requestBody:
        required: true
        description: The patch to apply to this peer account.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/peerAccountReplacement'
      responses:
        '201':
          description: Created. A replacement peer account was created. The replacement peer account is returned in the response body.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/peerAccount'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/peerAccount'
          headers:
            Location:
              description: The URI of the new (replacement) peer account.
              schema:
                type: string
                format: uri-reference
                maxLength: 2048
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PeerAccount'
        '409':
          description: |-
            Conflict. The operation may fail with a `duplicatePeerAccount` problem type if the financial institution policy disallows duplicate peer accounts, or `invalidPeerAccountState` if this peer account is not `active`.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/duplicatePeerAccount/v1.0.0`](https://static.api.apiture.com/errors/duplicatePeerAccount/v1.0.0)<br>
              The customer already has a peer account which matches the given data.
              Remediation: Enter data for an unique account.

            * [`https://static.api.apiture.com/errors/invalidPeerAccountState/v1.0.0`](https://static.api.apiture.com/errors/invalidPeerAccountState/v1.0.0)<br>
              This request is not allowed for a peer account in this state.
              Remediation: Invoke the operation only on peer accounts in the required state for this operation.
            The `attributes` object in the error may have the properties defined for [`invalidPeerAccountState`](https://static.api.apiture.com/errors/invalidPeerAccountState/v1.0.0).
          x-apiture-errors:
            - duplicatePeerAccount
            - invalidPeerAccountState
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
          $ref: '#/components/responses/409PeerAccount'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0`](https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0)<br>
              The syntax of the request entity is correct but was unable to process the contained instructions.
              Remediation: Provide a semantically correct request.

            * [`https://static.api.apiture.com/errors/noSuchPeerAccount/v1.0.0`](https://static.api.apiture.com/errors/noSuchPeerAccount/v1.0.0)<br>
              There is no such peer account at the financial institution for the given data.
              Remediation: Provide the account holder name and account numbers for an active account.

            * [`https://static.api.apiture.com/errors/invalidPeerAccountInstitutionData/v1.0.0`](https://static.api.apiture.com/errors/invalidPeerAccountInstitutionData/v1.0.0)<br>
              The caller passed bank properties when the institution is a credit union, or passed credit union data when the institution is a bank, or the caller passed both or neither.
              Remediation: Pass `bank` only when the institution is a bank, and pass `creditUnion` only when the institution is a credit union.
          x-apiture-errors:
            - $ref: '#/components/x-apiture-errors/unprocessableEntity'
            - noSuchPeerAccount
            - invalidPeerAccountInstitutionData
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: replacePeerAccount
  /peerAccounts/{peerAccountId}:
    parameters:
      - $ref: '#/components/parameters/peerAccountIdPathParam'
    get:
      summary: Fetch a representation of this peer account
      description: Return the JSON representation of this peer account resource.
      operationId: getPeerAccount
      x-apiture-api: bankingAccounts
      x-apiture-group: peerAccounts
      security:
        - accessToken:
            - banking/read
      tags:
        - Peer Accounts
      parameters:
        - $ref: '#/components/parameters/unmaskedAccountNumberQueryParam'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/peerAccount'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PeerAccount'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: getPeerAccount
    patch:
      summary: Patch a peer account.
      description: |-
        Patch mutable properties of a peer account. Only the `nickname` is mutable.

        Changing the account identification properties (first/last name, account `type`, `bank.fullAccountNumber` or `creditUnion.fullMemberNumber` or `suffix`) is not supported. Instead, use [`replacePeerAccount`](#op-replacePeerAccount) to replace this peer account with a new peer account with the new account identification properties.
      operationId: patchPeerAccount
      x-apiture-api: bankingAccounts
      x-apiture-group: peerAccounts
      tags:
        - Peer Accounts
      security:
        - accessToken:
            - banking/write
      requestBody:
        required: true
        description: The patch to apply to this peer account.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/peerAccountPatch'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/peerAccount'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PeerAccount'
        '422':
          $ref: '#/components/responses/422PeerAccount'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: patchPeerAccount
    delete:
      summary: Delete this peer account resource
      description: Delete this peer account resource. Deletion is only allowed if [`peerAccount.allows.delete`](#schema-peerAccountPermissions) is true. Use [`archivePeerAccount`](#op-archivePeerAccount) to indicate a peer account should not be used for future transfers.
      operationId: deletePeerAccount
      x-apiture-api: bankingAccounts
      x-apiture-group: peerAccounts
      security:
        - accessToken:
            - banking/write
      tags:
        - Peer Accounts
      responses:
        '204':
          $ref: '#/components/responses/204'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PeerAccount'
        '409':
          description: |
            Conflict. The caller may not delete the peer account.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/cannotDeletePeerAccount/v1.0.0`](https://static.api.apiture.com/errors/cannotDeletePeerAccount/v1.0.0)<br>
              The caller cannot delete a peer account that is in use in pending transfers.
              Remediation: Cancel the transfers that use this peer account, or archive the account.
          x-apiture-errors:
            - cannotDeletePeerAccount
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
              example:
                id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
                type: https://static.api.apiture.com/errors/cannotDeletePeerAccount/v1.0.0
                title: Conflict
                status: 409
                occurredAt: '2024-03-21T10:43:14.375Z'
                detail: The caller cannot delete a peer account that is in use in pending transfers.
                instance: https://static.api.apiture.com/banking/peerAccounts/676dc7534d3c8d0e77ac
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
              example:
                id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
                type: https://static.api.apiture.com/errors/cannotDeletePeerAccount/v1.0.0
                title: Conflict
                status: 409
                occurredAt: '2024-03-21T10:43:14.375Z'
                detail: The caller cannot delete a peer account that is in use in pending transfers.
                instance: https://static.api.apiture.com/banking/peerAccounts/676dc7534d3c8d0e77ac
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: deletePeerAccount
  /peerAccounts/{peerAccountId}/archived:
    parameters:
      - $ref: '#/components/parameters/peerAccountIdPathParam'
    post:
      operationId: archivePeerAccount
      x-apiture-api: bankingAccounts
      x-apiture-group: peerAccounts
      security:
        - accessToken:
            - banking/write
      summary: Archive a peer account
      description: |-
        Archive a peer account. This changes the state of the peer account to `archived`. The response is the updated representation of the peer account. This operation is idempotent: no changes are made if the peer account is already `archived`.

        Note: to exclude archived peer accounts in the [`listPeerAccounts`](#op-listPeerAccounts) response, use the `?state=active` filter.
      tags:
        - Peer Account Actions
      responses:
        '200':
          description: OK. The operation succeeded. The peer account was updated and its `state` changed to `archived`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/peerAccount'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/peerAccount'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          $ref: '#/components/responses/409'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: archivePeerAccount
  /accounts/{accountId}/cdSettings:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
    get:
      summary: Return an account's CD settings
      description: Return an account's CD settings. This operation is only available if the account's `type` is `cd` and the caller has the `allows.view` permission for the account.
      operationId: getCdSettings
      x-apiture-api: bankingAccounts
      x-apiture-group: cdSettings
      tags:
        - Account CD Settings
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cdAccountSettings'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: getCdSettings
    patch:
      summary: Update an account's CD settings
      description: Update an account's CD settings. This operation is only available if the account's `type` is `cd` and the caller has the `allows.edit` permission for the account.
      operationId: patchCdSettings
      x-apiture-api: bankingAccounts
      x-apiture-group: cdSettings
      tags:
        - Account CD Settings
      requestBody:
        required: true
        description: Mutable CD settings.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/cdAccountSettingsPatch'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cdAccountSettings'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          description: |
            Unprocessable Entity. The request was well-formed but the data cannot be processed.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/cdMaturityTransferAccountAndProductAreMutuallyExclusive/v1.0.0`](https://static.api.apiture.com/errors/cdMaturityTransferAccountAndProductAreMutuallyExclusive/v1.0.0)<br>
              CD maturity may only specify a transfer account or a transfer product, not both.
              Remediation: Set only one of a transfer account or a transfer product.

            * [`https://static.api.apiture.com/errors/noSuchRolloverProduct/v1.0.0`](https://static.api.apiture.com/errors/noSuchRolloverProduct/v1.0.0)<br>
              The rollover product does not exist.
              Remediation: Select an active CD rollover product that meets the balance and other requirements.

            * [`https://static.api.apiture.com/errors/invalidRolloverProduct/v1.0.0`](https://static.api.apiture.com/errors/invalidRolloverProduct/v1.0.0)<br>
              The selected rollover product is not eligible for CD rollover.
              Remediation: Select an active CD rollover product that meets the balance and other requirements.

            * [`https://static.api.apiture.com/errors/noSuchCdMaturityTransferProduct/v1.0.0`](https://static.api.apiture.com/errors/noSuchCdMaturityTransferProduct/v1.0.0)<br>
              The selected transfer product ID does not match an existing product.
              Remediation: Select a deposit product that is eligible for new account creation and funding transfer.

            * [`https://static.api.apiture.com/errors/noSuchCdMaturityTransferAccount/v1.0.0`](https://static.api.apiture.com/errors/noSuchCdMaturityTransferAccount/v1.0.0)<br>
              The selected transfer account ID does not match an existing account.
              Remediation: Select a deposit account that is eligible for debit transfers for the current user.

            * [`https://static.api.apiture.com/errors/invalidCdMaturityTransferAccount/v1.0.0`](https://static.api.apiture.com/errors/invalidCdMaturityTransferAccount/v1.0.0)<br>
              The selected transfer account ID does not match an existing account.
              Remediation: Select a deposit account that is eligible for debit transfers for the current user.
          x-apiture-errors:
            - cdMaturityTransferAccountAndProductAreMutuallyExclusive
            - noSuchRolloverProduct
            - invalidRolloverProduct
            - noSuchCdMaturityTransferProduct
            - noSuchCdMaturityTransferAccount
            - invalidCdMaturityTransferAccount
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: patchCdSettings
  /accounts/{accountId}/jointOwners:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
    get:
      summary: Return a collection of account joint owners
      description: Return a collection of account joint owners. The user must have the `account.manageJointOwners` permission to use this operation.
      operationId: listAccountJointOwners
      x-apiture-api: bankingAccounts
      x-apiture-group: jointOwners
      tags:
        - Account Joint Owners
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/accountJointOwners'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listAccountJointOwners
  /achEligibleAccounts:
    get:
      summary: List Eligible ACH Accounts
      operationId: listEligibleAchAccounts
      x-apiture-api: bankingAccounts
      x-apiture-group: accounts
      parameters:
        - $ref: '#/components/parameters/unmaskedAccountNumberQueryParam'
        - $ref: '#/components/parameters/accountAllowsRequiredQueryParam'
        - $ref: '#/components/parameters/secCodeQueryParam'
        - $ref: '#/components/parameters/customerIdQueryParam1'
        - $ref: '#/components/parameters/startQueryParam'
        - $ref: '#/components/parameters/limitQueryParam'
      description: |-
        Return a paginated list of a customer's accounts that are eligible for ACH transfers based on allowed privileges.

        Optionally, an agent can access a business customer's ACH accounts when acting on behalf of that business customer via the optional `customerId` query parameter.
      tags:
        - Accounts
      security:
        - accessToken:
            - banking/read
      responses:
        '200':
          description: OK. A page from the full list of the customer's ACH-eligible accounts. This list contains only accounts that the customer is entitled to access. While the `nextPage_url` property is present in the response, the client can fetch the next page of accounts by performing a `GET` on that URL.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/accounts'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: listEligibleAchAccounts
  /realTimePaymentEligibleAccounts:
    get:
      summary: List Eligible Real-Time Payment Accounts
      operationId: listEligibleRealTimePaymentAccounts
      x-apiture-api: bankingAccounts
      x-apiture-group: accounts
      parameters:
        - $ref: '#/components/parameters/unmaskedAccountNumberQueryParam'
        - $ref: '#/components/parameters/realTimePaymentAccountAllowsRequiredQueryParam'
        - $ref: '#/components/parameters/customerIdQueryParam1'
        - $ref: '#/components/parameters/startQueryParam'
        - $ref: '#/components/parameters/limitQueryParam'
      description: |-
        Return a paginated list of a customer's accounts that are eligible for sending or receiving real-time payments based on allowed privileges.

        Optionally, an agent can access a business customer's real-time payment eligible accounts when acting on behalf of that business customer via the optional `customerId` query parameter.
      tags:
        - Accounts
      security:
        - accessToken:
            - banking/read
      responses:
        '200':
          description: OK. A page from the full list of the customer's accounts that are eligible for sending or receiving real-time payments. This list contains only accounts that the customer is entitled to access. While the `nextPage_url` property is present in the response, the client can fetch the next page of accounts by performing a `GET` on that URL.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/realTimePaymentAccounts'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: listEligibleRealTimePaymentAccounts
  /accounts/{accountId}/eligibleOverdraftAccounts:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
    get:
      summary: List Eligible Overdraft Accounts
      operationId: listEligibleOverdraftAccounts
      x-apiture-api: bankingAccounts
      x-apiture-group: overdraftProtection
      parameters:
        - $ref: '#/components/parameters/startQueryParam'
        - $ref: '#/components/parameters/limitQueryParam'
      description: |-
        Return a paginated list of a customer's accounts that are eligible to serve as overdraft protection accounts for the given account. An overdraft protection account is a deposit account that the financial institution can transfer funds from to prevent the account balance from going negative and incurring non-sufficient funds fees.

        The user must have the `allows.manageOverdraftAccounts` permission on the account to use this operation.

        To obtain available balances for these accounts, use [`listAccountBalances`](#op-listAccountBalances).
      tags:
        - Overdraft Protection
      security:
        - accessToken:
            - banking/read
      responses:
        '200':
          description: OK. A page from the full list of the customer's eligible overdraft accounts. This list contains only accounts that the customer is entitled to access. While the `nextPage_url` property is present in the response, the client can fetch the next page of accounts by performing a `GET` on that URL.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/eligibleOverdraftAccounts'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404Account'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: listEligibleOverdraftAccounts
  /overdraftProtectionElections:
    post:
      operationId: setOverdraftProtectionElections
      x-apiture-api: bankingAccounts
      x-apiture-group: overdraftProtection
      summary: Update overdraft protection elections for one or more accounts
      tags:
        - Overdraft Protection
      description: |-
        Update overdraft protection elections (opt-in or opt out) for one or more banking accounts. The operation fails (403 Forbidden) if the authorized caller does not have access to manage overdraft protection elections to all of the accounts in the request. (**Note**: Only use this operation for accounts returned from [`listAccounts`](#op-listAccounts) with `?allows=` query that includes `manageOverdraftProtectionElections`; the operation failed with a 403 Forbidden if the request includes accounts without that permission.)

        This operation is idempotent: no changes are made if the valid overdraft elections for each account already match the request (returns 200 OK).
      requestBody:
        description: The updated overdraft account elections.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bulkAccountOverdraftProtectionElectionsUpdate'
          application/vnd.restful+json:
            schema:
              $ref: '#/components/schemas/bulkAccountOverdraftProtectionElectionsUpdate'
      responses:
        '200':
          description: OK. All account primary and secondary overdraft protection plan election changes in the request have been updated.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/accountOverdraftProtectionElectionsList'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/accountOverdraftProtectionElectionsList'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |
            Unprocessable Entity.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0`](https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0)<br>
              The syntax of the request entity is correct but was unable to process the contained instructions.
              Remediation: Provide a semantically correct request.

            * [`https://static.api.apiture.com/errors/invalidAccountIds/v1.0.0`](https://static.api.apiture.com/errors/invalidAccountIds/v1.0.0)<br>
              One or more account IDs are invalid and do not correspond to accounts.
              Remediation: Remove the invalid account IDs from the request and try again.
            The `attributes` object in the error may have the properties defined for [`invalidAccountIds`](https://static.api.apiture.com/errors/invalidAccountIds/v1.0.0).
            * [`https://static.api.apiture.com/errors/duplicateOverdraftAccountIds/v1.0.0`](https://static.api.apiture.com/errors/duplicateOverdraftAccountIds/v1.0.0)<br>
              The `id` values in the request list the same account `id` more than once.
              Remediation: Use eligible unique accounts only.

            * [`https://static.api.apiture.com/errors/primaryOverdraftProtectionNotAvailable/v1.0.0`](https://static.api.apiture.com/errors/primaryOverdraftProtectionNotAvailable/v1.0.0)<br>
              The caller requested a change to the `primary` overdraft protection election, but the financial institution does not offer a primary overdraft protection plan for the given account.
              Remediation: Only change primary overdraft protection elections for accounts that already have a `primary` election.

            * [`https://static.api.apiture.com/errors/secondaryOverdraftProtectionNotAvailable/v1.0.0`](https://static.api.apiture.com/errors/secondaryOverdraftProtectionNotAvailable/v1.0.0)<br>
              The caller requested a change to the `secondary` overdraft protection election, but the financial institution does not offer a secondary overdraft protection plan for the given account.
              Remediation: Only change secondary overdraft protection elections for accounts that already have a `secondary` election.

            * [`https://static.api.apiture.com/errors/overdraftElectionsViolatesPolicies/v1.0.0`](https://static.api.apiture.com/errors/overdraftElectionsViolatesPolicies/v1.0.0)<br>
              One or mode of the requested the primary and secondary overdraft protection elections violate the financial institution's policies.
              Remediation: Update the election(s) to conform to the financial institution policies, available via the `getOverdraftProtectionPolicies` operation.
          x-apiture-errors:
            - $ref: '#/components/x-apiture-errors/unprocessableEntity'
            - invalidAccountIds
            - duplicateOverdraftAccountIds
            - primaryOverdraftProtectionNotAvailable
            - secondaryOverdraftProtectionNotAvailable
            - overdraftElectionsViolatesPolicies
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: setOverdraftProtectionElections
  /accounts/{accountId}/overdraftProtection:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
    get:
      summary: Fetch a representation of the account's overdraft protection settings
      description: Return the JSON representation of this account's overdraft protection settings.
      operationId: getOverdraftProtection
      x-apiture-api: bankingAccounts
      x-apiture-group: overdraftProtection
      tags:
        - Overdraft Protection
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/overdraftProtection'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          description: |
            Unprocessable Entity. There is no such banking account resource at the specified account `{id}`, the caller does not have access to that account, or that account is not eligible, or there are duplicate items. The response body contains details about the request error.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidAccountId/v0.2.0`](https://static.api.apiture.com/errors/invalidAccountId/v0.2.0)<br>
              The named `accountId` does not exist or the user is not entitled to access the account.
              Remediation: Pass the `id` of an existing account the caller has access to.
          x-apiture-errors:
            - invalidAccountId
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: getOverdraftProtection
    patch:
      summary: Update the overdraft accounts
      description: |-
        Perform a partial update of the overdraft accounts. Only fields in the request body are updated on the resource; fields which are omitted are not updated. To add, replace, or remove an overdraft account, add, replace, or remove the corresponding account item from the `items` array. Only the account `id` in the items is significant.

        The user must have the `allows.manageOverdraftAccounts` permission on the account to use this operation.
      operationId: patchOverdraftAccounts
      x-apiture-api: bankingAccounts
      x-apiture-group: overdraftProtection
      tags:
        - Overdraft Protection
      requestBody:
        required: true
        description: The replacement overdraft accounts.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/overdraftProtectionPatch'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/overdraftProtection'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404Account'
        '422':
          description: |
            Unprocessable Entity. There is no such banking account resource at the specified account `{id}`, the caller does not have access to that account, or that account is not eligible, or there are duplicate items. The response body contains details about the request error.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidAccountId/v0.2.0`](https://static.api.apiture.com/errors/invalidAccountId/v0.2.0)<br>
              The named `accountId` does not exist or the user is not entitled to access the account.
              Remediation: Pass the `id` of an existing account the caller has access to.

            * [`https://static.api.apiture.com/errors/tooManyOverdraftAccounts/v1.0.0`](https://static.api.apiture.com/errors/tooManyOverdraftAccounts/v1.0.0)<br>
              The `items` in the request contains more than `maximumOverdraftAccounts` items.
              Remediation: Specify at most `maximumOverdraftAccounts` items in the request.

            * [`https://static.api.apiture.com/errors/overdraftAccountNotEligible/v1.0.0`](https://static.api.apiture.com/errors/overdraftAccountNotEligible/v1.0.0)<br>
              The named account is not eligible as an overdraft protection account.
              Remediation: Use an account from the `listEligibleOverdraftAccounts` response for the protected account.

            * [`https://static.api.apiture.com/errors/duplicateOverdraftAccounts/v1.0.0`](https://static.api.apiture.com/errors/duplicateOverdraftAccounts/v1.0.0)<br>
              The `items` in the request list the same account `id` more than once.
              Remediation: Use eligible unique accounts only.
          x-apiture-errors:
            - invalidAccountId
            - tooManyOverdraftAccounts
            - overdraftAccountNotEligible
            - duplicateOverdraftAccounts
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: patchOverdraftAccounts
  /accounts/{accountId}/jointOwnerInvitations:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
    post:
      summary: Invite a joint owner
      description: |-
        Create and send an invitation to another person to become a joint owner of the account. The invitation will be sent to the invitee's email address. The invitation directs the invitee to a web page to verify and accept the invitation, and if necessary, enroll in digital banking.

        The authenticated user must have the `account.allows.manageJointOwners` permission to use this operation.
      operationId: createJointOwnerInvitation
      x-apiture-api: bankingAccounts
      x-apiture-group: jointOwners
      tags:
        - Account Joint Owners
      requestBody:
        required: true
        description: Data necessary to invite a joint owner.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/newJointOwnerInvitation'
      responses:
        '200':
          description: OK.
          headers:
            Location:
              description: The URI of the new invitation resource.
              schema:
                type: string
                maxLength: 128
                format: uri-reference
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/jointOwnerInvitation'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404Account'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: createJointOwnerInvitation
  /accounts/{accountId}/verificationLetter:
    post:
      summary: Generate the account verification letter
      description: |-
        Generate an account verification letter for this internal account, documenting that the banking customer owns the given account.

        Until the process of generating the letter has finished, this returns 202 Accepted; the response includes a `Retry-After` response header with a recommended retry interval in seconds. The client should wait that number of seconds before requesting the verification letter again.

        If the letter has been generated for this account, the operation returns 200 OK. The response body is the [Base64-encoded](https://en.wikipedia.org/wiki/Base64) account verification letter in PDF format.

        This operation returns a 403 Forbidden if the user does not have the `account.allows.generateVerificationLetter` permission on the account.
      operationId: generateVerificationLetter
      x-apiture-api: bankingAccounts
      x-apiture-group: accounts
      tags:
        - Accounts
      parameters:
        - $ref: '#/components/parameters/accountIdPathParam'
      security:
        - accessToken:
            - banking/read
      responses:
        '200':
          description: OK. The request has succeeded. The response body is the PDF account verification letter for this account.
          content:
            application/pdf:
              schema:
                type: string
                format: byte
                maxLength: 4000000
        '202':
          description: Accepted. The request has been accepted for processing, but the letter generation not been completed. An empty JSON object is returned with the 202 accepted status code.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/pendingAccountVerificationLetter'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/pendingAccountVerificationLetter'
          headers:
            Retry-After:
              $ref: '#/components/headers/Retry-After'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: generateVerificationLetter
  /accounts/{accountId}/loanPayoffQuote:
    post:
      summary: Generate loan payoff quote
      description: |-
        Generate a quote with the amount and effective date for a loan payoff based on a requested target date.

        The effective date may be adjusted from the target date due to banking holidays or other restricted dates.

        The amount includes daily accrued interest up to and including the effective payoff date.

        This operation is only allowed if the banking customer has the [`viewLoanPayoffQuote`](#schema-accountPermissions) entitlement on the account.
      operationId: generateLoanPayoffQuote
      x-apiture-api: bankingAccounts
      x-apiture-group: accounts
      tags:
        - Accounts
      parameters:
        - $ref: '#/components/parameters/accountIdPathParam'
        - $ref: '#/components/parameters/acceptLanguageHeaderParam'
      security:
        - accessToken:
            - banking/read
      requestBody:
        required: true
        description: Data necessary to generate a loan payoff quote.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/loanPayoffQuoteRequest'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/loanPayoffQuote'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/loanPayoffQuote'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          description: |
            Unprocessable Entity.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0`](https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0)<br>
              The syntax of the request entity is correct but was unable to process the contained instructions.
              Remediation: Provide a semantically correct request.

            * [`https://static.api.apiture.com/errors/accountNotActive/v1.0.0`](https://static.api.apiture.com/errors/accountNotActive/v1.0.0)<br>
              The selected account is not active.
              Remediation: Select an account that is active.

            * [`https://static.api.apiture.com/errors/accountTypeNotEligibleForLoanPayoffQuote/v1.0.0`](https://static.api.apiture.com/errors/accountTypeNotEligibleForLoanPayoffQuote/v1.0.0)<br>
              The account type is not eligible for displaying a loan payoff quote.
              Remediation: Select an account with the `viewLoanPayoffQuote` entitlement.

            * [`https://static.api.apiture.com/errors/targetLoanPayoffDateInThePast/v1.0.0`](https://static.api.apiture.com/errors/targetLoanPayoffDateInThePast/v1.0.0)<br>
              The target loan payoff date is in the past.
              Remediation: Select a target loan payoff date that is today or in the future, up to the maximum allowable loan payoff target date.

            * [`https://static.api.apiture.com/errors/targetLoanPayoffDatePastAccountMaturityDate/v1.0.0`](https://static.api.apiture.com/errors/targetLoanPayoffDatePastAccountMaturityDate/v1.0.0)<br>
              The target loan payoff date is past the loan account maturity date.
              Remediation: Select a target loan payoff date that is before or on the loan account maturity date.

            * [`https://static.api.apiture.com/errors/targetLoanPayoffDatePastMaxTargetDate/v1.0.0`](https://static.api.apiture.com/errors/targetLoanPayoffDatePastMaxTargetDate/v1.0.0)<br>
              The target loan payoff date is past the maximum allowable loan payoff target date.
              Remediation: Select a target loan payoff date that is before or on the maximum allowable loan payoff target date.
          x-apiture-errors:
            - $ref: '#/components/x-apiture-errors/unprocessableEntity'
            - accountNotActive
            - accountTypeNotEligibleForLoanPayoffQuote
            - targetLoanPayoffDateInThePast
            - targetLoanPayoffDatePastAccountMaturityDate
            - targetLoanPayoffDatePastMaxTargetDate
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: generateLoanPayoffQuote
  /startedChallenges:
    post:
      summary: Start an identity challenge
      description: |
        Start the identity challenge flow for the user's chosen factor. For `sms`, `voice`, and `email` challenges, this causes the system to send a four to six digit code to the user via SMS, automated voice phone call, or email. The factor passed in the request is marked as _active_ and eligible to be verified. The user should complete the challenge by submitting their response(s) to the challenge via the [`verifyIdentityChallenge`](#op-verifyIdentityChallenge) operation.
      operationId: startIdentityChallenge
      x-apiture-api: bankingChallenges
      x-apiture-group: challenges
      tags:
        - Challenges
      security:
        - accessToken:
            - challenges/write
      requestBody:
        required: true
        description: The data necessary to initiate an identity challenge flow.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/identityChallenge'
          application/vnd.restful+json:
            schema:
              $ref: '#/components/schemas/identityChallenge'
      responses:
        '200':
          description: OK. The identity challenge flow was started successfully.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/startedIdentityChallenge'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/startedIdentityChallenge'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |
            Unprocessable Entity.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidChallengeId/v1.0.0`](https://static.api.apiture.com/errors/invalidChallengeId/v1.0.0)<br>
              The provided `challengeId` is invalid, expired, already claimed, or does not match the `factor` or context.
              Remediation: Provide the corresponding `operationId`, `factor` and `id` from the challenge.

            * [`https://static.api.apiture.com/errors/invalidChallengeFactor/v1.0.0`](https://static.api.apiture.com/errors/invalidChallengeFactor/v1.0.0)<br>
              The `factor` in the request does not match available factors.
              Remediation: Use a `factor` that corresponds to the `challengeId` from the corresponding challenge.

            * [`https://static.api.apiture.com/errors/invalidChallengeOperationId/v1.0.0`](https://static.api.apiture.com/errors/invalidChallengeOperationId/v1.0.0)<br>
              The `operationId` is invalid.
              Remediation: Use the `operationId` from the corresponding challenge.

            * [`https://static.api.apiture.com/errors/challengeBlocked/v1.0.0`](https://static.api.apiture.com/errors/challengeBlocked/v1.0.0)<br>
              The user has failed challenges too many times and is blocked from attempting more or performing operations which require additional authentication.
              Remediation: Have the user end their login session and login again.
          x-apiture-errors:
            - invalidChallengeId
            - invalidChallengeFactor
            - invalidChallengeOperationId
            - $ref: '#/components/x-apiture-errors/challengeBlocked'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: startIdentityChallenge
  /verifiedChallenges:
    post:
      summary: Verify an identity challenge
      description: Verify an active identity challenge for a specific factor. This verifies that the submitted data matches the expected response(s) for the chosen challenge factor. The factor must be active; that is, it must be the most recent factor used to start the identity challenge.
      operationId: verifyIdentityChallenge
      x-apiture-api: bankingChallenges
      tags:
        - Challenges
      x-apiture-group: challenges
      security:
        - accessToken:
            - challenges/write
      requestBody:
        required: true
        description: The data necessary to initiate the challenge flow.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/identityChallengeResponse'
          application/vnd.restful+json:
            schema:
              $ref: '#/components/schemas/identityChallengeResponse'
      responses:
        '200':
          description: OK. The challenge verification completed successfully. The response indicates if the request matched or not.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/verifiedIdentityChallenge'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/verifiedIdentityChallenge'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '409':
          description: |
            Unprocessable Entity. The request was well formed but contains invalid data.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidChallengeFactorState/v1.0.0`](https://static.api.apiture.com/errors/invalidChallengeFactorState/v1.0.0)<br>
              The selected challenge factor is not active.
              Remediation: Start the challenge factor to set it as active before verifying a user response.
          x-apiture-errors:
            - invalidChallengeFactorState
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '422':
          description: |
            Unprocessable Entity. The request was well formed but contains invalid data.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidChallengeId/v1.0.0`](https://static.api.apiture.com/errors/invalidChallengeId/v1.0.0)<br>
              The provided `challengeId` is invalid, expired, already claimed, or does not match the `factor` or context.
              Remediation: Provide the corresponding `operationId`, `factor` and `id` from the challenge.

            * [`https://static.api.apiture.com/errors/invalidChallengeFactor/v1.0.0`](https://static.api.apiture.com/errors/invalidChallengeFactor/v1.0.0)<br>
              The `factor` in the request does not match available factors.
              Remediation: Use a `factor` that corresponds to the `challengeId` from the corresponding challenge.

            * [`https://static.api.apiture.com/errors/invalidChallengeOperationId/v1.0.0`](https://static.api.apiture.com/errors/invalidChallengeOperationId/v1.0.0)<br>
              The `operationId` is invalid.
              Remediation: Use the `operationId` from the corresponding challenge.

            * [`https://static.api.apiture.com/errors/wrongNumberOfResponses/v1.0.0`](https://static.api.apiture.com/errors/wrongNumberOfResponses/v1.0.0)<br>
              The challenge verification sent the wrong number of response strings.
              Remediation: Send only one response for one-time passcode challenges, or send exactly one response for each security question.

            * [`https://static.api.apiture.com/errors/challengeBlocked/v1.0.0`](https://static.api.apiture.com/errors/challengeBlocked/v1.0.0)<br>
              The user has failed challenges too many times and is blocked from attempting more or performing operations which require additional authentication.
              Remediation: Have the user end their login session and login again.
          x-apiture-errors:
            - invalidChallengeId
            - invalidChallengeFactor
            - invalidChallengeOperationId
            - wrongNumberOfResponses
            - $ref: '#/components/x-apiture-errors/challengeBlocked'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: verifyIdentityChallenge
  /currencies:
    get:
      summary: Return a list of currencies that may be used for foreign exchange transactions
      description: |-
        Return a list of currencies that may be used for foreign exchange transactions, such as international wire transfers.

        This operation is only allowed for banking customers/members who have entitlements to list currencies; the operation returns 403 Forbidden for others (with a `forbidden` problem type).
      operationId: listCurrencies
      x-apiture-api: bankingCurrencies
      x-apiture-group: currencies
      tags:
        - Currencies
      security:
        - accessToken:
            - data/read
      responses:
        '200':
          description: OK. The operation succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/currencies'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/currencies'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: listCurrencies
  /conversionQuotes:
    post:
      summary: Generate a currency conversion quote from US dollars to another currency.
      description: |-
        Generate a quote for converting from US dollars to a target currency. The request must contain either the `sourceAmount` in US dollars or the `targetAmount` in the `targetCurrency`. The response includes the computed `targetAmount` if `sourceAmount` was provided or the computed `sourceAmount` if `targetAmount` was provided. The response also includes exchange rate for US dollars to target currency and an date-time when the rate expires.

        This operation is only allowed for banking customers/members who have entitlements to list currencies; the operation returns 403 Forbidden for others (with a `forbidden` problem type).
      operationId: generateCurrencyConversionQuote
      x-apiture-api: bankingCurrencies
      x-apiture-group: currencies
      tags:
        - Currencies
      security:
        - accessToken:
            - data/read
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/currencyConversionQuoteRequest'
          application/vnd.restful+json:
            schema:
              $ref: '#/components/schemas/currencyConversionQuoteRequest'
      responses:
        '200':
          description: OK. The operation succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/currencyConversionQuote'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/currencyConversionQuote'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well-formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0`](https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0)<br>
              The syntax of the request entity is correct but was unable to process the contained instructions.
              Remediation: Provide a semantically correct request.

            * [`https://static.api.apiture.com/errors/invalidCurrencyCode/v1.0.0`](https://static.api.apiture.com/errors/invalidCurrencyCode/v1.0.0)<br>
              The currency code in the request is invalid.
              Remediation: Use a currency code from the listCurrencies operation response.

            * [`https://static.api.apiture.com/errors/missingSourceOrTargetAmount/v1.0.0`](https://static.api.apiture.com/errors/missingSourceOrTargetAmount/v1.0.0)<br>
              The request must specify a `sourceAmount` or `targetAmount`.
              Remediation: Pass one of `sourceAmount` and `targetAmount`.

            * [`https://static.api.apiture.com/errors/sourceAndTargetAmountAreMutuallyExclusive/v1.0.0`](https://static.api.apiture.com/errors/sourceAndTargetAmountAreMutuallyExclusive/v1.0.0)<br>
              The request contains both `sourceAmount` and `targetAmount`.
              Remediation: Pass only one of `sourceAmount` and `targetAmount` but not both.
          x-apiture-errors:
            - $ref: '#/components/x-apiture-errors/unprocessableEntity'
            - invalidCurrencyCode
            - missingSourceOrTargetAmount
            - sourceAndTargetAmountAreMutuallyExclusive
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: generateCurrencyConversionQuote
  /acceptedConversionQuotes:
    post:
      summary: Accept a currency conversion quote from US dollars to another currency.
      description: |-
        Accept a quote for converting from US dollars to a target currency.

        Quotes accepted after the expiration timestamp are rejected.

        This operation is only allowed for banking customers/members who have entitlements to list currencies; the operation returns 403 Forbidden for others (with a `forbidden` problem type).
      operationId: acceptCurrencyConversionQuote
      x-apiture-api: bankingCurrencies
      x-apiture-group: currencies
      tags:
        - Currencies
      security:
        - accessToken:
            - data/write
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/acceptCurrencyConversionQuoteRequest'
          application/vnd.restful+json:
            schema:
              $ref: '#/components/schemas/acceptCurrencyConversionQuoteRequest'
      responses:
        '200':
          description: OK. The operation succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/acceptedCurrencyConversionQuote'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/acceptedCurrencyConversionQuote'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well-formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0`](https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0)<br>
              The syntax of the request entity is correct but was unable to process the contained instructions.
              Remediation: Provide a semantically correct request.

            * [`https://static.api.apiture.com/errors/invalidCurrencyConversionQuote/v1.0.0`](https://static.api.apiture.com/errors/invalidCurrencyConversionQuote/v1.0.0)<br>
              The currency quote in the request is invalid.
              Remediation: Use a valid currency conversion quote.

            * [`https://static.api.apiture.com/errors/currencyConversionQuoteExpired/v1.0.0`](https://static.api.apiture.com/errors/currencyConversionQuoteExpired/v1.0.0)<br>
              The given currency conversion quote has expired.
              Remediation: Request a new currency conversion quote.
          x-apiture-errors:
            - $ref: '#/components/x-apiture-errors/unprocessableEntity'
            - invalidCurrencyConversionQuote
            - currencyConversionQuoteExpired
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: acceptCurrencyConversionQuote
  /customers/me/preferences:
    get:
      summary: Return the customer's preferences
      description: Return the customer's preferences, organized by preference groups. Optionally, an agent can access a business customer's preferences when acting on behalf of that business customer.
      operationId: getMyPreferences
      x-apiture-api: bankingCustomers
      x-apiture-group: customers
      tags:
        - Customers
      parameters:
        - $ref: '#/components/parameters/customerIdQueryParam1'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerPreferences'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          $ref: '#/components/responses/422Customer'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - profile/read
      x-apiture-permission: getMyPreferences
  /customers/me/preferences/ach:
    get:
      summary: Return the customer's ACH preferences
      description: Return the customer's preferences related to ACH batches. Optionally, an agent can access a business customer's preferences when acting on behalf of that business customer.
      operationId: getMyAchPreferences
      x-apiture-api: bankingCustomers
      x-apiture-group: customers
      tags:
        - Customers
      parameters:
        - $ref: '#/components/parameters/customerIdQueryParam1'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerAchPreferences'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - profile/read
      x-apiture-permission: getMyAchPreferences
    patch:
      summary: Update the customer's ACH preferences
      description: Perform a partial update of the customer's ACH preferences as per [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules. Only fields in the request body are updated on the resource; fields which are omitted are not updated. Optionally, an agent can access a business customer's preferences when acting on behalf of that business customer.
      operationId: patchMyAchPreferences
      x-apiture-api: bankingCustomers
      x-apiture-group: customers
      tags:
        - Customers
      parameters:
        - $ref: '#/components/parameters/customerIdQueryParam1'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/customerAchPreferencesPatch'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerAchPreferences'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - profile/write
      x-apiture-permission: patchMyAchPreferences
  /customers/me/contactCard:
    get:
      summary: Fetch the customer's contact information
      description: Return the customer's addresses, phone numbers, and email addresses.
      security:
        - accessToken:
            - profile/read
      operationId: getMyContactCard
      x-apiture-api: bankingCustomers
      x-apiture-group: customers
      tags:
        - Customers
      parameters:
        - $ref: '#/components/parameters/customerIdQueryParam1'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerContactCard'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          $ref: '#/components/responses/422Customer'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: getMyContactCard
  /customers/me/communicationChannels:
    get:
      summary: Fetch the customer's communication channels
      description: Return a list of the customer's communication channels, such as phone number. Communication channels are what a financial institution uses to send communications (such as card alerts) to the banking customer or member.
      operationId: getMyCommunicationChannels
      x-apiture-api: bankingCustomers
      x-apiture-group: customers
      tags:
        - Customers
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/customerCommunicationChannels'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - profile/read
      x-apiture-permission: getMyCommunicationChannels
  /institutions/{institutionId}/configuration:
    parameters:
      - $ref: '#/components/parameters/institutionIdPathParam'
    get:
      summary: Fetch a representation of the Institution Configuration
      description: Return the JSON representation of the Institution Configuration resource.
      operationId: getInstitutionConfiguration
      x-apiture-api: bankingInstitutions
      x-apiture-group: institutionConfiguration
      x-apiture-unauthenticated: true
      tags:
        - Institution Configurations
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/institutionConfiguration'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/institutionConfiguration'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
  /institutions/{institutionId}/accessLocations:
    get:
      summary: Look up financial institution access locations
      description: |-
        Returns a collection of financial institution access locations.

        An institution access location is a physical location that allows customers or members to conduct banking and use banking services not available through digital channels. An institution access location can be either a branch or an automated teller machine (ATM). Branches consist of a lobby, and may contain an ATM, and/or a drive through. Branches may also have private offices and/or safe deposit boxes. An ATM is a standalone terminal for accessing accounts. Some ATMs allow self-service features, including bill pay and transfers. When a branch has an ATM, the ATM is not listed as a separate location.

        Either `postalCode` or coordinate set (`latitude` and `longitude`) is required to set the central point for the circular geographic search area, extending from the central point to the radius in all directions. The radius allows a unit of measurement to be specified. Miles (`mi`) and kilometers (`km`) are the allowed units. Miles are the default unit when one isn't specified.
      operationId: listAccessLocationsForInstitution
      x-apiture-api: bankingInstitutions
      x-apiture-group: institutions
      x-apiture-unauthenticated: true
      tags:
        - Institutions
      parameters:
        - $ref: '#/components/parameters/institutionIdPathParam'
        - $ref: '#/components/parameters/startQueryParam'
        - $ref: '#/components/parameters/limitQueryParam'
        - $ref: '#/components/parameters/acceptLanguageHeaderParam'
        - name: type
          description: Return only institution access locations whose type matches any of the items in this pipe-separated list. All institution access location types are included when this parameter is excluded.
          in: query
          explode: false
          schema:
            type: array
            minItems: 1
            maxItems: 2
            uniqueItems: true
            items:
              $ref: '#/components/schemas/institutionAccessLocationType'
          style: pipeDelimited
        - name: postalCode
          description: The postal code used for filtering institution access location searches. A coordinate from the geographic center of the postal code is the starting point for building a circular geographic search area. This must be included if `latitude` and `longitude` are not present.
          in: query
          schema:
            $ref: '#/components/schemas/postalCode'
        - name: countryCode
          description: The country code associated with the postal code for filtering financial institution access location searches.
          in: query
          schema:
            $ref: '#/components/schemas/countryCode'
            default: US
        - name: latitude
          description: The Earth latitude coordinate for building a circular geographic search area. This must be included if `postalCode` is not present.
          in: query
          schema:
            allOf:
              - $ref: '#/components/schemas/latitude'
        - name: longitude
          description: The Earth longitude coordinate for building a circular geographic search area. This must be included if `postalCode` is not present.
          in: query
          schema:
            allOf:
              - $ref: '#/components/schemas/longitude'
        - name: radius
          description: |-
            The radius of the circular geographic search area for financial institution access locations to include. The unit of measurement may be included after the distance value. Use `mi` for miles and `km` for kilometers. When a unit of measurement is not included, the default unit is miles. For example: `&radius=25mi` (25 miles) or `&radius=40km` (40 km) or `&radius=20.25` (20.25 miles) or `&radius=25` (25 miles)

            The maximum distance when using miles is 500 miles. The maximum distance when using kilometers is 805 kilometers.
          required: true
          in: query
          schema:
            type: string
            pattern: ^\d{1,3}(\.\d{1,2})?(mi|km)?$
            minLength: 1
            maxLength: 8
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/institutionAccessLocations'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/institutionAccessLocations'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidLocationParameters/v1.0.0`](https://static.api.apiture.com/errors/invalidLocationParameters/v1.0.0)<br>
              Only one type of location parameter may be included or a location parameter is missing a value.
              Remediation: Provide correct location parameters.
          x-apiture-errors:
            - invalidLocationParameters
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
  /institutionAccessLocations:
    get:
      summary: Look up financial institution access locations
      description: |-
        Returns a collection of financial institution access locations.

        An institution access location is a physical location that allows customers or members to conduct banking and use banking services not available through digital channels. An institution access location can be either a branch or an automated teller machine (ATM). Branches consist of a lobby, and may contain an ATM, and/or a drive through. Branches may also have private offices and/or safe deposit boxes. An ATM is a standalone terminal for accessing accounts. Some ATMs allow self-service features, including bill pay and transfers. When a branch has an ATM, the ATM is not listed as a separate location.

        Either `postalCode` or coordinate set (`latitude` and `longitude`) is required to set the central point for the circular geographic search area, extending from the central point to the radius in all directions. The radius allows a unit of measurement to be specified. Miles (`mi`) and kilometers (`km`) are the allowed units. Miles are the default unit when one isn't specified.<br>**Warning**: The operation `listInstitutionAccessLocations` was deprecated on version `v0.25.0` of the API. Use the `listAccessLocationsForInstitution` operation instead. `listInstitutionAccessLocations` will be removed on version `v0.35.0` of the API.
      operationId: listInstitutionAccessLocations
      x-apiture-api: bankingInstitutions
      x-apiture-group: institutions
      tags:
        - Institutions
      x-apiture-deprecated:
        since: 0.25.0
        replacement: the `listAccessLocationsForInstitution` operation
        removeOn: 0.35.0
      parameters:
        - $ref: '#/components/parameters/startQueryParam'
        - $ref: '#/components/parameters/limitQueryParam'
        - $ref: '#/components/parameters/acceptLanguageHeaderParam'
        - name: type
          description: Return only institution access locations whose type matches any of the items in this pipe-separated list. All institution access location types are included when this parameter is excluded.
          in: query
          explode: false
          schema:
            type: array
            minItems: 1
            maxItems: 2
            uniqueItems: true
            items:
              $ref: '#/components/schemas/institutionAccessLocationType'
          style: pipeDelimited
        - name: postalCode
          description: The postal code used for filtering institution access location searches. A coordinate from the geographic center of the postal code is the starting point for building a circular geographic search area. This must be included if `latitude` and `longitude` are not present.
          in: query
          schema:
            $ref: '#/components/schemas/postalCode'
        - name: countryCode
          description: The country code associated with the postal code for filtering financial institution access location searches.
          in: query
          schema:
            $ref: '#/components/schemas/countryCode'
            default: US
        - name: latitude
          description: The Earth latitude coordinate for building a circular geographic search area. This must be included if `postalCode` is not present.
          in: query
          schema:
            allOf:
              - $ref: '#/components/schemas/latitude'
        - name: longitude
          description: The Earth longitude coordinate for building a circular geographic search area. This must be included if `postalCode` is not present.
          in: query
          schema:
            allOf:
              - $ref: '#/components/schemas/longitude'
        - name: radius
          description: |-
            The radius of the circular geographic search area for financial institution access locations to include. The unit of measurement may be included after the distance value. Use `mi` for miles and `km` for kilometers. When a unit of measurement is not included, the default unit is miles. For example: `&radius=25mi` (25 miles) or `&radius=40km` (40 km) or `&radius=20.25` (20.25 miles) or `&radius=25` (25 miles)

            The maximum distance when using miles is 500 miles. The maximum distance when using kilometers is 805 kilometers.
          required: true
          in: query
          schema:
            type: string
            pattern: ^\d{1,3}(\.\d{1,2})?(mi|km)?$
            minLength: 1
            maxLength: 8
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/institutionAccessLocations'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/institutionAccessLocations'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidLocationParameters/v1.0.0`](https://static.api.apiture.com/errors/invalidLocationParameters/v1.0.0)<br>
              Only one type of location parameter may be included or a location parameter is missing a value.
              Remediation: Provide correct location parameters.
          x-apiture-errors:
            - invalidLocationParameters
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - apiKey: []
      deprecated: true
  /institutionByLocator:
    get:
      summary: Look up institution by routing number, IBAN, or SWIFT/BIC code
      description: Look up a financial institution by their country code and either [American Bankers Association routing number](https://www.aba.com/about-us/routing-number), by [International Bank Account Number (IBAN)](https://www.ecbs.org/iban.htm), or by [SWIFT Business Identifier Code (BIC) code](https://www.swift.com/standards/data-standards/bic-business-identifier-code). Optionally, include a list of intermediary institutions that may be necessary to complete international wire transfers.
      operationId: lookUpInstitutionByLocator
      x-apiture-api: bankingInstitutions
      x-apiture-group: institutions
      tags:
        - Institutions
      parameters:
        - name: locator
          description: The financial institution lookup key (routing number, IBAN, or SWIFT/BIC), as indicated by the `locatorType` query parameter.
          required: true
          in: query
          schema:
            type: string
            maxLength: 36
            format: text
        - name: locatorType
          description: Indicates what type of value the `locator` query parameter is.
          required: true
          in: query
          schema:
            $ref: '#/components/schemas/institutionLocatorType'
        - name: countryCode
          description: The country code in which to search for institutions. For the US, the `locatorType` must be `abaRoutingNumber`. For non-US countries, the `locatorType` must be `swiftBicCode` or `ibanAccountNumber`.
          in: query
          required: true
          schema:
            type: string
            minLength: 2
            maxLength: 2
            pattern: ^[A-Z]{2}$
            description: The [ISO-3611 alpha-2](https://www.iso.org/glossary-for-iso-3166.html) value for the country associated with the financial institution.
            examples:
              - US
              - CA
        - name: includeIntermediaryInstitutions
          description: If looking up a beneficiary institution for a wire transfer beneficiary institution, request the response also include a list of intermediary institutions.
          in: query
          schema:
            type: boolean
      security:
        - accessToken:
            - data/read
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/institutionLookupResult'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidLocator/v1.0.0`](https://static.api.apiture.com/errors/invalidLocator/v1.0.0)<br>
              The `locator` value is invalid for the given `locatorType`.
              Remediation: Pass a valid ABA routing number, IBAN number, or SWIFT/BIC code, as per the given `locatorType`.
          x-apiture-errors:
            - invalidLocator
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: lookUpInstitutionByLocator
  /transferSchedule:
    get:
      summary: Return this institution's list of upcoming transfer schedule dates
      description: Return a transfer schedule list for this institution.
      operationId: getTransferSchedule
      x-apiture-api: bankingInstitutions
      x-apiture-group: institutions
      tags:
        - Schedules
      parameters:
        - name: startsOn
          in: query
          description: The date to use to begin calculations of the transfer schedule in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) date format.
          required: true
          schema:
            type: string
            format: date
            minLength: 10
            maxLength: 10
            example: '2022-07-04'
        - name: endsOn
          in: query
          description: The date to use to conclude calculations of the transfer schedule in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) date format.
          required: false
          schema:
            type: string
            format: date
            minLength: 10
            maxLength: 10
            example: '2022-07-04'
        - name: direction
          in: query
          description: The direction of the transfer from the institution to the customer used for adjusting transfer dates due to banking holidays. For `debit`, dates are adjusted to the next business day. For `credit`, dates are adjusted to the previous business day.
          required: true
          schema:
            $ref: '#/components/schemas/transferScheduleDirection'
        - name: count
          in: query
          description: The maximum amount of dates to calculate and include in the response. If an end date is provided, the total count may be lower than the requested count.
          required: false
          schema:
            type: integer
            format: int32
            minimum: 1
            maximum: 12
            default: 6
        - name: frequency
          in: query
          description: The interval at which the money movement recurs. Frequency values `once` and `occasional` result in only one date (the `startsOn` date) in the response.
          required: true
          schema:
            $ref: '#/components/schemas/transferFrequency'
        - name: type
          in: query
          description: The type of transfer used to determine the `effectiveOn` date.
          schema:
            $ref: '#/components/schemas/transferTypeForDateRestrictions'
            default: internal
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/transferSchedules'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          description: Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - data/read
      x-apiture-permission: getTransferSchedule
  /wireTransferDisclosures:
    get:
      summary: Return the disclosure of the financial institution's wire transfer fees and taxes
      description: Return the disclosure of the financial institution's wire transfer fees and taxes.
      operationId: getWireTransferDisclosures
      x-apiture-api: bankingInstitutions
      x-apiture-group: institutions
      tags:
        - Wire Transfer Disclosures
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/wireTransferDisclosures'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/wireTransferDisclosures'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - data/read
      x-apiture-permission: getWireTransferDisclosures
  /cutoffTimes:
    get:
      summary: Return the financial institution's cutoff times for products
      description: |-
        Return daily cutoff times for different money movement processes at a financial institution. Money movement requests (account to account transfers, ACH, wire transfers, etc.) must be submitted before the cutoff time in order for the financial institution to begin processing the request that day. Some [cutoff time types](#schema-cutoffTimeType) may have multiple cutoff times per day.

        Cutoff times are very slowly changing data. This is a _conditional operation_ when the `If-None-Match` header is used. If the client has a `getCutoffTimes` response and the `ETag` returned from a previous call to this operation, this operation returns a 304 Not Modified when called again if the cutoff times have not changed.
      operationId: listCutoffTimes
      x-apiture-api: bankingInstitutions
      x-apiture-group: institutions
      tags:
        - Schedules
      parameters:
        - name: timeZoneId
          description: Identifies the time zone for formatting time values in the response. If omitted, time values are formatting in the local timezone of the financial institution.
          in: query
          required: false
          schema:
            $ref: '#/components/schemas/timeZoneId'
        - $ref: '#/components/parameters/ifNoneMatchHeaderParam'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/cutoffTimes'
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
        '304':
          $ref: '#/components/responses/304'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          description: Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - data/read
      x-apiture-permission: listCutoffTimes
  /transferDateRestrictions:
    get:
      summary: Return the financial institution's transfer dates restrictions
      description: |-
        Return the transfer date restrictions for a date range and transfer parameters. The result is a list of days and dates that the financial institution does not allow scheduling specific types of transfers.

        This information provides hints to clients, allowing bank customers to select transfer dates from a calendar picker. However, these dates are not strictly enforced; a transfer can still be scheduled to occur on restricted dates but the financial institution may shift the date when funds are drafted to account for holidays, closures, or to adjust based on the risk level of the funding account.
      operationId: listTransferDateRestrictions
      x-apiture-api: bankingInstitutions
      x-apiture-group: institutions
      tags:
        - Schedules
      security:
        - accessToken:
            - data/read
      x-apiture-implemented: true
      parameters:
        - name: startsOn
          in: query
          description: The start of the range of dates to include in the response, in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) date format. While start dates far in the future are allowed, bank holiday schedules are only available for a small number of years ahead. The default is the current date; the minimum is one week before the first of the current month.
          schema:
            type: string
            format: date
            minLength: 10
            maxLength: 10
            example: '2022-07-04'
        - name: endsOn
          in: query
          description: The end of the range of dates to include in the response. in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) date format. The default is at least one year from the `startOn` date and is limited to a four year interval.
          required: false
          schema:
            type: string
            format: date
            minLength: 10
            maxLength: 10
            example: '2022-07-04'
        - name: type
          in: query
          description: Describes the type of transfer. This determines what business rules and adjustments to make to the date restrictions. Note ACH transfers (including CTX and PPD), that `Credit` and `Debit` here are relative to the account at the _external_ financial institution.
          schema:
            $ref: '#/components/schemas/transferTypeForDateRestrictions'
        - name: risk
          in: query
          description: The primary account's risk level. This determines what business rules and adjustments to make to the date restrictions. This parameter only applies to ACH credit transfers (funds credited to an external account) and is ignored for others.
          schema:
            $ref: '#/components/schemas/achAccountRisk'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/transferDateRestrictions'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well-formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidRestrictionDateRange/v1.0.0`](https://static.api.apiture.com/errors/invalidRestrictionDateRange/v1.0.0)<br>
              The `startOn` date should be no earlier than a week before the start of the current month, and the `endOn` date must fall after the `startOn` date.
              Remediation: Pass valid values for `startOn` and `endOn`.

            * [`https://static.api.apiture.com/errors/restrictionDateRangeTooLarge/v1.0.0`](https://static.api.apiture.com/errors/restrictionDateRangeTooLarge/v1.0.0)<br>
              The `endOn` is limited to four years after the `startOn` date.
              Remediation: Limit the `endOn` date to no more than four years after the `startOn` date.
          x-apiture-errors:
            - invalidRestrictionDateRange
            - restrictionDateRangeTooLarge
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: listTransferDateRestrictions
  /accounts/{accountId}/transactions:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
    get:
      summary: Return a collection of transactions
      description: |-
        Return a [paginated](https://developer.apiture.com/docs/concepts/pagination) collection of transaction history for this internal account.

        **Note**: this operation may return a 202 Accepted and a `Retry-After` response header if the server requires more time to build the list of transactions. The client should retry after that delay, as described in the 202 response below.

        With the `Accept: text/csv` request header (instead of `Accept: application/json`), this operation returns a _comma-separated values_ (CSV) text response instead of a JSON response.

        The first row in the file is the CSV column headers, corresponding to the properties in the [`transactionItem`](#schema-transactionItem):
        ``` Date,Type,Subtype,Check Number,Description,Amount,Balance,Posted,Memo,Category ID,Category Label,Merchant Name,Id ```

        If a value does not exist for a record in the CSV, the corresponding column in the CSV is blank. All records have all 13 columns. For example, if the transaction has no memo, merchant, category, or check number, the row may look like
        ``` 2023-04-07,credit,other,,counter deposit,120.75,2034.70,true,,,,,HR49D9289498DHJE ```

        The CSV file contains up to `limit` number of transactions. If there is another page of transactions, the [Link response header](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Link) provides a link for fetching the next page of CSV transactions. The link URL includes a new `?start=` value. The link parameter `"rel"` has the value `"next"` to indicate this is the link to the next page. For example:

        ``` Link: <https://static.api.apiture.com/banking/accounts/581ca61abab3/transactions?start=88a9e9a3cd13f742?limit=1000>; rel="next" ```

        For `Accept: application/json`, the [`nextPage_url`](https://developer.apiture.com/docs/concepts/links) link in the response, if present, is a pagination link to the next page of transactions for the given filters.

        This operation returns a 403 Forbidden error if the customer does not have `view` permissions in the `account.allows` object, or a 422 Unprocessable Entity if called on an external account.

        The default response lists only recent transactions. Normally, this is transactions for the most recent 30 days, although for high-volume accounts, it may be a shorter period.
      operationId: listTransactions
      x-apiture-api: bankingTransactions
      x-apiture-group: transactions
      tags:
        - Transactions
      parameters:
        - $ref: '#/components/parameters/startQueryParam'
        - $ref: '#/components/parameters/transactionOccurredOnQueryParam'
        - name: limit
          in: query
          description: The maximum number of items to return in this paged response.
          schema:
            type: integer
            format: int32
            minimum: 0
            maximum: 10000
            default: 100
        - name: posted
          description: Limit transactions in the response based on the transaction's `posted` value. If `true`, include only posted transactions. If `false`, include only non-posted transactions. If omitted, do not filter based on `posted`. Note that using this filter excludes balance items because the `posted` property is not set on balance items, so neither `true` or `false` match them.
          in: query
          schema:
            type: boolean
        - name: category
          description: Filter transactions to only those whose `category` is in this pipe-separated list. Categories are set by a transaction cleansing service or assigned by the account holder. Categories can include names such as `"Shopping"`, `"Deposit"`, `"Bill"`, `"Transfer"`, or `"Other"`.
          in: query
          style: pipeDelimited
          explode: false
          schema:
            type: array
            minItems: 1
            maxItems: 16
            uniqueItems: true
            example:
              - Bill
              - Transfer
            items:
              $ref: '#/components/schemas/transactionCategoryLabel'
        - name: type
          description: Filter transactions to only those whose `type` is in this pipe-separated list.
          in: query
          style: pipeDelimited
          explode: false
          schema:
            type: array
            minItems: 1
            maxItems: 3
            uniqueItems: true
            items:
              $ref: '#/components/schemas/transactionType'
        - name: subtype
          description: Filter transactions to only those whose `subtype` is in this pipe-separated list.
          in: query
          style: pipeDelimited
          explode: false
          schema:
            type: array
            minItems: 1
            maxItems: 2
            uniqueItems: true
            items:
              $ref: '#/components/schemas/transactionSubType'
        - name: amount
          description: |-
            Return only transactions whose `amount` is in this numeric range. This compares only the absolute value of the transaction. That is, the value `[1000.00,1100.00)` matches either a debit of `-1070.25` or a credit of `1021.90`.

            Some examples of specifying an amount range:


              * `1200.50` match the dollar amount 1,200.50 exactly
              * `[1000.00,1200.00)` matches items where `1000.00 <= amount < 1200.00`
              * `[1000.00,1199.99]` matches items where `1000.00 <= amount <= 1199.99`
              * `(999.99,1200.00]` matches items where `999.99 < amount <= 1200.00`
              * `[1200.50,]` matches items where `amount >= 1200.50`
              * `(1200.50,)` matches items where `amount > 1200.50`
              * `[,1200.50]` matches items where `amount <= 1200.50`
              * `(,1200.50)` matches items where `amount < 1200.50`
          in: query
          schema:
            $ref: '#/components/schemas/amountRange'
        - name: checkNumber
          description: |-
            Return only transactions whose `check.number` is in this integer range. Examples:

              * `1200` match the integer 1,200 exactly
              * `[1000,1200)` matches items where `1000 <= number < 1200`
              * `[1000,1199]` matches items where `1000 <= number <= 1199`
              * `(999,1200]` matches items where `999 < number <= 1200`
              * `[1200,]` matches items where `number >= 1200`
              * `(1200,)` matches items where `number > 1200`
              * `[,1200]` matches items where `number <= 1200`
              * `(,1200)` matches items where `number < 1200`
          in: query
          schema:
            $ref: '#/components/schemas/checkNumberRange'
        - name: retryCount
          description: When retrying the operation, pass the `retryCount` from the `incompleteTransactions` response.
          in: query
          schema:
            type: integer
            format: int32
            minimum: 1
            maximum: 10
      responses:
        '200':
          description: 'OK. The response is either the JSON [`transactions`](#schema-transactions) representation if the request included `Accept: application/json` or comma-separated values text if using `Accept: text/csv`.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/transactions'
            text/csv:
              schema:
                type: string
                format: binary
                maxLength: 5000000
        '202':
          description: |-
            Accepted. The service accepted the request but could not list the transactions for the date range in a reasonable amount of time. The system continues fetching the transactions so that they are available after one or more retries. Try the call again after the time in the `Retry-After` response header has passed.

            When retrying a request for a JSON response, pass the value of the `retryCount` from the [`incompleteTransactions`](#schema-incompleteTransactions) response as the `retryCount` query parameter.

            When trying a request for a CSV response, the returned `Link` header has the link parameter rel="retry". The client should retry the `listTransactions` operation using the Link header URI which includes updated `?retryCount=` query parameter:
            ``` Link: <https://static.api.apiture.com/banking/accounts/581ca61abab3/transactions?start=88a9e9a?limit=1000&retryCount=1>; rel="retry" ```

            If there is no `Retry-After` response header, the client has reached its maximum number of tries and should _not_ retry the operation. If the system is unable to fetch the transactions after several attempts, the call returns 504 Gateway Timeout.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/incompleteTransactions'
            text/csv:
              schema:
                type: string
                format: binary
                maxLength: 0
          headers:
            Retry-After:
              $ref: '#/components/headers/Retry-After'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          description: Not Found. There is no such banking account resource at the specified `{accountId}` or the customer does not have entitlement to that account.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/transactionsForInternalAccountOnly/v1.0.0`](https://static.api.apiture.com/errors/transactionsForInternalAccountOnly/v1.0.0)<br>
              Transactions are not available for external accounts.
              Remediation: Request transactions only for internal accounts.
          x-apiture-errors:
            - transactionsForInternalAccountOnly
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        '504':
          $ref: '#/components/responses/504'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listTransactions
  /accounts/{accountId}/transactions/{transactionId}/images:
    parameters:
      - $ref: '#/components/parameters/accountIdPathParam'
      - $ref: '#/components/parameters/transactionIdPathParam'
    get:
      summary: Fetch a page of images associated with a transaction
      description: |-
        Return the JSON representation of the images associated with this transaction.

        Images include check images and deposit slips. This operation only applies to transaction items where `hasImages` is `true`. Page sizes are determined by the number of images and how many can be encoded in the API response. Use the `nextPage_url` from the response, if any, to fetch the next page of images.
      operationId: listTransactionImages
      x-apiture-api: bankingTransactions
      parameters:
        - $ref: '#/components/parameters/startQueryParam'
        - $ref: '#/components/parameters/limitQueryParam'
      x-apiture-group: transactionImages
      tags:
        - Transaction Images
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/transactionImages'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          description: |
            Not Found.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/noSuchAccount/v1.0.0`](https://static.api.apiture.com/errors/noSuchAccount/v1.0.0)<br>
              There is no such account at the given `accountId`.
              Remediation: Use the `accountId` of an account the user is entitled to view.

            * [`https://static.api.apiture.com/errors/noSuchTransaction/v1.0.0`](https://static.api.apiture.com/errors/noSuchTransaction/v1.0.0)<br>
              There is no such transaction at the given `transactionId`.
              Remediation: Use the `transactionId` of a transaction from the list of transaction items.

            * [`https://static.api.apiture.com/errors/noTransactionImages/v1.0.0`](https://static.api.apiture.com/errors/noTransactionImages/v1.0.0)<br>
              There are no transaction images associated with this transaction.
              Remediation: Invoke this operation only when a transaction has images.
          x-apiture-errors:
            - noSuchAccount
            - noSuchTransaction
            - noTransactionImages
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listTransactionImages
  /transactionCategories:
    get:
      summary: Return a collection of transaction categories
      description: |-
        Return a collection of transaction categories. The response is limited to 1,000 categories.

        This is a _conditional operation_ when the `If-None-Match` header is used. If the client has a `transactionCategories` response and the `ETag` returned from a previous call, this operation returns a 304 Not Modified if called again when the categories collection has not changed.
      operationId: listTransactionCategories
      x-apiture-api: bankingTransactions
      x-apiture-group: transactionCategories
      tags:
        - Transaction Categories
      parameters:
        - $ref: '#/components/parameters/ifNoneMatchHeaderParam'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/transactionCategories'
          headers:
            ETag:
              $ref: '#/components/headers/ETag'
        '304':
          $ref: '#/components/responses/304'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listTransactionCategories
  /transfers:
    get:
      summary: Return a collection of transfers
      description: Return a [paginated](https://developer.apiture.com/docs/concepts/pagination) collection of transfers. The [nextPage_url](https://developer.apiture.com/docs/concepts/links) in the response is a pagination link.
      operationId: listTransfers
      x-apiture-api: bankingTransfers
      x-apiture-group: transfers
      tags:
        - Transfers
      parameters:
        - name: scheduledOn
          in: query
          description: 'Return only transactions whose `schedule.scheduledOn` date is in this date range. Excludes any transfers that do not have a `scheduledOn` date. Dates ranges use dates expressed in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format. Example date ranges: <ul> <li> `2022-05-19` match only transfers scheduled on May 19, 2022.</li> <li> `[2022-05-01,2022-06-01)` in May, 2022: on or after May 1, but _before_ June 1</li> <li> `(2022-05-01,2022-06-01)` in May, 2022 (on or after May 1, but before June 1)</li> <li> `[2022-05-09,]` on or after May 9, 2022</li> <li> `(2022-05-09,)` after May 9, 2022</li> <li> `[,2022-05-09]` on or before May 9, 2022</li> <li> `(,2022-05-09)` before May 9, 2022</li> </ul>'
          schema:
            $ref: '#/components/schemas/dateRange'
        - name: debitsOn
          in: query
          description: Return only transactions whose `schedule.debitsOn` date (when the funds are debited from the source account) is in this date range. Excludes any transfers that do not have a `scheduledOn` date. Dates ranges use dates expressed in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format. See the `scheduledOn` query parameter for examples.
          schema:
            $ref: '#/components/schemas/dateRange'
        - name: creditsOn
          in: query
          description: Return only transactions whose `schedule.creditsOn` (when the funds are credited to  the target account) is in this date range. Excludes any transfers that do not have a `scheduledOn` date. Dates ranges use dates expressed in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format. See the `scheduledOn` query parameter for examples.
          schema:
            $ref: '#/components/schemas/dateRange'
        - name: historical
          in: query
          description: If `true`, list only historical (`state` is `processed`) transfers. If `false`, list only transfers that have not yet finished processing. If omitted, list all transfers.
          schema:
            type: boolean
        - $ref: '#/components/parameters/startQueryParam'
        - $ref: '#/components/parameters/limitQueryParam'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/transfers'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listTransfers
    post:
      summary: Create a new transfer
      description: |-
        Create a new transfer within the transfers collection. If all the necessary properties are set, the transfer is queued for processing. If the request omits the `schedule.scheduledOn` date, the transfer remains pending/unscheduled until the user sets it via the [`patchTransfer`](#op-patchTransfer) operation.

        Note: This operation requires an identity challenge if the financial institution requires the user to prove their identity for some types of transfers. See the "Challenges API". See the various error types in the 403 response.
      operationId: createTransfer
      x-apiture-api: bankingTransfers
      x-apiture-group: transfers
      tags:
        - Transfers
      parameters:
        - $ref: '#/components/parameters/challengeHeaderParam'
      requestBody:
        required: true
        description: The data necessary to create a new transfer.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/newTransfer'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/transfer'
          headers:
            Location:
              description: The URI of the new transfer.
              schema:
                type: string
                format: uri-reference
                maxLength: 400
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403WriteTransfer'
        '422':
          $ref: '#/components/responses/422Transfer'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - moneyMovement/write
      x-apiture-permission: createTransfer
  /transfers/{transferId}:
    parameters:
      - $ref: '#/components/parameters/transferIdPathParam'
    get:
      summary: Fetch a representation of this transfer
      description: Return the JSON representation of this transfer resource.
      operationId: getTransfer
      x-apiture-api: bankingTransfers
      x-apiture-group: transfers
      tags:
        - Transfers
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/transfer'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404Transfer'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: getTransfer
    patch:
      summary: Update this transfer
      description: |-
        Perform a partial update of this transfer as per [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules. Only fields in the request body are updated on the resource; fields which are omitted are not updated.

        Note: This operation requires an identity challenge if the financial institution requires the user to prove their identity for some types of transfers. See the "Challenges API". See the various error types in the 403 response.
      operationId: patchTransfer
      x-apiture-api: bankingTransfers
      x-apiture-group: transfers
      tags:
        - Transfers
      parameters:
        - $ref: '#/components/parameters/challengeHeaderParam'
      requestBody:
        required: true
        description: The fields to update within the transfer.
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/transferPatch'
          application/json:
            schema:
              $ref: '#/components/schemas/transferPatch'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/transfer'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403WriteTransfer'
        '404':
          $ref: '#/components/responses/404Transfer'
        '422':
          $ref: '#/components/responses/422Transfer'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - moneyMovement/write
      x-apiture-permission: patchTransfer
    delete:
      summary: Delete this transfer resource
      description: Delete this transfer resource and any resources that are owned by it. Only transfers that have not been processed may be deleted.
      operationId: deleteTransfer
      x-apiture-api: bankingTransfers
      x-apiture-group: transfers
      tags:
        - Transfers
      responses:
        '204':
          $ref: '#/components/responses/204'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404Transfer'
        '409':
          description: |
            Conflict.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/cannotDeleteProcessedTransfers/v1.0.0`](https://static.api.apiture.com/errors/cannotDeleteProcessedTransfers/v1.0.0)<br>
              The delete operation is only allowed for transfers which have not begun processing.
              Remediation: Select a pending or scheduled transfer.
          x-apiture-errors:
            - cannotDeleteProcessedTransfers
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - moneyMovement/write
      x-apiture-permission: deleteTransfer
  /paymentBatches/{paymentBatchId}/paymentHistoryRecords:
    parameters:
      - $ref: '#/components/parameters/paymentBatchIdPathParam'
    get:
      summary: Return payment batch history records
      description: Return a list of history records for this payment batch.
      operationId: listPaymentHistoryRecords
      x-apiture-api: bankingPayments
      x-apiture-group: paymentHistoryRecords
      parameters:
        - name: compress
          in: query
          description: |-
            If `true`, compress sequences of redundant history records:

              * Remove any updated records that follow a `created` event, if both records
                have the same `customerId`.
              * Any sequence of two or more `updated` events by the same customer are
                replaced by the most recent event in the sequence.
          schema:
            type: boolean
      tags:
        - Payment History Records
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentHistoryRecords'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentBatch'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listPaymentHistoryRecords
  /paymentContacts/{paymentContactId}/paymentMethods:
    get:
      summary: Return this contact's collection of payment methods
      description: Return a payment method collection for this contact.
      operationId: listPaymentMethods
      x-apiture-api: bankingPayments
      x-apiture-group: paymentMethods
      tags:
        - Payment Methods
      parameters:
        - $ref: '#/components/parameters/paymentContactIdPathParam'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentMethods'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listPaymentMethods
    post:
      summary: Create a new payment method
      description: Create a new payment method for this contact.
      parameters:
        - $ref: '#/components/parameters/paymentContactIdPathParam'
      operationId: createPaymentMethod
      x-apiture-api: bankingPayments
      x-apiture-group: paymentMethods
      tags:
        - Payment Methods
      requestBody:
        required: true
        description: The data necessary to create a new payment method.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/newPaymentMethod'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentMethod'
          headers:
            Location:
              description: The URI of the new payment method.
              schema:
                type: string
                format: uri-reference
                maxLength: 128
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          description: |
            Conflict.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/duplicatePaymentMethod/v1.0.0`](https://static.api.apiture.com/errors/duplicatePaymentMethod/v1.0.0)<br>
              There is already another payment method that matches the request.
              Remediation: Enter unique data for this payment method.
          x-apiture-errors:
            - duplicatePaymentMethod
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '422':
          description: Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: createPaymentMethod
  /paymentContacts/{paymentContactId}/paymentMethods/{paymentMethodId}:
    parameters:
      - $ref: '#/components/parameters/paymentContactIdPathParam'
      - $ref: '#/components/parameters/paymentMethodIdPathParam'
    get:
      summary: Fetch a representation of this payment method
      description: Return the JSON representation of this payment method resource.
      operationId: getPaymentMethod
      x-apiture-api: bankingPayments
      x-apiture-group: paymentMethods
      tags:
        - Payment Methods
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentMethod'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentMethod'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: getPaymentMethod
    patch:
      summary: Update this payment method
      description: Perform a partial update of this payment method as per [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules. Only fields in the request body are updated on the resource; fields which are omitted are not updated.
      operationId: patchPaymentMethod
      x-apiture-api: bankingPayments
      x-apiture-group: paymentMethods
      tags:
        - Payment Methods
      requestBody:
        required: true
        description: The fields to update within the payment method.
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/paymentMethodPatch'
          application/json:
            schema:
              $ref: '#/components/schemas/paymentMethodPatch'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentMethod'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentMethod'
        '422':
          $ref: '#/components/responses/422UpdatePaymentMethod'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: patchPaymentMethod
    delete:
      summary: Delete this payment method resource
      description: |-
        Delete this payment method resource. Deleting the payment method does not negatively impact any payment instructions in payment batches or templates that were instantiated from the payment method; those contain copies of the payment method data and continue to work even if this payment method is deleted.

        This payment method may not be deleted if it is the only payment method for the contact.
      operationId: deletePaymentMethod
      x-apiture-api: bankingPayments
      x-apiture-group: paymentMethods
      tags:
        - Payment Methods
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentMethod'
        '409':
          description: Conflict. Payment contacts must have at least one payment method.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: deletePaymentMethod
  /paymentContacts:
    get:
      summary: Return a collection of payment contacts
      description: Return a collection of payment contacts.
      operationId: listPaymentContacts
      x-apiture-api: bankingPayments
      x-apiture-group: paymentContacts
      tags:
        - Payment Contacts
      parameters:
        - $ref: '#/components/parameters/customerIdQueryParam'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentContacts'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listPaymentContacts
    post:
      summary: Create a new payment contact
      description: Create a new payment contact within the payment contacts collection.
      operationId: createPaymentContact
      x-apiture-api: bankingPayments
      x-apiture-group: paymentContacts
      tags:
        - Payment Contacts
      requestBody:
        required: true
        description: The data necessary to create a new payment contact.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/newPaymentContact'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentContact'
          headers:
            Location:
              description: The URI of the new payment contact.
              schema:
                type: string
                format: uri-reference
                maxLength: 128
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |-
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidPaymentMethod/v1.0.0`](https://static.api.apiture.com/errors/invalidPaymentMethod/v1.0.0)<br>
              The payment method contains invalid data.
              Remediation: Supply the correct value for the payment method field.
            The `attributes` object in the error may have the properties defined for [`invalidPaymentMethod`](https://static.api.apiture.com/errors/invalidPaymentMethod/v1.0.0).
          x-apiture-errors:
            - invalidPaymentMethod
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: createPaymentContact
  /paymentContacts/{paymentContactId}:
    parameters:
      - $ref: '#/components/parameters/paymentContactIdPathParam'
    get:
      summary: Fetch a representation of this payment contact
      description: Return the JSON representation of this payment contact resource.
      operationId: getPaymentContact
      x-apiture-api: bankingPayments
      x-apiture-group: paymentContacts
      tags:
        - Payment Contacts
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentContact'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentContact'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - profile/read
      x-apiture-permission: getPaymentContact
    patch:
      summary: Update this payment contact
      description: |-
        Perform a partial update of this payment contact as per [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules. Only fields in the request body are updated on the resource; fields which are omitted are not updated.
        Patch operations do not modify the payment contact's existing payment batches or templates; payment instructions contain only copies of the contact's information.
      operationId: patchPaymentContact
      x-apiture-api: bankingPayments
      x-apiture-group: paymentContacts
      tags:
        - Payment Contacts
      requestBody:
        required: true
        description: The fields to update within the payment contact.
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/paymentContactPatch'
          application/json:
            schema:
              $ref: '#/components/schemas/paymentContactPatch'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentContact'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentContact'
        '422':
          $ref: '#/components/responses/422UpdatePaymentContact'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: patchPaymentContact
    delete:
      summary: Delete this payment contact resource
      description: 'Deleting contacts does not modify any existing payment batches or templates; payment instructions contain only copies of the contact''s information.<br>**Warning**: The operation `deletePaymentContact` was deprecated on version `v0.91.0` of the API. Use the `deletePaymentContacts` operation instead. `deletePaymentContact` will be removed on version `v0.156.0` of the API.'
      operationId: deletePaymentContact
      x-apiture-api: bankingPayments
      x-apiture-group: paymentContacts
      x-apiture-deprecated:
        since: 0.91.0
        replacement: the `deletePaymentContacts` operation
        removeOn: 0.156.0
      tags:
        - Payment Contacts
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentContact'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: deletePaymentContact
      deprecated: true
  /paymentContacts/{paymentContactId}/payments:
    get:
      summary: Return this contact's pending and historical payments
      description: |-
        Return a paginated collection of this contact's pending and historical payments.

        The response is sorted in reverse chronological order by default. The default response lists unscheduled payments first, then pending/scheduled/processing and other unprocessed payments, followed by historical processed payments.

        If an individual payment batch contains multiple payment instructions to this contact, each payment instruction is listed as a separate item in the response.

        The result does not include payments that are not explicitly attached to the contact. For example, an ACH payment instruction with a recipient routing number and account number that exactly matches a contact but which does not include the `contactId` is not included in the response.

        If the request includes a `dateRange`, the response include previous and next date ranges, each based on the same number of days in the `dateRange`, to facilitate scrolling through time.
      operationId: listContactPayments
      x-apiture-api: bankingPayments
      x-apiture-group: paymentContacts
      tags:
        - Payment Contacts
      parameters:
        - $ref: '#/components/parameters/paymentContactIdPathParam'
        - $ref: '#/components/parameters/customerIdQueryParam'
        - name: effectiveOn
          description: 'Return only payments whose `effectiveOn` date is in the given date range, and/or which are unscheduled. Date ranges use [range notation](https://dx.apiture.com/docs/api/concepts/collection-filtering/#range-filters). Examples: <ul> <li> `[2022-05-01,2022-05-31]` between May 1 and 31, 2022, inclusive</li> <li> `[2022-05-01,2022-05-31]|unscheduled` between May 1 and 31, 2022, inclusive, or unscheduled</li> <li> `[2022-05-01,2022-06-01)` on or after May 1, but _before_ June 1 (in May, 2022)</li> <li> `[2022-05-19,]` on or after May 19, 2022</li> <li> `(2022-05-19,)|unscheduled` after May 19, 2022, or unscheduled</li> <li> `[,2022-05-19]` on or before May 19, 2022</li> <li> `2022-05-19`</li> match only payments made on May 19, 2022. <li> `unscheduled` match only payments that are still unscheduled</li> </ul> The bracketed range options (excluding simple `YYYY-MM-DD` single date values) may include the `|unscheduled` suffix. This notation matches payments batches that are scheduled in the given date range _or_ which are unscheduled.'
          in: query
          schema:
            $ref: '#/components/schemas/dateRangeOrUnscheduled'
        - name: state
          description: Return only payment instructions whose payment batch `state` matches one of the items in this pipe-separated list. The default is all payment batch states.
          in: query
          schema:
            type: array
            minItems: 1
            maxItems: 10
            uniqueItems: true
            items:
              $ref: '#/components/schemas/paymentBatchState'
          style: pipeDelimited
          explode: false
        - name: direction
          description: List only payments whose `direction` matches the request. The default matches either direction.
          in: query
          schema:
            $ref: '#/components/schemas/paymentInstructionDirection'
        - name: ascending
          description: If `true`, the response is sorted in ascending order, starting with the oldest payments. The default is `false`, sorting in descending date order. Unscheduled payments sort later than scheduled ones.
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentContactPayments'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listContactPayments
  /paymentContacts/{paymentContactId}/inactive:
    post:
      operationId: deactivatePaymentContact
      x-apiture-api: bankingPayments
      x-apiture-group: paymentContactActions
      summary: Deactivate a payment contact
      description: 'Deactivate a payment contact. This changes the `state` property of the payment contact to `inactive`. The response is the updated representation of the payment contact. This operation is idempotent: no changes are made if the payment contact is already `inactive`.<br>**Warning**: The operation `deactivatePaymentContact` was deprecated on version `v0.91.0` of the API. Use the `deactivatePaymentContacts` operation instead. `deactivatePaymentContact` will be removed on version `v0.156.0` of the API.'
      tags:
        - Payment Contact Actions
      x-apiture-deprecated:
        since: 0.91.0
        replacement: the `deactivatePaymentContacts` operation
        removeOn: 0.156.0
      parameters:
        - $ref: '#/components/parameters/paymentContactIdPathParam'
      requestBody:
        required: true
        description: Request body for activating a payment contact.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/deactivatePaymentContactRequest'
      responses:
        '200':
          description: OK. The operation succeeded. The payment contact was updated and its `state` changed to `inactive`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentContact'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/paymentContact'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          description: Conflict. The request to deactivate the payment contact is not allowed.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '422':
          description: Bad Request. The paymentContact parameter was malformed or does not refer to an existing or accessible payment contact.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - profile/write
      x-apiture-permission: deactivatePaymentContact
      deprecated: true
  /paymentContacts/{paymentContactId}/active:
    post:
      operationId: activatePaymentContact
      x-apiture-api: bankingPayments
      x-apiture-group: paymentContactActions
      summary: Activate a payment contact
      description: 'Activate a payment contact. This changes the `state` property of the payment contact to `active`. The response is the updated representation of the payment contact. This operation is idempotent: no changes are made if the payment contact is already `active`.<br>**Warning**: The operation `activatePaymentContact` was deprecated on version `v0.91.0` of the API. Use the `activatePaymentContacts` operation instead. `activatePaymentContact` will be removed on version `v0.156.0` of the API.'
      tags:
        - Payment Contact Actions
      x-apiture-deprecated:
        since: 0.91.0
        replacement: the `activatePaymentContacts` operation
        removeOn: 0.156.0
      parameters:
        - $ref: '#/components/parameters/paymentContactIdPathParam'
      requestBody:
        required: true
        description: Request body for activating a payment contact.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/activatePaymentContactRequest'
      responses:
        '200':
          description: OK. The operation succeeded. The payment contact was updated and its `state` changed to `active`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentContact'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/paymentContact'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          description: Conflict. The request to activate the payment contact is not allowed.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '422':
          description: Bad Request. The paymentContact parameter was malformed or does not refer to an existing or accessible payment contact.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - profile/write
      x-apiture-permission: activatePaymentContact
      deprecated: true
  /importedPaymentContacts:
    post:
      operationId: importPaymentContacts
      x-apiture-api: bankingPayments
      summary: Import payment contacts
      description: Import payment contacts and their payment methods. The result is an array of one or more payment contacts. Imported payment contacts are not not merged.
      x-apiture-group: paymentContacts
      tags:
        - Payment Contacts
      parameters:
        - $ref: '#/components/parameters/customerIdQueryParam'
      requestBody:
        required: true
        description: Request containing the contents of the file to import payment contacts and their payment methods.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/paymentContactsImport'
      responses:
        '201':
          description: |-
            Created. The errors listed below may appear in failed payment contact imports.

            This response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/extraColumnsIgnoredInImport/v1.0.0`](https://static.api.apiture.com/errors/extraColumnsIgnoredInImport/v1.0.0)<br>
              One or more records had extra columns which were ignored.
              Remediation: Remove extra columns before importing to prevent this warning.
            The `attributes` object in the error may have the properties defined for [`extraColumnsIgnoredInImport`](https://static.api.apiture.com/errors/extraColumnsIgnoredInImport/v1.0.0).
          x-apiture-errors:
            - extraColumnsIgnoredInImport
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/importedPaymentContacts'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/importedPaymentContacts'
        '202':
          description: Accepted. The request was accepted but validation is not yet complete. The system notifies the customer of success/failure of the payment contacts file import. The array of items in the response may have zero or more items accordingly.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/importedPaymentContacts'
        '400':
          description: |
            Bad Request. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/emptyFileForImport/v1.0.0`](https://static.api.apiture.com/errors/emptyFileForImport/v1.0.0)<br>
              The provided values file is empty.
              Remediation: Supply the values for import in Base64 encoding of a well-formed values file.

            * [`https://static.api.apiture.com/errors/tooFewColumnsInImport/v1.0.0`](https://static.api.apiture.com/errors/tooFewColumnsInImport/v1.0.0)<br>
              The values file is not well formed and parsing failed.
              Remediation: Supply the Base64 encoding of a well-formed values file.

            * [`https://static.api.apiture.com/errors/invalidImportFormat/v1.0.0`](https://static.api.apiture.com/errors/invalidImportFormat/v1.0.0)<br>
              The format of the content for importing values is invalid.
              Remediation: Supply the Base64 encoding of a well-formed comma-separated values file or tab-separated values file.
          x-apiture-errors:
            - emptyFileForImport
            - tooFewColumnsInImport
            - invalidImportFormat
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |-
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidPaymentContactImportRow/v1.0.0`](https://static.api.apiture.com/errors/invalidPaymentContactImportRow/v1.0.0)<br>
              One or more values are invalid for the import row.
              Remediation: Supply valid values for the specified columns.
            The `attributes` object in the error may have the properties defined for [`invalidPaymentContactImportRow`](https://static.api.apiture.com/errors/invalidPaymentContactImportRow/v1.0.0).
          x-apiture-errors:
            - invalidPaymentContactImportRow
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: importPaymentContacts
  /activatedPaymentContacts:
    post:
      summary: Activate Payment Contacts
      description: |-
        Activate a set of payment contacts. This is an idempotent action; if a payment contact is already active, it does not change and is considered a success.

        The 200 response indicates a partial success and includes details on any failed activations. The 204 response indicates that all of the payment contacts were successfully activated.
      operationId: activatePaymentContacts
      x-apiture-api: bankingPayments
      x-apiture-group: paymentContactActions
      tags:
        - Payment Contact Actions
      parameters:
        - $ref: '#/components/parameters/customerIdQueryParam'
      requestBody:
        required: true
        description: Request containing the payment contacts to activate.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bulkPaymentContactActivateRequest'
      responses:
        '200':
          description: |-
            OK. The request was successfully processed. However, activating one or more payment contacts may have failed; response body indicates which succeeded and which failed.

            This response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidPaymentContactIds/v1.0.0`](https://static.api.apiture.com/errors/invalidPaymentContactIds/v1.0.0)<br>
              One or more payment contact IDs are invalid or do not refer to an existing payment contact.
              Remediation: Specify the ID of an existing contact for which the user has read access.
            The `attributes` object in the error may have the properties defined for [`invalidPaymentContactIds`](https://static.api.apiture.com/errors/invalidPaymentContactIds/v1.0.0).
          x-apiture-errors:
            - invalidPaymentContactIds
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentContactBulkActivations'
        '204':
          description: No Content. All payment contacts were successfully activated.
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: activatePaymentContacts
  /deactivatedPaymentContacts:
    post:
      summary: Deactivate Payment Contacts
      description: |-
        Deactivate a set of payment contacts. This is an idempotent action; if a payment contact is already inactive, it does not change and is considered a success. Deactivating contacts does not modify any existing payment batches or templates that involve them.

        The 200 response indicates a partial success and includes details on any failed deactivations. The 204 response indicates that all of the payment contacts were successfully deactivated.
      operationId: deactivatePaymentContacts
      x-apiture-api: bankingPayments
      x-apiture-group: paymentContactActions
      tags:
        - Payment Contact Actions
      parameters:
        - $ref: '#/components/parameters/customerIdQueryParam'
      requestBody:
        required: true
        description: Request containing the payment contacts to deactivate.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bulkPaymentContactDeactivateRequest'
      responses:
        '200':
          description: |-
            OK. The request was successfully processed. However, deactivating one or more payment contacts may have failed; response body indicates which succeeded and which failed.

            This response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidPaymentContactIds/v1.0.0`](https://static.api.apiture.com/errors/invalidPaymentContactIds/v1.0.0)<br>
              One or more payment contact IDs are invalid or do not refer to an existing payment contact.
              Remediation: Specify the ID of an existing contact for which the user has read access.
            The `attributes` object in the error may have the properties defined for [`invalidPaymentContactIds`](https://static.api.apiture.com/errors/invalidPaymentContactIds/v1.0.0).
          x-apiture-errors:
            - invalidPaymentContactIds
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentContactBulkDeactivations'
        '204':
          description: No Content. All payment contacts were successfully deactivated.
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: deactivatePaymentContacts
  /deletedPaymentContacts:
    post:
      summary: Delete Payment Contacts
      description: |-
        Delete a set of payment contacts. One or more contact deletions may fail if those payment contacts were previously deleted. Deleting contacts does not modify any existing payment batches or templates.

        The 200 response indicates a partial success and includes details on any failed deletions. The 204 response indicates that all of the payment contacts were successfully deleted.
      operationId: deletePaymentContacts
      x-apiture-api: bankingPayments
      x-apiture-group: paymentContactActions
      tags:
        - Payment Contact Actions
      parameters:
        - $ref: '#/components/parameters/customerIdQueryParam'
      requestBody:
        required: true
        description: Request containing the payment contacts to delete.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bulkPaymentContactDeletionRequest'
      responses:
        '200':
          description: |-
            OK. The request was successfully processed. However, deleting one or more payment contacts may have failed; response body indicates which succeeded and which failed.

            This response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidPaymentContactIds/v1.0.0`](https://static.api.apiture.com/errors/invalidPaymentContactIds/v1.0.0)<br>
              One or more payment contact IDs are invalid or do not refer to an existing payment contact.
              Remediation: Specify the ID of an existing contact for which the user has read access.
            The `attributes` object in the error may have the properties defined for [`invalidPaymentContactIds`](https://static.api.apiture.com/errors/invalidPaymentContactIds/v1.0.0).
          x-apiture-errors:
            - invalidPaymentContactIds
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentContactBulkDeletions'
        '204':
          description: No Content. All payment contacts were successfully deactivated.
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: deletePaymentContacts
  /paymentContactExport:
    post:
      summary: Export Payment Contacts
      description: Export a comma-separated values (CSV) file of payment contacts and their associated payment methods.
      operationId: exportPaymentContacts
      x-apiture-api: bankingPayments
      x-apiture-group: paymentContacts
      tags:
        - Payment Contacts
      parameters:
        - $ref: '#/components/parameters/customerIdQueryParam'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/paymentContactsExportRequest'
      responses:
        '201':
          description: Created.
          headers:
            Content-Disposition:
              description: The file information provided for the `text/csv` response, such as `attachment; filename="payment-contacts.csv"`.
              schema:
                type: string
                format: text
                maxLength: 64
                example: attachment; filename="payment-contacts.csv"
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentContactsExport'
            text/csv:
              schema:
                $ref: '#/components/schemas/paymentContactsCsvExport'
        '400':
          description: Bad Request. The request body, request headers, and/or query parameters are not well-formed.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |-
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidPaymentContactIds/v1.0.0`](https://static.api.apiture.com/errors/invalidPaymentContactIds/v1.0.0)<br>
              One or more payment contact IDs are invalid or do not refer to an existing payment contact.
              Remediation: Specify the ID of an existing contact for which the user has read access.
            The `attributes` object in the error may have the properties defined for [`invalidPaymentContactIds`](https://static.api.apiture.com/errors/invalidPaymentContactIds/v1.0.0).
          x-apiture-errors:
            - invalidPaymentContactIds
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: exportPaymentContacts
  /paymentBatches/{paymentBatchId}/importedAchPaymentInstructions:
    parameters:
      - $ref: '#/components/parameters/paymentBatchIdPathParam'
    post:
      summary: Import ACH payment instructions
      description: Import a tab-separated values (TSV) file of ACH payment instructions, either appending to the existing instructions in this batch or replacing them.
      operationId: importAchPaymentInstructions
      x-apiture-api: bankingPayments
      x-apiture-group: paymentInstructionActions
      tags:
        - Payment Instruction Actions
      requestBody:
        required: true
        description: Request containing the contents of the file to import.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/achPaymentInstructionImport'
      responses:
        '200':
          description: |-
            OK. The `problems` in the response payment batch lists any warnings from the import. Note: These import `problems` are not persistent in the payment batch resource.

            This response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/tooManyInstructionsForCtxImport/v1.0.0`](https://static.api.apiture.com/errors/tooManyInstructionsForCtxImport/v1.0.0)<br>
              When importing CTX payment instructions, only one payment instruction allowed.
              Remediation: Adjust the file to include only one payment instruction.

            * [`https://static.api.apiture.com/errors/extraColumnsIgnoredInImport/v1.0.0`](https://static.api.apiture.com/errors/extraColumnsIgnoredInImport/v1.0.0)<br>
              One or more records had extra columns which were ignored.
              Remediation: Remove extra columns before importing to prevent this warning.
            The `attributes` object in the error may have the properties defined for [`extraColumnsIgnoredInImport`](https://static.api.apiture.com/errors/extraColumnsIgnoredInImport/v1.0.0).
            * [`https://static.api.apiture.com/errors/invalidPaymentDirectionInImport/v1.0.0`](https://static.api.apiture.com/errors/invalidPaymentDirectionInImport/v1.0.0)<br>
              Payment direction for items must match the payment batch direction.
              Remediation: Invalid items found in the file have been skipped.
            The `attributes` object in the error may have the properties defined for [`invalidPaymentDirectionInImport`](https://static.api.apiture.com/errors/invalidPaymentDirectionInImport/v1.0.0).
            * [`https://static.api.apiture.com/errors/addendaDisallowedInImport/v1.0.0`](https://static.api.apiture.com/errors/addendaDisallowedInImport/v1.0.0)<br>
              Addenda are not allowed for this type of batch.
              Remediation: Addenda values found in the file have been skipped.
            The `attributes` object in the error may have the properties defined for [`addendaDisallowedInImport`](https://static.api.apiture.com/errors/addendaDisallowedInImport/v1.0.0).
            * [`https://static.api.apiture.com/errors/tooManyAddendaInImport/v1.0.0`](https://static.api.apiture.com/errors/tooManyAddendaInImport/v1.0.0)<br>
              Only one addenda allowed for this type of batch.
              Remediation: Addenda values found in the file have been skipped.
            The `attributes` object in the error may have the properties defined for [`tooManyAddendaInImport`](https://static.api.apiture.com/errors/tooManyAddendaInImport/v1.0.0).
            * [`https://static.api.apiture.com/errors/tooManyRecordsInImport/v1.0.0`](https://static.api.apiture.com/errors/tooManyRecordsInImport/v1.0.0)<br>
              Only one record is allowed for this type of batch.
              Remediation: Additional records found in the file have been skipped.
            The `attributes` object in the error may have the properties defined for [`tooManyRecordsInImport`](https://static.api.apiture.com/errors/tooManyRecordsInImport/v1.0.0).
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentBatch'
          x-apiture-errors:
            - tooManyInstructionsForCtxImport
            - extraColumnsIgnoredInImport
            - invalidPaymentDirectionInImport
            - addendaDisallowedInImport
            - tooManyAddendaInImport
            - tooManyRecordsInImport
        '202':
          description: Accepted. The request was accepted but validation is not yet complete. After the import processing completes, the `problems` in the response lists any errors from the import.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentBatch'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentBatch'
        '422':
          description: |-
            Unprocessable Entity. The request body, request headers, and/or query parameters are not well-formed. If there were multiple validation errors, they are listed in the `problems` array in the response.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/tooFewColumnsInTabSeparatedValues/v1.0.0`](https://static.api.apiture.com/errors/tooFewColumnsInTabSeparatedValues/v1.0.0)<br>
              The tab-separated values file is not well formed and parsing failed.
              Remediation: Supply the Base64 encoding of a well-formed tab-separated values file.

            * [`https://static.api.apiture.com/errors/appendDisallowedForCtxImport/v1.0.0`](https://static.api.apiture.com/errors/appendDisallowedForCtxImport/v1.0.0)<br>
              When importing CTX payment instructions, only the `replace` option is allowed.
              Remediation: Change the request `strategy` from `append` to `replace`.

            * [`https://static.api.apiture.com/errors/invalidTabSeparatedValues/v1.0.0`](https://static.api.apiture.com/errors/invalidTabSeparatedValues/v1.0.0)<br>
              The tab-separated values file is not well formed and parsing failed.
              Remediation: Supply the Base64 encoding of a well-formed tab-separated values file.

            * [`https://static.api.apiture.com/errors/invalidAccountNumberInImport/v1.0.0`](https://static.api.apiture.com/errors/invalidAccountNumberInImport/v1.0.0)<br>
              One or more ACH account numbers are invalid.
              Remediation: Correct the invalid records and retry the operation.
            The `attributes` object in the error may have the properties defined for [`invalidAccountNumberInImport`](https://static.api.apiture.com/errors/invalidAccountNumberInImport/v1.0.0).
            * [`https://static.api.apiture.com/errors/invalidAccountTypeInImport/v1.0.0`](https://static.api.apiture.com/errors/invalidAccountTypeInImport/v1.0.0)<br>
              One or more ACH account type values are invalid.
              Remediation: Correct the invalid records and retry the operation. Valid values are `checking`, `check`, `D`, `DDA` for checking accounts, `loan`, `L`, `LN`, `LON`,  for loan accounts, and `savings`, `S`, `SAV`, `SSA` for  savings accounts.
            The `attributes` object in the error may have the properties defined for [`invalidAccountTypeInImport`](https://static.api.apiture.com/errors/invalidAccountTypeInImport/v1.0.0).
            * [`https://static.api.apiture.com/errors/invalidRoutingNumberInImport/v1.0.0`](https://static.api.apiture.com/errors/invalidRoutingNumberInImport/v1.0.0)<br>
              One or more ACH routing and transit numbers are invalid.
              Remediation: Correct the invalid records and retry the operation.
            The `attributes` object in the error may have the properties defined for [`invalidRoutingNumberInImport`](https://static.api.apiture.com/errors/invalidRoutingNumberInImport/v1.0.0).
            * [`https://static.api.apiture.com/errors/invalidHoldValueInImport/v1.0.0`](https://static.api.apiture.com/errors/invalidHoldValueInImport/v1.0.0)<br>
              One or more Hold column values are invalid.
              Remediation: Correct the invalid records and retry the operation.
            The `attributes` object in the error may have the properties defined for [`invalidHoldValueInImport`](https://static.api.apiture.com/errors/invalidHoldValueInImport/v1.0.0).
          x-apiture-errors:
            - tooFewColumnsInTabSeparatedValues
            - appendDisallowedForCtxImport
            - invalidTabSeparatedValues
            - invalidAccountNumberInImport
            - invalidAccountTypeInImport
            - invalidRoutingNumberInImport
            - invalidHoldValueInImport
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: importAchPaymentInstructions
  /paymentBatches/{paymentBatchId}/paymentInstructions:
    get:
      summary: Return a collection of payment instructions
      description: Return a collection of payment instructions within this payment batch.
      operationId: listPaymentInstructions
      x-apiture-api: bankingPayments
      x-apiture-group: paymentInstructions
      tags:
        - Payment Instructions
      responses:
        '200':
          description: |
            OK.

            This response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/missingPaymentInstructionAmount/v1.0.0`](https://static.api.apiture.com/errors/missingPaymentInstructionAmount/v1.0.0)<br>
              The payment amount for this instruction is missing.
              Remediation: Set a valid, non-zero payment amount.
          x-apiture-errors:
            - missingPaymentInstructionAmount
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentInstructions'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentBatch'
        '409':
          description: |
            Conflict. The request conflicts with the state of the application.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/paymentInstructionsNotAvailable/v1.0.0`](https://static.api.apiture.com/errors/paymentInstructionsNotAvailable/v1.0.0)<br>
              Payment instructions are not available for NACHA pass-through payments.
              Remediation: Do not access payment instructions for NACHA pass-through payments.
          x-apiture-errors:
            - paymentInstructionsNotAvailable
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listPaymentInstructions
    post:
      summary: Create a new payment instruction
      description: Add a new payment instruction to the payment instructions in this payment batch.
      operationId: createPaymentInstruction
      x-apiture-api: bankingPayments
      x-apiture-group: paymentInstructions
      tags:
        - Payment Instructions
      requestBody:
        required: true
        description: The data necessary to create a new payment instruction.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/newPaymentInstruction'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentInstruction'
          headers:
            Location:
              description: The URI of the new payment instruction.
              schema:
                type: string
                format: uri-reference
                maxLength: 128
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentInstruction'
        '409':
          description: |
            Conflict.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/duplicatePaymentInstruction/v1.0.0`](https://static.api.apiture.com/errors/duplicatePaymentInstruction/v1.0.0)<br>
              There is already another payment instruction that matches the request.
              Remediation: Enter unique data for this payment instruction.

            * [`https://static.api.apiture.com/errors/paymentInstructionsNotAvailable/v1.0.0`](https://static.api.apiture.com/errors/paymentInstructionsNotAvailable/v1.0.0)<br>
              Payment instructions are not available for NACHA pass-through payments.
              Remediation: Do not access payment instructions for NACHA pass-through payments.
          x-apiture-errors:
            - duplicatePaymentInstruction
            - paymentInstructionsNotAvailable
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidAchInstructionAccountNumber/v1.0.0`](https://static.api.apiture.com/errors/invalidAchInstructionAccountNumber/v1.0.0)<br>
              The `ach.accountNumber` is not a valid bank account number.
              Remediation: Enter a valid 9 digit account number, fully padded.

            * [`https://static.api.apiture.com/errors/invalidAchInstructionRoutingNumber/v1.0.0`](https://static.api.apiture.com/errors/invalidAchInstructionRoutingNumber/v1.0.0)<br>
              The `ach.routingNumber` is not a valid bank routing number.
              Remediation: Enter a valid 9 digit financial institution routing number.

            * [`https://static.api.apiture.com/errors/noSuchContact/v1.0.0`](https://static.api.apiture.com/errors/noSuchContact/v1.0.0)<br>
              There is no such contact resource for the given `contactId`.
              Remediation: Pass a valid contact ID or omit the `contactId` from the request.

            * [`https://static.api.apiture.com/errors/noSuchConfidentialCustomer/v1.0.0`](https://static.api.apiture.com/errors/noSuchConfidentialCustomer/v1.0.0)<br>
              There is no such customer for the given `confidentialCustomers[i].id`.
              Remediation: Pass a valid customer ID.

            * [`https://static.api.apiture.com/errors/noSuchPaymentMethod/v1.0.0`](https://static.api.apiture.com/errors/noSuchPaymentMethod/v1.0.0)<br>
              There is no such contact resource for the given `paymentMethodId`.
              Remediation: Pass a valid payment method ID or omit the `paymentMethodId` from the request.

            * [`https://static.api.apiture.com/errors/invalidInstructionForBatch/v1.0.0`](https://static.api.apiture.com/errors/invalidInstructionForBatch/v1.0.0)<br>
              The payment instruction `type` does not match the payment batch `type`.
              Remediation: Add only matching instructions to a patch (i.e. `ach` instructions to an `ach` batch, `wireTransfer` instructions to a `wireTransfer` batch).
          x-apiture-errors:
            - invalidAchInstructionAccountNumber
            - invalidAchInstructionRoutingNumber
            - noSuchContact
            - noSuchConfidentialCustomer
            - noSuchPaymentMethod
            - invalidInstructionForBatch
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - moneyMovement/write
      x-apiture-permission: createPaymentInstruction
    parameters:
      - $ref: '#/components/parameters/paymentBatchIdPathParam'
  /paymentBatches/{paymentBatchId}/heldPaymentInstructions:
    parameters:
      - $ref: '#/components/parameters/paymentBatchIdPathParam'
    post:
      summary: Set the `hold` value of payment instructions
      description: |-
        Set the `hold` value for a list of payment instructions from a payment batch. This is an idempotent action; if a instruction already has the given `hold` state, it does not change and is considered a success.

        Only payment instructions with `allows.holdInstructions` set to `true` can be held.
      operationId: updatePaymentInstructionHolds
      x-apiture-api: bankingPayments
      x-apiture-group: paymentInstructionActions
      tags:
        - Payment Instruction Actions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bulkPaymentInstructionHoldRequest'
      responses:
        '200':
          description: |
            OK. The request was successfully processed. However, at least one of the payment instructions failed to update; see the [`paymentInstructionHoldUpdate`](#schema-paymentInstructionHoldUpdate) response to see which succeeded and which failed.

            This response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidPaymentInstructionIds/v1.0.0`](https://static.api.apiture.com/errors/invalidPaymentInstructionIds/v1.0.0)<br>
              One or more payment instructions IDs are invalid or do not refer to an existing payment instruction in the payment batch.
              Remediation: Specify the ID of a payment instruction for the operation that the user requested.
            The `attributes` object in the error may have the properties defined for [`invalidPaymentInstructionIds`](https://static.api.apiture.com/errors/invalidPaymentInstructionIds/v1.0.0).
            * [`https://static.api.apiture.com/errors/invalidStateForHold/v1.0.0`](https://static.api.apiture.com/errors/invalidStateForHold/v1.0.0)<br>
              The payment instruction `hold` value cannot be changed when the payment batch is in the current state.
              Remediation: The payment batch containing the payment instruction must be in an editable state.
          x-apiture-errors:
            - invalidPaymentInstructionIds
            - invalidStateForHold
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentInstructionHoldUpdate'
        '204':
          description: No Content. All instructions were successfully updated without any problems.
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentBatch'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: updatePaymentInstructionHolds
  /paymentBatches/{paymentBatchId}/deletedPaymentInstructions:
    parameters:
      - $ref: '#/components/parameters/paymentBatchIdPathParam'
    post:
      summary: Delete payment instruction resources
      description: |-
        Delete the provided payment instruction resources from this payment batch.

        Only payment instructions with `allows.deleteInstructions` set to `true` can be deleted.
      operationId: deletePaymentInstructions
      x-apiture-api: bankingPayments
      x-apiture-group: paymentInstructionActions
      tags:
        - Payment Instruction Actions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bulkPaymentInstructionDeletionRequest'
      responses:
        '200':
          description: |
            OK. The request was successfully processed. However, at least one of the payment instructions failed to delete; see the [`paymentInstructionDeletions`](#schema-paymentInstructionDeletions) response to see which succeeded and which failed.

            This response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidPaymentInstructionIds/v1.0.0`](https://static.api.apiture.com/errors/invalidPaymentInstructionIds/v1.0.0)<br>
              One or more payment instructions IDs are invalid or do not refer to an existing payment instruction in the payment batch.
              Remediation: Specify the ID of a payment instruction for the operation that the user requested.
            The `attributes` object in the error may have the properties defined for [`invalidPaymentInstructionIds`](https://static.api.apiture.com/errors/invalidPaymentInstructionIds/v1.0.0).
            * [`https://static.api.apiture.com/errors/invalidStateForPaymentInstructionDelete/v1.0.0`](https://static.api.apiture.com/errors/invalidStateForPaymentInstructionDelete/v1.0.0)<br>
              The payment instruction cannot be deleted when the payment batch is in the current state.
              Remediation: The payment batch containing the payment instruction must be in an editable state.
          x-apiture-errors:
            - invalidPaymentInstructionIds
            - invalidStateForPaymentInstructionDelete
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentInstructionDeletions'
        '204':
          description: No Content. All instructions were successfully deleted without any problems.
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentBatch'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: deletePaymentInstructions
  /paymentBatches/{paymentBatchId}/paymentInstructions/{paymentInstructionId}:
    parameters:
      - $ref: '#/components/parameters/paymentBatchIdPathParam'
      - $ref: '#/components/parameters/paymentInstructionIdPathParam'
    get:
      summary: Fetch a representation of this payment instruction
      description: Return the JSON representation of this payment instruction resource for the given payment batch or payment batch template.
      operationId: getPaymentInstruction
      x-apiture-api: bankingPayments
      x-apiture-group: paymentInstructions
      tags:
        - Payment Instructions
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentInstruction'
        '304':
          $ref: '#/components/responses/304'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentInstruction'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: getPaymentInstruction
    patch:
      summary: Update this payment instruction
      description: Perform a partial update of this payment instruction as per [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396). Only fields in the request body are updated on the resource; fields which are omitted are not updated.
      operationId: patchPaymentInstruction
      x-apiture-api: bankingPayments
      x-apiture-group: paymentInstructions
      tags:
        - Payment Instructions
      requestBody:
        required: true
        description: The new payment instruction.
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/paymentInstructionPatch'
          application/json:
            schema:
              $ref: '#/components/schemas/paymentInstructionPatch'
      responses:
        '200':
          description: |
            OK.

            This response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/missingPaymentInstructionAmount/v1.0.0`](https://static.api.apiture.com/errors/missingPaymentInstructionAmount/v1.0.0)<br>
              The payment amount for this instruction is missing.
              Remediation: Set a valid, non-zero payment amount.
          x-apiture-errors:
            - missingPaymentInstructionAmount
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentInstruction'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentInstruction'
        '409':
          description: |-
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/duplicatePaymentInstruction/v1.0.0`](https://static.api.apiture.com/errors/duplicatePaymentInstruction/v1.0.0)<br>
              There is already another payment instruction that matches the request.
              Remediation: Enter unique data for this payment instruction.

            * [`https://static.api.apiture.com/errors/propertiesLockedInWireTransferTemplate/v1.0.0`](https://static.api.apiture.com/errors/propertiesLockedInWireTransferTemplate/v1.0.0)<br>
              One of more properties have been locked for modification in the template.
              Remediation: Unlock the properties in the template to modify them in this payment batch.
            The `attributes` object in the error may have the properties defined for [`propertiesLockedInWireTransferTemplate`](https://static.api.apiture.com/errors/propertiesLockedInWireTransferTemplate/v1.0.0).
            * [`https://static.api.apiture.com/errors/propertiesLockedInAchTemplate/v1.0.0`](https://static.api.apiture.com/errors/propertiesLockedInAchTemplate/v1.0.0)<br>
              One of more properties have been locked for modification in the template.
              Remediation: Unlock the properties in the template to modify them in this payment batch.
            The `attributes` object in the error may have the properties defined for [`propertiesLockedInAchTemplate`](https://static.api.apiture.com/errors/propertiesLockedInAchTemplate/v1.0.0).
          x-apiture-errors:
            - duplicatePaymentInstruction
            - propertiesLockedInWireTransferTemplate
            - propertiesLockedInAchTemplate
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidAchInstructionAccountNumber/v1.0.0`](https://static.api.apiture.com/errors/invalidAchInstructionAccountNumber/v1.0.0)<br>
              The `ach.accountNumber` is not a valid bank account number.
              Remediation: Enter a valid 9 digit account number, fully padded.

            * [`https://static.api.apiture.com/errors/invalidAchInstructionRoutingNumber/v1.0.0`](https://static.api.apiture.com/errors/invalidAchInstructionRoutingNumber/v1.0.0)<br>
              The `ach.routingNumber` is not a valid bank routing number.
              Remediation: Enter a valid 9 digit financial institution routing number.

            * [`https://static.api.apiture.com/errors/noSuchContact/v1.0.0`](https://static.api.apiture.com/errors/noSuchContact/v1.0.0)<br>
              There is no such contact resource for the given `contactId`.
              Remediation: Pass a valid contact ID or omit the `contactId` from the request.

            * [`https://static.api.apiture.com/errors/noSuchConfidentialCustomer/v1.0.0`](https://static.api.apiture.com/errors/noSuchConfidentialCustomer/v1.0.0)<br>
              There is no such customer for the given `confidentialCustomers[i].id`.
              Remediation: Pass a valid customer ID.

            * [`https://static.api.apiture.com/errors/noSuchPaymentMethod/v1.0.0`](https://static.api.apiture.com/errors/noSuchPaymentMethod/v1.0.0)<br>
              There is no such contact resource for the given `paymentMethodId`.
              Remediation: Pass a valid payment method ID or omit the `paymentMethodId` from the request.

            * [`https://static.api.apiture.com/errors/invalidInstructionForBatch/v1.0.0`](https://static.api.apiture.com/errors/invalidInstructionForBatch/v1.0.0)<br>
              The payment instruction `type` does not match the payment batch `type`.
              Remediation: Add only matching instructions to a patch (i.e. `ach` instructions to an `ach` batch, `wireTransfer` instructions to a `wireTransfer` batch).
          x-apiture-errors:
            - invalidAchInstructionAccountNumber
            - invalidAchInstructionRoutingNumber
            - noSuchContact
            - noSuchConfidentialCustomer
            - noSuchPaymentMethod
            - invalidInstructionForBatch
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - moneyMovement/write
      x-apiture-permission: patchPaymentInstruction
    delete:
      summary: Delete this payment instruction resource
      description: 'Delete this payment instruction resource from this payment batch.<br>**Warning**: The operation `deletePaymentInstruction` was deprecated on version `v0.66.0` of the API. Use the `deletePaymentInstructions` operation instead. `deletePaymentInstruction` will be removed on version `v1.0.0` of the API.'
      operationId: deletePaymentInstruction
      x-apiture-api: bankingPayments
      x-apiture-group: paymentInstructions
      x-apiture-deprecated:
        since: 0.66.0
        replacement: the `deletePaymentInstructions` operation
        removeOn: 1.0.0
      tags:
        - Payment Instructions
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentInstruction'
        '409':
          description: |
            Conflict.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/paymentInstructionsNotAvailable/v1.0.0`](https://static.api.apiture.com/errors/paymentInstructionsNotAvailable/v1.0.0)<br>
              Payment instructions are not available for NACHA pass-through payments.
              Remediation: Do not access payment instructions for NACHA pass-through payments.
          x-apiture-errors:
            - paymentInstructionsNotAvailable
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: deletePaymentInstruction
      deprecated: true
  /importedAchBatches:
    post:
      summary: Import a NACHA ACH file to create one or more payment batches
      description: |-
        Import the contents of a [NACHA ACH file](https://achdevguide.nacha.org/ach-file-overview). The result is an array of one or more payment batches. Each batch contains the same settlement account and have the `imported` flag set to `true`. Such batches are not editable except for the batch name or to toggle the `hold` flag on individual payment instructions.

        See the [`importNachaPassThrough`](#op-importNachaPassThrough) operation to create a single payment for a NACHA file rather than creating separate batches from the NACHA file.
      operationId: importAch
      x-apiture-api: bankingPayments
      x-apiture-group: paymentBatchActions
      tags:
        - Payment Batch Actions
      requestBody:
        required: true
        description: The data necessary to create a new payment batch.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/achImport'
      responses:
        '201':
          description: |
            Created. The errors listed below may appear in failed ACH imports or in ACH imports which were successfully imported but which may not be eligible for submitting or approval.

            This response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/unprivilegedAchOperation/v1.0.0`](https://static.api.apiture.com/errors/unprivilegedAchOperation/v1.0.0)<br>
              Responsible customer does not have ACH privilege(s) over customer.
              Remediation: Give the customer privileges, or let a customer with the correct privileges perform the operation.
            The `attributes` object in the error may have the properties defined for [`unprivilegedAchOperation`](https://static.api.apiture.com/errors/unprivilegedAchOperation/v1.0.0).
            * [`https://static.api.apiture.com/errors/exceedsLimits/v1.0.0`](https://static.api.apiture.com/errors/exceedsLimits/v1.0.0)<br>
              The payment total exceeds the allowed limits.
              Remediation: Check for and remove excessive payments, or split the payment batch into multiple batches.

            * [`https://static.api.apiture.com/errors/exceedsRisks/v1.0.0`](https://static.api.apiture.com/errors/exceedsRisks/v1.0.0)<br>
              The payment batch exceeds the risk limits.
              Remediation: Address the risk limit.

            * [`https://static.api.apiture.com/errors/unsupportedSecCode/v1.0.0`](https://static.api.apiture.com/errors/unsupportedSecCode/v1.0.0)<br>
              The SEC code is not supported.
              Remediation: Use a supported SEC code.
            The `attributes` object in the error may have the properties defined for [`unsupportedSecCode`](https://static.api.apiture.com/errors/unsupportedSecCode/v1.0.0).
            * [`https://static.api.apiture.com/errors/invalidCompanyId/v1.0.0`](https://static.api.apiture.com/errors/invalidCompanyId/v1.0.0)<br>
              Company ID contains invalid characters or is blank.
              Remediation: Remove invalid characters from company ID.

            * [`https://static.api.apiture.com/errors/invalidCompanyName/v1.0.0`](https://static.api.apiture.com/errors/invalidCompanyName/v1.0.0)<br>
              Company name contains invalid characters or is blank.
              Remediation: Remove invalid characters from company name.

            * [`https://static.api.apiture.com/errors/pastCutoffTime/v1.0.0`](https://static.api.apiture.com/errors/pastCutoffTime/v1.0.0)<br>
              The cutoff time for payment processing has passed.
              Remediation: Update the scheduled date for a future date.
          x-apiture-errors:
            - unprivilegedAchOperation
            - exceedsLimits
            - exceedsRisks
            - unsupportedSecCode
            - invalidCompanyId
            - invalidCompanyName
            - pastCutoffTime
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/importedAchPaymentBatches'
        '202':
          description: Accepted. The request was accepted but validation is not yet complete. The system notifies the customer of success/failure of the ACH file import. The array of items in the response may have zero or more items accordingly.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/importedAchPaymentBatches'
        '400':
          description: |
            Bad Request. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidNachaAchFile/v1.0.0`](https://static.api.apiture.com/errors/invalidNachaAchFile/v1.0.0)<br>
              The supplied NACHA ACH file contents is invalid.
              Remediation: Send a properly formatted and [Base64-encoded](https://en.wikipedia.org/wiki/Base64) [NACHA ACH file](https://achdevguide.nacha.org/ach-file-overview).
          x-apiture-errors:
            - invalidNachaAchFile
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidSettlementAccount/v1.0.0`](https://static.api.apiture.com/errors/invalidSettlementAccount/v1.0.0)<br>
              The chosen settlement account does not exist, is not accessible, or is not entitled for the chosen money movement direction.
              Remediation: Choose an available account that supports debit or credits that match the batch's money movement direction.

            * [`https://static.api.apiture.com/errors/noSuchPaymentBatchCompany/v1.0.0`](https://static.api.apiture.com/errors/noSuchPaymentBatchCompany/v1.0.0)<br>
              No such company was found or accessible for the given company `id` and `type`.
              Remediation: Supply the correct company `id` and `type` that the user is entitled to use for payment batches.

            * [`https://static.api.apiture.com/errors/invalidInstructions/v1.0.0`](https://static.api.apiture.com/errors/invalidInstructions/v1.0.0)<br>
              One or more payment instructions have problems.
              Remediation: Address the problems in the individual payment instructions.

            * [`https://static.api.apiture.com/errors/noSuchPaymentBatchCustomerId/v1.0.0`](https://static.api.apiture.com/errors/noSuchPaymentBatchCustomerId/v1.0.0)<br>
              No such customer was found or accessible for the given `customerId`.
              Remediation: Supply the resource ID (not username/access ID) of a valid customer in the `customerId` property.
          x-apiture-errors:
            - invalidSettlementAccount
            - noSuchPaymentBatchCompany
            - invalidInstructions
            - noSuchPaymentBatchCustomerId
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
              example:
                id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
                type: https://static.api.apiture.com/errors/invalidSettlementAccount/v1.0.0
                title: Unprocessable Entity
                status: 422
                occurredAt: '2022-04-25T12:42:21.375Z'
                detail: The settlement account does not exist or is not eligible for this payment
                instance: https://static.api.apiture.com/banking/payments/bb709151-575041fcd617
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
              example:
                id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
                type: https://static.api.apiture.com/errors/invalidSettlementAccount/v1.0.0
                title: Unprocessable Entity
                status: 422
                occurredAt: '2022-04-25T12:42:21.375Z'
                detail: The settlement account does not exist or is not eligible for this payment
                instance: https://static.api.apiture.com/banking/payments/bb709151-575041fcd617
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - moneyMovement/write
      x-apiture-permission: importAch
  /importedNachaFiles:
    post:
      summary: Import a NACHA ACH file to create a pass-through payment
      description: |-
        Import the contents of a balanced or unbalanced [NACHA ACH file](https://achdevguide.nacha.org/ach-file-overview) to create a single pass-through payment batch for all the transactions in the NACHA file. The system does not create separate payment batches for each debit or credit batch in the NACHA file, as is done with the [`importAch`](#op-importAch) operation.

        The `?dryRun=true` query parameter may be included to allow the client to check for duplicate NACHA files without creating a new NACHA pass-through payment batch. When `?dryRun=true` is used, this operation returns one of:

          * 204 No Content if there were no validation problems,
          * 400 Bad Request if the request body is invalid (too large, too small), or
          * 422 Unprocessable Entity if the NACHA file contents match an existing NACHA pass-through and
            `?allowDuplicates` is not `true` (the response includes the `duplicateNachaFile` problem type).
            The client may still create a duplicate NACHA pass-through by calling this operation without `?dryRun=true`
            and with `?allowDuplicates=true`. Then, a duplicate file is accepted but a `duplicateNachaFile` problem is
            still included in the `problems` array in the [`payment batch`'s](#schema-paymentBatch) as warning,
            not an error. The other NACHA that this NACHA file matches is not changed to note it is a duplicate.


        If `?dryRun` is false or omitted, the service creates a payment batch and attempts to parse the NACHA file. If there are errors in the NACHA file, the `state` of the new [`payment batch`](#schema-paymentBatch) is set to `failed` (a terminal state) and its `problems` array lists the errors. See the 201 Created response below for a list of possible problems recorded in the new payment batch resource.

        If there are no problems which prevent processing the NACHA pass-through batch, the payment batch's `state` is changed to `pending`, `allows.submit is set to `true` if the customer may submit the payment, and `allows.approve` is set to `true` if the customer may approve th payment. After the batch is submitted, the NACHA file is passed through for ACH processing based on the dates in the file's batches.
      operationId: importNachaPassThrough
      x-apiture-api: bankingPayments
      x-apiture-group: paymentBatchActions
      tags:
        - Payment Batch Actions
      parameters:
        - $ref: '#/components/parameters/dryRunQueryParam'
        - name: allowDuplicates
          description: If `true`, do not fail if the NACHA file matches an existing NACHA pass-through; the new NACHA pass-through batch has a `duplicateNachaFile` problem type in its `problems` array. If `false` or omitted, an attempt to create a duplicate fails with a 422 response.
          in: query
          schema:
            type: boolean
      requestBody:
        required: true
        description: The data necessary to create a new NACHA pass-through payment batch.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/nachaImport'
      responses:
        '201':
          description: |-
            Created. The system created a new payment batch for this NACHA pass-through file.

            The problems listed below may appear in imported NACHA pass-through instances which failed validation; the `state` of the payment is set to `failed`. `duplicateNachaFile` is a warning, not a failure.

            This response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/duplicateNachaFile/v1.0.0`](https://static.api.apiture.com/errors/duplicateNachaFile/v1.0.0)<br>
              There is already another NACHA pass-through file with the same content.
              Remediation: Do not upload previously uploaded NACHA files, or have the bank customer confirm the duplicate is intentional and retry with `?allowDuplicates=true`.

            * [`https://static.api.apiture.com/errors/balancedNachaAchFileNotAllowed/v1.0.0`](https://static.api.apiture.com/errors/balancedNachaAchFileNotAllowed/v1.0.0)<br>
              The user attempted to upload a balanced NACHA file but is only allowed to upload unbalanced files.
              Remediation: Upload only unbalanced NACHA files.

            * [`https://static.api.apiture.com/errors/exceedsEffectiveDateLimits/v1.0.0`](https://static.api.apiture.com/errors/exceedsEffectiveDateLimits/v1.0.0)<br>
              The time span between the earliest and latest effective dates exceeds the limit.
              Remediation: Submit a NACHA file whose effective date range is within the financial institution's limit.

            * [`https://static.api.apiture.com/errors/exceedsLimits/v1.0.0`](https://static.api.apiture.com/errors/exceedsLimits/v1.0.0)<br>
              The payment total exceeds the allowed limits.
              Remediation: Check for and remove excessive payments, or split the payment batch into multiple batches.

            * [`https://static.api.apiture.com/errors/exceedsRisks/v1.0.0`](https://static.api.apiture.com/errors/exceedsRisks/v1.0.0)<br>
              The payment batch exceeds the risk limits.
              Remediation: Address the risk limit.

            * [`https://static.api.apiture.com/errors/invalidCompanyId/v1.0.0`](https://static.api.apiture.com/errors/invalidCompanyId/v1.0.0)<br>
              Company ID contains invalid characters or is blank.
              Remediation: Remove invalid characters from company ID.

            * [`https://static.api.apiture.com/errors/invalidCompanyName/v1.0.0`](https://static.api.apiture.com/errors/invalidCompanyName/v1.0.0)<br>
              Company name contains invalid characters or is blank.
              Remediation: Remove invalid characters from company name.

            * [`https://static.api.apiture.com/errors/invalidInstructions/v1.0.0`](https://static.api.apiture.com/errors/invalidInstructions/v1.0.0)<br>
              One or more payment instructions have problems.
              Remediation: Address the problems in the individual payment instructions.

            * [`https://static.api.apiture.com/errors/invalidNachaAchFile/v1.0.0`](https://static.api.apiture.com/errors/invalidNachaAchFile/v1.0.0)<br>
              The supplied NACHA ACH file contents is invalid.
              Remediation: Send a properly formatted and [Base64-encoded](https://en.wikipedia.org/wiki/Base64) [NACHA ACH file](https://achdevguide.nacha.org/ach-file-overview).

            * [`https://static.api.apiture.com/errors/invalidSettlementAccount/v1.0.0`](https://static.api.apiture.com/errors/invalidSettlementAccount/v1.0.0)<br>
              The chosen settlement account does not exist, is not accessible, or is not entitled for the chosen money movement direction.
              Remediation: Choose an available account that supports debit or credits that match the batch's money movement direction.

            * [`https://static.api.apiture.com/errors/noSuchPaymentBatchCompany/v1.0.0`](https://static.api.apiture.com/errors/noSuchPaymentBatchCompany/v1.0.0)<br>
              No such company was found or accessible for the given company `id` and `type`.
              Remediation: Supply the correct company `id` and `type` that the user is entitled to use for payment batches.

            * [`https://static.api.apiture.com/errors/pastCutoffTime/v1.0.0`](https://static.api.apiture.com/errors/pastCutoffTime/v1.0.0)<br>
              The cutoff time for payment processing has passed.
              Remediation: Update the scheduled date for a future date.

            * [`https://static.api.apiture.com/errors/unbalancedNachaAchFileNotAllowed/v1.0.0`](https://static.api.apiture.com/errors/unbalancedNachaAchFileNotAllowed/v1.0.0)<br>
              The user attempted to upload an unbalanced NACHA file but is only allowed to upload balanced files.
              Remediation: Upload only balanced NACHA files.

            * [`https://static.api.apiture.com/errors/unprivilegedAchOperation/v1.0.0`](https://static.api.apiture.com/errors/unprivilegedAchOperation/v1.0.0)<br>
              Responsible customer does not have ACH privilege(s) over customer.
              Remediation: Give the customer privileges, or let a customer with the correct privileges perform the operation.
            The `attributes` object in the error may have the properties defined for [`unprivilegedAchOperation`](https://static.api.apiture.com/errors/unprivilegedAchOperation/v1.0.0).
            * [`https://static.api.apiture.com/errors/unsupportedSecCode/v1.0.0`](https://static.api.apiture.com/errors/unsupportedSecCode/v1.0.0)<br>
              The SEC code is not supported.
              Remediation: Use a supported SEC code.
            The `attributes` object in the error may have the properties defined for [`unsupportedSecCode`](https://static.api.apiture.com/errors/unsupportedSecCode/v1.0.0).
          x-apiture-errors:
            - duplicateNachaFile
            - balancedNachaAchFileNotAllowed
            - exceedsEffectiveDateLimits
            - exceedsLimits
            - exceedsRisks
            - invalidCompanyId
            - invalidCompanyName
            - invalidInstructions
            - invalidNachaAchFile
            - invalidSettlementAccount
            - noSuchPaymentBatchCompany
            - pastCutoffTime
            - unbalancedNachaAchFileNotAllowed
            - unprivilegedAchOperation
            - unsupportedSecCode
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentBatch'
        '204':
          description: No Content. No problems were detected with the `?dryRun=true` request.
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/duplicateNachaFile/v1.0.0`](https://static.api.apiture.com/errors/duplicateNachaFile/v1.0.0)<br>
              There is already another NACHA pass-through file with the same content.
              Remediation: Do not upload previously uploaded NACHA files, or have the bank customer confirm the duplicate is intentional and retry with `?allowDuplicates=true`.
          x-apiture-errors:
            - duplicateNachaFile
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
              example:
                id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
                type: https://static.api.apiture.com/errors/invalidSettlementAccount/v1.0.0
                title: Unprocessable Entity
                status: 422
                occurredAt: '2022-04-25T12:42:21.375Z'
                detail: The settlement account does not exist or is not eligible for this payment
                instance: https://static.api.apiture.com/banking/payments/bb709151-575041fcd617
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
              example:
                id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
                type: https://static.api.apiture.com/errors/invalidSettlementAccount/v1.0.0
                title: Unprocessable Entity
                status: 422
                occurredAt: '2022-04-25T12:42:21.375Z'
                detail: The settlement account does not exist or is not eligible for this payment
                instance: https://static.api.apiture.com/banking/payments/bb709151-575041fcd617
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - moneyMovement/write
      x-apiture-permission: importNachaPassThrough
  /paymentBatches:
    get:
      summary: Return a collection of payment batches
      description: 'Return a [paginated](https://developer.apiture.com/docs/concepts/pagination) collection of payment batches. This collection list operation includes pending, scheduled, and processed payment batches. Filter by the `state` of the batches if you want just `pending` or just `processed` (historical) batches. The result is ordered by default in reverse chronological order based on the scheduled date, `scheduledOn`.<br>**Warning**: The operation `listPaymentBatches` was deprecated on version `v0.104.0` of the API. Use [`listBusinessAchBatches`](#op-listBusinessAchBatches), [`listBusinessNachaPassThroughFiles`](#op-listBusinessNachaPassThroughFiles), or [`listBusinessWireTransfers`](#op-listBusinessWireTransfers) operations instead. `listPaymentBatches` will be removed on version `v0.156.0` of the API.'
      x-apiture-deprecated:
        since: 0.104.0
        removeOn: 0.156.0
        replacement: '[`listBusinessAchBatches`](#op-listBusinessAchBatches), [`listBusinessNachaPassThroughFiles`](#op-listBusinessNachaPassThroughFiles), or [`listBusinessWireTransfers`](#op-listBusinessWireTransfers) operations'
      operationId: listPaymentBatches
      x-apiture-api: bankingPayments
      x-apiture-group: paymentBatches
      tags:
        - Payment Batches
      parameters:
        - name: state
          description: Return only payment batches whose state matches one of the items in this pipe-separated list.
          in: query
          schema:
            type: array
            minItems: 1
            maxItems: 10
            uniqueItems: true
            items:
              $ref: '#/components/schemas/paymentBatchState'
          style: pipeDelimited
          explode: false
        - name: type
          description: Return only payment batches whose type matches this value.
          in: query
          schema:
            type: array
            minItems: 1
            x-apiture-note: maxItems 2 is the number of enum items in paymentBatchType
            maxItems: 2
            uniqueItems: true
            items:
              $ref: '#/components/schemas/paymentBatchType'
          style: pipeDelimited
          explode: false
        - name: name
          description: Return payment batches whose `name` contains this substring (of at least two characters), ignoring case.
          in: query
          schema:
            type: string
            format: text
            minLength: 2
            maxLength: 10
        - name: accountId
          description: Return only payment batches whose `settlementAccount.id` matches this value. Note that this is unrelated to the account number or masked account number.
          in: query
          schema:
            $ref: '#/components/schemas/resourceId'
        - name: effectiveOn
          description: 'Return only payment batches whose `effectiveOn` date is in the given date range, and/or which are unscheduled. Date ranges use [range notation](https://dx.apiture.com/docs/api/concepts/collection-filtering/#range-filters). Examples: <ul> <li> `[2022-05-01,2022-05-31]` between May 1 and 31, 2022, inclusive</li> <li> `[2022-05-01,2022-05-31]|unscheduled` between May 1 and 31, 2022, inclusive, or unscheduled</li> <li> `[2022-05-01,2022-06-01)` on or after May 1, but _before_ June 1 (in May, 2022)</li> <li> `[2022-05-19,]` on or after May 19, 2022</li> <li> `(2022-05-19,)|unscheduled` after May 19, 2022, or unscheduled</li> <li> `[,2022-05-19]` on or before May 19, 2022</li> <li> `2022-05-19`</li> match only payments made on May 19, 2022. <li> `unscheduled` match only payments that are still unscheduled</li> </ul> The bracketed range options (excluding simple `YYYY-MM-DD` single date values) may include the `|unscheduled` suffix. This notation matches payments batches that are scheduled in the given date range _or_ which are unscheduled.'
          in: query
          schema:
            $ref: '#/components/schemas/dateRangeOrUnscheduled'
        - name: scheduledOn
          description: Return only payment batches whose `scheduledOn` date is in the given date range and/or which are unscheduled. Date ranges use [range notation](https://dx.apiture.com/docs/api/concepts/collection-filtering/#range-filters). The query parameter expression notation is the same as the `effectiveOn` query parameter above.
          in: query
          schema:
            $ref: '#/components/schemas/dateRangeOrUnscheduled'
        - name: customerId
          description: Filter batches based on the banking customer ID. This is a business customer for business payment batches.
          in: query
          schema:
            $ref: '#/components/schemas/readOnlyResourceId'
        - name: companyId
          in: query
          description: Return only payment batches where the `company.id` value matches this value.
          schema:
            type: string
            maxLength: 32
            format: text
        - name: trackingNumber
          in: query
          description: Return only payment batches whose `trackingNumber` contains this substring.
          schema:
            type: string
            pattern: ^[0-9]+$
            minLength: 2
            maxLength: 9
        - name: confidential
          in: query
          description: Return only payment batches which are confidential.
          schema:
            type: boolean
        - name: sameDay
          in: query
          description: Return only same-day ACH payment batches (those where `sameDay` is true.)
          schema:
            type: boolean
        - name: approvable
          description: Return only payment batches that the current authenticated user may approve but have not yet approved.
          in: query
          schema:
            type: boolean
        - name: instructionName
          description: Return only payment batches where any payment instruction's payment contact `name` contains this substring of at least two characters, ignoring case.
          in: query
          schema:
            type: string
            format: text
            minLength: 2
            maxLength: 22
        - name: uploadedOn
          description: 'Return only payment batches which were uploaded/created within the given date range. Date ranges use [range notation](https://dx.apiture.com/docs/api/concepts/collection-filtering/#range-filters). Examples: <ul> <li> `[2023-05-01,2023-05-31]` between May 1 and 31, 2023, inclusive</li> <li> `[2023-05-01,2023-06-01)` on or after May 1, but _before_ June 1 (in May, 2023)</li> <li> `[2023-05-19,]` on or after May 19, 2023</li> <li> `[,2023-05-19]` on or before May 19, 2023</li> <li> `2023-05-19`</li> uploaded on May 19, 2023. </ul>'
          in: query
          schema:
            $ref: '#/components/schemas/dateRange'
        - name: creditTotal
          description: 'Return only payment batches whose `creditTotal` amount is in this range. Amount ranges use [range notation](https://dx.apiture.com/docs/api/concepts/collection-filtering/#range-filters). The value may have the following forms: <ul> <li>`1200.50` match the dollar amount 1,200.50 exactly</li> <li>`[1000.00,1200.00)` matches items where `1000.00 <= amount < 1200.00`</li> <li>`[1000.00,1199.99]` matches items where `1000.00 <= amount <= 1199.99`</li> <li>`(999.99,1200.00)` matches items where `999.99 < amount < 1200.00`</li> <li>`[1200.50,]` matches items where `amount >= 1200.50`</li> <li>`(1200.50,)` matches items where `amount > 1200.50`</li> <li>`[,1200.50]` matches items where `amount <= 1200.50`</li> <li>`(,1200.50)` matches items where `amount < 1200.50`</li> </ul>'
          in: query
          schema:
            $ref: '#/components/schemas/amountRange'
        - name: debitTotal
          description: Return only payment batches whose `debitTotal` amount is in this range. Amount ranges use [range notation](https://dx.apiture.com/docs/api/concepts/collection-filtering/#range-filters). The value may have the same range notation format as the `creditTotal` parameter.
          in: query
          schema:
            $ref: '#/components/schemas/amountRange'
        - name: totalAmount
          description: Return only payment batches whose `debitTotal` or `creditTotal` amount is in this range. Amount ranges use [range notation](https://dx.apiture.com/docs/api/concepts/collection-filtering/#range-filters). The value may have the same range notation format as the `creditTotal` parameter.
          in: query
          schema:
            $ref: '#/components/schemas/amountRange'
        - name: sortBy
          description: The sort order for the items in the response. Use `?sortBy=scheduledOn` or `?sortBy=-scheduledOn` to sort by ascending or descending order of the [payment's `schedule.scheduledOn` date](#schema-paymentBatchSchedule). For NACHA pass-through payment batches, use `?sortBy=uploadedOn` or `?sortBy=-uploadedOn` to sort by ascending or descending order of [the NACHA file's `nachaPassThrough.uploadedAt` date](#schema-nachaPassThroughPaymentBatch).
          in: query
          style: form
          explode: false
          schema:
            type: array
            uniqueItems: true
            $comment: Defined as an array so we can pass multiple sort keys in the future.
            maxItems: 1
            minItems: 1
            items:
              description: The sort key defining which value to sort by. A `-` prefix means descending.
              type: string
              pattern: ^-?(scheduleOn|uploadedOn)
              minLength: 10
              maxLength: 11
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentBatches'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |-
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0`](https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0)<br>
              One or more payment batch IDs are invalid or do not refer to an existing payment batch.
              Remediation: Specify the ID of a payment batch for the operation that the user requested.
            The `attributes` object in the error may have the properties defined for [`invalidPaymentBatchIds`](https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0).
          x-apiture-errors:
            - invalidPaymentBatchIds
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listPaymentBatches
      deprecated: true
    post:
      summary: Create a new payment batch
      description: |-
        Create a new payment batch within the payment batches collection.

        This operation can be performed as a dry run, which invokes request validation without a resource creation. Performing a dry run is only valid for payment batches with a `type` of `wireTransfer`.

        A dry run returns the same 4xx responses as the normal invocation when the request encounters any validation errors, but returns a response of 204 (No Content) if the request is valid.
      operationId: createPaymentBatch
      x-apiture-api: bankingPayments
      x-apiture-group: paymentBatches
      tags:
        - Payment Batches
      parameters:
        - $ref: '#/components/parameters/dryRunQueryParam'
      requestBody:
        required: true
        description: The data necessary to create a new payment batch.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/newPaymentBatch'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentBatch'
          headers:
            Location:
              description: The URI of the new payment batch.
              schema:
                type: string
                format: uri-reference
                maxLength: 128
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidSettlementAccount/v1.0.0`](https://static.api.apiture.com/errors/invalidSettlementAccount/v1.0.0)<br>
              The chosen settlement account does not exist, is not accessible, or is not entitled for the chosen money movement direction.
              Remediation: Choose an available account that supports debit or credits that match the batch's money movement direction.

            * [`https://static.api.apiture.com/errors/invalidAchPaymentBatchDetails/v1.0.0`](https://static.api.apiture.com/errors/invalidAchPaymentBatchDetails/v1.0.0)<br>
              The batch type was `ach` but the request did not include the `ach` property.
              Remediation: Include a valid `ach` object in the new payment batch request.

            * [`https://static.api.apiture.com/errors/noSuchPaymentBatchCompany/v1.0.0`](https://static.api.apiture.com/errors/noSuchPaymentBatchCompany/v1.0.0)<br>
              No such company was found or accessible for the given company `id` and `type`.
              Remediation: Supply the correct company `id` and `type` that the user is entitled to use for payment batches.

            * [`https://static.api.apiture.com/errors/invalidDirectionForWireTransfer/v1.0.0`](https://static.api.apiture.com/errors/invalidDirectionForWireTransfer/v1.0.0)<br>
              If a payment batch is a wire transfer, the `direction` must be `credit`.
              Remediation: Set the `direction` to `credit` in the request.

            * [`https://static.api.apiture.com/errors/invalidLocatorTypeForInstitution/v1.0.0`](https://static.api.apiture.com/errors/invalidLocatorTypeForInstitution/v1.0.0)<br>
              The provided `locatorType` is invalid for the institution.
              Remediation: Pass a valid locator type.
            The `attributes` object in the error may have the properties defined for [`invalidLocatorTypeForInstitution`](https://static.api.apiture.com/errors/invalidLocatorTypeForInstitution/v1.0.0).
            * [`https://static.api.apiture.com/errors/noSuchPaymentBatchCustomerId/v1.0.0`](https://static.api.apiture.com/errors/noSuchPaymentBatchCustomerId/v1.0.0)<br>
              No such customer was found or accessible for the given `customerId`.
              Remediation: Supply the resource ID (not username/access ID) of a valid customer in the `customerId` property.

            * [`https://static.api.apiture.com/errors/propertiesLockedInWireTransferTemplate/v1.0.0`](https://static.api.apiture.com/errors/propertiesLockedInWireTransferTemplate/v1.0.0)<br>
              One of more properties have been locked for modification in the template.
              Remediation: Unlock the properties in the template to modify them in this payment batch.
            The `attributes` object in the error may have the properties defined for [`propertiesLockedInWireTransferTemplate`](https://static.api.apiture.com/errors/propertiesLockedInWireTransferTemplate/v1.0.0).
            * [`https://static.api.apiture.com/errors/propertiesLockedInAchTemplate/v1.0.0`](https://static.api.apiture.com/errors/propertiesLockedInAchTemplate/v1.0.0)<br>
              One of more properties have been locked for modification in the template.
              Remediation: Unlock the properties in the template to modify them in this payment batch.
            The `attributes` object in the error may have the properties defined for [`propertiesLockedInAchTemplate`](https://static.api.apiture.com/errors/propertiesLockedInAchTemplate/v1.0.0).
            * [`https://static.api.apiture.com/errors/invalidDisclosureForWireTransfer/v1.0.0`](https://static.api.apiture.com/errors/invalidDisclosureForWireTransfer/v1.0.0)<br>
              One or more disclosures for this wire transfer are invalid.
              Remediation: Use disclosures allowed by this wire transfer.

            * [`https://static.api.apiture.com/errors/missingRequiredDisclosureForWireTransfer/v1.0.0`](https://static.api.apiture.com/errors/missingRequiredDisclosureForWireTransfer/v1.0.0)<br>
              The wire transfer requires a disclosure acknowledgement.
              Remediation: Include the required disclosure when submitting this wire transfer.

            * [`https://static.api.apiture.com/errors/noSuchContact/v1.0.0`](https://static.api.apiture.com/errors/noSuchContact/v1.0.0)<br>
              There is no such contact resource for the given `contactId`.
              Remediation: Pass a valid contact ID or omit the `contactId` from the request.

            * [`https://static.api.apiture.com/errors/noSuchConfidentialCustomer/v1.0.0`](https://static.api.apiture.com/errors/noSuchConfidentialCustomer/v1.0.0)<br>
              There is no such customer for the given `confidentialCustomers[i].id`.
              Remediation: Pass a valid customer ID.

            * [`https://static.api.apiture.com/errors/noSuchPaymentMethod/v1.0.0`](https://static.api.apiture.com/errors/noSuchPaymentMethod/v1.0.0)<br>
              There is no such contact resource for the given `paymentMethodId`.
              Remediation: Pass a valid payment method ID or omit the `paymentMethodId` from the request.

            * [`https://static.api.apiture.com/errors/invalidInstructionForBatch/v1.0.0`](https://static.api.apiture.com/errors/invalidInstructionForBatch/v1.0.0)<br>
              The payment instruction `type` does not match the payment batch `type`.
              Remediation: Add only matching instructions to a patch (i.e. `ach` instructions to an `ach` batch, `wireTransfer` instructions to a `wireTransfer` batch).

            * [`https://static.api.apiture.com/errors/invalidScheduledDate/v1.0.0`](https://static.api.apiture.com/errors/invalidScheduledDate/v1.0.0)<br>
              The payment scheduled start date for this payment batch is invalid.
              Remediation: Set a different scheduled date.
            The `attributes` object in the error may have the properties defined for [`invalidScheduledDate`](https://static.api.apiture.com/errors/invalidScheduledDate/v1.0.0).
            * [`https://static.api.apiture.com/errors/dryRunUnavailable/v1.0.0`](https://static.api.apiture.com/errors/dryRunUnavailable/v1.0.0)<br>
              A dry run cannot be performed for the operation with the given configuration.
              Remediation: Use a different configuration and try again.

            * [`https://static.api.apiture.com/errors/exceedsLimits/v1.0.0`](https://static.api.apiture.com/errors/exceedsLimits/v1.0.0)<br>
              The payment total exceeds the allowed limits.
              Remediation: Check for and remove excessive payments, or split the payment batch into multiple batches.

            * [`https://static.api.apiture.com/errors/invalidWireTransfer/v1.0.0`](https://static.api.apiture.com/errors/invalidWireTransfer/v1.0.0)<br>
              Requested properties are invalid for creating a wire transfer.
              Remediation: Update the request to be a valid configuration.

            * [`https://static.api.apiture.com/errors/invalidAcceptedCurrencyQuote/v1.0.0`](https://static.api.apiture.com/errors/invalidAcceptedCurrencyQuote/v1.0.0)<br>
              The provided currency quote is invalid.
              Remediation: Use a valid accepted currency quote.

            * [`https://static.api.apiture.com/errors/nonMatchingSettlementAccount/v1.0.0`](https://static.api.apiture.com/errors/nonMatchingSettlementAccount/v1.0.0)<br>
              For international wire transfer payment batches involving a currency conversion, the settlement account must match the account in the currency quote or be derived from the currency quote.
              Remediation: Use a matching settlement account or use the derived account, then retry the request.
          x-apiture-errors:
            - invalidSettlementAccount
            - invalidAchPaymentBatchDetails
            - noSuchPaymentBatchCompany
            - invalidDirectionForWireTransfer
            - invalidLocatorTypeForInstitution
            - noSuchPaymentBatchCustomerId
            - propertiesLockedInWireTransferTemplate
            - propertiesLockedInAchTemplate
            - invalidDisclosureForWireTransfer
            - missingRequiredDisclosureForWireTransfer
            - noSuchContact
            - noSuchConfidentialCustomer
            - noSuchPaymentMethod
            - invalidInstructionForBatch
            - invalidScheduledDate
            - dryRunUnavailable
            - exceedsLimits
            - invalidWireTransfer
            - invalidAcceptedCurrencyQuote
            - nonMatchingSettlementAccount
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
              example:
                id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
                type: https://static.api.apiture.com/errors/invalidSettlementAccount/v1.0.0
                title: Unprocessable Entity
                status: 422
                occurredAt: '2022-04-25T12:42:21.375Z'
                detail: The settlement account does not exist or is not eligible for this payment
                instance: https://static.api.apiture.com/banking/payments/bb709151-575041fcd617
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
              example:
                id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
                type: https://static.api.apiture.com/errors/invalidSettlementAccount/v1.0.0
                title: Unprocessable Entity
                status: 422
                occurredAt: '2022-04-25T12:42:21.375Z'
                detail: The settlement account does not exist or is not eligible for this payment
                instance: https://static.api.apiture.com/banking/payments/bb709151-575041fcd617
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - moneyMovement/write
      x-apiture-permission: createPaymentBatch
  /businessAchBatches:
    get:
      summary: Return a collection of business ACH batch transfers
      description: Return a [paginated](https://developer.apiture.com/docs/concepts/pagination) collection of business ACH batch transfers. This collection list operation includes pending, scheduled, and processed payment batches. Filter by the `state` of the batches if you want just `pending` or just `processed` (historical) batches. The result is ordered by default in reverse chronological order based on the scheduled date (`scheduledOn`) of the ACH batches.
      operationId: listBusinessAchBatches
      x-apiture-api: bankingPayments
      x-apiture-group: businessAchBatches
      tags:
        - Business Transfers
      parameters:
        - $ref: '#/components/parameters/businessTransferStateQueryParam'
        - $ref: '#/components/parameters/businessTransferNameQueryParam'
        - $ref: '#/components/parameters/businessTransferAccountIdQueryParam'
        - $ref: '#/components/parameters/businessTransferEffectiveOnQueryParam'
        - $ref: '#/components/parameters/businessTransferScheduledOnQueryParam'
        - $ref: '#/components/parameters/businessTransferCustomerIdPathParam'
        - $ref: '#/components/parameters/businessTransferCompanyIdQueryParam'
        - $ref: '#/components/parameters/businessTransferTrackingNumberQueryParam'
        - $ref: '#/components/parameters/businessTransferCreditTotalQueryParam'
        - name: sameDay
          in: query
          description: Return only same-day ACH payment batches (those where `sameDay` is true.)
          schema:
            type: boolean
        - $ref: '#/components/parameters/businessTransferApprovableQueryParam'
        - name: instructionName
          description: Return only ACH batches where any payment instruction's payment contact `name` contains this substring of at least two characters, ignoring case.
          in: query
          schema:
            type: string
            format: text
            minLength: 2
            maxLength: 22
        - $ref: '#/components/parameters/businessTransferDebitTotalQueryParam'
        - $ref: '#/components/parameters/businessTransferTotalAmountQueryParam'
        - $ref: '#/components/parameters/businessTransferConfidentialQueryParam'
        - name: sortBy
          description: The sort order for the items in the response. Use `?sortBy=scheduledOn` or `?sortBy=-scheduledOn` to sort by ascending or descending order of the [ACH batch's `schedule.scheduledOn` date](#schema-paymentBatchSchedule). The default is `-scheduledOn`.
          in: query
          style: form
          explode: false
          schema:
            type: array
            uniqueItems: true
            $comment: Defined as an array so we can pass multiple sort keys in the future.
            maxItems: 1
            minItems: 1
            items:
              description: The sort key defining which value to sort by. A `-` prefix means descending.
              type: string
              pattern: ^-?scheduleOn
              minLength: 10
              maxLength: 11
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/businessAchBatches'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |-
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0`](https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0)<br>
              One or more payment batch IDs are invalid or do not refer to an existing payment batch.
              Remediation: Specify the ID of a payment batch for the operation that the user requested.
            The `attributes` object in the error may have the properties defined for [`invalidPaymentBatchIds`](https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0).
          x-apiture-errors:
            - invalidPaymentBatchIds
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listBusinessAchBatches
  /businessNachaPassThroughFiles:
    get:
      summary: Return a collection of payment batches
      description: Return a [paginated](https://developer.apiture.com/docs/concepts/pagination) collection of NACHA pass through files. This collection list operation includes pending, scheduled, and processed NACHA files. Filter by the `state` of the files if you want just `pending` or just `processed` (historical) requests.
      operationId: listBusinessNachaPassThroughFiles
      x-apiture-api: bankingPayments
      x-apiture-group: businessNachaPassThroughFiles
      tags:
        - Business Transfers
      parameters:
        - $ref: '#/components/parameters/businessTransferStateQueryParam'
        - $ref: '#/components/parameters/businessTransferNameQueryParam'
        - $ref: '#/components/parameters/businessTransferEffectiveOnQueryParam'
        - $ref: '#/components/parameters/businessTransferScheduledOnQueryParam'
        - $ref: '#/components/parameters/businessTransferCustomerIdPathParam'
        - $ref: '#/components/parameters/businessTransferCompanyIdQueryParam'
        - $ref: '#/components/parameters/businessTransferTrackingNumberQueryParam'
        - $ref: '#/components/parameters/businessTransferConfidentialQueryParam'
        - $ref: '#/components/parameters/businessTransferApprovableQueryParam'
        - name: uploadedOn
          description: 'Return only NACHA pass-through payment batches which were uploaded/created within the given date range. Date ranges use [range notation](https://dx.apiture.com/docs/api/concepts/collection-filtering/#range-filters). Examples: <ul> <li> `[2023-05-01,2023-05-31]` between May 1 and 31, 2023, inclusive</li> <li> `[2023-05-01,2023-06-01)` on or after May 1, but _before_ June 1 (in May, 2023)</li> <li> `[2023-05-19,]` on or after May 19, 2023</li> <li> `[,2023-05-19]` on or before May 19, 2023</li> <li> `2023-05-19`</li> uploaded on May 19, 2023. </ul>'
          in: query
          schema:
            $ref: '#/components/schemas/dateRange'
        - $ref: '#/components/parameters/businessTransferCreditTotalQueryParam'
        - $ref: '#/components/parameters/businessTransferDebitTotalQueryParam'
        - $ref: '#/components/parameters/businessTransferTotalAmountQueryParam'
        - name: sortBy
          description: The sort order for the items in the response. Use `?sortBy=uploadedAt` or `?sortBy=-uploadedAt` to sort by ascending or descending for the [NACHA pass-through file's `nachaPassThrough.uploadedAt` date/time](#schema-businessNachaPassThroughFileItem). The default is `-uploadedAt`.
          in: query
          style: form
          explode: false
          schema:
            type: array
            uniqueItems: true
            $comment: Defined as an array so we can pass multiple sort keys in the future.
            maxItems: 1
            minItems: 1
            items:
              description: The sort key defining which value to sort by. A `-` prefix means descending.
              type: string
              pattern: ^-?uploadedAt
              minLength: 10
              maxLength: 11
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/businessNachaPassThroughFiles'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |-
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0`](https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0)<br>
              One or more payment batch IDs are invalid or do not refer to an existing payment batch.
              Remediation: Specify the ID of a payment batch for the operation that the user requested.
            The `attributes` object in the error may have the properties defined for [`invalidPaymentBatchIds`](https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0).
          x-apiture-errors:
            - invalidPaymentBatchIds
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listBusinessNachaPassThroughFiles
  /businessWireTransfers:
    get:
      summary: Return a collection of business wire transfers
      description: Return a [paginated](https://developer.apiture.com/docs/concepts/pagination) collection of business wire transfers. This collection list operation includes pending, scheduled, and processed business wire transfers. Filter by the `state` of the batches if you want just `pending` or just `processed` (historical) business wire transfers.
      operationId: listBusinessWireTransfers
      x-apiture-api: bankingPayments
      x-apiture-group: businessWireTransfers
      tags:
        - Business Transfers
      parameters:
        - $ref: '#/components/parameters/businessTransferStateQueryParam'
        - $ref: '#/components/parameters/businessTransferAccountIdQueryParam'
        - $ref: '#/components/parameters/businessTransferEffectiveOnQueryParam'
        - $ref: '#/components/parameters/businessTransferScheduledOnQueryParam'
        - $ref: '#/components/parameters/businessTransferCustomerIdPathParam'
        - $ref: '#/components/parameters/businessTransferTrackingNumberQueryParam'
        - $ref: '#/components/parameters/businessTransferApprovableQueryParam'
        - name: template
          description: Return only business wire transfers created by a template whose ID or name contains this substring of at least two characters, ignoring case.
          in: query
          schema:
            type: string
            format: text
            minLength: 2
            maxLength: 50
        - name: instructionName
          description: Return only business wire transfers where the wire recipient payment instruction `name` contains this substring of at least two characters, ignoring case.
          in: query
          schema:
            type: string
            format: text
            minLength: 2
            maxLength: 22
        - name: amount
          description: 'Return only business wire transfers whose amount is in this range. Amount ranges use [range notation](https://dx.apiture.com/docs/api/concepts/collection-filtering/#range-filters). The value may have the following forms: <ul> <li>`1200.50` match the dollar amount 1,200.50 exactly</li> <li>`[1000.00,1200.00)` matches items where `1000.00 <= amount < 1200.00`</li> <li>`[1000.00,1199.99]` matches items where `1000.00 <= amount <= 1199.99`</li> <li>`(999.99,1200.00)` matches items where `999.99 < amount < 1200.00`</li> <li>`[1200.50,]` matches items where `amount >= 1200.50`</li> <li>`(1200.50,)` matches items where `amount > 1200.50`</li> <li>`[,1200.50]` matches items where `amount <= 1200.50`</li> <li>`(,1200.50)` matches items where `amount < 1200.50`</li> </ul>'
          in: query
          schema:
            $ref: '#/components/schemas/amountRange'
        - name: sortBy
          description: The sort order for the items in the response. Use `?sortBy=scheduledOn` or `?sortBy=-scheduledOn` to sort by ascending or descending order of the [wire transfer's `schedule.scheduledOn` date](#schema-paymentBatchSchedule). The default is `-scheduledOn`.
          in: query
          style: form
          explode: false
          schema:
            type: array
            uniqueItems: true
            $comment: Defined as an array so we can pass multiple sort keys in the future.
            maxItems: 1
            minItems: 1
            items:
              description: The sort key defining which value to sort by. A `-` prefix means descending.
              type: string
              pattern: ^-?scheduleOn
              minLength: 10
              maxLength: 11
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/businessWireTransfers'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |-
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0`](https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0)<br>
              One or more payment batch IDs are invalid or do not refer to an existing payment batch.
              Remediation: Specify the ID of a payment batch for the operation that the user requested.
            The `attributes` object in the error may have the properties defined for [`invalidPaymentBatchIds`](https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0).
          x-apiture-errors:
            - invalidPaymentBatchIds
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listBusinessWireTransfers
  /paymentBatches/{paymentBatchId}:
    parameters:
      - $ref: '#/components/parameters/paymentBatchIdPathParam'
    get:
      summary: Fetch a representation of this payment batch
      description: Return the JSON representation of this payment batch resource.
      operationId: getPaymentBatch
      x-apiture-api: bankingPayments
      x-apiture-group: paymentBatches
      tags:
        - Payment Batches
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentBatch'
        '304':
          $ref: '#/components/responses/304'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentBatch'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: getPaymentBatch
    patch:
      summary: Update this payment batch
      description: |-
        Perform a partial update of this payment batch as per [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396). Only fields in the request body are updated on the resource; fields which are omitted are not updated.

        This operation can be performed as a dry run, which invokes request validation without a state change.

        A dry run returns the same 4xx responses as the normal invocation when the request encounters any validation errors, but returns a response of 204 (No Content) if the request is valid.
      operationId: patchPaymentBatch
      x-apiture-api: bankingPayments
      x-apiture-group: paymentBatches
      parameters:
        - $ref: '#/components/parameters/dryRunQueryParam'
      tags:
        - Payment Batches
      requestBody:
        required: true
        description: The new payment batch.
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/paymentBatchPatch'
          application/json:
            schema:
              $ref: '#/components/schemas/paymentBatchPatch'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentBatch'
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentBatch'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidSettlementAccount/v1.0.0`](https://static.api.apiture.com/errors/invalidSettlementAccount/v1.0.0)<br>
              The chosen settlement account does not exist, is not accessible, or is not entitled for the chosen money movement direction.
              Remediation: Choose an available account that supports debit or credits that match the batch's money movement direction.

            * [`https://static.api.apiture.com/errors/noSuchPaymentBatchCompany/v1.0.0`](https://static.api.apiture.com/errors/noSuchPaymentBatchCompany/v1.0.0)<br>
              No such company was found or accessible for the given company `id` and `type`.
              Remediation: Supply the correct company `id` and `type` that the user is entitled to use for payment batches.

            * [`https://static.api.apiture.com/errors/immutablePaymentBatchState/v1.0.0`](https://static.api.apiture.com/errors/immutablePaymentBatchState/v1.0.0)<br>
              The payment batch is not mutable.
              Remediation: To update a `scheduled` batch, unlock the batch via the `unlockPaymentBatch` operation.

            * [`https://static.api.apiture.com/errors/ambiguousOriginatorAddress/v1.0.0`](https://static.api.apiture.com/errors/ambiguousOriginatorAddress/v1.0.0)<br>
              A wire transfer originator may not have both a US and international address.
              Remediation: Set the unneeded `originator` address to `null` when patching the wire transfer payment batch.

            * [`https://static.api.apiture.com/errors/invalidScheduledDate/v1.0.0`](https://static.api.apiture.com/errors/invalidScheduledDate/v1.0.0)<br>
              The payment scheduled start date for this payment batch is invalid.
              Remediation: Set a different scheduled date.
            The `attributes` object in the error may have the properties defined for [`invalidScheduledDate`](https://static.api.apiture.com/errors/invalidScheduledDate/v1.0.0).
            * [`https://static.api.apiture.com/errors/invalidSettlementAccounts/v1.0.0`](https://static.api.apiture.com/errors/invalidSettlementAccounts/v1.0.0)<br>
              One or more of the chosen settlement accounts do not exist, is not accessible, or is not entitled for the chosen. money movement direction.
              Remediation: Choose an available account that supports debit or credits that match the batch's money movement direction.
            The `attributes` object in the error may have the properties defined for [`invalidSettlementAccounts`](https://static.api.apiture.com/errors/invalidSettlementAccounts/v1.0.0).
            * [`https://static.api.apiture.com/errors/invalidDisclosureForWireTransfer/v1.0.0`](https://static.api.apiture.com/errors/invalidDisclosureForWireTransfer/v1.0.0)<br>
              One or more disclosures for this wire transfer are invalid.
              Remediation: Use disclosures allowed by this wire transfer.

            * [`https://static.api.apiture.com/errors/missingRequiredDisclosureForWireTransfer/v1.0.0`](https://static.api.apiture.com/errors/missingRequiredDisclosureForWireTransfer/v1.0.0)<br>
              The wire transfer requires a disclosure acknowledgement.
              Remediation: Include the required disclosure when submitting this wire transfer.

            * [`https://static.api.apiture.com/errors/propertiesLockedInWireTransferTemplate/v1.0.0`](https://static.api.apiture.com/errors/propertiesLockedInWireTransferTemplate/v1.0.0)<br>
              One of more properties have been locked for modification in the template.
              Remediation: Unlock the properties in the template to modify them in this payment batch.
            The `attributes` object in the error may have the properties defined for [`propertiesLockedInWireTransferTemplate`](https://static.api.apiture.com/errors/propertiesLockedInWireTransferTemplate/v1.0.0).
            * [`https://static.api.apiture.com/errors/propertiesLockedInAchTemplate/v1.0.0`](https://static.api.apiture.com/errors/propertiesLockedInAchTemplate/v1.0.0)<br>
              One of more properties have been locked for modification in the template.
              Remediation: Unlock the properties in the template to modify them in this payment batch.
            The `attributes` object in the error may have the properties defined for [`propertiesLockedInAchTemplate`](https://static.api.apiture.com/errors/propertiesLockedInAchTemplate/v1.0.0).
            * [`https://static.api.apiture.com/errors/currencyConversionNotAllowed/v1.0.0`](https://static.api.apiture.com/errors/currencyConversionNotAllowed/v1.0.0)<br>
              Currency conversion is not allowed.
              Remediation: Create a new international wire transfer payment batch with this currency conversion quote.

            * [`https://static.api.apiture.com/errors/nonMatchingSettlementAccount/v1.0.0`](https://static.api.apiture.com/errors/nonMatchingSettlementAccount/v1.0.0)<br>
              For international wire transfer payment batches involving a currency conversion, the settlement account must match the account in the currency quote or be derived from the currency quote.
              Remediation: Use a matching settlement account or use the derived account, then retry the request.
          x-apiture-errors:
            - invalidSettlementAccount
            - noSuchPaymentBatchCompany
            - immutablePaymentBatchState
            - ambiguousOriginatorAddress
            - invalidScheduledDate
            - invalidSettlementAccounts
            - invalidDisclosureForWireTransfer
            - missingRequiredDisclosureForWireTransfer
            - propertiesLockedInWireTransferTemplate
            - propertiesLockedInAchTemplate
            - currencyConversionNotAllowed
            - nonMatchingSettlementAccount
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
              example:
                id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
                type: https://static.api.apiture.com/errors/invalidSettlementAccount/v1.0.0
                title: Unprocessable Entity
                status: 422
                occurredAt: '2022-04-25T12:42:21.375Z'
                detail: The settlement account does not exist or may not be used for this type of payment.
                instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
              example:
                id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
                type: https://static.api.apiture.com/errors/invalidSettlementAccount/v1.0.0
                title: Unprocessable Entity
                status: 422
                occurredAt: '2022-04-25T12:42:21.375Z'
                detail: The settlement account does not exist or may not be used for this type of payment.
                instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - moneyMovement/write
      x-apiture-permission: patchPaymentBatch
    delete:
      summary: Delete this payment batch resource
      description: Delete this payment batch resource. One cannot delete a scheduled batch. You must first remove approvals for the batch in order to delete it.
      operationId: deletePaymentBatch
      x-apiture-api: bankingPayments
      x-apiture-group: paymentBatches
      tags:
        - Payment Batches
      responses:
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentBatch'
        '409':
          description: |-
            Conflict. A batch that has already started processing may not be deleted.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/mustRemovePaymentBatchApprovals/v1.0.0`](https://static.api.apiture.com/errors/mustRemovePaymentBatchApprovals/v1.0.0)<br>
              The payment batch has at least one approval.
              Remediation: Remove the existing approvals.
            The `attributes` object in the error may have the properties defined for [`mustRemovePaymentBatchApprovals`](https://static.api.apiture.com/errors/mustRemovePaymentBatchApprovals/v1.0.0).
            * [`https://static.api.apiture.com/errors/invalidStateForDelete/v1.0.0`](https://static.api.apiture.com/errors/invalidStateForDelete/v1.0.0)<br>
              The payment batch cannot be deleted when in the current state.
              Remediation: The payment batch state must be one of `pending`, `pendingApprovals` or `rejected`.
            The `attributes` object in the error may have the properties defined for [`invalidStateForDelete`](https://static.api.apiture.com/errors/invalidStateForDelete/v1.0.0).
          x-apiture-errors:
            - mustRemovePaymentBatchApprovals
            - invalidStateForDelete
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: deletePaymentBatch
  /paymentBatches/{paymentBatchId}/eligibleAchAccounts:
    parameters:
      - $ref: '#/components/parameters/paymentBatchIdPathParam'
    get:
      summary: List Eligible ACH Settlement Accounts
      operationId: listEligibleAchSettlementAccounts
      x-apiture-api: bankingPayments
      x-apiture-group: accounts
      parameters:
        - $ref: '#/components/parameters/startQueryParam'
        - $ref: '#/components/parameters/limitQueryParam'
      description: Return a paginated list of a customer's accounts that are eligible for ACH transfers based on allowed privileges and the details of this payment batch.
      tags:
        - Accounts
      security:
        - accessToken:
            - banking/read
      responses:
        '200':
          description: OK. A page from the full list of the customer's ACH-eligible accounts. This list contains only accounts that the customer is entitled to access. While the `nextPage_url` property is present in the response, the client can fetch the next page of accounts by performing a `GET` on that URL.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/accounts'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422Collection'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: listEligibleAchSettlementAccounts
  /paymentBatchDeletions:
    post:
      summary: Delete payment batches
      description: Delete a set of payment batches. The 204 response indicates all batches were deleted successfully. The 200 response indicates a partial success and includes details on any failed deletions.
      operationId: deletePaymentBatches
      x-apiture-api: bankingPayments
      x-apiture-group: paymentBatches
      tags:
        - Payment Batches
      requestBody:
        required: true
        description: The data necessary to delete a set of payment batches.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bulkPaymentBatchDeletionRequest'
      responses:
        '200':
          description: |-
            OK. The request was successfully processed. However, at least one of the payment batch deletions may have failed; see the [`paymentBatchDeletions`](#schema-paymentBatchDeletions) response to see which succeeded and which failed.

            This response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0`](https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0)<br>
              One or more payment batch IDs are invalid or do not refer to an existing payment batch.
              Remediation: Specify the ID of a payment batch for the operation that the user requested.
            The `attributes` object in the error may have the properties defined for [`invalidPaymentBatchIds`](https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0).
            * [`https://static.api.apiture.com/errors/mustRemovePaymentBatchApprovals/v1.0.0`](https://static.api.apiture.com/errors/mustRemovePaymentBatchApprovals/v1.0.0)<br>
              The payment batch has at least one approval.
              Remediation: Remove the existing approvals.
            The `attributes` object in the error may have the properties defined for [`mustRemovePaymentBatchApprovals`](https://static.api.apiture.com/errors/mustRemovePaymentBatchApprovals/v1.0.0).
            * [`https://static.api.apiture.com/errors/invalidStateForDelete/v1.0.0`](https://static.api.apiture.com/errors/invalidStateForDelete/v1.0.0)<br>
              The payment batch cannot be deleted when in the current state.
              Remediation: The payment batch state must be one of `pending`, `pendingApprovals` or `rejected`.
            The `attributes` object in the error may have the properties defined for [`invalidStateForDelete`](https://static.api.apiture.com/errors/invalidStateForDelete/v1.0.0).
          x-apiture-errors:
            - invalidPaymentBatchIds
            - mustRemovePaymentBatchApprovals
            - invalidStateForDelete
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentBatchDeletions'
        '204':
          description: No Content. All batches were successfully deleted without any problems.
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - moneyMovement/write
      x-apiture-permission: deletePaymentBatches
  /paymentBatchApprovers:
    post:
      summary: Add approvers to payment batches
      description: |-
        Add approvers to a set of payment batches. This operation also notifies those approvers that they need to review/approve the batch(es). This operation is allowed even if the batch is in a `pending` state and has errors. Approvers may not actually approve the batch until all the problems are fixed.

        The request body for this operation may be derived from the response of the [`listEligiblePaymentBatchApprovers`](#op-listEligiblePaymentBatchApprovers) operation, possibly with a subset of approvers per batch based on user selection.

        The 204 response indicates the approvers were successfully added to all batches. The 200 response indicates a partial success and includes details on any failed additions, such as a batch has begun processing.
      operationId: addPaymentBatchApprovers
      x-apiture-api: bankingPayments
      x-apiture-group: paymentBatchActions
      tags:
        - Payment Batch Actions
      requestBody:
        required: true
        description: The data necessary to add the approvers of payment batches.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bulkPaymentBatchApproversRequest'
      responses:
        '200':
          description: |-
            OK. The request was successfully processed. However, adding approvers to one or more payment batches may have failed; response body indicates which succeeded and which failed.

            This response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0`](https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0)<br>
              One or more payment batch IDs are invalid or do not refer to an existing payment batch.
              Remediation: Specify the ID of a payment batch for the operation that the user requested.
            The `attributes` object in the error may have the properties defined for [`invalidPaymentBatchIds`](https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0).
            * [`https://static.api.apiture.com/errors/invalidStateForAddApprovers/v1.0.0`](https://static.api.apiture.com/errors/invalidStateForAddApprovers/v1.0.0)<br>
              The payment batch cannot have approvers added when in the current state.
              Remediation: The payment batch state must be `pendingApprovals` or remove existing approvals.
            The `attributes` object in the error may have the properties defined for [`invalidStateForAddApprovers`](https://static.api.apiture.com/errors/invalidStateForAddApprovers/v1.0.0).
            * [`https://static.api.apiture.com/errors/invalidApprover/v1.0.0`](https://static.api.apiture.com/errors/invalidApprover/v1.0.0)<br>
              The requested approver is not eligible for approving this payment batch.
              Remediation: Pass only eligible approvers from the `listPaymentBatchEligibleApprovers` operation.
            The `attributes` object in the error may have the properties defined for [`invalidApprover`](https://static.api.apiture.com/errors/invalidApprover/v1.0.0).
          x-apiture-errors:
            - invalidPaymentBatchIds
            - invalidStateForAddApprovers
            - invalidApprover
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentBatchBulkApprovers'
        '204':
          description: No Content. All approvers were successfully added to the batches without any problems.
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - moneyMovement/write
      x-apiture-permission: addPaymentBatchApprovers
  /paymentBatchExports:
    post:
      summary: Export a payment batch to a text file
      description: Export the contents of one or more payment batches either as a [NACHA ACH file](https://achdevguide.nacha.org/ach-file-overview) or as a tab-separated values (TSV) file.
      operationId: exportAchBatches
      x-apiture-api: bankingPayments
      x-apiture-group: paymentBatchActions
      tags:
        - Payment Batch Actions
      requestBody:
        required: true
        description: The data necessary to create a new payment batch.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/paymentBatchAchExportRequest'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentBatchAchExport'
        '400':
          description: Bad Request. The request body and/or query parameters were well formed but otherwise invalid.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0`](https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0)<br>
              One or more payment batch IDs are invalid or do not refer to an existing payment batch.
              Remediation: Specify the ID of a payment batch for the operation that the user requested.
            The `attributes` object in the error may have the properties defined for [`invalidPaymentBatchIds`](https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0).
            * [`https://static.api.apiture.com/errors/nonAchPaymentBatch/v1.0.0`](https://static.api.apiture.com/errors/nonAchPaymentBatch/v1.0.0)<br>
              The selected payment batch is not a `type: ach` batch.
              Remediation: Select only ACH batches when exporting payment batches.
            The `attributes` object in the error may have the properties defined for [`nonAchPaymentBatch`](https://static.api.apiture.com/errors/nonAchPaymentBatch/v1.0.0).
            * [`https://static.api.apiture.com/errors/tooManyPaymentBatchIds/v1.0.0`](https://static.api.apiture.com/errors/tooManyPaymentBatchIds/v1.0.0)<br>
              Only one payment batch is allowed when exporting a tab-separated values file.
              Remediation: Reduce the number of payment batch IDs to 1.
          x-apiture-errors:
            - invalidPaymentBatchIds
            - nonAchPaymentBatch
            - tooManyPaymentBatchIds
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: exportAchBatches
  /paymentBatches/{paymentBatchId}/copies:
    post:
      summary: Create a copy of this payment batch resource
      description: |-
        Create a copy of this payment batch resource. Copies of the payment batch resource has a status of `pending`. The copy contains a reference to the original payment batch in the `derivedFrom` object. The `paymentBatch.allows.copy` property must be `true` on the batch for the current customer.

        The following fields are reset or assigned according to the new batch state:
          - `id`
          - `schedule.scheduledOn`
          - `approvals`
          - `approvers`
          - `information`
          - `createdAt`
          - `createdBy`
          - `updatedAt`
          - `updatedBy`


        The copy operation should not be used to create a payment batch reversal. Instead, use the [reverse payment batch](#op-reversePaymentBatch) operation.
      operationId: copyPaymentBatch
      x-apiture-api: bankingPayments
      x-apiture-group: paymentBatches
      parameters:
        - $ref: '#/components/parameters/paymentBatchIdPathParam'
      tags:
        - Payment Batches
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/paymentBatchCopyRequest'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentBatch'
          headers:
            Location:
              description: The URI of the new payment resource.
              schema:
                type: string
                format: uri-reference
                maxLength: 128
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentBatch'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidPaymentBatchForCopy/v1.0.0`](https://static.api.apiture.com/errors/invalidPaymentBatchForCopy/v1.0.0)<br>
              The payment batch referenced by the `paymentBatchId` is not eligible for copying, or the customer does not have the copy permission.
              Remediation: Pass an eligible payment batch ID.
          x-apiture-errors:
            - invalidPaymentBatchForCopy
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - moneyMovement/write
      x-apiture-permission: copyPaymentBatch
  /paymentBatches/{paymentBatchId}/eligibleApprovers:
    get:
      summary: List Eligible Payment Batch Approvers
      description: 'Return a list of customers eligible to approve the batch. If the batch is marked confidential, the response includes only those who are also in the batch''s list of confidential customers.<br>**Warning**: The operation `listPaymentBatchEligibleApprovers` was deprecated on version `v0.63.0` of the API. Use the `listEligiblePaymentBatchApprovers` operation instead. `listPaymentBatchEligibleApprovers` will be removed on version `v1.0.0` of the API.'
      tags:
        - Payment Batches
      operationId: listPaymentBatchEligibleApprovers
      x-apiture-api: bankingPayments
      x-apiture-group: paymentBatches
      x-apiture-deprecated:
        since: 0.63.0
        replacement: the `listEligiblePaymentBatchApprovers` operation
        removeOn: 1.0.0
      parameters:
        - $ref: '#/components/parameters/paymentBatchIdPathParam'
      security:
        - accessToken:
            - banking/read
      responses:
        '200':
          description: OK. The operation succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/eligiblePaymentBatchApprovers'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentBatch'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: listPaymentBatchEligibleApprovers
      deprecated: true
  /paymentBatches/eligibleApprovers:
    get:
      summary: List Eligible Approvers for Payment Batches
      description: |-
        Return a list of customers eligible to approve a list of payment batches. If a batch in the list is marked confidential, the response includes only those who are also in the batch's list of confidential customers.

        The response of this operation may be reused as the request for the [`addPaymentBatchApprovers`](#op-addPaymentBatchApprovers) operation, possibly after filtering the approvers list to reflect user selection.
      tags:
        - Payment Batches
      operationId: listEligiblePaymentBatchApprovers
      x-apiture-api: bankingPayments
      x-apiture-group: paymentBatches
      parameters:
        - name: paymentBatches
          description: A list of payment batch IDs for building the list of eligible approvers.
          required: true
          style: form
          explode: false
          in: query
          schema:
            $ref: '#/components/schemas/paymentBatchIds'
      security:
        - accessToken:
            - banking/read
      responses:
        '200':
          description: OK. The operation succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/bulkEligiblePaymentBatchApprovers'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentBatch'
        '409':
          description: Conflict. The batch has begun or completed processing and no approvers may be added.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: listEligiblePaymentBatchApprovers
  /paymentBatches/{paymentBatchId}/submitted:
    post:
      operationId: submitPaymentBatch
      x-apiture-api: bankingPayments
      x-apiture-group: paymentBatchActions
      summary: Submit a payment batch
      description: 'Submit a batch payment for approval or scheduling. If the customer has approval permission this action does not automatically add the customer to the `paymentBatch.approvers` list. The customer should manually approve the batch through the [`approvePaymentBatch`](#op-approvePaymentBatch) operation. Once submitted, the batch payment transitions to the `approvalPending` state. The `paymentBatch.allows.submit` property must be `true` on the batch for the current customer to submit the batch. This operation is idempotent: no changes are made if the batch is already in the `approvalPending` or `scheduled` state.'
      tags:
        - Payment Batch Actions
      parameters:
        - $ref: '#/components/parameters/paymentBatchIdPathParam'
      requestBody:
        required: true
        description: Request data accompanying the action to approve the batch.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/paymentBatchSubmitRequest'
      responses:
        '200':
          description: OK. The operation succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentBatch'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentBatch'
        '409':
          description: |
            Conflict. The request to submit the payment batch is not allowed. Either the batch still has problems which prevent it from being submitted, or its state is `scheduled` or beyond.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidStateForSubmit/v1.0.0`](https://static.api.apiture.com/errors/invalidStateForSubmit/v1.0.0)<br>
              The submit operation is not allowed if the payment batch `allows.submit` is `false`.
              Remediation: Resolve any problems in the batch and/or its payment instructions so that the payment batch `allows.submit` is `true`.
          x-apiture-errors:
            - invalidStateForSubmit
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - moneyMovement/write
      x-apiture-permission: submitPaymentBatch
  /paymentBatches/{paymentBatchId}/approvals:
    post:
      operationId: approvePaymentBatch
      x-apiture-api: bankingPayments
      x-apiture-group: paymentBatchActions
      summary: Approve a payment batch
      description: |-
        Approve a payment batch for processing. This adds the customer to the `paymentBatch.approvers` list unless already listed. If all the required approvals have been given, the batch changes to the `scheduled` state to be processed. The `paymentBatch.allows.approve` property must be `true` on the batch for the current customer. This operation is idempotent: no changes are made if the customer has already approved this payment batch.

        This operation may require additional step-up authentication to verify the customer's identity.

        See also the [`approvePaymentBatches`](#op-approvePaymentBatches) operation to approve multiple batches. Using that operation incurs at most one step-up authentication.
      tags:
        - Payment Batch Actions
      parameters:
        - $ref: '#/components/parameters/paymentBatchIdPathParam'
      requestBody:
        required: true
        description: Request data accompanying the action to approve the batch.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/paymentBatchApprovalRequest'
      responses:
        '200':
          description: OK. The operation succeeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentBatch'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentBatch'
        '409':
          description: |
            Conflict. The request to approve the payment batch is not allowed. This operation is not allowed if the batch has started processing, or if the batch is still `pending` and has problems.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidStateForApprove/v1.0.0`](https://static.api.apiture.com/errors/invalidStateForApprove/v1.0.0)<br>
              The payment batch cannot be approved when in the current state.
              Remediation: The payment batch state must be `pendingApprovals` and have no problems.
            The `attributes` object in the error may have the properties defined for [`invalidStateForApprove`](https://static.api.apiture.com/errors/invalidStateForApprove/v1.0.0).
            * [`https://static.api.apiture.com/errors/currencyQuoteExpired/v1.0.0`](https://static.api.apiture.com/errors/currencyQuoteExpired/v1.0.0)<br>
              The currency conversion quote has expired for this payment batch.
              Remediation: Update the payment batch's scheduled date to refresh the currency quote.
          x-apiture-errors:
            - invalidStateForApprove
            - currencyQuoteExpired
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - moneyMovement/write
      x-apiture-permission: approvePaymentBatch
  /paymentBatchApprovals:
    post:
      operationId: approvePaymentBatches
      x-apiture-api: bankingPayments
      x-apiture-group: paymentBatchActions
      summary: Approve payment batches
      description: |-
        Approve a list of payment batches for processing. This adds the customer to the `paymentBatch.approvers` list of each batch unless already listed. If all the required approvals have been given, the batch changes to the `scheduled` state to be processed. This operation is idempotent: no changes are made to a batch if the customer has already approved it.

        This operation may successfully approve some batches and fail on others. This includes failures due to the customer's permissions (for example if a payment batch's `allows.approve` is `false`) or the state of one or more batches. Errors and problems are returned in the [`paymentBatchApprovals`](#schema-paymentBatchApprovals) response `items` instead of in 4xx error responses as with the [`approvePaymentBatch`](#op-approvePaymentBatch) operation.

        This operation may require additional an authentication challenge to verify the customer's identity. An authentication challenge is only required once for this entire call instead of requesting a challenge on _each_ call to [`approvePaymentBatch`](#op-approvePaymentBatch).
      tags:
        - Payment Batch Actions
      requestBody:
        required: true
        description: Request data accompanying the action to approve the batch.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bulkPaymentBatchApprovalRequest'
      responses:
        '200':
          description: |
            OK. The request was successfully processed. However, at least one of the payment batches approvals may have failed; the response body indicates which succeeded and which failed.

            This response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0`](https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0)<br>
              One or more payment batch IDs are invalid or do not refer to an existing payment batch.
              Remediation: Specify the ID of a payment batch for the operation that the user requested.
            The `attributes` object in the error may have the properties defined for [`invalidPaymentBatchIds`](https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0).
            * [`https://static.api.apiture.com/errors/invalidStateForApprove/v1.0.0`](https://static.api.apiture.com/errors/invalidStateForApprove/v1.0.0)<br>
              The payment batch cannot be approved when in the current state.
              Remediation: The payment batch state must be `pendingApprovals` and have no problems.
            The `attributes` object in the error may have the properties defined for [`invalidStateForApprove`](https://static.api.apiture.com/errors/invalidStateForApprove/v1.0.0).
            * [`https://static.api.apiture.com/errors/currencyQuoteExpired/v1.0.0`](https://static.api.apiture.com/errors/currencyQuoteExpired/v1.0.0)<br>
              The currency conversion quote has expired for this payment batch.
              Remediation: Update the payment batch's scheduled date to refresh the currency quote.
          x-apiture-errors:
            - invalidPaymentBatchIds
            - invalidStateForApprove
            - currencyQuoteExpired
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentBatchApprovals'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - moneyMovement/write
      x-apiture-permission: approvePaymentBatches
  /paymentBatches/{paymentBatchId}/unlocked:
    post:
      operationId: unlockPaymentBatch
      x-apiture-api: bankingPayments
      x-apiture-group: paymentBatchActions
      summary: Unlock a payment batch that is pending approvals or scheduled
      description: 'Unlock a payment batch that is pending approvals or scheduled. Batches which have been submitted or approved must be unlocked in order to move them back to a `pending` state in order to edit and resubmit them. The updated batch requires new approvals. The `paymentBatch.allows.unlock` property must be `true` on the batch for the current customer to perform this operation. The response is the updated representation of the payment batch. This operation is idempotent: no changes are made if the payment batch state is already `pending`.'
      tags:
        - Payment Batch Actions
      parameters:
        - $ref: '#/components/parameters/paymentBatchIdPathParam'
      requestBody:
        required: true
        description: Request data accompanying the action to remove approvals.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/paymentBatchApprovalRemovalRequest'
      responses:
        '200':
          description: OK. The request was successfully processed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentBatch'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: unlockPaymentBatch
  /unlockedPaymentBatches:
    post:
      operationId: unlockPaymentBatches
      x-apiture-api: bankingPayments
      x-apiture-group: paymentBatchActions
      summary: Unlock a list of payment batches that are pending approvals or scheduled
      description: 'Unlock (unapprove) a list of payment batches that are pending approvals or scheduled. Batches which have been submitted or approved must be unlocked in order to move them back to a `pending` state in order to edit and resubmit them. The updated batches require new approvals. The `paymentBatch.allows.unlock` property must be `true` on each batch for the current customer to perform this operation. This operation is idempotent: no changes are made if a payment batch''s state is already `pending`.'
      tags:
        - Payment Batch Actions
      requestBody:
        required: true
        description: The data necessary to unlock a set of payment batches.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bulkPaymentBatchUnlockRequest'
      responses:
        '200':
          description: |-
            OK. The request was successfully processed. However, unlocking at least one of the payment batches may have failed; the response body indicates which succeeded and which failed.

            This response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0`](https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0)<br>
              One or more payment batch IDs are invalid or do not refer to an existing payment batch.
              Remediation: Specify the ID of a payment batch for the operation that the user requested.
            The `attributes` object in the error may have the properties defined for [`invalidPaymentBatchIds`](https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0).
            * [`https://static.api.apiture.com/errors/invalidStateForUnlock/v1.0.0`](https://static.api.apiture.com/errors/invalidStateForUnlock/v1.0.0)<br>
              One or more payment batch cannot be unlocked when in the current state.
              Remediation: The payment batch state must be `pending` or `approved` or `scheduled`.
            The `attributes` object in the error may have the properties defined for [`invalidStateForUnlock`](https://static.api.apiture.com/errors/invalidStateForUnlock/v1.0.0).
          x-apiture-errors:
            - invalidPaymentBatchIds
            - invalidStateForUnlock
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/unlockedPaymentBatches'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentBatch'
        '409':
          description: |-
            Conflict. The request to remove approvals of the payment batch is not allowed. This operation is not allowed if the batch has been rejected or has started processing.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidStateForUnlock/v1.0.0`](https://static.api.apiture.com/errors/invalidStateForUnlock/v1.0.0)<br>
              One or more payment batch cannot be unlocked when in the current state.
              Remediation: The payment batch state must be `pending` or `approved` or `scheduled`.
            The `attributes` object in the error may have the properties defined for [`invalidStateForUnlock`](https://static.api.apiture.com/errors/invalidStateForUnlock/v1.0.0).
          x-apiture-errors:
            - invalidStateForUnlock
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: unlockPaymentBatches
  /paymentBatches/{paymentBatchId}/rejections:
    post:
      operationId: rejectPaymentBatch
      x-apiture-api: bankingPayments
      x-apiture-group: paymentBatchActions
      summary: Reject a payment batch
      description: 'Reject a payment batch, requesting changes to the batch as described in the request body''s `reason`. Rejecting a batch allow for updating the payment batch and payment instructions and for resubmission. This is the opposite of approving a batch that is pending approval. Rejecting a batch allows editing the payment batch details and its payment instructions, then resubmitting it. The updated batch requires new approvals. The `paymentBatch.allows.reject` property must be `true` on the batch for the current customer. The response is the updated representation of the payment batch. This operation is idempotent: no changes are made if the payment batch state is already `rejected`, `pendingApproval`, or `pending`.'
      tags:
        - Payment Batch Actions
      parameters:
        - $ref: '#/components/parameters/paymentBatchIdPathParam'
      requestBody:
        required: true
        description: Request data accompanying the action to remove approvals.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/paymentBatchRejectionRequest'
      responses:
        '200':
          description: OK. The operation succeeded. All approvals have been removed from the payment batch. The batch's `state` is changed to `rejected`. If there are any problems with the batch, its state is changed to `pending`.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentBatch'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404PaymentBatch'
        '409':
          description: Conflict. The request to reject the payment batch is not allowed. This operation is not allowed if the batch is not `pendingApprovals` or `rejected`.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: rejectPaymentBatch
  /paymentBatchRejections:
    post:
      summary: Reject payment batches
      description: Reject a set of payment batches. The 204 response indicates all batches were rejected successfully. The 200 response indicates a partial success and includes details on any failed rejections.
      operationId: rejectPaymentBatches
      x-apiture-api: bankingPayments
      x-apiture-group: paymentBatchActions
      tags:
        - Payment Batch Actions
      requestBody:
        required: true
        description: The data necessary to reject a set of payment batches.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bulkPaymentBatchRejectionRequest'
      responses:
        '200':
          description: |-
            OK. The request was successfully processed. However, one or more (or all) payment batch rejections may have failed; see the [`paymentBatchRejections`](#schema-paymentBatchRejections) response to see which succeeded and which failed.

            This response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0`](https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0)<br>
              One or more payment batch IDs are invalid or do not refer to an existing payment batch.
              Remediation: Specify the ID of a payment batch for the operation that the user requested.
            The `attributes` object in the error may have the properties defined for [`invalidPaymentBatchIds`](https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0).
            * [`https://static.api.apiture.com/errors/invalidStateForReject/v1.0.0`](https://static.api.apiture.com/errors/invalidStateForReject/v1.0.0)<br>
              The payment batch cannot be rejected when in the current state.
              Remediation: The payment batch state must be `pendingApprovals`.
            The `attributes` object in the error may have the properties defined for [`invalidStateForReject`](https://static.api.apiture.com/errors/invalidStateForReject/v1.0.0).
          x-apiture-errors:
            - invalidPaymentBatchIds
            - invalidStateForReject
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentBatchRejections'
        '204':
          description: No Content. All batches were successfully rejected without any problems.
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - moneyMovement/write
      x-apiture-permission: rejectPaymentBatches
  /paymentBatches/{paymentBatchId}/reversals:
    post:
      operationId: reversePaymentBatch
      x-apiture-api: bankingPayments
      x-apiture-group: paymentBatchActions
      summary: Reverse a payment batch
      description: |-
        Request reversal of a payment batch or a subset of its instructions. The system attempts to cancel any unprocessed payments in the batch, or to reverse any payments that have already been submitted. Reversal ignores instructions marked as `hold`.

        The `paymentBatch.allows.reverse` property must be `true` on the batch for the current customer. To reverse individual instructions, `batch.allows.reverseInstructions` must be true. Some financial institutions may allow reversing entire batch but disallow reversing sets of individual instructions.

        If the payment batch has not started processing, the batch is canceled without creating a new reversal batch and the response is 200 OK. (The batch's state becomes `canceled`.)

        Otherwise, a successful request creates and returns a new payment batch (201 Created). The initial batch's state becomes `partiallyReversed` or `reversed` depending on whether some or all of the instructions have been reversed. The client should [re-fetch the payment batch](#op-getPaymentBatch) after submitting this operation to see the new state.

        This operation is idempotent and additive. For example, one can reverse one subset of the instructions, then reverse another subset later.

        Use [`reversePaymentBatches`](#op-reversePaymentBatches) to reverse a set of batches rather than just one.
      tags:
        - Payment Batch Actions
      parameters:
        - $ref: '#/components/parameters/paymentBatchIdPathParam'
      requestBody:
        required: true
        description: Request data accompanying the action to reverse a payment batch.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/paymentBatchReversalRequest'
      responses:
        '200':
          description: OK. The payment batch has not started processing and was reversed (canceled) without having to create a new reversal batch.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentBatch'
        '201':
          description: Created. The operation succeeded and a new reversal payment batch was created and returned.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentBatch'
          headers:
            Location:
              description: The URI of the new payment method.
              schema:
                type: string
                format: uri-reference
                maxLength: 128
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          description: Conflict. The request to request reversal of the payment batch is not allowed. The batch must have started processing to allow reversing. The operation is only valid if `batch.allows.reverse` or if attempting to reverse a set of individual instructions, if `batch.allows.reverseInstructions` is `true`.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '422':
          description: |-
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/noSuchPaymentInstruction/v1.0.0`](https://static.api.apiture.com/errors/noSuchPaymentInstruction/v1.0.0)<br>
              There is no such payment instruction on this batch for one or more of the given `paymentInstructionIds`,.
              Remediation: Pass valid payment instruction IDs from this batch's list of instructions.
            The `attributes` object in the error may have the properties defined for [`noSuchPaymentInstruction`](https://static.api.apiture.com/errors/noSuchPaymentInstruction/v1.0.0).
          x-apiture-errors:
            - noSuchPaymentInstruction
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - moneyMovement/write
      x-apiture-permission: reversePaymentBatch
  /paymentBatchReversals:
    post:
      summary: Reverse payment batches
      description: Reverse a set of payment batches. This operations is like [`reversePaymentBatch`](#op-reversePaymentBatch) but applies to a set of batches rather than just one.
      operationId: reversePaymentBatches
      x-apiture-api: bankingPayments
      x-apiture-group: paymentBatchActions
      tags:
        - Payment Batch Actions
      requestBody:
        required: true
        description: The data necessary to reject a set of payment batches.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bulkPaymentBatchReversalRequest'
      responses:
        '200':
          description: |-
            OK. The request was successfully processed. However, one or more of the payment batch reversals may have failed; see the [`paymentBatchReversals`](#schema-paymentBatchReversals) response to see which succeeded and which failed.

            This response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0`](https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0)<br>
              One or more payment batch IDs are invalid or do not refer to an existing payment batch.
              Remediation: Specify the ID of a payment batch for the operation that the user requested.
            The `attributes` object in the error may have the properties defined for [`invalidPaymentBatchIds`](https://static.api.apiture.com/errors/invalidPaymentBatchIds/v1.0.0).
            * [`https://static.api.apiture.com/errors/invalidStateForReverse/v1.0.0`](https://static.api.apiture.com/errors/invalidStateForReverse/v1.0.0)<br>
              The payment batch cannot be reversed when in the current state.
              Remediation: The payment batch state must be `processing`.
            The `attributes` object in the error may have the properties defined for [`invalidStateForReverse`](https://static.api.apiture.com/errors/invalidStateForReverse/v1.0.0).
          x-apiture-errors:
            - invalidPaymentBatchIds
            - invalidStateForReverse
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentBatchReversals'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - moneyMovement/write
      x-apiture-permission: reversePaymentBatches
  /paymentBatches/{paymentBatchId}/eligibleConfidentialCustomers:
    parameters:
      - $ref: '#/components/parameters/paymentBatchIdPathParam'
    get:
      summary: List eligible confidential customers
      description: 'Return a list customers who are eligible to be added as confidential customers for this payment. A subset of customers from the response may be assigned via the `confidentialCustomers` property in the [`patchPaymentBatch`](#op-patchPaymentBatch) operation. *Note*: The payment batch must have a settlement account assigned before requesting a list of confidential customers.'
      operationId: listEligibleConfidentialCustomers
      x-apiture-api: bankingPayments
      x-apiture-group: paymentBatches
      tags:
        - Payment Batches
      security:
        - accessToken:
            - banking/read
      responses:
        '200':
          description: 'OK. *Note*: The `items` array in the response may be empty if there are no eligible customers to assign to the payment batch.'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/confidentialAchCustomerList'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          description: |
            Conflict. The request conflicts with the state of the application. The payment batch must have a settlement account assigned before requesting a list of confidential customers.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/conflict/v1.0.0`](https://static.api.apiture.com/errors/conflict/v1.0.0)<br>
              The request could not be completed due to a conflict with the current state of the target resource.
              Remediation: Try another operation that is allowed.

            * [`https://static.api.apiture.com/errors/missingSettlementAccount/v1.0.0`](https://static.api.apiture.com/errors/missingSettlementAccount/v1.0.0)<br>
              The payment batch does not have a settlement account.
              Remediation: Assign a settlement account.
          x-apiture-errors:
            - $ref: '#/components/x-apiture-errors/conflict'
            - missingSettlementAccount
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      x-apiture-permission: listEligibleConfidentialCustomers
  /achTemplates:
    get:
      summary: Return a collection of ACH templates
      description: Return a collection of ACH templates.
      parameters:
        - $ref: '#/components/parameters/customerIdQueryParam'
        - name: allowsCreateAchPaymentOnMobile
          description: Limit the returned items to only templates where `allows.createAchPaymentOnMobile` is `true`.
          in: query
          schema:
            type: boolean
        - name: instructionName
          description: Return only payment batches where any payment instruction's payment contact `name` contains this substring of at least two characters, ignoring case.
          in: query
          schema:
            type: string
            format: text
            minLength: 2
            maxLength: 22
      operationId: listAchTemplates
      x-apiture-api: bankingPaymentTemplates
      x-apiture-group: achTemplates
      tags:
        - ACH Templates
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/achTemplates'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/achTemplates'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well-formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidCustomerId/v1.0.0`](https://static.api.apiture.com/errors/invalidCustomerId/v1.0.0)<br>
              The given customer ID is invalid.
              Remediation: Use a different customer ID.
          x-apiture-errors:
            - invalidCustomerId
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listAchTemplates
    post:
      summary: Create a new ACH template
      description: Create a new ACH template within the ACH templates collection.
      operationId: createAchTemplate
      x-apiture-api: bankingPaymentTemplates
      x-apiture-group: achTemplates
      tags:
        - ACH Templates
      parameters:
        - $ref: '#/components/parameters/customerIdQueryParam'
      requestBody:
        required: true
        description: The data necessary to create a new ACH template.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/newAchTemplate'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/achTemplate'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/achTemplate'
          headers:
            Location:
              description: The URI of the new ACH template.
              schema:
                type: string
                format: uri-reference
                maxLength: 2048
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/duplicateTemplateName/v1.0.0`](https://static.api.apiture.com/errors/duplicateTemplateName/v1.0.0)<br>
              The given template name already exists.
              Remediation: Choose a different name for the template.

            * [`https://static.api.apiture.com/errors/tooManyAchTemplates/v1.0.0`](https://static.api.apiture.com/errors/tooManyAchTemplates/v1.0.0)<br>
              Creating the given ACH template exceeds the maximum storage allocation.
              Remediation: Remove a template before creating an additional one.

            * [`https://static.api.apiture.com/errors/templateIneligibleForActivation/v1.0.0`](https://static.api.apiture.com/errors/templateIneligibleForActivation/v1.0.0)<br>
              The template cannot be activated with the given values.
              Remediation: Use valid values.
          x-apiture-errors:
            - duplicateTemplateName
            - tooManyAchTemplates
            - templateIneligibleForActivation
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: createAchTemplate
  /achTemplates/{achTemplateId}:
    parameters:
      - $ref: '#/components/parameters/achTemplateIdPathParam'
    get:
      summary: Fetch a representation of this ACH template
      description: Return the JSON representation of this ACH template resource.
      operationId: getAchTemplate
      x-apiture-api: bankingPaymentTemplates
      x-apiture-group: achTemplates
      tags:
        - ACH Templates
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/achTemplate'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/achTemplate'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: getAchTemplate
    patch:
      summary: Update this ACH template
      description: Perform a partial update of this ACH template as per [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules. Only fields in the request body are updated on the resource; fields which are omitted are not updated.
      operationId: patchAchTemplate
      x-apiture-api: bankingPaymentTemplates
      x-apiture-group: achTemplates
      tags:
        - ACH Templates
      requestBody:
        required: true
        description: The fields to update within the ACH template.
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/achTemplatePatch'
          application/json:
            schema:
              $ref: '#/components/schemas/achTemplatePatch'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/achTemplate'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/achTemplate'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: patchAchTemplate
  /achTemplates/{achTemplateId}/paymentInstructions:
    parameters:
      - $ref: '#/components/parameters/achTemplateIdPathParam'
    get:
      summary: Return a collection of ACH Template Payment Instructions
      description: Return a collection of payment instructions for this ACH Template.
      operationId: listAchTemplatePaymentInstructions
      x-apiture-api: bankingPaymentTemplates
      x-apiture-group: achTemplates
      tags:
        - ACH Templates
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/achTemplatePaymentInstructions'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/achTemplatePaymentInstructions'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listAchTemplatePaymentInstructions
    post:
      summary: Create new ACH Template Payment Instructions
      description: Create new payment instructions within the payment instructions collection for this ACH Template.
      operationId: createAchTemplatePaymentInstructions
      x-apiture-api: bankingPaymentTemplates
      x-apiture-group: achTemplates
      tags:
        - ACH Templates
      requestBody:
        required: true
        description: The data necessary to create new payment instructions for this ACH Template.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/newAchTemplatePaymentInstructionsRequest'
          application/vnd.restful+json:
            schema:
              $ref: '#/components/schemas/newAchTemplatePaymentInstructionsRequest'
      responses:
        '200':
          description: OK. The request was successfully processed. However, creating one or more payment instructions may have failed; response body indicates which succeeded and which failed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/achTemplatePaymentInstructions'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/achTemplatePaymentInstructions'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: createAchTemplatePaymentInstructions
  /achTemplates/{achTemplateId}/paymentInstructions/{paymentInstructionId}:
    parameters:
      - $ref: '#/components/parameters/achTemplateIdPathParam'
      - $ref: '#/components/parameters/paymentInstructionIdPathParam'
    get:
      summary: Fetch a representation of this ACH Template payment instruction
      description: Return the JSON representation of this ACH Template payment instruction resource.
      operationId: getAchTemplatePaymentInstruction
      x-apiture-api: bankingPaymentTemplates
      x-apiture-group: achTemplates
      tags:
        - ACH Templates
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/achTemplatePaymentInstruction'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/achTemplatePaymentInstruction'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404AchTemplatePaymentInstruction'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: getAchTemplatePaymentInstruction
    patch:
      summary: Update this ACH Template payment instruction
      description: Perform a partial update of this ACH Template payment instruction as per [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules. Only fields in the request body are updated on the resource; fields which are omitted are not updated.
      operationId: patchAchTemplatePaymentInstruction
      x-apiture-api: bankingPaymentTemplates
      x-apiture-group: achTemplates
      tags:
        - ACH Templates
      requestBody:
        required: true
        description: The fields to update within the payment instruction.
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/achTemplatePaymentInstructionPatch'
          application/json:
            schema:
              $ref: '#/components/schemas/achTemplatePaymentInstructionPatch'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/achTemplatePaymentInstruction'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/achTemplatePaymentInstruction'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404AchTemplatePaymentInstruction'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: patchAchTemplatePaymentInstruction
  /achTemplates/{achTemplateId}/copies:
    parameters:
      - $ref: '#/components/parameters/achTemplateIdPathParam'
      - $ref: '#/components/parameters/dryRunQueryParam'
    post:
      operationId: copyAchTemplate
      x-apiture-api: bankingPaymentTemplates
      x-apiture-group: achTemplates
      summary: Copy an ACH Template
      description: |-
        Create a new an ACH template by copying an existing template.
        Changes made to the source ACH template are not applied to the new ACH template. The identifier of the source ACH template is located in the `derivedFrom` property on the new ACH template.
        Copied ACH templates optionally allow a different name to be specified. If a different name is not provided, the system generates a new name derived from the source template name.
      tags:
        - ACH Template Actions
      requestBody:
        required: true
        description: Request containing the ACH template to copy.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/copiedPaymentBatchTemplate'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/achTemplate'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/achTemplate'
          headers:
            Location:
              description: The URI of the new ACH template.
              schema:
                type: string
                format: uri-reference
                maxLength: 2048
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          $ref: '#/components/responses/409'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/duplicateTemplateName/v1.0.0`](https://static.api.apiture.com/errors/duplicateTemplateName/v1.0.0)<br>
              The given template name already exists.
              Remediation: Choose a different name for the template.

            * [`https://static.api.apiture.com/errors/tooManyAchTemplates/v1.0.0`](https://static.api.apiture.com/errors/tooManyAchTemplates/v1.0.0)<br>
              Creating the given ACH template exceeds the maximum storage allocation.
              Remediation: Remove a template before creating an additional one.
          x-apiture-errors:
            - duplicateTemplateName
            - tooManyAchTemplates
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: copyAchTemplate
  /achTemplates/{achTemplateId}/paymentBatch:
    parameters:
      - $ref: '#/components/parameters/achTemplateIdPathParam'
    post:
      summary: Create an ACH Payment Batch from a Template
      description: |-
        Create a new ACH payment batch using an ACH template.

        Include properties to override values from the template. Some properties in the template are immutable and cannot be overridden. Other properties may be locked in the template. Locked properties cannot be overridden in the payment batch.

        ACH payment batches created using a template do not allow adding or removing payment instructions. Payment instructions can be excluded from processing by being set as [held](#op-updatePaymentInstructionHolds) after the payment batch is created. Payment instruction amounts or addenda may be updated after payment batch creation if the properties are not locked in the template.
      operationId: createAchPaymentBatchFromTemplate
      x-apiture-api: bankingPaymentTemplates
      x-apiture-group: achTemplates
      tags:
        - ACH Template Actions
      requestBody:
        required: true
        description: The data necessary to create a new ACH payment batch from an ACH template.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/newPaymentBatchFromAchTemplate'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/paymentBatch'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/paymentBatch'
          headers:
            Location:
              description: The URI of the new ACH payment batch.
              schema:
                type: string
                format: uri-reference
                maxLength: 2048
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidAchTemplate/v1.0.0`](https://static.api.apiture.com/errors/invalidAchTemplate/v1.0.0)<br>
              The given ACH template is ineligible to create a payment batch.
              Remediation: Use a different ACH template.

            * [`https://static.api.apiture.com/errors/propertiesLockedInAchTemplate/v1.0.0`](https://static.api.apiture.com/errors/propertiesLockedInAchTemplate/v1.0.0)<br>
              One of more properties have been locked for modification in the template.
              Remediation: Unlock the properties in the template to modify them in this payment batch.
            The `attributes` object in the error may have the properties defined for [`propertiesLockedInAchTemplate`](https://static.api.apiture.com/errors/propertiesLockedInAchTemplate/v1.0.0).
            * [`https://static.api.apiture.com/errors/noSuchPaymentBatchCustomerId/v1.0.0`](https://static.api.apiture.com/errors/noSuchPaymentBatchCustomerId/v1.0.0)<br>
              No such customer was found or accessible for the given `customerId`.
              Remediation: Supply the resource ID (not username/access ID) of a valid customer in the `customerId` property.

            * [`https://static.api.apiture.com/errors/invalidSettlementAccount/v1.0.0`](https://static.api.apiture.com/errors/invalidSettlementAccount/v1.0.0)<br>
              The chosen settlement account does not exist, is not accessible, or is not entitled for the chosen money movement direction.
              Remediation: Choose an available account that supports debit or credits that match the batch's money movement direction.
          x-apiture-errors:
            - invalidAchTemplate
            - $ref: '#/components/x-apiture-errors/propertiesLockedInAchTemplate'
            - $ref: '#/components/x-apiture-errors/noSuchPaymentBatchCustomerId'
            - $ref: '#/components/x-apiture-errors/invalidSettlementAccount'
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - moneyMovement/write
      x-apiture-permission: createAchPaymentBatchFromTemplate
  /achTemplates/{achTemplateId}/templateHistoryRecords:
    parameters:
      - $ref: '#/components/parameters/achTemplateIdPathParam'
    get:
      summary: Return ACH template history records
      description: Return a list of history records for this ACH template.
      operationId: listAchTemplateHistoryRecords
      x-apiture-api: bankingPaymentTemplates
      x-apiture-group: achTemplates
      tags:
        - ACH Templates
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/achTemplateHistoryRecords'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/achTemplateHistoryRecords'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listAchTemplateHistoryRecords
  /deletedAchTemplates:
    post:
      summary: Delete ACH Templates
      description: |-
        Delete a set of ACH templates. One or more template deletions may fail if those ACH templates were previously deleted. Deleting templates does not modify any existing payment batches.

        The 200 response indicates a partial success and includes details on any failed deletions. The 204 response indicates that all of the ACH templates were successfully deleted. The 422 response indicates that none of the ACH templates were successfully deleted.
      operationId: deleteAchTemplates
      x-apiture-api: bankingPaymentTemplates
      x-apiture-group: achTemplates
      tags:
        - ACH Template Actions
      requestBody:
        required: true
        description: Request containing the ACH templates to delete.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bulkAchTemplateDeletionRequest'
      responses:
        '200':
          description: |-
            OK. The request was successfully processed. However, deleting one or more ACH templates may have failed; response body indicates which succeeded and which failed.

            This response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidAchTemplateIds/v1.0.0`](https://static.api.apiture.com/errors/invalidAchTemplateIds/v1.0.0)<br>
              One or more ACH template IDs are invalid or do not refer to an existing ACH template.
              Remediation: Specify the ID of an existing template for which the user has access.
            The `attributes` object in the error may have the properties defined for [`invalidAchTemplateIds`](https://static.api.apiture.com/errors/invalidAchTemplateIds/v1.0.0).
          x-apiture-errors:
            - invalidAchTemplateIds
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/achTemplateBulkDeletions'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/achTemplateBulkDeletions'
        '204':
          description: No Content. All ACH templates were successfully deleted.
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidAchTemplate/v1.0.0`](https://static.api.apiture.com/errors/invalidAchTemplate/v1.0.0)<br>
              The given ACH template is ineligible to create a payment batch.
              Remediation: Use a different ACH template.
          x-apiture-errors:
            - invalidAchTemplate
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: deleteAchTemplates
  /activatedAchTemplates:
    post:
      summary: Activate ACH Templates
      description: |-
        Activate a set of ACH templates. Activating an ACH template is an idempotent action; templates with a `state` of `active` are not modified. Activating templates does not modify any existing payment batches. ACH templates must meet requirements for activation to change state.

        The 200 response indicates a partial success and includes details on any failed activations. The 204 response indicates that all of the ACH templates were successfully activated.
      operationId: activateAchTemplates
      x-apiture-api: bankingPaymentTemplates
      x-apiture-group: achTemplates
      tags:
        - ACH Template Actions
      requestBody:
        required: true
        description: Request containing the ACH templates to activate.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bulkAchTemplateActivationRequest'
      responses:
        '200':
          description: |-
            OK. The request was successfully processed. However, activating one or more ACH templates may have failed; response body indicates which succeeded and which failed.

            This response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidAchTemplateIds/v1.0.0`](https://static.api.apiture.com/errors/invalidAchTemplateIds/v1.0.0)<br>
              One or more ACH template IDs are invalid or do not refer to an existing ACH template.
              Remediation: Specify the ID of an existing template for which the user has access.
            The `attributes` object in the error may have the properties defined for [`invalidAchTemplateIds`](https://static.api.apiture.com/errors/invalidAchTemplateIds/v1.0.0).
          x-apiture-errors:
            - invalidAchTemplateIds
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/achTemplateBulkActivations'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/achTemplateBulkActivations'
        '204':
          description: No Content. All ACH templates were successfully activated.
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: activateAchTemplates
  /deactivatedAchTemplates:
    post:
      summary: Deactivate ACH Templates
      description: |-
        Deactivate a set of ACH templates. ACH payment batches cannot be created from inactivate templates. Deactivating an ACH template is an idempotent action; templates with a `state` of `inactive` are not modified. Deactivating templates does not modify any existing payment batches.

        The 200 response indicates a partial success and includes details on any failed deactivations. The 204 response indicates that all of the ACH templates were successfully deactivated.
      operationId: deactivateAchTemplates
      x-apiture-api: bankingPaymentTemplates
      x-apiture-group: achTemplates
      tags:
        - ACH Template Actions
      requestBody:
        required: true
        description: Request containing the ACH templates to deactivate.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bulkAchTemplateDeactivationRequest'
      responses:
        '200':
          description: |-
            OK. The request was successfully processed. However, deactivating one or more ACH templates may have failed; response body indicates which succeeded and which failed.

            This response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidAchTemplateIds/v1.0.0`](https://static.api.apiture.com/errors/invalidAchTemplateIds/v1.0.0)<br>
              One or more ACH template IDs are invalid or do not refer to an existing ACH template.
              Remediation: Specify the ID of an existing template for which the user has access.
            The `attributes` object in the error may have the properties defined for [`invalidAchTemplateIds`](https://static.api.apiture.com/errors/invalidAchTemplateIds/v1.0.0).
          x-apiture-errors:
            - invalidAchTemplateIds
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/achTemplateBulkDeactivations'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/achTemplateBulkDeactivations'
        '204':
          description: No Content. All ACH templates were successfully deactivated.
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: deactivateAchTemplates
  /updatedAchTemplates:
    post:
      summary: Update ACH Templates
      description: Update a set of ACH templates. This allows clients to update the `allows.createAchPaymentOnMobile` option on multiple templates in one operation. Updating templates does not modify any existing ACH template payment batches that were previously created from those templates. The 200 response indicates a partial success and includes details of any failed updates. The 204 response indicates that all of the ACH templates were successfully updated.
      operationId: updateAchTemplates
      x-apiture-api: bankingPaymentTemplates
      x-apiture-group: achTemplates
      tags:
        - ACH Template Actions
      requestBody:
        required: true
        description: Request containing the ACH templates to update.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bulkAchTemplatePatchRequest'
      responses:
        '200':
          description: |-
            OK. The request was successfully processed. However, updating one or more ACH templates may have failed; the response body indicates which succeeded and which failed.

            This response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidAchTemplateIds/v1.0.0`](https://static.api.apiture.com/errors/invalidAchTemplateIds/v1.0.0)<br>
              One or more ACH template IDs are invalid or do not refer to an existing ACH template.
              Remediation: Specify the ID of an existing template for which the user has access.
            The `attributes` object in the error may have the properties defined for [`invalidAchTemplateIds`](https://static.api.apiture.com/errors/invalidAchTemplateIds/v1.0.0).
          x-apiture-errors:
            - invalidAchTemplateIds
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/achTemplateBulkUpdates'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/achTemplateBulkUpdates'
        '204':
          description: No Content. All ACH templates were successfully updated.
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: updateAchTemplates
  /wireTransferTemplates:
    get:
      summary: Return a collection of wire transfer templates
      description: Return a collection of wire transfer templates.
      operationId: listWireTransferTemplates
      x-apiture-api: bankingPaymentTemplates
      x-apiture-group: wireTransferTemplates
      tags:
        - Wire Transfer Templates
      parameters:
        - $ref: '#/components/parameters/customerIdQueryParam'
        - name: allowsCreateWireTransferOnMobile
          description: Limit the returned items to only templates where `allows.createWireTransferOnMobile` is `true`.
          in: query
          schema:
            type: boolean
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/wireTransferTemplates'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: listWireTransferTemplates
    post:
      summary: Create a new wire transfer template
      description: |-
        Create a new wire transfer template within the wire transfer templates collection.
        Wire transfer templates can also be created through the [copy wire transfer template operation](#op-copyWireTransferTemplate).
        This operation can be performed as a dry run, which invokes request validation without a state change.
        A dry run returns the same 4xx responses as the normal invocation when the request encounters any validation errors, but returns a response of 204 (No Content) if the request is valid.
        When `?dryRun` is false or omitted, the operation creates the wire transfer template unless there are request errors.
      operationId: createWireTransferTemplate
      x-apiture-api: bankingPaymentTemplates
      x-apiture-group: wireTransferTemplates
      tags:
        - Wire Transfer Templates
      parameters:
        - $ref: '#/components/parameters/dryRunQueryParam'
      requestBody:
        required: true
        description: The data necessary to create a new wire transfer template.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/newWireTransferTemplate'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/wireTransferTemplate'
          headers:
            Location:
              description: The URI of the new wire transfer template.
              schema:
                type: string
                format: uri-reference
                maxLength: 2048
        '204':
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          description: |-
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/duplicateTemplateName/v1.0.0`](https://static.api.apiture.com/errors/duplicateTemplateName/v1.0.0)<br>
              The given template name already exists.
              Remediation: Choose a different name for the template.

            * [`https://static.api.apiture.com/errors/invalidInstitutionLocator/v1.0.0`](https://static.api.apiture.com/errors/invalidInstitutionLocator/v1.0.0)<br>
              The locator value for the financial institution is invalid.
              Remediation: Use a valid financial institution locator.
            The `attributes` object in the error may have the properties defined for [`invalidInstitutionLocator`](https://static.api.apiture.com/errors/invalidInstitutionLocator/v1.0.0).
            * [`https://static.api.apiture.com/errors/propertiesIneligibleForLocking/v1.0.0`](https://static.api.apiture.com/errors/propertiesIneligibleForLocking/v1.0.0)<br>
              The property cannot be locked due to an incompatible value.
              Remediation: Assign a different value for the property before locking.
            The `attributes` object in the error may have the properties defined for [`propertiesIneligibleForLocking`](https://static.api.apiture.com/errors/propertiesIneligibleForLocking/v1.0.0).
          x-apiture-errors:
            - duplicateTemplateName
            - invalidInstitutionLocator
            - propertiesIneligibleForLocking
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: createWireTransferTemplate
  /deletedWireTransferTemplates:
    post:
      summary: Delete Wire Transfer Templates
      description: |-
        Delete a set of wire transfer templates. One or more template deletions may fail if those wire transfer templates were previously deleted. Deleting templates does not modify any existing payment batches.

        The 200 response indicates a partial success and includes details on any failed deletions. The 204 response indicates that all of the wire transfer templates were successfully deleted.
      operationId: deleteWireTransferTemplates
      x-apiture-api: bankingPaymentTemplates
      x-apiture-group: wireTransferTemplates
      tags:
        - Wire Transfer Template Actions
      requestBody:
        required: true
        description: Request containing the wire transfer templates to delete.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bulkWireTransferTemplateDeletionRequest'
      responses:
        '200':
          description: |-
            OK. The request was successfully processed. However, deleting one or more wire transfer templates may have failed; response body indicates which succeeded and which failed.

            This response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidWireTransferTemplateIds/v1.0.0`](https://static.api.apiture.com/errors/invalidWireTransferTemplateIds/v1.0.0)<br>
              One or more wire transfer template IDs are invalid or do not refer to an existing wire transfer template.
              Remediation: Specify the ID of an existing template for which the user has access.
            The `attributes` object in the error may have the properties defined for [`invalidWireTransferTemplateIds`](https://static.api.apiture.com/errors/invalidWireTransferTemplateIds/v1.0.0).
          x-apiture-errors:
            - invalidWireTransferTemplateIds
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/wireTransferTemplateBulkDeletions'
        '204':
          description: No Content. All wire transfer templates were successfully deleted.
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: deleteWireTransferTemplates
  /updatedWireTransferTemplates:
    post:
      summary: Update Wire Transfer Templates
      description: |-
        Update a set of wire transfer templates. This allows clients to update the `allows.createWireTransferOnMobile` option on multiple templates in one operation.

        Updating templates does not modify any existing wire template payment batches that were previously created from those templates.

        The 200 response indicates a partial success and includes details of any failed updates. The 204 response indicates that all of the wire transfer templates were successfully updated.
      operationId: updateWireTransferTemplates
      x-apiture-api: bankingPaymentTemplates
      x-apiture-group: wireTransferTemplates
      tags:
        - Wire Transfer Template Actions
      requestBody:
        required: true
        description: Request containing the wire transfer templates to update.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/bulkWireTransferTemplatePatchRequest'
      responses:
        '200':
          description: |-
            OK. The request was successfully processed. However, updating one or more wire transfer templates may have failed; the response body indicates which succeeded and which failed.

            This response may have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/invalidWireTransferTemplateIds/v1.0.0`](https://static.api.apiture.com/errors/invalidWireTransferTemplateIds/v1.0.0)<br>
              One or more wire transfer template IDs are invalid or do not refer to an existing wire transfer template.
              Remediation: Specify the ID of an existing template for which the user has access.
            The `attributes` object in the error may have the properties defined for [`invalidWireTransferTemplateIds`](https://static.api.apiture.com/errors/invalidWireTransferTemplateIds/v1.0.0).
          x-apiture-errors:
            - invalidWireTransferTemplateIds
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/wireTransferTemplateBulkUpdates'
            application/vnd.restful+json:
              schema:
                $ref: '#/components/schemas/wireTransferTemplateBulkUpdates'
        '204':
          description: No Content. All wire transfer templates were successfully updated.
          $ref: '#/components/responses/204'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '422':
          $ref: '#/components/responses/422'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: updateWireTransferTemplates
  /wireTransferTemplates/{wireTransferTemplateId}/copies:
    parameters:
      - $ref: '#/components/parameters/wireTransferTemplateIdPathParam'
    post:
      operationId: copyWireTransferTemplate
      x-apiture-api: bankingPaymentTemplates
      x-apiture-group: wireTransferTemplates
      summary: Copy a wire transfer template
      description: |-
        Create a new a wire transfer template by copying an existing template.
        Changes made to the source wire transfer template are not applied to the new wire transfer template. The identifier of the source wire transfer template is located in the `derivedFrom` property on the new wire transfer template.
        Copied wire transfer templates optionally allow a different name to be specified. If a different name is not provided, the system generates a new name derived from the source template name.
      tags:
        - Wire Transfer Template Actions
      requestBody:
        required: true
        description: Request containing the wire transfer template to copy.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/copiedPaymentBatchTemplate'
      responses:
        '201':
          description: Created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/wireTransferTemplate'
          headers:
            Location:
              description: The URI of the new wire transfer template.
              schema:
                type: string
                format: uri-reference
                maxLength: 2048
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '409':
          $ref: '#/components/responses/409'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: copyWireTransferTemplate
  /wireTransferTemplates/{wireTransferTemplateId}:
    parameters:
      - $ref: '#/components/parameters/wireTransferTemplateIdPathParam'
    get:
      summary: Fetch a representation of this wire transfer template
      description: Return the JSON representation of this wire transfer template resource.
      operationId: getWireTransferTemplate
      x-apiture-api: bankingPaymentTemplates
      x-apiture-group: wireTransferTemplates
      tags:
        - Wire Transfer Templates
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/wireTransferTemplate'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/read
      x-apiture-permission: getWireTransferTemplate
    patch:
      summary: Update this wire transfer template
      description: Perform a partial update of this wire transfer template as per [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules. Only fields in the request body are updated on the resource; fields which are omitted are not updated. Any wire transfer payment batches created from this template are unaffected. Changes made to this template are not applied to any wire transfer payment batches previously created by this template.
      operationId: patchWireTransferTemplate
      x-apiture-api: bankingPaymentTemplates
      x-apiture-group: wireTransferTemplates
      tags:
        - Wire Transfer Templates
      requestBody:
        required: true
        description: The fields to update within the wire transfer template.
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/wireTransferTemplatePatch'
          application/json:
            schema:
              $ref: '#/components/schemas/wireTransferTemplatePatch'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/wireTransferTemplate'
        '400':
          $ref: '#/components/responses/400'
        '401':
          $ref: '#/components/responses/401'
        '403':
          $ref: '#/components/responses/403'
        '404':
          $ref: '#/components/responses/404'
        '422':
          description: |-
            Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

            This problem responsemay have one of the following `type` values:
            * [`https://static.api.apiture.com/errors/duplicateTemplateName/v1.0.0`](https://static.api.apiture.com/errors/duplicateTemplateName/v1.0.0)<br>
              The given template name already exists.
              Remediation: Choose a different name for the template.

            * [`https://static.api.apiture.com/errors/invalidInstitutionLocator/v1.0.0`](https://static.api.apiture.com/errors/invalidInstitutionLocator/v1.0.0)<br>
              The locator value for the financial institution is invalid.
              Remediation: Use a valid financial institution locator.
            The `attributes` object in the error may have the properties defined for [`invalidInstitutionLocator`](https://static.api.apiture.com/errors/invalidInstitutionLocator/v1.0.0).
            * [`https://static.api.apiture.com/errors/propertiesIneligibleForLocking/v1.0.0`](https://static.api.apiture.com/errors/propertiesIneligibleForLocking/v1.0.0)<br>
              The property cannot be locked due to an incompatible value.
              Remediation: Assign a different value for the property before locking.
            The `attributes` object in the error may have the properties defined for [`propertiesIneligibleForLocking`](https://static.api.apiture.com/errors/propertiesIneligibleForLocking/v1.0.0).
          x-apiture-errors:
            - duplicateTemplateName
            - invalidInstitutionLocator
            - propertiesIneligibleForLocking
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/problemResponse'
            application/json:
              schema:
                $ref: '#/components/schemas/problemResponse'
        '429':
          $ref: '#/components/responses/429'
        4XX:
          $ref: '#/components/responses/4XX'
        5XX:
          $ref: '#/components/responses/5XX'
      security:
        - accessToken:
            - banking/write
      x-apiture-permission: patchWireTransferTemplate
components:
  securitySchemes:
    apiKey:
      type: apiKey
      name: API-Key
      in: header
      description: API Key based client identification. See details at [Secure Access](https://developer.apiture.com/docs/secure-access).
      x-resolved-from: ../../common/openapi.yaml#/components/securitySchemes/apiKey
    accessToken:
      type: openIdConnect
      description: OpenId Connect (OIDC) authentication/authorization. The client uses the `authorization_endpoint` and `token_endpoint` to obtain an access token to pass in the `Authorization` header. Those endpoints are available via the OIDC Configuration URL. The actual URL may vary with each financial institution. See details at [Secure Access](https://dx.apiture.com/docs/api/concepts/api-keys/).
      openIdConnectUrl: https://auth.apiture.com/oidc/.well-known/openid-configuration
      x-resolved-from: ../../common/openapi.yaml#/components/securitySchemes/accessToken
  schemas:
    productConstraints:
      title: Product Constraints (v1.0.0)
      description: Constraints on banking accounts based on this banking product, such as minimum and maximum balances. All properties are optional. If a property is not present, that constraint does not apply to accounts.
      type: object
      properties:
        minimumBalance:
          description: The minimum balance for accounts of this product. The numeric value is represented as a string so that it can be exact with no loss of precision. This balance is in the `currency` for the product.
          $ref: '#/components/schemas/monetaryValue'
        minimumFundingAmount:
          description: The minimum monetary value when funding a new account of this product. The numeric value is represented as a string so that it can be exact with no loss of precision. This balance is in the `currency` for the product.
          $ref: '#/components/schemas/monetaryValue'
        maximumFundingAmount:
          description: The maximum monetary value when funding a new account of this product. The numeric value is represented as a string so that it can be exact with no loss of precision. This balance is in the `currency` for the product.
          $ref: '#/components/schemas/monetaryValue'
        minimumTransferAmount:
          description: The minimum monetary value for new transfers from accounts of this product. The numeric value is represented as a string so that it can be exact with no loss of precision. This balance is in the `currency` for the product.
          $ref: '#/components/schemas/monetaryValue'
        maximumTransferAmount:
          description: The maximum monetary value for new transfers from accounts of this product. The numeric value is represented as a string so that it can be exact with no loss of precision. This balance is in the `currency` for the product.
          $ref: '#/components/schemas/monetaryValue'
        maximumWithdrawalCount:
          description: The maximum number of withdrawals allowed per cycle. If not present, there is no hard limit.
          type: integer
          format: int16
          minimum: 0
          maximum: 65535
        fundingTerm:
          description: The time limit within which account opening funding must occur after account creation. This is expressed as an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) duration;  only day and month periods are allowed, and the only allowed fractional value for months is 0.5, as in `P5D` or `P14D` or `P1M` or `P0.5M`.
          type: string
          format: duration
          maxLength: 6
      example:
        minimumBalance: '500.00'
        minimumFundingAmount: '500.00'
        maximumFundingAmount: '25000.00'
        minimumTransferAmount: '10.00'
        maximumTransferAmount: '25000.00'
        maximumWithdrawalCount: 6
        fundingTerm: P30D
      x-apiture-version: 1.0.0
    bankingProductFields:
      x-apiture-version: 1.3.0
      title: Banking Product Fields (v1.3.0)
      description: Common fields of the product resource used to build other model schemas.
      type: object
      allOf:
        - $ref: '#/components/schemas/productReference'
        - type: object
          properties:
            customerType:
              description: Describes the target audience or consumer of the accounts, `personal` or `business`. Labels and descriptions for the enumeration values are in the `productTarget` key in the response of the `getLabels` operation.
              $ref: '#/components/schemas/productCustomerType'
    bankingProductItem:
      x-apiture-version: 1.3.0
      title: Product Item (v1.3.0)
      description: Summary representation of a product resource in products collections. To fetch the full representation of this product, use the [`getBankingProduct`](#op-getBankingProduct) operation, passing this item's `id` field as the `bankingProductId` path parameter.
      required:
        - id
        - customerType
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/bankingProductFields'
        - type: object
          properties:
            id:
              description: The unique identifier for this product resource. This is an immutable opaque string.
              $ref: '#/components/schemas/readOnlyResourceId'
      example:
        id: 9d8f45ef9be307e1405d
        customerType: personal
        type: cd
        coreType: CD
        code: 180D_CDA
        label: 180 Day CD
        description: 180-day Certificate of Deposit account that earns 1.60%
    bankingProduct:
      x-apiture-todo: major version bump; adds ID field to documents
      x-apiture-version: 2.4.0
      title: Banking Product (v2.4.0)
      description: Representation of a banking product resource.
      type: object
      required:
        - currency
        - constraints
      allOf:
        - $ref: '#/components/schemas/bankingProductItem'
        - type: object
          properties:
            currency:
              description: The [ISO 4217 currency code](https://en.wikipedia.org/wiki/ISO_4217) for accounts based on this product.
              $ref: '#/components/schemas/currencyCode'
            primaryHighlights:
              description: |-
                A list of descriptive strings which highlight attributes of the product, to be presented to the end users in the product details. The strings may include these product property references:

                  * `{depositRates.apy}`
                  * `{depositRates.apr}`
                  * `{depositRates.accrualType}`

                **Note**: The corresponding values are inserted into these `primaryHighlights` and `secondaryHighlights` strings only when the `?resolve=true` option is used on the [`getBankingProduct`](#op-getBankingProduct) call.
              type: array
              maxItems: 16
              items:
                type: string
                format: text
                maxLength: 512
            secondaryHighlights:
              description: A list of descriptive strings which highlight secondary attributes of the product, to be presented to the end users in the product details. The strings may include these product property as described for `primaryHighlights`.
              type: array
              maxItems: 16
              items:
                type: string
                maxLength: 512
                format: template
            constraints:
              $ref: '#/components/schemas/productConstraints'
            rates:
              description: The interest rates for this product, if this is a loan product.
              $ref: '#/components/schemas/productInterestRates'
            cd:
              description: Properties of CD banking products. This property is present only if `type` is `cd`.
              $ref: '#/components/schemas/cdBankingProduct'
            documents:
              description: A list of documents related to the banking product, such as the product terms and conditions and other disclosures.
              type: array
              maxItems: 100
              items:
                $ref: '#/components/schemas/bankingProductDocument'
      example:
        id: 0399abed-fd3d
        type: cd
        customerType: personal
        coreType: CD
        code: 180D_CDA
        label: 180 Day CD
        currency: USD
        description: Certificate of Deposit with a 180 day term
        constraints:
          minimumBalance: '500.00'
          minimumFundingAmount: '500.00'
          maximumFundingAmount: '25000.00'
          minimumTransferAmount: '10.00'
          maximumTransferAmount: '25000.00'
          maximumWithdrawalCount: 6
          fundingTerm: P30D
        cd:
          minimumTerm: P180D
          maximumTerm: P180D
          depositsRestrictedAfterGracePeriod: true
          depositsRestrictedAfterFunding: true
          debitGracePeriod: P14D
          depositGracePeriod: P14D
        rates:
          apr: '1.40'
          apy: '1.44'
          compoundPeriod: P1D
          accrualType: compounding
        primaryHighlights:
          - High APY of {depositRates.apy}%
          - No monthly fees if minimum balance of ${constraints.minimumBalance} is maintained.
        secondaryHighlights:
          - Optional electronic delivery of monthly statements
        documents:
          - id: 86aac4ee-b695
            type: termsAndConditions
            title: Terms and Conditions for 180 Day CD Accounts
            contentType: application/pdf
            url: http://cdn.apiture.com/TCF/product-documents/P003CD180/termsAndConditions-2023-05.pdf
          - id: abd5ef6b-3c44
            type: electronicConsent
            title: Tiburon Community Financial Electronic Consent
            contentType: text/html
            url: http://cdn.apiture.com/TCF/product-documents/termsAndConditions-2023-05.html
          - id: 598e24f9-2763
            type: other
            title: Tiburon Community Financial Bank Depositor Agreement
            contentType: application/pdf
            url: http://cdn.apiture.com/TCF/product-documents/bank-depositor-agreement-2023-05.pdf
    bankingProductDocument:
      x-apiture-version: 2.1.0
      title: Banking Product Document (v2.1.0)
      description: A document associated with a banking product offered by a financial institution.
      type: object
      required:
        - id
        - type
        - title
        - contentType
        - url
      properties:
        id:
          description: The identifier of this disclosure document resource. This is an opaque string.
          $ref: '#/components/schemas/readOnlyResourceId'
        type:
          description: The document type.
          $ref: '#/components/schemas/bankingDisclosureDocumentType'
        title:
          description: The human-readable title for this document.
          type: string
          minLength: 4
          maxLength: 128
          format: text
        contentType:
          description: The [media type](https://tools.ietf.org/html/rfc6838) of this document.
          $ref: '#/components/schemas/contentType'
        url:
          description: The URL where the document is located. This must be publicly accessible without authentication.
          type: string
          format: uri
          maxLength: 128
      example:
        id: 86aac4ee-b695
        type: termsAndConditions
        title: Terms and Conditions for 180 Day CD Accounts
        contentType: application/pdf
        url: http://cdn.apiture.com/TCF/product-documents/P003CD180/termsAndConditions-2023-05.pdf
    cdBankingProduct:
      title: CD Banking Product (v1.0.0)
      description: Describes a banking product for Certificate of Deposit (CD) accounts.
      type: object
      required:
        - minimumTerm
        - depositsRestrictedAfterGracePeriod
        - depositsRestrictedAfterFunding
        - debitGracePeriod
        - depositGracePeriod
      properties:
        minimumTerm:
          description: |-
            The minimum maturity term offered by this product, for products such as certificates of deposits. See also `maximumTerm`. For example, some CD products may be opened with a flexible term such as 31 to 181 days, expressed as `minimumTerm: P31D, maximumTerm: P181D`. For fixed-term products, `minimumTerm` and `maximumTerm` are the same.

            This value is an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) string of the form `P[n]Y[n]M[n]D` to specify the term in the number of years/months/days. For example, the values `P30D`, `P6M`, `P2Y` indicate a term of 30 days, six months, and two years, respectively.
          type: string
          format: duration
          minLength: 3
          maxLength: 6
          example: P31D
        maximumTerm:
          description: |-
            The maximum maturity term offered by this product, for products such as certificates of deposits. If omitted, there is no fixed term (not all product types impose a fixed term). For example, some CD products may be opened with a flexible term such as 31 to 181 days, expressed as `minimumTerm: P31D, maximumTerm: P181D`. For fixed-term products, `minimumTerm` and `maximumTerm` are the same.

            This value is an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) string of the form `P[n]Y[n]M[n]D` to specify the term in the number of years/months/days. For example, the values `P30D`, `P6M`, `P2Y` indicate a term of 30 days, six months, and two years, respectively.
          type: string
          format: duration
          minLength: 3
          maxLength: 6
          example: P31D
        depositsRestrictedAfterGracePeriod:
          description: If true, deposits are not allowed after the rollover grace period (see `depositGracePeriod`). This applies to CD products only.
          type: boolean
          default: true
        depositsRestrictedAfterFunding:
          description: If true, deposits are not allowed after the initial account funding has completed. This typically applies to CD products.
          type: boolean
          default: true
        depositGracePeriod:
          description: A period of time after account rollover when additional deposits are allowed. This is an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) duration. Only day and month periods are allowed, and the only allowed fractional value for months is 0.5, as in `P5D` or `P14D` or `P1M` or `P0.5M`.
          type: string
          format: duration
          maxLength: 6
        debitGracePeriod:
          description: A period of time after account rollover when debits (withdrawals) are allowed. This is an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) duration. Only day and month periods are allowed, and the only allowed fractional value for months is 0.5, as in `P5D` or `P14D` or `P1M` or `P0.5M`.
          type: string
          format: duration
          maxLength: 6
      example:
        minimumTerm: P6M
        maximumTerm: P6M
        depositsRestrictedAfterGracePeriod: true
        depositsRestrictedAfterFunding: true
        depositGracePeriod: P14D
        debitGracePeriod: P14D
      x-apiture-version: 1.0.0
    bankingProducts:
      x-apiture-version: 1.3.0
      title: Banking Product Collection (v1.3.0)
      description: Collection of banking products offered by the financial institution.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: An array containing the banking product items.
              type: array
              maxItems: 10000
              items:
                $ref: '#/components/schemas/bankingProductItem'
      example:
        items:
          - id: 3c1fecca79d826f86a6b
            type: cd
            customerType: personal
            coreType: CD
            code: 30D_CDA
            label: 30 Day CD
            description: 30-day Certificate of Deposit account that earns 1.50%
          - id: 97321f98fece14faa978
            type: cd
            customerType: personal
            coreType: CD
            code: 90D_CDA
            label: 90 Day CD
            description: 90-day Certificate of Deposit account that earns 1.55%
          - id: 3545997133afaf3dcd30
            type: cd
            customerType: personal
            coreType: CD
            code: 180D_CDA
            label: 180 Day CD
            description: 180-day Certificate of Deposit account that earns 1.60%
          - id: 37fcd855d7873549584d
            type: savings
            customerType: personal
            coreType: SAV
            code: SAV_01
            label: Basic Savings
            description: Basic savings account that earns 0.15%
    productState:
      title: Product State (v1.0.0)
      description: |+
        The state of this banking product.

        <strong><code>productState</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>active</code></strong></td><td>This product is active and available for use.</td>
            </tr>
        <tr>
            <td><strong><code>inactive</code></strong></td><td>This product is unavailable for use.</td>
            </tr>
        <tr>
            <td><strong><code>removed</code></strong></td><td>This product has been removed and is permanently unavailable for use.</td>
            </tr>
        </table>

      type: string
      enum:
        - active
        - inactive
        - removed
      x-apiture-enum: productState
      x-apiture-version: 1.0.0
    productType:
      x-apiture-version: 2.2.0
      title: Product Type (v2.2.0)
      description: |+
        The type (or category) of banking product.

        <strong><code>productType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>savings</code></strong></td><td>Savings: <p>Savings Account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>checking</code></strong></td><td>Checking: <p>Checking Account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>cd</code></strong></td><td>CD: <p>Certificate of Deposit Account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>ira</code></strong></td><td>IRA: <p>Individual Retirement Account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>loan</code></strong></td><td>Loan: <p>Loan Account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>creditCard</code></strong></td><td>Credit Card: <p>Credit Card Account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>moneyMarket</code></strong></td><td>Money Market: <p>Money Market Account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>healthSavings</code></strong></td><td>Health Savings: <p>Health Savings Account</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: productType
      enum:
        - savings
        - checking
        - cd
        - ira
        - loan
        - creditCard
        - moneyMarket
        - healthSavings
    productReference:
      title: Product Reference (v2.4.0)
      x-apiture-version: 2.4.0
      description: A reference to a banking product.
      type: object
      required:
        - type
        - coreType
        - code
        - label
      properties:
        type:
          description: The type of account.
          $ref: '#/components/schemas/productType'
        coreType:
          description: The account product type in the banking core. For example, some cores may use `"D"` for a demand deposit (checking) account, some may use `"DDA"`.
          type: string
          pattern: ^[A-Z0-9]{1,4}$
          minLength: 1
          maxLength: 4
        code:
          description: The product's product code which uniquely identifies the product from other banking products. Codes are unique to the financial institution. For example, different products with the same `type` and the same `coreType` but different rates or other properties have different product codes, such as `CD3M`, `DDA_HI_YLD`, `P3207`.
          type: string
          format: text
          minLength: 1
          maxLength: 16
          example: CD001
        label:
          description: A human-readable label for this banking product.
          type: string
          minLength: 2
          maxLength: 48
          format: text
        description:
          description: A human-readable description of this banking product.
          type: string
          minLength: 2
          maxLength: 400
          format: markdown
      example:
        type: cd
        coreType: CD
        code: 180D_CDA
        label: 180 Day CD
        description: Certificate of Deposit with a 180 day term
    productInterestRates:
      x-apiture-version: 1.2.0
      title: Product Interest Rates (v1.2.0)
      description: 'The interest rates for accounts based on this product. The `apy` and `apr` values are a decimal percentages, coded as strings in order to represent the rate exactly. Rates are coded to two decimal places. Rates are fixed, such `{ "apy" : "1.40" }` for _1.40% APY_.'
      required:
        - apr
      type: object
      properties:
        apr:
          description: 'The annual percentage rate (APY): the base interest rate as a percentage.'
          allOf:
            - $ref: '#/components/schemas/twoDecimalInterestRate'
        apy:
          description: 'The annual percentage yield (APY): the effective yield from interest, including compounding, as a percentage. Used on deposit account products. If the product has rate `tiers`, this is `tiers[0].apy` (the lowest tier).'
          allOf:
            - $ref: '#/components/schemas/twoDecimalInterestRate'
        nominal:
          description: The effective interest rate before accounting for inflation. Used on deposit and loan account products.
          allOf:
            - $ref: '#/components/schemas/twoDecimalInterestRate'
        compoundPeriod:
          description: The period at which interest compounds. This value is an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) string of the form `P[n]Y[n]M[n]D` to specify the compounding in the number of years/months/days. `P1D` mean compounded daily, `P1M` means compounded monthly, and `P0D` means compounded continuously.
          type: string
          format: duration
          example: P7D
          minLength: 3
          maxLength: 6
        accrualType:
          description: Indicates how interest is accrued according to the `compoundPeriod`.
          $ref: '#/components/schemas/productAccrualType'
        tiers:
          description: If present, the `apy` rate for the account statement period is based on looking up the account's minimum balance (in the current cycle) in this array. The items are sorted from lowest `minimumBalance` to highest. This array is not present if the rates are fixed (not based on the account's minimum balance) and defined in in the `apy` property.
          type: array
          items:
            $ref: '#/components/schemas/productInterestRateTier'
          minItems: 1
          maxItems: 200
      example:
        apr: '1.40'
        apy: '1.44'
        nominal: '1.44'
        compoundPeriod: P1D
        accrualType: compounding
    productInterestRateTier:
      x-apiture-version: 1.1.0
      title: Product Interest Rate Tier (v1.1.0)
      description: The rates offered for accounts whose minimum balance within the statement period meets or exceeds the tier's `minimumBalance` and which do not also meet the `minimumBalance` of a higher tier.
      required:
        - minimumBalance
        - apy
      type: object
      properties:
        minimumBalance:
          description: The minimum balance that a deposit account must hold to earn the rate in this tier. This value is expressed in the [`product`'s](#schema-bankingProduct) `currency`.
          allOf:
            - $ref: '#/components/schemas/monetaryValue'
        apy:
          description: 'The annual percentage yield (APY): the effective yield from interest, including compounding, as a percentage. Used on deposit account products.'
          allOf:
            - $ref: '#/components/schemas/twoDecimalInterestRate'
        nominal:
          description: The effective interest rate before accounting for inflation. Used on deposit and loan account products.
          allOf:
            - $ref: '#/components/schemas/twoDecimalInterestRate'
      example:
        apy: '1.40'
        nominal: '1.44'
        minimumBalance: '12000.00'
    productAccrualType:
      title: Accrual Type (v1.0.0)
      description: |+
        Indicates how interest is accrued according to the `compoundPeriod`.

        <strong><code>productAccrualType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>compounding</code></strong></td><td>Compounding interest</td>
            </tr>
        <tr>
            <td><strong><code>simple</code></strong></td><td>Simple interest</td>
            </tr>
        </table>

      type: string
      enum:
        - compounding
        - simple
      x-apiture-enum: productAccrualType
      x-apiture-version: 1.0.0
    productCustomerType:
      title: Product Customer Type (v1.0.0)
      description: |+
        Indicates the type of customer that uses this banking product: personal (retail) or business (commercial).

        <strong><code>productCustomerType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>personal</code></strong></td><td>Personal: <p>Retail banking products for personal customers</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>business</code></strong></td><td>Business: <p>Commercial banking products for business customers</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>both</code></strong></td><td>Personal and Business: <p>Banking products for personal or business customers</p>
        </td>
            </tr>
        </table>

      type: string
      enum:
        - personal
        - business
        - both
      x-apiture-enum: productCustomerType
      x-apiture-version: 1.0.0
    productOverdraftProtectionPoliciesFields:
      title: Banking Product Overdraft Protection Policies Fields (v1.0.0)
      x-apiture-fragment: true
      description: |
        The financial institutions policies which govern how the banking customer may elect or withdraw enrollment in the primary and/or secondary Overdraft Protection plans, if these are offered at the financial institution.
      type: object
      properties:
        primaryOffered:
          description: If `true`, the financial institution offers a primary overdraft protection plan for some banking products and accounts.
          type: boolean
        primaryDescriptionUri:
          type: string
          format: uri
          description: The URI of a document (typically `application/pdf`) that describes the primary overdraft protection plan offered by the financial institution for this banking product. Omitted if `primaryOffered` is `false`; required if `primaryOffered` is `true`
          maxLength: 2048
        secondaryOffered:
          description: If `true`, the financial institution offers a secondary overdraft protection plan for some banking products and accounts.
          type: boolean
        secondaryDescriptionUri:
          type: string
          format: uri
          description: The URI of a document (typically `application/pdf`) that describes the secondary overdraft protection plan offered by the financial institution for this banking product. Omitted if `secondaryOffered` is `false`; required if `secondaryOffered` is `true`
          maxLength: 2048
        secondaryIndependentOfPrimary:
          description: |-
            If `true`:
            * when a banking customer elects to enroll an account in the primary overdraft protection plan, the account is not automatically enrolled in the secondary overdraft protection plan, and * when a banking customer elects to withdraw an account from the primary overdraft protection plan, the account is not automatically withdrawn from the secondary overdraft protection plan.

            Always `false` if `secondaryOffered` is `false`.
          type: boolean
        secondaryElectionRequiresPrimaryElection:
          description: |-
            If `true`, when a banking customer elects to enroll in the secondary overdraft protection plan for an account, they must elect to enroll in the primary overdraft protection plan. Always `false` if `secondaryOffered` is `false`.

            Always `false` if `secondaryOffered` is `false`.
          type: boolean
        primaryWithdrawalRequiresSecondaryWithdrawal:
          description: |-
            If the user withdraws their election for (opts out of) the primary overdraft protection plan, the election for the secondary plan is also be withdrawn.

            Always `false` if `secondaryOffered` is `false`.
          type: boolean
      x-apiture-version: 1.0.0
    productOverdraftProtectionPolicies:
      title: Banking Product Overdraft Protection Policies (v1.0.0)
      description: The financial institutions policies which govern how the banking customer may elect or withdraw enrollment in the primary and/or secondary Overdraft Protection plans, if these are offered at the financial institution.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/productOverdraftProtectionPoliciesFields'
      required:
        - primaryOffered
        - secondaryOffered
        - secondaryIndependentOfPrimary
        - secondaryElectionRequiresPrimaryElection
        - primaryWithdrawalRequiresSecondaryWithdrawal
      x-apiture-version: 1.0.0
    bankPeerAccountFields:
      title: Bank Peer Account Fields (v1.0.0)
      description: Bank peer account fields, used to construct other schemas.
      x-apiture-fragment: true
      type: object
      properties:
        fullAccountNumber:
          $ref: '#/components/schemas/fullAccountNumber'
      x-apiture-version: 1.0.0
    newBankPeerAccount:
      title: New Bank Peer Account (v1.0.0)
      description: Identifies a new peer account at a bank.
      required:
        - fullAccountNumber
      allOf:
        - $ref: '#/components/schemas/bankPeerAccountFields'
      example:
        fullAccountNumber: '123456789'
      x-apiture-version: 1.0.0
    bankPeerAccount:
      title: Bank Peer Account (v1.0.0)
      description: |-
        A peer account for a bank financial institution.

        *Note*: The full account number is omitted unless the request includes the `?unmasked=true` query parameter.
      required:
        - maskedAccountNumber
      allOf:
        - $ref: '#/components/schemas/bankPeerAccountFields'
        - type: object
          properties:
            maskedAccountNumber:
              $ref: '#/components/schemas/maskedAccountNumber'
      example:
        maskedAccountNumber: '*6789'
        fullAccountNumber: '123456789'
      x-apiture-version: 1.0.0
    creditUnionPeerAccountFields:
      title: Credit Union Peer Account Fields (v1.0.0)
      description: Credit union peer account fields, used to construct other schemas.
      x-apiture-fragment: true
      type: object
      properties:
        fullMemberNumber:
          $ref: '#/components/schemas/fullMemberNumber'
        suffix:
          $ref: '#/components/schemas/creditUnionAccountSuffix'
      example:
        fullMemberNumber: '4002'
        suffix: C001
      x-apiture-version: 1.0.0
    creditUnionPeerAccount:
      title: Credit Union Peer Account (v1.0.0)
      description: |-
        A peer account within a credit union financial institution.

        *Note*: The full member number and suffix are omitted unless the request includes the `?unmasked=true` query parameter.
      required:
        - maskedMemberNumber
      allOf:
        - $ref: '#/components/schemas/creditUnionPeerAccountFields'
        - type: object
          properties:
            maskedMemberNumber:
              $ref: '#/components/schemas/maskedMemberNumber'
      example:
        maskedMemberNumber: '*02'
        fullMemberNumber: '4002'
        suffix: C001
      x-apiture-version: 1.0.0
    newCreditUnionPeerAccount:
      x-apiture-version: 1.1.0
      title: New Credit Union Peer Account (v1.1.0)
      description: Identifies a new peer account at a credit union.
      required:
        - fullMemberNumber
      allOf:
        - $ref: '#/components/schemas/creditUnionPeerAccountFields'
      example:
        fullMemberNumber: '4002'
        suffix: C001
    peerAccountFields:
      x-apiture-version: 1.1.0
      title: Peer Account Fields (v1.1.0)
      description: Common peer account resource fields, used to build other model schemas.
      type: object
      x-apiture-fragment: true
      properties:
        firstName:
          description: The account holder's first name.
          type: string
          format: text
          maxLength: 24
        lastName:
          description: The account holder's last name.
          type: string
          format: text
          maxLength: 24
        nickname:
          description: A nickname for this account.
          $ref: '#/components/schemas/accountNickname'
        type:
          $ref: '#/components/schemas/peerAccountProductType'
      example:
        firstName: Phil
        lastName: Chase
        nickname: Phil's checking
        type: checking
    peerAccountProductType:
      title: Peer Account Product Type (v1.0.0)
      description: |+
        The type (or category) of banking product.

        <strong><code>peerAccountProductType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>savings</code></strong></td><td>Savings: <p>Savings Account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>checking</code></strong></td><td>Checking: <p>Checking Account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>loan</code></strong></td><td>Loan: <p>Loan Account</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: peerAccountProductType
      enum:
        - savings
        - checking
        - loan
      x-apiture-version: 1.0.0
    newPeerAccount:
      x-apiture-version: 2.0.0
      title: New Peer Account (v2.0.0)
      description: Representation used to create a new peer account. The object must contain either `bank` or `creditUnion` properties (but not both).
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/peerAccountFields'
        - type: object
          properties:
            bank:
              $ref: '#/components/schemas/newBankPeerAccount'
            creditUnion:
              $ref: '#/components/schemas/newCreditUnionPeerAccount'
      required:
        - firstName
        - lastName
        - nickname
        - type
      example:
        firstName: Phil
        lastName: Chase
        nickname: Phil's checking
        type: checking
        creditUnion:
          fullMemberNumber: '4002'
          suffix: C001
    peerAccountImmutableFields:
      title: Peer Account Immutable Fields (v1.0.0)
      description: Peer account immutable fields, used to construct other schemas.
      x-apiture-fragment: true
      type: object
      allOf:
        - $ref: '#/components/schemas/createdAtField'
        - type: object
          properties:
            id:
              description: The unique identifier for this peer account resource. This is an immutable opaque string.
              $ref: '#/components/schemas/readOnlyResourceId'
            state:
              $ref: '#/components/schemas/peerAccountState'
            label:
              description: The human-readable label for this peer account. This is either the `nickname` (if assigned), or the name of the account's product `type` concatenated with the masked account/member number.
              type: string
              maxLength: 50
              example: Checking *1008
              format: text
              readOnly: true
      x-apiture-version: 1.0.0
    peerAccountItem:
      x-apiture-version: 2.0.0
      title: Peer Account Item (v2.0.0)
      description: Summary representation of a peer account resource. To fetch the full representation of this peer account, use the [`getPeerAccount`](#op-getPeerAccount) operation, passing this item's `id` field as the `peerAccountId` path parameter.
      type: object
      required:
        - id
        - state
        - firstName
        - lastName
        - nickname
        - type
        - label
        - createdAt
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/peerAccountImmutableFields'
        - $ref: '#/components/schemas/peerAccountFields'
      example:
        id: 211683072e1d6c05d9bb
        state: active
        firstName: Phil
        lastName: Chase
        nickname: Phil's checking
        label: Phil's checking
        type: checking
        createdAt: '2024-03-21T07:56:02.375Z'
    peerAccount:
      x-apiture-version: 2.0.0
      title: Peer Account (v2.0.0)
      description: A peer account resource - an account held by a peer at the same financial institution. This object has only one of the `bankAccount` or `creditUnionAccount` properties.
      type: object
      required:
        - id
        - state
        - firstName
        - lastName
        - nickname
        - type
        - label
        - createdAt
        - allows
        - hasPendingTransfers
        - hasFailedTransfers
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/peerAccountImmutableFields'
        - $ref: '#/components/schemas/peerAccountFields'
        - type: object
          properties:
            allows:
              $ref: '#/components/schemas/peerAccountPermissions'
            bank:
              $ref: '#/components/schemas/bankPeerAccount'
            creditUnion:
              $ref: '#/components/schemas/creditUnionPeerAccount'
            hasPendingTransfers:
              description: If `true`, then there are one or more pending (scheduled) transfers involving this peer account.
              type: boolean
            hasFailedTransfers:
              description: If `true`, then there are one or more failed transfers involving this peer account. This indicates the properties such as the `bank.fullAccountNumber` or `creditUnion.fullMemberNumber` may be incorrect and require attention.
              type: boolean
      example:
        id: 211683072e1d6c05d9bb
        firstName: Phil
        lastName: Chase
        nickname: Phil's checking
        label: Phil's checking
        state: active
        type: checking
        creditUnion:
          maskedMemberNumber: '*02'
          suffix: C001
        allows:
          transferTo: true
          transferFrom: false
          delete: false
          archive: true
          patch: true
          replace: true
        createdAt: '2024-03-21T07:56:02.375Z'
        hasPendingTransfers: true
        hasFailedTransfers: false
    peerAccountPatch:
      title: Peer Account Patch (v1.0.0)
      description: Request data to patch a peer account.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            nickname:
              description: An optional nickname for this account.
              type:
                - string
                - 'null'
              maxLength: 50
              format: text
              example: Martin's college allowance checking
      x-apiture-version: 1.0.0
    bankPeerAccountReplacement:
      title: New Bank Peer Account (v1.0.0)
      description: Identifies a new peer account at a bank.
      allOf:
        - $ref: '#/components/schemas/bankPeerAccountFields'
      example:
        fullAccountNumber: '123456789'
      x-apiture-version: 1.0.0
    creditUnionPeerAccountReplacement:
      title: New Credit Union Peer Account Patch (v1.0.0)
      description: Identifies a new peer account at a credit union.
      allOf:
        - $ref: '#/components/schemas/creditUnionPeerAccountFields'
      example:
        fullMemberNumber: '4002'
        suffix: C001
      x-apiture-version: 1.0.0
    peerAccountReplacement:
      x-apiture-version: 1.1.0
      title: Peer Account Replacement (v1.1.0)
      description: Representation used to replace key account identification properties of a peer account. The object must contain either `bank` or `creditUnion` properties (but not both).
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/peerAccountFields'
        - type: object
          properties:
            bank:
              $ref: '#/components/schemas/bankPeerAccountReplacement'
            creditUnion:
              $ref: '#/components/schemas/creditUnionPeerAccountReplacement'
      example:
        firstName: Phil
        lastName: Chase
        nickname: Phil's checking
        type: checking
        creditUnion:
          fullMemberNumber: '4002'
          suffix: C001
    peerAccounts:
      x-apiture-version: 2.0.0
      title: Peer Account Collection (v2.0.0)
      description: A list of the customer's/member's peer accounts. There is no default sort order for the items. This list is not paginated. The number of `items` is the number of accounts that match the filter criteria. The `totalCount` is the customer/member's total number of peer accounts, ignoring any filters.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - maximumPeerAccounts
            - totalCount
            - items
          properties:
            totalCount:
              description: The customer/member's total number of peer accounts, ignoring any filters. The financial institution limits the number of peer accounts each customer/member may have (usually 15, but no more than 100).
              type: integer
              format: int32
              minimum: 0
              maximum: 100
            maximumPeerAccounts:
              description: The maximum number of peer accounts the customer/member can create. Attempts to create a new peer account fail if the `totalCount` of peer accounts is equal to this maximum.
              type: integer
              format: int32
              minimum: 0
              maximum: 100
            items:
              description: An array containing a list of peer account items.
              type: array
              maxItems: 100
              items:
                $ref: '#/components/schemas/peerAccountItem'
      example:
        maximumPeerAccounts: 15
        totalCount: 2
        items:
          - id: 211683072e1d6c05d9bb
            firstName: Phil
            lastName: Chase
            nickname: Phil's checking
            label: Phil's checking
            state: active
            type: checking
            createdAt: '2024-03-21T07:56:02.375Z'
          - id: 5a7a84543f3328c96389
            firstName: Sally
            lastName: Chase
            nickname: Sally's savings
            label: Sally's savings
            state: active
            type: savings
            createdAt: '2024-03-21T07:56:02.375Z'
    pendingAccountVerificationLetter:
      title: Pending Account Verification Letter (v1.0.0)
      description: Response when an account verification letter is pending but not yet available. There are no properties in this object response.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - properties: {}
      x-apiture-version: 1.0.0
    loanPayoffQuoteRequest:
      title: Loan Payoff Quote Request (v1.0.0)
      description: Request for a loan payoff quote.
      type: object
      required:
        - payoffOn
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            payoffOn:
              description: The target loan payoff date, in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` UTC format.
              allOf:
                - $ref: '#/components/schemas/date'
      example:
        payoffOn: '2024-07-22'
      x-apiture-version: 1.0.0
    loanPayoffQuote:
      title: Loan Payoff Quote (v1.0.0)
      description: |-
        Response when a loan payoff quote is requested.

        The `payoffEffectiveOn` date may have been adjusted from the `payoffOn` date to ensure the payoff date falls on a business day.

        The `amount` includes daily accrued interest up to and including the `payoffEffectiveOn` date.
      type: object
      required:
        - amount
        - payoffOn
        - payoffEffectiveOn
        - label
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            amount:
              description: The total amount that must be paid to satisfy the loan, including the current balance and daily accrued interest up to and including the `payoffEffectiveOn` date.
              allOf:
                - $ref: '#/components/schemas/money'
            payoffOn:
              description: The target loan payoff date, in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` UTC format.
              allOf:
                - $ref: '#/components/schemas/date'
            payoffEffectiveOn:
              description: The effective loan payoff date, which may have been adjusted from the target loan payoff date, in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` UTC format.
              allOf:
                - $ref: '#/components/schemas/date'
            label:
              description: A pre-formatted message meant to display information about the loan payoff, such as effective loan payoff date and amount.
              type: string
              format: text
              maxLength: 2048
      example:
        amount:
          value: '1000.00'
          currency: USD
        payoffOn: '2024-07-22'
        payoffEffectiveOn: '2024-07-22'
        label: The payoff amount of $1,0000.00 is valid through Monday, July 22 2024.
      x-apiture-version: 1.0.0
    accountIds:
      x-apiture-version: 1.1.0
      title: Account IDs (v1.1.0)
      description: An array of account IDs.
      type: array
      minItems: 1
      x-apiture-note: 1000 maxItems is tied to 1000 maximum of the ?limit query parameter
      maxItems: 1000
      uniqueItems: true
      items:
        $ref: '#/components/schemas/resourceId'
    accountAllowsFilter:
      x-apiture-version: 2.0.0
      title: Account Allows Filter (v2.0.0)
      description: |+
        Values for the `?allows=` filter in [`listAccounts`](#op-listAccounts).

        <strong><code>accountAllowsFilter</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>billPay</code></strong></td><td>Bill Pay: <p>Include each account where the caller is allowed to use the bill pay feature.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>transferFrom</code></strong></td><td>Transfer From: <p>Include each account where the caller is allowed to transfer money from the account.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>transferTo</code></strong></td><td>Transfer To: <p>Include each account where the caller is allowed to transfer money into the account.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>mobileCheckDeposit</code></strong></td><td>Mobile Check Deposit: <p>Include each account where the caller is allowed to deposit mobile checks.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>view</code></strong></td><td>View: <p>Include each account where the caller is allowed to view full account details (balances, full account number, transactions, etc).</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>viewCards</code></strong></td><td>View Cards: <p>Include each account where the caller is allowed to view debit card details.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>manageCards</code></strong></td><td>Manage Cards: <p>Include each account where the caller is allowed to manage debit card details.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>viewLoanPayoffQuote</code></strong></td><td>View Loan Payoff Quote: <p>Include each account where the caller is allowed to view a loan payoff quote.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>manageOverdraftProtectionElections</code></strong></td><td>Manage Overdraft Protection Elections: <p>Include each account where the caller is allowed to manage overdraft protection plan elections.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>realTimePaymentFrom</code></strong></td><td>Real-Time Payments From: <p>Include each account where the caller is allowed to send credit real-time payments.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>realTimePaymentTo</code></strong></td><td>Real-Time Payments To: <p>Include each account where the caller is allowed to receive debit real-time payments.</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: accountAllowsFilter
      enum:
        - billPay
        - transferFrom
        - transferTo
        - mobileCheckDeposit
        - view
        - viewCards
        - manageCards
        - viewLoanPayoffQuote
        - manageOverdraftProtectionElections
        - realTimePaymentFrom
        - realTimePaymentTo
    realTimePaymentAccountAllowsFilter:
      title: Account Allows Filter (v1.0.0)
      description: |+
        Values for the `?allows=` filter in [`listEligibleRealTimePaymentAccounts`](#op-listEligibleRealTimePaymentAccounts).

        <strong><code>realTimePaymentAccountAllowsFilter</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>realTimePaymentFrom</code></strong></td><td>Real-Time Payments From: <p>Include each account where the caller is allowed to send credit real-time payments.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>realTimePaymentTo</code></strong></td><td>Real-Time Payments To: <p>Include each account where the caller is allowed to receive debit real-time payments.</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: realTimePaymentAccountAllowsFilter
      enum:
        - realTimePaymentFrom
        - realTimePaymentTo
      x-apiture-version: 1.0.0
    accountPermissions:
      title: Account Permissions (v2.0.0)
      description: Flags which indicate the permissions the current authorized user has on this account item resource. Most of these properties may only be `true` for internal accounts. These permissions are available in account items in the [`accounts`](#schema-accounts) list. See [`fullAccountPermissions`](#schema-fullAccountPermissions) for all capabilities a customer has on an account (the `account.allows` object in the [`account`](#schema-account) object response from [`getAccount`](#op-getAccount).)
      x-apiture-version: 2.0.0
      type: object
      required:
        - billPay
        - mobileCheckDeposit
        - transferTo
        - transferFrom
        - view
        - viewCards
        - manageCards
        - viewLoanPayoffQuote
        - realTimePaymentFrom
        - realTimePaymentTo
      properties:
        billPay:
          description: If `true`, the customer may use this account for Bill Pay.
          type: boolean
        mobileCheckDeposit:
          description: If `true`, the customer may use this account for mobile check deposits.
          type: boolean
        transferFrom:
          description: If `true`, the customer may use this account as the target (deposit) account for account-to-account transfers.
          type: boolean
        transferTo:
          description: If `true`, the customer may use this account as the source (debit) account for account-to-account transfers.
          type: boolean
        view:
          description: If `true`, the customer may view the details of this account, including the account balance and transactions.
          type: boolean
        viewCards:
          description: If `true`, the customer may view debit cards associated with this account.
          type: boolean
        manageCards:
          description: If `true`, the customer may manage debit cards associated with this account. This includes locking and unlocking cards, changing card controls, ordering cards, or canceling cards.
          type: boolean
        viewLoanPayoffQuote:
          description: If `true`, the customer may view a loan payoff quote for this account. Only valid for accounts where `product.type` is `loan`.
          type: boolean
        realTimePaymentFrom:
          description: If `true`, the customer may use this account to send credit real-time payments.
          type: boolean
        realTimePaymentTo:
          description: If `true`, the customer may use this account to receive debit real-time payments.
          type: boolean
      examples:
        - billPay: false
          mobileCheckDeposit: true
          transferFrom: true
          transferTo: true
          view: true
          viewCards: true
          manageCards: false
          viewLoanPayoffQuote: false
          realTimePaymentFrom: true
          realTimePaymentTo: true
    realTimePaymentAccountPermissions:
      title: Real-Time Payment Account Permissions (v1.0.0)
      description: Flags which indicate the permissions the current authorized user has on this real-time payment account item resource. Most of these properties may only be `true` for internal accounts. These permissions are available in account items in the [`realTimePaymentAccounts`](#schema-realTimePaymentAccounts) list. See [`fullAccountPermissions`](#schema-fullAccountPermissions) for all capabilities a customer has on an account (the `account.allows` object in the [`account`](#schema-account) object response from [`getAccount`](#op-getAccount).)
      type: object
      required:
        - realTimePaymentFrom
        - realTimePaymentTo
      properties:
        realTimePaymentFrom:
          description: If `true`, the customer may use this account to send credit real-time payments.
          type: boolean
        realTimePaymentTo:
          description: If `true`, the customer may use this account to receive debit real-time payments.
          type: boolean
      examples:
        - realTimePaymentFrom: true
          realTimePaymentTo: true
      x-apiture-version: 1.0.0
    peerAccountState:
      title: Peer Account State (v1.0.0)
      description: |+
        Peer account state

        <strong><code>peerAccountState</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>active</code></strong></td><td>Active: <p>The account is active and eligible for transfers</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>archived</code></strong></td><td>Archived: <p>The customer/member has archived this peer account.</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: peerAccountState
      enum:
        - active
        - archived
      x-apiture-version: 1.0.0
    peerAccountPermissions:
      x-apiture-version: 1.1.0
      title: Peer Account Permissions (v1.1.0)
      description: Flags which indicate the permissions the current authorized user has on this peer account resource.
      type: object
      required:
        - transferTo
        - transferFrom
        - delete
        - archive
        - patch
        - replace
      properties:
        transferFrom:
          description: If `true`, the customer may use this peer account as the target (deposit) account for account-to-account transfers.
          type: boolean
        transferTo:
          description: If `true`, the customer may use this peer account as the source (debit) account for account-to-account transfers.
          type: boolean
        delete:
          description: If `true`, the user may delete this instance. If `false`, the user should resolve conflicts (such as canceling any transfers that involve the peer account) or archive the account instead.
          type: boolean
        archive:
          description: If `true`, the user may archive this instance using the [`archivePeerAccount`](#op-archivePeerAccount) operation.
          type: boolean
        patch:
          description: If `true`, the user may patch this resource using the [`patchPeerAccount`](#op-patchPeerAccount) operation.
          type: boolean
        replace:
          description: If `true`, the user may replace this peer account using the [`replacePeerAccount`](#op-replacePeerAccount) operation.
          type: boolean
      example:
        transferFrom: true
        transferTo: true
        delete: true
        archive: true
        patch: true
        replace: true
    fullAccountPermissions:
      x-apiture-version: 3.0.0
      title: Full Account Permissions (v3.0.0)
      description: Flags which indicate the permissions the current authorized user has on this account resource. Most of these properties may only be `true` for internal accounts. These permissions are available in [`account`](#schema-account) response from the [`getAccount`](#op-getAccount) operation. See [`accountPermissions`](#schema-accountPermissions) for the subset of permission in `account.allows` flags in the [`listAccounts`](#op-listAccounts) response.
      type: object
      allOf:
        - $ref: '#/components/schemas/accountPermissions'
        - type: object
          required:
            - manageJointOwners
            - manageOverdraftAccounts
            - generateVerificationLetter
          properties:
            manageJointOwners:
              description: If `true`, the customer can list the other joint owners on the account and invite new joint owners.
              type: boolean
            manageOverdraftAccounts:
              description: If `true`, the customer can list and manage additional overdraft sweep accounts to use for overdraft protection.
              type: boolean
            generateVerificationLetter:
              description: If `true`, the customer can obtain a verification letter for this account.
              type: boolean
      examples:
        - billPay: false
          mobileCheckDeposit: true
          transferFrom: true
          transferTo: true
          view: true
          viewCards: true
          manageCards: false
          viewLoanPayoffQuote: false
          realTimePaymentFrom: true
          realTimePaymentTo: true
          manageOverdraftAccounts: true
          manageJointOwners: true
          generateVerificationLetter: true
    account:
      title: Account (v6.1.0)
      x-apiture-version: 6.1.0
      description: A customer's internal banking account.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/accountFields'
        - type: object
          required:
            - electronicStatements
          properties:
            allows:
              $ref: '#/components/schemas/fullAccountPermissions'
            electronicStatements:
              description: If `true`, the customer has opted in to receive account statements electronically.
              type: boolean
            cd:
              description: Certificate of Deposit properties for the account. This property is only present if the account `type` is `cd`.
              type: object
              allOf:
                - $ref: '#/components/schemas/cdAccountSettings'
            overdraftProtectionElections:
              $ref: '#/components/schemas/overdraftProtectionElections'
      examples:
        - id: bf23bc970b78d27691e8
          nickname: Payroll Checking
          label: Payroll Checking *1008
          maskedNumber: '*1008'
          product:
            type: checking
            coreType: DDA
            code: DDA01
            label: Business Checking
          location: internal
          allows:
            transferFrom: false
            transferTo: true
            billPay: false
            mobileCheckDeposit: true
            view: true
            viewCards: true
            manageCards: false
            viewLoanPayoffQuote: false
            realTimePaymentFrom: true
            realTimePaymentTo: true
            manageJointOwners: true
            manageOverdraftAccounts: true
            generateVerificationLetter: true
          electronicStatements: true
          overdraftProtectionElections:
            primary:
              election: true
              lastUpdatedAt: '2024-03-04T04:05:24.375Z'
            secondary:
              election: false
    cdAccountMaturityPolicy:
      title: CD Account Maturity Policy (v1.0.0)
      description: |+
        Indicates how the principal and interest are processed upon this account's maturity. The values indicate whether to rollover to a CD account of the same rate and term, transfer funds to another (possibly new) deposit account, or simply hold the funds in the current account (which may no longer accrue interest). Labels and descriptions for the enumeration values are in the `maturityPolicy` key in the response of the `getLabels` operation.

        <strong><code>cdAccountMaturityPolicy</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>rolloverPrincipalAndInterest</code></strong></td><td>Rollover principal and interest: <p>Both principal and interest rollover into a CD of the same CD banking product and same term.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>transferPrincipalAndInterest</code></strong></td><td>Transfer principal and interest to a deposit account: <p>The principal and interest are both transferred to a new or existing deposit account.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>rolloverPrincipalAndTransferInterest</code></strong></td><td>Rollover principal and transfer interest: <p>The principal rolls over into the same CD banking product and the interest is transferred to new or a existing deposit account.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>holdPrincipalAndInterest</code></strong></td><td>Hold principal and accrued interest in the CD account until withdrawal: <p>The principal and interest are held in the current CD account. The account may or may not accrue further interest, depending on the terms of the CD banking product. Funds may be withdrawn or transferred.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>partialTransfer</code></strong></td><td>Partial Transfer: <p>Any funds greater than the maturity threshold are transferred to an existing deposit account and the rest remains on deposit. The account may or may not accrue further interest, depending on the terms of the CD banking product. Funds may be withdrawn or transferred.</p>
        </td>
            </tr>
        </table>

      type: string
      enum:
        - rolloverPrincipalAndInterest
        - transferPrincipalAndInterest
        - rolloverPrincipalAndTransferInterest
        - holdPrincipalAndInterest
        - partialTransfer
      x-apiture-enum: cdAccountMaturityPolicy
      x-apiture-version: 1.0.0
    cdAccountSettingsFields:
      title: CD Account Settings Fields (v1.0.0)
      description: Fields used to compose other account settings schemas.
      type: object
      x-apiture-fragment: true
      properties:
        maturityPolicy:
          description: What happens to the funds in the account upon maturity.
          allOf:
            - $ref: '#/components/schemas/cdAccountMaturityPolicy'
        rolloverProduct:
          description: The CD banking product to roll this account to, if the `maturityPolicy` indicates a rollover. The default is the same CD banking product.
          $ref: '#/components/schemas/productReference'
        transferAccount:
          description: The existing internal or external account where interest and/or balance are transferred at CD maturity if `maturityPolicy` is `transferPrincipalAndInterest` or rolloverPrincipalAndTransferInterest. The account must have `transferTo` entitlements for the account holder. `transferAccount` and `transferProduct` are mutually exclusive.
          $ref: '#/components/schemas/cdMaturityTransferAccount'
        transferProduct:
          description: The banking product for a new account where interest and/or balance are transferred at CD maturity, if `maturityPolicy` is `transferPrincipalAndInterest` or `rolloverPrincipalAndTransferInterest`. `transferAccount` and `transferProduct` are mutually exclusive.
          $ref: '#/components/schemas/productReference'
      x-apiture-version: 1.0.0
    cdAccountSettingsPatch:
      title: CD Account Settings Patch (v1.0.0)
      description: Mutable CD settings for an account.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/cdAccountSettingsFields'
      examples:
        - maturityPolicy: transferPrincipalAndInterest
          transferAccount:
            id: e821ce54-c715
            label: Premiere Checking *6789
            type: checking
            location: internal
        - maturityPolicy: rolloverProduct
          rolloverProduct:
            id: 6fbe55ebe9f78b61a0ab
            type: cd
            coreType: CD
            label: 1 Year High Yield CD
      x-apiture-version: 1.0.0
    cdAccountSettings:
      x-apiture-version: 2.0.0
      title: CD Account Settings (v2.0.0)
      description: Settings for Certificate of Deposit (CD) accounts.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/cdAccountSettingsFields'
        - type: object
          required:
            - maturesAt
            - term
            - maturityPolicy
            - inDebitGracePeriod
            - inCreditGracePeriod
          properties:
            lastRolloverOn:
              description: The date when the CD last had a rollover or renewal when reaching maturity in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format. This may be omitted if this CD has never previously reached maturity.
              $ref: '#/components/schemas/date'
            maturesAt:
              x-apiture-deprecated:
                since: 2.0.0
                replacement: the `maturesOn` field
                removeOn: 3.0.0
              description: 'The date-time that this account will mature, in [RFC 3339](https://tools.ietf.org/html/rfc3339) `date-time` UTC format: `YYYY-MM-DDThh:mm:ss.sssZ`.<br>**Warning**: The property `maturesAt` was deprecated on version `v2.0.0` of the schema. Use the `maturesOn` field instead. `maturesAt` will be removed on version `v3.0.0` of the schema.'
              $ref: '#/components/schemas/readOnlyTimestamp'
              deprecated: true
            maturesOn:
              description: The date that this account will mature, in [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format, `YYYY-MM-DD`.
              $ref: '#/components/schemas/date'
            term:
              description: The CD's maturity term. This value is an [ISO 8601 duration](https://en.wikipedia.org/wiki/ISO_8601#Durations) string of the form `P[n]Y[n]M[n]D` to specify the term in the number of years/months/days. For example, the values `P30D`, `P6M`, `P2Y` indicate a term of 30 days, six months, and two years, respectively.
              type: string
              format: duration
              readOnly: true
              minLength: 3
              maxLength: 6
              examples:
                - P6M
                - P180D
            inDebitGracePeriod:
              description: If `true, the account is in the grace period in which withdrawals are allowed without penalty.
              type: boolean
            inCreditGracePeriod:
              description: If `true`, the account is in the grace period in which deposits are allowed without penalty.
              type: boolean
            debitGracePeriodStartsOn:
              description: If the account is in a debit-eligible grace period, this is the date the grace period started for debits in [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format, `YYYY-MM-DD`. Otherwise, this field is omitted.
              $ref: '#/components/schemas/date'
            creditGracePeriodStartsOn:
              description: If the account is in a credit-eligible grace period, this is the date the grace period started for credits in [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format, `YYYY-MM-DD`. Otherwise, this field is omitted.
              $ref: '#/components/schemas/date'
            debitGracePeriodEndsOn:
              description: If the account is in a debit-eligible grace period, this is the date and time the grace period ends for debits in [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format, `YYYY-MM-DD`. Otherwise, this field is omitted.
              $ref: '#/components/schemas/date'
            creditGracePeriodEndsOn:
              description: If the account is in a credit-eligible grace period, this is the date and time the grace period ends for credits in [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format, `YYYY-MM-DD`. Otherwise, this field is omitted.
              $ref: '#/components/schemas/date'
            debitGracePeriodEndsAt:
              x-apiture-deprecated:
                since: 2.0.0
                replacement: the `debitGracePeriodEndsOn` field
                removeOn: 3.0.0
              description: 'If the account is in a debit-eligible grace period, this is the date and time the grace period ends for debits in [RFC 3339](https://tools.ietf.org/html/rfc3339) `date-time` format, `YYYY-MM-DDThh:mm:ssZ`. Otherwise, this field is omitted.<br>**Warning**: The property `debitGracePeriodEndsAt` was deprecated on version `v2.0.0` of the schema. Use the `debitGracePeriodEndsOn` field instead. `debitGracePeriodEndsAt` will be removed on version `v3.0.0` of the schema.'
              $ref: '#/components/schemas/readOnlyTimestamp'
              deprecated: true
            creditGracePeriodEndsAt:
              x-apiture-deprecated:
                since: 2.0.0
                replacement: the `creditGracePeriodEndsOn` field
                removeOn: 3.0.0
              description: 'If the account is in a credit-eligible grace period, this is the date and time the grace period ends for credits in [RFC 3339](https://tools.ietf.org/html/rfc3339) `date-time` format, `YYYY-MM-DDThh:mm:ssZ`. Otherwise, this field is omitted.<br>**Warning**: The property `creditGracePeriodEndsAt` was deprecated on version `v2.0.0` of the schema. Use the `creditGracePeriodEndsOn` field instead. `creditGracePeriodEndsAt` will be removed on version `v3.0.0` of the schema.'
              $ref: '#/components/schemas/readOnlyTimestamp'
              deprecated: true
      examples:
        - maturesAt: '2023-10-30T08:00:00.000Z'
          term: P6M
          maturityPolicy: transferPrincipalAndInterest
          transferAccount:
            id: e821ce54-c715
            label: Premiere Checking *6789
            type: checking
            location: internal
          inDebitGracePeriod: true
          inCreditGracePeriod: true
          debitGracePeriodStartsOn: '2023-11-01'
          creditGracePeriodStartsOn: '2023-11-01'
          debitGracePeriodEndsOn: '2023-11-11'
          creditGracePeriodEndsOn: '2023-11-11'
        - maturesAt: '2023-10-30T08:00:00.000Z'
          term: P6M
          maturityPolicy: rolloverProduct
          lastRolloverOn: '2023-05-28'
          rolloverProduct:
            id: 6fbe55ebe9f78b61a0ab
            type: cd
            coreType: CD
            label: 1 Year High Yield CD
          inDebitGracePeriod: false
          inCreditGracePeriod: false
    cdMaturityTransferAccount:
      title: CD Transfer Account (v1.0.0)
      description: |
        Properties of the target account for transferring funds from a maturing CD account.
      allOf:
        - $ref: '#/components/schemas/transferAccountReference'
      example:
        id: e821ce54-c715
        label: Premiere Checking *6789
        type: checking
        location: internal
      x-apiture-version: 1.0.0
    overdraftAccountFields:
      x-apiture-version: 1.1.0
      title: Overdraft Account Fields (v1.1.0)
      description: Fields of an overdraft protection account, used to compose other schemas.
      x-apiture-fragment: true
      type: object
      properties:
        id:
          description: The unique ID of the account resource. Use this as the `{accountId}` in [`getAccount`](#op-getAccount) or [`listAccountBalances`](#op-listAccountBalances).
          $ref: '#/components/schemas/resourceId'
        label:
          description: The human-readable label for this account. This is either the `nickname` (if assigned for the current customer), or the `product.label` concatenated with the `maskedNumber`.
          type: string
          maxLength: 80
          example: Checking *1008
          format: text
          readOnly: true
        maskedNumber:
          $ref: '#/components/schemas/maskedAccountNumber'
      example:
        id: 5c9b4e50a0401ef4eb2e
        label: Premiere Savings *1234
        maskedNumber: '*1234'
    eligibleOverdraftAccountItem:
      x-apiture-version: 1.1.0
      title: Eligible Overdraft Account (v1.1.0)
      description: An account that is eligible to be assigned as an overdraft protection account for another account.
      type: object
      required:
        - id
        - label
        - maskedNumber
      allOf:
        - $ref: '#/components/schemas/overdraftAccountFields'
      example:
        id: 5c9b4e50a0401ef4eb2e
        label: Premiere Savings *1234
        maskedNumber: '*1234'
    eligibleOverdraftAccounts:
      x-apiture-version: 1.1.1
      title: Eligible Overdraft Accounts (v1.1.1)
      description: A page of zero or more accounts that are eligible to be assigned as an overdraft protection sweep account for another account.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractPagedBody'
        - type: object
          required:
            - items
            - maximumOverdraftAccounts
          properties:
            items:
              description: The items in this page of accounts.
              type: array
              maxItems: 1000
              uniqueItems: true
              items:
                $ref: '#/components/schemas/eligibleOverdraftAccountItem'
            maximumOverdraftAccounts:
              description: The maximum number of overdraft protection accounts that may be linked to the account.
              type: integer
              format: int32
              readOnly: true
              minimum: 0
              maximum: 4
            nextPage_url:
              description: The URL of the next page of eligible accounts. If this URL is omitted, there are no more accounts.
              x-apiture-operations:
                - operationId: getAccount
              readOnly: true
              maxLength: 256
              type: string
              format: uri-reference
              example: https://static.api.apiture.com/banking/accounts/bf23bc970b78d27691e8/eligibleOverdraftAccounts?start=74f96e77c3aafcb9fe85?limit=100
      example:
        items:
          - id: da1331a9e9168ea91346
            label: Checking *3456
            maskedNumber: '*3456'
          - id: 5c9b4e50a0401ef4eb2e
            label: Premiere Savings *1234
            maskedNumber: '*1234'
        maximumOverdraftAccounts: 1
        limit: 100
        nextPage_url: https://static.api.apiture.com/banking/accounts/f204d292df9fb/eligibleOverdraftAccounts?start=641f62296ecbf1882c84?limit=100
    overdraftAccountItem:
      x-apiture-version: 1.1.0
      title: Overdraft Account Items (v1.1.0)
      description: An overdraft protection account linked to another protected account. The `label` and `maskedNumber` are informational only.
      required:
        - id
      type: object
      allOf:
        - $ref: '#/components/schemas/overdraftAccountFields'
    overdraftProtectionElection:
      title: Overdraft Protection Election (v1.0.0)
      description: Overdraft Protection Election. Describes whether an account holder has elected for an overdraft protection plan for this account or not, and when that election was last updated.
      type: object
      required:
        - election
      properties:
        election:
          description: If `true`, an account holder has elected to enable an overdraft protection plan for this account. `false` if the account holder has never set an election option or if the last change was to opt out of the plan.
          type: boolean
        lastUpdatedAt:
          description: The date and time when an account holder last changed the overdraft protection plan election. This property is omitted if an account holder has not yet changed the election for this plan.
          $ref: '#/components/schemas/readOnlyTimestamp'
      example:
        election: true
        lastUpdatedAt: '2024-03-04T04:05:24.375Z'
      x-apiture-version: 1.0.0
    overdraftProtectionElections:
      title: Overdraft Protection Elections (v1.0.0)
      description: Describes whether the account holder elected primary or secondary overdraft protection for the account and when those elections were last updated.
      type: object
      required:
        - primary
      properties:
        primary:
          description: Describes whether an account holder elected for the account to participate in the financial institution's primary overdraft protection plan.
          $ref: '#/components/schemas/overdraftProtectionElection'
        secondary:
          description: Describes whether an account holder elected for the account to participate in the financial institution's secondary overdraft protection plan. This value is only set if the financial institution offers a secondary overdraft protection plan.
          $ref: '#/components/schemas/overdraftProtectionElection'
      example:
        primary:
          election: true
          lastUpdatedAt: '2024-03-04T04:05:24.375Z'
        secondary:
          election: false
      x-apiture-version: 1.0.0
    accountOverdraftProtectionElectionUpdate:
      title: Account Overdraft Protection Election Update (v1.0.0)
      description: Describes an account and whether the the authorized account holder wishes to enroll in the primary or secondary overdraft protection plan for that account. This operation does not change the `primary` or `secondary` plan elections for the account if the corresponding properties are omitted from the request body item.
      type: object
      required:
        - id
      properties:
        id:
          description: The `id` of an internal banking account (held at the financial institution).
          $ref: '#/components/schemas/resourceId'
        primary:
          description: |-
            `true` if the authorized user wishes to enable the financial institution's primary overdraft
             protection plan for this account; `false` to remove the the plan from this account.
             This property is honored if and only if the financial institution offers a secondary overdraft protection plan.
          type: boolean
        secondary:
          description: |-
            `true` if the authorized user wishes to enable the financial institution's secondary overdraft
             protection plan for this account; `false` to remove the the plan from this account.
             This property is honored if and only if the financial institution offers a secondary overdraft protection plan.
          type: boolean
      example:
        id: 4b350c7462d9722b94ef
        primary: true
        secondary: false
      x-apiture-version: 1.0.0
    bulkAccountOverdraftProtectionElectionsUpdate:
      title: Bulk Overdraft Protection Elections Update (v1.0.0)
      description: A request to change the overdraft protection elections for one or more accounts.
      required:
        - items
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            items:
              description: The overdraft protection plan elections to change, one for for each account.
              type: array
              minItems: 1
              maxItems: 128
              items:
                $ref: '#/components/schemas/accountOverdraftProtectionElectionUpdate'
      example:
        items:
          - id: 4b350c7462d9722b94ef
            primary: true
            secondary: true
          - id: 15de200607a00c8a2aef
            primary: false
            secondary: false
      x-apiture-version: 1.0.0
    accountOverdraftProtectionElections:
      title: Account Overdraft Protection Elections (v1.0.0)
      description: Indicates if the account holder has elected for an internal banking account referenced by `id` to be protected by the primary or secondary overdraft protection offered by the financial institution, and when those elections were last updated.
      type: object
      required:
        - id
      properties:
        id:
          description: The `id` of an internal banking account (held at the financial institution).
          $ref: '#/components/schemas/resourceId'
        primary:
          description: Whether the an account holder last elected for this account to be covered by the financial institution's primary overdraft protection plan. This value is only set if the financial institution offers a primary overdraft protection plan for the account.
          $ref: '#/components/schemas/overdraftProtectionElection'
        secondary:
          description: Whether the an account holder last elected for this account to be covered by the financial institution's secondary overdraft protection plan. This value is only set if the financial institution offers a secondary overdraft protection plan.
          $ref: '#/components/schemas/overdraftProtectionElection'
      example:
        id: 4b350c7462d9722b94ef
        primary:
          election: true
          lastUpdatedAt: '2024-03-04T04:05:24.375Z'
        secondary:
          election: false
          lastUpdatedAt: '2024-03-04T04:05:24.375Z'
      x-apiture-version: 1.0.0
    accountOverdraftProtectionElectionsList:
      title: Bulk Overdraft Protection Elections List (v1.0.0)
      description: A list of Overdraft Protection Elections for one or more accounts.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: The list of account overdraft properties elections.
              type: array
              minItems: 1
              maxItems: 128
              items:
                $ref: '#/components/schemas/accountOverdraftProtectionElections'
      example:
        items:
          - id: 4b350c7462d9722b94ef
            primary:
              election: true
              lastUpdatedAt: '2024-03-04T04:05:24.375Z'
            secondary:
              election: false
              lastUpdatedAt: '2024-03-04T04:05:24.375Z'
          - id: 15de200607a00c8a2aef
            primary:
              election: true
              lastUpdatedAt: '2024-03-04T04:05:24.375Z'
            secondary:
              election: true
              lastUpdatedAt: '2024-03-04T04:05:24.375Z'
      x-apiture-version: 1.0.0
    overdraftProtectionFields:
      x-apiture-version: 1.1.2
      title: Overdraft Protection Fields (v1.1.2)
      description: Fields used to compose other overdraft protection schemas.
      x-apiture-fragment: true
      type: object
      properties:
        accounts:
          description: The ordered list of accounts assigned as overdraft protection sweep accounts. This array is limited to no more than `maximumOverdraftAccounts` accounts.
          type: array
          maxItems: 4
          uniqueItems: true
          items:
            $ref: '#/components/schemas/overdraftAccountItem'
    overdraftProtection:
      x-apiture-version: 1.2.0
      title: Overdraft Protection Settings (v1.2.0)
      description: Representation of the overdraft protection settings, consisting of a list of overdraft protection accounts linked to the account identified by the `{accountId}` (also known as overdraft protection sweep accounts), and elections for the primary and secondary overdraft protection plans.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/overdraftProtectionFields'
        - type: object
          required:
            - accounts
            - maximumOverdraftAccounts
            - elections
          properties:
            maximumOverdraftAccounts:
              description: The maximum number of overdraft protection accounts that may be linked to the account.
              type: integer
              format: int32
              readOnly: true
              minimum: 0
              maximum: 4
            elections:
              $ref: '#/components/schemas/overdraftProtectionElections'
      example:
        maximumOverdraftAccounts: 1
        accounts:
          - id: da1331a9e9168ea91346
            label: Checking *3456
            maskedNumber: '*3456'
          - id: 5c9b4e50a0401ef4eb2e
            label: Premiere Savings *1234
            maskedNumber: '*1234'
        elections:
          primary:
            election: true
            lastUpdatedAt: '2024-03-04T04:05:24.375Z'
          secondary:
            election: false
    overdraftProtectionPatch:
      x-apiture-version: 1.1.2
      title: Overdraft Protection Patch (v1.1.2)
      description: Representation of request used to patch the overdraft protection settings consisting of a list of overdraft protection accounts linked to the account identified by the `{accountId}`. Note that changes to elections for the primary or secondary overdraft protection plans is done with the [`setOverdraftProtectionElections`](#op-setOverdraftProtectionElections) operation.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/overdraftProtectionFields'
      example:
        items:
          - id: da1331a9e9168ea91346
            label: Checking *3456
            maskedNumber: '*3456'
          - id: 5c9b4e50a0401ef4eb2e
            label: Premiere Savings *1234
            maskedNumber: '*1234'
    overdraftProtectionPolicies:
      title: Overdraft Protection Policies (v1.0.0)
      description: |
        The financial institutions policies which govern how the banking customer may elect or withdraw enrollment in the primary and/or secondary Overdraft Protection plans, if these are offered at the financial institution.
      type: object
      required:
        - secondaryOffered
        - secondaryIndependentOfPrimary
        - secondaryElectionRequiresPrimaryElection
        - primaryWithdrawalRequiresSecondaryWithdrawal
      properties:
        secondaryOffered:
          description: If `true`, the financial institution offers a secondary overdraft protection plan for some banking products and accounts.
          type: boolean
        secondaryIndependentOfPrimary:
          description: |-
            If `true`:
            * when a banking customer elects to enroll an account in the primary overdraft protection plan, the account is not automatically enrolled in the secondary overdraft protection plan, and * when a banking customer elects to withdraw an account from the primary overdraft protection plan, the account is not automatically withdrawn from the secondary overdraft protection plan.

            Always `false` if `secondaryOffered` is `false`.
          type: boolean
        secondaryElectionRequiresPrimaryElection:
          description: |-
            If `true`, when a banking customer elects to enroll in the secondary overdraft protection plan for an account, they must elect to enroll in the primary overdraft protection plan. Always `false` if `secondaryOffered` is `false`.

            Always `false` if `secondaryOffered` is `false`.
          type: boolean
        primaryWithdrawalRequiresSecondaryWithdrawal:
          description: |-
            If the user withdraws their election for (opts out of) the primary overdraft protection plan, the election for the secondary plan is also be withdrawn.

            Always `false` if `secondaryOffered` is `false`.
          type: boolean
      x-apiture-version: 1.0.0
    accounts:
      title: Accounts (v5.1.1)
      x-apiture-version: 5.1.1
      description: A paginated list of the customer's accounts. This list contains internal banking accounts and external banking accounts. and outside fund accounts. The `location` property indicates where the account is held. Items in the list contain `url` links to the actual account resource which are in the `accounts`, `externalAccounts` or `outsideAccounts` collections.
      allOf:
        - $ref: '#/components/schemas/abstractPagedBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: The array of items in this page of accounts. This array may be empty.
              readOnly: true
              type: array
              maxItems: 1000
              items:
                $ref: '#/components/schemas/accountItem'
            count:
              description: The total number of accounts for which the user has access. This value ignores any filters. This value is _optional_ and may be omitted if the count is not computable efficiently.
              type: integer
              format: int32
              minimum: 0
              maximum: 25000
            primaryAccountId:
              description: The `id` of the customer's primary account. This property only exists for retail customers, and only if the customer has designated a primary account.
              $ref: '#/components/schemas/readOnlyResourceId'
            nextPage_url:
              description: The URL of the next page of accounts. If this URL is omitted, there are no more accounts.
              x-apiture-operations:
                - operationId: getAccount
              readOnly: true
              maxLength: 256
              type: string
              format: uri-reference
              example: https://static.api.apiture.com/banking/accounts/bf23bc970b78d27691e8
      example:
        nextPage_url: https://static.api.apiture.com/banking/accounts?start=641f62296ecbf1882c84?limit=100?allows=view
        count: 6
        limit: 100
        items:
          - id: bf23bc970b78d27691e8
            nickname: Payroll Checking
            label: Payroll Checking *1008
            product:
              type: checking
              coreType: DDA
              code: DDA01
              label: Business Checking
            maskedNumber: '*1008'
            location: internal
            allows:
              transferFrom: false
              transferTo: true
              billPay: false
              mobileCheckDeposit: true
              view: true
              viewCards: true
              manageCards: false
              viewLoanPayoffQuote: false
              realTimePaymentFrom: true
              realTimePaymentTo: true
            overdraftProtectionElections:
              primary:
                election: true
                lastUpdatedAt: '2024-03-04T04:05:24.375Z'
              secondary:
                election: false
          - id: b78d27691e8bf23bc970
            nickname: College CD
            label: College CD *2017
            product:
              type: cd
              code: CDA
              coreType: CD
              label: 24 Month CD
            maskedNumber: '*2017'
            location: internal
            allows:
              transferFrom: false
              transferTo: false
              billPay: false
              mobileCheckDeposit: false
              view: true
              viewCards: true
              manageCards: false
              viewLoanPayoffQuote: false
              realTimePaymentFrom: true
              realTimePaymentTo: true
            overdraftProtectionElections:
              primary:
                election: true
                lastUpdatedAt: '2024-03-04T04:05:24.375Z'
              secondary:
                election: false
    realTimePaymentAccounts:
      title: Real-Time Payment Accounts (v1.0.0)
      description: A paginated list of the customer's real-time payment accounts. This list contains internal banking accounts and external banking accounts. and outside fund accounts. The `location` property indicates where the account is held. Items in the list contain `url` links to the actual account resource which are in the `accounts`, `externalAccounts` or `outsideAccounts` collections.
      allOf:
        - $ref: '#/components/schemas/abstractPagedBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: The array of items in this page of real-time payment accounts. This array may be empty.
              readOnly: true
              type: array
              maxItems: 1000
              items:
                $ref: '#/components/schemas/realTimePaymentAccountItem'
            count:
              description: The total number of real-time payment accounts for which the user has access. This value ignores any filters. This value is _optional_ and may be omitted if the count is not computable efficiently.
              type: integer
              format: int32
              minimum: 0
              maximum: 25000
            primaryAccountId:
              description: The `id` of the customer's primary real-time payment account. This property only exists for retail customers, and only if the customer has designated a primary account.
              $ref: '#/components/schemas/readOnlyResourceId'
            nextPage_url:
              description: The URL of the next page of real-time payment accounts. If this URL is omitted, there are no more accounts.
              x-apiture-operations:
                - operationId: getAccount
              readOnly: true
              maxLength: 256
              type: string
              format: uri-reference
              example: https://static.api.apiture.com/banking/accounts/bf23bc970b78d27691e8
      example:
        nextPage_url: https://static.api.apiture.com/banking/accounts?start=641f62296ecbf1882c84?limit=100?allows=view
        count: 6
        limit: 100
        items:
          - id: bf23bc970b78d27691e8
            nickname: Payroll Checking
            label: Payroll Checking *1008
            maskedNumber: '*1008'
            location: internal
            allows:
              realTimePaymentFrom: true
              realTimePaymentTo: true
            overdraftProtectionElections:
              primary:
                election: true
                lastUpdatedAt: '2024-03-04T04:05:24.375Z'
              secondary:
                election: false
          - id: b78d27691e8bf23bc970
            nickname: College CD
            label: College CD *2017
            maskedNumber: '*2017'
            location: internal
            allows:
              realTimePaymentFrom: true
              realTimePaymentTo: true
            overdraftProtectionElections:
              primary:
                election: true
                lastUpdatedAt: '2024-03-04T04:05:24.375Z'
              secondary:
                election: false
      x-apiture-version: 1.0.0
    accountFields:
      x-apiture-version: 2.3.0
      title: Account Fields (v2.3.0)
      description: Fragment schema use to build other account schemas.
      x-apiture-fragment: true
      required:
        - id
        - label
        - maskedNumber
        - product
        - location
      properties:
        id:
          description: The unique identifier for this account resource. This is an immutable opaque string.
          allOf:
            - $ref: '#/components/schemas/readOnlyResourceId'
        label:
          readOnly: true
          description: The human-readable label for this account. This is either the `nickname` (if assigned for the current customer), or the `product.label` concatenated with the `maskedNumber`.
          allOf:
            - $ref: '#/components/schemas/accountLabel'
        nickname:
          $ref: '#/components/schemas/accountNickname'
        maskedNumber:
          $ref: '#/components/schemas/maskedAccountNumber'
        fullAccountNumber:
          description: |-
            The full unmasked account number or member number.
            *Note*: This is omitted unless the request includes the `?unmasked=true` query parameter. Such requests are auditable.
          allOf:
            - $ref: '#/components/schemas/fullAccountNumber'
        product:
          $ref: '#/components/schemas/productReference'
        location:
          description: Indicates where an account is held.
          allOf:
            - $ref: '#/components/schemas/accountLocation'
    realTimePaymentAccountFields:
      title: Real-Time Payment Account Fields (v1.0.0)
      description: Fragment schema use to build other real-time payment account schemas.
      x-apiture-fragment: true
      required:
        - id
        - label
        - maskedNumber
        - location
      properties:
        id:
          description: The unique identifier for this account resource. This is an immutable opaque string.
          allOf:
            - $ref: '#/components/schemas/readOnlyResourceId'
        label:
          readOnly: true
          description: The human-readable label for this account. This is either the `nickname` (if assigned for the current customer), or the `product.label` concatenated with the `maskedNumber`.
          allOf:
            - $ref: '#/components/schemas/accountLabel'
        nickname:
          $ref: '#/components/schemas/accountNickname'
        maskedNumber:
          $ref: '#/components/schemas/maskedAccountNumber'
        fullAccountNumber:
          description: |-
            The full unmasked account number or member number.
            *Note*: This is omitted unless the request includes the `?unmasked=true` query parameter. Such requests are auditable.
          allOf:
            - $ref: '#/components/schemas/fullAccountNumber'
        location:
          description: Indicates where an account is held.
          allOf:
            - $ref: '#/components/schemas/accountLocation'
      x-apiture-version: 1.0.0
    accountItem:
      title: Account Item (v5.1.1)
      x-apiture-version: 5.1.1
      description: An account item in a list of items in the `accounts` schema.
      type: object
      allOf:
        - $ref: '#/components/schemas/accountFields'
        - type: object
          required:
            - allows
          properties:
            allows:
              $ref: '#/components/schemas/accountPermissions'
            overdraftProtectionElections:
              description: |-
                Describes whether the account holder elected primary or secondary overdraft protection for the account and when those elections were last updated.

                **Note**: this property is only returned in account list items if the [`listAccounts` request](#op-listAccounts) query parameter `?allows=` includes `manageOverdraftProtectionElections`.
              $ref: '#/components/schemas/overdraftProtectionElections'
      examples:
        - id: bf23bc970b78d27691e8
          location: internal
          nickname: Payroll Checking
          label: Payroll Checking *1008
          product:
            type: checking
            coreType: DDA
            code: DDA01
            label: Business Checking
          maskedNumber: '*1008'
          allows:
            transferFrom: false
            transferTo: true
            billPay: false
            mobileCheckDeposit: true
            view: true
            viewCards: true
            manageCards: true
            viewLoanPayoffQuote: false
            realTimePaymentFrom: true
            realTimePaymentTo: true
    realTimePaymentAccountItem:
      title: Real-Time Payment Account Item (v1.0.0)
      description: A real-time payment account item in a list of items in the `realTimePaymentAccounts` schema.
      type: object
      allOf:
        - $ref: '#/components/schemas/realTimePaymentAccountFields'
        - type: object
          required:
            - allows
          properties:
            allows:
              $ref: '#/components/schemas/realTimePaymentAccountPermissions'
            overdraftProtectionElections:
              description: |-
                Describes whether the account holder elected primary or secondary overdraft protection for the account and when those elections were last updated.

                **Note**: this property is only returned in account list items if the [`listAccounts` request](#op-listAccounts) query parameter `?allows=` includes `manageOverdraftProtectionElections`.
              $ref: '#/components/schemas/overdraftProtectionElections'
      examples:
        - id: bf23bc970b78d27691e8
          location: internal
          nickname: Payroll Checking
          label: Payroll Checking *1008
          maskedNumber: '*1008'
          allows:
            realTimePaymentFrom: true
            realTimePaymentTo: true
      x-apiture-version: 1.0.0
    externalAccountVerificationMethod:
      x-apiture-version: 1.1.0
      title: External Account Verification Method (v1.1.0)
      description: |+
        The method used to verify the customer has access to the external account.

        <strong><code>externalAccountVerificationMethod</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>instant</code></strong></td><td>Instant Account Verification: <p>Access to the external account is verified via integration with an account verification service provider.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>microDeposits</code></strong></td><td>Micro-Deposits: <p>Access to the external account is verified via verifying a set of micro-deposits.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>manual</code></strong></td><td>Manual: <p>Access to the external account is verified manually by the financial institution.</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: externalAccountVerificationMethod
      enum:
        - instant
        - microDeposits
        - manual
    accountRoutingNumber:
      title: Account Routing Number (v1.0.0)
      description: An account ABA routing and transit number.
      type: string
      minLength: 9
      maxLength: 9
      pattern: ^[0-9]{9}$
      example: '123123123'
      x-apiture-version: 1.0.0
    accountNickname:
      x-apiture-version: 1.2.0
      title: Account Nickname (v1.2.0)
      description: The nickname (friendly name) the customer has given this account. Each customer can define their own nickname for the same account. If omitted, the customer has not set a nickname.
      type: string
      maxLength: 50
      format: text
      example: Payroll Checking
    maskedAccountNumber:
      x-apiture-version: 1.0.1
      title: Masked Account Number (v1.0.1)
      description: 'A masked account number: an asterisk `*` followed by one to four characters of the `fullAccountNumber`.'
      type: string
      minLength: 2
      maxLength: 5
      pattern: ^\*[- _a-zA-Z0-9.]{1,4}$
      examples:
        - '*1008'
        - '*0005'
    accountLabel:
      title: Account Label (v1.0.0)
      description: The human-readable label for this account. This is either the `nickname` (if assigned for the current customer), or the `product.label` concatenated with the `maskedNumber`.
      type: string
      minLength: 1
      maxLength: 80
      format: text
      example: Checking *1008
      x-apiture-version: 1.0.0
    fullAccountNumber:
      title: Full Account Number (v1.0.0)
      description: A full account number. This is the number that the customer uses to reference the account within the financial institution.
      type: string
      minLength: 1
      maxLength: 32
      pattern: ^[- a-zA-Z0-9.]{1,32}$
      examples:
        - '123456789'
      x-apiture-version: 1.0.0
    maskedMemberNumber:
      title: Masked Member Number (v1.0.0)
      description: 'A masked member number: an asterisk `*` followed by one to four characters of the `fullMemberNumber`.'
      type: string
      minLength: 2
      maxLength: 5
      pattern: ^\*[- a-zA-Z0-9.]{1,4}$
      examples:
        - '*1008'
        - '*0005'
      x-apiture-version: 1.0.0
    fullMemberNumber:
      title: Full Member Number (v1.0.0)
      description: A full (unmasked) credit union member number.
      type: string
      minLength: 1
      maxLength: 17
      pattern: ^[- a-zA-Z0-9.]{1,17}$
      examples:
        - '123456789'
      x-apiture-version: 1.0.0
    creditUnionAccountSuffix:
      title: Credit Union Account Suffix (v1.0.0)
      description: An account suffix which uniquely identifies a credit union member's account. The combined member number and account suffix is unique among all accounts at the credit union.
      type: string
      minLength: 1
      maxLength: 6
      pattern: ^[a-zA-Z0-9]{1,6}$
      examples:
        - S0001
        - C0002
      x-apiture-version: 1.0.0
    accountBalances:
      x-apiture-version: 1.2.0
      title: Account Balances (v1.2.0)
      description: An array of account balances by account ID.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: An array of items, one for each of the `?accounts=` in the request, returned in the same order.
              type: array
              maxItems: 10000
              items:
                $ref: '#/components/schemas/accountBalance'
      example:
        items:
          - id: 05d00d7d-d630
            available: '3208.20'
            current: '3448.72'
            currentWithPending: '3448.72'
            updatedAt: '2022-05-02T06:51:19.375Z'
            incomplete: false
          - id: cb5d67ea-a5c3
            available: '1750.80'
            current: '1956.19'
            currentWithPending: '1956.19'
            updatedAt: '2022-05-02T06:51:19.375Z'
            incomplete: false
    incompleteAccountBalances:
      x-apiture-version: 1.3.0
      title: Incomplete Account Balance (v1.3.0)
      description: An array of account balances by account ID, some of which are incomplete. Use the values in `incompleteAccounts` and `retryCount` to retry the [`listAccountBalances`](#op-listAccountBalances) operation.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
            - incompleteAccounts
            - retryCount
          properties:
            items:
              description: An array of items, one for each of the `?accounts=` in the request, returned in the same order.
              type: array
              maxItems: 256
              items:
                $ref: '#/components/schemas/accountBalance'
            incompleteAccounts:
              description: Pass these values as the `?accounts=` query parameter on the next retry of the [`listAccountBalances`](#op-listAccountBalances) operation. This value is empty if the client has reached the retry limit.
              $ref: '#/components/schemas/accountIds'
            retryCount:
              description: Pass this value as the as the `?retryCount=` parameter with the next retry of the [`listAccountBalances`](#op-listAccountBalances) operation.
              type: integer
              format: int32
              minimum: 1
              maximum: 10
      example:
        items:
          - id: 05d00d7d-d630
            available: '3208.20'
            current: '3448.72'
            currentWithPending: '3448.72'
            updatedAt: '2022-05-02T06:51:19.375Z'
            incomplete: false
          - id: cb5d67ea-a5c3
            available: '1750.80'
            current: '1956.19'
            currentWithPending: '1956.19'
            updatedAt: '2022-05-02T06:51:19.375Z'
            incomplete: false
          - id: b5a4f178-2baf
            incomplete: true
          - id: 959908db-fd40
            incomplete: true
          - id: 97e6166a-2a4c
            incomplete: true
        incompleteAccounts:
          - b5a4f178-2baf
          - 959908db-fd40
          - 97e6166a-2a4c
        retryCount: 1
    accountBalance:
      x-apiture-version: 1.1.0
      title: Account Balance (v1.1.0)
      description: The current balances of the given account.
      type: object
      required:
        - id
        - incomplete
      properties:
        id:
          description: The account ID.
          $ref: '#/components/schemas/readOnlyResourceId'
        available:
          description: 'The available balance: the funds available for use. This is the string representation of the exact decimal amount.'
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/creditOrDebitValue'
        current:
          description: The current balance. This is the balance at the end of the previous business day. This is the string representation of the exact decimal amount.
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/creditOrDebitValue'
        collected:
          description: The available balance excluding deposited checks that have not yet cleared. This is the string representation of the exact decimal amount.
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/creditOrDebitValue'
        updatedAt:
          description: The time when the balance values were last updated from the banking core.
          $ref: '#/components/schemas/readOnlyTimestamp'
        currentWithPending:
          description: The current balance, including pending transactions. This is the string representation of the exact decimal amount.
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/creditOrDebitValue'
        incomplete:
          description: If `true`, the response is incomplete and the client may retry the operation after the `Retry-After` time in order to fetch balances for any incomplete accounts in the `items`. The retry operation should only pass in accounts that are `incomplete`.
          type: boolean
      examples:
        - id: 05d00d7d-d630
          available: '3208.20'
          current: '3448.72'
          currentWithPending: '3448.72'
          updatedAt: '2022-05-02T06:51:19.375Z'
          incomplete: false
    accountJointOwner:
      x-apiture-version: 1.1.0
      title: Account Joint Owner (v1.1.0)
      description: Representation of account joint owner resources.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - id
            - name
          properties:
            id:
              $ref: '#/components/schemas/readOnlyResourceId'
            name:
              description: The full name of the joint owner.
              type: string
              maxLength: 50
              format: text
      example:
        id: 0399abed-fd3d
        name: Max Pike
    accountJointOwners:
      x-apiture-version: 1.2.0
      title: Account Joint Owner Collection (v1.2.0)
      description: Collection of account joint owners. The items in the collection are ordered in the `items` array.
      allOf:
        - type: object
          required:
            - items
          properties:
            items:
              description: An array containing account joint owner items.
              type: array
              maxItems: 15
              items:
                $ref: '#/components/schemas/accountJointOwner'
      example:
        items:
          - id: db821618461ade2c5e45
            name: Max Pike
          - id: 1ef8f2bdfc729ea2b80b
            name: Sam K. Pike
    jointOwnerInvitationFields:
      x-apiture-version: 3.0.0
      title: Joint Owner Invitation Fields (v3.0.0)
      description: Fields used to compose other joint owner invitation schemas.
      type: object
      required:
        - firstName
        - lastName
        - sharedSecret
        - emailAddress
        - taxId
        - birthdate
      properties:
        firstName:
          description: The invitee's first name.
          type: string
          minLength: 1
          maxLength: 32
          format: text
        lastName:
          description: The invitee's last name name.
          type: string
          minLength: 1
          maxLength: 32
          format: text
        taxId:
          description: The last 4 digits of the invitee's tax ID number (Social Security Number). This is not sent in the invitation email, but if the invitee enrolls in digital banking, this identification must match the last four digits of the tax ID they use to enroll.
          type: string
          maxLength: 4
          minLength: 4
          pattern: ^[0-9]{4}$
        birthdate:
          description: The birthdate of the invitee, in [RFC 3339](https://tools.ietf.org/html/rfc3339) `YYYY-MM-DD` `date` format. This is not sent in the invitation email, but if the invitee enrolls in digital banking, this identification must match the birthdate they use to enroll.
          type: string
          format: date
          minLength: 10
          maxLength: 10
        sharedSecret:
          description: A string shared by the inviter with the invitee to verify their identity. This is not sent in the invitation. The inviter should share this string with the invitee though another channel.
          type: string
          minLength: 5
          maxLength: 30
          format: text
        emailAddress:
          description: The invitee's email address.
          type: string
          format: email
          maxLength: 80
    newJointOwnerInvitation:
      x-apiture-version: 3.0.0
      title: New Joint Owner Invitation (v3.0.0)
      description: A request to create an invitation to add a new joint owner to an account.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/jointOwnerInvitationFields'
      example:
        firstName: Mary
        lastName: Jones
        taxId: '3333'
        sharedSecret: obsolete obese octopus
        emailAddress: Mary.Jones@example.com
        birthdate: '2000-04-10'
    jointOwnerInvitation:
      x-apiture-version: 3.0.0
      title: Joint Owner Invitation (v3.0.0)
      description: A joint owner invitation.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/jointOwnerInvitationFields'
        - type: object
          required:
            - id
          properties:
            id:
              description: The unique ID of the invitation.
              $ref: '#/components/schemas/readOnlyResourceId'
      example:
        id: db4f580290d3e07bf55d
        firstName: Mary
        lastName: Jones
        taxId: '3333'
        sharedSecret: obsolete obese octopus
        emailAddress: Mary.Jones@example.com
        birthdate: '2000-04-10'
    challenge:
      x-apiture-version: 1.3.0
      title: Challenge (v1.3.0)
      description: |
        The challenge that is initiated by a service and to be completed by a user.
      type: object
      x-apiture-fragment: true
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - challengeId
            - factor
          properties:
            challengeId:
              description: The ID of the selected challenge. This is the `challengeId` from the corresponding challenge in the 403 problem response.
              $ref: '#/components/schemas/resourceId'
            factor:
              description: The type of challenge.
              $ref: '#/components/schemas/challengeFactorType'
            factorId:
              description: |-
                The ID of the user-selected factor from the challenge.

                *Note*: The `factorId` will become `required` in a future update to this schema.
              $ref: '#/components/schemas/challengeFactorId'
      example:
        operationId: createTransfer
        challengeId: b8cae0901002bba4e2a7
        factor: sms
        factorId: mobile-1
    identityChallenge:
      x-apiture-version: 1.3.0
      title: Identity Challenge (v1.3.0)
      description: An identity challenge to verify the banking customer is who they claim.
      allOf:
        - $ref: '#/components/schemas/challenge'
        - type: object
          required:
            - operationId
          properties:
            operationId:
              description: The context in which the user must complete the challenge.
              $ref: '#/components/schemas/challengeOperationId'
    startedIdentityChallenge:
      x-apiture-version: 1.4.0
      title: Started Challenge (v1.4.0)
      description: The server response after starting an identity challenge.
      type: object
      allOf:
        - $ref: '#/components/schemas/identityChallenge'
        - type: object
          required:
            - expiresAt
            - minimumResponseLength
            - maximumResponseLength
          properties:
            expiresAt:
              description: The timestamp when this challenge expires. The user must submit their challenge response before this time in order for it to be valid.
              $ref: '#/components/schemas/readOnlyTimestamp'
            minimumResponseLength:
              description: The minimum number of characters required for the response for this factor. For example, a one-time passcode might have a minimum of 6 characters but a `securityQuestions` response might have a minimum of 2 characters.
              type: integer
              format: int32
              minimum: 1
              maximum: 8
            maximumResponseLength:
              description: The maximum number of characters required for the response for this factor. For example, a `sms` one-time passcode might have a maximum of 8 characters but a `securityQuestions` response might have a maximum of 255 characters.
              type: integer
              format: int32
              minimum: 2
              maximum: 255
      example:
        operationId: createTransfer
        factor: sms
        challengeId: b8cae0901002bba4e2a7
        expiresAt: '2023-01-05T08:50:33.375Z'
        minimumResponseLength: 8
        maximumResponseLength: 8
    challengeResponseItem:
      x-apiture-version: 1.1.0
      title: Challenge Response Item (v1.1.0)
      description: A user's response to challenge.
      type: object
      required:
        - response
      properties:
        promptId:
          description: The unique ID of the prompt corresponding to this response. This property is only used if the challenge factor is `securityQuestions`.
          $ref: '#/components/schemas/challengePromptId'
        response:
          description: The response to the challenge, as entered by the user. The system ignores leading/trailing whitespace and ignores case when verifying the response. The actual minimum and maximum characters for the response are set by the `minimumResponseLength` and `maximumResponseLength` properties of the [`startedIdentityChallenge`](#schema-startedIdentityChallenge).
          type: string
          format: text
          maxLength: 255
      examples:
        - response: '939733'
        - promptId: q4
          response: Kinston High School
    challengeResponse:
      x-apiture-version: 1.4.0
      title: Challenge Response (v1.4.0)
      description: The user's response(s) to the challenge, submitted for verification against expected responses.
      x-apiture-fragment: true
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - factor
            - operationId
            - challengeId
            - responses
          properties:
            challengeId:
              description: The ID of the challenge. This is the `challengeId` from the corresponding challenge in the 403 problem response.
              $ref: '#/components/schemas/resourceId'
            factor:
              description: The type of challenge delivery factor, chosen from the `requiredIdentityChallenge` problem response.
              $ref: '#/components/schemas/challengeFactorType'
            factorId:
              description: |-
                The ID of the user-selected factor from the challenge.

                *Note*: The `factorId` will become `required` in a future update to this schema.
              $ref: '#/components/schemas/challengeFactorId'
            operationId:
              $ref: '#/components/schemas/challengeOperationId'
            responses:
              description: The text entered by the user in response to the challenge. This may be the code sent via SMS, email, or voice, or it may be the answers to the security questions.
              type: array
              uniqueItems: true
              minItems: 1
              maxItems: 8
              items:
                $ref: '#/components/schemas/challengeResponseItem'
      examples:
        - factor: securityQuestions
          operationId: createTransfer
          factorId: be6177eff07649128e40
          challengeId: dec42c64402319a59ec7
          responses:
            - promptId: q1
              response: Smith
            - promptId: q4
              response: Kinston High School
            - promptId: q9
              response: Walter
        - factor: sms
          operationId: createTransfer
          factorId: 9f6305571a38f8d584ac
          challengeId: dec42c64402319a59ec7
          responses:
            - response: '987303'
    identityChallengeResponse:
      x-apiture-version: 1.4.0
      title: Identity Challenge Response (v1.4.0)
      description: A banking customer response(s) to an identity challenge.
      allOf:
        - $ref: '#/components/schemas/challengeResponse'
    challengeResult:
      x-apiture-version: 1.1.0
      title: Challenge Result (v1.1.0)
      description: |+
        The result from verifying a user's response(s) to challenge.

        <strong><code>challengeResult</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>verified</code></strong></td><td>Verified: <p>The user&#39;s response was successfully verified</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>synchronizationRequired</code></strong></td><td>Synchronization Required: <p>The user should re-submit two recent, consecutive one-time passcodes from the authenticator token application or device to allow the system to synchronize with it</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>failed</code></strong></td><td>Failed: <p>The user&#39;s response failed validation</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>locked</code></strong></td><td>Locked: <p>The user failed the identity challenge too many times and has been locked out</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>expired</code></strong></td><td>Expired: <p>The corresponding identity challenge has expired</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: challengeResult
      enum:
        - verified
        - synchronizationRequired
        - failed
        - expired
        - locked
    challengeAllows:
      title: Challenge Allows (v1.0.0)
      description: Indicates what features of the challenge are allowed after verification has failed. **Note:** If a `retry`, `restart`, or `reverify` flag is omitted, the client can call those those operations, but they may fail with a `challengeBlocked` error.
      type: object
      properties:
        retry:
          description: If `true`, the user may retry the challenge by selecting any of the original challenge factors and starting/verifying that factor. If `false`, the client should not allow the user to retry identity verification by selecting one of the original challenge factors and starting/verifying it.
          type: boolean
        restart:
          description: If `true`, the client may [restart this challenge factor](#op-startIdentityChallenge). If `false`, the client should not [restart the challenge](#op-startIdentityChallenge).
          type: boolean
        reverify:
          description: If `true`, the user may enter a new response to the same challenge factor and the client invoke the [`verifyIdentityChallenge`](#op-verifyIdentityChallenge) after failing verification. For example, if the user typed a one-time passcode incorrectly, the user can enter and verify a new code. If `false`, the client should not allow the user to [enter and validate a new response to the same challenge factor](#op-verifyIdentityChallenge) after failing verification.
          type: boolean
      x-apiture-version: 1.0.0
    verifiedIdentityChallenge:
      x-apiture-version: 1.4.0
      title: Verified Challenge (v1.4.0)
      description: The response from verifying the challenge.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - factor
            - challengeId
            - result
          properties:
            challengeId:
              description: The ID of the selected challenge. This is the `id` from the corresponding challenge in the 403 problem response.
              $ref: '#/components/schemas/resourceId'
            factor:
              description: The type of challenge.
              $ref: '#/components/schemas/challengeFactorType'
            factorId:
              description: |-
                The ID of the user-selected factor from the challenge.

                *Note*: The `factorId` will become `required` in a future update to this schema.
              $ref: '#/components/schemas/challengeFactorId'
            operationId:
              description: The ID of the API operation in which the user must complete the challenge, from the `requiredIdentityChallenge` problem response.
              $ref: '#/components/schemas/challengeOperationId'
            result:
              $ref: '#/components/schemas/challengeResult'
            allows:
              description: Indicates if the user may retry or restart the challenge or verification. This property exists if the `result` is `failed` or `expired`.
              $ref: '#/components/schemas/challengeAllows'
            challengeToken:
              description: The value that the client must send in the `Challenge` request header when retrying the operation that required a challenge. This property is not present if the result is `failed`.
              $ref: '#/components/schemas/challengeToken'
      examples:
        - challengeId: b8cae0901002bba4e2a7
          operationId: createTransfer
          factor: sms
          result: verified
          challengeToken: 91a2a7724d6e82f5cd73
        - challengeId: b8cae0901002bba4e2a7
          operationId: createTransfer
          factor: sms
          result: failed
          allows:
            retry: false
            restart: false
            reverify: true
    challengeToken:
      x-apiture-version: 1.1.0
      title: Challenge Token (v1.1.0)
      description: The value of the identity `Challenge` request header that the client must send when retrying an operation which required a challenge.
      type: string
      pattern: ^[-_:.~%$a-zA-Z0-9]{6,255}$
      minLength: 6
      maxLength: 255
    currencyFields:
      title: Currency Fields (v1.0.0)
      description: Fields used to compose currency schemas.
      x-apiture-fragment: true
      type: object
      properties:
        code:
          $ref: '#/components/schemas/currencyCode'
        label:
          description: The label/name of this currency.
          type: string
          format: text
          minLength: 3
          maxLength: 35
      x-apiture-version: 1.0.0
    currency:
      x-apiture-version: 2.0.0
      title: Currency (v2.0.0)
      description: A Monetary Currency.
      type: object
      required:
        - code
        - label
      allOf:
        - $ref: '#/components/schemas/currencyFields'
      example:
        code: USD
        label: United States dollar
    currencyReference:
      title: Currency Reference (v1.0.0)
      description: A reference for a monetary currency.
      required:
        - code
      allOf:
        - $ref: '#/components/schemas/currencyFields'
      example:
        code: USD
        label: United States dollar
      x-apiture-version: 1.0.0
    currencies:
      x-apiture-version: 2.0.1
      title: Currencies (v2.0.1)
      description: A list of monetary currencies.
      required:
        - items
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            items:
              description: An array of supported currencies for obtaining currency conversion quotes.
              type: array
              minItems: 10
              maxItems: 2000
              items:
                $ref: '#/components/schemas/currency'
      example:
        items:
          - code: AUD
            label: Australian dollar
          - code: BBD
            label: Barbados dollar
          - code: BMD
            label: Bermudian dollar
          - code: BRL
            label: Brazilian real
          - code: CHF
            label: Swiss franc
          - code: COP
            label: Colombian peso
          - code: DKK
            label: Danish krone
          - code: CAD
            label: Canadian dollar
          - code: EUR
            label: Euro
          - code: FJD
            label: Fiji dollar
          - code: GBP
            label: Pound sterling
          - code: HKD
            label: Hong Kong dollar
          - code: INR
            label: Indian rupee
          - code: JPY
            label: Japanese yen
          - code: KRW
            label: South Korean won
          - code: MXN
            label: Mexican peso
          - code: NZD
            label: New Zealand dollar
          - code: SEK
            label: Swedish kronor
          - code: SGD
            label: Singapore dollar
          - code: USD
            label: United States dollar
    currencyConversionQuoteFields:
      x-apiture-version: 1.1.0
      title: Currency Conversion Quote Fields (v1.1.0)
      description: Fields used to compose currency conversion quote schemas.
      x-apiture-fragment: true
      type: object
      properties:
        settlementAccount:
          description: A reference to the account used to settle currency conversions.
          allOf:
            - $ref: '#/components/schemas/transferAccountReference'
        targetCurrency:
          description: The target currency for the currency conversion quote. This must not be `USD` (US dollars).
          allOf:
            - $ref: '#/components/schemas/currency'
        sourceAmount:
          description: The amount of money in US dollars to be converted to the target currency. `sourceAmount` and `targetAmount` are mutually exclusive.
          allOf:
            - $ref: '#/components/schemas/monetaryValue'
        targetAmount:
          description: The target amount in the target currency. `sourceAmount` and `targetAmount` are mutually exclusive.
          allOf:
            - $ref: '#/components/schemas/foreignExchangeMonetaryValue'
    immutableCurrencyConversionQuoteFields:
      x-apiture-version: 1.1.0
      title: Currency Conversion Quote Fields (v1.1.0)
      description: Immutable fields used to compose currency conversion quote schemas.
      x-apiture-fragment: true
      type: object
      properties:
        vendorQuoteId:
          description: The currency conversion quote identifier provided by the vendor.
          allOf:
            - $ref: '#/components/schemas/externalResourceId'
        conversionRate:
          description: A multiplication factor, expressed in decimal notation, for converting from US Dollars to the target currency. This numeric value is represented as a decimal string so that it can be exact with no loss of precision.
          allOf:
            - $ref: '#/components/schemas/conversionRate'
        expiresAt:
          description: |-
            The timestamp when this currency conversion rate expires, in [RFC 3336](https://tools.ietf.org/html/rfc3339#date-time) `date-time` UTC format.

            For currency conversion quotes that have not been accepted, this is when the quote expires.

            For accepted currency conversion quotes, this is when the currency conversion must be finalized by.
          allOf:
            - $ref: '#/components/schemas/readOnlyTimestamp'
    currencyConversionQuoteRequest:
      x-apiture-version: 2.1.0
      title: Currency Conversion Quote Request (v2.1.0)
      description: A request to obtain a currency conversion quote for converting between US dollars and a target currency. The request must contain the `targetCurrency` and either a `sourceAmount` (the amount in US dollars) or a `targetAmount` (the amount in the target currency).
      required:
        - targetCurrency
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/currencyConversionQuoteFields'
      examples:
        - targetCurrency:
            code: EUR
            label: Euro
          sourceAmount: '1305.99'
        - targetCurrency:
            code: EUR
            label: Euro
          targetAmount: '1000.00'
    acceptCurrencyConversionQuoteRequest:
      x-apiture-version: 1.1.0
      title: Accept Currency Conversion Quote (v1.1.0)
      description: |-
        A request to accept a currency conversion quote between US dollars and a target currency for a specific target amount.

        The `signature` is used to validate the quote being accepted.

        Additional properties are not verified against the `signature`.
      required:
        - signature
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/currencyConversionQuoteFields'
        - $ref: '#/components/schemas/immutableCurrencyConversionQuoteFields'
        - type: object
          properties:
            signature:
              $ref: '#/components/schemas/currencyConversionQuoteSignature'
      example:
        signature: eyJhbGciOiJFUzI
    currencyConversionQuoteSignature:
      title: Currency Conversion Quote Signature (v1.0.0)
      description: A cryptographic digital signature representing a currency conversion quote. Use this signature to [accept this currency conversion quote](#op-acceptedCurrencyConversionQuote).
      type: string
      pattern: .{1,2048}
      minLength: 1
      maxLength: 2048
      example: eyJhbGciOiJFUzI
      x-apiture-version: 1.0.0
    currencyConversionQuote:
      x-apiture-version: 3.0.0
      title: Currency Conversion Quote (v3.0.0)
      description: |-
        Represents a quote for a currency conversion rate. A currency conversion quote consists of the a `sourceAmount` in US dollars, a target currency, the corresponding amount in a target currency, the currency conversion rate, and a date-time when the conversion rate expires.

        The data in the response follows these conversion constraints:

          * `targetAmount = sourceAmount * conversionRate`
          * `sourceAmount = targetAmount / conversionRate`

        If the request specified a target amount in the target currency, the `sourceAmount` may be rounded up to the next penny to ensure the full target amount is covered.
      required:
        - vendorQuoteId
        - sourceAmount
        - targetAmount
        - targetCurrency
        - conversionRate
        - expiresAt
        - signature
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/currencyConversionQuoteFields'
        - $ref: '#/components/schemas/immutableCurrencyConversionQuoteFields'
        - type: object
          properties:
            signature:
              $ref: '#/components/schemas/currencyConversionQuoteSignature'
      example:
        settlementAccount:
          id: e821ce54-c715
          label: Premiere Checking *6789
          type: checking
          location: internal
        vendorQuoteId: 54a0945f-5d7a
        sourceAmount: '1000.00'
        targetAmount: '12250.00'
        targetCurrency:
          code: EUR
          label: Euro
        conversionRate: '1.225'
        expiresAt: '2024-07-18T13:57:45.375Z'
        signature: eyJhbGciOiJFUzI
    acceptedCurrencyConversionQuote:
      x-apiture-version: 2.0.0
      title: Accepted Currency Conversion Quote (v2.0.0)
      description: An accepted currency conversion quote. Accepted currency conversions represent a conversion rate between two currencies for a specific amount.
      required:
        - id
        - vendorQuoteId
        - sourceAmount
        - targetAmount
        - targetCurrency
        - conversionRate
        - expiresAt
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/currencyConversionQuoteFields'
        - $ref: '#/components/schemas/immutableCurrencyConversionQuoteFields'
        - type: object
          properties:
            id:
              description: The unique identifier for this accepted currency conversion quote. This is derived and immutable.
              allOf:
                - $ref: '#/components/schemas/readOnlyResourceId'
      example:
        id: 3e8375b1-8c34
        vendorQuoteId: 54a0945f-5d7a
        settlementAccount:
          id: e821ce54-c715
          label: Premiere Checking *6789
          type: checking
          location: internal
        sourceAmount: '1000.00'
        targetAmount: '12250.00'
        targetCurrency:
          code: EUR
          label: Euro
        conversionRate: '1.225'
        expiresAt: '2024-07-18T13:57:45.375Z'
    acceptedCurrencyConversionQuoteReference:
      x-apiture-version: 1.1.0
      title: Accepted Currency Quote Reference (v1.1.0)
      description: Representation of an accepted currency conversion quote.
      required:
        - signature
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/currencyConversionQuoteFields'
        - $ref: '#/components/schemas/immutableCurrencyConversionQuoteFields'
        - type: object
          properties:
            id:
              description: The unique identifier for this accepted currency conversion quote. This is derived and immutable.
              allOf:
                - $ref: '#/components/schemas/readOnlyResourceId'
            signature:
              description: A cryptographic digital signature representing an accepted currency conversion quote. This signature is different from the one used to accept a quote.
              allOf:
                - $ref: '#/components/schemas/currencyConversionQuoteSignature'
      example:
        id: 3e8375b1-8c34
        vendorQuoteId: 54a0945f-5d7a
        settlementAccount:
          id: e821ce54-c715
          label: Premiere Checking *6789
          type: checking
          location: internal
        sourceAmount: '1000.00'
        targetAmount: '12250.00'
        targetCurrency:
          code: EUR
          label: Euro
        conversionRate: '1.225'
        expiresAt: '2024-07-18T13:57:45.375Z'
        signature: eyJhbGciOiJFUzI
    conversionRate:
      title: Conversion Rate (v1.0.0)
      description: A currency conversion rate. The numeric value is represented as a decimal string so that it can be exact with no loss of precision.
      example: '3456.78'
      format: decimal
      type: string
      pattern: ^(0|[1-9][0-9]*)\.[0-9]*$
      maxLength: 16
      x-apiture-version: 1.0.0
    foreignExchangeMonetaryValue:
      title: Foreign Exchange Monetary Value (v1.0.0)
      description: A monetary value in a foreign currency, supporting only positive amounts. The numeric value is represented as a decimal string so that it can be exact with no loss of precision.
      example: '34.5678'
      format: decimal
      type: string
      pattern: ^(0|[1-9][0-9]*)(\.[0-9]{1,4})?$
      maxLength: 16
      x-apiture-version: 1.0.0
    customerIdentityChallengeFactors:
      x-apiture-version: 1.0.1
      title: Customer Identity Challenge Factors (v1.0.1)
      description: Indicates which which _channels_ (specific email addresses or specific phone numbers) are enabled for the `email`, `sms` or `voice` factors when performing multi-factor authentication and other identity challenges.
      type: object
      required:
        - email
        - sms
        - voice
      properties:
        email:
          description: Indicates which of the customer's email addresses may be used for an `email` identity challenge or multi-factor authentication.
          $ref: '#/components/schemas/customerEmailChallengeChannels'
        sms:
          description: Indicates which of the customer's email addresses may be used for a `sms` (text message) identity challenge or multi-factor authentication.
          $ref: '#/components/schemas/customerPhoneChallengeChannels'
        voice:
          description: Indicates which of the customer's email addresses may be used for a `voice` (automated voice call) identity challenge or multi-factor authentication.
          $ref: '#/components/schemas/customerPhoneChallengeChannels'
      example:
        email:
          primary: true
          secondary: false
        sms:
          primary: false
          secondary: false
          mobile: true
          alternate: false
        voice:
          primary: false
          secondary: true
          mobile: true
          alternate: true
    customerEmailChallengeChannels:
      title: Customer Email Address Challenge Channels (v1.0.0)
      description: Indicates which of the customer's email addresses may be used for `email` multi-factor authentication or other identity challenges. Each address is a separate _channel_ for the `email` challenge factor.
      type: object
      required:
        - primary
        - secondary
      properties:
        primary:
          description: If `true`, the `primary` email address may be used as an identity challenge channel.
          type: boolean
        secondary:
          description: If `true`, the secondary email address may be used as an identity challenge channel.
          type: boolean
      example:
        primary: true
        secondary: false
      x-apiture-version: 1.0.0
    customerPhoneChallengeChannels:
      x-apiture-version: 1.0.1
      title: Customer Phone Challenge Channels (v1.0.1)
      description: Indicates which of the customer's phone numbers may be used for phone-based multi-factor authentication or other identity challenges. Each phone number is a separate _channel_ for the `sms` and `voice` challenge factors.
      type: object
      required:
        - primary
        - secondary
        - mobile
        - alternate
      properties:
        primary:
          description: If `true`, the customer's `primary` phone number may be used as an identity challenge channel.
          type: boolean
        secondary:
          description: If `true`, the customer's `secondary` phone number may be used as an identity challenge channel.
          type: boolean
        mobile:
          description: If `true`, the customer's `mobile` phone number may be used as an identity challenge channel.
          type: boolean
        alternate:
          description: If `true`, the customer's `alternate` phone number may be used as an identity challenge channel.
          type: boolean
      example:
        primary: false
        secondary: false
        mobile: true
        alternate: true
    customerCommunicationFactorType:
      title: Customer Communication Factor Type (v1.0.0)
      description: |+
        Identifier of the type of a communication channel.

        <strong><code>customerCommunicationFactorType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>email</code></strong></td><td>Email: <p>Communication delivered by email</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>sms</code></strong></td><td>SMS: <p>Communication delivered by SMS</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>device</code></strong></td><td>Device: <p>Communication delivered by a in-app notification on a device</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: customerCommunicationFactorType
      enum:
        - email
        - sms
        - device
      x-apiture-version: 1.0.0
    customerCommunicationChannels:
      title: Customer Communication Channels (v1.0.0)
      description: A summary of a customer's communication channels.
      required:
        - items
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            items:
              description: A list of a customer's communication channels.
              uniqueItems: true
              minItems: 1
              maxItems: 10
              items:
                $ref: '#/components/schemas/customerCommunicationChannel'
      example:
        items:
          - id: 0399abed-fd3d
            label: Max.Pike@example.com
            type: email
          - id: 7cc74cc3-f43c-40a2
            label: '+19105550155'
            type: sms
      x-apiture-version: 1.0.0
    customerCommunicationChannel:
      title: Customer Communication Channel (v1.0.0)
      description: A customer's communication channel.
      type: object
      required:
        - id
        - label
        - type
      properties:
        id:
          description: The identifier of this communication channel. This is derived and immutable.
          $ref: '#/components/schemas/readOnlyResourceId'
        label:
          description: A text representation of the communication channel.
          type: string
          format: text
          minLength: 5
          maxLength: 55
        type:
          description: The classification of this customer communication channel.
          $ref: '#/components/schemas/customerCommunicationFactorType'
      example:
        id: 0399abed-fd3d
        label: Max.Pike@example.com
        type: email
      x-apiture-version: 1.0.0
    customerContactCard:
      x-apiture-version: 1.1.0
      title: Customer Contact Card (v1.1.0)
      description: A customer's contact information.
      type: object
      required:
        - addresses
        - emailAddresses
        - phoneNumbers
      properties:
        addresses:
          description: The customer's postal addresses.
          $ref: '#/components/schemas/customerAddresses'
        emailAddresses:
          description: The customer's email addresses.
          $ref: '#/components/schemas/customerEmailAddresses'
        phoneNumbers:
          description: The customer's phone numbers.
          $ref: '#/components/schemas/customerPhoneNumbers'
      example:
        addresses:
          primary:
            address1: 1805 Tiburon Dr.
            locality: Wilmington
            regionCode: NC
            countryCode: US
            postalCode: '28412'
          mailing:
            address1: P.O. Box 1805
            locality: Wilmington
            regionCode: NC
            countryCode: US
            postalCode: '28412'
        emailAddresses:
          primary: Max.Pike@example.com
          secondary: MaxwellPike@me.example.com
        phoneNumbers:
          primary: '+19105550155'
          mobile: '+19105550150'
    customerEmailAddress:
      title: Customer Email Address (v1.0.0)
      description: A customer's single email address.
      type: string
      format: email
      maxLength: 255
      example: Max.Pike@example.com
      x-apiture-version: 1.0.0
    customerEmailAddresses:
      x-apiture-version: 1.1.0
      title: Customer Email Addresses (v1.1.0)
      description: A customer's email addresses.
      type: object
      properties:
        primary:
          description: The primary email address of the customer.
          $ref: '#/components/schemas/customerEmailAddress'
        secondary:
          description: The secondary email address of the customer. This object is omitted if there is not a secondary email address.
          $ref: '#/components/schemas/customerEmailAddress'
      example:
        primary: Max.Pike@example.com
        secondary: MaxwellPike@me.example.com
    customerAddresses:
      title: Customer Addresses (v1.0.0)
      description: A customer's postal addresses.
      type: object
      properties:
        primary:
          description: The customer's primary address. For individuals, this is their home address. For businesses, this is the company's business address.
          $ref: '#/components/schemas/address'
        mailing:
          description: The customer's mailing address. If present, financial institution sends statements and other documents to this address instead of the `primary` address.
          $ref: '#/components/schemas/address'
      example:
        primary:
          address1: 1805 Tiburon Dr.
          locality: Wilmington
          regionCode: NC
          countryCode: US
          postalCode: '28412'
        mailing:
          address1: P.O. Box 1805
          locality: Wilmington
          regionCode: NC
          countryCode: US
          postalCode: '28412'
      x-apiture-version: 1.0.0
    customerPhoneNumbers:
      title: Customer Phone Numbers (v1.0.0)
      description: A customer's phone numbers.
      type: object
      required:
        - primary
      properties:
        primary:
          description: The primary phone number of the customer.
          $ref: '#/components/schemas/simplePhoneNumber'
        secondary:
          description: The secondary phone number of the customer. This object is omitted if there is not a secondary phone number.
          $ref: '#/components/schemas/simplePhoneNumber'
        mobile:
          description: The mobile phone number of the customer. This object is omitted if there is not a mobile phone number.
          $ref: '#/components/schemas/simplePhoneNumber'
        alternate:
          description: The alternate phone number of the customer. This object is omitted if there is not an alternate phone number.
          $ref: '#/components/schemas/simplePhoneNumber'
        fax:
          description: The fax number of the customer. This object is omitted if there is not a fax phone number.
          $ref: '#/components/schemas/simplePhoneNumber'
      example:
        primary: '+19105550155'
        mobile: '+19105550150'
      x-apiture-version: 1.0.0
    customerReference:
      x-apiture-version: 1.1.2
      title: Customer Reference (v1.1.2)
      type: object
      description: A reference to a customer. The `name` property is the customer's `name` at the time this reference was created.
      required:
        - id
        - name
      properties:
        id:
          description: The unique `id` of the customer.
          allOf:
            - $ref: '#/components/schemas/resourceId'
        name:
          description: The customer's full name.
          type: string
          minLength: 1
          maxLength: 50
          format: text
      example:
        id: f48291b6-14ce
        name: Amanda Cummins
    customerPreferences:
      x-apiture-since: 0.2.0
      x-apiture-version: 1.0.1
      title: Customer Preference (v1.0.1)
      description: Enumerated customer preferences grouped by preference category.<br>The schema `customerPreferences` was added on version `0.2.0` of the API.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            ach:
              description: Customer preferences related to ACH batch payments.
              allOf:
                - $ref: '#/components/schemas/customerAchPreferences'
      example:
        ach:
          settlement:
            ppdDebit: summary
            ppdCredit: detailed
            ctxDebit: detailed
            ctxCredit: summary
            ccdDebit: summary
            ccdCredit: summary
            achImport: summary
    customerAchPreferencesFields:
      title: Customer ACH Preferences Fields (v1.0.0)
      description: Fields used to construct other customer ACH preference schemas.<br>The schema `customerAchPreferencesFields` was added on version `0.2.0` of the API.
      x-apiture-fragment: true
      x-apiture-since: 0.2.0
      x-apiture-version: 1.0.0
      type: object
      properties:
        settlement:
          description: Preferences related to ACH settlement.
          $ref: '#/components/schemas/achSettlementPreference'
    customerAchPreferences:
      x-apiture-since: 0.2.0
      x-apiture-version: 1.0.0
      title: Customer ACH Preferences (v1.0.0)
      description: A digital banking customer's ACH Payment preferences.<br>The schema `customerAchPreferences` was added on version `0.2.0` of the API.
      allOf:
        - $ref: '#/components/schemas/customerAchPreferencesFields'
      required:
        - settlement
      example:
        settlement:
          ppdDebit: summary
          ppdCredit: detailed
          ctxDebit: detailed
          ctxCredit: summary
          ccdDebit: summary
          ccdCredit: summary
          achImport: summary
    customerAchPreferencesPatch:
      x-apiture-since: 0.2.0
      x-apiture-version: 1.0.0
      title: Customer ACH Preferences Patch (v1.0.0)
      description: Representation used to patch existing customer ACH preferences using the [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules.<br>The schema `customerAchPreferencesPatch` was added on version `0.2.0` of the API.
      allOf:
        - $ref: '#/components/schemas/customerAchPreferencesFields'
    achSettlementPreference:
      x-apiture-since: 0.2.0
      x-apiture-version: 1.0.0
      title: ACH Settlement Preference (v1.0.0)
      description: Indicates the ACH settlement type for payment batch creation. Preferences are set for various individual SEC codes for specific payment directions, as well as for imports via [NACHA ACH file](https://achdevguide.nacha.org/ach-file-overview).<br>The schema `achSettlementPreference` was added on version `0.2.0` of the API.
      type: object
      required:
        - ppdDebit
        - ppdCredit
        - ctxDebit
        - ctxCredit
        - ccdDebit
        - ccdCredit
        - achImport
      properties:
        ppdDebit:
          $ref: '#/components/schemas/achPaymentSettlementType'
        ppdCredit:
          $ref: '#/components/schemas/achPaymentSettlementType'
        ctxDebit:
          $ref: '#/components/schemas/achPaymentSettlementType'
        ctxCredit:
          $ref: '#/components/schemas/achPaymentSettlementType'
        ccdDebit:
          $ref: '#/components/schemas/achPaymentSettlementType'
        ccdCredit:
          $ref: '#/components/schemas/achPaymentSettlementType'
        achImport:
          $ref: '#/components/schemas/achPaymentSettlementType'
      example:
        ppdDebit: summary
        ppdCredit: detailed
        ctxDebit: detailed
        ctxCredit: summary
        ccdDebit: summary
        ccdCredit: summary
        achImport: summary
    achPaymentSettlementType:
      x-apiture-since: 0.2.0
      x-apiture-version: 1.0.0
      title: ACH Payment Settlement Type (v1.0.0)
      description: |+
        Provides instruction for the system on how to process the payment batch.<br>The schema `achPaymentSettlementType` was added on version `0.2.0` of the API.

        <strong><code>achPaymentSettlementType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>summary</code></strong></td><td>Summary: <p>Creates a single offsetting entry in the settlement account for all instructions in the payment batch.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>detailed</code></strong></td><td>Detailed: <p>Creates individual offsetting entries in the settlement account for each instruction in the payment batch.</p>
        </td>
            </tr>
        </table>

      type: string
      enum:
        - summary
        - detailed
      x-apiture-enum: achPaymentSettlementType
    phoneNumberType:
      title: Phone Number Type (v1.0.0)
      description: |+
        Describes the type of a banking customer's phone number.

        <strong><code>phoneNumberType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>primary</code></strong></td><td>Primary: <p>The user&#39;s primary phone number</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>secondary</code></strong></td><td>Secondary: <p>The user&#39;s secondary phone number</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>mobile</code></strong></td><td>Mobile: <p>The user&#39;s mobile phone number</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>fax</code></strong></td><td>fax: <p>The user&#39;s fax phone number</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>alternate</code></strong></td><td>Alternate: <p>The user&#39;s alternate phone number</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: phoneNumberType
      enum:
        - primary
        - secondary
        - mobile
        - fax
        - alternate
      x-apiture-version: 1.0.0
    customerIdentification:
      x-apiture-version: 1.0.1
      title: Customer Identification (v1.0.1)
      description: Official identifying information associated with the customer issued by a government or other authority.
      type: object
      required:
        - type
        - value
      properties:
        value:
          description: The value of this form of identification, such as a tax ID, as a string. The caller should pass the full `value` (for example `"112-22-3333"`) when creating a contact or user. The input `value` may include `'-'` formatting characters. This is a _masked_ value in API responses, with one or more leading `'*'` characters and only the last four characters unmasked, such as `"*****3333"`.
          type: string
          format: text
          x-apiture-pii: true
        type:
          description: The type of this form of identification.
          allOf:
            - $ref: '#/components/schemas/customerIdentificationType'
        expiresOn:
          description: The date when the form of identification expires, in [RFC 3339](https://tools.ietf.org/html/rfc3339) `YYYY-MM-DD` format.
          allOf:
            - $ref: '#/components/schemas/date'
      example:
        type: taxId
        value: 112-22-3333
        expiresOn: '2024-12-01'
    customerIdentificationType:
      title: Customer Identification Type (v1.0.0)
      description: |+
        The type of this form of customer identification.

        <strong><code>customerIdentificationType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>taxId</code></strong></td><td>Tax ID: <p>The government tax ID, such as a Social Security Number</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>passportNumber</code></strong></td><td>Passport Number: <p>National Passport Number</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: customerIdentificationType
      enum:
        - taxId
        - passportNumber
      x-apiture-version: 1.0.0
    institutionConfiguration:
      x-apiture-version: 1.1.0
      title: Institution Configuration (v1.1.0)
      description: Representation of the institution configuration resource.
      required:
        - dataSharing
        - customerOrganizationModeling
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            dataSharing:
              description: Configuration properties related to user consented data sharing.
              allOf:
                - $ref: '#/components/schemas/booleanConfiguration'
            identityProvider:
              description: Configuration properties related to the financial institution's identity provider. This is excluded for financial institutions using Apiture's identity provider.
              $ref: '#/components/schemas/identityProviderConfiguration'
            customerOrganizationModeling:
              $ref: '#/components/schemas/customerOrganizationDataModelType'
      example:
        dataSharing:
          enabled: false
        identityProvider:
          issuer: https://liveoakbank.auth0.com
          webApplication:
            profileManagement:
              label: Profile Management
              url: https://liveoakbank.auth0.com/profile
          viewOnlyProperties:
            - primaryEmail
            - mobilePhone
        customerOrganizationModeling: split
    customerOrganizationDataModelType:
      title: Customer Organization Data Model Type (v1.0.0)
      description: |+
        Indicates the data model type used for customers and organizations.

        <strong><code>customerOrganizationDataModelType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>combined</code></strong></td><td>Combined: <p>The data models and APIs representing customers and organizations are combined; business banking customers are modeled as customer resources</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>split</code></strong></td><td>Split: <p>The data models and APIs representing customers and organizations are split into separate resources; businesses and organizations are not represented as customers</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: customerOrganizationDataModelType
      enum:
        - combined
        - split
      x-apiture-version: 1.0.0
    booleanConfiguration:
      title: Boolean Configuration (v1.0.0)
      description: A configuration indicating whether a feature is enabled or disabled.
      type: object
      required:
        - enabled
      properties:
        enabled:
          description: If `true`, the feature is enabled for the financial institution.
          type: boolean
      x-apiture-version: 1.0.0
    labeledUrlConfiguration:
      x-apiture-version: 1.0.1
      title: Labeled URL Configuration (v1.0.1)
      description: A configuration for a labeled URL.
      type: object
      required:
        - url
        - label
      properties:
        url:
          description: The URL for the configuration.
          type: string
          format: uri
          maxLength: 2048
        label:
          description: The human-readable label for the URL.
          type: string
          format: text
          maxLength: 200
    identityProviderConfiguration:
      x-apiture-version: 1.1.0
      title: Identity Provider Configuration (v1.1.0)
      description: Properties related to the identity provider configuration.
      type: object
      required:
        - issuer
        - viewOnlyProperties
      properties:
        issuer:
          description: The [issuer URL](https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata) for the authorization server, which serves as an identifier for the financial institution's identity provider.
          type: string
          format: uri
          pattern: ^https://.*$
          maxLength: 500
        signUp_url:
          description: If included, the URL of the financial institution's identity provider where users are sent to create a new user identity or connect their existing login.
          type: string
          format: uri
          maxLength: 2048
        mobileApplication:
          $ref: '#/components/schemas/identityProviderMobileApplication'
        webApplication:
          $ref: '#/components/schemas/identityProviderWebApplication'
        viewOnlyProperties:
          description: A list of immutable identity provider profile properties.
          type: array
          minItems: 0
          maxItems: 2
          uniqueItems: true
          items:
            $ref: '#/components/schemas/identityProviderViewOnlyProperty'
        sessionExtension:
          description: |-
            Configuration properties for the strategy used to extend the banking customer's session in the financial institution's identity provider.

            This is excluded when session extension is not configured or unavailable for this identity provider. Sessions are automatically terminated after a period of time for security reasons when not extended.
          allOf:
            - $ref: '#/components/schemas/identityProviderSessionExtensionConfiguration'
    identityProviderSessionExtensionConfiguration:
      title: Identity Provider Session Extension Configuration (v1.0.0)
      description: Configuration properties for the strategy used to extend the banking customer's session in the financial institution's identity provider.
      required:
        - strategy
        - clientId
        - scopes
      type: object
      properties:
        strategy:
          $ref: '#/components/schemas/identityProviderSessionStrategy'
        clientId:
          description: The identifier of the identity provider's client for using the session extension strategy.
          type: string
          format: text
          minLength: 1
          maxLength: 128
        scopes:
          description: The space delimited OAuth 2 scopes for clients using the session extension strategy.
          type: string
          format: text
          minLength: 0
          maxLength: 255
        audience:
          description: The audience identifier for clients using the session extension strategy. The authorization server default audience is used when this value is excluded.
          type: string
          format: text
          minLength: 1
          maxLength: 255
      example:
        strategy: openIdConnectSessionManagement
        clientId: 8462dd7b-80e1
        scopes: openid profile email offline
      x-apiture-version: 1.0.0
    identityProviderSessionStrategy:
      title: Identity Provider Session Strategy (v1.0.0)
      description: |+
        The strategy used for managing an online banking session with the financial institution's identity provider.

        <strong><code>identityProviderSessionStrategy</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>legacy</code></strong></td><td>Legacy Session Management: <p>The identity provider session is managed through a legacy strategy</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>openIdConnectSessionManagement</code></strong></td><td>OpenID Connect Session Management: <p>The identity provider session is managed through the strategy described in <a href="https://openid.net/specs/openid-connect-session-1_0.html">OpenId Connect Session Management 1.0</a></p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: identityProviderSessionStrategy
      enum:
        - legacy
        - openIdConnectSessionManagement
      x-apiture-version: 1.0.0
    identityProviderWebApplication:
      x-apiture-version: 1.0.1
      title: Identity Provider Web Application (v1.0.1)
      description: Configuration properties of a web application for use with the financial institution's identity provider.
      type: object
      properties:
        profileManagement:
          description: The configuration of access to the identity provider's profile management user experience.
          allOf:
            - $ref: '#/components/schemas/labeledUrlConfiguration'
    identityProviderMobileApplication:
      x-apiture-version: 1.0.1
      title: Identity Provider Mobile Application (v1.0.1)
      description: Configuration properties of a mobile application for use with the financial institution's identity provider.
      type: object
      properties:
        clientId:
          description: The client ID as configured in the financial institution's identity provider to be used by the banking client to authenticate and authorize a banking customer.
          type: string
          format: text
          maxLength: 32
        scopes:
          description: A space-delimited list of scopes the online banking application is expected to request from the identity provider.
          type: string
          format: text
          maxLength: 255
        profileManagement:
          description: The configuration of access to the identity provider's profile management user experience.
          allOf:
            - $ref: '#/components/schemas/labeledUrlConfiguration'
    identityProviderViewOnlyProperty:
      title: Identity Provider View Only Property (v1.0.0)
      description: |+
        Representation of a viewable property from the identity provider client.

        <strong><code>identityProviderViewOnlyProperty</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>mobilePhone</code></strong></td><td>Mobile Phone</td>
            </tr>
        <tr>
            <td><strong><code>primaryEmail</code></strong></td><td>Primary Email</td>
            </tr>
        </table>

      type: string
      x-apiture-enum: identityProviderViewOnlyProperty
      enum:
        - mobilePhone
        - primaryEmail
      x-apiture-version: 1.0.0
    institutionAccessPhysicalLocation:
      title: Institution Access Physical Location (v1.0.0)
      description: The physical location of a financial institution access location.
      type: object
      required:
        - address
        - coordinates
      properties:
        address:
          description: The address of the financial institution access location.
          $ref: '#/components/schemas/address'
        contact:
          $ref: '#/components/schemas/institutionContact'
        coordinates:
          description: The global positioning system (GPS) coordinates of the institution access location.
          $ref: '#/components/schemas/coordinates'
      example:
        address:
          address1: 1805 Tiburon Drive
          locality: Wilmington
          regionCode: NC
          postalCode: '28403'
          countryCode: US
        contact:
          phoneNumbers:
            - type: main
              number: '+19105550155'
        coordinates:
          latitude: 34.20085
          longitude: -77.90288
      x-apiture-version: 1.0.0
    institutionContact:
      title: Institution Contact (v1.0.0)
      description: Contact information for this institution access location.
      type: object
      properties:
        phoneNumbers:
          description: The phone numbers for this financial institution access location.
          type: array
          uniqueItems: true
          maxItems: 5
          items:
            $ref: '#/components/schemas/typedPhoneNumber'
        emailAddress:
          description: The email addresses for this institution access location.
          type: array
          uniqueItems: true
          maxItems: 5
          items:
            type: string
            format: email
            maxLength: 80
        website:
          description: The website for this institution access location.
          type: string
          format: uri
          maxLength: 255
        retailLocationName:
          description: If included, the name of the retail outlet containing this institution access location.
          type: string
          format: text
          minLength: 3
          maxLength: 100
      x-apiture-version: 1.0.0
    institutionAccessLocationOperatingHoursByType:
      x-apiture-version: 1.0.1
      title: Institution Access Location Operating Hours by Type (v1.0.1)
      description: Hours of operation for different access points at a location.
      type: object
      properties:
        lobby:
          description: Operating hours for the lobby of a financial institution branch.
          $ref: '#/components/schemas/institutionAccessLocationOperatingHoursByDay'
        driveThrough:
          description: Operating hours for a drive through. ATMs located in drive throughs use the `atm` operating hours.
          $ref: '#/components/schemas/institutionAccessLocationOperatingHoursByDay'
        atm:
          description: Operating hours for an ATM. The ATM may be standalone or part of a branch.
          $ref: '#/components/schemas/institutionAccessLocationOperatingHoursByDay'
      example:
        atm:
          sunday:
            open24Hours: true
          monday:
            open24Hours: true
          tuesday:
            open24Hours: true
          wednesday:
            open24Hours: true
          thursday:
            open24Hours: true
          friday:
            open24Hours: true
          saturday:
            open24Hours: true
    institutionAccessLocationOperatingHoursByDay:
      x-apiture-version: 1.0.1
      title: Institution Access Location Operating Hours By Day (v1.0.1)
      description: Operating hours for a location for by the day of the week. Days are excluded when the location is not open that day.
      type: object
      properties:
        sunday:
          description: Operating hours for this location on Sundays.
          $ref: '#/components/schemas/institutionAccessLocationDayOperatingHours'
        monday:
          description: Operating hours for this location on Mondays.
          $ref: '#/components/schemas/institutionAccessLocationDayOperatingHours'
        tuesday:
          description: Operating hours for this location on Tuesdays.
          $ref: '#/components/schemas/institutionAccessLocationDayOperatingHours'
        wednesday:
          description: Operating hours for this location on Wednesdays.
          $ref: '#/components/schemas/institutionAccessLocationDayOperatingHours'
        thursday:
          description: Operating hours for this location on Thursdays.
          $ref: '#/components/schemas/institutionAccessLocationDayOperatingHours'
        friday:
          description: Operating hours for this location on Fridays.
          $ref: '#/components/schemas/institutionAccessLocationDayOperatingHours'
        saturday:
          description: Operating hours for this location on Saturdays.
          $ref: '#/components/schemas/institutionAccessLocationDayOperatingHours'
    institutionAccessLocationDayOperatingHours:
      x-apiture-version: 1.0.1
      title: Institution Access Location Operating Hours (v1.0.1)
      description: The open and close times for an institution access location on a given day.
      type: object
      required:
        - open24Hours
      properties:
        open24Hours:
          description: If `true`, the location is open 24 hours a day.
          type: boolean
        opens:
          description: The time the institution access location opens. This is required when `closes` is set. This is excluded when `open24Hours` is true.
          $ref: '#/components/schemas/institutionAccessLocationOperatingTime'
        closes:
          description: The time the institution access location closes. This is required when `opens` is set. This is excluded when `open24Hours` is true.
          $ref: '#/components/schemas/institutionAccessLocationOperatingTime'
        timeZoneId:
          description: |-
            The identifier of the time zone for which the `opens` and `closes` values are returned in. This is required when `opens` and `closes` are set.

            The client can use this value to localize the values to the local time zone of the customer, as well as for formatting to localized names, such as `EST` and `EDT`.
          $ref: '#/components/schemas/timeZoneId'
        timeZoneLabel:
          description: The localized time zone name, based on the current week and locale. This is required when `timeZoneId` is set.
          type: string
          format: text
          minLength: 3
          maxLength: 5
          example: EST
      example:
        open24Hours: false
        opens: '08:00'
        closes: '18:00'
        timeZoneId: America/New_York
        timeZoneLabel: EST
    institutionAccessLocationOperatingTime:
      title: Institution Access Location Operating Time (v1.0.0)
      description: A time of day expressed in [RFC 3339 `hh:mm`](https://tools.ietf.org/html/rfc3339) 24 hour time format of the financial institution access location.
      type: string
      format: timeOfDay
      minLength: 5
      maxLength: 5
      pattern: ^[0-2][0-9]\:[0-5][0-9]$
      x-apiture-version: 1.0.0
    institutionAccessLocationType:
      title: Institution Access Location Type (v1.0.0)
      description: |+
        The type of institution access location.

        <strong><code>institutionAccessLocationType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>atm</code></strong></td><td>ATM: <p>Automated Teller Machine</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>branch</code></strong></td><td>Branch</td>
            </tr>
        </table>

      type: string
      x-apiture-enum: institutionAccessLocationType
      enum:
        - atm
        - branch
      x-apiture-version: 1.0.0
    atmLocationCapabilities:
      title: ATM Location Capabilities (v1.0.0)
      description: Features and capabilities of an ATM location.
      required:
        - selfService
      type: object
      properties:
        selfService:
          description: If `true`, this ATM can be used to perform self-service banking functions, such as bill pay and transfers.
          type: boolean
      x-apiture-version: 1.0.0
    institutionAccessLocations:
      x-apiture-version: 1.2.1
      title: Institution Access Locations Collection (v1.2.1)
      description: Collection of institution access locations. The items in the collection are ordered in the `items` array. The response object may contain the `nextPage_url` pagination link.
      required:
        - items
      allOf:
        - $ref: '#/components/schemas/abstractPagedBody'
        - type: object
          properties:
            items:
              description: An array containing a page of institution access location items.
              type: array
              maxItems: 1000
              items:
                $ref: '#/components/schemas/institutionAccessLocationItem'
            map_url:
              description: The URL of a web page that displays a map of the institution's access locations.
              type: string
              format: uri
              minLength: 4
              maxLength: 4000
            count:
              description: The total number of institution access locations which satisfy the request filters. This is optional and only included if the service can calculate it.
              type: integer
              format: int32
              minimum: 0
              maximum: 10000
      example:
        start: d1b48af913464aa49fcb07065dcc0616
        limit: 10
        count: 2381
        nextPage_url: https://static.api.apiture.com/banking/institutionAccessLocations/?start=6117a4dcefb841cab7316cef1ac8b58c&limit=10
        items:
          - name: Tiburon Financial ATM
            type: atm
            location:
              address:
                address1: 1805 Tiburon Drive
                locality: Wilmington
                regionCode: NC
                postalCode: '28403'
                countryCode: US
              coordinates:
                latitude: 34.20085
                longitude: -77.90288
            distance: 6.21mi
            hoursOfOperation:
              atm:
                sunday:
                  open24Hours: true
                monday:
                  open24Hours: true
                tuesday:
                  open24Hours: true
                wednesday:
                  open24Hours: true
                thursday:
                  open24Hours: true
                friday:
                  open24Hours: true
                saturday:
                  open24Hours: true
            atm:
              selfService: true
    institutionAccessLocationItem:
      x-apiture-version: 1.1.0
      title: Institution Access Location Item (v1.1.0)
      description: Summary representation of an access location for a financial institution resource.
      type: object
      required:
        - name
        - type
        - location
      properties:
        name:
          description: The name of this institution access location.
          type: string
          format: text
          minLength: 3
          maxLength: 150
        type:
          $ref: '#/components/schemas/institutionAccessLocationType'
        location:
          $ref: '#/components/schemas/institutionAccessPhysicalLocation'
        webAddress_url:
          description: The web address of this institution access location.
          type: string
          format: uri
          maxLength: 2048
        hoursOfOperation:
          description: The hours of operation per access type and days.
          $ref: '#/components/schemas/institutionAccessLocationOperatingHoursByType'
        atm:
          description: Capabilities and available features of an ATM location. This is required when `type` is `atm`.
          $ref: '#/components/schemas/atmLocationCapabilities'
        distance:
          description: Calculated distance from the origin point in the request. The unit of measure is the same as the unit in the request.
          type: string
          pattern: ^\d{1,3}(\.\d{1,2})?(mi|km)?$
          minLength: 1
          maxLength: 8
          example: 6.21mi
      example:
        name: Tiburon Financial ATM
        type: atm
        location:
          address:
            address1: 1805 Tiburon Drive
            locality: Wilmington
            regionCode: NC
            postalCode: '28403'
            countryCode: US
          coordinates:
            latitude: 34.20085
            longitude: -77.90288
        distance: 6.21mi
        hoursOfOperation:
          atm:
            sunday:
              open24Hours: true
            monday:
              open24Hours: true
            tuesday:
              open24Hours: true
            wednesday:
              open24Hours: true
            thursday:
              open24Hours: true
            friday:
              open24Hours: true
            saturday:
              open24Hours: true
        atm:
          selfService: true
    institutionLocatorType:
      x-apiture-version: 2.0.0
      title: Institution Locator Type (v2.0.0)
      description: |+
        Indicates the type of the institution `locator`.

        <strong><code>institutionLocatorType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>abaRoutingNumber</code></strong></td><td>ABA Routing Number: <p>The <a href="https://www.aba.com/about-us/routing-number">American Bankers Association routing number</a> of a financial institution</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>swiftBicCode</code></strong></td><td>swiftBicCode: <p>The <a href="https://www.swift.com/standards/data-standards/bic-business-identifier-code">SWIFT Business Identifier Code (BIC) code</a> of a financial institution</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>other</code></strong></td><td>Other: <p>A financial institution identifier other than ABA Routing Number or SWIFT Business Identifier Code (BIC)</p>
        </td>
            </tr>
        </table>

      x-apiture-enum: institutionLocatorType
      type: string
      enum:
        - abaRoutingNumber
        - swiftBicCode
        - other
    financialInstitutionFields:
      x-apiture-version: 2.0.0
      title: Financial Institution Fields (v2.0.0)
      description: Common fields of a financial institution resource used to build other model schemas.
      x-apiture-fragment: true
      type: object
      properties:
        name:
          description: The financial institution's name.
          allOf:
            - $ref: '#/components/schemas/institutionName'
        locator:
          description: The [American Bankers Association routing number](https://www.aba.com/about-us/routingnumber), [SWIFT Business Identifier Code (BIC) code](https://www.swift.com/standards/data-standards/bic-business-identifier-code), or [IBAN account number](https://www.ecbs.org/iban.htm) of the institution. The form of this institution locator string is set with the `locatorType` property.
          type: string
          maxLength: 36
          format: text
        locatorType:
          description: Indicates the type of this institution's `locator`.
          $ref: '#/components/schemas/institutionLocatorType'
      example:
        name: First Bank of Andalasia
        locator: '503000196'
        locatorType: abaRoutingNumber
    simpleInstitution:
      x-apiture-version: 2.0.0
      title: Simple Institution (v2.0.0)
      description: A simple representation of a financial institution.
      required:
        - name
        - address
        - locatorType
        - locator
      allOf:
        - $ref: '#/components/schemas/financialInstitutionFields'
        - type: object
          properties:
            address:
              description: The financial institution's postal mailing address.
              $ref: '#/components/schemas/address'
      example:
        name: First Bank of Andalasia
        address:
          address1: 239 West Princess Ave.
          locality: Andalasia
          regionCode: NC
          countryCode: US
          postalCode: '28407'
        locator: '503000196'
        locatorType: abaRoutingNumber
    institutionLookupResult:
      x-apiture-version: 2.0.0
      title: Institution Lookup Result (v2.0.0)
      description: Successful institution lookup result.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - found
          properties:
            found:
              description: '`true` if a financial institution was found matching the requested FI locator, `false` if none was found.'
              type: boolean
            institution:
              description: The name and other information about the financial institution, if found.
              $ref: '#/components/schemas/simpleInstitution'
            intermediaryInstitutions:
              description: Optional intermediary institutions, if requested and if intermediary institutions are required for for international wire transfers to the beneficiary institution. This array is omitted if there none are required.
              type: array
              minItems: 1
              maxItems: 8
              items:
                $ref: '#/components/schemas/simpleInstitution'
      example:
        found: true
        institution:
          name: First Bank of Andalasia
          address:
            address1: 239 West Princess Ave.
            locality: Andalasia
            regionCode: NC
            countryCode: US
            postalCode: '28407'
          locator: '503000196'
          locatorType: abaRoutingNumber
    cutoffTimes:
      x-apiture-version: 2.0.0
      title: Cutoff Times (v2.0.0)
      description: A representation of financial institution cutoff times for different money movement processes. A money movement process can have multiple cutoff times. The cutoff times are sorted in ascending chronological order by money movement process.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - timeZoneId
            - items
          properties:
            timeZoneId:
              description: |-
                The identifier of the time zone for which all of the `items[].time` are returned in.
                The client can use this value to localize the `items[].time` values to the local time zone of the customer, as well as for formatting to localized names, such as `EST` and `EDT`.
              $ref: '#/components/schemas/timeZoneId'
            items:
              description: A list of cutoff times for a financial institution.
              type: array
              maxItems: 50
              items:
                $ref: '#/components/schemas/cutoffTime'
      example:
        timeZoneId: America/New_York
        items:
          - type: ach
            time: '13:45'
          - type: ach
            time: '16:45'
          - type: sameDayAch
            time: '16:45'
          - type: domesticWireTransfer
            time: '16:45'
    cutoffTime:
      x-apiture-version: 2.0.0
      title: Cutoff Time (v2.0.0)
      description: A representation of a cutoff time for a money movement process at a financial institution.
      type: object
      required:
        - type
        - time
      properties:
        type:
          $ref: '#/components/schemas/cutoffTimeType'
        time:
          description: 'The cutoff time for a product formatted in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) `time` format: `hh:mm`. The time is expressed in 24 hour time and is set to the local time zone of the financial institution.'
          type: string
          pattern: ^([0-1][0-9]|2[0-4]):[0-5][0-9]$
          example: '16:45'
          minLength: 5
          maxLength: 5
      example:
        type: ach
        time: '16:45'
    cutoffTimeType:
      x-apiture-version: 2.0.0
      title: Cutoff Time Type (v2.0.0)
      description: |+
        Indicates the type of a cutoff time.

        <strong><code>cutoffTimeType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>ach</code></strong></td><td>ACH</td>
            </tr>
        <tr>
            <td><strong><code>sameDayAch</code></strong></td><td>Same Day ACH</td>
            </tr>
        <tr>
            <td><strong><code>nachaPassThrough</code></strong></td><td>NACHA Pass Through</td>
            </tr>
        <tr>
            <td><strong><code>domesticWireTransfer</code></strong></td><td>Domestic Wire Transfer</td>
            </tr>
        <tr>
            <td><strong><code>internationalWireTransfer</code></strong></td><td>International Wire Transfer</td>
            </tr>
        <tr>
            <td><strong><code>internationalWireTransferWithCurrencyConversion</code></strong></td><td>International Wire Transfer with Currency Conversion</td>
            </tr>
        <tr>
            <td><strong><code>internalTransfer</code></strong></td><td>Internal Account Transfer: <p>A transfer between accounts at the same financial institution</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>externalTransfer</code></strong></td><td>External Account Transfer: <p>A transfer to or from an account at an external financial institution</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>billPay</code></strong></td><td>Bill Pay</td>
            </tr>
        </table>

      type: string
      x-apiture-enum: cutoffTimeType
      enum:
        - ach
        - sameDayAch
        - nachaPassThrough
        - domesticWireTransfer
        - internationalWireTransfer
        - internationalWireTransferWithCurrencyConversion
        - internalTransfer
        - externalTransfer
        - billPay
    wireTransferDisclosures:
      title: Wire Transfer Disclosures (v1.0.0)
      description: Disclosed fees and taxes for wire transfers. Fees and taxes are determined by the financial institution. Omitted properties mean the tax or fee is not applicable.
      type: object
      properties:
        internationalRetailTransferFee:
          description: A fee applied to retail customers sending an international wire.
          $ref: '#/components/schemas/monetaryValue'
        internationalRetailProcessingFee:
          description: The financial institution's processing fee for retail customers sending an international wire.
          $ref: '#/components/schemas/monetaryValue'
        internationalRetailTax:
          description: The amount of taxes charged to a retail customer to transfer funds using an international wire.
          $ref: '#/components/schemas/monetaryValue'
      example:
        internationalRetailTransferFee: '45.00'
        internationalRetailProcessingFee: '5.00'
      x-apiture-version: 1.0.0
    transferScheduleDirection:
      x-apiture-version: 1.0.0
      title: Transfer Schedule Direction (v1.0.0)
      description: |+
        Provides the direction in which a transfer flows.

        <strong><code>transferScheduleDirection</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>debit</code></strong></td><td>Debit: <p>Money is transferred from a payer to the financial institution</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>credit</code></strong></td><td>Credit: <p>Money is transferred from the financial institution to a payee</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>both</code></strong></td><td>Both: <p>Money is transferred both to and from a payee/payer</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: transferScheduleDirection
      enum:
        - debit
        - credit
        - both
    transferSchedules:
      x-apiture-version: 1.0.1
      title: Transfer Schedule List (v1.0.1)
      description: |-
        List of transfer methods. The items in the list are ordered in the `items` array.

        Note: The service only knows [bank holidays](https://www.federalreserve.gov/aboutthefed/k8.htm) for about two to four years in advance. Dates beyond the `accuracyEndsOn` date in the [`listTransferDateRestrictions`](#op-listTransferDateRestrictions) response may not include holidays (only weekends or other institution closures.)
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: An array containing upcoming transfer schedule items.
              type: array
              maxItems: 1000
              items:
                $ref: '#/components/schemas/transferScheduleItem'
      example:
        items:
          - scheduledOn: '2022-06-27'
            effectiveOn: '2022-06-27'
          - scheduledOn: '2022-07-04'
            effectiveOn: '2022-07-05'
          - scheduledOn: '2022-07-11'
            effectiveOn: '2022-07-11'
          - scheduledOn: '2022-07-18'
            effectiveOn: '2022-07-18'
          - scheduledOn: '2022-07-25'
            effectiveOn: '2022-07-25'
          - scheduledOn: '2022-08-01'
            effectiveOn: '2022-07-01'
    transferScheduleItem:
      x-apiture-version: 1.0.0
      title: Transfer Schedule Item (v1.0.0)
      description: Summary representation of a transfer schedule resource in transfer schedule list.
      required:
        - scheduledOn
        - effectiveOn
      type: object
      properties:
        scheduledOn:
          description: The scheduled date of the calculated calendar recurrence in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) date format.
          type: string
          format: date
          example: '2022-07-04'
          minLength: 10
          maxLength: 10
        effectiveOn:
          description: The effective date of the recurrence in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) date format. When the effective date differs from the scheduled date, it is due to a banking holiday, weekend, or other non-business day. The date is adjusted to before the scheduled date when the transfer direction is `credit` and adjusted to after the scheduled date when the transfer direction is `debit`.
          type: string
          format: date
          example: '2022-07-05'
          minLength: 10
          maxLength: 10
      examples:
        - scheduledOn: '2022-07-04'
          effectiveOn: '2022-07-05'
    transferDateRestrictionType:
      title: Transfer Date Restriction Type (v1.0.0)
      description: |+
        Indicates why a transfer date is restricted.

        <strong><code>transferDateRestrictionType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>pastDate</code></strong></td><td>Past Date: <p>The transfer date is in the past</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>pastCutoffTime</code></strong></td><td>Past Cutoff Time: <p>Transfers disallowed because the current time is past the financial institutions&#39; cutoff time</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>riskRestricted</code></strong></td><td>Risk Restricted: <p>The date is restricted because the risk level requires one or more days for a debit to clear</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>holiday</code></strong></td><td>Holiday: <p>A <a href="https://www.federalreserve.gov/aboutthefed/k8.htm">Federal Reserve System observed holiday</a></p>
        </td>
            </tr>
        <tr>
            <td><strong><code>closure</code></strong></td><td>Closure: <p>Financial institution closure, such as a weekend or other planned closure</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>other</code></strong></td><td>Other: <p>Other</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: transferDateRestrictionType
      enum:
        - pastDate
        - pastCutoffTime
        - riskRestricted
        - holiday
        - closure
        - other
      x-apiture-version: 1.0.0
    transferTypeForDateRestrictions:
      x-apiture-version: 1.1.0
      title: Transfer Restriction Transfer Type (v1.1.0)
      description: |+
        Indicates the type of transfer. This determines what business rules and adjustments to make to the date restrictions.

        <strong><code>transferTypeForDateRestrictions</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>internal</code></strong></td><td>Internal: <p>Internal account to internal account transfer</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>external</code></strong></td><td>External: <p>A transfer to or from an account at an external financial institution</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>ach</code></strong></td><td>ACH: <p>An ACH transfer that includes both debit and credit transfers</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>achCredit</code></strong></td><td>ACH Credit: <p>An ACH transfer debiting an internal account and crediting an external account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>achDebit</code></strong></td><td>ACH Debit: <p>An ACH transfer debiting an external account and crediting an internal account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>domesticWireTransfer</code></strong></td><td>Domestic Wire Transfer</td>
            </tr>
        <tr>
            <td><strong><code>internationalWireTransfer</code></strong></td><td>International Wire Transfer</td>
            </tr>
        </table>

      type: string
      x-apiture-enum: transferTypeForDateRestrictions
      enum:
        - internal
        - external
        - ach
        - achDebit
        - achCredit
        - domesticWireTransfer
        - internationalWireTransfer
      default: internal
    transferDateRestrictions:
      title: Transfer Date Restrictions (v1.0.0)
      description: |-
        A list of the financial institution's transfer date restrictions. This is a list of weekdays and specific dates when the institution cannot perform the requested transfers.
        The response may include dates prior to requested the start date, as that is useful for populating a calendar that shows the current month and the last few days of the previous month.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            restrictedDates:
              description: A list of restricted transfer dates as determined by the requested transfer parameters, holidays, and scheduled closures. This includes dates that correspond to normal day-of-week restrictions as listed in `restrictedDays`.
              type: array
              maxItems: 500
              items:
                $ref: '#/components/schemas/transferDateRestriction'
            accuracyEndsOn:
              description: The service only knows [bank holidays](https://www.federalreserve.gov/aboutthefed/k8.htm) for about two to four years in advance. This date is the end of that known holiday schedule, although the requested dates may extend well beyond this date. Any dates in the response beyond this date may omit holidays but may include other restricted dates based on the financial institution's normal scheduled closures such as Saturdays and Sundays.
              type: string
              format: date
              minLength: 10
              maxLength: 10
      example:
        restrictedDates:
          - occursOn: '2022-10-01'
            reason: pastDate
          - occursOn: '2022-10-02'
            reason: pastDate
          - occursOn: '2022-10-03'
            reason: pastDate
          - occursOn: '2022-10-04'
            reason: pastDate
          - occursOn: '2022-10-05'
            reason: pastCutoffTime
          - occursOn: '2022-10-06'
            reason: riskRestricted
          - occursOn: '2022-10-07'
            reason: riskRestricted
          - occursOn: '2022-10-08'
            reason: closure
            debitOn: '2022-10-07'
          - occursOn: '2022-10-09'
            reason: closure
            debitOn: '2022-10-07'
          - occursOn: '2022-10-10'
            reason: holiday
            debitOn: '2022-10-07'
          - occursOn: '2022-10-15'
            reason: closure
            debitOn: '2022-10-14'
          - occursOn: '2022-10-16'
            reason: closure
            debitOn: '2022-10-14'
          - occursOn: '2022-10-22'
            reason: closure
            debitOn: '2022-10-21'
          - occursOn: '2022-10-23'
            reason: closure
            debitOn: '2022-10-21'
          - occursOn: '2022-10-29'
            reason: closure
            debitOn: '2022-10-28'
          - occursOn: '2022-10-30'
            reason: closure
            debitOn: '2022-10-28'
        accuracyEndsOn: '2026-12-31'
      x-apiture-version: 1.0.0
    transferDateRestriction:
      title: Transfer Date Restriction (v1.0.0)
      description: A date where a transfer restriction occurs, and the `reason` it is restricted. If the `reason` is `holiday`, `closure` and the transfer is an ACH transfer, the object also contains either a `debitOn` or `creditOn` date or both.
      type: object
      required:
        - occursOn
        - reason
      additionalProperties: false
      properties:
        occursOn:
          description: The date that a transfers restriction occurs, is in the [ISO 8601 Date](https://en.wikipedia.org/wiki/ISO_8601#Calendar_dates) format, `yyyy-mm-dd`.
          type: string
          format: date
          minLength: 10
          maxLength: 10
          example: '2019-04-05'
        reason:
          description: Indicates why this date is restricted.
          $ref: '#/components/schemas/transferDateRestrictionType'
        creditOn:
          description: The date the local financial institution account is credited in [RFC 3339 `YYYY-MM-DD`](https://tools.ietf.org/html/rfc3339) date format. This is derived from the `date` based on the `risk` level. The credit-on date normally falls one business day after the restricted `date`. This property is only returned if the payment `type` is `achDebit` or `ach`.
          type: string
          format: date
          minLength: 10
          maxLength: 10
          example: '2022-07-05'
        debitOn:
          description: The date the local financial institution account is debited in [RFC 3339 `YYYY-MM-DD`](https://tools.ietf.org/html/rfc3339) date format. This is derived from the `date` based on the `risk` level and the transfer direction (`achDebit` or `achCredit`). The debit-on date normally falls one to three business days before the restricted `date`. This property is only returned if the payment `type` is `achCredit` or `ach`.
          type: string
          format: date
          minLength: 10
          maxLength: 10
          example: '2022-07-05'
      example:
        occursOn: '2022-10-10'
        reason: holiday
        debitOn: '2022-10-07'
      x-apiture-version: 1.0.0
    institutionName:
      title: Institution Name (v1.0.0)
      description: A financial institution's name.
      type: string
      format: text
      minLength: 2
      maxLength: 128
      x-apiture-version: 1.0.0
    checkNumberRange:
      title: Check Number Range (v1.0.0)
      description: A numeric range for a checking account check number.
      allOf:
        - $ref: '#/components/schemas/positiveIntegerRange'
      x-apiture-version: 1.0.0
    transactionId:
      title: Transaction ID (v1.0.0)
      description: The transaction's unique identifier.
      readOnly: true
      type: string
      pattern: ^[-_:,.~$a-zA-Z0-9]{6,256}$
      minLength: 6
      maxLength: 256
      x-apiture-version: 1.0.0
    transactionFields:
      x-apiture-version: 5.0.0
      title: Transaction Fields (v5.0.0)
      description: Common fields of the transaction resource used to build other model schemas.
      type: object
      x-apiture-fragment: true
      required:
        - id
        - type
        - subtype
        - occurredOn
        - amount
        - allows
      properties:
        id:
          $ref: '#/components/schemas/transactionId'
        type:
          description: The transaction type. If the `type` is `debit` or `credit`, the `subtype` conveys further transaction type details.
          $ref: '#/components/schemas/transactionType'
        subtype:
          description: The transaction's kind of debit or credit.
          $ref: '#/components/schemas/transactionSubType'
        occurredOn:
          description: The date of the transaction in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format. This is derived and immutable.
          type: string
          format: date
          minLength: 10
          maxLength: 10
          readOnly: true
          example: '2023-05-18'
        amount:
          description: The transaction amount in dollars. This value is negative if the transaction is a debit and positive if it is a credit.
          $ref: '#/components/schemas/creditOrDebitValue'
        posted:
          description: If `true`, the transaction has been posted (cleared) and applied to the account. If `false`, the transaction is still pending and might be canceled. `posted` is only valid for credit and debit transactions and omitted for balance items. (Balance items are not true transactions since they do not alter the account balance.)
          type: boolean
        balance:
          description: The account's running current balance as of this transaction. The `balance` may be omitted if the request includes filters which preclude the inclusion of a running balance.
          $ref: '#/components/schemas/creditOrDebitValue'
        memo:
          description: The user-settable transaction memo.
          type: string
          format: text
          maxLength: 128
        description:
          description: The transaction description assigned by the transaction cleansing service.
          type: string
          format: text
          maxLength: 128
        category:
          description: The transaction category, if assigned.
          $ref: '#/components/schemas/transactionCategorization'
        merchant:
          $ref: '#/components/schemas/transactionMerchant'
        checkNumber:
          description: The check number. This is represented as a string because leading `0` digits are significant. This property is only present if the transaction `subtype` is `check`.
          type: string
          pattern: ^[0-9]{1,16}$
          minLength: 1
          maxLength: 16
        hasImages:
          description: '`true` if and only if there are images associated with this transaction. Use the [`listTransactionImages`](#op-listTransactionImages) operation to fetch the images.'
          type: boolean
        hold:
          $ref: '#/components/schemas/transactionHold'
        allows:
          $ref: '#/components/schemas/transactionAllows'
      example:
        id: 88f5bf17-ecc4
        type: debit
        subtype: check
        occurredOn: '2023-05-18'
        memo: Paid electric bill
        merchant:
          name: B&T'S Excellent Electric Co
          website_url: https://BillTedsExcellentElectricCompany.example.com/
          logo_url: https://BillTedsExcellentElectricCompany.example.com/img/logos/medium.png
        amount: '1276.21'
        posted: true
        balance: '8509.38'
        category:
          label: Utilities
          id: '127'
        checkNumber: '8412'
        hasImages: true
        allows:
          createDispute: false
    transactionHold:
      title: Transaction Hold (v1.0.0)
      description: Details of a hold on this transaction. If there is no hold, this object is omitted.
      type: object
      required:
        - amount
        - available
        - clearsAt
      properties:
        amount:
          description: The amount of funds that are on hold.
          allOf:
            - $ref: '#/components/schemas/monetaryValue'
        available:
          description: The amount of funds that have been released from hold and are available in the account.
          allOf:
            - $ref: '#/components/schemas/monetaryValue'
        clearsAt:
          description: The time when the hold is cleared and all remaining funds are released.
          allOf:
            - $ref: '#/components/schemas/timestamp'
      example:
        amount: '4000.00'
        available: '1000.00'
        clearsAt: '2023-06-26T12:47:23.375Z'
      x-apiture-version: 1.0.0
    transactionMerchant:
      x-apiture-version: 1.1.0
      title: Transaction Merchant (v1.1.0)
      description: Describes the merchant associated with a transaction.
      type: object
      properties:
        name:
          description: The merchant\'s name.
          type: string
          maxLength: 32
          format: text
        website_url:
          description: The merchant's website URL.
          type: string
          format: uri-reference
          maxLength: 400
        logo_url:
          description: The optional URL of the merchant's logo. This image must be an image resource (SVG, PNG, GIF, JPEG image) that does not require any authentication. The URL may contain query parameters.
          type: string
          format: uri-reference
          maxLength: 400
    transactionCategorization:
      x-apiture-version: 1.3.0
      title: Transaction Categorization (v1.3.0)
      description: The transaction categorization.
      type: object
      required:
        - id
        - label
      properties:
        label:
          $ref: '#/components/schemas/transactionCategoryLabel'
        id:
          description: The unique ID of this transaction's category.
          type: string
          pattern: ^[-_:.~$a-zA-Z0-9]{1,32}$
          minLength: 1
          maxLength: 32
          readOnly: true
    transactionCategoryLabel:
      x-apiture-version: 1.2.0
      title: Transaction Category Label (v1.2.0)
      description: The label of a transaction category, such as `"Shopping"`, `"Deposit"`, `"Bill"`, `"Transfer"`, or `"Other"`.
      type: string
      format: text
      minLength: 1
      maxLength: 64
    transactionType:
      x-apiture-version: 2.0.1
      title: Transaction Type (v2.0.1)
      description: |+
        Distinguishes between balance, debit, or credit transaction history items.

        <strong><code>transactionType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>balance</code></strong></td><td>Balance: <p>A pseudo-transaction that conveys the account balance.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>debit</code></strong></td><td>Debit: <p>A debit against the account.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>credit</code></strong></td><td>Credit: <p>A credit transaction.</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: transactionType
      enum:
        - balance
        - debit
        - credit
    transactionSubType:
      title: Transaction Subtype (v1.0.0)
      description: |+
        If the transaction `type` is `debit` or `credit`, the `subtype` indicates what type of debit or credit it is. The subtype values may grow in future releases.

        <strong><code>transactionSubType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>check</code></strong></td><td>Check: <p>A check drawn from a checking account.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>other</code></strong></td><td>Other: <p>Some other transaction type.</p>
        </td>
            </tr>
        </table>

      x-apiture-note: 'To add in the future: - adjustment - atm - deposit - mobileDeposit - fee - interest - reversal - transfer'
      type: string
      x-apiture-enum: transactionSubType
      enum:
        - check
        - other
      x-apiture-version: 1.0.0
    transactionItem:
      x-apiture-version: 5.0.0
      title: Transaction Item (v5.0.0)
      description: Summary representation of a transaction resource in transactions collections.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/transactionFields'
      example:
        id: 88f5bf17-ecc4
        type: debit
        subtype: check
        occurredOn: '2023-05-18'
        memo: Paid electric bill
        merchant:
          name: B&T's Excellent Electric Co.
          website_url: https://BillTedsExcellentElectricCompany.example.com/
          logo_url: https://BillTedsExcellentElectricCompany.example.com/img/logos/medium.png
        amount: '1276.21'
        posted: true
        balance: '8509.38'
        category:
          label: Utilities
          id: '127'
        checkNumber: '8412'
        hasImages: true
        allows:
          createDispute: false
    transactionAllows:
      title: Transaction Allows (v1.0.0)
      description: |
        Indicates what transaction actions are allowed for the current customer, given the user's entitlements and the state of the transaction.
      type: object
      required:
        - createDispute
      readOnly: true
      properties:
        createDispute:
          type: boolean
          description: The customer is allowed to create a dispute for this transaction. Disputes may be disabled for this transaction for various reasons, such as the age of the transaction or the transaction category codes.
      example:
        createDispute: true
      x-apiture-version: 1.0.0
    transactions:
      x-apiture-version: 5.0.0
      title: Transaction Collection (v5.0.0)
      description: Collection of transactions. The items in the collection are ordered in the `items` array. The response object may contain the `nextPage_url` pagination link.
      required:
        - items
      allOf:
        - $ref: '#/components/schemas/abstractPagedBody'
        - type: object
          properties:
            items:
              description: An array containing a page of transaction items.
              type: array
              maxItems: 10000
              items:
                $ref: '#/components/schemas/transactionItem'
            count:
              description: The total number of transactions which satisfy the request filters. This is optional and only included if the service can calculate it.
              type: integer
              format: int32
              minimum: 0
              maximum: 100000000
      example:
        start: d1b48af913464aa49fcb07065dcc0616
        limit: 10
        count: 2381
        nextPage_url: https://static.api.apiture.com/banking/accounts/c9fc25b47d52916fc9ad/transactions?start=6117a4dcefb841cab7316cef1ac8b58c&limit=10
        items:
          - id: d62c0701-0d74
            type: balance
            subtype: other
            occurredOn: '2023-06-18'
            amount: '0.00'
            posted: true
            balance: '8509.38'
            allows:
              createDispute: false
          - id: 88f5bf17-ecc4
            type: debit
            subtype: check
            occurredOn: '2023-06-18'
            memo: Paid electric bill
            merchant:
              name: B&T's Excellent Electric Co.
              website_url: https://BillTedsExcellentElectricCompany.example.com/
              logo_url: https://BillTedsExcellentElectricCompany.example.com/img/logos/medium.png
            amount: '1276.21'
            posted: true
            balance: '8509.38'
            category:
              label: Utilities
              id: '127'
            checkNumber: '8412'
            allows:
              createDispute: true
    incompleteTransactions:
      title: Incomplete Transactions (v1.0.0)
      description: Response when requesting transactions that are not yet available.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - retryCount
          properties:
            retryCount:
              description: Pass this value as the as the `?retryCount=` parameter with the next retry of the [`listTransactions`](#op-listTransactions) operation.
              type: integer
              format: int32
              minimum: 1
              maximum: 10
      x-apiture-version: 1.0.0
    transactionCategoryType:
      title: Transaction Category (v1.0.0)
      description: |+
        Classifies a transaction category as applying to either debit or credit transactions.

        <strong><code>transactionCategoryType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>credit</code></strong></td><td>Credit: <p>This transaction category applies to credit (expense) transactions.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>debit</code></strong></td><td>Debit: <p>This transaction category applies to debit (income) transactions.</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: transactionCategoryType
      enum:
        - credit
        - debit
      x-apiture-version: 1.0.0
    transactionCategory:
      x-apiture-version: 1.2.0
      title: Transaction Category (v1.2.0)
      description: Representation of transaction category resources.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/transactionCategorization'
        - type: object
          required:
            - type
          properties:
            type:
              $ref: '#/components/schemas/transactionCategoryType'
      example:
        id: 0399abed-fd3d
        type: debit
        label: Dining
    transactionCategories:
      x-apiture-version: 1.2.0
      title: Transaction Category Collection (v1.2.0)
      description: Collection of transaction categories. The list contains both financial institution defined immutable categories and customer defined categories.
      allOf:
        - type: object
          required:
            - items
          properties:
            items:
              description: An array containing transaction category items.
              type: array
              maxItems: 1000
              items:
                $ref: '#/components/schemas/transactionCategory'
      example:
        items:
          - id: ef7958260dce34abddb7
            label: Groceries
            type: debit
          - id: f24096860ebf1383e202
            label: Dining
            type: debit
          - id: 33c3d38ca0a744b8d903
            label: Entertainment
            type: debit
    transactionImages:
      x-apiture-version: 2.0.2
      title: Transaction Images (v2.0.2)
      description: |-
        A page of images of documents associated with a transaction. Images include check images and deposit slips, with a `front` side and optional `back` side. All `back` images, if they exist, immediately follow their corresponding `front` image in the array.

        There may be more than two images associated with a transaction if the financial institution has enabled the _Deposit Item Images_ feature. For example, a transaction for the deposit of multiple checks may include the images of the deposit slip and the _n_ deposited checks. When this feature is disabled, the image for such a transaction may be just the deposit slip.

        If there are more images associated with this transaction, the `nextPage_url` property is set. Use a `GET` call on that URL to fetch the next page.
      allOf:
        - $ref: '#/components/schemas/abstractPagedBody'
        - type: object
          required:
            - images
          properties:
            images:
              description: A page of transaction image objects.
              type: array
              minItems: 1
              maxItems: 256
              items:
                $ref: '#/components/schemas/transactionImage'
            count:
              description: The total number of images for this transaction.
              type: integer
              minimum: 1
              maximum: 256
              format: int32
      example:
        count: 16
        limit: 16
        images:
          - contentType: image/png
            content: SW1hZ2luZSB0aGlzIGFzIGEgUE5HIGNoZWNrIGltYWdlLCBub3QgdGV4dC4=
            side: front
          - contentType: image/png
            content: SW1hZ2luZSB0aGlzIGFzIGFub3RoZXIgUE5HIGNoZWNrIGltYWdlLCBub3QgdGV4dC4=
            side: back
          - unavailable: true
          - unavailable: true
          - contentType: image/jpeg
            content: SW1hZ2luZSB0aGlzIGFzIGEgSlBFRyBjaGVjayBpbWFnZS4=
            side: front
          - contentType: image/jpeg
            content: SW1hZ2luZSB0aGlzIGFzIHlldCBhbm90aGVyIEpQRUcgY2hlY2sgaW1hZ2Uu
            side: back
        nextPage_url: /banking/transactions/91fd4ce044a22130f986/images?start=6
    transactionImageType:
      title: Transaction Image Type (v1.0.0)
      description: The media type of a transaction image.
      type: string
      enum:
        - image/png
        - image/jpeg
        - image/gif
      x-apiture-version: 1.0.0
    transactionImageSide:
      title: Transaction Image Side (v1.0.0)
      description: Indicates if an image is the front or back of the captured document.
      type: string
      enum:
        - front
        - back
        - unknown
      x-apiture-version: 1.0.0
    transactionImage:
      x-apiture-version: 1.1.1
      title: Transaction Image (v1.1.1)
      description: An image associated with a transaction. Images include check images and deposit slips. If a transaction `type` is `debit` and the `subtype` is `check`, this is a check image (front or back). If the platform could not load the image, `unavailable` is `true`, and the `content`, `contentType`, and `side` are omitted and the `message` describes the problem. Otherwise, the `content`, `contentType`, and `side` define the transaction image.
      type: object
      properties:
        contentType:
          $ref: '#/components/schemas/transactionImageType'
        content:
          description: The Base 64 encoding of the raw image data. The content is limited to 3,000,000 bytes, which supports a maximum raw image size of about 2,100,000 bytes.
          type: string
          format: byte
          contentEncoding: base64
          maxLength: 3000000
        side:
          $ref: '#/components/schemas/transactionImageSide'
        unavailable:
          description: This field is present and `true` only if the service is unable to return this image.
          type: boolean
          default: false
        message:
          description: Additional note about the image.
          type: string
          format: text
          maxLength: 200
      examples:
        - contentType: image/png
          content: SW1hZ2luZSB0aGlzIGlzIGEgY2hlY2sgaW1hZ2UsIG5vdCB0ZXh0Lg==
          side: front
        - unavailable: true
    transferSchedule:
      x-apiture-version: 2.1.0
      title: Transfer Schedule (v2.1.0)
      description: |-
        The scheduled date when the transfer should be completed, the recurrence, if any, and other derived dates based on the scheduled date.

        For recurring transfer schedules, `endsOn`, `count`, and `amountLimit` are mutually exclusive.
      type: object
      required:
        - frequency
      properties:
        scheduledOn:
          description: The date the the customer scheduled the transfer to occur in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format.
          type: string
          format: date
          minLength: 10
          maxLength: 10
        recurrenceType:
          $ref: '#/components/schemas/transferRecurrenceType'
        frequency:
          $ref: '#/components/schemas/transferFrequency'
        endsOn:
          description: The optional date when the recurring transfer schedule ends, in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) date format. Subsequent recurring transfers may be scheduled up to and including this date, but not after. This property is ignored if `frequency` is `once`.
          type: string
          format: date
          minLength: 10
          maxLength: 10
        count:
          description: For recurring schedules (`frequency` is not `once`), this is the total number of transfers to make, including the first transfer. This property is ignored if `frequency` is `once`.
          type: integer
          format: int32
          default: 1
          minimum: 1
          maximum: 10000
        amountLimit:
          description: For recurring schedules (`frequency` is not `once`), this is the total dollar amount limit including the first transfer. No transfers are scheduled if they would exceed this amount. This property is ignored if `frequency` is `once`.
          $ref: '#/components/schemas/monetaryValue'
          example: '1000.00'
      examples:
        - scheduledOn: '2026-06-28'
          frequency: once
        - scheduledOn: '2023-08-01'
          frequency: monthly
          recurrenceType: fixed
          count: 9
    transferItemSchedule:
      x-apiture-version: 1.1.0
      title: Transfer Item Schedule (v1.1.0)
      description: 'A transfer''s schedule: when the transfer is scheduled, its recurrence properties, and derived credit and debit dates.'
      allOf:
        - $ref: '#/components/schemas/transferSchedule'
        - type: object
          properties:
            debitsOn:
              description: The effective date the transfer is scheduled to debit the source account, in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format. This is derived from the `scheduledOn` date, based on the financial institution's transfer rules.
              type: string
              format: date
              minLength: 10
              maxLength: 10
              readOnly: true
            creditsOn:
              description: The effective the transfer is scheduled to credit the target account, in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format. This is derived from the `scheduledOn` date, based on the financial institution's transfer rules.
              format: date
              type: string
              minLength: 10
              maxLength: 10
              readOnly: true
      examples:
        - scheduledOn: '2026-06-28'
          creditsOn: '2026-06-26'
          debitsOn: '2026-06-24'
          frequency: once
        - scheduledOn: '2023-08-01'
          frequency: monthly
          recurrenceType: fixed
          count: 9
          creditsOn: '2023-08-01'
          debitsOn: '2026-08-01'
    transferAccountReference:
      x-apiture-version: 3.0.0
      title: Transfer Account Reference (v3.0.0)
      description: A reference to a banking account used within an account to account transfer. This object may be set from an account's `account.reference` object.
      type: object
      required:
        - id
      properties:
        id:
          description: The unique ID of a banking account.
          $ref: '#/components/schemas/resourceId'
        label:
          $ref: '#/components/schemas/accountLabel'
        type:
          description: The product type of the account.
          $ref: '#/components/schemas/productType'
        location:
          description: Indicates where an account is held.
          $ref: '#/components/schemas/accountLocation'
      example:
        id: e821ce54-c715
        label: Premiere Checking *6789
        type: checking
        location: internal
    transferFields:
      x-apiture-version: 4.0.0
      title: Transfer Fields (v4.0.0)
      description: Common fields of the transfer resource used to build other model schemas.
      type: object
      x-apiture-fragment: true
      properties:
        amount:
          description: The amount of money to transfer between accounts.
          $ref: '#/components/schemas/monetaryValue'
        sourceAccount:
          description: The source account where the funds are withdrawn.
          $ref: '#/components/schemas/transferAccountReference'
        targetAccount:
          description: The target account where the funds are deposited.
          $ref: '#/components/schemas/transferAccountReference'
        memo:
          description: A customer-defined memo to describe the transfer.
          type: string
          maxLength: 128
          format: text
    newTransfer:
      x-apiture-version: 4.0.0
      title: New Transfer (v4.0.0)
      description: Representation used to create a new transfer.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/transferFields'
        - type: object
          properties:
            schedule:
              description: When the transfer should occur and any recurrence.
              $ref: '#/components/schemas/transferSchedule'
      required:
        - schedule
        - amount
        - sourceAccount
        - targetAccount
      example:
        amount: '275.00'
        memo: Cover check for car repair
        sourceAccount:
          id: bd9b7af2-6f9b
          location: internal
        targetAccount:
          id: 88b1ca3e-d0f3
          location: internal
        schedule:
          scheduledOn: '2022-06-28'
          frequency: once
    transferPatch:
      x-apiture-version: 4.0.0
      title: Transfer Patch Request (v4.0.0)
      description: Representation used to patch an existing transfer using the [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/transferFields'
        - type: object
          properties:
            schedule:
              description: When the transfer should occur and any recurrence.
              x-apiture-todo: We should probably define transferSchedulePatch schema for this
              $ref: '#/components/schemas/transferSchedule'
      example:
        amount: '275.00'
        targetAccount:
          id: 88b1ca3e-d0f3
        schedule:
          scheduledOn: '2022-06-28'
          frequency: once
    transferState:
      x-apiture-version: 2.0.0
      title: Transfer State (v2.0.0)
      description: |+
        The state of a transfer resource.

        <strong><code>transferState</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>unscheduled</code></strong></td><td>Unscheduled: <p>A transfer which is not ready to be queued for processing</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>pendingApproval</code></strong></td><td>Pending Approval: <p>A transfer which is awaiting approval before it can be queued for processing</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>scheduled</code></strong></td><td>Scheduled: <p>A transfer which has been queued for processing</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>processing</code></strong></td><td>Processing: <p>A transfer which is being processed</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>processed</code></strong></td><td>Processed: <p>A transfer which has completed processing</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>failed</code></strong></td><td>Failed: <p>A transfer which has cannot be processed or failed while processing</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>other</code></strong></td><td>Other: <p>A transfer which is in some other state</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: transferState
      enum:
        - unscheduled
        - pendingApproval
        - scheduled
        - processing
        - processed
        - failed
        - other
    transferItem:
      x-apiture-version: 5.0.0
      title: Transfer Item (v5.0.0)
      description: Summary representation of a transfer resource in transfers collections. To fetch the full representation of this transfer, use the [`getTransfer`](#op-getTransfer) operation, passing this item's `id` field as the `transferId` path parameter.
      allOf:
        - $ref: '#/components/schemas/transferFields'
        - $ref: '#/components/schemas/timestampFields'
        - type: object
          required:
            - id
            - schedule
            - amount
            - sourceAccount
            - targetAccount
            - state
          properties:
            id:
              description: The unique identifier for this transfer resource. This is an immutable opaque string.
              allOf:
                - $ref: '#/components/schemas/readOnlyResourceId'
            schedule:
              description: When the transfer should occur and any recurrence.
              $ref: '#/components/schemas/transferItemSchedule'
            state:
              description: The state of this transfer resource.
              allOf:
                - $ref: '#/components/schemas/transferState'
              readOnly: true
            processedAt:
              description: The date/time the transfer was processed.
              $ref: '#/components/schemas/readOnlyTimestamp'
            updatedBy:
              description: The full name of the banking customer who last updated the transfer.
              type: string
              format: text
              maxLength: 40
      example:
        id: f0de6bc7722f9cb8ab27
        state: scheduled
        amount: '275.00'
        sourceAccount:
          id: bd9b7af2-6f9b
        targetAccount:
          id: 88b1ca3e-d0f3
          label: Personal Savings *4567
          type: savings
        schedule:
          scheduledOn: '2026-06-28'
          frequency: once
          creditsOn: '2026-06-26'
          debitsOn: '2026-06-24'
        processedAt: '2026-06-26T21:00:00.000Z'
        updatedBy: James Bond
    transfer:
      x-apiture-version: 5.0.0
      title: Transfer (v5.0.0)
      description: Representation of a transfer resource.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/transferItem'
      example:
        id: 0399abed-fd3d
        amount: '275.00'
        memo: Cover check for car repair
        state: scheduled
        sourceAccount:
          id: bd9b7af2-6f9b
          label: Premiere Checking *6789
          type: checking
          location: internal
        targetAccount:
          id: 88b1ca3e-d0f3
          label: Personal Savings *4567
          type: savings
          location: internal
        schedule:
          scheduledOn: '2026-06-28'
          frequency: once
          creditsOn: '2026-06-26'
          debitsOn: '2026-06-24'
    transfers:
      x-apiture-version: 5.0.0
      title: Transfer Collection (v5.0.0)
      description: Collection of transfers. The items in the collection are ordered in the `items` array. The response object may contain the `nextPage_url` pagination link..
      allOf:
        - $ref: '#/components/schemas/abstractPagedBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: An array containing a page of transfer items.
              type: array
              maxItems: 1000
              items:
                $ref: '#/components/schemas/transferItem'
            count:
              description: The number of transfers that meet the filters in the `listTransfers` operation. This is optional and only included if the service can calculate it efficiently.
              type: integer
              format: int32
              minimum: 0
              maximum: 1000000
      example:
        start: d1b48af913464aa49fcb07065dcc0616
        limit: 10
        nextPage_url: https://static.api.apiture.com/transfers/transfers?start=6117a4dcefb841cab7316cef1ac8b58c&limit=10
        items:
          - id: 0399abed-fd3d
            amount: '275.00'
            memo: Cover check for car repair
            state: processed
            sourceAccount:
              id: bd9b7af2-6f9b
              label: Premiere Checking *6789
              type: checking
              location: internal
            targetAccount:
              id: 88b1ca3e-d0f3
              label: Personal Savings *4567
              type: savings
              location: internal
            schedule:
              scheduledOn: '2026-06-28'
              frequency: once
              creditsOn: '2026-06-26'
              debitsOn: '2026-06-24'
            processedAt: '2022-06-28T21:00:00.000Z'
          - id: d62c0701-0d74
            amount: '100.00'
            state: scheduled
            memo: school expenses
            sourceAccount:
              id: bd9b7af2-6f9b
              label: Checking *6789
              type: checking
              location: internal
            targetAccount:
              id: c8396f59-624b
              label: Checking *3456
              type: checking
              location: internal
            schedule:
              scheduledOn: '2023-08-01'
              frequency: monthly
              recurrenceType: fixed
              count: 9
              creditsOn: '2023-08-01'
              debitsOn: '2026-08-01'
    paymentAccountReference:
      title: Payment Account Reference (v1.0.0)
      description: A reference to an account at a financial institution.
      type: object
      properties:
        id:
          description: The account's unique, opaque resource ID.
          $ref: '#/components/schemas/resourceId'
        label:
          description: A text label which describes this account. This is derived from the `account.label`.
          type: string
          format: text
          maxLength: 80
          example: Checking *1008
        maskedNumber:
          description: The account number, masked for partial display.
          $ref: '#/components/schemas/maskedAccountNumber'
      example:
        id: bf23bc970b78d27691e
        label: Payroll Checking *1008
        maskedNumber: '*1008'
      x-apiture-version: 1.0.0
    activatePaymentContactRequest:
      title: Activate Payment Contact Request (v1.0.0)
      description: Request body to activate a payment contact.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
      x-apiture-version: 1.0.0
    deactivatePaymentContactRequest:
      title: Deactivate Payment Contact Request (v1.0.0)
      description: Request body to deactivate a payment contact.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
      x-apiture-version: 1.0.0
    achPaymentInstructionImportStrategy:
      title: ACH Payment Instruction Import Strategy (v1.0.0)
      description: |+
        ACH payment instruction import strategy: append to the existing instructions, or replace the batch's instructions.

        <strong><code>achPaymentInstructionImportStrategy</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>append</code></strong></td><td>Append: <p>Append the imported payment instructions to the existing payment instructions in this batch</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>replace</code></strong></td><td>Replace: <p>Replace the existing payment instructions in this batch with the imported payment instructions</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: achPaymentInstructionImportStrategy
      enum:
        - append
        - replace
      x-apiture-version: 1.0.0
    achPaymentInstructionImport:
      x-apiture-version: 1.1.2
      title: ACH Payment Instruction Import (v1.1.2)
      description: |-
        A request to import a tab-separated values (TSV) list of ACH payment instructions into the existing payment batch.

        For TSV files, the `content` has these ten columns.
        <table> <tr><th> Column Heading      </th><th> Description </th></tr> <tr><td> Name                </td><td> The name for this payment instruction payee/payer.
                                               The column name `Customer Name` is also accepted.                     </td></tr>
        <tr><td> Contact ID          </td><td> The optional identifier used to differentiate between customers,
                                               such as an employee ID. The column name `ID` is also accepted.        </td></tr>
        <tr><td> Account Number      </td><td> The account number for this instructions' payee/payer                 </td></tr> <tr><td> Account Type        </td><td> The ACH account type &dagger;                                         </td></tr> <tr><td> Routing Number      </td><td> The ACH account routing and transit number.
                                               The column name `R&T Number` is also accepted.                        </td></tr>
        <tr><td> Amount              </td><td> The amount of the payment                                             </td></tr> <tr><td> Description/Addenda </td><td> Payment instruction description or addenda text                       </td></tr> <tr><td> Debits/Credits      </td><td> <code>C</code> if this is a credit; <code>D</code> if this is a debit </td></tr> <tr><td> Hold                </td><td> A _true_ value if there is a hold on this instruction or
                                               a _false_ value if not &dagger;&dagger;                               </td></tr>
        </table>

        If the file contains column headers in the first row, the columns may be in any order. Column header case is ignored, as is leading/trailing whitespace. The `Name`, `Contact ID`, `Account Number` and `Account Type` columns must be present. Additional columns which do not match these headers are ignored.

        If no headers are present, the first ten columns must be present and must be in this order.

        &dagger; Allowed case-insensitive values for `Account Type` values are:

          * `checking`, `check`, `D`, `DDA` for checking accounts
          * `loan`, `L`, `LN`, `LON`, for loan accounts
          * `savings`, `S`, `SAV`, `SSA` for  savings accounts

        (Some natural language variations are also accepted.)

        &dagger;&dagger; Allowed case-insensitive _true_ and _false_ values  for `Hold` values are:

          * `yes`, `true`, `1`, `hold`
          * `no`, `false`, `0`

        (Some natural language variations are also accepted.)
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - strategy
            - content
          properties:
            strategy:
              $ref: '#/components/schemas/achPaymentInstructionImportStrategy'
            content:
              description: The [Base64-encoded](https://en.wikipedia.org/wiki/Base64) content of the tab-separated values (TSV) representing one or more ACH payment instructions.
              type: string
              format: byte
              contentEncoding: base64
              maxLength: 2500000
      example:
        strategy: append
        content: QmFzZS02NCBlbmNvZGVkIFRTViBjb250ZW50IGhlcmUuLi4=
    dateRangeOrUnscheduled:
      x-apiture-version: 1.1.0
      title: Date Range Or Unscheduled (v1.1.0)
      description: A date range, where endpoints can be inclusive or exclusive or open-ended, allowing matching unscheduled payment batches. The bracketed range options (excluding simple `YYYY-MM-DD` single date values) may include the `|unscheduled` suffix.
      type: string
      minLength: 10
      maxLength: 35
      pattern: ^\d{4}-\d{2}-\d{2}|([[(](\d{4}-\d{2}-\d{2},(\d{4}-\d{2}-\d{2})?|,\d{4}-\d{2}-\d{2})[)\]](\|unscheduled)?)|unscheduled$
      examples:
        - '[2022-05-01,2022-05-31]'
        - '[2022-05-01,2022-05-31]|unscheduled'
        - '[2022-05-01,2022-05-31]'
        - '[2022-05-01,2022-06-01)'
        - '[2022-05-19,]'
        - (2022-05-19,)
        - (2022-05-19,)|unscheduled
        - '[,2022-05-19]'
        - (,2022-05-19)
        - '2022-05-19'
        - unscheduled
    paymentBatchIds:
      title: Payment Batch Ids (v1.0.0)
      description: A list of payment batch IDs to apply an operation to.
      type: array
      minItems: 1
      maxItems: 999
      items:
        $ref: '#/components/schemas/resourceId'
      x-apiture-version: 1.0.0
    paymentInstructionIds:
      x-apiture-version: 1.1.0
      title: Payment Batch Instruction Ids (v1.1.0)
      description: A list of payment batch instruction IDs to apply an operation to.
      type: array
      minItems: 1
      maxItems: 999
      items:
        $ref: '#/components/schemas/resourceId'
    paymentContactIds:
      title: Payment Contact Ids (v1.0.0)
      description: A list of payment contact IDs to apply an operation to.
      type: array
      minItems: 1
      maxItems: 999
      items:
        $ref: '#/components/schemas/resourceId'
      x-apiture-version: 1.0.0
    paymentHistoryCreationType:
      x-apiture-version: 1.3.0
      title: Payment History Creation Type (v1.3.0)
      description: |+
        Describes how a payment batch was created.

        <strong><code>paymentHistoryCreationType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>create</code></strong></td><td>Create: <p>A new payment batch was created from scratch</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>copy</code></strong></td><td>Copy: <p>This payment batch was created as a copy of another batch</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>prenote</code></strong></td><td>Prenote: <p>The payment batch was created by prenote of another batch</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>reversal</code></strong></td><td>Reversal: <p>The payment batch was created from a reversal of another batch</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>partialReversal</code></strong></td><td>Partial Reversal: <p>The payment batch was created from the reversal of one or more payment instruction lines within another payment batch, but not the entire payment batch</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>nachaImport</code></strong></td><td>NACHA Import: <p>This payment batch was created by importing a NACHA file</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>recur</code></strong></td><td>Recur: <p>This payment batch was created when a recurring transfer created a new payment batch instance in the recurring schedule</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>template</code></strong></td><td>Template: <p>This payment batch was created from a payment batch resource template</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: paymentHistoryCreationType
      enum:
        - create
        - copy
        - prenote
        - reversal
        - partialReversal
        - nachaImport
        - recur
        - template
    paymentHistoryUpdateType:
      title: Payment History Update Type (v1.0.0)
      description: |+
        Describes how a payment batch was updated.

        <strong><code>paymentHistoryUpdateType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>settlementAccountUpdated</code></strong></td><td>Settlement Account Updated: <p>One or more settlement accounts were updated for this payment batch</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: paymentHistoryUpdateType
      enum:
        - settlementAccountUpdated
      x-apiture-version: 1.0.0
    paymentHistoryUpdateTypeItem:
      title: Payment History Update Type Item (v1.0.0)
      description: The summary of what was updated on a payment batch.
      type: object
      required:
        - type
      properties:
        type:
          description: The canonical type of representing an update.
          $ref: '#/components/schemas/paymentHistoryUpdateType'
      x-apiture-version: 1.0.0
    paymentHistoryRecordType:
      x-apiture-version: 1.3.0
      title: Payment History Record Type (v1.3.0)
      description: |+
        The type of a payment history record.

        <strong><code>paymentHistoryRecordType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>created</code></strong></td><td>Created: <p>The customer created this payment batch</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>copied</code></strong></td><td>Copied: <p>The customer copied this payment batch</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>prenoted</code></strong></td><td>Prenoted: <p>The customer created a prenote batch from this payment batch</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>approved</code></strong></td><td>Approved: <p>The customer approved this payment batch</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>requestedApproval</code></strong></td><td>Requested Approval: <p>The customer requested approval of this payment batch</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>rejected</code></strong></td><td>Rejected: <p>The customer rejected this payment batch</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>reversed</code></strong></td><td>Reversed: <p>The customer reversed this payment batch</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>partiallyReversed</code></strong></td><td>Partially Reversed: <p>The customer reversed a subset of instructions of this payment batch</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>unlocked</code></strong></td><td>Unlocked: <p>The customer unlocked this approved or scheduled payment batch</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>updated</code></strong></td><td>Updated: <p>The customer updated this payment batch or its instructions</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>exported</code></strong></td><td>Exported: <p>The customer exported this payment batch</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>submitted</code></strong></td><td>Submitted: <p>The customer submitted this payment batch</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>recurred</code></strong></td><td>Recurred: <p>The payment batch was scheduled from a recurring transfer</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: paymentHistoryRecordType
      enum:
        - created
        - copied
        - prenoted
        - approved
        - requestedApproval
        - rejected
        - reversed
        - partiallyReversed
        - unlocked
        - updated
        - exported
        - submitted
        - recurred
    paymentHistoryRecord:
      x-apiture-version: 2.0.1
      title: Payment History Record (v2.0.1)
      description: Representation of payment history record resources.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - type
            - customerId
            - customerName
            - occurredAt
          properties:
            type:
              description: The type of payment batch activity; this describes what the customer did with the payment batch.
              $ref: '#/components/schemas/paymentHistoryRecordType'
            customerId:
              description: The ID of the customer who performed the action.
              $ref: '#/components/schemas/readOnlyResourceId'
            customerName:
              description: The name of the customer who performed the action. This is the customer's name at the time the action occurred.
              type: string
              maxLength: 48
              format: text
            occurredAt:
              description: The date and time when the customer performed the action.
              $ref: '#/components/schemas/readOnlyTimestamp'
            secondaryTrackingNumber:
              description: The tracking number of the related payment batch associated with this action. This field is set if `type` is one of `copied`, `prenoted`, `reversed`, `partiallyReversed`.
              $ref: '#/components/schemas/paymentBatchTrackingNumber'
            secondaryPaymentBatchId:
              description: The resource ID of the related payment batch associated with this action. This field is set if `type` is one of `copied`, `prenoted`, `reversed`, `partiallyReversed`.
              $ref: '#/components/schemas/readOnlyResourceId'
            approvers:
              description: A list of customers who were added as approvers for this batch. This field is set only if `type` is `approvalRequested`.
              type: array
              maxItems: 8
              items:
                $ref: '#/components/schemas/paymentHistoryRecordApprover'
            reason:
              description: The reason given for rejecting a payment batch. This field is set if `type` is `rejected` or other actions which include a `reason`.
              type: string
              maxLength: 80
              format: text
            creationType:
              description: For the `type` of `created`, this indicates how the payment batch was created.
              $ref: '#/components/schemas/paymentHistoryCreationType'
            wireTransferTemplate:
              description: For the `type` of `created`, if the `creationType` is `template` and the payment batch is a wire transfer, this is the template used for creating the payment batch.
              $ref: '#/components/schemas/wireTransferTemplateReference'
            updateTypes:
              description: For the `type` of `updated`, this indicates how the payment batch was updated. Additional details for this changeset beyond the first 50 changes are excluded.
              type: array
              maxItems: 50
              items:
                $ref: '#/components/schemas/paymentHistoryUpdateTypeItem'
      example:
        type: created
        occurredAt: '2022-07-28T12:44:46.375Z'
        creationType: copy
        customerId: 4242923b-714e
        customerName: Karl Knox
        secondaryTrackingNumber: '62115474'
        secondaryPaymentBatchId: 45b9a55a-9811
    paymentHistoryRecordApprover:
      x-apiture-version: 1.2.0
      title: Payment History Record Approver (v1.2.0)
      description: Representation of payment history record approvers.
      type: object
      properties:
        id:
          description: The ID of the customer who was asked to approve this batch.
          $ref: '#/components/schemas/readOnlyResourceId'
        name:
          description: The name of the customer who was asked to approve this batch.
          type: string
          minLength: 2
          maxLength: 48
          format: text
    paymentBatchTrackingNumber:
      title: Payment Batch Tracking Number (v1.0.0)
      readOnly: true
      description: A unique tracking number for this batch. Unlike the `id`, this numeric value is visible to the customer, and can be used to lookup a batch by this ID.
      type: string
      pattern: ^[0-9]+$
      minLength: 6
      maxLength: 9
      example: '15474162'
      x-apiture-version: 1.0.0
    paymentHistoryRecords:
      x-apiture-version: 2.0.1
      title: Payment History Record Collection (v2.0.1)
      description: Collection of payment history records.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: An array containing a page of payment history record items.
              type: array
              maxItems: 10000
              items:
                $ref: '#/components/schemas/paymentHistoryRecord'
      example:
        items:
          - type: created
            occurredAt: '2022-07-28T12:44:46.375Z'
            customerId: 4242923b-714e
            customerName: Karl Knox
            creationType: copy
            secondaryTrackingNumber: '62115474'
            secondaryPaymentBatchId: 45b9a55a-9811
          - type: updated
            occurredAt: '2022-07-28T12:49:22.000Z'
            customerId: 4242923b-714e
            customerName: Karl Knox
          - type: requestedApproval
            occurredAt: '2022-07-28T12:54:30.000Z'
            customerId: 4242923b-714e
            customerName: Karl Knox
          - type: approved
            customerId: b9815cc6-85a7
            customerName: Alex Frank
            occurredAt: '2022-07-29T04:18:49.375Z'
    paymentBatchApprovalRemovalRequest:
      x-apiture-version: 1.2.0
      title: Payment Batch Approval Removal Request (v1.2.0)
      description: Request data accompanying the action to remove approvals.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            reason:
              description: The optional reason the customer is removing approvals for this batch.
              type: string
              maxLength: 80
              format: text
    bulkPaymentBatchApprovalRequest:
      x-apiture-version: 2.0.0
      title: Bulk Payment Batch Approval Request (v2.0.0)
      description: A request to approve a list of payment batches.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            paymentBatchIds:
              description: A list of payment batches to approve.
              $ref: '#/components/schemas/paymentBatchIds'
    bulkPaymentBatchDeletionRequest:
      title: Bulk Payment Batch Delete Request (v1.0.0)
      description: A request to remove a list of payment batches.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            paymentBatchIds:
              description: A list of payment batches to remove.
              $ref: '#/components/schemas/paymentBatchIds'
      x-apiture-version: 1.0.0
    bulkPaymentBatchUnlockRequest:
      x-apiture-version: 1.1.1
      title: Bulk Payment Batch Unlock Request (v1.1.1)
      description: A request to unlock (unapprove) a list of payment batches.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - paymentBatchIds
          properties:
            paymentBatchIds:
              description: A list of payment batches to unlock/unapprove.
              $ref: '#/components/schemas/paymentBatchIds'
            reason:
              description: The optional reason the customer is unlocking/unapproving these batches.
              type: string
              maxLength: 80
              format: text
      example:
        paymentBatchIds:
          - f36eb767fbdd8f66a748
          - f6d383ddb051d27f217d
        reason: need to adjust payment date
    bulkPaymentBatchRejectionRequest:
      x-apiture-version: 1.1.1
      title: Bulk Payment Batch Rejection Request (v1.1.1)
      description: A request to reject a list of payment batches.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            paymentBatchIds:
              description: A list of payment batches to reject.
              $ref: '#/components/schemas/paymentBatchIds'
            reason:
              description: The optional reason the customer is rejecting these batches.
              type: string
              maxLength: 80
              format: text
      example:
        paymentBatchIds:
          - f36eb767fbdd8f66a748
          - f6d383ddb051d27f217d
        reason: used wrong budget page
    bulkPaymentBatchReversalRequest:
      x-apiture-version: 1.1.1
      title: Bulk Payment Batch Reversal Request (v1.1.1)
      description: A request to reverse a list of payment batches.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            paymentBatchIds:
              description: A list of payment batches to reverse.
              $ref: '#/components/schemas/paymentBatchIds'
            reason:
              description: The optional reason the customer is reversing these batches.
              type: string
              maxLength: 80
              format: text
      example:
        paymentBatchIds:
          - f36eb767fbdd8f66a748
          - f6d383ddb051d27f217d
        reason: invoice paid
    bulkPaymentBatchApproversRequest:
      x-apiture-version: 3.0.0
      title: Bulk Payment Batch Approvers Request (v3.0.0)
      description: A request to add approvers to a list of payment batches.
      type: object
      allOf:
        - $ref: '#/components/schemas/eligiblePaymentBatchApprovers'
    bulkPaymentInstructionHoldRequest:
      x-apiture-version: 2.1.1
      title: Bulk Payment Batch Instruction Hold Request (v2.1.1)
      description: A request to perform an action for a list of instructions in a payment batch.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            paymentInstructionIds:
              description: A list of payment batch instructions to set the `hold` value for.
              $ref: '#/components/schemas/paymentInstructionIds'
      example:
        paymentInstructionIds:
          - f36eb767fbdd8f66a748
          - f6d383ddb051d27f217d
    bulkPaymentInstructionDeletionRequest:
      x-apiture-version: 2.0.0
      title: Bulk Payment Batch Instruction Deletion Request (v2.0.0)
      description: A request to delete a set of instructions in a payment batch.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            paymentInstructionIds:
              description: A list of payment batch instructions to delete.
              $ref: '#/components/schemas/paymentInstructionIds'
      example:
        paymentInstructionIds:
          - f36eb767fbdd8f66a748
          - f6d383ddb051d27f217d
    bulkPaymentContactActivateRequest:
      x-apiture-version: 1.0.1
      title: Bulk Payment Contact Activate Request (v1.0.1)
      description: A request to activate a set of payment contacts.
      type: object
      required:
        - paymentContactIds
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            paymentContactIds:
              description: A list of payment contact references to activate.
              $ref: '#/components/schemas/paymentContactIds'
      example:
        paymentContactIds:
          - f83aabf8b2934cd007c9
          - 54af277363a2613af45a
    bulkPaymentContactDeactivateRequest:
      x-apiture-version: 1.0.1
      title: Bulk Payment Contact Deactivation Request (v1.0.1)
      description: A request to deactivate a set of payment contacts. Deactivating a contact does not affect existing payment batches involving the contact.
      type: object
      required:
        - paymentContactIds
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            paymentContactIds:
              description: A list of payment contact references to deactivate.
              $ref: '#/components/schemas/paymentContactIds'
      example:
        paymentContactIds:
          - f83aabf8b2934cd007c9
          - 54af277363a2613af45a
    bulkPaymentContactDeletionRequest:
      x-apiture-version: 1.0.1
      title: Bulk Payment Contact Deletion Request (v1.0.1)
      description: A request to delete a set of payment contacts. Deleting a contact does not affect existing payment batches involving the contact.
      type: object
      required:
        - paymentContactIds
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            paymentContactIds:
              description: A list of payment contact references to delete.
              $ref: '#/components/schemas/paymentContactIds'
      example:
        paymentContactIds:
          - f83aabf8b2934cd007c9
          - 54af277363a2613af45a
    bulkPaymentInstructionOperationResponseItem:
      x-apiture-version: 1.1.0
      title: Bulk Payment Instruction Operation Item (v1.1.0)
      description: An abstract item in a [bulk payment instructions operation response](#schema-abstractBulkPaymentInstructionOperationResponse).
      type: object
      required:
        - id
        - succeeded
      properties:
        id:
          description: The payment instruction ID.
          $ref: '#/components/schemas/readOnlyResourceId'
        succeeded:
          description: '`true` if the operation was successful for the payment instruction.'
          type: boolean
        problems:
          description: If the operation for this instruction failed (`succeeded` is `false`), this describes why. This may include forbidden, conflict, or other 4xx error or problem types that can occur with individual payment instruction operation calls.
          type: array
          maxItems: 1000
          items:
            $ref: '#/components/schemas/paymentProblem'
    bulkPaymentContactOperationResponseItem:
      title: Bulk Payment Contact Operation Item (v1.0.0)
      description: An abstract item in a [bulk payment contact operation response](#schema-abstractBulkPaymentContactOperationResponse).
      type: object
      required:
        - id
        - succeeded
      properties:
        id:
          description: The payment contact ID.
          $ref: '#/components/schemas/readOnlyResourceId'
        succeeded:
          description: '`true` if the operation was successful for the payment contact.'
          type: boolean
        problems:
          description: If the operation for this contact failed (`succeeded` is `false`), this describes why. This may include forbidden, conflict, or other 4xx error or problem types that can occur with individual payment contact operation calls.
          type: array
          maxItems: 1000
          items:
            $ref: '#/components/schemas/apiProblem'
      x-apiture-version: 1.0.0
    bulkPaymentBatchOperationResponseItem:
      x-apiture-version: 1.1.0
      title: Bulk Payment Batch Operation Item (v1.1.0)
      description: An abstract item in a [bulk payment batch operation response](#schema-abstractBulkPaymentBatchOperationResponse).
      type: object
      required:
        - id
        - succeeded
      properties:
        id:
          description: The payment batch ID.
          $ref: '#/components/schemas/readOnlyResourceId'
        succeeded:
          description: '`true` if the operation was successful for the payment batch.'
          type: boolean
        problems:
          description: If the operation for this batch failed (`succeeded` is `false`), this describes why. This may include forbidden, conflict, or other 4xx error or problem types that can occur with individual payment batch operation calls.
          type: array
          maxItems: 1000
          items:
            $ref: '#/components/schemas/paymentProblem'
    abstractBulkPaymentInstructionOperationResponse:
      x-apiture-version: 1.1.0
      title: Bulk Payment Instruction Operation Response (v1.1.0)
      description: Bulk payment instruction operation response.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            items:
              description: The result of attempting to perform an action on a set of payment instructions in the request. Items in the array correspond (in order) to each payment instruction ID in the request.
              type: array
              minItems: 1
              maxItems: 999
              items:
                description: The result of attempting to perform an action on one payment instruction from the list of payment instructions in the request.
                $ref: '#/components/schemas/bulkPaymentInstructionOperationResponseItem'
    abstractBulkPaymentContactOperationResponse:
      title: Bulk Payment Contact Operation (v1.0.0)
      description: Bulk payment contact operation response.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            items:
              description: The result of attempting to perform an action on a set of payment contacts in the request. Items in the array correspond (in order) to each payment contact ID in the request.
              type: array
              minItems: 1
              maxItems: 999
              items:
                description: The result of attempting to perform an action on one payment contact from the list of payment contacts in the request.
                $ref: '#/components/schemas/bulkPaymentContactOperationResponseItem'
      x-apiture-version: 1.0.0
    abstractBulkPaymentBatchOperationResponse:
      x-apiture-version: 1.1.0
      title: Bulk Payment Batch Operation (v1.1.0)
      description: Bulk payment batch operation response.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            items:
              description: The result of attempting to perform an action on a set of payment batches in the request. Items in the array correspond (in order) to each payment batch ID in the request.
              type: array
              minItems: 1
              maxItems: 999
              items:
                description: The result of attempting to perform an action on one payment batch from the list of payment batches in the request.
                $ref: '#/components/schemas/bulkPaymentBatchOperationResponseItem'
    paymentBatchApprovals:
      x-apiture-version: 2.1.1
      title: Payment Batch Approvals (v2.1.1)
      description: Response from the request to approve a set of payment batches.
      type: object
      $ref: '#/components/schemas/abstractBulkPaymentBatchOperationResponse'
    unlockedPaymentBatches:
      x-apiture-version: 1.0.1
      title: Unlocked Payment Batches (v1.0.1)
      description: Response from the request to unlock (unapprove) a set of payment batches.
      type: object
      $ref: '#/components/schemas/abstractBulkPaymentBatchOperationResponse'
    paymentBatchDeletions:
      x-apiture-version: 1.1.0
      title: Payment Batch Deletions (v1.1.0)
      description: Response from the request to delete a set of payment batches.
      type: object
      $ref: '#/components/schemas/abstractBulkPaymentBatchOperationResponse'
    paymentBatchRejections:
      x-apiture-version: 1.1.0
      title: Payment Batch Rejections (v1.1.0)
      description: Response from the request to reject a set of payment batches.
      type: object
      $ref: '#/components/schemas/abstractBulkPaymentBatchOperationResponse'
    paymentInstructionHoldUpdate:
      x-apiture-version: 1.1.0
      title: Payment Instructions Hold Update (v1.1.0)
      description: Response from the request to set the `hold` value on a set of payment instructions.
      type: object
      $ref: '#/components/schemas/abstractBulkPaymentInstructionOperationResponse'
    paymentInstructionDeletions:
      x-apiture-version: 1.1.1
      title: Payment Instruction Deletions (v1.1.1)
      description: Response from the request to delete a set of payment instructions.
      type: object
      $ref: '#/components/schemas/abstractBulkPaymentInstructionOperationResponse'
    paymentContactBulkActivations:
      x-apiture-version: 1.0.1
      title: Payment Contact Activations (v1.0.1)
      description: Response from the request to activate a set of payment contacts.
      type: object
      $ref: '#/components/schemas/abstractBulkPaymentContactOperationResponse'
    paymentContactBulkDeactivations:
      x-apiture-version: 1.0.1
      title: Payment Contact Deactivations (v1.0.1)
      description: Response from the request to deactivate a set of payment contacts.
      type: object
      $ref: '#/components/schemas/abstractBulkPaymentContactOperationResponse'
    paymentContactBulkDeletions:
      x-apiture-version: 1.0.1
      title: Payment Contact Deletions (v1.0.1)
      description: Response from the request to delete a set of payment contacts.
      type: object
      $ref: '#/components/schemas/abstractBulkPaymentContactOperationResponse'
    bulkPaymentBatchReversalResponseItem:
      x-apiture-version: 1.1.0
      title: Bulk Payment Batch Reversal Response Item (v1.1.0)
      description: The success or failure of attempting to reverse a payment batch within a bulk reversal request. Each item corresponds to a payment batch in the request. If the reversal succeeded (or the batch had already been fully reversed), `succeeded` is `true` and `reversalBatchId` is the resource ID of the new batch that reverses the batch in the request.
      type: object
      required:
        - id
        - succeeded
      properties:
        id:
          description: The ID of the reversed payment batch from the request.
          $ref: '#/components/schemas/readOnlyResourceId'
        reversalBatchId:
          description: The ID of the new payment batch that reverses the input payment batch. This property is only present if `succeeded` is `true`.
          $ref: '#/components/schemas/readOnlyResourceId'
        succeeded:
          description: '`true` if the operation was successful for the payment batch.'
          type: boolean
        problems:
          description: If the operation for this batch failed (`succeeded` is `false`), this describes why. This may include forbidden, conflict, or other 4xx error or problem types that can occur with individual payment batch operation calls.
          type: array
          maxItems: 1000
          items:
            $ref: '#/components/schemas/paymentProblem'
    paymentBatchReversals:
      x-apiture-version: 1.1.0
      title: Payment Batch Reversals (v1.1.0)
      description: Response from the request to reverse a set of payment batches.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            items:
              description: The result of attempting to reverse set of payment batches in the request. Items in the array correspond (in order) to each payment batch ID in the request.
              type: array
              minItems: 1
              maxItems: 999
              items:
                description: The result of attempting to reverse one payment batch from the list of payment batches in the request.
                $ref: '#/components/schemas/bulkPaymentBatchReversalResponseItem'
    paymentBatchBulkApprovers:
      x-apiture-version: 1.1.0
      title: Payment Batch Bulk Approvers (v1.1.0)
      description: Response from the request to add approvers to a set of payment batches.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBulkPaymentBatchOperationResponse'
    paymentBatchApprovalRequest:
      title: Payment Batch Approval Request (v1.0.0)
      description: Request data accompanying the action to approve a payment batch.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
      x-apiture-version: 1.0.0
    paymentBatchSubmitRequest:
      title: Payment Batch Submit Request (v1.0.0)
      description: Request data accompanying the action to submit a payment batch for approval and processing.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
      x-apiture-version: 1.0.0
    paymentBatchRejectionRequest:
      x-apiture-version: 1.1.0
      title: Payment Batch Rejection Request (v1.1.0)
      description: Request data accompanying the action to reject a payment batch.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - reason
          properties:
            reason:
              description: The optional reason the customer is removing approvals for this batch.
              type: string
              format: text
              maxLength: 80
    paymentBatchReversalRequest:
      x-apiture-version: 1.3.0
      title: Payment Batch Reversal Request (v1.3.0)
      description: A request to reverse a payment batch or reverse a subset of the batch's payment instructions after that batch has started processing.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            reason:
              description: The optional reason the customer is reversing this batch.
              type: string
              maxLength: 80
              format: text
            paymentInstructionIds:
              description: 'When reversing a subset of a batch''s payment instructions, send the subset''s instruction IDs in this array. If array is omitted, reverse all applicable instructions. This operation is idempotent: instructions which have already been reversed are not changed.'
              type: array
              minItems: 1
              maxItems: 1000
              items:
                description: The `id` of an instruction instance to reverse in this batch.
                $ref: '#/components/schemas/readOnlyResourceId'
    paymentBatchCopyRequest:
      x-apiture-version: 1.1.0
      title: Payment Batch Copy Request (v1.1.0)
      description: Request data accompanying the action to copy a payment batch.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - type
          properties:
            type:
              $ref: '#/components/schemas/paymentBatchCopyType'
    paymentBatchCopyType:
      x-apiture-version: 1.1.0
      title: Payment Batch Copy Type (v1.1.0)
      description: |+
        The type of the payment batch copy.

        <strong><code>paymentBatchCopyType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>prenote</code></strong></td><td>Prenote: <p>A prenote payment batch to validate the ACH routing number and account number</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>copy</code></strong></td><td>Copy: <p>A copy of an existing payment batch</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>recurrence</code></strong></td><td>Recurrence: <p>A payment batch originating from a payment batch recurrence</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>reversal</code></strong></td><td>Reversal: <p>A reversed payment batch</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: paymentBatchCopyType
      enum:
        - prenote
        - copy
        - recurrence
        - reversal
    paymentBatchDerivation:
      x-apiture-version: 1.0.1
      title: Payment Batch Derivation (v1.0.1)
      description: If this batch was copied from another, this object describes that source payment batch. This field is only be present when the payment batch was created via the [copy operation](#op-copyPaymentBatch).
      required:
        - id
        - trackingNumber
        - type
      type: object
      properties:
        id:
          description: The unique identifier for the origin payment batch resource. This is an immutable opaque string.
          $ref: '#/components/schemas/readOnlyResourceId'
        trackingNumber:
          description: The unique tracking number for the batch this was copied from.
          type: string
          pattern: ^[0-9]+$
          minLength: 6
          maxLength: 9
          example: '15474162'
        type:
          $ref: '#/components/schemas/paymentBatchCopyType'
    paymentMethodFields:
      x-apiture-version: 1.1.0
      title: Payment Method Fields (v1.1.0)
      description: Common fields of the payment method resource used to build other model schemas.
      x-apiture-fragment: true
      type: object
      properties:
        type:
          description: The type of the payment method. This determines which sub-resource fields must be present. For example, if `type` is `ach`, the `ach` field is required and contains the fields required for an ACH payment.
          $ref: '#/components/schemas/paymentBatchType'
    paymentMethodPatch:
      x-apiture-version: 8.0.0
      title: Payment Method Patch (v8.0.0)
      description: Representation used to patch an existing payment method using the [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules.
      type: object
      properties:
        type:
          description: The type of the payment method. This determines which sub-resource fields must be present. For example, if `type` is `ach`, the `ach` field is required and contains the fields required for an ACH payment.
          $ref: '#/components/schemas/paymentBatchType'
        ach:
          description: Enumerates the payment method details for an ACH payment. This object is required when the `type` is `ach`.
          $ref: '#/components/schemas/achPaymentMethodPatch'
        wireTransfer:
          description: Enumerates the payment method details for a wire transfer payment. This object is required when the `type` is `wireTransfer`.
          $ref: '#/components/schemas/wireTransferPaymentMethodPatch'
      example:
        type: ach
        ach:
          accountNumber: '123456789'
    achPaymentMethodFields:
      x-apiture-version: 1.2.0
      title: ACH Payment Method Fields (v1.2.0)
      description: Common fields of the ACH payment method resource.
      x-apiture-fragment: true
      type: object
      properties:
        routingNumber:
          description: The financial institution routing number to be used for the payment.
          $ref: '#/components/schemas/accountRoutingNumber'
        accountNumber:
          description: The financial institution full account number to be used for the payment.
          $ref: '#/components/schemas/fullAchAccountNumber'
        type:
          description: The type of account for the financial institution.
          $ref: '#/components/schemas/achPaymentMethodAccountType'
        primary:
          description: Designates this as the primary ACH payment method. There can only be one primary ACH payment method. If a new ACH payment method is set as the primary method when there is an already existing primary ACH payment method, the new ACH payment method becomes the primary method. Primary payment methods are only supported when the associated payment customer for this resource is of type `employee`.
          type: boolean
    achPaymentMethodPatch:
      x-apiture-version: 1.2.0
      title: ACH Payment Method Patch Request (v1.2.0)
      description: Representation used to patch an existing payment method using the [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/achPaymentMethodFields'
      example:
        type: checking
        accountNumber: '123456789'
    achPaymentMethod:
      x-apiture-version: 1.2.0
      title: ACH Payment Method (v1.2.0)
      type: object
      description: Data necessary for defining the customer's ACH payment method.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/achPaymentMethodFields'
      required:
        - routingNumber
        - accountNumber
        - type
        - primary
      example:
        routingNumber: '123123123'
        accountNumber: '123456789'
        type: checking
        primary: true
    newAchPaymentMethod:
      x-apiture-version: 1.2.0
      title: New ACH Payment Method (v1.2.0)
      type: object
      description: Data necessary for defining the customer's ACH payment method.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/achPaymentMethodFields'
      required:
        - routingNumber
        - accountNumber
        - type
        - primary
      example:
        routingNumber: '123123123'
        accountNumber: '123456789'
        type: checking
        primary: true
    wireTransferPaymentMethodFields:
      x-apiture-version: 8.0.0
      title: Wire Transfer Payment Method Fields (v8.0.0)
      description: Common fields of the wire transfer payment method resource.
      x-apiture-fragment: true
      type: object
      properties:
        beneficiary:
          description: The individual or business who receives the wire transfer funds.
          $ref: '#/components/schemas/wireTransferBeneficiary'
        beneficiaryInstitution:
          description: The beneficiary financial institution. A `receivingInstitution` branch of this beneficiary financial institution may be the ultimate location where the wire transfer is deposited.
          $ref: '#/components/schemas/wireTransferBeneficiaryInstitution'
        intermediaryInstitution:
          description: This financial institution serves as an intermediary between the issuer and beneficiary institutions to processes the wire transfer. Required for international wire transfers where the issuing financial institution is unable to process the international wire.
          $ref: '#/components/schemas/wireTransferIntermediaryInstitution'
        secondaryIntermediaryInstitution:
          description: This financial institution serves as an additional intermediary between the issuer and beneficiary institutions to processes the wire transfer. It is optional for international wire transfers where the issuing financial institution is unable to process the wire transfer, and is not allowed for domestic wire transfers.
          $ref: '#/components/schemas/wireTransferIntermediaryInstitution'
        receivingInstitution:
          description: For international wires, a receiving institution may be used if the beneficiary's account at the beneficiary's institution should be routed to a local branch. The receiving institution represents the local branch.
          $ref: '#/components/schemas/wireTransferReceivingInstitution'
      example:
        beneficiary:
          address:
            address1: 1805 Tiburon Dr.
            address2: Building 14, Suite 1500
            locality: Wilmington
            regionCode: NC
            countryCode: US
            postalCode: '28412'
          phoneNumber: '+9105551234'
          accountNumber: '123456789'
        intermediaryInstitution:
          name: First Bank of Andalasia
          address:
            address1: 239 West Princess Ave.
            locality: Andalasia
            regionCode: NC
            countryCode: US
            postalCode: '28407'
          locatorType: abaRoutingNumber
          locator: '123456789'
        beneficiaryInstitution:
          name: First Bank of Andalasia
          address:
            address1: 239 West Princess Ave.
            locality: Andalasia
            regionCode: NC
            countryCode: US
            postalCode: '28407'
          locator: '503000196'
          locatorType: abaRoutingNumber
          instructions: Account should be a savings account.
        receivingInstitution:
          name: Old State Federal Savings Bank
          locator: '503000196'
          locatorType: abaRoutingNumber
          instructions: Account should be a savings account.
    wireTransferPaymentMethodPatch:
      x-apiture-version: 8.0.0
      title: Wire Transfer Payment Method Patch Request (v8.0.0)
      description: Representation used to patch an existing payment method using the [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/wireTransferPaymentMethodFields'
      example:
        type: checking
        accountNumber: '123456789'
    wireTransferPaymentMethod:
      x-apiture-version: 8.0.0
      title: Wire Transfer Payment Method (v8.0.0)
      type: object
      description: Data necessary for defining the customer's wire transfer payment method.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/wireTransferPaymentMethodFields'
        - type: object
          properties:
            scope:
              description: Indicates if the wire transfer is a `domestic` wire or an `international` wire.
              $ref: '#/components/schemas/wireTransferPaymentScope'
      required:
        - scope
        - beneficiary
        - beneficiaryInstitution
      example:
        scope: domestic
        beneficiary:
          address:
            address1: 1805 Tiburon Dr.
            address2: Building 14, Suite 1500
            locality: Wilmington
            regionCode: NC
            countryCode: US
            postalCode: '28412'
          phoneNumber: '+9105551234'
        intermediaryInstitution:
          name: First Bank of Andalasia
          address:
            address1: 239 West Princess Ave.
            locality: Andalasia
            regionCode: NC
            countryCode: US
            postalCode: '28407'
          locatorType: abaRoutingNumber
          locator: '123456789'
        beneficiaryInstitution:
          name: First Bank of Andalasia
          address:
            address1: 239 West Princess Ave.
            locality: Andalasia
            regionCode: NC
            countryCode: US
            postalCode: '28407'
          locator: '503000196'
          locatorType: abaRoutingNumber
          instructions: Account should be a savings account.
        receivingInstitution:
          name: Old State Federal Savings Bank
          instructions: Account should be a savings account.
          locator: '50300196'
          locatorType: abaRoutingNumber
    newWireTransferPaymentMethod:
      x-apiture-version: 8.0.0
      title: New Wire Transfer Payment Method (v8.0.0)
      type: object
      description: Data necessary for defining the customer's wire transfer payment method.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/wireTransferPaymentMethodFields'
        - type: object
          properties:
            scope:
              description: Indicates if the wire transfer is a `domestic` wire or an `international` wire.
              $ref: '#/components/schemas/wireTransferPaymentScope'
      required:
        - scope
        - beneficiary
        - beneficiaryInstitution
      example:
        scope: domestic
        beneficiary:
          address:
            address1: 1805 Tiburon Dr.
            address2: Building 14, Suite 1500
            locality: Wilmington
            regionCode: NC
            countryCode: US
            postalCode: '28412'
          phoneNumber: '+9105551234'
        intermediaryInstitution:
          name: First Bank of Andalasia
          address:
            address1: 239 West Princess Ave.
            locality: Andalasia
            regionCode: NC
            countryCode: US
            postalCode: '28407'
          locatorType: abaRoutingNumber
          locator: '123456789'
        beneficiaryInstitution:
          name: First Bank of Andalasia
          address:
            address1: 239 West Princess Ave.
            locality: Andalasia
            regionCode: NC
            countryCode: US
            postalCode: '28407'
          locator: '503000196'
          locatorType: abaRoutingNumber
          instructions: Account should be a savings account.
        receivingInstitution:
          name: Old State Federal Savings Bank
          instructions: Account should be a savings account.
          locator: '50300196'
          locatorType: abaRoutingNumber
    newPaymentMethod:
      x-apiture-version: 8.0.0
      title: New Payment Method (v8.0.0)
      description: Representation used to create a new payment method.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/paymentMethodFields'
        - type: object
          properties:
            ach:
              description: Enumerates the payment method details for an ACH payment. This object is required when the `type` is `ach`.
              $ref: '#/components/schemas/newAchPaymentMethod'
            wireTransfer:
              description: Enumerates the payment method details for a wire transfer payment. This object is required when the `type` is `wireTransfer`.
              $ref: '#/components/schemas/newWireTransferPaymentMethod'
      required:
        - type
      examples:
        - type: ach
          ach:
            routingNumber: '123123123'
            accountNumber: '123456789'
            type: checking
            primary: true
        - type: wireTransfer
          wireTransfer:
            beneficiary:
              address:
                address1: 1805 Tiburon Dr.
                address2: Building 14, Suite 1500
                locality: Wilmington
                regionCode: NC
                countryCode: US
                postalCode: '28412'
              phoneNumber: '+9105551234'
            intermediaryInstitution:
              name: First Bank of Andalasia
              address:
                address1: 239 West Princess Ave.
                locality: Andalasia
                regionCode: NC
                countryCode: US
                postalCode: '28407'
              locatorType: abaRoutingNumber
              locator: '123456789'
            beneficiaryInstitution:
              name: First Bank of Andalasia
              address:
                address1: 239 West Princess Ave.
                locality: Andalasia
                regionCode: NC
                countryCode: US
                postalCode: '28407'
              locator: '503000196'
              locatorType: abaRoutingNumber
              instructions: Account should be a savings account.
            receivingInstitution:
              name: Old State Federal Savings Bank
              locator: '503000196'
              locatorType: abaRoutingNumber
              instructions: Account should be a savings account.
    paymentMethodItem:
      x-apiture-version: 8.0.0
      title: Payment Method Item (v8.0.0)
      description: Summary representation of a payment method resource in payment method collections. To fetch the full representation of this payment method, use the [`getPaymentMethod`](#op-getPaymentMethod) operation, passing this item's `id` field as the `paymentMethodId` path parameter.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/paymentMethodFields'
        - type: object
          properties:
            id:
              description: The unique identifier for this payment method resource. This is an immutable opaque string.
              $ref: '#/components/schemas/readOnlyResourceId'
            ach:
              description: Enumerates the payment method details for an ACH payment. This object is required when the `type` is `ach`.
              $ref: '#/components/schemas/achPaymentMethod'
            wireTransfer:
              description: Enumerates the payment method details for a wire transfer payment. This object is required when the `type` is `wireTransfer`.
              $ref: '#/components/schemas/wireTransferPaymentMethod'
          required:
            - id
            - type
      examples:
        - id: 0399abed-fd3d
          type: ach
          ach:
            routingNumber: '123123123'
            accountNumber: '123456789'
            type: checking
            primary: true
        - id: 0401abed-fd3d
          type: wireTransfer
          wireTransfer:
            beneficiary:
              address:
                address1: 1805 Tiburon Dr.
                address2: Building 14, Suite 1500
                locality: Wilmington
                regionCode: NC
                countryCode: US
                postalCode: '28412'
              phoneNumber: '+9105551234'
            intermediaryInstitution:
              name: First Bank of Andalasia
              address:
                address1: 239 West Princess Ave.
                locality: Andalasia
                regionCode: NC
                countryCode: US
                postalCode: '28407'
              locatorType: abaRoutingNumber
              locator: '123456789'
            beneficiaryInstitution:
              name: First Bank of Andalasia
              address:
                address1: 239 West Princess Ave.
                locality: Andalasia
                regionCode: NC
                countryCode: US
                postalCode: '28407'
              locator: '503000196'
              locatorType: abaRoutingNumber
              instructions: Account should be a savings account.
            receivingInstitution:
              name: Old State Federal Savings Bank
              locator: '503000196'
              locatorType: abaRoutingNumber
              instructions: Account should be a savings account.
    paymentMethod:
      x-apiture-version: 8.0.0
      title: Payment Method (v8.0.0)
      description: Representation of a payment method resource.
      allOf:
        - $ref: '#/components/schemas/paymentMethodItem'
      example:
        id: 0399abed-fd3d
        type: ach
        ach:
          routingNumber: '123123123'
          accountNumber: '123456789'
          type: checking
          primary: true
    paymentMethods:
      x-apiture-version: 8.0.0
      title: Payment Method Collection (v8.0.0)
      description: Collection of a contact's payment methods. The items in the collection are ordered in the `items` array.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: An array containing the contact's payment method items.
              type: array
              maxItems: 100
              items:
                $ref: '#/components/schemas/paymentMethodItem'
      example:
        items:
          - id: 0399abed-fd3d
            type: ach
            ach:
              routingNumber: '123123123'
              accountNumber: '123456789'
              type: checking
              primary: true
          - id: d62c0701-0d74-4836-83f9-ebf3709442ea
            type: ach
            ach:
              routingNumber: '123123123'
              accountNumber: '123457780'
              type: checking
              primary: false
    achPaymentMethodAccountType:
      x-apiture-version: 1.1.0
      title: ACH Payment Method Account Type (v1.1.0)
      description: |+
        The product type of the ACH payment method account.

        <strong><code>achPaymentMethodAccountType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>checking</code></strong></td><td>Checking: <p>The ACH payment method is sourced from a checking account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>savings</code></strong></td><td>Savings: <p>The ACH payment method is sourced from a savings account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>loan</code></strong></td><td>Loan: <p>The ACH payment method is sourced from a loan account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>generalLedger</code></strong></td><td>General Ledger: <p>The ACH payment method is sourced from a general ledger account</p>
        </td>
            </tr>
        </table>

      type: string
      enum:
        - checking
        - savings
        - loan
        - generalLedger
      x-apiture-enum: achPaymentMethodAccountType
    paymentContactFields:
      x-apiture-version: 4.3.0
      title: Payment Contact Fields (v4.3.0)
      description: Common fields of the payment contact resource used to build other model schemas.<br>The schema `paymentContactFields` was added on version `0.7.0` of the API.
      type: object
      properties:
        name:
          type: string
          description: The name of the payment contact. This can be used to represent a person or a business.
          maxLength: 55
          format: text
        contactIdentification:
          description: |-
            An identifier which uniquely identifies each contact. The customer may use whatever unique string they choose. For example, if a customer has multiple payment contacts for a payroll batch with the name "Michael Scott", they can set the `contactIdentification` to each contact's unique Employee ID number.
            When this contact is used for an ACH payment, the `contactIdentification` (if set) is assigned to the _Individual Identification Number_ within the NACHA file.
          type: string
          maxLength: 15
          format: text
        address:
          description: The physical address of the payment contact.
          $ref: '#/components/schemas/address'
        type:
          $ref: '#/components/schemas/contactType'
        employee:
          type: boolean
          description: Indicates whether or not the contact is an employee or not.
      x-apiture-since: 0.7.0
      x-apiture-fragment: true
    newPaymentContact:
      x-apiture-version: 12.0.0
      title: New Payment Contact (v12.0.0)
      description: Representation used to create a new payment contact.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/paymentContactFields'
        - type: object
          properties:
            customerId:
              description: 'The customer identifier of the owning account associated with the contact. This is typically a business customer ID. Note: This is not the login or access ID of the customer.'
              $ref: '#/components/schemas/resourceId'
            paymentMethods:
              description: The payment methods for this contact. Payment contacts must have at least 1 payment method.
              type: array
              minItems: 1
              maxItems: 20
              items:
                $ref: '#/components/schemas/newPaymentMethod'
      required:
        - name
        - type
        - customerId
        - paymentMethods
      example:
        name: James Bond
        contactIdentification: '007'
        address:
          address1: 1405 Tiburon Dr
          locality: Wilmington
          regionCode: NC
          postalCode: '28403'
          countryCode: US
        type: individual
        employee: true
        customerId: 0399abed-fd3d
        paymentMethods:
          - type: ach
            ach:
              routingNumber: '123123123'
              accountNumber: '1234567890'
              type: checking
              primary: true
    paymentContactPatch:
      x-apiture-version: 4.3.0
      title: Payment Contact Patch Request (v4.3.0)
      description: Representation used to patch an existing payment contact using the [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/paymentContactFields'
      example:
        state: inactive
    paymentContactItem:
      x-apiture-version: 12.0.0
      title: Payment Contact Item (v12.0.0)
      description: Summary representation of a payment contact resource in payment contacts collections. Payment contacts are people or companies that may be payed or drafted via ACH, wire transfers, or other payment methods.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/paymentContactFields'
        - type: object
          properties:
            id:
              description: The unique identifier for this payment contact resource. This is an immutable opaque string.
              $ref: '#/components/schemas/readOnlyResourceId'
            customerId:
              description: 'The customer identifier of the owning account associated with the contact. This is typically a business customer ID. Note: This is not the login or access ID of the customer.'
              $ref: '#/components/schemas/readOnlyResourceId'
              readOnly: true
            state:
              description: Indicates whether the contact is active or not. Toggle this with the [`activatePaymentContact`](#op-activatePaymentContact) and [`deactivatePaymentContact`](#op-deactivatePaymentContact) operations.
              allOf:
                - $ref: '#/components/schemas/paymentContactState'
              readOnly: true
            paymentMethods:
              description: Collection of payment methods for the payment contact.
              type: array
              readOnly: true
              maxItems: 100
              items:
                $ref: '#/components/schemas/paymentMethodItem'
          required:
            - id
            - name
            - type
            - customerId
            - state
            - paymentMethods
      example:
        id: 0399abed-fd3d
        name: James Bond
        contactIdentification: '007'
        address:
          address1: 1405 Tiburon Dr
          locality: Wilmington
          regionCode: NC
          postalCode: '28403'
          countryCode: US
        type: individual
        employee: true
        customerId: 0399abed-fd3d
        state: active
        paymentMethods:
          - id: 0399abed-fd3d
            type: ach
            ach:
              routingNumber: '123123123'
              accountNumber: '123456789'
              type: checking
              primary: true
          - id: d62c0701-0d74-4836-83f9-ebf3709442ea
            type: ach
            ach:
              routingNumber: '123123123'
              accountNumber: '123457780'
              type: checking
              primary: false
    paymentContact:
      x-apiture-version: 12.0.0
      title: Payment Contact (v12.0.0)
      description: Representation of a payment contact resource. Payment contacts are people or companies that may be payed or drafted via ACH, wire transfers, or other payment methods.
      allOf:
        - $ref: '#/components/schemas/paymentContactItem'
    paymentContacts:
      x-apiture-version: 13.0.0
      title: Payment Contact Collection (v13.0.0)
      description: Collection of payment contacts. The items in the collection are ordered in the `items` array.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            items:
              description: An array containing a page of payment contact items.
              type: array
              maxItems: 10000
              items:
                $ref: '#/components/schemas/paymentContactItem'
          required:
            - items
      example:
        items:
          - id: 0399abed-fd3d
            name: James Bond
            contactIdentification: '007'
            address:
              address1: 1405 Tiburon Dr
              locality: Wilmington
              regionCode: NC
              postalCode: '28403'
              countryCode: US
            phone:
              - type: business
                number: '+19105550007'
            email: james.bond@mi6.gov.uk
            type: individual
            employee: true
            customerId: 0399abed-fd3d
            state: active
            paymentMethods:
              - id: 0399abed-fd3d
                type: ach
                ach:
                  routingNumber: '123123123'
                  accountNumber: '123456789'
                  type: checking
                  primary: true
              - id: d62c0701-0d74-4836-83f9-ebf3709442ea
                type: ach
                ach:
                  routingNumber: '123123123'
                  accountNumber: '123457780'
                  type: checking
                  primary: false
          - id: d62c0701-0d74-4836-83f9-ebf3709442ea
            name: Dr. Stephen Strange
            address:
              address1: 177A Bleecker Street
              locality: New York
              regionCode: NY
              postalCode: '10012'
              countryCode: US
            phone:
              - type: cell
                number: '+19105550007'
            email: stephen.strange@marvel.com
            type: individual
            employee: false
            customerId: 0399abed-fd3d
            state: active
            paymentMethods:
              - id: 49c133ffc8f87cacba1e
                type: ach
                ach:
                  routingNumber: '123123123'
                  accountNumber: '123457780'
                  type: checking
                  primary: true
    contactType:
      title: Contact Type (v1.0.0)
      type: string
      description: |+
        The type descriptor of the contact to denote the relationship.

        <strong><code>contactType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>individual</code></strong></td><td>Individual: <p>The contact for the payment is a non-employee of the payer</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>business</code></strong></td><td>Business: <p>The contact for the payment is a business entity rather than a person</p>
        </td>
            </tr>
        </table>

      x-apiture-enum: contactType
      enum:
        - individual
        - business
      x-apiture-version: 1.0.0
    paymentContactState:
      title: Contact State (v1.0.0)
      type: string
      description: |+
        The active or inactive state of the contact.

        <strong><code>paymentContactState</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>active</code></strong></td><td>Active: <p>The contact is active</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>inactive</code></strong></td><td>Inactive: <p>The contact is inactive</p>
        </td>
            </tr>
        </table>

      x-apiture-enum: paymentContactState
      enum:
        - active
        - inactive
      x-apiture-version: 1.0.0
    achPaymentInstructionFields:
      x-apiture-version: 1.6.0
      title: ACH Payment Instruction Fields (v1.6.0)
      description: Fields common to other ACH payment instruction schemas.
      x-apiture-fragment: true
      type: object
      properties:
        routingNumber:
          description: The financial institution routing number to be used for the payment.
          $ref: '#/components/schemas/accountRoutingNumber'
        accountNumber:
          description: The financial institution full account number to be used for the payment.
          $ref: '#/components/schemas/fullAchAccountNumber'
        accountType:
          description: The type of banking account for the financial institution, if known.
          $ref: '#/components/schemas/achPaymentMethodAccountType'
        addendum:
          description: An optional memo addendum. For CTX (vendor credit Corporate Trade Exchange) payment batches, use `vendorCreditAddenda` in the [`achPaymentInstruction`](#schema-achPaymentInstruction) instead. Imported Corporate Trade Exchange payment batches use the `addendum` field.
          type: string
          format: text
          maxLength: 80
        addenda:
          description: Addenda records for CTX transactions. Use `addendum` for non-CTX batches. Use `vendorCreditAddenda` for vendor credit Corporate Trade Exchange (CTX) transfers. `vendorCreditAddenda` and `addenda` are mutually exclusive.
          type: array
          minItems: 0
          maxItems: 9999
          items:
            type: string
            maxLength: 80
            format: text
    wireTransferPaymentInstructionFields:
      x-apiture-version: 8.0.0
      title: Wire Transfer Payment Instruction Fields (v8.0.0)
      description: Common fields used to compose other wire transfer payment instruction schemas.
      x-apiture-fragment: true
      type: object
      properties:
        beneficiary:
          description: The individual or business who receives the wire transfer funds.
          $ref: '#/components/schemas/wireTransferBeneficiary'
        beneficiaryInstitution:
          description: The beneficiary financial institution. A `receivingInstitution` branch of this beneficiary financial institution may be the ultimate location where the wire transfer is deposited.
          $ref: '#/components/schemas/wireTransferBeneficiaryInstitution'
        intermediaryInstitution:
          description: This financial institution serves as an intermediary between the issuer and beneficiary institutions to processes the wire transfer. Required for international wire transfers where the issuing financial institution is unable to process the international wire.
          $ref: '#/components/schemas/wireTransferIntermediaryInstitution'
        secondaryIntermediaryInstitution:
          description: This financial institution serves as an additional intermediary between the issuer and beneficiary institutions to processes the wire transfer. It is optional for international wire transfers where the issuing financial institution is unable to process the wire transfer, and is not allowed for domestic wire transfers.
          $ref: '#/components/schemas/wireTransferIntermediaryInstitution'
        receivingInstitution:
          description: For international wires, a receiving institution may be used if the beneficiary's account at the beneficiary's institution should be routed to a local branch. The receiving institution represents the local branch.
          $ref: '#/components/schemas/wireTransferReceivingInstitution'
      example:
        beneficiary:
          address:
            address1: 1805 Tiburon Dr.
            address2: Building 14, Suite 1500
            locality: Wilmington
            regionCode: NC
            countryCode: US
            postalCode: '28412'
          phoneNumber: '+9105551234'
        intermediaryInstitution:
          name: First Bank of Andalasia
          address:
            address1: 239 West Princess Ave.
            locality: Andalasia
            regionCode: NC
            countryCode: US
            postalCode: '28407'
          locatorType: abaRoutingNumber
          locator: '123456789'
        beneficiaryInstitution:
          name: First Bank of Andalasia
          address:
            address1: 239 West Princess Ave.
            locality: Andalasia
            regionCode: NC
            countryCode: US
            postalCode: '28407'
          locator: '503000196'
          locatorType: abaRoutingNumber
          instructions: Account should be a savings account.
        receivingInstitution:
          name: Old State Federal Savings Bank
          locator: '503000196'
          locatorType: abaRoutingNumber
          instructions: Account should be a savings account.
    initialWireTransferPaymentInstruction:
      x-apiture-version: 3.0.0
      title: Initial Wire Transfer Payment Instruction (v3.0.0)
      description: Data to create a wire transfer payment instruction at the same time as the wire transfer payment batch.
      allOf:
        - $ref: '#/components/schemas/paymentInstructionFields'
        - $ref: '#/components/schemas/wireTransferPaymentInstructionFields'
      example:
        name: Bill Bennings
        amount: '15788.90'
        beneficiary:
          address:
            address1: 1805 Tiburon Dr.
            address2: Building 14, Suite 1500
            locality: Wilmington
            regionCode: NC
            countryCode: US
            postalCode: '28412'
          phoneNumber: '+9105551234'
        intermediaryInstitution:
          name: First Bank of Andalasia
          address:
            address1: 239 West Princess Ave.
            locality: Andalasia
            regionCode: NC
            countryCode: US
            postalCode: '28407'
          locatorType: abaRoutingNumber
          locator: '123456789'
        beneficiaryInstitution:
          name: First Bank of Andalasia
          address:
            address1: 239 West Princess Ave.
            locality: Andalasia
            regionCode: NC
            countryCode: US
            postalCode: '28407'
          locator: '503000196'
          locatorType: abaRoutingNumber
          instructions: Account should be a savings account.
        receivingInstitution:
          name: Old State Federal Savings Bank
          locator: '503000196'
          locatorType: abaRoutingNumber
          instructions: Account should be a savings account.
    newWireTransferPaymentInstruction:
      x-apiture-version: 8.0.0
      title: New Wire Transfer Payment Instruction (v8.0.0)
      description: 'Data to create a new wire transfer payment instruction. _Note_: The wire originator information is in the containing `paymentBatch.wireTransfer` object.'
      type: object
      allOf:
        - $ref: '#/components/schemas/wireTransferPaymentInstructionFields'
    wireTransferPaymentInstructionPatch:
      x-apiture-version: 4.0.0
      title: Wire Transfer Payment Instruction Patch (v4.0.0)
      description: Properties to change on a wire transfer payment instruction.
      type: object
      allOf:
        - $ref: '#/components/schemas/wireTransferPaymentInstructionFields'
      example:
        beneficiary:
          address:
            address1: 1805 Tiburon Dr.
            address2: Building 14, Suite 1500
            locality: Wilmington
            regionCode: NC
            countryCode: US
            postalCode: '28412'
          phoneNumber: '+9105551234'
    wireTransferPaymentInstruction:
      x-apiture-version: 8.0.0
      title: Wire Transfer Payment Instruction (v8.0.0)
      description: 'A payment instruction for sending funds via a wire transfer. _Note_: The wire originator information is in the containing `paymentBatch.wireTransfer` object.'
      type: object
      allOf:
        - $ref: '#/components/schemas/wireTransferPaymentInstructionFields'
        - type: object
          properties:
            templateName:
              description: The name of the template used to create this wire transfer.
              type: string
              format: text
              minLength: 1
              maxLength: 50
            rejectionReason:
              description: When the wire transfer is rejected by the external processor, this is the reason given for the rejection. This is omitted when there is not a provided rejection reason.
              type: string
              format: text
              minLength: 0
              maxLength: 35
            inputTrackingId:
              description: |-
                The unique Input Message Accountability Data (IMAD) tracking ID given to each FedWire payment when using the Federal Reserve Bank Service and can be used to investigate and track wire transfers.
                This is usually composed of a date in the YYYYMMDD format, an 8 character source identifier and a 6 digit sequence number.
              type: string
              minLength: 1
              maxLength: 22
              pattern: '[a-zA-Z0-9]{1,22}'
              example: 20230818ABCDXXXX012345
            outputTrackingId:
              description: |-
                The unique Output Message Accountability Data (OMAD) tracking ID given to each FedWire payment when using the Federal Reserve Bank Service and can be used to investigate and track wire transfers.
                This is usually composed of a date in the YYYYMMDD format, an 8 character source identifier and a 6 digit sequence number.
              type: string
              minLength: 1
              maxLength: 22
              pattern: '[a-zA-Z0-9]{1,22}'
              example: 20230818ABCDXXXX012345
            originatorAmount:
              description: For wire transfer payment batches where the beneficiary is receiving the payment amount in an alternate currency, this is the currency amount in the local currency of the wire transfer originator. The amount is calculated at the time of payment batch creation. This is derived and immutable.
              allOf:
                - $ref: '#/components/schemas/monetaryValue'
            currencyQuoteExpiresAt:
              description: The timestamp when the currency conversion rate for this wire transfer expires, in [RFC 3336](https://tools.ietf.org/html/rfc3339#date-time) `date-time` UTC format. The originator amount is not valid after this time.
              $ref: '#/components/schemas/readOnlyTimestamp'
    wireTransferState:
      x-apiture-version: 1.1.0
      title: Wire Transfer State (v1.1.0)
      description: |+
        The state of a wire transfer. This excludes internal processing states.

        <strong><code>wireTransferState</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>submitted</code></strong></td><td>Submitted: <p>The wire transfer has been submitted to the external processor</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>rejected</code></strong></td><td>Rejected: <p>The wire transfer was rejected by the external processor</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>completed</code></strong></td><td>Completed: <p>The wire transfer was processed by the external processor</p>
        </td>
            </tr>
        </table>

      x-apiture-enum: wireTransferState
      type: string
      enum:
        - submitted
        - rejected
        - completed
    newAchPaymentInstruction:
      x-apiture-version: 1.7.0
      title: New ACH Payment Instruction (v1.7.0)
      description: The payment bank account number and routing number for paying or drafting from a contact's account by ACH.
      type: object
      allOf:
        - $ref: '#/components/schemas/achPaymentInstructionFields'
        - type: object
          properties:
            vendorCreditAddenda:
              description: The addenda for vendor credit Corporate Trade Exchange (CTX) transfers. This optional array is only used if the payment direction is `credit`, the payment `secCode` is `ctx`, the `ach.type` is `vendorCredit`, and there are addenda.
              type: array
              minItems: 1
              maxItems: 9999
              items:
                $ref: '#/components/schemas/newVendorCreditAddendum'
            rePresentedCheck:
              description: |-
                A re-presented check (RCK) ACH payment instruction. This field is only used if the payment `direction` is `debit` and the payment `secCode` is `rck`.

                This object is omitted when in a `paymentInstructionItem`, even if the item is a RCK instance.
              $ref: '#/components/schemas/newRePresentedCheck'
      required:
        - routingNumber
        - accountNumber
      example:
        routingNumber: '123123123'
        accountNumber: '123456789'
    achPaymentInstruction:
      x-apiture-version: 1.7.0
      title: ACH Payment Instruction (v1.7.0)
      description: The payment bank account number and routing number for paying or drafting from a contact's account by ACH.
      allOf:
        - $ref: '#/components/schemas/achPaymentInstructionFields'
        - type: object
          required:
            - accountNumber
            - routingNumber
            - prenote
          properties:
            prenote:
              description: 'If `true`, this item requires prenote validation to validate the routing number and account number. When submitting a prenote batch from a payment batch, all the ACH instructions tagged with `prenote: true` are be submitted (with `amount: "0.00"`).'
              type: boolean
            canceled:
              description: '`true` if the payment instruction was canceled.'
              type: boolean
            reversed:
              description: '`true` if the payment instruction was reversed.'
              type: boolean
            vendorCreditAddenda:
              description: The addenda for vendor credit Corporate Trade Exchange (CTX) transfers. This optional array is only used if the payment direction is `credit`, the payment `secCode` is `ctx`, the `ach.type` is `vendorCredit`, and there are addenda.
              type: array
              minItems: 1
              maxItems: 9999
              items:
                $ref: '#/components/schemas/vendorCreditAddendum'
            rePresentedCheck:
              description: |-
                A re-presented check (RCK) ACH payment instruction. This field is only used if the payment `direction` is `debit` and the payment `secCode` is `rck`.

                This object is omitted when in a `paymentInstructionItem`, even if the item is a RCK instance.
              $ref: '#/components/schemas/rePresentedCheck'
      examples:
        - routingNumber: '123123123'
          accountNumber: '123456789'
          prenote: false
        - routingNumber: '123123123'
          accountNumber: '123456789'
          prenote: false
          vendorCreditAddenda:
            - description: Addenda
              adjustmentDescription: Dup
              adjustmentType: extensionError
              discountAmount: '22.00'
              invoiceAmount: '20.00'
              invoicedOn: '2022-04-22'
              invoiceNumber: '123123'
              referenceIdType: billOfLading
              referenceId: '123123'
              remittanceAmount: '22.00'
    achPaymentInstructionPatch:
      x-apiture-version: 1.6.0
      title: ACH Payment Instruction Patch (v1.6.0)
      description: The payment bank account number and routing number for paying or drafting from a contact's account by ACH.
      type: object
      allOf:
        - $ref: '#/components/schemas/achPaymentInstructionFields'
        - type: object
          properties:
            vendorCreditAddenda:
              description: The addenda for vendor credit Corporate Trade Exchange (CTX) transfers. This optional array is only used if the payment direction is `credit`, the payment `secCode` is `ctx`, the `ach.type` is `vendorCredit`, and there are addenda.
              type: array
              minItems: 1
              maxItems: 9999
              items:
                $ref: '#/components/schemas/vendorCreditAddendumPatch'
            rePresentedCheck:
              description: |-
                A re-presented check (RCK) ACH payment instruction. This field is only used if the payment `direction` is `debit` and the payment `secCode` is `rck`.

                This object is omitted when in a `paymentInstructionItem`, even if the item is a RCK instance.
              $ref: '#/components/schemas/rePresentedCheckPatch'
      example:
        routingNumber: '123123123'
        accountNumber: '123456789'
    vendorCreditAdjustmentType:
      title: Vendor Credit Adjustment Type (v1.0.0)
      description: |+
        The type of a vendor credit adjustment.

        <strong><code>vendorCreditAdjustmentType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>none</code></strong></td><td>None</td>
            </tr>
        <tr>
            <td><strong><code>pricingError</code></strong></td><td>Pricing Error</td>
            </tr>
        <tr>
            <td><strong><code>extensionError</code></strong></td><td>Extension Error</td>
            </tr>
        <tr>
            <td><strong><code>damaged</code></strong></td><td>Damaged</td>
            </tr>
        <tr>
            <td><strong><code>qualityConcern</code></strong></td><td>Quality Concern</td>
            </tr>
        <tr>
            <td><strong><code>qualityContested</code></strong></td><td>Quality Contested</td>
            </tr>
        <tr>
            <td><strong><code>wrongProduct</code></strong></td><td>Wrong Product</td>
            </tr>
        <tr>
            <td><strong><code>returnsDueToDamage</code></strong></td><td>Returns-Damage</td>
            </tr>
        <tr>
            <td><strong><code>returnsDueToQuality</code></strong></td><td>Returns-Quality</td>
            </tr>
        <tr>
            <td><strong><code>itemNotReceived</code></strong></td><td>Item Not Received</td>
            </tr>
        <tr>
            <td><strong><code>creditAdAgreed</code></strong></td><td>Credit as Agreed</td>
            </tr>
        <tr>
            <td><strong><code>creditMemo</code></strong></td><td>Credit Memo</td>
            </tr>
        </table>

      type: string
      x-apiture-enum: vendorCreditAdjustmentType
      enum:
        - none
        - pricingError
        - extensionError
        - damaged
        - qualityConcern
        - qualityContested
        - wrongProduct
        - returnsDueToDamage
        - returnsDueToQuality
        - itemNotReceived
        - creditAdAgreed
        - creditMemo
      x-apiture-version: 1.0.0
    vendorCreditReferenceIdType:
      title: Vendor Credit Reference Id Type (v1.0.0)
      description: |+
        A list of codes which describe the type of the `referenceId`.

        <strong><code>vendorCreditReferenceIdType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>none</code></strong></td><td>None</td>
            </tr>
        <tr>
            <td><strong><code>billOfLading</code></strong></td><td>Bill of Lading</td>
            </tr>
        <tr>
            <td><strong><code>purchaseOrder</code></strong></td><td>Purchase Order</td>
            </tr>
        <tr>
            <td><strong><code>accountReceivableItem</code></strong></td><td>Accts Recv Item</td>
            </tr>
        <tr>
            <td><strong><code>voucher</code></strong></td><td>Voucher</td>
            </tr>
        </table>

      type: string
      x-apiture-enum: vendorCreditReferenceIdType
      enum:
        - none
        - billOfLading
        - purchaseOrder
        - accountReceivableItem
        - voucher
      x-apiture-version: 1.0.0
    vendorCreditAddendumFields:
      x-apiture-version: 1.2.0
      title: ACH Payment Vendor Credit Addendum Fields (v1.2.0)
      description: Fields used to define other Vendor Credit ACH batch payment addendum schemas.
      x-apiture-fragment: true
      type: object
      properties:
        description:
          type: string
          description: The description of this payment addendum.
          maxLength: 80
          format: text
        adjustmentDescription:
          type: string
          description: The description of the adjustment.
          maxLength: 8
          format: text
        adjustmentAmount:
          description: The value of the adjustment as an exact decimal amount.
          $ref: '#/components/schemas/monetaryValue'
        adjustmentType:
          $ref: '#/components/schemas/vendorCreditAdjustmentType'
        discountAmount:
          description: The monetary value of the discount, if any.
          $ref: '#/components/schemas/monetaryValue'
        invoiceAmount:
          description: The monetary value of the invoice, if any.
          $ref: '#/components/schemas/monetaryValue'
        invoicedOn:
          description: The date the original purchase was invoiced.
          $ref: '#/components/schemas/date'
        invoiceNumber:
          description: The invoice number
          type: string
          maxLength: 6
          format: text
        referenceIdType:
          $ref: '#/components/schemas/vendorCreditReferenceIdType'
        referenceId:
          description: The vendor's reference ID. This ID number is of type described by `referenceIdType`.
          type: string
          maxLength: 6
          format: text
        remittanceAmount:
          description: The amount of the adjustment/remittance.
          $ref: '#/components/schemas/monetaryValue'
      example:
        description: Addenda
        adjustmentDescription: Dup
        adjustmentType: extensionError
        discountAmount: '22.00'
        invoiceAmount: '20.00'
        invoicedOn: '2022-04-22'
        invoiceNumber: '123123'
        referenceIdType: billOfLading
        referenceId: '123123'
        remittanceAmount: '22.00'
    newVendorCreditAddendum:
      x-apiture-version: 1.2.0
      title: New ACH Payment Vendor Credit Addendum (v1.2.0)
      description: Details of a new Vendor Credit ACH addendum.
      type: object
      allOf:
        - $ref: '#/components/schemas/vendorCreditAddendumFields'
      required:
        - description
        - adjustmentDescription
        - adjustmentType
        - adjustmentAmount
        - discountAmount
        - invoiceAmount
        - invoicedOn
        - invoiceNumber
        - referenceIdType
        - referenceId
        - remittanceAmount
      example:
        description: Addenda
        adjustmentDescription: Dup
        adjustmentType: extensionError
        adjustmentAmount: '32.00'
        discountAmount: '22.00'
        invoiceAmount: '20.00'
        invoicedOn: '2022-04-22'
        invoiceNumber: '123123'
        referenceIdType: billOfLading
        referenceId: '123123'
        remittanceAmount: '22.00'
    vendorCreditAddendum:
      x-apiture-version: 1.2.0
      title: ACH Payment Vendor Credit Addendum (v1.2.0)
      description: Details of a Vendor Credit Corporate Trade Exchange (CTX) ACH batch payment.
      type: object
      allOf:
        - $ref: '#/components/schemas/vendorCreditAddendumFields'
      example:
        description: Addenda
        adjustmentDescription: Dup
        adjustmentType: extensionError
        adjustmentAmount: '32.00'
        discountAmount: '22.00'
        invoiceAmount: '20.00'
        invoicedOn: '2022-04-22'
        invoiceNumber: '123123'
        referenceIdType: billOfLading
        referenceId: '123123'
        remittanceAmount: '22.00'
    vendorCreditAddendumPatch:
      x-apiture-version: 1.2.0
      title: ACH Payment Vendor Credit Addendum Patch (v1.2.0)
      description: Patch request of a Vendor Credit ACH batch payment.
      type: object
      allOf:
        - $ref: '#/components/schemas/vendorCreditAddendumFields'
      examples:
        - adjustmentDescription: Dup
          adjustmentType: extensionError
        - invoiceAmount: '20.00'
          invoicedOn: '2022-04-22'
          invoiceNumber: '123123'
        - referenceIdType: billOfLading
          referenceId: '123123'
    rePresentedCheckFields:
      x-apiture-version: 1.1.0
      title: Re-Presented Check Fields (v1.1.0)
      description: Fields of a re-presented check (RCK) ACH payment instruction. This is a fragment schema, use to compose other schemas.
      x-apiture-fragment: true
      type: object
      properties:
        checkNumber:
          description: The check number that was presented again.
          type: integer
          format: int32
          minimum: 1
          maximum: 999999999999999
      example:
        checkNumber: 43318
    rePresentedCheck:
      x-apiture-version: 1.1.0
      title: Re-Presented Check (v1.1.0)
      description: A re-presented check (RCK) ACH payment instruction. An RCK instruction represents a check that was returned for non-sufficient or uncollected funds and is being presented again for payment.
      allOf:
        - $ref: '#/components/schemas/rePresentedCheckFields'
      required:
        - checkNumber
      example:
        checkNumber: 43318
    newRePresentedCheck:
      x-apiture-version: 1.1.0
      title: New Re-Presented Check (v1.1.0)
      description: A new re-presented check (RCK) ACH payment instruction. An RCK instruction represents a check that was returned for non-sufficient or uncollected funds and is being presented again for payment.
      allOf:
        - $ref: '#/components/schemas/rePresentedCheckFields'
      required:
        - checkNumber
      example:
        checkNumber: 43318
    rePresentedCheckPatch:
      x-apiture-version: 1.1.0
      title: Re-Presented Check Patch (v1.1.0)
      description: A patch request to an RCK ACH payment instruction.
      allOf:
        - $ref: '#/components/schemas/rePresentedCheckFields'
      required:
        - checkNumber
      example:
        checkNumber: 43318
    paymentInstructionFields:
      x-apiture-version: 2.0.0
      title: Payment Instruction Fields (v2.0.0)
      description: Common fields of the payment instruction resource used to build other model schemas.
      x-apiture-fragment: true
      type: object
      properties:
        name:
          description: The name of the payment contact being paid or drafted.
          type: string
          minLength: 1
          maxLength: 35
          format: text
        identifier:
          description: A optional string, such as an employee ID, which distinguishes this payment contact from others with the same `name`.
          type: string
          maxLength: 15
          format: text
        amount:
          description: The amount of money to send or draft from this payment contact.
          $ref: '#/components/schemas/monetaryValue'
        contactId:
          description: If this payment instruction is derived from a contact in the list of payment contacts, this is the contact's `id`.
          $ref: '#/components/schemas/resourceId'
        methodId:
          description: If this payment instruction is derived from a contact in the list of payment contacts, this is the `id` of that contact's payment method.
          $ref: '#/components/schemas/resourceId'
    paymentInstructionCommonFields:
      title: Payment Instruction Common Fields (v1.0.0)
      description: Common fields of the payment instruction resource used to build other model schemas.
      x-apiture-fragment: true
      type: object
      properties:
        hold:
          description: If `true`, do not process this instruction.
          type: boolean
      x-apiture-version: 1.0.0
    newPaymentInstruction:
      x-apiture-version: 9.0.0
      title: Create Payment Instruction (v9.0.0)
      description: Representation used to create a new payment instruction. If the payment batch `type` is `ach`, the body must contain the `ach` property. If the payment batch `type` is `wireTransfer`, the body must contain the `wireTransfer` property. The `amount` may be "0.00" but a non-zero amount must be set, or the item marked as `hold`, in order to approve the batch.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/paymentInstructionFields'
        - $ref: '#/components/schemas/paymentInstructionCommonFields'
        - type: object
          required:
            - name
            - amount
          properties:
            ach:
              description: The ACH details. This object is required if and only if the payment batch's `type` is `ach`.
              $ref: '#/components/schemas/newAchPaymentInstruction'
            wireTransfer:
              description: The wire transfer details. This object is required if and only if the payment batch's `type` is `wireTransfer`. The payment `direction` must be `credit` for wire transfers.
              $ref: '#/components/schemas/newWireTransferPaymentInstruction'
      example:
        name: Pauline Stonemason
        identifier: C-00523
        amount: '1287.65'
        ach:
          routingNumber: '123123123'
          accountNumber: '123456789'
        methodId: ach0001
        contactId: 3e8375b1-8c34
    paymentInstructionItem:
      x-apiture-version: 2.0.0
      title: Payment Instruction Item (v2.0.0)
      description: Summary representation of a payment instruction resource in payment instructions collections.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/paymentInstructionFields'
        - $ref: '#/components/schemas/paymentInstructionCommonFields'
        - type: object
          required:
            - id
            - name
            - amount
            - direction
            - hold
            - traceNumber
          properties:
            id:
              description: The unique identifier for this payment instruction resource. This is an immutable opaque string.
              $ref: '#/components/schemas/resourceId'
            traceNumber:
              description: A unique non-negative integer for tracing this payment through the payment system. This is an immutable opaque string of digits, assigned by the system.
              readOnly: true
              type: integer
              format: int32
              minimum: 1
              maximum: 999999999
            direction:
              description: Indicates if this item is a debit or credit, relative to this payment contact. This field is immutable.
              readOnly: true
              allOf:
                - $ref: '#/components/schemas/paymentInstructionDirection'
            ach:
              description: The payment instruction details for an ACH payment. This field is used only if the payment batch `type` is `ach`.
              $ref: '#/components/schemas/achPaymentInstruction'
      example:
        id: 0399abed-fd3d
        traceNumber: 8706658
        name: Pauline Stonemason
        identifier: C-00523
        amount: '1287.65'
        hold: false
        direction: credit
        type: ach
        ach:
          routingNumber: '123123123'
          accountNumber: '123456789'
          type: checking
          prenote: false
        methodId: ach0001
        contactId: 3e8375b1-8c34
    paymentInstructionPatch:
      x-apiture-version: 5.0.0
      title: Payment Instruction Patch (v5.0.0)
      description: Representation of a patch to a payment instruction resource.
      allOf:
        - $ref: '#/components/schemas/paymentInstructionFields'
        - $ref: '#/components/schemas/paymentInstructionCommonFields'
        - type: object
          properties:
            ach:
              description: The payment instruction details for an ACH payment. This field is used only if the payment batch `type` is `ach`.
              $ref: '#/components/schemas/achPaymentInstructionPatch'
            wireTransfer:
              description: The payment instruction details for a wire transfer payment. This field is used only if the payment batch `type` is `wireTransfer`.
              $ref: '#/components/schemas/wireTransferPaymentInstructionPatch'
      examples:
        - name: Pauline Stonemason
          identifier: C-00523
          amount: '1287.65'
          hold: true
          ach:
            accountNumber: '123456789'
        - name: Pauline Stonemason
          identifier: C-00523
          amount: '1287.65'
        - amount: '1287.65'
          ach:
            routingNumber: '123123123'
            accountNumber: '123456789'
            type: checking
        - hold: true
    paymentInstruction:
      x-apiture-version: 9.0.0
      title: Payment Instruction (v9.0.0)
      description: Representation of a payment instruction resource.
      allOf:
        - $ref: '#/components/schemas/paymentInstructionItem'
        - type: object
          required:
            - id
            - traceNumber
            - name
            - amount
            - direction
            - hold
          properties:
            wireTransfer:
              description: Wire-specific details of the payment instruction. This object is present if and only if the payment batch's `type` is `wireTransfer`.
              $ref: '#/components/schemas/wireTransferPaymentInstruction'
            problems:
              description: A list of problems that prevent approving the payment batch.
              x-description: |-
                The problem [type names](#error-types) can include:
                  * [`paymentInstructionAccountNotVerified`](#err-paymentInstructionAccountNotVerified)
                  * [`invalidPaymentInstructionAmount`](#err-invalidPaymentInstructionAmount)
                  * [`missingPaymentInstructionAmount`](#err-missingPaymentInstructionAmount)
                  * [`invalidInstructionRoutingNumber`](#err-invalidInstructionRoutingNumber)
                  * [`invalidInstructionAccountNumber`](#err-invalidInstructionAccountNumber)
                  * [`missingOrIncompleteWireOriginator`](#err-missingOrIncompleteWireOriginator)
                  * [`missingOrIncompleteBeneficiaryInstitution`](#err-missingOrIncompleteBeneficiaryInstitution)
                  * [`missingOrIncompleteIntermediaryInstitution`](#err-missingOrIncompleteIntermediaryInstitution)
                  * [`missingOrIncompleteReceivingInstitution`](#err-missingOrIncompleteReceivingInstitution)
              type: array
              maxItems: 100
              items:
                $ref: '#/components/schemas/paymentProblem'
      examples:
        - id: 0399abed-fd3d
          traceNumber: 8706658
          name: Pauline Stonemason
          identifier: C-00523
          amount: '1287.65'
          hold: false
          direction: credit
          ach:
            routingNumber: '123123123'
            accountNumber: '123456789'
            type: checking
            prenote: false
          methodId: ach0001
          contactId: 3e8375b1-8c34
        - id: 0399abed-fd3d
          traceNumber: 6588706
          name: Pauline Stonemason
          identifier: C-00523
          amount: '1287.65'
          hold: false
          direction: credit
          wireTransfer:
            beneficiary:
              address:
                address1: 1805 Tiburon Dr.
                address2: Building 14, Suite 1500
                locality: Wilmington
                regionCode: NC
                countryCode: US
                postalCode: '28412'
              phoneNumber: '+9105551234'
            intermediaryInstitution:
              name: First Bank of Andalasia
              address:
                address1: 239 West Princess Ave.
                locality: Andalasia
                regionCode: NC
                countryCode: US
                postalCode: '28407'
              locatorType: abaRoutingNumber
              locator: '123456789'
            beneficiaryInstitution:
              name: First Bank of Andalasia
              address:
                address1: 239 West Princess Ave.
                locality: Andalasia
                regionCode: NC
                countryCode: US
                postalCode: '28407'
              locator: '503000196'
              locatorType: abaRoutingNumber
              instructions: Account should be a savings account.
            receivingInstitution:
              name: Old State Federal Savings Bank
              locator: '503000196'
              locatorType: abaRoutingNumber
              instructions: Account should be a savings account.
          methodId: wt-002
          contactId: 24585d73-408a
    paymentBatchReference:
      x-apiture-version: 1.1.0
      title: Payment Batch Reference (v1.1.0)
      description: Key fields identifying a payment batch.
      required:
        - id
        - type
        - name
        - traceNumber
        - state
      type: object
      properties:
        id:
          description: The unique ID of the payment batch that contains this payment instruction.
          $ref: '#/components/schemas/readOnlyResourceId'
        type:
          $ref: '#/components/schemas/paymentBatchType'
        name:
          description: The user-assigned name of the payment batch.
          type: string
          format: text
          maxLength: 10
          example: Payroll 03
        traceNumber:
          description: A unique non-negative integer for tracing the payment batch through the payment system. This is an immutable opaque string of digits, assigned by the system.
          readOnly: true
          type: integer
          format: int32
          minimum: 1
          maximum: 999999999
        state:
          $ref: '#/components/schemas/paymentBatchState'
        effectiveOn:
          description: The date when the batch payment or draft should be or was processed, in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) date format. This may be omitted if a payment has not yet been scheduled.
          $ref: '#/components/schemas/date'
      example:
        id: fbc7cb5d-0f98
        type: ach
        name: 22/09 Pay
        state: processed
        traceNumber: 86302
        effectiveOn: '2022-09-12'
    paymentContactAchPayment:
      x-apiture-version: 2.0.0
      title: Payment Contact ACH Payment (v2.0.0)
      description: ACH payment instruction for a payment contact's payment history.
      type: object
      required:
        - accountType
        - accountNumber
      properties:
        accountType:
          description: The type of ACH account used for the payment.
          $ref: '#/components/schemas/achPaymentMethodAccountType'
        accountNumber:
          description: The financial institution full account number used for the payment.
          $ref: '#/components/schemas/fullAccountNumber'
      example:
        accountType: checking
        accountNumber: '123123123'
    paymentContactWireTransferPayment:
      title: Payment Contact Wire Transfer Payment (v1.0.0)
      description: Wire transfer payment instruction for a payment contact's payment history.
      type: object
      required:
        - scope
      properties:
        scope:
          description: Indicates if the wire transfer is a `domestic` wire or an `international` wire.
          $ref: '#/components/schemas/wireTransferPaymentScope'
      example:
        scope: domestic
      x-apiture-version: 1.0.0
    paymentContactPayment:
      x-apiture-version: 2.0.0
      title: Payment Contact Payment (v2.0.0)
      description: An item in a contact's history of payments.
      required:
        - paymentBatch
        - instructionId
        - amount
        - direction
      type: object
      properties:
        paymentBatch:
          $ref: '#/components/schemas/paymentBatchReference'
        amount:
          description: The amount of money sent to or drafted from this payment contact.
          $ref: '#/components/schemas/monetaryValue'
        instructionId:
          description: The unique resource ID of the payment instruction. Combine this with the `paymentBatch.id` to [fetch the payment instruction](#op-getPaymentInstruction).
          $ref: '#/components/schemas/readOnlyResourceId'
        direction:
          description: Indicates if this payment is a debit or credit, relative to this payment contact.
          $ref: '#/components/schemas/paymentInstructionDirection'
        ach:
          description: If the `paymentBatch.type` is `ach`, this object contains the ACH payment details.
          $ref: '#/components/schemas/paymentContactAchPayment'
        wireTransfer:
          description: If the `paymentBatch.type` is `wireTransfer`, this object contains the wire transfer payment details.
          $ref: '#/components/schemas/paymentContactWireTransferPayment'
      example:
        paymentBatch:
          id: fbc7cb5d-0f98-4d8c-8004-a650d0242f66
          traceNumber: 86302
          type: ach
          name: 22/08 Pay
          state: processed
          effectiveOn: '2022-08-12'
        amount: '1640.72'
        instructionId: 1e5a75f3-8534
        direction: credit
        ach:
          accountType: checking
          accountNumber: '123456789'
    paymentContactPayments:
      x-apiture-version: 2.0.0
      title: Payment Contact Payments (v2.0.0)
      description: A collection of pending/scheduled and historical payment instructions for a payment contact.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
            - paymentContactId
          properties:
            items:
              description: A list of payment instructions for this contact.
              type: array
              maxItems: 1000
              items:
                $ref: '#/components/schemas/paymentContactPayment'
            paymentContactId:
              description: The unique ID of the payment contact.
              $ref: '#/components/schemas/readOnlyResourceId'
            nextDateRange:
              description: If the initial request included an `effectiveOn` date range, this is the next range of dates with a similar range of days.
              $ref: '#/components/schemas/dateRange'
            previousDateRange:
              description: If the initial request included an `effectiveOn` date range, this is the previous range of dates with a similar range of days.
              $ref: '#/components/schemas/dateRange'
      example:
        paymentContactId: 4d8c-8004-a650d0242f66
        items:
          - paymentBatch:
              id: fbc7cb5d-0f98
              type: ach
              traceNumber: 86302
              name: 22/09 Pay
              state: processed
              effectiveOn: '2022-09-12'
            amount: '1592.58'
            instructionId: c148e81f-ec0a
            direction: credit
            ach:
              accountType: checking
              accountNumber: '123456789'
          - paymentBatch:
              id: fbc7cb5d-0f98
              type: ach
              traceNumber: 85932
              name: 22/08 Pay
              state: processed
              effectiveOn: '2022-08-12'
            amount: '1640.72'
            instructionId: fb7c04f5-8b79
            direction: credit
            ach:
              accountType: checking
              accountNumber: '123456789'
          - paymentBatch:
              id: 0939cdfb-c77d
              type: ach
              traceNumber: 84329
              name: 22/07 Pay
              state: processed
              effectiveOn: '2022-07-12'
            amount: '1578.90'
            instructionId: f674b43c-e74a
            direction: credit
            ach:
              accountType: checking
              accountNumber: '123456789'
        previousDateRange: '[2022-04-01,2022-07-01)'
    paymentInstructions:
      x-apiture-version: 2.0.0
      title: Payment Instruction Collection (v2.0.0)
      description: Collection of payment instructions. The items in the collection are ordered in the `items` array.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            items:
              description: An array containing a page of payment instruction items.
              type: array
              maxItems: 1000
              items:
                $ref: '#/components/schemas/paymentInstructionItem'
      example:
        items:
          - id: 0399abed-fd3d
            traceNumber: 8706658
            name: Pauline Stonemason
            identifier: C-00523
            amount: '1287.65'
            hold: false
            direction: credit
            type: ach
            ach:
              routingNumber: '123123123'
              accountNumber: '123456789'
              prenote: false
            methodId: ach0001
            contactId: 3e8375b1-8c34
          - id: 0399abed-fd3d
            traceNumber: 8764783
            name: Pauline Stonemason
            identifier: C-012295
            amount: '2090.35'
            hold: false
            direction: credit
            type: ach
            ach:
              routingNumber: '123123123'
              accountNumber: '234567890'
              prenote: false
            methodId: ach0002
            contactId: 3a32a4a8-5502
    paymentRecurrenceType:
      x-apiture-version: 1.1.0
      title: Payment Recurrence Type (v1.1.0)
      description: |+
        Describes whether the payment instruction amounts in the batch vary or are fixed when the payment recurs. This is ignored if the payment frequency is `once`.

        <strong><code>paymentRecurrenceType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>fixed</code></strong></td><td>Fixed: <p>The payment amounts are the same each time a payment recurs</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>variable</code></strong></td><td>Variable: <p>The payment amounts vary and must be entered/verified each time a payment recurs</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>automaticallyRecur</code></strong></td><td>Automatically Recur: <p>The payment batch will automatically recur after processing (but with no scheduled date)</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: paymentRecurrenceType
      enum:
        - fixed
        - variable
        - automaticallyRecur
    paymentBatchDirection:
      title: Batch Payment Direction (v1.0.0)
      description: |+
        Indicates the direction of money flow for a payment batch.

        <strong><code>paymentBatchDirection</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>none</code></strong></td><td>None: <p>No payment instructions to determine direction</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>credit</code></strong></td><td>credit: <p>Payments are credit in the external accounts, debit to the settlement account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>debit</code></strong></td><td>debit: <p>Payments are debits in the external accounts, credit to the settlement account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>both</code></strong></td><td>both: <p>Payment instructions include both debits and credits</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: paymentBatchDirection
      enum:
        - none
        - credit
        - debit
        - both
      x-apiture-version: 1.0.0
    paymentInstructionDirection:
      title: Payment Instruction Direction (v1.0.0)
      description: |+
        Indicates the direction of money flow for a payment instruction.

        <strong><code>paymentInstructionDirection</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>credit</code></strong></td><td>credit: <p>Payment is a credit in the external account, debit to the settlement account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>debit</code></strong></td><td>debit: <p>Payment is a debit in the external account, credit to the settlement account</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: paymentInstructionDirection
      enum:
        - credit
        - debit
      x-apiture-version: 1.0.0
    paymentBatchSettlementType:
      title: Settlement Type (v1.0.0)
      description: |+
        How the payment processing is applied to the settlement account.

        <strong><code>paymentBatchSettlementType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>summary</code></strong></td><td>Summary: <p>All the payments in the batch are combined into one transaction against the account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>detailed</code></strong></td><td>Detailed: <p>Each payments in the batch is recorded as individual transactions against the account</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: paymentBatchSettlementType
      enum:
        - summary
        - detailed
      x-apiture-version: 1.0.0
    paymentFrequency:
      x-apiture-version: 1.1.1
      title: Payment Frequency (v1.1.1)
      description: For recurring payments and drafts, the interval at which the money movement recurs.
      allOf:
        - $ref: '#/components/schemas/transferFrequency'
    paymentBatchSchedule:
      x-apiture-version: 1.3.2
      title: Payment Batch Schedule (v1.3.2)
      description: |-
        The scheduled date when the payment should be completed, the recurrence, if any, and other derived dates based on the scheduled date.

        If the payment is a NACHA pass-through, the schedule is read-only and reflects the earliest `scheduledOn` and `effectiveOn` dates from the NACHA file with a recurrenceType of `once`.
      type: object
      properties:
        recurrenceType:
          $ref: '#/components/schemas/paymentRecurrenceType'
        scheduledOn:
          description: The payment's target completion date, in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) date format. For recurring batches, this date get recalculated after each recurrence is processed.
          $ref: '#/components/schemas/date'
        frequency:
          $ref: '#/components/schemas/paymentFrequency'
        endsOn:
          description: The optional date when the recurring batch schedule ends, in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) date format. Subsequent recurring payments may be scheduled up to and including this date, but not after. This property is omitted if `frequency` is `once`.
          $ref: '#/components/schemas/date'
        effectiveOn:
          description: The target date when the batch payment or draft should be processed, in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) date format. This is derived from the `scheduledOn` date. For recurring batches, this date get recalculated after each recurrence is processed.
          $ref: '#/components/schemas/date'
    newPaymentBatchSchedule:
      title: New Payment Batch Schedule (v1.4.1)
      description: The date when the payment should be completed, and any recurrence.
      type: object
      x-apiture-version: 1.4.1
      required:
        - scheduledOn
        - frequency
      properties:
        recurrenceType:
          $ref: '#/components/schemas/paymentRecurrenceType'
        scheduledOn:
          description: The payment's target completion date, in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) date format. For recurring batches, this date get recalculated after each recurrence is processed.
          $ref: '#/components/schemas/date'
        frequency:
          $ref: '#/components/schemas/paymentFrequency'
        endsOn:
          description: The optional date when the batch schedule ends, in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) date format. Subsequent recurring payments may be scheduled up to and including this date, but not after. This property is ignored if `frequency` is `once`.
          $ref: '#/components/schemas/date'
    paymentBatchType:
      x-apiture-version: 1.1.0
      title: Payment Batch Type (v1.1.0)
      description: |+
        Defines the type of this payment batch.

        <strong><code>paymentBatchType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>ach</code></strong></td><td>ACH: <p>One or more ACH batches</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>nachaPassThrough</code></strong></td><td>NACHA Pass-through: <p>A single NACHA file with debit/credit payments</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>wireTransfer</code></strong></td><td>Wire Transfer: <p>Wire transfer</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-todo: Add other types, such as billPay, p2p
      x-apiture-enum: paymentBatchType
      enum:
        - ach
        - nachaPassThrough
        - wireTransfer
    achPaymentBatchType:
      title: ACH Payment Batch Type (v1.0.0)
      description: |+
        Defines the type of this ACH payment batch.

        <strong><code>achPaymentBatchType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>other</code></strong></td><td>Other: <p>An other ACH payment type</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>vendorCredit</code></strong></td><td>Vendor Credit: <p>Pay vendor via Corporate Trade Exchange (CTX)</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: achPaymentBatchType
      x-apiture-todo: add other types, such as `eftps` - Electronic Federal Tax Payment System
      enum:
        - other
        - vendorCredit
      x-apiture-version: 1.0.0
    paymentBatchState:
      title: Payment Batch State (v1.0.0)
      description: |+
        Defines the state of this payment batch.

        <strong><code>paymentBatchState</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>pending</code></strong></td><td>Pending: <p>A batch that has incomplete or erroneous data or has not yet be submitted for approval</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>pendingApproval</code></strong></td><td>Pending Approval: <p>At least one approval is necessary before the payment batch may be scheduled</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>rejected</code></strong></td><td>Rejected: <p>An approver rejected a payment batch</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>scheduled</code></strong></td><td>Scheduled: <p>A payment batch that is scheduled to be processed</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>processing</code></strong></td><td>Processing: <p>A payment patch that has begun payment processes</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>processed</code></strong></td><td>Processed: <p>A payment batch that has completed its payment processing</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>reversalPending</code></strong></td><td>Reversal Pending: <p>A customer has requested reversal which has not yet started</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>partiallyReversed</code></strong></td><td>Partially Reversed: <p>Some of the payment instructions in a payment batch have been reversed</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>reversed</code></strong></td><td>Reversed: <p>The entire batch has been fully reversed</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>canceled</code></strong></td><td>Canceled: <p>A reversed batch has been canceled before an account has been debited</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>failed</code></strong></td><td>Failed: <p>A batch which has failed validation business rules</p>
        </td>
            </tr>
        </table>

      type: string
      $comment: 'Now that Wire Transfers have a separate state, we should revisit refactoring to move some of these to #achPaymentBatch'
      x-apiture-enum: paymentBatchState
      enum:
        - pending
        - pendingApproval
        - rejected
        - scheduled
        - processing
        - processed
        - reversalPending
        - partiallyReversed
        - reversed
        - canceled
        - failed
      x-apiture-version: 1.0.0
    paymentBatchReasonCode:
      x-apiture-version: 1.2.0
      title: Payment Batch Reason Code (v1.2.0)
      description: |+
        The reason that a payment batch is in its current [`state`](#paymentBatchState). Normally, this explains why the state is still `pending` and not eligible to be submitted or approved.

        Some `reasonCode` values may only be associated with specific `state` values.
        * `state: pending` may have these `reasonCode` values:
          * `incomplete`
          * `notScheduled`
          * `pastCutoff`
          * `sameDayRequired`
          * `none`
        * `state: pendingApproval` may have these `reasonCodes` values:
          * `locked`

        <strong><code>paymentBatchReasonCode</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>incomplete</code></strong></td><td>Incomplete: <p>The payment batch is missing one or more field values required for submission</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>notScheduled</code></strong></td><td>Not Scheduled: <p>The payment batch was created but does not have an assigned <code>schedule.scheduledOn</code></p>
        </td>
            </tr>
        <tr>
            <td><strong><code>pastCutoff</code></strong></td><td>Past Cutoff: <p>The payment batch&#39;s scheduled date has exceeded the processing cutoff time and is no longer eligible for processing</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>sameDayRequired</code></strong></td><td>Same Day Required: <p>The payment batch requires Same Day ACH processing</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>locked</code></strong></td><td>Locked: <p>The payment batch has been submitted and is unable to be modified</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>none</code></strong></td><td>None: <p>The payment batch has no problems and is eligible for submission and approval</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: paymentBatchReasonCode
      enum:
        - incomplete
        - notScheduled
        - pastCutoff
        - sameDayRequired
        - locked
        - none
    paymentBatchAchSecCode:
      x-apiture-version: 1.0.1
      title: ACH Payment (v1.0.1)
      description: The Standard Entry Class (SEC) code that denotes the ACH payment authorization type.
      allOf:
        - $ref: '#/components/schemas/achSecCode'
    newPaymentSettlementAccountReference:
      x-apiture-version: 2.1.0
      title: New Payment Settlement Account Reference (v2.1.0)
      description: |-
        A reference to a settlement account when creating a new payment batch. The `label` and `maskedNumber` are for identification purposes only.
        Balance payment batches do not require a reference to a settlement account, but require `risk` to be provided with a value of `float`.
      type: object
      required:
        - id
      properties:
        id:
          description: The account's unique, opaque resource ID. This field is nullable if a settlement account is not required for the payment batch.
          $ref: '#/components/schemas/nullableReadOnlyResourceId'
        label:
          description: A text label which describes this account. This is derived from the `account.label`.
          type: string
          format: text
          maxLength: 80
          example: Checking *1008
        maskedNumber:
          description: The account number, masked for partial display.
          allOf:
            - $ref: '#/components/schemas/maskedAccountNumber'
        risk:
          description: 'The risk level determines how the batch processes: how many days it takes to process the batch ( 2, 3 or 4 days ), when the customer gets debited, and how early the batch has to look ahead of the effective date. This is normally determined from the risk associated with the settlement account.'
          $ref: '#/components/schemas/achAccountRisk'
      examples:
        - id: bf23bc970b78d27691e
          label: Payroll Checking *1008
          maskedNumber: '*1008'
          risk: normal
        - id: null
          risk: float
    paymentSettlementAccountReference:
      x-apiture-version: 3.1.0
      title: Payment Settlement Account Reference (v3.1.0)
      description: Descriptive fields that identify a payment's internal settlement account.
      type: object
      required:
        - id
      properties:
        id:
          description: The account's unique, opaque resource ID.
          $ref: '#/components/schemas/nullableReadOnlyResourceId'
        label:
          description: A text label which describes this account. This is derived from the `account.label`.
          type: string
          format: text
          maxLength: 80
          example: Checking *1008
          readOnly: true
        risk:
          description: 'The risk level determines how the batch processes: how many days it takes to process the batch ( 2, 3 or 4 days ), when the customer gets debited, and how early the batch has to look ahead of the effective date. This is normally determined from the risk associated with the settlement account.'
          $ref: '#/components/schemas/achAccountRisk'
        maskedNumber:
          description: The account number, masked for partial display.
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/maskedAccountNumber'
      examples:
        - label: Payroll Checking *1008
          maskedNumber: '*1008'
          id: bf23bc970b78d27691e
          risk: normal
        - id: null
          risk: float
    paymentSettlementAccountReferencePatch:
      x-apiture-version: 2.1.0
      title: Payment Settlement Account Reference Patch (v2.1.0)
      description: |-
        Descriptive fields that identify a payment's internal settlement account in a payment batch patch. The label and masked number are informative only.
        Balance payment batches do not require a reference to a settlement account, but require `risk` to be provided with a value of `float`.
      required:
        - id
      type: object
      properties:
        id:
          description: The account's unique, opaque resource ID. This is required for all payment batches except for balance batches.
          $ref: '#/components/schemas/nullableResourceId'
        label:
          description: A text label which describes this account. This is derived from the `account.label`.
          type: string
          format: text
          maxLength: 80
          example: Checking *1008
        maskedNumber:
          description: The account number, masked for partial display.
          allOf:
            - $ref: '#/components/schemas/maskedAccountNumber'
        risk:
          description: The risk level determines how many days it takes to process the batch ( 2, 3 or 4 days ), when the customer gets debited, and how early the batch has to look ahead of the effective date. This is normally determined from the risk associated with the settlement account. This field is required for balanced batches.
          $ref: '#/components/schemas/achAccountRisk'
      examples:
        - label: Payroll Checking *1008
          maskedNumber: '*1008'
          id: bf23bc970b78d27691e
        - id: null
          risk: float
    commonPaymentBatchFields:
      title: Common Payment Batch Fields (v0.10.0)
      description: Fields shared for composing payment batch resources.
      x-apiture-fragment: true
      type: object
      x-apiture-version: 0.10.0
      properties:
        name:
          description: The user-assigned name of this payment batch.
          type: string
          format: text
          maxLength: 10
          example: Payroll 03
        description:
          description: The user-assigned detailed description of this payment batch.
          type: string
          format: text
          maxLength: 100
          example: 2022-03 Employee Payroll
        company:
          description: Identification of the company making this payment batch.
          $ref: '#/components/schemas/paymentBatchCompany'
    confidentialAchCustomer:
      title: Confidential ACH Customer (v1.0.0)
      description: A reference to a customer that is entitled to view and manage a confidential ACH payment batch.
      allOf:
        - $ref: '#/components/schemas/customerReference'
      x-apiture-version: 1.0.0
    confidentialWireCustomer:
      title: Confidential Wire Customer (v1.0.0)
      description: A reference to a customer that is entitled to view and manage a confidential wire payment payment batch.
      allOf:
        - $ref: '#/components/schemas/customerReference'
      x-apiture-version: 1.0.0
    eligiblePaymentBatchApprovers:
      x-apiture-version: 2.1.0
      title: Eligible Payment Batch Approvers (v2.1.0)
      description: A list of customers eligible to approve one or more payment batches. If the batch is marked confidential, the list of approvers for that batch includes only those who are also in the batch's list of confidential customers. In the example, `items[0]` and `items[1]` both have the same `groupId` value, indicating that those two batches have the same list of approvers, while the approver list for the third batch (`items[2]`) differs.
      allOf:
        - $ref: '#/components/schemas/paymentBatchApprovers'
      example:
        items:
          - paymentBatchId: d366bc49-49a7
            groupId: group-00
            approvers:
              - name: Tom Allison
                id: 327d8bea-2553
                identification: to...58@wellsroofing.com
              - name: Silvia Wilkenson
                id: 06cf8996-d093
                identification: si...42@wellsroofing.com
          - paymentBatchId: 8ea05bfc-0e9c
            groupId: group-00
            approvers:
              - name: Tom Allison
                id: 327d8bea-2553
                identification: to...58@wellsroofing.com
              - name: Silvia Wilkenson
                id: 06cf8996-d093
                identification: si...42@wellsroofing.com
          - paymentBatchId: 071db898-b220
            groupId: group-01
            approvers:
              - name: Tom Allison
                id: 327d8bea-2553
                identification: to...58@wellsroofing.com
              - name: Carl Thompson
                id: d7da1cc5-8056
                identification: ca...39@wellsroofing.com
    bulkEligiblePaymentBatchApprovers:
      x-apiture-version: 1.1.0
      title: Bulk Eligible Payment Batch Approvers (v1.1.0)
      description: A list of customers eligible to approve one or more payment batches. If the batch is marked confidential, the list of approvers for that batch includes only those who are also in the batch's list of confidential customers. In the example, `items[0]` and `items[1]` both have the same `groupId` value, indicating that those two batches have the same list of approvers, while the approver list for the third batch (`items[2]`) differs.
      allOf:
        - $ref: '#/components/schemas/bulkPaymentBatchApprovers'
      example:
        items:
          - paymentBatchId: d366bc49-49a7
            groupId: group-00
            approvers:
              - name: Tom Allison
                id: 327d8bea-2553
                identification: to...58@wellsroofing.com
              - name: Silvia Wilkenson
                id: 06cf8996-d093
                identification: si...42@wellsroofing.com
          - paymentBatchId: 8ea05bfc-0e9c
            groupId: group-00
            approvers:
              - name: Tom Allison
                id: 327d8bea-2553
                identification: to...58@wellsroofing.com
              - name: Silvia Wilkenson
                id: 06cf8996-d093
                identification: si...42@wellsroofing.com
          - paymentBatchId: 071db898-b220
            groupId: group-01
            approvers:
              - name: Tom Allison
                id: 327d8bea-2553
                identification: to...58@wellsroofing.com
              - name: Carl Thompson
                id: d7da1cc5-8056
                identification: ca...39@wellsroofing.com
    paymentBatchApprovers:
      x-apiture-version: 2.1.0
      title: Payment Batch Approvers (v2.1.0)
      description: A list of payment batches and the customers to assign to approve that payment batch.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: The list of payment batches and list of customers eligible to approve the batch.
              type: array
              minItems: 1
              maxItems: 1000
              items:
                $ref: '#/components/schemas/paymentBatchApproverList'
      example:
        items:
          - paymentBatchId: 8ea05bfc-0e9c
            groupId: group-00
            approvers:
              - name: Tom Allison
                id: 327d8bea-2553
                identification: to...58@wellsroofing.com
              - name: Silvia Wilkenson
                id: 06cf8996-d093
                identification: si...42@wellsroofing.com
          - paymentBatchId: 071db898-b220
            groupId: group-01
            approvers:
              - name: Tom Allison
                id: 327d8bea-2553
                identification: to...58@wellsroofing.com
              - name: Carl Thompson
                id: d7da1cc5-8056
                identification: ca...39@wellsroofing.com
    bulkPaymentBatchApprovers:
      x-apiture-version: 1.1.0
      title: Bulk Payment Batch Approvers (v1.1.0)
      description: A list of payment batches and the customers to assign to approve that payment batch.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: The list of payment batches and list of customers eligible to approve the batch.
              type: array
              minItems: 1
              maxItems: 1000
              items:
                $ref: '#/components/schemas/bulkPaymentBatchApproverList'
      example:
        items:
          - paymentBatchId: 8ea05bfc-0e9c
            groupId: group-00
            approvers:
              - name: Tom Allison
                id: 327d8bea-2553
                identification: to...58@wellsroofing.com
              - name: Silvia Wilkenson
                id: 06cf8996-d093
                identification: si...42@wellsroofing.com
          - paymentBatchId: 071db898-b220
            groupId: group-01
            approvers:
              - name: Tom Allison
                id: 327d8bea-2553
                identification: to...58@wellsroofing.com
              - name: Carl Thompson
                id: d7da1cc5-8056
                identification: ca...39@wellsroofing.com
    paymentBatchApproverList:
      x-apiture-version: 1.1.0
      title: Payment Batch And Approvers (v1.1.0)
      description: A payment batch and a list of customers who are eligible to approve the batch.
      type: object
      required:
        - paymentBatchId
        - approvers
      properties:
        paymentBatchId:
          description: The resource ID of the payment batch.
          $ref: '#/components/schemas/resourceId'
        groupId:
          description: An opaque string which identifies similar lists of approvers. All items with the same `groupId` have the same set of approvers.
          type: string
          minLength: 1
          maxLength: 16
          pattern: ^[-_:.~$a-zA-Z0-9]+$
        approvers:
          description: The list of eligible approvers.
          type: array
          minItems: 1
          maxItems: 1000
          items:
            $ref: '#/components/schemas/paymentBatchApprover'
      example:
        paymentBatchId: 071db898-b220
        groupId: group-01
        approvers:
          - name: Tom Allison
            id: 327d8bea-2553
            identification: to...58@wellsroofing.com
          - name: Carl Thompson
            id: d7da1cc5-8056
            identification: ca...39@wellsroofing.com
    bulkPaymentBatchApproverList:
      x-apiture-version: 1.1.0
      title: Bulk Payment Batch and Approvers (v1.1.0)
      description: A payment batch and a list of customers who are eligible to approve the batch. This may include problems with listing eligible customers.
      allOf:
        - $ref: '#/components/schemas/paymentBatchApproverList'
        - type: object
          properties:
            problems:
              description: If the operation for this batch failed (`succeeded` is `false`), this describes why. This may include forbidden, conflict, or other 4xx error or problem types that can occur with individual payment batch operation calls.
              type: array
              minItems: 0
              maxItems: 1000
              items:
                $ref: '#/components/schemas/paymentProblem'
    paymentBatchApprover:
      x-apiture-version: 2.1.0
      title: Payment Batch Approver (v2.1.0)
      description: A reference to a customer that is entitled to approve the containing payment batch.
      allOf:
        - $ref: '#/components/schemas/customerReference'
        - type: object
          properties:
            identification:
              description: Descriptive identifying text about the approver, such as a (masked) email address.
              type: string
              format: text
              maxLength: 64
      examples:
        - name: Tom Allison
          id: 327d8bea-2553
          identification: to...58@wellsroofing.com
    paymentBatchApproval:
      x-apiture-version: 2.1.0
      title: Payment Batch Approval (v2.1.0)
      description: The customer who approved a payment batch, and when it was approved.
      type:
        - object
        - 'null'
      required:
        - id
        - name
        - approvedAt
      properties:
        id:
          description: The unique `id` of the approver
          $ref: '#/components/schemas/resourceId'
        name:
          description: The approvers's full name.
          type: string
          format: text
          minLength: 2
          maxLength: 48
        identification:
          description: Descriptive identifying text about the approver, such as a (masked) email address.
          type: string
          format: text
          maxLength: 64
        approvedAt:
          description: The date-time when the approver last approved this payment batch.
          $ref: '#/components/schemas/readOnlyTimestamp'
      examples:
        - name: Tom Allison
          id: 327d8bea-2553
          identification: to...58@wellsroofing.com
          approvedAt: '2022-05-23T08:01:28.375Z'
    confidentialAchCustomers:
      x-apiture-version: 1.1.0
      title: Confidential ACH Customers (v1.1.0)
      description: Defines the `confidentialCustomers` property, for use in composing other schemas.
      x-apiture-fragment: true
      type: object
      properties:
        confidentialCustomers:
          description: A list of customers entitled to view and manage this confidential payment batch. If this property is omitted, the batch is not confidential. To remove confidential customers in a batch and make the batch non-confidential, set this property to `null` in a [`patchPaymentBatch`](#op-patchPaymentBatch) operation.
          type:
            - array
            - 'null'
          minItems: 1
          maxItems: 1000
          items:
            $ref: '#/components/schemas/confidentialAchCustomer'
    confidentialAchCustomerList:
      x-apiture-version: 1.2.0
      title: Confidential ACH Customer List (v1.2.0)
      description: 'A list of customers who are entitled to access a payment batch. Eligibility is defined by each customer''s entitlements to the settlement account associated with the batch. *Note*: the list may be empty.'
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            items:
              description: A list of customers entitled to view and manage this confidential payment batch.
              type: array
              minItems: 0
              maxItems: 1000
              items:
                $ref: '#/components/schemas/confidentialAchCustomer'
      example:
        items:
          - id: 64446f8d-780f
            name: Philip F. Duciary
          - id: 58853981-24bb
            name: Alice A. Tuary
    paymentBatchFields:
      x-apiture-version: 3.1.2
      title: Payment Batch Fields (v3.1.2)
      description: Common fields of the payment batch resource used to build other model schemas.
      x-apiture-fragment: true
      type: object
      allOf:
        - $ref: '#/components/schemas/commonPaymentBatchFields'
        - type: object
          properties:
            settlementAccount:
              description: The account where the payment funds are drawn or credited.
              $ref: '#/components/schemas/paymentSettlementAccountReference'
            settlementType:
              description: Whether the payments in the batch are applied to the settlement account as `detailed` transactions per payment instruction or as one `summary` transaction. This value is initially derived from the customer's ACH preferences. When payment batch processing begins, the preference is assigned to the payment.
              readOnly: true
              $ref: '#/components/schemas/paymentBatchSettlementType'
            schedule:
              description: The date when the payment should be processed, and any recurrence.
              $ref: '#/components/schemas/paymentBatchSchedule'
    paymentBatchCompanyIdType:
      title: Payment Batch Company Id Type (v1.0.0)
      description: |+
        An enumeration of allowed company ID types.

        <strong><code>paymentBatchCompanyIdType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>taxId</code></strong></td><td>Tax Id: <p>Government issued TAX identification ID</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>dunsNumber</code></strong></td><td>DUNS Number: <p>Dunn &amp; Bradstreet company identification number</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>userDefined</code></strong></td><td>User Defined ID</td>
            </tr>
        <tr>
            <td><strong><code>companyId</code></strong></td><td>Company ID</td>
            </tr>
        </table>

      type: string
      x-apiture-enum: paymentBatchCompanyIdType
      enum:
        - taxId
        - dunsNumber
        - userDefined
        - companyId
      x-apiture-version: 1.0.0
    paymentBatchCompany:
      x-apiture-version: 1.1.0
      title: Payment Batch Company (v1.1.0)
      description: Identification of the company associated with this payment batch.
      type: object
      required:
        - id
        - type
      properties:
        id:
          description: The company identifier.
          type: string
          format: text
          maxLength: 32
        type:
          description: The type of this company identification number
          $ref: '#/components/schemas/paymentBatchCompanyIdType'
    achApprovalDateTimeFields:
      title: ACH Approval DateTime Fields (v1.0.0)
      description: Common approval date-time fields for ACH payments.
      type: object
      properties:
        approvalDueAt:
          description: The date and time when the payment must be fully approved so that it can be processed in time to complete by the `scheduledOn` date. The time component of this timestamp is the financial institution's cutoff time. This is expressed in [RFC 3339](https://tools.ietf.org/html/rfc3339) `YYYY-MM-DDThh:mm:ss.sssZ` date-time format in UTC time zone.
          $ref: '#/components/schemas/readOnlyTimestamp'
        sameDayApprovalDue:
          description: A list of date-times when a same day payment must be fully approved so that it can be processed that day. The financial institution may process same-day ACH batches multiple times per day. The time component of each date-time is the financial institution's same-day cutoff time. This is expressed in [RFC 3339](https://tools.ietf.org/html/rfc3339) `YYYY-MM-DDThh:mm:ss.sssZ` date-time format in UTC time zone. Same day batches submitted on non-business days are processed the next business day.
          readOnly: true
          type: array
          minItems: 1
          maxItems: 8
          items:
            $ref: '#/components/schemas/timestamp'
          example:
            - '2022-06-09T15:00:00.000Z'
            - '2022-06-09T18:00:00.000Z'
            - '2022-06-09T20:30:00.000Z'
      x-apiture-version: 1.0.0
    achPaymentBatch:
      x-apiture-version: 1.6.0
      title: ACH Payment Batch (v1.6.0)
      description: Properties unique to ACH payment batches.
      type: object
      required:
        - secCode
        - sameDay
        - imported
      allOf:
        - $ref: '#/components/schemas/confidentialAchCustomers'
        - $ref: '#/components/schemas/mutableAchPaymentBatchFields'
        - $ref: '#/components/schemas/achApprovalDateTimeFields'
        - type: object
          properties:
            type:
              description: Optionally defines a specific type of ACH payment batch. Used for Vendor Credit batches.
              readOnly: true
              $ref: '#/components/schemas/achPaymentBatchType'
            secCode:
              description: The SEC code for these ACH payments. This is derived from `type`.
              readOnly: true
              allOf:
                - $ref: '#/components/schemas/paymentBatchAchSecCode'
            imported:
              description: If true, this batch was imported from a NACHA file. Imported batches only allow changing the `hold` boolean property in payment instructions.
              type: boolean
              default: false
            reversedPaymentId:
              description: If this payment is a reversal of another batch, this is the `id` of that reversed payment batch.
              $ref: '#/components/schemas/readOnlyResourceId'
              readOnly: true
            template:
              description: The ACH template that this ACH payment bach was created from. This property is present only if the ACH payment batch was created from a template.
              allOf:
                - $ref: '#/components/schemas/achTemplateDerivation'
      example:
        secCode: ppd
        sameDay: false
        imported: true
        companyName: Well's Roofing
        confidentialCustomers:
          - id: 64446f8d-780f
            name: Philip F. Duciary
          - id: 58853981-24bb
            name: Alice A. Tuary
        approvalDueAt: '2022-06-09T20:30:00.000Z'
        sameDayApprovalDue:
          - '2022-06-09T15:00:00.000Z'
          - '2022-06-09T18:00:00.000Z'
          - '2022-06-09T20:30:00.000Z'
        template:
          id: b728c27e-5176
          name: Payroll
          lockedProperties:
            - achSettlementAccount
    wireTransferPaymentScope:
      title: Wire Transfer Payment Scope (v1.0.0)
      description: |+
        Indicates if the wire transfer is a `domestic` wire or an `international` wire.

        <strong><code>wireTransferPaymentScope</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>domestic</code></strong></td><td>Domestic: <p>A wire transfer in which both the sender and beneficiary (recipient) financial institutions are in the US.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>international</code></strong></td><td>International: <p>A wire transfer in which the beneficiary (recipient) financial institution is not in the US.</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: wireTransferPaymentScope
      enum:
        - domestic
        - international
      x-apiture-version: 1.0.0
    wireTransferReceivingInstitution:
      x-apiture-version: 4.0.0
      title: Wire Transfer Receiving Institution (v4.0.0)
      description: For international wires, the beneficiary may designate a _receiving institution_ if they wish to receive the wire transfer funds at a local branch.
      type: object
      required:
        - name
        - locator
        - locatorType
      allOf:
        - $ref: '#/components/schemas/wireTransferInstitutionFields'
        - type: object
          properties:
            instructions:
              description: Additional or special instructions for the receiving institution to process the wire transfer.
              type: string
              format: text
              maxLength: 195
      example:
        name: Old State Federal Savings Bank
        instructions: Account should be a savings account.
        locatorType: abaRoutingNumber
        locator: '503000196'
    wireTransferNamedBeneficiary:
      x-apiture-version: 4.0.0
      title: Wire Transfer Named Beneficiary (v4.0.0)
      description: The individual or business entity which is the recipient of the wire transfer funds.
      allOf:
        - $ref: '#/components/schemas/wireTransferBeneficiary'
        - type: object
          properties:
            name:
              description: The name of the wire transfer recipient.
              type: string
              minLength: 1
              maxLength: 35
              format: text
      example:
        name: Phil Duciary
        address:
          address1: 1805 Tiburon Dr.
          address2: Building 14, Suite 1500
          locality: Wilmington
          regionCode: NC
          countryCode: US
          postalCode: '28412'
        phoneNumber: '+9105551234'
        accountNumber: '123456789'
    wireTransferAccountNumberType:
      title: Wire Transfer Account Number Type (v1.0.0)
      description: |+
        The type of account number for a wire transfer.

        <strong><code>wireTransferAccountNumberType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>usBankAccountNumber</code></strong></td><td>US Bank Account Number: <p>The account number for a US bank account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>iban</code></strong></td><td>IBAN: <p>An [International Bank Account Number (IBAN)](<a href="https://www.ecbs.org/iban.htm">IBAN account number</a>)</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>bban</code></strong></td><td>BBAN: <p>A country specific Basic Bank Account Number (BBAN)</p>
        </td>
            </tr>
        </table>

      x-apiture-enum: wireTransferAccountNumberType
      type: string
      enum:
        - usBankAccountNumber
        - iban
        - bban
      x-apiture-version: 1.0.0
    wireTransferBeneficiary:
      x-apiture-version: 6.0.0
      title: Wire Transfer Beneficiary (v6.0.0)
      description: 'The individual or business entity which is the recipient of the wire transfer funds. _Note_: The beneficiary''s name is in the payment instruction''s `name`.'
      type: object
      properties:
        accountNumber:
          description: |-
            The account number for the beneficiary.
            For domestic wire transfers, this is the US Bank Account number. For international wire transfers, this is the International Bank Account Number (IBAN) or the Basic Bank Account Number (BBAN).
            The type of this account number must match the given `accountNumberType`.
          type: string
          format: text
          minLength: 1
          maxLength: 34
        accountNumberType:
          $ref: '#/components/schemas/wireTransferAccountNumberType'
        address:
          description: The beneficiary's postal mailing address.
          $ref: '#/components/schemas/wireTransferBeneficiaryAddress'
        phoneNumber:
          description: The beneficiary's phone number.
          $ref: '#/components/schemas/simplePhoneNumber'
        instructions:
          description: Additional or special instructions for the recipient of the wire transfer funds.
          type: string
          format: text
          maxLength: 140
      example:
        address:
          address1: 1805 Tiburon Dr.
          address2: Building 14, Suite 1500
          locality: Wilmington
          regionCode: NC
          countryCode: US
          postalCode: '28412'
        phoneNumber: '+9105551234'
        accountNumber: '123456789'
    wireTransferOriginatorFields:
      x-apiture-version: 4.0.0
      title: Wire Transfer Originator Fields (v4.0.0)
      description: Fragment schema use to build other wire transfer originator schemas.
      x-apiture-fragment: true
      type: object
      properties:
        name:
          description: The name of the person who created the wire transfer.
          type: string
          format: text
          maxLength: 35
        governmentIssuedId:
          description: |-
            The government issued ID of the wire transfer originator.

            For Social Security Number (SSN), Employer Identification Number (EIN) or Individual Taxpayer Identification Number (ITIN), omit all delimiters.
          x-apiture-pii: true
          type: string
          format: text
          minLength: 1
          maxLength: 9
        address:
          description: The originator's postal mailing address.
          $ref: '#/components/schemas/partialAddress'
        phoneNumber:
          description: The phone number of the wire transfer originator.
          $ref: '#/components/schemas/simplePhoneNumber'
      example:
        name: Phil Duciary
        governmentIssuedId: '112223333'
        address:
          address1: 1805 Tiburon Dr.
          address2: Building 14, Suite 1500
          locality: Wilmington
          regionCode: NC
          countryCode: US
          postalCode: '28412'
        phoneNumber: '+9105551234'
    wireTransferOriginatorPatch:
      x-apiture-version: 4.0.0
      title: Wire Transfer Originator Patch (v4.0.0)
      description: Patchable wire transfer originator.
      allOf:
        - $ref: '#/components/schemas/wireTransferOriginatorFields'
    wireTransferOriginator:
      x-apiture-version: 4.0.0
      title: Wire Transfer Originator (v4.0.0)
      description: Describes the originator of a wire transfer.
      type: object
      allOf:
        - $ref: '#/components/schemas/wireTransferOriginatorFields'
      required:
        - name
    wireTransferInstitutionLocatorType:
      title: Wire Transfer Institution Locator Type (v1.0.0)
      description: |+
        Indicates the type of the institution `locator` for a wire transfer.

        <strong><code>wireTransferInstitutionLocatorType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>abaRoutingNumber</code></strong></td><td>ABA Routing Number: <p>The <a href="https://www.aba.com/about-us/routing-number">American Bankers Association routing number</a> of a financial institution</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>swiftBicCode</code></strong></td><td>SWIFT/BIC Code: <p>The <a href="https://www.swift.com/standards/data-standards/bic-business-identifier-code">SWIFT Business Identifier Code (BIC) code</a> of a financial institution</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>other</code></strong></td><td>Other: <p>A financial institution identifier other than ABA Routing Number or SWIFT Business Identifier Code (BIC)</p>
        </td>
            </tr>
        </table>

      x-apiture-enum: wireTransferInstitutionLocatorType
      type: string
      enum:
        - abaRoutingNumber
        - swiftBicCode
        - other
      x-apiture-version: 1.0.0
    wireTransferInstitutionAddress:
      x-apiture-version: 1.0.1
      title: Wire Transfer Institution Address (v1.0.1)
      description: The postal address used for wire transfers for financial institutions. This can be a US address or an international (non-US) postal address.
      type: object
      allOf:
        - $ref: '#/components/schemas/addressFields'
        - type: object
          properties:
            regionName:
              type: string
              minLength: 1
              maxLength: 20
              format: text
              description: The state, district, or outlying area of the postal address. This is required if `countryCode` is not `US`. `regionCode` and `regionName` are mutually exclusive.
              examples:
                - Alessandria
                - Rio de Janeiro
                - British Columbia
            regionCode:
              type: string
              maxLength: 2
              minLength: 2
              pattern: ^[A-Za-z]{2}$
              description: The state, district, or outlying area of the postal address. This is required if `countryCode` is `US`. `regionCode` and `regionName` are mutually exclusive.
              examples:
                - NC
                - IL
                - VI
            postalCode:
              $ref: '#/components/schemas/postalCode'
      example:
        address1: 239 West Princess Ave.
        locality: Andalasia
        regionCode: NC
        countryCode: US
        postalCode: '28407'
    wireTransferBeneficiaryAddress:
      x-apiture-version: 1.0.1
      title: Wire Transfer Beneficiary Address (v1.0.1)
      description: The postal address used for a wire transfer beneficiary. This can be a US address or an international (non-US) postal address.
      type: object
      allOf:
        - $ref: '#/components/schemas/addressFields'
        - type: object
          properties:
            regionName:
              type: string
              minLength: 1
              maxLength: 20
              format: text
              description: The state, district, or outlying area of the postal address. This is required if `countryCode` is not `US`. `regionCode` and `regionName` are mutually exclusive.
              examples:
                - Alessandria
                - Rio de Janeiro
                - British Columbia
            regionCode:
              type: string
              maxLength: 2
              minLength: 2
              pattern: ^[A-Za-z]{2}$
              description: The state, district, or outlying area of the postal address. This is required if `countryCode` is `US`. `regionCode` and `regionName` are mutually exclusive.
              examples:
                - NC
                - IL
                - VI
            postalCode:
              $ref: '#/components/schemas/postalCode'
      example:
        address1: 239 West Princess Ave.
        locality: Andalasia
        regionCode: NC
        countryCode: US
        postalCode: '28407'
    wireTransferInstitutionFields:
      x-apiture-version: 2.0.0
      title: Wire Transfer Institution (v2.0.0)
      description: A representation of a financial institution used for wire transfers.
      x-apiture-fragment: true
      type: object
      properties:
        name:
          description: The financial institution's name.
          allOf:
            - $ref: '#/components/schemas/institutionName'
        locator:
          description: |-
            The [American Bankers Association routing number](https://www.aba.com/about-us/routingnumber), the [SWIFT Business Identifier Code (BIC) code](https://www.swift.com/standards/data-standards/bic-business-identifier-code), or other financial institution identifier.

            The form of this institution locator string is set with the `locatorType` property.
          type: string
          maxLength: 36
          format: text
        locatorType:
          description: Indicates the type of this institution's `locator`.
          $ref: '#/components/schemas/wireTransferInstitutionLocatorType'
        localClearingCode:
          description: The clearing code used to identify the financial institution for select countries.
          type: string
          format: '[a-zA-Z0-9]{3,35}'
          minLength: 3
          maxLength: 35
          example: ATBLZ12345
      example:
        name: First Bank of Andalasia
        locator: '503000196'
        locatorType: abaRoutingNumber
    wireTransferBeneficiaryInstitution:
      x-apiture-version: 2.0.0
      title: Wire Transfer Beneficiary Institution (v2.0.0)
      description: Describes the beneficiary institution for a wire transfer.
      required:
        - name
        - address
        - locator
        - locatorType
      type: object
      allOf:
        - $ref: '#/components/schemas/wireTransferInstitutionFields'
        - type: object
          properties:
            address:
              description: The financial institution's postal mailing address.
              $ref: '#/components/schemas/wireTransferInstitutionAddress'
            instructions:
              description: Additional or special instructions for the beneficiary institution to process the wire transfer.
              type: string
              format: text
              maxLength: 195
      example:
        name: First Bank of Andalasia
        address:
          address1: 239 West Princess Ave.
          locality: Andalasia
          regionCode: NC
          countryCode: US
          postalCode: '28407'
        locator: '503000196'
        locatorType: abaRoutingNumber
        instructions: Account should be a savings account.
    wireTransferIntermediaryInstitution:
      x-apiture-version: 4.0.0
      title: Wire Transfer Intermediary Institution (v4.0.0)
      description: Describes the intermediary institution for a wire transfer. The intermediary institution must be a domestic financial institution. The `locatorType` must be `abaRoutingNumber`.
      required:
        - name
        - address
        - locator
        - locatorType
      type: object
      allOf:
        - $ref: '#/components/schemas/wireTransferInstitutionFields'
        - type: object
          properties:
            address:
              description: The financial institution's postal mailing address.
              $ref: '#/components/schemas/wireTransferInstitutionAddress'
      example:
        name: First Bank of Andalasia
        address:
          address1: 239 West Princess Ave.
          locality: Andalasia
          regionCode: NC
          countryCode: US
          postalCode: '28407'
        locatorType: abaRoutingNumber
        locator: '123456789'
    wireTransferPaymentBatchFields:
      x-apiture-version: 5.0.0
      title: Wire Transfer Payment Batch Fields (v5.0.0)
      description: Common fields used to construct other wire transfer payment schemas.
      x-apiture-fragment: true
      properties:
        originator:
          description: The person who created the wire transfer.
          allOf:
            - $ref: '#/components/schemas/wireTransferOriginator'
        confidentialCustomers:
          description: A list of customers entitled to view and manage this confidential wire transfer payment batch. If this property is omitted, the batch is not confidential. To remove confidential customers in a batch and make the batch non-confidential, set this property to `null` in a `patchPaymentBatch` operation.
          type:
            - array
            - 'null'
          minItems: 1
          maxItems: 1000
          items:
            $ref: '#/components/schemas/confidentialWireCustomer'
        memo:
          description: The memo instruction associated with the wire transfer payment.
          allOf:
            - $ref: '#/components/schemas/wireTransferInstructionMemo'
        purpose:
          description: The purpose of the wire transfer payment.
          type: string
          format: text
          maxLength: 140
      example:
        originator:
          name: Phil Duciary
          governmentIssuedId: '112223333'
          address:
            address1: 1805 Tiburon Dr.
            address2: Building 14, Suite 1500
            locality: Wilmington
            regionCode: NC
            countryCode: US
            postalCode: '28412'
          phoneNumber: '+9105551234'
        confidentialCustomers:
          - id: f48291b6-14ce
            name: Amanda Cummins
          - id: eaf488ab-fbf7
            name: Stephen Walker
    wireTransferDisclosureType:
      description: |+
        Types of disclosures for wire transfers.

        <strong><code>wireTransferDisclosureType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>internationalRetailCustomerTaxesAndFees</code></strong></td><td>International Retail Customer Taxes and Fees: <p>A disclosure about taxes and fees incurred with international wire transfers for retail customers</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: wireTransferDisclosureType
      enum:
        - internationalRetailCustomerTaxesAndFees
      x-apiture-version: 1.0.0
      title: ' (v1.0.0)'
    newWireTransferPaymentBatch:
      x-apiture-version: 6.0.0
      title: New Wire Transfer Payment Batch (v6.0.0)
      description: Properties of a new wire transfer payment.
      type: object
      required:
        - scope
      allOf:
        - $ref: '#/components/schemas/wireTransferPaymentBatchFields'
        - type: object
          properties:
            template:
              description: If included, the wire transfer template to use as the source for this wire transfer payment batch.
              allOf:
                - $ref: '#/components/schemas/wireTransferTemplateReference'
            scope:
              description: Indicates if the wire transfer is a `domestic` wire or an `international` wire. This must be assigned when creating a wire transfer and is immutable after creation.
              allOf:
                - $ref: '#/components/schemas/wireTransferPaymentScope'
            disclosureAcknowledgements:
              description: A list of wire transfer fee and tax disclosures the banking customer is required to acknowledge.
              type: array
              minItems: 0
              maxItems: 1
              items:
                $ref: '#/components/schemas/wireTransferDisclosureType'
            paymentInstruction:
              description: If included, the payment instruction for creating this wire transfer payment batch.
              allOf:
                - $ref: '#/components/schemas/initialWireTransferPaymentInstruction'
            currencyConversion:
              description: |-
                If included, a reference to the accepted currency conversion quote. This is required for international wire transfers that have a currency conversion.

                The `amount` for this wire transfer must match the beneficiary amount accepted in this quote.
              allOf:
                - $ref: '#/components/schemas/acceptedCurrencyConversionQuoteReference'
      example:
        scope: domestic
        originator:
          name: Phil Duciary
          governmentIssuedId: '112223333'
          address:
            address1: 1805 Tiburon Dr.
            address2: Building 14, Suite 1500
            locality: Wilmington
            regionCode: NC
            countryCode: US
            postalCode: '28412'
          phoneNumber: '+9105551234'
        paymentInstruction:
          name: Bill Billings
          amount: '15788.90'
          beneficiary:
            address:
              address1: 1805 Tiburon Dr.
              address2: Building 14, Suite 1500
              locality: Wilmington
              regionCode: NC
              countryCode: US
              postalCode: '28412'
            phoneNumber: '+9105551234'
          intermediaryInstitution:
            name: First Bank of Andalasia
            address:
              address1: 239 West Princess Ave.
              locality: Andalasia
              regionCode: NC
              countryCode: US
              postalCode: '28407'
            locatorType: abaRoutingNumber
            locator: '123456789'
          beneficiaryInstitution:
            name: First Bank of Andalasia
            address:
              address1: 239 West Princess Ave.
              locality: Andalasia
              regionCode: NC
              countryCode: US
              postalCode: '28407'
            locator: '503000196'
            locatorType: abaRoutingNumber
            instructions: Account should be a savings account.
          receivingInstitution:
            name: Old State Federal Savings Bank
            locator: '503000196'
            locatorType: abaRoutingNumber
            instructions: Account should be a savings account.
    nachaPassThroughType:
      title: NACHA Pass-Through Type (v1.0.0)
      description: Indicates if the batch is balanced, unbalanced, or unknown (if the balance status is not known).
      type: string
      enum:
        - balanced
        - unbalanced
        - unknown
      x-apiture-version: 1.0.0
    nachaPassThroughCompany:
      x-apiture-version: 1.1.0
      title: NACHA Pass-Through Company (v1.1.0)
      description: Describes a company associated with an ACH batch within a NACHA file.
      type: object
      required:
        - name
        - id
      properties:
        name:
          description: The name of the company associated within the NACHA file batch.
          type: string
          format: text
          minLength: 1
          maxLength: 16
        id:
          description: The company identifier.
          type: string
          format: text
          minLength: 1
          maxLength: 10
      example:
        name: Walter Consult
        id: '389328792'
    nachaPassThroughSettlementAccountReference:
      title: NACHA Pass-Through Settlement Account Reference (v1.0.0)
      description: The settlement account associated with one batch within a NACHA pass-through payment.
      type: object
      required:
        - selectable
        - maskedNumber
        - label
        - risk
      allOf:
        - $ref: '#/components/schemas/paymentSettlementAccountReference'
        - type: object
          properties:
            selectable:
              description: If `true`, there is more than one eligible settlement account for the company in this batch.
              type: boolean
            applicableToGroup:
              description: If `true`, the customer can apply this batch's settlement account to other batches in the same company group. This is `false` if there are no other batches associated with the same company; it is also `false` if the `settlementAccount` is not `selectable`.
              type: boolean
            applyToGroup:
              description: If `true`, the customer has indicated that this batch's settlement account should be applied to all other batches in the same company group.
              type: boolean
      x-apiture-version: 1.0.0
    nachaPassThroughBatchItem:
      x-apiture-version: 2.2.0
      title: NACHA Pass-Through Batch Item (v2.2.0)
      description: Describes a batch within a NACHA pass-through file. Most of the fields are derived from the NACHA file.
      required:
        - secCode
        - amount
        - name
        - trackingNumber
        - itemCount
        - creditCount
        - debitCount
        - creditTotal
        - debitTotal
        - company
        - index
        - companyGroup
        - lineNumber
        - problems
      allOf:
        - $ref: '#/components/schemas/achApprovalDateTimeFields'
        - type: object
          properties:
            trackingNumber:
              description: A unique tracking number for this batch. Unlike the `id`, this numeric value is visible to the customer, and can be used to lookup a batch by this ID.
              $ref: '#/components/schemas/paymentBatchTrackingNumber'
            secCode:
              description: The SEC code for these ACH payments. This is derived from `type`.
              $ref: '#/components/schemas/paymentBatchAchSecCode'
            amount:
              description: The net total of all the line items in this batch.
              $ref: '#/components/schemas/monetaryValue'
            itemCount:
              description: The number of payment instruction line items in this batch.
              type: integer
              format: int32
              minimum: 0
              maximum: 100000
            creditCount:
              description: The number of all the credit instructions in this payment batch. The count omits instructions where `hold` is `true`.
              type: integer
              format: int32
              minimum: 0
              maximum: 10000
              example: 12
            debitCount:
              description: The number of all the debit instructions in this payment batch. The count omits instructions where `hold` is `true`.
              type: integer
              format: int32
              minimum: 0
              maximum: 10000
              example: 30
            effectiveOn:
              description: The date when the batch payment should be or was processed, in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) date format.
              $ref: '#/components/schemas/date'
            creditTotal:
              description: The total of all the payment credit amounts in this batch's payment instructions, expressed as a decimal value. These amounts are credits to the remote accounts and a debit to the settlement account. The total omits instructions where `hold` is `true`.
              allOf:
                - $ref: '#/components/schemas/creditOrDebitValue'
              readOnly: true
              example: '2467.50'
            debitTotal:
              description: The total of all the payment debit amounts in this batch's payment instructions, expressed as a decimal value.  These amounts are debits to the remote accounts and a credit to the settlement account. The total omits instructions where `hold` is `true`.
              allOf:
                - $ref: '#/components/schemas/creditOrDebitValue'
              readOnly: true
              example: '0.00'
            company:
              $ref: '#/components/schemas/nachaPassThroughCompany'
            name:
              description: The name of this payment batch.
              type: string
              format: text
              maxLength: 10
              example: Payroll 03
            settlementAccount:
              description: The account where the payment funds are drawn or credited for this batch.
              $ref: '#/components/schemas/nachaPassThroughSettlementAccountReference'
            index:
              description: The zero-based index of this batch within the NACHA file's list of batches.
              type: integer
              format: int32
              minimum: 0
              maximum: 20000
            companyGroup:
              description: Batches are partitioned into groups based on the company. All batches which have the same `company` name and ID have the same group number which allows assigning the same settlement account. This is `0` if `settlementAccountSelectable` is `false`. Batches in the same company group do not have to be adjacent in the NACHA file.
              type: integer
              format: int32
              minimum: 0
              maximum: 20000
            lineNumber:
              description: The line number within this NACHA file where this batch begins. Line numbers use one-based numbering.
              type: integer
              format: int32
              minimum: 1
              maximum: 100000
            problems:
              description: A list of problems detected during processing this NACHA file.
              type: array
              maxItems: 1000
              items:
                $ref: '#/components/schemas/paymentProblem'
      example:
        secCode: ctx
        amount: '2875.00'
        trackingNumber: '378293'
        itemCount: 32
        creditCount: 32
        debitCount: 0
        approvalDueAt: '2022-06-09T20:30:00.000Z'
        sameDayApprovalDue:
          - '2022-06-09T15:00:00.000Z'
          - '2022-06-09T18:00:00.000Z'
          - '2022-06-09T20:30:00.000Z'
        company:
          name: Walter Consult
          id: '389328792'
        effectiveOn: '2023-09-01'
        creditTotal: '2730.00'
        debitTotal: '0.00'
        name: App Dev
        settlementAccount:
          id: 69464d06366ac48f2ef6
          maskedNumber: '*7890'
          label: Payroll Checking *7890
          risk: normal
          selectable: true
          applicableToGroup: true
          applyToGroup: false
        index: 5
        companyGroup: 1
        lineNumber: 85
        problems: []
    nachaPassThroughPaymentBatch:
      x-apiture-version: 2.2.0
      title: NACHA Pass-Through Payment Batch (v2.2.0)
      description: Describes an uploaded NACHA pass-through payment batch. If there are problems with the NACHA file, they are represented in the [`paymentBatch`'s problems object](#schema-paymentBatch).
      type: object
      required:
        - type
      allOf:
        - $ref: '#/components/schemas/confidentialAchCustomers'
        - $ref: '#/components/schemas/achApprovalDateTimeFields'
        - type: object
          properties:
            type:
              $ref: '#/components/schemas/nachaPassThroughType'
            earliestEffectiveOn:
              description: The date of the earliest ACH transfer within the NACHA file, if known.
              $ref: '#/components/schemas/date'
            latestEffectiveOn:
              description: The date of the latest ACH transfer within the NACHA file, if known.
              $ref: '#/components/schemas/date'
            fileName:
              description: The name of the file.
              type: string
              format: text
              minLength: 4
              maxLength: 80
            uploadedAt:
              description: 'The date/tim when the NACHA pass-through was uploaded formatted in [RFC 3339](https://tools.ietf.org/html/rfc3339) `date-time` UTC format: `YYYY-MM-DDThh:mm:ss.sssZ`.'
              $ref: '#/components/schemas/readOnlyTimestamp'
            uploadedBy:
              description: Name of the person who uploaded the batch.
              type: string
              format: text
              maxLength: 48
            confidentialCustomers:
              description: A list of customers entitled to view and manage this confidential NACHA pass-through payment batch. If this property is omitted, the batch is not confidential.
              type: array
              minItems: 1
              maxItems: 1000
              items:
                $ref: '#/components/schemas/confidentialAchCustomer'
            batches:
              description: An array of the individual batches from the NACHA file, if parsable. Omitted if the NACHA file was not parsable.
              type: array
              minItems: 1
              maxItems: 20000
              items:
                $ref: '#/components/schemas/nachaPassThroughBatchItem'
      example:
        type: balanced
        earliestEffectiveOn: '2023-07-10'
        latestEffectiveOn: '2023-07-12'
        uploadedBy: Alex Frank
        uploadedAt: '2023-07-08T09:36:36.375Z'
        fileName: nacha-payroll-2023-08-01.ach
    wireTransferDisclosureAcknowledgement:
      description: Details about acknowledged wire transfer disclosure.
      type: object
      required:
        - acknowledgedAt
      properties:
        internationalRetailCustomerTaxesAndFees:
          description: |-
            The acknowledged taxes and fees disclosure for this wire transfer.
            This is only included for international wire transfers created by retail customers.
          $ref: '#/components/schemas/wireTransferDisclosures'
        acknowledgedAt:
          description: The timestamp (an instant in time) when the disclosure was acknowledged by the customer, formatted in `YYYY-MM-DDThh:mm:ss.sssZ` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date-time` UTC format.
          $ref: '#/components/schemas/timestamp'
      x-apiture-version: 1.0.0
      title: ' (v1.0.0)'
    wireTransferPaymentBatch:
      x-apiture-version: 6.0.0
      title: Wire Transfer Payment Batch (v6.0.0)
      description: Properties of a wire transfer payment.
      type: object
      required:
        - scope
      allOf:
        - $ref: '#/components/schemas/wireTransferPaymentBatchFields'
        - type: object
          properties:
            template:
              description: The wire transfer template that this wire transfer was created from. This property is present only if the wire transfer was created from a template.
              allOf:
                - $ref: '#/components/schemas/wireTransferTemplateDerivation'
            scope:
              description: Indicates if the wire transfer is a `domestic` wire or an `international` wire. This must be assigned when creating a wire transfer and is immutable after.
              readOnly: true
              allOf:
                - $ref: '#/components/schemas/wireTransferPaymentScope'
            state:
              description: The state of the wire transfer. This is only present when the payment batch is a state that is only applicable to wire transfers.
              $ref: '#/components/schemas/wireTransferState'
            approvalDue:
              description: 'A list of date-times, in ascending order, when a wire transfer payment must be fully approved so that it can be processed at the financial institution''s cutoff time. These times reflect either the financial institution''s domestic or international wire cut off times, as determined by this wire transfer''s `scope`. The financial institution may process wire transfers batches multiple times per day. The time component of each date-time is the financial institution''s cutoff time. This is expressed in [RFC 3339](https://tools.ietf.org/html/rfc3339) `YYYY-MM-DDThh:mm:ss.sssZ` date-time format. __Note__: _Some of these times may be in the past._'
              readOnly: true
              type: array
              minItems: 1
              maxItems: 8
              items:
                description: A cutoff time
                $ref: '#/components/schemas/timestamp'
              example:
                - '2022-06-09T15:00:00.000Z'
                - '2022-06-09T18:00:00.000Z'
                - '2022-06-09T20:30:00.000Z'
            disclosureAcknowledgements:
              description: The details of acknowledged disclosures for this wire transfer. This is omitted when this wire transfer does not have any associated disclosures.
              type: array
              uniqueItems: true
              minItems: 1
              maxItems: 1
              items:
                $ref: '#/components/schemas/wireTransferDisclosureAcknowledgement'
            currencyConversion:
              description: If included, a reference to the accepted currency conversion quote. This is required for international wire transfers that have a currency conversion.
              allOf:
                - $ref: '#/components/schemas/acceptedCurrencyConversionQuote'
      example:
        template:
          id: 0d5b4d7b0219071a8412
          name: Insurance Premiums
          lockedProperties: []
        originator:
          name: Phil Duciary
          governmentIssuedId: '112223333'
          address:
            address1: 1805 Tiburon Dr.
            address2: Building 14, Suite 1500
            locality: Wilmington
            regionCode: NC
            countryCode: US
            postalCode: '28412'
          phoneNumber: '+9105551234'
        confidentialCustomers:
          - id: f48291b6-14ce
            name: Amanda Cummins
          - id: eaf488ab-fbf7
            name: Stephen Walker
        scope: domestic
        state: submitted
        approvalDue:
          - '2022-06-09T15:00:00.000Z'
          - '2022-06-09T18:00:00.000Z'
          - '2022-06-09T20:30:00.000Z'
    wireTransferPaymentBatchPatch:
      x-apiture-version: 5.0.0
      title: Wire Transfer Payment Batch Patch (v5.0.0)
      description: Mutable properties of a patch to a wire transfer payment.
      type: object
      properties:
        originator:
          description: The person who created the wire transfer.
          $ref: '#/components/schemas/wireTransferOriginatorPatch'
        confidentialCustomers:
          description: A list of customers entitled to view and manage this confidential wire transfer payment batch. If this property is omitted, the batch is not confidential. To remove confidential customers in a batch and make the batch non-confidential, set this property to `null` in a [`patchPaymentBatch`](#op-patchPaymentBatch) operation.
          type:
            - array
            - 'null'
          minItems: 1
          maxItems: 1000
          items:
            $ref: '#/components/schemas/confidentialWireCustomer'
        memo:
          description: The memo instruction associated with the wire transfer payment.
          $ref: '#/components/schemas/wireTransferInstructionMemo'
        purpose:
          description: The purpose of the wire transfer payment associated with the wire transfer payment template.
          type: string
          format: text
          maxLength: 140
        disclosureAcknowledgements:
          description: |-
            A list of wire transfer fee and tax disclosures the banking customer is required to acknowledge.

            If the disclosures have changed since they were previously acknowledged by the banking customer, the updated disclosures must be acknowledged.
          type: array
          minItems: 0
          maxItems: 1
          items:
            $ref: '#/components/schemas/wireTransferDisclosureType'
        currencyConversion:
          description: If included, a reference to the accepted currency conversion quote. Currency conversion quotes can only be changed; only wire transfers created with a currency conversion can have the quotes patched.
          allOf:
            - $ref: '#/components/schemas/acceptedCurrencyConversionQuoteReference'
    mutableAchPaymentBatchFields:
      x-apiture-version: 1.1.0
      title: Mutable ACH Payment Batch Fields (v1.1.0)
      description: Fields of a mutable ACH payment batch, used to compose other schemas.
      x-apiture-fragment: true
      type: object
      properties:
        companyName:
          description: The name of the company associated with this ACH batch. This short form of the business name is included in the corresponding NACHA file which imposes a maximum length of 16 characters.
          type: string
          format: text
          maxLength: 16
        discretionaryData:
          description: Discretionary text data which is carried over to the settlement entry.
          type: string
          format: text
          maxLength: 20
        sameDay:
          description: The ACH payment should be processed on the same day, if enabled by the financial institution.
          type: boolean
          default: false
        sendRemittanceOnly:
          description: If `true`, send only the payment remittance information with this ACH payment. This property applies only if `secCode` is `ccd` or `ctx` and this batch is not an ACH (NACHA) import, and is otherwise ignored.
          type: boolean
          default: false
    newAchPaymentBatch:
      x-apiture-version: 1.2.0
      title: New ACH Payment Batch (v1.2.0)
      description: Properties to create new ACH payment batches.
      type: object
      required:
        - secCode
      allOf:
        - $ref: '#/components/schemas/confidentialAchCustomers'
        - $ref: '#/components/schemas/mutableAchPaymentBatchFields'
        - type: object
          properties:
            type:
              description: Optionally defines a specific type of ACH payment batch. Used for Vendor Credit batches.
              $ref: '#/components/schemas/achPaymentBatchType'
            secCode:
              description: The SEC code for these ACH payments. This is derived from `type`.
              allOf:
                - $ref: '#/components/schemas/paymentBatchAchSecCode'
      example:
        secCode: ppd
        sameDay: false
        discretionaryData: Payroll adjust 22-05
        companyName: Well's Roofing
        confidentialCustomers:
          - id: 64446f8d-780f
            name: Philip F. Duciary
          - id: 58853981-24bb
            name: Alice A. Tuary
    achPaymentBatchPatch:
      x-apiture-version: 1.2.0
      title: ACH Payment Batch Patch (v1.2.0)
      description: Patchable properties of ACH payment batches.
      type: object
      allOf:
        - $ref: '#/components/schemas/confidentialAchCustomers'
        - $ref: '#/components/schemas/mutableAchPaymentBatchFields'
      example:
        sameDay: false
        discretionaryData: Payroll adjust 22-05
    newPaymentBatch:
      x-apiture-version: 9.0.0
      title: New Payment Batch (v9.0.0)
      description: Representation used to create a new ACH payment batch. If the `name` is omitted, the service assigns a name based on the payment type. If `type` is `wireTransfer`, `direction` must be `credit`.
      required:
        - type
        - direction
        - customerId
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/commonPaymentBatchFields'
        - type: object
          properties:
            type:
              $ref: '#/components/schemas/paymentBatchType'
            ach:
              description: ACH-specific details of the payment batch. This object is **required** if `type` is `ach` and ignored otherwise.
              $ref: '#/components/schemas/newAchPaymentBatch'
            wireTransfer:
              description: The definition of a wire transfer batch. This object is **required** if `type` is `wireTransfer` and ignored otherwise.
              $ref: '#/components/schemas/newWireTransferPaymentBatch'
            schedule:
              description: The target date when the payment is due, and any recurrence.
              $ref: '#/components/schemas/newPaymentBatchSchedule'
            direction:
              description: The direction in which funds flow for this payment batch. This must be `credit` for wire transfers.
              allOf:
                - $ref: '#/components/schemas/paymentBatchDirection'
            customerId:
              description: 'The ID of the banking customer that this payment batch is for. This is typically a business customer ID. Note: This is not the login or access ID of the customer.'
              $ref: '#/components/schemas/resourceId'
            settlementAccount:
              description: The account where the payment funds are drawn or credited.
              $ref: '#/components/schemas/newPaymentSettlementAccountReference'
      examples:
        - type: ach
          direction: credit
          company:
            id: 123-56-7890
            type: taxId
          customerId: 4242923b-714e
          name: Payroll 03
          description: 2022-03 Employee Payroll
          ach:
            secCode: ppd
            sameDay: false
            discretionaryData: Payroll adjust 22-05
            imported: false
            companyName: Well's Roofing
          settlementAccount:
            id: 69464d06366ac48f2ef6
            maskedNumber: '*7890'
            label: Payroll Checking *7890
            risk: normal
          schedule:
            scheduledOn: '2022-05-01'
            frequency: monthlyFirstDay
        - type: ach
          direction: credit
          ach:
            secCode: ppd
          customerId: 4242923b-714e
    paymentBatchPatch:
      x-apiture-version: 7.0.0
      title: Payment Batch Patch Request (v7.0.0)
      description: Representation used to patch an existing ACH payment batch using the [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/paymentBatchFields'
        - type: object
          properties:
            ach:
              description: ACH-specific details for patching the payment batch. This object is only used if `type` is `ach`.
              $ref: '#/components/schemas/achPaymentBatchPatch'
            wireTransfer:
              description: Wire-specific details for patching the payment batch. This object is only used if `type` is `wireTransfer`.
              $ref: '#/components/schemas/wireTransferPaymentBatchPatch'
            nachaPassThrough:
              description: Wire-specific details for patching the payment batch. This object is only used if `type` is `nachaPassThrough`.
              $ref: '#/components/schemas/nachaPassThroughPaymentBatchPatch'
            schedule:
              description: The target date when the payment is due, and any recurrence.
              $ref: '#/components/schemas/paymentBatchSchedule'
            settlementAccount:
              description: The account where the payment funds are drawn or credited.
              $ref: '#/components/schemas/paymentSettlementAccountReferencePatch'
      example:
        company:
          id: 123-56-7890
          type: taxId
        name: Payroll 03
        description: 2022-03 Employee Payroll
        ach:
          sameDay: false
          discretionaryData: Payroll adjust 22-05
        settlementAccount:
          id: 69464d06366ac48f2ef6
          maskedNumber: '*7890'
          label: Payroll Checking *7890
        schedule:
          scheduledOn: '2022-05-01'
          frequency: monthlyFirstDay
          recurrenceType: fixed
    paymentBatchAllows:
      x-apiture-version: 5.0.0
      title: Payment Batch Allows (v5.0.0)
      description: Indicates what payment batch actions are allowed for the current customer, given the user's entitlements and the state of the payment batch.
      type: object
      required:
        - approve
        - edit
        - addInstructions
        - editInstructions
        - deleteInstructions
        - holdInstructions
        - submit
        - delete
        - unlock
        - reject
        - reverse
        - reverseInstructions
        - copy
      properties:
        approve:
          type: boolean
          description: The customer is allowed to approve the batch.
        edit:
          type: boolean
          description: The customer is allowed to edit the batch.
        addInstructions:
          type: boolean
          description: The customer is allowed to add individual payment batch instructions.
        editInstructions:
          type: boolean
          description: The customer is allowed to edit individual payment batch instructions.
        deleteInstructions:
          type: boolean
          description: The customer is allowed to delete individual payment batch instructions.
        holdInstructions:
          type: boolean
          description: The customer is allowed to set individual payment batch instructions to `hold`.
        submit:
          type: boolean
          description: The customer is allowed to submit batches for approval.
        reject:
          type: boolean
          description: The customer is allowed to reject the payment batch.
        reverse:
          type: boolean
          description: The customer is allowed to reverse the payment batch.
        reverseInstructions:
          type: boolean
          description: The financial institution allows item reversal and customer is allowed to reverse individual payment batch instructions.
        delete:
          type: boolean
          description: The customer is allowed to delete the batch.
        unlock:
          type: boolean
          description: The customer is allowed to unlock the payment batch for editing.
        copy:
          type: boolean
          description: The customer is allowed to copy the batch.
      example:
        approve: false
        edit: false
        addInstructions: false
        editInstructions: false
        deleteInstructions: false
        holdInstructions: false
        submit: true
        delete: false
        unlock: false
        reject: false
        reverse: false
        reverseInstructions: false
        copy: false
    paymentBatchSummaryFields:
      x-apiture-version: 1.2.0
      title: Payment Batch Summary Fields (v1.2.0)
      description: Payment batch summary fields.
      x-apiture-fragment: true
      type: object
      properties:
        direction:
          description: The direction in which funds flow for this payment batch.
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/paymentBatchDirection'
        creditTotal:
          description: The total of all the payment credit amounts in this batch's payment instructions, expressed as a decimal value. These amounts are credits to the remote accounts and a debit to the settlement account. The total omits instructions where `hold` is `true`.
          allOf:
            - $ref: '#/components/schemas/creditOrDebitValue'
          readOnly: true
          example: '2467.50'
        debitTotal:
          description: The total of all the payment debit amounts in this batch's payment instructions, expressed as a decimal value.  These amounts are debits to the remote accounts and a credit to the settlement account. The total omits instructions where `hold` is `true`.
          allOf:
            - $ref: '#/components/schemas/creditOrDebitValue'
          readOnly: true
          example: '0.00'
        creditCount:
          description: The number of all the credit instructions in this payment batch. The count omits instructions where `hold` is `true`.
          type: integer
          format: int32
          readOnly: true
          minimum: 0
          maximum: 10000
          example: 12
        debitCount:
          description: The number of all the debit instructions in this payment batch. The count omits instructions where `hold` is `true`.
          type: integer
          format: int32
          minimum: 0
          maximum: 10000
          readOnly: true
          example: 30
    paymentBatchCommonFields:
      x-apiture-version: 1.1.0
      title: Payment Batch Common Fields (v1.1.0)
      description: Common fields of payment batch objects, used to compose other schemas.
      x-apiture-fragment: true
      type: object
      properties:
        id:
          description: The unique identifier for this payment batch resource. This is an immutable opaque string.
          $ref: '#/components/schemas/readOnlyResourceId'
        trackingNumber:
          description: A unique tracking number for this batch. Unlike the `id`, this numeric value is visible to the customer, and can be used to lookup a batch by this ID.
          $ref: '#/components/schemas/paymentBatchTrackingNumber'
        fromSummary:
          description: A short summary string describing where the payment batch originates, such as a description of the settlement account for `credit` payments, or for `debit` payments, a description of the draft account (if only one) or the number of payees.
          type: string
          format: text
          maxLength: 80
          readOnly: true
        toSummary:
          description: A short summary string describing where the funds are credited, such as a description of the settlement account for `debit` payments, or for `credit` payments, a description of the payee (if only one) or the number of payees.
          type: string
          format: text
          maxLength: 80
          readOnly: true
        state:
          description: The state of this payment batch.
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/paymentBatchState'
        reasonCode:
          description: The reason code associated with the payment batch state.
          readOnly: true
          allOf:
            - $ref: '#/components/schemas/paymentBatchReasonCode'
        stateReason:
          description: The `reason` given when someone rejected the batch, reversed the batch, or removed approvals. This string is only present if a `reason` was given and the `state` has not changed since the reason was given.
          type: string
          format: text
          maxLength: 80
          readOnly: true
        customerId:
          description: 'The ID of the banking customer that this payment batch is for. This is typically a business customer ID. Note: This is not the login or access ID of the customer.'
          readOnly: true
          $ref: '#/components/schemas/readOnlyResourceId'
        information:
          description: A text string with additional information about the status of the batch.
          type: string
          format: text
          maxLength: 100
          readOnly: true
        remainingApprovalsCount:
          description: The number of the remaining approvals that are required before the batch can be scheduled. This property only applies if the `state` of the payment batch is `pendingApproval`.
          type: integer
          format: int32
          minimum: 0
          maximum: 3
          readOnly: true
        approvalCount:
          description: The number of approvals given for the batch.
          type: integer
          format: int32
          minimum: 0
          maximum: 3
          readOnly: true
          x-apiture-note: The maximum here must match the maxItems in paymentBatch.approvals array
        derivedFrom:
          readOnly: true
          description: If this batch was copied from another, this object describes that source payment batch. This field is only present when the payment batch was created via the [copy operation](#op-copyPaymentBatch).
          $ref: '#/components/schemas/paymentBatchDerivation'
        createdBy:
          description: The customer who created this payment batch.
          $ref: '#/components/schemas/customerAccountReference'
        updatedBy:
          description: The customer who last updated this payment batch.
          $ref: '#/components/schemas/customerAccountReference'
    wireTransferTemplateReference:
      x-apiture-version: 1.0.1
      title: Wire Transfer Template Reference (v1.0.1)
      description: A reference to a wire transfer template.
      required:
        - id
        - name
      allOf:
        - $ref: '#/components/schemas/paymentBatchTemplateReferenceFields'
      example:
        id: 0d5b4d7b0219071a8412
        name: Insurance Premiums
    abstractPaymentBatchItem:
      x-apiture-version: 2.0.1
      title: Abstract Payment Batch Item (v2.0.1)
      description: Abstract base schema for other Payment Batch Item schemas.
      required:
        - id
        - state
        - allows
        - trackingNumber
        - remainingApprovalsCount
        - approvalCount
        - customerId
        - createdAt
        - updatedAt
        - createdBy
        - updatedBy
      allOf:
        - $ref: '#/components/schemas/paymentBatchCommonFields'
        - $ref: '#/components/schemas/paymentBatchFields'
        - $ref: '#/components/schemas/timestampFields'
        - type: object
          properties:
            allows:
              $ref: '#/components/schemas/paymentBatchAllows'
      example:
        id: 0399abed-fd3d
        name: Payroll 03
        description: 2022-03 Employee Payroll
        customerId: ced23bc4125dcfadf27f
        state: pendingApproval
        toSummary: 47 payees
        fromSummary: Payroll Checking *7890
        trackingNumber: '15474162'
        remainingApprovalsCount: 0
        approvalCount: 0
        information: You have missed the cutoff time. Please re-schedule.
        settlementType: detailed
        settlementAccount:
          label: Payroll Checking *7890
          maskedNumber: '*1008'
          id: bf23bc970-91e8
          risk: normal
        schedule:
          scheduledOn: '2022-05-01'
          effectiveOn: '2022-04-30'
          frequency: monthly
        allows:
          approve: false
          edit: true
          addInstructions: false
          editInstructions: true
          deleteInstructions: false
          holdInstructions: true
          submit: false
          delete: false
          unlock: false
          reject: false
          reverse: false
          reverseInstructions: false
          copy: true
        createdAt: '2022-04-28T07:48:20.375Z'
        updatedAt: '2022-04-28T07:48:49.375Z'
        createdBy:
          id: 0399abed-fd3d
          name: Benny Billings
          username: bbillings
        updatedBy:
          id: 0399abed-fd3d
          name: Benny Billings
          username: bbillings
    abstractAchPaymentBatchItem:
      x-apiture-version: 2.0.1
      title: Abstract ACH Payment Batch Item (v2.0.1)
      description: Abstract base schema for ACH payment batch items.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractPaymentBatchItem'
        - $ref: '#/components/schemas/paymentBatchSummaryFields'
      required:
        - direction
        - creditTotal
        - debitTotal
        - creditCount
        - debitCount
      example:
        id: 0399abed-fd3d
        direction: credit
        creditTotal: '2467.50'
        debitTotal: '0.00'
        creditCount: 12
        debitCount: 30
    paymentBatchItem:
      x-apiture-version: 16.0.0
      title: Payment Batch Item (v16.0.0)
      description: Summary representation of a payment batch resource in payment batches collections.
      allOf:
        - $ref: '#/components/schemas/abstractAchPaymentBatchItem'
        - type: object
          required:
            - type
          properties:
            type:
              $ref: '#/components/schemas/paymentBatchType'
            ach:
              description: ACH-specific details of the payment batch. This object is present if and only if the batch's `type` is `ach`.
              readOnly: true
              allOf:
                - $ref: '#/components/schemas/achPaymentBatch'
            wireTransfer:
              description: Wire-specific details of the payment batch. This object is present if and only if the batch's `type` is `wireTransfer`.
              $ref: '#/components/schemas/wireTransferPaymentBatch'
            nachaPassThrough:
              description: ACH-specific details of the NACHA pass-through payment batch. This object is present if and only if the batch's `type` is `nachaPassThrough`.
              readOnly: true
              allOf:
                - $ref: '#/components/schemas/nachaPassThroughPaymentBatch'
      example:
        id: 0399abed-fd3d
        type: ach
        state: pendingApproval
        toSummary: 12 payees
        fromSummary: Payroll Checking *7890
        direction: credit
        customerId: d1b95731fb029fec062c
        ach:
          secCode: ppd
          companyName: Well's Roofing
          imported: false
          sameDay: false
          confidentialCustomers:
            - id: 64446f8d-780f
              name: Philip F. Duciary
            - id: 58853981-24bb
              name: Alice A. Tuary
          approvalDueAt: '2022-06-09T20:30:00.000Z'
          sameDayApprovalDue:
            - '2022-06-09T15:00:00.000Z'
            - '2022-06-09T18:00:00.000Z'
            - '2022-06-09T20:30:00.000Z'
        trackingNumber: '15474162'
        remainingApprovalsCount: 2
        approvalCount: 1
        creditTotal: '2640.60'
        debitTotal: '0.00'
        creditCount: 12
        debitCount: 30
        settlementAccount:
          label: Payroll Checking *7890
          maskedNumber: '*7890'
          id: bf23bc970-91e8
          risk: normal
        schedule:
          scheduledOn: '2022-05-01'
          effectiveOn: '2022-04-30'
        allows:
          approve: false
          edit: true
          addInstructions: false
          editInstructions: true
          deleteInstructions: false
          holdInstructions: true
          submit: true
          delete: false
          unlock: false
          reject: false
          reverse: false
          reverseInstructions: false
          copy: true
        createdAt: '2022-04-28T07:48:20.375Z'
        updatedAt: '2022-04-28T07:48:49.375Z'
        createdBy:
          id: 0399abed-fd3d
          name: Benny Billings
          username: bbillings
        updatedBy:
          id: 0399abed-fd3d
          name: Benny Billings
          username: bbillings
    paymentBatchExportProblem:
      x-apiture-version: 1.1.0
      title: Payment Export Problem (v1.1.0)
      description: Describes a problem with a payment batch or payment instruction that was exported to a NACHA ACH file or tab-separated values file.
      type: object
      allOf:
        - $ref: '#/components/schemas/paymentProblem'
        - type: object
          required:
            - paymentBatchId
            - trackingNumber
          properties:
            paymentBatchId:
              description: The `id` of an exported payment batch in which this problem exists.
              $ref: '#/components/schemas/readOnlyResourceId'
            trackingNumber:
              description: The tracking number of an exported payment batch in which this problem exists.
              $ref: '#/components/schemas/paymentBatchTrackingNumber'
            instructionId:
              description: The `id` of an exported payment instruction in which this problem exists.
              $ref: '#/components/schemas/readOnlyResourceId'
      example:
        paymentBatchId: 2ab6dc71-1856
        trackingNumber: '15474162'
        type: https://static.api.apiture.com/errors/pastCutoffTime/v1.0.0
        title: Past cutoff time
        detail: The current time is past the financial institution's cutoff time.
        attributes:
          referencedAt: 2022-07-13T020:52:19.375Z
          cutoffAt: '2022-07-13T10:00:00.000Z'
    wireTransferInstructionMemo:
      title: Wire Transfer Instruction Memo (v1.0.0)
      description: The memo instruction associated with the wire transfer payment.
      type: string
      format: text
      maxLength: 140
      example: Payment for purchase order A113
      x-apiture-version: 1.0.0
    paymentProblem:
      x-apiture-version: 1.1.0
      title: Payment Problem (v1.1.0)
      description: Describes a problem with a payment batch or payment instruction that prevents applying an operation change to the batch. Clients should get the most recent revision of the payment batch and its instructions to check for problems.
      type: object
      required:
        - type
        - title
        - detail
      properties:
        type:
          type: string
          format: uri-reference
          maxLength: 2048
          description: |
            A [URI reference (RFC3986)](https://tools.ietf.org/html/rfc3986) that identifies the problem type. This is the URL of human-readable HTML documentation for the problem type.
          example: https://static.api.apiture.com/errors/pastCutoffTime/v1.0.0
        title:
          type: string
          description: A short, human-readable summary of the problem type. The title is usually the same for all problem with the same `type`.
          maxLength: 120
          format: text
          example: Past cutoff time
        detail:
          type: string
          description: A human-readable explanation specific to this occurrence of the problem.
          maxLength: 256
          format: text
          example: The current time is past the financial institution's cutoff time.
        attributes:
          type: object
          description: Additional optional attributes related to the problem. This data conforms to the schema associated with the error type.
      example:
        type: https://static.api.apiture.com/errors/pastCutoffTime/v1.0.0
        title: Past cutoff time
        detail: The current time is past the financial institution's cutoff time.
        attributes:
          referencedAt: 2022-07-13T020:52:19.375Z
          cutoffAt: '2022-07-13T10:00:00.000Z'
    paymentBatchExportFormats:
      title: Payment Batch Export Formats (v1.0.0)
      description: |+
        Indicates which file format to create: either `ach` for a [NACHA ACH file](https://achdevguide.nacha.org/ach-file-overview) file, or `tabSeparated` for a tab-separated values file, or `tabSeparatedWithHeaders` for a tab-separated values file with an initial header row. The [`paymentBatchAchExport`](#schema-paymentBatchAchExport) schema defines the columns and headers.

        <strong><code>paymentBatchExportFormats</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>ach</code></strong></td><td>NACHA ACH file</td>
            </tr>
        <tr>
            <td><strong><code>tabSeparated</code></strong></td><td>Tab-separated file without a header row</td>
            </tr>
        <tr>
            <td><strong><code>tabSeparatedWithHeaders</code></strong></td><td>Tab-separated file with a header row</td>
            </tr>
        </table>

      type: string
      x-apiture-enum: paymentBatchExportFormats
      enum:
        - ach
        - tabSeparated
        - tabSeparatedWithHeaders
      x-apiture-version: 1.0.0
    paymentBatchAchExportRequest:
      x-apiture-version: 2.2.0
      title: Payment Batch ACH Export Request (v2.2.0)
      description: The request data for exporting one or more payment batches as a [NACHA ACH file](https://achdevguide.nacha.org/ach-file-overview) file or as a tab-separated values (TSV) file. The columns in the TSV file are described in the [`paymentBatchAchExport`](#schema-paymentBatchAchExport) response schema.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - paymentBatchIds
            - includeHolds
            - includePrenoteColumn
            - format
          properties:
            format:
              $ref: '#/components/schemas/paymentBatchExportFormats'
            paymentBatchIds:
              description: An array of payment batches to export. The values are the `id` values of the batches, not the tracking IDs. This array is limited to one batch ID if the `format` is a tab-separated file.
              type: array
              minItems: 1
              maxItems: 1000
              items:
                description: The `id` of a payment batch to be exported.
                $ref: '#/components/schemas/readOnlyResourceId'
            includeHolds:
              description: If `true`, include instructions whose `hold` value is `true`; if `false`, omit those from the exported file.
              type: boolean
            includePrenoteColumn:
              description: If `true`, include a `Prenote` column in the tab-separated values data. This property is ignored if `format` is `ach`.
              type: boolean
            includeBatchNameColumn:
              description: If `true`, include a `Batch Name` column in the tab-separated values data. This property is ignored if `format` is `ach`.
              type: boolean
              default: false
            includeTrackingNumberColumn:
              description: 'If `true`, include a `Tracking #` column in the tab-separated values data. This property is ignored if `format` is `ach`.'
              type: boolean
              default: false
      example:
        paymentBatchIds:
          - f84547a1-37f0
          - 8102d76af3d6-afe3
          - 699c5803-b607
          - d88a1e1e017c-94d5
        includeHolds: true
        includePrenoteColumn: false
        includeBatchNameColumn: true
        includeTrackingNumberColumn: true
        format: ach
    paymentContactsExportRequest:
      title: Payment Contacts Export Request (v1.0.0)
      description: The request data for exporting one or more payment contacts as a comma-separated values file.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - paymentContactIds
          properties:
            paymentContactIds:
              description: The array items are the `id` values of the payment contact resources, not the `contactIdentification` string.
              type: array
              minItems: 1
              maxItems: 9999
              items:
                description: The `id` of a payment contact to be exported.
                $ref: '#/components/schemas/resourceId'
      example:
        paymentContactIds:
          - f84547a1-37f0
          - 8102d76af3d6-afe3
          - 699c5803-b607
          - d88a1e1e017c-94d5
      x-apiture-version: 1.0.0
    paymentBatchAchExport:
      x-apiture-version: 2.2.1
      title: Payment Batch ACH Export (v2.2.1)
      description: |-
        Result of exporting one or more payment batches as a [NACHA ACH file](https://achdevguide.nacha.org/ach-file-overview) or as a tab-separated values (TSV) file. For TSV files, the content has these columns:
        <table> <tr><th> Column Heading      </th><th> Description </th></tr> <tr><td> Name                </td><td> The name for this payment instruction payee/payer                                       </td></tr> <tr><td> Contact ID          </td><td> The optional identifier used to differentiate between customers, such as an employee ID </td></tr> <tr><td> Account Number      </td><td> The account number for this instructions' payee/payer                                   </td></tr> <tr><td> Account Type        </td><td> The ACH account type                                                                    </td></tr> <tr><td> Routing Number      </td><td> The ACH account routing and transit number                                              </td></tr> <tr><td> Amount              </td><td> The amount of the payment                                                               </td></tr> <tr><td> Description/Addenda </td><td> Payment instruction description or addenda text                                         </td></tr> <tr><td> Debits/Credits      </td><td> <code>C</code> if this is a credit; <code>D</code> if this is a debit                   </td></tr> <tr><td> Hold                </td><td> <code>Yes</code> if there is a hold on this instruction, <code>No</code> if not         </td></tr> <tr><td> Prenote             </td><td> <code>Yes</code> if a prenote was submitted for this ACH account,
                                               <code>No</code> if not. <strong>Note</strong>:
                                               This column is only included if <code>includePrenoteColumn</code>
                                               is <code>true</code> in the request.                                                    </td></tr>
        <tr><td> Batch Name          </td><td> The name of the payment batch. <strong>Note</strong>:
                                               This column is only included if <code>includeBatchNameColumn</code>
                                               is <code>true</code> in the request.                                                    </td></tr>
        <tr><td> Tracking #          </td><td> The  tracking number of the payment batch. <strong>Note</strong>:
                                               This column is only included if <code>includeTrackingNumberColumn</code>
                                               is <code>true</code> in the request.                                                    </td></tr>
        </table>
      type: object
      allOf:
        - $ref: '#/components/schemas/paymentBatchAchExportRequest'
        - type: object
          required:
            - content
          properties:
            content:
              description: The [Base64-encoded](https://en.wikipedia.org/wiki/Base64) content of the single NACHA ACH file, or the tab-separated values (TSV) formatted list of ACH batches and instructions.
              type: string
              format: byte
              contentEncoding: base64
              maxLength: 2500000
            problems:
              description: A list of problems that exist in the selected payment batches.
              type: array
              maxItems: 1000
              items:
                $ref: '#/components/schemas/paymentBatchExportProblem'
      example:
        paymentBatchIds:
          - f84547a1-37f0
          - 8102d76af3d6-afe3
          - 699c5803-b607
          - d88a1e1e017c-94d5
        includeHolds: true
        includePrenoteColumn: false
        format: ach
        content: Li4uIHRleHQgY29udGVudCBub3QgaW5jbHVkZWQgaGVyZSAuLi4=
        problems: []
    paymentContactsExport:
      x-apiture-version: 3.0.1
      title: Payment Contacts Export (v3.0.1)
      description: |-
        Result of exporting one or more payment contacts as a comma-separated values (CSV) file. The CSV content is sorted by ascending Name and has these columns in order:
        <table> <tr><th> Column Heading      </th><th> Description </th></tr> <tr><td> Name                </td><td> The name for this payment contact                                                       </td></tr> <tr><td> ID                  </td><td> The optional identifier used to differentiate between customers, such as an employee ID </td></tr> <tr><td> Account Type        </td><td> The type of the account                                                                 </td></tr> <tr><td> Account Number      </td><td> The full, unmasked account number for this contact                                      </td></tr> <tr><td> R&amp;T Number      </td><td> The routing and transit number for the payment method                                   </td></tr> <tr><td> Contact Type        </td><td> The contact type (<code>individual</code> or <code>business</code>)                     </td></tr> <tr><td> Payment Type        </td><td> Describes the type of the payment (<code>ach</code> or <code>wireTransfer</code>)       </td></tr> <tr><td> Status              </td><td> Indicates whether the contact is active or not                                          </td></tr> </table>
      type: object
      allOf:
        - $ref: '#/components/schemas/paymentContactsExportRequest'
        - type: object
          required:
            - content
          properties:
            content:
              description: The [Base64-encoded](https://en.wikipedia.org/wiki/Base64) content of the comma-separated values (CSV) formatted list of payment contacts and their associated payment methods. There is one row for each of the contact's payment methods.
              type: string
              format: byte
              contentEncoding: base64
              maxLength: 2500000
      example:
        paymentContactIds:
          - f84547a1-37f0
          - 8102d76af3d6-afe3
          - 699c5803-b607
          - d88a1e1e017c-94d5
        content: Li4uIENTViBjb250ZW50IG5vdCBpbmNsdWRlZCBoZXJlIC4uLg==
    paymentContactsCsvExport:
      x-apiture-version: 3.0.0
      description: The comma-separated values (CSV) formatted list of payment contacts and their associated payment methods. There is one row for each of the contact's payment methods. The columns are defined in the [`paymentContactsExport`](#schema-paymentContactsExport) schema.
      type: string
      maxLength: 2500000
      format: binary
      example: Name,ID,Account Type,Account Number,R&T Number,Contact Type,Payment Type,Status John Doe,,checking,123123123,123456789,individual,ach,active
      title: ' (v3.0.0)'
    paymentContactsImport:
      x-apiture-version: 2.1.1
      title: Payment Contacts Import (v2.1.1)
      description: |-
        A request to import a comma-separated values (CSV) or tab-separated values (TSV) list of payment contacts and associated payment methods.

        For CSV and TSV files, the `content` has these seven columns.
        <table> <tr><th> Column Heading      </th><th> Description                                                                             </th></tr> <tr><td> Name                </td><td> The name for this payment contact.
                                               The column name `Customer Name` is also accepted.                                       </td></tr>
        <tr><td> ID                  </td><td> The optional identifier used to differentiate between customers, such as an employee ID.
                                               The column name `Contact ID` is also accepted.                                          </td></tr>
        <tr><td> Contact Type        </td><td> The contact type (<code>individual</code> or <code>business</code>)                     </td></tr> <tr><td> Account Type        </td><td> The type of the account &dagger;                                                        </td></tr> <tr><td> Account Number      </td><td> The full, unmasked account number for this contact                                      </td></tr> <tr><td> R&amp;T Number      </td><td> The routing and transit number for the payment method.
                                               The column name `Routing Number` is also accepted.                                      </td></tr>
        <tr><td> Payment Type        </td><td> Describes the type of the payment (<code>ach</code> or <code>wireTransfer</code>)       </td></tr> </table>

        If the file contains column headers in the first row, the columns may be in any order. Column header case is ignored, as is leading/trailing whitespace. All columns must be present. Additional columns which do not match these headers are ignored.

        If no headers are present, the first seven columns must be present and must be in this order.

        Imported payment methods are not added to existing contacts.

        A contact may be imported with multiple payment methods. When there are multiple payment methods, contact details are not included on subsequent lines. Multiple payment methods with the same `Payment Type` type are allowed.

        &dagger; Allowed case-insensitive values for `Account Type` values are:

          * `checking`, `check`, `D`, `DDA` for checking accounts
          * `loan`, `L`, `LN`, `LON`, for loan accounts
          * `savings`, `S`, `SAV`, `SSA` for  savings accounts
          * `generalLedger`, `GL` for general ledger accounts

        (Some natural language variations are also accepted.)
      required:
        - content
        - contentType
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            content:
              description: The [Base64-encoded](https://en.wikipedia.org/wiki/Base64) content of the comma-separated values (CSV) or tab-separated values (TSV) formatted list of payment contacts and their associated payment methods. There is one row for each of the contact's payment methods.
              type: string
              format: byte
              contentEncoding: base64
              maxLength: 2500000
            contentType:
              $ref: '#/components/schemas/paymentContactImportContentType'
      example:
        content: VGhlIEJhc2U2NCBlbmNvZGVkIENTViBjb250ZW50
        contentType: text/csv
    importedPaymentContactItem:
      x-apiture-version: 7.0.0
      title: Imported Payment Contact Item (v7.0.0)
      description: |-
        Represents the result from attempting to import payment contacts and their payment methods from a file. This can be either:

          * `state: imported`: the `paymentContact` object successfully imported.
          * `state: failed`: the `failures` array which summarizes errors that
            occurred in an array of `problems`.
          * `state: processing`: the system is still processing the file contents.
            The system communicates the result of the import to the customer when
            processing is finished.
      type: object
      required:
        - state
      properties:
        failures:
          description: If the corresponding row of the file could not be processed, this object summarizes the section the problems/errors found. This object is present only if `state` is `failed`. See the 201 error response on the [`importPaymentContacts`](#op-importPaymentContacts) operation for a list of possible errors.
          type: array
          maxItems: 1000
          items:
            $ref: '#/components/schemas/apiProblem'
        paymentContact:
          description: If the corresponding row of the file could be processed successfully, this is the resulting payment contact and payment methods. This object is present only if `state` is `imported`. See the 201 error response on the [`importPaymentContacts`](#op-importPaymentContacts) operation for a list of possible errors.
          $ref: '#/components/schemas/paymentContact'
        state:
          description: The import state of the payment contact item.
          $ref: '#/components/schemas/importState'
    importedPaymentContacts:
      x-apiture-version: 7.0.0
      title: Imported Payment Contacts (v7.0.0)
      description: Collection of imported payment contacts. The items in the collection are ordered in the `items` array and correspond 1-to-1 with the record lines in the import content.
      required:
        - items
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            items:
              description: An array containing payment contact items.
              type: array
              maxItems: 10000
              items:
                $ref: '#/components/schemas/importedPaymentContactItem'
    paymentContactImportContentType:
      title: Payment Contact Import Content Type (v1.0.0)
      description: The media type of a payment contact import file.
      type: string
      enum:
        - text/csv
        - text/tsv
      x-apiture-version: 1.0.0
    paymentBatch:
      x-apiture-version: 17.0.0
      title: Payment Batch (v17.0.0)
      description: Representation of a payment batch resource.
      allOf:
        - $ref: '#/components/schemas/paymentBatchItem'
        - type: object
          properties:
            approvers:
              description: An array of customers that are entitled to approve the containing payment batch. This may also be an empty array if the settlement account is not yet set.
              type: array
              readOnly: true
              minItems: 0
              maxItems: 8
              items:
                $ref: '#/components/schemas/paymentBatchApprover'
            approvals:
              description: An array of approvals. A `null` item indicates a required approval is still pending. The length of this array indicates how many approvals are needed before this payment batch may be actively scheduled for processing. This may also be an empty array if the settlement account is not yet set.
              readOnly: true
              type: array
              minItems: 0
              maxItems: 3
              x-apiture-note: The maxItems here must match the maximum in paymentBatchItem.approvalCount
              items:
                $ref: '#/components/schemas/paymentBatchApproval'
            problems:
              description: A list of problems that prevent approving the payment batch.
              x-description: |-
                The problem [type names](#error-types) can include:
                  * [`pastCutoffTime`](#err-pastCutoffTime)
                  * [`missingSettlementAccount`](#err-missingSettlementAccount)
                  * [`missingSchedule`](#err-missingSchedule)
                  * [`missingCompany`](#err-missingCompany)
                  * [`exceedsLimits`](#err-exceedsLimits)
                  * [`exceedsRisks`](#err-exceedsRisks)
                  * [`missingInstructions`](#err-missingInstructions)
                  * [`invalidInstructions`](#err-invalidInstructions)
                  * [`currencyQuoteExpired`](#err-currencyQuoteExpired)
              type: array
              maxItems: 1000
              items:
                $ref: '#/components/schemas/paymentProblem'
          required:
            - approvals
            - approvers
            - createdAt
            - updatedAt
            - createdBy
            - updatedBy
      example:
        id: 0399abed-fd3d
        type: ach
        name: Payroll 03
        description: 2022-03 Employee Payroll
        state: pendingApproval
        toSummary: 12 payees
        fromSummary: Payroll Checking *7890
        creditTotal: '2467.50'
        debitTotal: '0.00'
        creditCount: 12
        debitCount: 30
        trackingNumber: '15474162'
        information: You have missed the cutoff time. Please re-schedule.
        approvers:
          - name: Tom Allison
            id: 327d8bea-2553
            identification: to...58@wellsroofing.com
          - name: Silvia Wilkenson
            id: 06cf8996-d093
            identification: si...42@wellsroofing.com
        approvals:
          - name: Tom Allison
            id: 327d8bea-2553
            identification: si...42@wellsroofing.com
            approvedAt: '2022-04-25T09:02:57.375Z'
          - null
        remainingApprovalsCount: 1
        approvalCount: 1
        ach:
          secCode: ppd
          companyName: Well's Roofing
          imported: false
          sameDay: false
          confidentialCustomers:
            - id: 64446f8d-780f
              name: Philip F. Duciary
            - id: 58853981-24bb
              name: Alice A. Tuary
          approvalDueAt: '2022-06-09T20:30:00.000Z'
          sameDayApprovalDue:
            - '2022-06-09T15:00:00.000Z'
            - '2022-06-09T18:00:00.000Z'
            - '2022-06-09T20:30:00.000Z'
        direction: credit
        settlementType: detailed
        settlementAccount:
          label: Payroll Checking *7890
          maskedNumber: '*7890'
          id: bf23bc970-91e8
          risk: normal
        company:
          id: 123-56-7890
          type: taxId
        customerId: 4242923b-714e
        schedule:
          scheduledOn: '2022-05-01'
          effectiveOn: '2022-04-30'
          frequency: monthly
        createdAt: '2022-04-28T07:48:20.375Z'
        updatedAt: '2022-04-28T07:48:49.375Z'
        createdBy:
          id: 0399abed-fd3d
          name: Benny Billings
          username: bbillings
        updatedBy:
          id: 0399abed-fd3d
          name: Benny Billings
          username: bbillings
        allows:
          approve: false
          edit: true
          addInstructions: false
          editInstructions: true
          deleteInstructions: false
          holdInstructions: true
          delete: false
          unlock: false
          reject: false
          reverse: false
          reverseInstructions: false
          copy: true
        problems: []
    importedAchPaymentBatches:
      x-apiture-version: 16.0.0
      title: Imported ACH Payment Batches (v16.0.0)
      description: |-
        The result from importing a [NACHA ACH file](https://achdevguide.nacha.org/ach-file-overview) as one or more new payment batches. The response is an array for each section of the input file, based on SEC code and direction.

        If a section is imported, the item's `paymentBatch` is the new batch.

        If a section contains errors and no payment batch can be created for it, the item's `failure` lists the `problems` with that section of the ACH file.

        Otherwise, if the NACHA ACH file import is still processing, the section may have a state of `processing`.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: An array containing the payment batch items.
              type: array
              maxItems: 1000
              items:
                $ref: '#/components/schemas/importedAchPaymentBatchItem'
      example:
        items:
          - state: imported
            paymentBatch:
              id: 0399abed-fd3d
              type: ach
              name: Payroll 03
              description: 2022-03 Employee Payroll
              state: pendingApproval
              customerId: c11c0e7d00f29d1d0d4f
              toSummary: 47 payees
              fromSummary: Payroll Checking *7890
              creditTotal: '2467.50'
              debitTotal: '0.00'
              creditCount: 12
              debitCount: 30
              trackingNumber: '15474162'
              remainingApprovalsCount: 0
              direction: credit
              approvalCount: 0
              approvers: []
              information: You have missed the cutoff time. Please re-schedule.
              ach:
                secCode: ppd
                imported: false
                direction: credit
                sameDay: false
                companyName: Well's Roofing
                confidentialCustomers:
                  - id: 64446f8d-780f
                    name: Philip F. Duciary
                  - id: 58853981-24bb
                    name: Alice A. Tuary
                approvalDueAt: '2022-06-09T20:30:00.000Z'
                sameDayApprovalDue:
                  - '2022-06-09T15:00:00.000Z'
                  - '2022-06-09T18:00:00.000Z'
                  - '2022-06-09T20:30:00.000Z'
              settlementType: detailed
              settlementAccount:
                label: Payroll Checking *7890
                maskedNumber: '*1008'
                id: bf23bc970-91e8
                risk: normal
              schedule:
                scheduledOn: '2022-05-01'
                effectiveOn: '2022-04-30'
                frequency: monthly
              approvals: []
              allows:
                approve: false
                edit: true
                addInstructions: true
                editInstructions: true
                deleteInstructions: true
                holdInstructions: true
                delete: false
                unlock: false
                reject: false
                reverse: false
                reverseInstructions: false
                submit: false
                copy: true
              createdAt: '2022-04-28T07:48:20.375Z'
              updatedAt: '2022-04-28T07:48:49.375Z'
              createdBy:
                id: 0399abed-fd3d
                name: Benny Billings
                username: bbillings
              updatedBy:
                id: 0399abed-fd3d
                name: Benny Billings
                username: bbillings
          - state: failed
            failure:
              - companyName: Inland Transport
                secCode: ppd
                direction: debit
                creditTotal: '2400.00'
                debitTotal: '1375.00'
                creditCount: 8
                debitCount: 10
                problems:
                  - type: https://static.api.apiture.com/errors/forbidden/v1.0.0
                    title: Forbidden
                    detail: Responsible customer 'Benny Billings' (bbillings) does not have 'Create PPD' privilege(s) over customer 'Inland Transport' (inland-transport)
                    attributes:
                      responsibleCustomerName: Benny Billings
                      responsibleCustomerUsername: bbillings
                      customerName: Inland Transport
                      customerUsername: inland-transport
    paymentBatchAchImportFailure:
      x-apiture-version: 1.2.0
      title: Payment Batch ACH Import Failure (v1.2.0)
      description: Describes the failed import of a section of a NACHA ACH file import.
      type: object
      required:
        - secCode
        - direction
        - companyName
        - problems
        - creditTotal
        - debitTotal
        - creditCount
        - debitCount
      allOf:
        - $ref: '#/components/schemas/paymentBatchSummaryFields'
        - type: object
          properties:
            secCode:
              description: The SEC code for this ACH batch.
              readOnly: true
              allOf:
                - $ref: '#/components/schemas/paymentBatchAchSecCode'
            companyName:
              description: The name of the company associated with this ACH batch. This short form of the business name is included in the corresponding NACHA file which imposes a maximum length of 16 characters.
              type: string
              format: text
              maxLength: 16
            problems:
              description: If the corresponding section of the NACHA ACH file could not be processed, this object summaries the section the problems/errors found. See the 200 error response on the [`importAch`](#op-importAch) operation for a list of possible errors.
              type: array
              maxItems: 1000
              items:
                $ref: '#/components/schemas/paymentProblem'
      example:
        companyName: Inland Transport
        secCode: ppd
        direction: debit
        creditTotal: '2400.00'
        debitTotal: '1375.00'
        creditCount: 8
        debitCount: 10
        problems:
          - type: https://static.api.apiture.com/errors/unprivilegedAchOperation/v1.0.0
            title: Unprivileged ACH operation
            detail: Responsible customer 'Benny Billings' (bbillings) does not have 'Create PPD' privilege(s) over customer 'Inland Transport' (inland-transport)
            attributes:
              responsibleCustomerName: Benny Billings
              responsibleCustomerUsername: bbillings
              customerName: Inland Transport
              customerUsername: inland-transport
    importedAchPaymentBatchItem:
      x-apiture-version: 16.0.0
      title: Imported ACH Payment Batch Item (v16.0.0)
      description: |-
        Represents the result from attempting to import a payment batch from a NACHA ACH file. This can be either:

          * `state: imported`: the `paymentBatch` object successfully imported from a section of a NACHA ACH file,
          * `state: failed`: the `failure` object which summarizes the section of the NACHA ACH file
            an array of `problems` with that section.
          * `state: processing` if the system is still processing the ACH file contents.
            The system communicates the result of the import to the customer.
      type: object
      required:
        - state
      properties:
        failure:
          description: If the corresponding section of the NACHA ACH file could not be processed, this object summarizes the section the problems/errors found. This object is present only if `state` is `failed`. See the 200 error response on the [`importAch`](#op-importAch) operation for a list of possible errors.
          x-apiture-todo: rename as `failures`
          type: array
          maxItems: 1000
          items:
            $ref: '#/components/schemas/paymentBatchAchImportFailure'
        paymentBatch:
          description: If the corresponding section of the NACHA ACH file could be processed successfully, this is the resulting payment batch. Note that the batch may also have some `problems` which prevent it from being approved, such as being past the cutoff time. This object is present only if `state` is `imported`. See the 200 error response on the [`importAch`](#op-importAch) operation for a list of possible errors.
          $ref: '#/components/schemas/paymentBatch'
        state:
          description: The state of this imported item
          $ref: '#/components/schemas/importState'
      examples:
        - state: failed
          failure:
            companyName: Inland Transport
            secCode: ppd
            direction: debit
            creditTotal: '2400.00'
            debitTotal: '1375.00'
            creditCount: 8
            debitCount: 10
            problems:
              - type: https://static.api.apiture.com/errors/unprivilegedAchOperation/v1.0.0
                title: Unprivileged ACH operation
                detail: Responsible customer 'Benny Billings' (bbillings) does not have 'Create PPD' privilege(s) over customer 'Inland Transport' (inland-transport)
                attributes:
                  responsibleCustomerName: Benny Billings
                  responsibleCustomerUsername: bbillings
                  customerName: Inland Transport
                  customerUsername: inland-transport
        - state: imported
          paymentBatch:
            id: 0399abed-fd3d
            type: ach
            name: Payroll 03
            description: 2022-03 Employee Payroll
            state: pendingApproval
            toSummary: 47 payees
            fromSummary: Payroll Checking *7890
            creditTotal: '2467.50'
            debitTotal: '0.00'
            creditCount: 12
            debitCount: 30
            trackingNumber: '15474162'
            remainingApprovalsCount: 0
            approvalCount: 0
            information: You have missed the cutoff time. Please re-schedule.
            ach:
              secCode: ppd
              imported: false
              direction: credit
              companyName: Well's Roofing
              confidentialCustomers:
                - id: 64446f8d-780f
                  name: Philip F. Duciary
                - id: 58853981-24bb
                  name: Alice A. Tuary
              approvalDueAt: '2022-06-09T20:30:00.000Z'
              sameDayApprovalDue:
                - '2022-06-09T15:00:00.000Z'
                - '2022-06-09T18:00:00.000Z'
                - '2022-06-09T20:30:00.000Z'
            settlementType: detailed
            settlementAccount:
              label: Payroll Checking *7890
              maskedNumber: '*1008'
              id: bf23bc970-91e8
              risk: normal
            schedule:
              scheduledOn: '2022-05-01'
              effectiveOn: '2022-04-30'
              frequency: monthly
            allows:
              approve: false
              edit: true
              addInstructions: true
              editInstructions: true
              deleteInstructions: true
              holdInstructions: true
              delete: false
              unlock: false
              reject: false
              reverse: false
              reverseInstructions: false
              copy: true
            createdAt: '2022-04-28T07:48:20.375Z'
            updatedAt: '2022-04-28T07:48:49.375Z'
            createdBy:
              id: 0399abed-fd3d
              name: Benny Billings
              username: bbillings
            updatedBy:
              id: 0399abed-fd3d
              name: Benny Billings
              username: bbillings
        - state: processing
        - state: processing
    businessAchBatchItem:
      x-apiture-version: 2.0.1
      title: Business ACH Batch Item (v2.0.1)
      description: A business ACH batch transfer within the collection of ACH batches.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractAchPaymentBatchItem'
        - type: object
          required:
            - ach
          properties:
            ach:
              description: ACH-specific details of the payment batch.
              readOnly: true
              allOf:
                - $ref: '#/components/schemas/achPaymentBatch'
      example:
        id: 0399abed-fd3d
        name: Payroll 03
        description: 2022-03 Employee Payroll
        customerId: ced23bc4125dcfadf27f
        state: pendingApproval
        toSummary: 47 payees
        fromSummary: Payroll Checking *7890
        creditTotal: '2467.50'
        debitTotal: '0.00'
        creditCount: 12
        debitCount: 30
        trackingNumber: '15474162'
        remainingApprovalsCount: 0
        approvalCount: 0
        direction: credit
        information: You have missed the cutoff time. Please re-schedule.
        ach:
          secCode: ppd
          imported: false
          direction: credit
          sameDay: false
          companyName: Well's Roofing
          confidentialCustomers:
            - id: 64446f8d-780f
              name: Philip F. Duciary
            - id: 58853981-24bb
              name: Alice A. Tuary
          approvalDueAt: '2022-06-09T20:30:00.000Z'
          sameDayApprovalDue:
            - '2022-06-09T15:00:00.000Z'
            - '2022-06-09T18:00:00.000Z'
            - '2022-06-09T20:30:00.000Z'
        settlementType: detailed
        settlementAccount:
          label: Payroll Checking *7890
          maskedNumber: '*1008'
          id: bf23bc970-91e8
          risk: normal
        schedule:
          scheduledOn: '2022-05-01'
          effectiveOn: '2022-04-30'
          frequency: monthly
        allows:
          approve: false
          edit: true
          addInstructions: true
          editInstructions: true
          deleteInstructions: true
          holdInstructions: true
          delete: false
          unlock: false
          reject: false
          reverse: false
          reverseInstructions: false
          submit: false
          copy: true
        createdAt: '2022-04-28T07:48:20.375Z'
        updatedAt: '2022-04-28T07:48:49.375Z'
        createdBy:
          id: 0399abed-fd3d
          name: Benny Billings
          username: bbillings
        updatedBy:
          id: 0399abed-fd3d
          name: Benny Billings
          username: bbillings
    businessAchBatches:
      x-apiture-version: 2.0.1
      title: Business ACH Batches (v2.0.1)
      description: A collection of business ACH batch business transfers. The items in the collection are ordered in the `items` array.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: An array containing the payment batch items.
              type: array
              maxItems: 10000
              items:
                $ref: '#/components/schemas/businessAchBatchItem'
      example:
        items:
          - id: 0399abed-fd3d
            name: Payroll 03
            description: 2022-03 Employee Payroll
            customerId: ced23bc4125dcfadf27f
            state: pendingApproval
            toSummary: 47 payees
            fromSummary: Payroll Checking *7890
            creditTotal: '2467.50'
            debitTotal: '0.00'
            creditCount: 12
            debitCount: 30
            trackingNumber: '15474162'
            remainingApprovalsCount: 0
            approvalCount: 0
            direction: credit
            information: You have missed the cutoff time. Please re-schedule.
            ach:
              secCode: ppd
              imported: false
              direction: credit
              sameDay: false
              companyName: Well's Roofing
              confidentialCustomers:
                - id: 64446f8d-780f
                  name: Philip F. Duciary
                - id: 58853981-24bb
                  name: Alice A. Tuary
              approvalDueAt: '2022-06-09T20:30:00.000Z'
              sameDayApprovalDue:
                - '2022-06-09T15:00:00.000Z'
                - '2022-06-09T18:00:00.000Z'
                - '2022-06-09T20:30:00.000Z'
            settlementType: detailed
            settlementAccount:
              label: Payroll Checking *7890
              maskedNumber: '*1008'
              id: bf23bc970-91e8
              risk: normal
            schedule:
              scheduledOn: '2022-05-01'
              effectiveOn: '2022-04-30'
              frequency: monthly
            allows:
              approve: false
              edit: true
              addInstructions: true
              editInstructions: true
              deleteInstructions: true
              holdInstructions: true
              delete: false
              unlock: false
              reject: false
              reverse: false
              reverseInstructions: false
              submit: false
              copy: true
            createdAt: '2022-04-28T07:48:20.375Z'
            updatedAt: '2022-04-28T07:48:49.375Z'
            createdBy:
              id: 0399abed-fd3d
              name: Benny Billings
              username: bbillings
            updatedBy:
              id: 0399abed-fd3d
              name: Benny Billings
              username: bbillings
    businessNachaPassThroughFileItem:
      x-apiture-version: 3.0.1
      title: Business Nacha Pass Through File Item (v3.0.1)
      description: A NACHA pass-through file item within the collection of files.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractAchPaymentBatchItem'
        - type: object
          required:
            - nachaPassThrough
          properties:
            nachaPassThrough:
              description: ACH-specific details of the NACHA pass-through payment batch.
              readOnly: true
              allOf:
                - $ref: '#/components/schemas/nachaPassThroughPaymentBatch'
      example:
        id: 0399abed-fd3d
        state: pendingApproval
        toSummary: 12 payees
        fromSummary: Payroll Checking *7890
        direction: credit
        customerId: d1b95731fb029fec062c
        nachaPassThrough:
          type: balanced
          earliestEffectiveOn: '2023-07-10'
          latestEffectiveOn: '2023-07-12'
          uploadedBy: Alex Frank
          uploadedAt: '2023-07-08T09:36:36.375Z'
          fileName: nacha-payroll-2023-08-01.ach
        trackingNumber: '15474162'
        remainingApprovalsCount: 2
        approvalCount: 1
        creditTotal: '2640.60'
        debitTotal: '0.00'
        creditCount: 12
        debitCount: 30
        settlementAccount:
          label: Payroll Checking *7890
          maskedNumber: '*7890'
          id: bf23bc970-91e8
          risk: normal
        schedule:
          scheduledOn: '2022-05-01'
          effectiveOn: '2022-04-30'
        allows:
          approve: false
          edit: true
          addInstructions: true
          editInstructions: true
          deleteInstructions: true
          holdInstructions: true
          submit: true
          delete: false
          unlock: false
          reject: false
          reverse: false
          reverseInstructions: false
          copy: true
        createdAt: '2022-04-28T07:48:20.375Z'
        updatedAt: '2022-04-28T07:48:49.375Z'
        createdBy:
          id: 0399abed-fd3d
          name: Benny Billings
          username: bbillings
        updatedBy:
          id: 0399abed-fd3d
          name: Benny Billings
          username: bbillings
    businessNachaPassThroughFiles:
      x-apiture-version: 3.0.1
      title: Business NACHA Pass-Through Files (v3.0.1)
      description: A list of business NACHA pass-through files.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: An array containing the payment batch items.
              type: array
              maxItems: 10000
              items:
                $ref: '#/components/schemas/businessNachaPassThroughFileItem'
      example:
        items:
          - id: 0399abed-fd3d
            state: pendingApproval
            toSummary: 12 payees
            fromSummary: Payroll Checking *7890
            direction: credit
            customerId: d1b95731fb029fec062c
            nachaPassThrough:
              type: balanced
              earliestEffectiveOn: '2023-07-10'
              latestEffectiveOn: '2023-07-12'
              uploadedBy: Alex Frank
              uploadedAt: '2023-07-08T09:36:36.375Z'
              fileName: nacha-payroll-2023-08-01.ach
            trackingNumber: '15474162'
            remainingApprovalsCount: 2
            approvalCount: 1
            creditTotal: '2640.60'
            debitTotal: '0.00'
            creditCount: 12
            debitCount: 30
            settlementAccount:
              label: Payroll Checking *7890
              maskedNumber: '*7890'
              id: bf23bc970-91e8
              risk: normal
            schedule:
              scheduledOn: '2022-05-01'
              effectiveOn: '2022-04-30'
            allows:
              approve: false
              edit: true
              addInstructions: true
              editInstructions: true
              deleteInstructions: true
              holdInstructions: true
              submit: true
              delete: false
              unlock: false
              reject: false
              reverse: false
              reverseInstructions: false
              copy: true
            createdAt: '2022-04-28T07:48:20.375Z'
            updatedAt: '2022-04-28T07:48:49.375Z'
            createdBy:
              id: 0399abed-fd3d
              name: Benny Billings
              username: bbillings
            updatedBy:
              id: 0399abed-fd3d
              name: Benny Billings
              username: bbillings
    businessWireTransferItem:
      x-apiture-version: 6.0.0
      title: Business Wire Transfer Item (v6.0.0)
      description: A business wire transfer item in a list of wire transfers.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractPaymentBatchItem'
        - type: object
          required:
            - wireTransfer
          properties:
            amount:
              description: |-
                The amount of money to send via this wire transfer.

                When using a currency conversion (for example, for an international wire transfer), this is the amount in the recipient/beneficiary's currency). The `currencyConversion` conveys the amount, converted to USD, in the `originatorAmount`.
              allOf:
                - $ref: '#/components/schemas/monetaryValue'
            currency:
              description: For international wire transfers requiring a currency conversion, this is the target currency of the beneficiary.
              allOf:
                - $ref: '#/components/schemas/currencyReference'
            wireTransfer:
              description: Wire-specific details of the business wire transfer.
              allOf:
                - $ref: '#/components/schemas/wireTransferPaymentBatch'
      example:
        id: 0399abed-fd3d
        state: pendingApproval
        toSummary: 12 payees
        fromSummary: Payroll Checking *7890
        customerId: d1b95731fb029fec062c
        trackingNumber: '15474162'
        remainingApprovalsCount: 2
        approvalCount: 1
        amount: '2640.60'
        settlementAccount:
          label: Payroll Checking *7890
          maskedNumber: '*7890'
          id: bf23bc970-91e8
          risk: normal
        schedule:
          scheduledOn: '2022-05-01'
          effectiveOn: '2022-04-30'
        wireTransfer:
          template:
            id: 0d5b4d7b0219071a8412
            name: Insurance Premiums
            lockedProperties:
              - wireTransferOriginatorCountryCode
              - wireTransferSettlementAccountNumber
          originator:
            name: Phil Duciary
            governmentIssuedId: '112223333'
            address:
              address1: 1805 Tiburon Dr.
              address2: Building 14, Suite 1500
              locality: Wilmington
              regionCode: NC
              countryCode: US
              postalCode: '28412'
            phoneNumber: '+9105551234'
          confidentialCustomers:
            - id: f48291b6-14ce
              name: Amanda Cummins
            - id: eaf488ab-fbf7
              name: Stephen Walker
          scope: domestic
          state: submitted
          approvalDue:
            - '2022-06-09T15:00:00.000Z'
            - '2022-06-09T18:00:00.000Z'
            - '2022-06-09T20:30:00.000Z'
        allows:
          approve: false
          edit: true
          addInstructions: true
          editInstructions: true
          deleteInstructions: true
          holdInstructions: true
          submit: true
          delete: false
          unlock: false
          reject: false
          reverse: false
          reverseInstructions: false
          copy: true
        createdAt: '2022-04-28T07:48:20.375Z'
        updatedAt: '2022-04-28T07:48:49.375Z'
        createdBy:
          id: 0399abed-fd3d
          name: Benny Billings
          username: bbillings
        updatedBy:
          id: 0399abed-fd3d
          name: Benny Billings
          username: bbillings
    businessWireTransfers:
      x-apiture-version: 6.0.0
      title: Business Wire Transfers (v6.0.0)
      description: A list of business wire transfers.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: An array containing business wire transfer items.
              type: array
              maxItems: 10000
              items:
                $ref: '#/components/schemas/businessWireTransferItem'
      example:
        items:
          - id: 0399abed-fd3d
            state: pendingApproval
            toSummary: 12 payees
            fromSummary: Payroll Checking *7890
            customerId: d1b95731fb029fec062c
            trackingNumber: '15474162'
            remainingApprovalsCount: 2
            approvalCount: 1
            amount: '2640.60'
            settlementAccount:
              label: Payroll Checking *7890
              maskedNumber: '*7890'
              id: bf23bc970-91e8
              risk: normal
            schedule:
              scheduledOn: '2022-05-01'
              effectiveOn: '2022-04-30'
            wireTransfer:
              template:
                id: 0d5b4d7b0219071a8412
                name: Insurance Premiums
                lockedProperties:
                  - wireTransferOriginatorCountryCode
                  - wireTransferSettlementAccountNumber
              originator:
                name: Phil Duciary
                governmentIssuedId: '112223333'
                address:
                  address1: 1805 Tiburon Dr.
                  address2: Building 14, Suite 1500
                  locality: Wilmington
                  regionCode: NC
                  countryCode: US
                  postalCode: '28412'
                phoneNumber: '+9105551234'
              confidentialCustomers:
                - id: f48291b6-14ce
                  name: Amanda Cummins
                - id: eaf488ab-fbf7
                  name: Stephen Walker
              scope: domestic
              state: submitted
              approvalDue:
                - '2022-06-09T15:00:00.000Z'
                - '2022-06-09T18:00:00.000Z'
                - '2022-06-09T20:30:00.000Z'
            allows:
              approve: false
              edit: true
              addInstructions: true
              editInstructions: true
              deleteInstructions: true
              holdInstructions: true
              submit: true
              delete: false
              unlock: false
              reject: false
              reverse: false
              reverseInstructions: false
              copy: true
            createdAt: '2022-04-28T07:48:20.375Z'
            updatedAt: '2022-04-28T07:48:49.375Z'
            createdBy:
              id: 0399abed-fd3d
              name: Benny Billings
              username: bbillings
            updatedBy:
              id: 0399abed-fd3d
              name: Benny Billings
              username: bbillings
    paymentBatches:
      x-apiture-version: 16.0.0
      title: Payment Batch Collection (v16.0.0)
      description: Collection of payment batches. The items in the collection are ordered in the `items` array.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          required:
            - items
          properties:
            items:
              description: An array containing the payment batch items.
              type: array
              maxItems: 10000
              items:
                $ref: '#/components/schemas/paymentBatchItem'
      example:
        items:
          - id: 0399abed-fd3d
            type: ach
            state: pendingApproval
            toSummary: 12 payees
            fromSummary: Payroll Checking *7890
            direction: credit
            customerId: d1b95731fb029fec062c
            ach:
              secCode: ppd
              companyName: Well's Roofing
              imported: false
              sameDay: false
              confidentialCustomers:
                - id: 64446f8d-780f
                  name: Philip F. Duciary
                - id: 58853981-24bb
                  name: Alice A. Tuary
              approvalDueAt: '2022-06-09T20:30:00.000Z'
              sameDayApprovalDue:
                - '2022-06-09T15:00:00.000Z'
                - '2022-06-09T18:00:00.000Z'
                - '2022-06-09T20:30:00.000Z'
            trackingNumber: '15474162'
            remainingApprovalsCount: 2
            approvalCount: 1
            creditTotal: '2640.60'
            debitTotal: '0.00'
            creditCount: 12
            debitCount: 30
            settlementAccount:
              label: Payroll Checking *7890
              maskedNumber: '*7890'
              id: bf23bc970-91e8
              risk: normal
            schedule:
              scheduledOn: '2022-05-01'
              effectiveOn: '2022-04-30'
            allows:
              approve: false
              edit: true
              addInstructions: true
              editInstructions: true
              deleteInstructions: true
              holdInstructions: true
              submit: true
              delete: false
              unlock: false
              reject: false
              reverse: false
              reverseInstructions: false
              copy: true
            createdAt: '2022-04-28T07:48:20.375Z'
            updatedAt: '2022-04-28T07:48:49.375Z'
            createdBy:
              id: 0399abed-fd3d
              name: Benny Billings
              username: bbillings
            updatedBy:
              id: 0399abed-fd3d
              name: Benny Billings
              username: bbillings
    achImport:
      x-apiture-version: 4.1.2
      title: ACH Import (v4.1.2)
      description: A request to create one or more payment batches from the contents of a [NACHA ACH file](https://achdevguide.nacha.org/ach-file-overview).
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/commonPaymentBatchFields'
        - $ref: '#/components/schemas/confidentialAchCustomers'
        - type: object
          required:
            - content
            - settlementAccount
            - customerId
          properties:
            content:
              $ref: '#/components/schemas/nachaFileContent'
            customerId:
              description: 'The ID of the banking customer that this payment batch is for. This is typically a business customer ID. Note: This is not the login or access ID of the customer.'
              $ref: '#/components/schemas/readOnlyResourceId'
            settlementAccount:
              description: The account where the payment funds are drawn or credited.
              $ref: '#/components/schemas/paymentSettlementAccountReference'
    nachaFileContent:
      x-apiture-version: 1.0.1
      title: Nacha File Content (v1.0.1)
      description: The [Base64-encoded](https://en.wikipedia.org/wiki/Base64) content of the NACHA ACH text file. The maximum length constraint allows for a (non-Base64 encoded) input file of at most 5,000,000 bytes.
      type: string
      format: byte
      contentEncoding: base64
      minLength: 625
      maxLength: 6850000
    nachaImport:
      x-apiture-version: 1.1.2
      title: NACHA Import (v1.1.2)
      description: A request to create a NACHA pass-through payment batch from the contents of a [NACHA ACH file](https://achdevguide.nacha.org/ach-file-overview).
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/confidentialAchCustomers'
        - type: object
          required:
            - content
          properties:
            name:
              description: The user-assigned name of this payment batch.
              type: string
              format: text
              maxLength: 10
              example: Payroll 03
            description:
              description: The user-assigned detailed description of this payment batch.
              type: string
              format: text
              maxLength: 100
              example: 2022-03 Employee Payroll
            content:
              $ref: '#/components/schemas/nachaFileContent'
            fileName:
              description: The name of the file. If omitted, the system will construct a file name.
              type: string
              format: text
              minLength: 4
              maxLength: 80
    nachaPassThroughPaymentBatchPatch:
      x-apiture-version: 1.1.0
      title: Nacha Pass-Through Patch (v1.1.0)
      description: Data for patching a NACHA pass-through payment batch.
      type: object
      properties:
        confidentialCustomers:
          description: A list of customers entitled to view and manage this confidential payment batch. To remove confidential customers in a batch and make the batch non-confidential, set this property to `null` in a [`patchPaymentBatch`](#op-patchPaymentBatch) operation.
          type:
            - array
            - 'null'
          minItems: 1
          maxItems: 1000
          items:
            $ref: '#/components/schemas/confidentialAchCustomer'
        batches:
          description: An array of objects describing patch updates to individual batches in a NACHA pass-through business payment. The items in the array correspond 1-to-1 with the batches in the `nachaPassThrough.batches`. Empty `{}` items in the array means the patch operation does not change the corresponding batch, although setting a settlement account for one batch in a group may apply that settlement account for all other batches in the same company group.
          type: array
          minItems: 1
          maxItems: 10000
          items:
            $ref: '#/components/schemas/nachaPassThroughBatchPatch'
      examples:
        - confidentialCustomers:
            - id: 64446f8d-780f
              name: Philip F. Duciary
            - id: 58853981-24bb
              name: Alice A. Tuary
          batches:
            - settlementAccount:
                id: bf23bc970b78d27691e
                label: Payroll Checking *1008
                maskedNumber: '*1008'
                applyToGroup: true
            - settlementAccount:
                id: bf23bc970b78d27691e
                applyToGroup: true
            - settlementAccount:
                id: bf23bc970b78d27691e
                applyToGroup: true
        - confidentialCustomers: null
          batches:
            - settlementAccount:
                id: bf23bc970b78d27691e
                label: Payroll Checking *1008
                maskedNumber: '*1008'
                applyToGroup: true
            - settlementAccount:
                id: bf23bc970b78d27691e
                applyToGroup: true
            - settlementAccount:
                id: bf23bc970b78d27691e
                applyToGroup: true
    nachaPassThroughAccountReferencePatch:
      title: NACHA Pass Through Account Reference Patch (v1.0.0)
      description: Identifies settlement account for a batch within a NACHA pass-through business payment. The `label` and `maskedNumber` are for information purposes only and are ignored.
      type:
        - object
        - 'null'
      required:
        - id
      properties:
        id:
          description: The account's unique, opaque resource ID.
          $ref: '#/components/schemas/nullableReadOnlyResourceId'
        label:
          description: A text label which describes this account. This is derived from the `account.label`.
          type: string
          format: text
          maxLength: 80
          example: Checking *1008
          readOnly: true
        maskedNumber:
          description: The account number, masked for partial display.
          readOnly: true
          $ref: '#/components/schemas/maskedAccountNumber'
        applyToGroup:
          description: If `true`, the customer has indicated that this batch's settlement account should be applied to all other batches in the same company group.
          type: boolean
          default: false
      example:
        label: Payroll Checking *1008
        maskedNumber: '*1008'
        id: bf23bc970b78d27691e
        applyToGroup: true
      x-apiture-version: 1.0.0
    nachaPassThroughBatchPatch:
      title: NACHA Pass-Through Batch Patch (v1.0.0)
      description: Updates to a batch within a NACHA pass-through business payment.
      type: object
      properties:
        settlementAccount:
          description: An optional settlement account. This may be `null` to unassign the settlement account for a batch.
          $ref: '#/components/schemas/nachaPassThroughAccountReferencePatch'
      example:
        settlementAccount:
          id: bf23bc970b78d27691e
          label: Payroll Checking *1008
          maskedNumber: '*1008'
          applyToGroup: true
      x-apiture-version: 1.0.0
    newAchTemplatePaymentBatch:
      x-apiture-version: 3.0.1
      title: New ACH Template Payment Batch (v3.0.1)
      description: Properties required to create the ACH template's payment batch.
      type: object
      required:
        - secCode
        - prenote
        - direction
      allOf:
        - $ref: '#/components/schemas/confidentialAchCustomers'
        - $ref: '#/components/schemas/mutableAchPaymentBatchFields'
        - $ref: '#/components/schemas/achApprovalDateTimeFields'
        - type: object
          properties:
            type:
              description: Optionally defines a specific type of ACH payment batch. Used for Vendor Credit batches.
              allOf:
                - $ref: '#/components/schemas/achPaymentBatchType'
            secCode:
              description: The SEC code for these ACH payments.
              allOf:
                - $ref: '#/components/schemas/paymentBatchAchSecCode'
            settlementAccount:
              description: The account where the payment funds are drawn or credited.
              allOf:
                - $ref: '#/components/schemas/newPaymentSettlementAccountReference'
            direction:
              $ref: '#/components/schemas/paymentBatchDirection'
            paymentInstructions:
              description: |-
                Payment instructions to initially create within this ACH template payment batch.

                At least one payment instruction must be included for a template to have a `state` of `active`.
              type: array
              maxItems: 1000
              minItems: 1
              items:
                $ref: '#/components/schemas/newAchTemplatePaymentInstruction'
            prenote:
              description: If `true`, perform prenote validation for each payment instruction to validate the routing number and account number. Any additional payment instructions added will have prenote validation performed.
              type: boolean
      example:
        secCode: ppd
        prenote: false
        sameDay: false
        direction: debit
        discretionaryData: Payroll adjust 22-05
        companyName: Well's Roofing
        confidentialCustomers:
          - id: 64446f8d-780f
            name: Philip F. Duciary
          - id: 58853981-24bb
            name: Alice A. Tuary
    achTemplatePaymentBatch:
      x-apiture-version: 3.0.1
      title: ACH Template Payment Batch (v3.0.1)
      description: The ACH template's payment batch properties.
      type: object
      required:
        - prenote
        - secCode
        - direction
        - amount
        - itemCount
        - creditCount
        - debitCount
        - creditTotal
        - debitTotal
      allOf:
        - $ref: '#/components/schemas/confidentialAchCustomers'
        - $ref: '#/components/schemas/mutableAchPaymentBatchFields'
        - $ref: '#/components/schemas/achApprovalDateTimeFields'
        - type: object
          properties:
            type:
              description: Optionally defines a specific type of ACH payment batch. Used for Vendor Credit batches.
              readOnly: true
              allOf:
                - $ref: '#/components/schemas/achPaymentBatchType'
            secCode:
              description: The SEC code for these ACH payments. This is derived from `type`.
              readOnly: true
              allOf:
                - $ref: '#/components/schemas/paymentBatchAchSecCode'
            settlementAccount:
              description: The account where the payment funds are drawn or credited.
              allOf:
                - $ref: '#/components/schemas/paymentSettlementAccountReference'
            direction:
              $ref: '#/components/schemas/paymentBatchDirection'
            prenote:
              description: If `true`, perform prenote validation for each payment instruction to validate the routing number and account number. Any additional payment instructions added will have prenote validation performed.
              type: boolean
            amount:
              description: The net total of all the line items in this template's payment batch.
              $ref: '#/components/schemas/monetaryValue'
            itemCount:
              description: The number of payment instruction line items in this template's payment batch.
              type: integer
              format: int32
              minimum: 0
              maximum: 100000
            creditCount:
              description: The number of all the credit instructions in this template's payment batch. The count omits instructions where `hold` is `true`.
              type: integer
              format: int32
              minimum: 0
              maximum: 10000
              example: 12
            debitCount:
              description: The number of all the debit instructions in this template's payment batch. The count omits instructions where `hold` is `true`.
              type: integer
              format: int32
              minimum: 0
              maximum: 10000
              example: 30
            creditTotal:
              description: The total of all the payment credit amounts in this template's payment batch payment instructions, expressed as a decimal value. These amounts are credits to the remote accounts and a debit to the settlement account.
              allOf:
                - $ref: '#/components/schemas/creditOrDebitValue'
              readOnly: true
              example: '2467.50'
            debitTotal:
              description: The total of all the payment debit amounts in this template's payment batch payment instructions, expressed as a decimal value. These amounts are debits to the remote accounts and a credit to the settlement account.
              allOf:
                - $ref: '#/components/schemas/creditOrDebitValue'
              readOnly: true
              example: '0.00'
      example:
        secCode: ppd
        prenote: true
        sameDay: false
        direction: debit
        discretionaryData: Payroll adjust 22-05
        companyName: Well's Roofing
        confidentialCustomers:
          - id: 64446f8d-780f
            name: Philip F. Duciary
          - id: 58853981-24bb
            name: Alice A. Tuary
        amount: '56897.00'
        itemCount: 12
        debitCount: 12
        creditCount: 0
        debitTotal: '56897.00'
        creditTotal: '0.00'
    achTemplatePaymentBatchPatch:
      x-apiture-version: 2.2.0
      title: ACH Template Payment Batch Patch (v2.2.0)
      description: The ACH template's payment batch properties.
      type: object
      allOf:
        - $ref: '#/components/schemas/confidentialAchCustomers'
        - $ref: '#/components/schemas/mutableAchPaymentBatchFields'
        - type: object
          properties:
            settlementAccount:
              description: The account where the payment funds are drawn or credited.
              allOf:
                - $ref: '#/components/schemas/paymentSettlementAccountReferencePatch'
            direction:
              $ref: '#/components/schemas/paymentBatchDirection'
            prenote:
              description: If `true`, perform prenote validation for each payment instruction to validate the routing number and account number. Any additional payment instructions added will have prenote validation performed.
              type: boolean
      example:
        companyName: Well's Roofing
    newAchTemplatePaymentInstruction:
      x-apiture-version: 2.0.1
      title: New ACH Template Payment Instruction (v2.0.1)
      description: The properties to create a payment batch instruction on an ACH template payment batch instruction.
      type: object
      required:
        - routingNumber
        - accountNumber
      allOf:
        - $ref: '#/components/schemas/paymentInstructionFields'
        - $ref: '#/components/schemas/achPaymentInstructionFields'
        - type: object
          properties:
            vendorCreditAddenda:
              description: The addenda for vendor credit Corporate Trade Exchange (CTX) transfers. This optional array is only used if the payment direction is `credit`, the payment `secCode` is `ctx`, the `ach.type` is `vendorCredit`, and there are addenda.
              type: array
              minItems: 1
              maxItems: 9999
              items:
                $ref: '#/components/schemas/newVendorCreditAddendum'
            rePresentedCheck:
              description: A re-presented check (RCK) ACH payment instruction. This field is only used if the payment `direction` is `debit` and the payment `secCode` is `rck`.
              allOf:
                - $ref: '#/components/schemas/newRePresentedCheck'
      example:
        name: Pauline Stonemason
        identifier: C-00523
        amount: '1287.65'
        methodId: ach0001
        contactId: 3e8375b1-8c34
        accountType: checking
        routingNumber: '123123123'
        accountNumber: '123456789'
    newAchTemplatePaymentInstructionsRequest:
      x-apiture-version: 2.0.1
      title: ACH Template Payment Instructions Request (v2.0.1)
      description: A request to create payment instructions within an ACH template.
      type: object
      required:
        - paymentInstructions
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            paymentInstructions:
              description: Payment instructions to create within this ACH template.
              type: array
              maxItems: 1000
              minItems: 1
              items:
                $ref: '#/components/schemas/newAchTemplatePaymentInstruction'
    achTemplatePaymentInstruction:
      x-apiture-version: 2.0.0
      title: ACH Template Payment Instruction (v2.0.0)
      description: The ACH template's payment batch instruction properties.
      type: object
      required:
        - id
        - direction
        - name
        - amount
        - routingNumber
        - accountNumber
        - prenote
      allOf:
        - $ref: '#/components/schemas/paymentInstructionFields'
        - $ref: '#/components/schemas/achPaymentInstruction'
        - type: object
          properties:
            id:
              description: The unique identifier for this payment instruction resource. This is an immutable opaque string.
              allOf:
                - $ref: '#/components/schemas/resourceId'
            direction:
              description: Indicates if this item is a debit or credit, relative to this payment contact. This field is immutable.
              readOnly: true
              allOf:
                - $ref: '#/components/schemas/paymentInstructionDirection'
      example:
        id: 58853981-24bb
        name: Pauline Stonemason
        identifier: C-00523
        amount: '1287.65'
        methodId: ach0001
        contactId: 3e8375b1-8c34
        routingNumber: '123123123'
        accountNumber: '123456789'
        prenote: false
        direction: debit
    achTemplatePaymentInstructionPatch:
      x-apiture-version: 2.0.0
      title: ACH Template Payment Instruction (v2.0.0)
      description: Representation of a patch to an ACH template payment instruction resource.
      type: object
      allOf:
        - $ref: '#/components/schemas/paymentInstructionFields'
        - $ref: '#/components/schemas/achPaymentInstructionFields'
        - type: object
          properties:
            vendorCreditAddenda:
              description: The addenda for vendor credit Corporate Trade Exchange (CTX) transfers. This optional array is only used if the payment direction is `credit`, the payment `secCode` is `ctx`, the `ach.type` is `vendorCredit`, and there are addenda.
              type: array
              minItems: 1
              maxItems: 9999
              items:
                $ref: '#/components/schemas/vendorCreditAddendum'
            rePresentedCheck:
              description: A re-presented check (RCK) ACH payment instruction. This field is only used if the payment `direction` is `debit` and the payment `secCode` is `rck`.
              $ref: '#/components/schemas/rePresentedCheck'
      example:
        name: Pauline Stonemason
    achTemplateFields:
      x-apiture-version: 3.0.0
      title: ACH Template Fields (v3.0.0)
      description: Common fields of the ACH template resource used to build other model schemas.
      type: object
      x-apiture-fragment: true
      properties:
        name:
          description: The unique, human-readable name of the template. The name of the payment batch is found at `paymentBatch.name`.
          type: string
          format: text
          minLength: 1
          maxLength: 50
        description:
          description: The user-assigned detailed description for ACH payment batches created from this template.
          type: string
          format: text
          maxLength: 32
          example: 2022-03 Employee Payroll
        company:
          description: Identification of the company for ACH payment batches created from this template.
          allOf:
            - $ref: '#/components/schemas/paymentBatchCompany'
        lockedProperties:
          description: List of the properties of an ACH template that may not be modified when an ACH payment batch is created from the template.
          type: array
          uniqueItems: true
          items:
            $ref: '#/components/schemas/lockedAchTemplateProperty'
          minItems: 0
          maxItems: 10
          default: []
    immutableAchTemplateFields:
      x-apiture-version: 2.0.0
      title: Immutable ACH Template Fields (v2.0.0)
      description: Immutable fields of the ACH template resource used to build other model schemas.
      type: object
      x-apiture-fragment: true
      properties:
        state:
          description: The state of this ACH template resource
          allOf:
            - $ref: '#/components/schemas/achTemplateState'
        customerId:
          description: 'The ID of the banking customer that this payment batch is for. This is typically a business customer ID. Note: This is not the login or access ID of the customer.'
          allOf:
            - $ref: '#/components/schemas/resourceId'
        derivedFrom:
          readOnly: true
          description: If this template was copied from another, this object describes that source ACH template. Templates are copied using the [copy ACH template](#op-copyAchTemplate) operation.
          allOf:
            - $ref: '#/components/schemas/achTemplateDerivation'
        createdBy:
          description: The customer who created this ACH template resource.
          allOf:
            - $ref: '#/components/schemas/customerAccountReference'
        updatedBy:
          description: The customer who last updated this ACH template resource.
          allOf:
            - $ref: '#/components/schemas/customerAccountReference'
    newAchTemplate:
      x-apiture-version: 5.0.0
      title: New ACH Template (v5.0.0)
      description: Representation used to create a new ACH template.
      type: object
      required:
        - name
        - state
        - allows
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/achTemplateFields'
        - type: object
          properties:
            state:
              allOf:
                - $ref: '#/components/schemas/achTemplateState'
            paymentBatch:
              description: The properties included in a payment batch derived from this ACH template.
              allOf:
                - $ref: '#/components/schemas/newAchTemplatePaymentBatch'
            allows:
              allOf:
                - $ref: '#/components/schemas/achTemplateAllowsPatch'
      example:
        name: Payroll
        state: inactive
        lockedProperties:
          - achSettlementAccount
          - achCompanyType
          - achCompanyName
          - achCompanyId
          - achConfidentialCustomers
          - achRecipientPaymentAmount
          - achRecipientPaymentAddenda
        allows:
          createAchPaymentOnMobile: false
        paymentBatch:
          secCode: ppd
          sameDay: false
          direction: debit
          discretionaryData: Payroll adjust 22-05
          companyName: Well's Roofing
          prenote: true
          confidentialCustomers:
            - id: 64446f8d-780f
              name: Philip F. Duciary
            - id: 58853981-24bb
              name: Alice A. Tuary
    achTemplateItem:
      x-apiture-version: 5.0.0
      title: ACH Template Item (v5.0.0)
      description: Summary representation of an ACH template resource in ACH templates collections. To fetch the full representation of this ACH template, use the [`getAchTemplate`](#op-getAchTemplate) operation, passing this item's `id` field as the `achTemplateId` path parameter.
      type: object
      required:
        - id
        - name
        - state
        - paymentBatch
        - allows
        - createdBy
        - createdAt
        - updatedBy
        - updatedAt
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/achTemplateFields'
        - $ref: '#/components/schemas/immutableAchTemplateFields'
        - $ref: '#/components/schemas/timestampFields'
        - type: object
          properties:
            id:
              description: The unique identifier for this ACH template resource. This is an immutable opaque string.
              allOf:
                - $ref: '#/components/schemas/readOnlyResourceId'
            paymentBatch:
              description: The properties included in a payment batch derived from this ACH template.
              allOf:
                - $ref: '#/components/schemas/achTemplatePaymentBatch'
            allows:
              allOf:
                - $ref: '#/components/schemas/achTemplateAllows'
      example:
        id: 0399abed-fd3d
        name: Payroll
        state: active
        paymentBatch:
          secCode: ppd
          sameDay: false
          direction: debit
          prenote: false
          discretionaryData: Payroll adjust 22-05
          companyName: Well's Roofing
          amount: '56897.00'
          itemCount: 12
          debitCount: 12
          creditCount: 0
          debitTotal: '56897.00'
          creditTotal: '0.00'
        allows:
          view: true
          edit: false
          delete: false
          copy: false
          createAchPayment: false
          createAchPaymentOnMobile: false
        createdAt: '2023-08-04T19:06:04.250Z'
        updatedAt: '2023-08-04T19:06:04.250Z'
        createdBy:
          id: 0399abed-fd3d
          name: Benny Billings
          username: bbillings
        updatedBy:
          id: 0399abed-fd3d
          name: Benny Billings
          username: bbillings
    achTemplatePatch:
      x-apiture-version: 4.0.0
      title: ACH Template Patch (v4.0.0)
      description: Representation of an ACH template resource.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/achTemplateFields'
        - type: object
          properties:
            allows:
              allOf:
                - $ref: '#/components/schemas/achTemplateAllowsPatch'
            paymentBatch:
              description: The properties included in a payment batch derived from this ACH template.
              allOf:
                - $ref: '#/components/schemas/achTemplatePaymentBatchPatch'
      example:
        name: 2025 Bonus
    achTemplate:
      x-apiture-version: 5.0.0
      title: ACH Template (v5.0.0)
      description: Representation of an ACH template resource.
      type: object
      required:
        - id
        - name
        - state
        - allows
        - createdAt
        - updatedAt
        - createdBy
        - updatedBy
        - lockedProperties
        - paymentBatch
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/achTemplateFields'
        - $ref: '#/components/schemas/immutableAchTemplateFields'
        - $ref: '#/components/schemas/timestampFields'
        - type: object
          properties:
            id:
              description: The unique identifier for this ACH template resource. This is an immutable opaque string.
              allOf:
                - $ref: '#/components/schemas/readOnlyResourceId'
            allows:
              allOf:
                - $ref: '#/components/schemas/achTemplateAllows'
            paymentBatch:
              description: The properties included in a payment batch derived from this ACH template.
              allOf:
                - $ref: '#/components/schemas/achTemplatePaymentBatch'
      example:
        id: 0399abed-fd3d
        name: Payroll
        state: active
        allows:
          view: true
          edit: false
          delete: false
          copy: false
          createAchPayment: false
          createAchPaymentOnMobile: false
        createdAt: '2023-08-04T19:06:04.250Z'
        updatedAt: '2023-08-04T19:06:04.250Z'
        createdBy:
          id: 0399abed-fd3d
          name: Benny Billings
          username: bbillings
        updatedBy:
          id: 0399abed-fd3d
          name: Benny Billings
          username: bbillings
        lockedProperties:
          - achSettlementAccount
          - achCompanyType
          - achCompanyName
          - achCompanyId
          - achConfidentialCustomers
          - achRecipientPaymentAmount
          - achRecipientPaymentAddenda
        paymentBatch:
          secCode: ppd
          sameDay: false
          direction: debit
          discretionaryData: Payroll adjust 22-05
          companyName: Well's Roofing
          prenote: true
          amount: '56897.00'
          itemCount: 12
          debitCount: 12
          creditCount: 0
          debitTotal: '56897.00'
          creditTotal: '0.00'
          confidentialCustomers:
            - id: 64446f8d-780f
              name: Philip F. Duciary
            - id: 58853981-24bb
              name: Alice A. Tuary
    achTemplates:
      x-apiture-version: 5.0.0
      title: ACH Template Collection (v5.0.0)
      description: Collection of ACH templates. The items in the collection are ordered in the `items` array.
      type: object
      required:
        - items
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            items:
              description: An array containing ACH template items.
              type: array
              maxItems: 1500
              items:
                $ref: '#/components/schemas/achTemplateItem'
      example:
        items:
          - id: 0399abed-fd3d
            name: Payroll
            state: active
            allows:
              view: true
              edit: false
              delete: false
              copy: false
              createAchPayment: false
              createAchPaymentOnMobile: false
            createdAt: '2023-08-04T19:06:04.250Z'
            updatedAt: '2023-08-04T19:06:04.250Z'
            createdBy:
              id: 0399abed-fd3d
              name: Benny Billings
              username: bbillings
            updatedBy:
              id: 0399abed-fd3d
              name: Benny Billings
              username: bbillings
            paymentBatch:
              secCode: ppd
              sameDay: false
              direction: debit
              discretionaryData: Payroll adjust 22-05
              companyName: Well's Roofing
              prenote: true
              amount: '56897.00'
              itemCount: 12
              debitCount: 12
              creditCount: 0
              debitTotal: '56897.00'
              creditTotal: '0.00'
              confidentialCustomers:
                - id: 64446f8d-780f
                  name: Philip F. Duciary
                - id: 58853981-24bb
                  name: Alice A. Tuary
          - id: d62c0701-0d74-4836-83f9-ebf3709442ea
            name: Contractor Payroll
            state: active
            allows:
              view: true
              edit: false
              delete: false
              copy: false
              createAchPayment: false
              createAchPaymentOnMobile: false
            createdAt: '2023-08-04T19:06:04.250Z'
            updatedAt: '2023-08-04T19:06:04.250Z'
            createdBy:
              id: 0399abed-fd3d
              name: Benny Billings
              username: bbillings
            updatedBy:
              id: 0399abed-fd3d
              name: Benny Billings
              username: bbillings
            paymentBatch:
              secCode: ppd
              sameDay: false
              direction: debit
              discretionaryData: Payroll adjust 22-05
              companyName: Well's Roofing
              prenote: true
              amount: '56897.00'
              itemCount: 12
              debitCount: 12
              creditCount: 0
              debitTotal: '56897.00'
              creditTotal: '0.00'
              confidentialCustomers:
                - id: 64446f8d-780f
                  name: Philip F. Duciary
                - id: 58853981-24bb
                  name: Alice A. Tuary
    achTemplatePaymentInstructions:
      x-apiture-version: 3.0.1
      title: ACH Template Payment Instructions (v3.0.1)
      description: Collection of ACH template payment instructions. The items in the collection are ordered in the `items` array.
      type: object
      required:
        - items
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            items:
              description: An array containing ACH template payment instruction items.
              type: array
              maxItems: 1000
              items:
                $ref: '#/components/schemas/achTemplatePaymentInstruction'
      example:
        items:
          - id: 0399abed-fd3d
            name: Pauline Stonemason
            identifier: C-00523
            amount: '1287.65'
            methodId: ach0001
            contactId: 3e8375b1-8c34
            routingNumber: '123123123'
            accountNumber: '123456789'
            prenote: false
            direction: debit
    achTemplateState:
      title: ACH Template State (v1.0.0)
      description: |+
        The state of the ACH template resource.

        <strong><code>achTemplateState</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>active</code></strong></td><td>Active</td>
            </tr>
        <tr>
            <td><strong><code>inactive</code></strong></td><td>Inactive</td>
            </tr>
        </table>

      type: string
      x-apiture-enum: achTemplateState
      enum:
        - active
        - inactive
      x-apiture-version: 1.0.0
    achTemplateDerivation:
      x-apiture-version: 2.0.0
      title: ACH Template Derivation (v2.0.0)
      description: If this ACH payment batch was created from a template, this object describes that source template. This field is only present when the ACH payment batch was [created by a template](#op-createAchPaymentBatchFromTemplate).
      required:
        - id
        - name
        - lockedProperties
      allOf:
        - $ref: '#/components/schemas/paymentBatchTemplateReferenceFields'
        - type: object
          properties:
            lockedProperties:
              description: List of the properties of an ACH template that may not be modified.
              type: array
              uniqueItems: true
              items:
                $ref: '#/components/schemas/lockedAchTemplateProperty'
              minItems: 0
              maxItems: 10
              default: []
      example:
        id: 0d5b4d7b0219071a8412
        name: Payroll
        lockedProperties:
          - achSettlementAccount
    achTemplateAllowsPatch:
      title: ACH Template Allows Patch (v1.0.0)
      description: Request body for patching an ACH Template's allowed operations.
      type: object
      properties:
        createAchPaymentOnMobile:
          type: boolean
          description: The customer is allowed to create an ACH payment batch from the template from within mobile applications. Both this value _and_ `ach.allows.createAchPayment` must be `true` to create an ACH from this template on mobile apps.
      x-apiture-version: 1.0.0
    achTemplateAllows:
      title: ACH Template Allows (v1.0.0)
      description: Indicates what ACH template actions are allowed for the current customer, given the user's entitlements and the state of the ACH template.
      type: object
      required:
        - view
        - edit
        - delete
        - copy
        - createAchPayment
        - createAchPaymentOnMobile
      readOnly: true
      properties:
        view:
          type: boolean
          description: The customer is allowed to view details of the ACH template.
        edit:
          type: boolean
          description: The customer is allowed to edit the ACH template.
        delete:
          type: boolean
          description: The customer is allowed to delete the ACH template.
        copy:
          type: boolean
          description: The customer is allowed to copy the ACH template.
        createAchPayment:
          type: boolean
          description: The customer is allowed to create an ACH payment batch from the ACH template.
        createAchPaymentOnMobile:
          type: boolean
          description: The customer is allowed to create an ACH payment from the template within the mobile application.
      example:
        view: true
        edit: false
        delete: false
        copy: false
        createAchPayment: false
        createAchPaymentOnMobile: false
      x-apiture-version: 1.0.0
    achTemplatePaymentBatchDerivation:
      title: ACH Template Payment Batch Derivation (v1.0.0)
      description: Representation of a payment batch associated with an ACH template.
      required:
        - id
        - trackingNumber
      type: object
      properties:
        id:
          description: The unique identifier for the origin payment batch resource. This is an immutable opaque string.
          $ref: '#/components/schemas/readOnlyResourceId'
        trackingNumber:
          description: The unique tracking number for the payment batch.
          type: string
          pattern: ^[0-9]+$
          minLength: 6
          maxLength: 9
          example: '15474162'
      x-apiture-version: 1.0.0
    achTemplateHistoryRecords:
      x-apiture-version: 1.0.2
      title: ACH Template History (v1.0.2)
      description: Collection of ACH template history records.
      type: object
      required:
        - items
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            items:
              description: An array containing a page of ACH template history record items.
              type: array
              maxItems: 10000
              items:
                $ref: '#/components/schemas/achTemplateHistoryRecord'
      example:
        items:
          - type: created
            creationType: copy
            customerId: 0399abed-fd3d
            customerName: Benny Billings
            occurredAt: '2024-07-25T16:32:42Z'
            template:
              id: f83aabbf-8b29
              name: Payroll
          - type: deactivated
            customerId: 0399abed-fd3d
            customerName: Benny Billings
            occurredAt: '2024-07-25T16:35:16Z'
    achTemplateHistoryRecord:
      x-apiture-version: 1.0.2
      title: ACH Template History Record (v1.0.2)
      description: A historical action on an ACH template.
      type: object
      required:
        - type
        - customerId
        - customerName
        - occurredAt
      properties:
        type:
          description: The action performed on the ACH template.
          allOf:
            - $ref: '#/components/schemas/achTemplateHistoryType'
        creationType:
          description: For the `type` of `created`, this indicates how the ACH template was created.
          allOf:
            - $ref: '#/components/schemas/achTemplateHistoryCreationType'
        customerId:
          description: The ID of the customer who performed the action.
          $ref: '#/components/schemas/readOnlyResourceId'
        customerName:
          description: The name of the customer who performed the action. This is the customer's name at the time the action occurred.
          type: string
          maxLength: 48
          format: text
        occurredAt:
          description: The date-time when this action occurred, in [RFC 3339](https://tools.ietf.org/html/rfc3339) date-time `YYYY-MM-DDThh:mm:ss.sssZ` format, UTC. This is derived and immutable.
          allOf:
            - $ref: '#/components/schemas/readOnlyTimestamp'
        template:
          description: The template associated with this action, if any. This is required when `type` is `copied`.
          allOf:
            - $ref: '#/components/schemas/paymentBatchTemplateReferenceFields'
        paymentBatch:
          description: The payment batch associated with this action, if any. This is required when `type` is `prenoted` or when this template was created from a payment batch.
          allOf:
            - $ref: '#/components/schemas/achTemplatePaymentBatchDerivation'
      example:
        type: created
        creationType: copy
        customerId: 0399abed-fd3d
        customerName: Benny Billings
        occurredAt: '2024-07-25T16:32:42Z'
        template:
          id: f83aabbf-8b29
          name: Payroll
    achTemplateHistoryType:
      title: ACH Template History Type (v1.0.0)
      description: |+
        Categorization of actions performed on an ACH template.

        <strong><code>achTemplateHistoryType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>created</code></strong></td><td>Created: <p>The customer created this ACH template</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>instantiated</code></strong></td><td>Instantiated: <p>The customer instantiated an ACH payment batch from this ACH template</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>activated</code></strong></td><td>Activated: <p>The customer activated this ACH template</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>deactivated</code></strong></td><td>Deactivated: <p>The customer deactivated this ACH template</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>updated</code></strong></td><td>Updated: <p>The customer updated this ACH template</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>copied</code></strong></td><td>Copied: <p>The customer copied this ACH template</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>prenoted</code></strong></td><td>Prenoted: <p>The customer created a prenote payment batch for a recipient in this template</p>
        </td>
            </tr>
        </table>

      x-apiture-enum: achTemplateHistoryType
      type: string
      enum:
        - created
        - instantiated
        - activated
        - deactivated
        - updated
        - copied
        - prenoted
      x-apiture-version: 1.0.0
    achTemplateHistoryCreationType:
      title: Payment History Creation Type (v1.0.0)
      description: |+
        Describes how a payment batch was created.

        <strong><code>achTemplateHistoryCreationType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>create</code></strong></td><td>Create: <p>A new ACH template was created from scratch</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>copy</code></strong></td><td>Copy: <p>This ACH template was created as a copy of another ACH template</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: achTemplateHistoryCreationType
      enum:
        - create
        - copy
      x-apiture-version: 1.0.0
    newPaymentBatchFromAchTemplate:
      title: New Payment Batch from ACH Template (v1.0.0)
      description: Representation used to create a new ACH payment batch from an ACH Template. If the `name` is omitted, the service assigns a name. Properties not designated as locked in the template may be overridden.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/commonPaymentBatchFields'
        - $ref: '#/components/schemas/confidentialAchCustomers'
        - $ref: '#/components/schemas/mutableAchPaymentBatchFields'
        - type: object
          properties:
            schedule:
              description: The target date when the payment is due, and any recurrence.
              allOf:
                - $ref: '#/components/schemas/newPaymentBatchSchedule'
            customerId:
              description: 'The ID of the banking customer that this payment batch is for. This is typically a business customer ID. Note: This is not the login or access ID of the customer.'
              allOf:
                - $ref: '#/components/schemas/resourceId'
      x-apiture-version: 1.0.0
    bulkAchTemplateRequest:
      x-apiture-version: 1.1.1
      title: Bulk ACH Template Request (v1.1.1)
      description: A request to apply an action to a set of ACH templates. Actions applied to templates do not affect existing payment batches involving any of the templates.
      type: object
      properties:
        achTemplateIds:
          description: A list of ACH template references to delete.
          type: array
          minItems: 1
          maxItems: 1000
          uniqueItems: true
          items:
            $ref: '#/components/schemas/resourceId'
      example:
        achTemplateIds:
          - f83aabf8b2934cd007c9
          - 54af277363a2613af45a
    bulkAchTemplateActivationRequest:
      x-apiture-version: 1.1.1
      title: Bulk ACH Template Activation Request (v1.1.1)
      description: A request to activate a set of ACH templates.
      required:
        - achTemplateIds
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/bulkAchTemplateRequest'
      example:
        achTemplateIds:
          - f83aabf8b2934cd007c9
          - 54af277363a2613af45a
    bulkAchTemplateDeactivationRequest:
      x-apiture-version: 1.1.1
      title: Bulk ACH Template Deactivation Request (v1.1.1)
      description: A request to deactivate a set of ACH templates. Deactivation does not affect existing payment batches involving any of the templates.
      required:
        - achTemplateIds
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/bulkAchTemplateRequest'
      example:
        achTemplateIds:
          - f83aabf8b2934cd007c9
          - 54af277363a2613af45a
    bulkAchTemplateDeletionRequest:
      x-apiture-version: 1.1.1
      title: Bulk ACH Template Deletion Request (v1.1.1)
      description: A request to delete a set of ACH templates. Deleting does not affect existing payment batches involving any of the templates.
      required:
        - achTemplateIds
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/bulkAchTemplateRequest'
      example:
        achTemplateIds:
          - f83aabf8b2934cd007c9
          - 54af277363a2613af45a
    bulkAchTemplatePatchRequest:
      x-apiture-version: 1.1.0
      title: Bulk ACH Template Patch Request (v1.1.0)
      description: A request to patch a set of ACH templates using [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules. Updating a template does not affect existing ACH payment batches created from the template.
      type: object
      required:
        - achTemplateIds
        - allows
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            achTemplateIds:
              description: A list of ACH templates. The `allows.createAchPaymentOnMobile` flag is updated on each.
              type: array
              minItems: 1
              maxItems: 1000
              uniqueItems: true
              items:
                $ref: '#/components/schemas/resourceId'
            allows:
              $ref: '#/components/schemas/achTemplateAllowsPatch'
      example:
        achTemplateIds:
          - f83aabf8b2934cd007c9
          - 54af277363a2613af45a
        allows:
          createAchPaymentOnMobile: true
    achTemplateBulkDeletions:
      title: ACH Template Deletions (v1.0.0)
      description: Response from the request to delete a set of ACH templates.
      required:
        - items
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/abstractBulkAchTemplateOperationResponse'
      x-apiture-version: 1.0.0
    achTemplateBulkActivations:
      title: ACH Template Activations (v1.0.0)
      description: Response from the request to activate a set of ACH templates.
      required:
        - items
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/abstractBulkAchTemplateOperationResponse'
      x-apiture-version: 1.0.0
    achTemplateBulkDeactivations:
      title: ACH Template Deactivations (v1.0.0)
      description: Response from the request to deactivate a set of ACH templates.
      required:
        - items
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/abstractBulkAchTemplateOperationResponse'
      x-apiture-version: 1.0.0
    achTemplateBulkUpdates:
      title: ACH Template Bulk Updates (v1.0.0)
      description: Response from the request to update a set of ACH templates.
      type: object
      $ref: '#/components/schemas/abstractBulkAchTemplateOperationResponse'
      x-apiture-version: 1.0.0
    abstractBulkAchTemplateOperationResponse:
      title: Bulk ACH Template Operation (v1.0.0)
      description: Bulk ACH template operation response.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            items:
              description: The result of attempting to perform an action on a set of ACH templates in the request. Items in the array correspond (in order) to each ACH template ID in the request.
              type: array
              minItems: 1
              maxItems: 999
              items:
                description: The result of attempting to perform an action on one ACH template from the list of ACH templates in the request.
                $ref: '#/components/schemas/bulkAchTemplateOperationResponseItem'
      x-apiture-version: 1.0.0
    bulkAchTemplateOperationResponseItem:
      title: Bulk ACH Template Operation Item (v1.0.0)
      description: An abstract item in a [bulk ACH template operation response](#schema-abstractBulkAchTemplateOperationResponse).
      type: object
      required:
        - id
        - succeeded
      properties:
        id:
          description: The ACH template ID.
          $ref: '#/components/schemas/readOnlyResourceId'
        succeeded:
          description: '`true` if the operation was successful for the ACH template.'
          type: boolean
        problems:
          description: If the operation for this template failed (`succeeded` is `false`), this describes why. This may include forbidden, conflict, or other 4xx error or problem types that can occur with individual ACH template operation calls.
          type: array
          maxItems: 1000
          items:
            $ref: '#/components/schemas/apiProblem'
      x-apiture-version: 1.0.0
    wireTransferTemplateFields:
      x-apiture-version: 5.2.1
      title: Wire Transfer Template Fields (v5.2.1)
      description: Common fields of the wire transfer template resource used to build other model schemas.
      x-apiture-fragment: true
      type: object
      properties:
        name:
          description: The unique, human-readable name of the template.
          type: string
          format: text
          minLength: 1
          maxLength: 50
        originator:
          description: The person sending wire transfers created from this wire transfer template.
          $ref: '#/components/schemas/wireTransferOriginator'
        settlementAccount:
          description: The customer account to be debited for the wire transfer.
          $ref: '#/components/schemas/paymentAccountReference'
        beneficiary:
          description: The recipient of a wire transfer created from this wire transfer template.
          $ref: '#/components/schemas/wireTransferNamedBeneficiary'
        amount:
          description: |-
            The amount of money to send for wire transfers created from this wire transfer template.
            For international wire transfers that involve currency exchanges, see the `amountTarget` and `targetCurrency` properties.
          allOf:
            - $ref: '#/components/schemas/monetaryValue'
        amountTarget:
          description: |-
            Indicates whether the `amount` is recorded in currency of the originator or the beneficiary of an international wire transfer involving currency exchange.

            This is required for international wire transfers requiring a currency exchange.
          allOf:
            - $ref: '#/components/schemas/wireTransferTemplateAmountTarget'
        targetCurrency:
          description: For international wire transfers requiring a currency exchange, this is the target currency for the beneficiary.
          allOf:
            - $ref: '#/components/schemas/currency'
        memo:
          description: The memo instruction associated with the wire transfer payment template.
          $ref: '#/components/schemas/wireTransferInstructionMemo'
        purpose:
          description: The purpose of the wire transfer payment associated with the wire transfer payment template.
          type: string
          format: text
          maxLength: 140
    wireTransferTemplateAmountTarget:
      title: Wire Transfer Template Amount Target (v1.0.0)
      description: |+
        Indicates whether the `amount` is recorded in currency of the originator or the beneficiary of an international wire transfer involving currency exchange.

        This is required for international wire transfers requiring a currency exchange.

        <strong><code>wireTransferTemplateAmountTarget</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>originator</code></strong></td><td>Originator: <p>The <code>amount</code> is in the currency of the wire transfer originator</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>beneficiary</code></strong></td><td>Beneficiary: <p>The <code>amount</code> is in the currency of the wire transfer beneficiary</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: wireTransferTemplateAmountTarget
      enum:
        - originator
        - beneficiary
      x-apiture-version: 1.0.0
    copiedPaymentBatchTemplate:
      title: Copied Payment Batch Template (v1.0.0)
      description: Representation used to create a new payment batch template from another template.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            name:
              description: The unique, human-readable name of the template.
              type: string
              format: text
              minLength: 1
              maxLength: 50
      example:
        name: Insurance Premiums
      x-apiture-version: 1.0.0
    newWireTransferTemplate:
      x-apiture-version: 7.0.0
      title: New Wire Transfer Template (v7.0.0)
      description: Representation used to create a new wire transfer template.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/wireTransferTemplateFields'
        - $ref: '#/components/schemas/wireTransferTemplateInstitutionFields'
        - type: object
          properties:
            scope:
              description: Indicates whether the wire transfer template is for domestic or international wire transfers.
              allOf:
                - $ref: '#/components/schemas/wireTransferPaymentScope'
            lockedProperties:
              description: List of the properties of a wire transfer template that may not be modified when a wire transfer is created from the template.
              type: array
              uniqueItems: true
              items:
                $ref: '#/components/schemas/lockedWireTransferTemplateProperty'
              minItems: 0
              maxItems: 11
              default: []
            customerId:
              description: 'The ID of the banking customer that this payment batch is for. This is typically a business customer ID. Note: This is not the login or access ID of the customer.'
              allOf:
                - $ref: '#/components/schemas/resourceId'
            beneficiaryCurrency:
              description: For international wire transfers, this is the target currency for the beneficiary. This is required when the currency is not United States Dollars (USD).
              allOf:
                - $ref: '#/components/schemas/currencyReference'
            allows:
              $ref: '#/components/schemas/wireTransferTemplateAllowsPatch'
      required:
        - name
        - scope
        - originator
        - settlementAccount
        - beneficiary
        - beneficiaryInstitution
        - customerId
      example:
        name: Insurance Premiums
        scope: domestic
        amount: '3516.67'
        customerId: da133-1a9e91
        originator:
          name: Bill Bennings
          governmentIssuedId: '112223333'
          address:
            address1: 1805 Tiburon Dr.
            address2: Building 14, Suite 1500
            locality: Wilmington
            regionCode: NC
            countryCode: US
            postalCode: '28412'
          phoneNumber: '+9105551234'
        settlementAccount:
          id: bf23bc970b78d27691e
          label: Checking *1008
          maskedNumber: '*1008'
        intermediaryInstitution:
          name: First Bank of Andalasia
          address:
            address1: 239 West Princess Ave.
            locality: Andalasia
            regionCode: NC
            countryCode: US
            postalCode: '28407'
          locatorType: abaRoutingNumber
          locator: '123456789'
        beneficiary:
          name: Business Insurance Company
          address:
            address1: 1805 Tiburon Dr.
            address2: Building 14, Suite 1500
            locality: Wilmington
            regionCode: NC
            countryCode: US
            postalCode: '28412'
          phoneNumber: '+9105551234'
          accountNumber: '123456789'
        beneficiaryInstitution:
          name: First Bank of Andalasia
          address:
            address1: 239 West Princess Ave.
            locality: Andalasia
            regionCode: NC
            countryCode: US
            postalCode: '28407'
          locator: '503000196'
          locatorType: abaRoutingNumber
          instructions: Account should be a savings account.
        lockedProperties:
          - wireTransferOriginatorName
          - wireTransferOriginatorGovernmentIssuedId
          - wireTransferOriginatorCountryCode
          - wireTransferSettlementAccountNumber
    wireTransferTemplateItem:
      x-apiture-version: 11.0.0
      title: Wire Transfer Template Item (v11.0.0)
      description: Summary representation of a wire transfer template resource in payment batch templates collections. To fetch the full representation of this wire transfer template, use the [`getWireTransferTemplate`](#op-getWireTransferTemplate) operation, passing this item's `id` field as the `wireTransferTemplateId` path parameter.
      required:
        - id
        - name
        - scope
        - originator
        - settlementAccount
        - beneficiary
        - beneficiaryInstitution
        - customerId
        - allows
        - createdBy
        - createdAt
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/wireTransferTemplateFields'
        - $ref: '#/components/schemas/timestampFields'
        - type: object
          properties:
            id:
              description: The unique identifier for this wire transfer template resource. This is an immutable opaque string.
              $ref: '#/components/schemas/readOnlyResourceId'
            scope:
              description: Indicates whether the wire transfer template is for domestic or international wire transfers.
              $ref: '#/components/schemas/wireTransferPaymentScope'
            allows:
              $ref: '#/components/schemas/wireTransferTemplateAllows'
            customerId:
              description: 'The ID of the banking customer that this payment batch is for. This is typically a business customer ID. Note: This is not the login or access ID of the customer.'
              $ref: '#/components/schemas/resourceId'
            beneficiaryCurrency:
              description: For international wire transfers, this is the target currency for the beneficiary. This is required when the currency is not United States Dollars (USD).
              allOf:
                - $ref: '#/components/schemas/currency'
            derivedFrom:
              readOnly: true
              description: If this template was copied from another, this object describes that source wire transfer template. This field is only present when the wire transfer template was created via the [copy operation](#op-copyWireTransferTemplate).
              $ref: '#/components/schemas/wireTransferTemplateDerivation'
            createdBy:
              description: The customer who created this wire transfer template resource.
              $ref: '#/components/schemas/customerAccountReference'
            updatedBy:
              description: The customer who last updated this wire transfer template resource.
              $ref: '#/components/schemas/customerAccountReference'
      example:
        id: 0399abed-fd3d
        name: Insurance Premiums
        scope: domestic
        amount: '3516.67'
        customerId: da133-1a9e91
        originator:
          name: Benny Billings
          governmentIssuedId: '112223333'
          address:
            address1: 1805 Tiburon Dr.
            address2: Building 14, Suite 1500
            locality: Wilmington
            regionCode: NC
            countryCode: US
            postalCode: '28412'
          phoneNumber: '+9105551234'
        settlementAccount:
          id: bf23bc970b78d27691e
          label: Checking *1008
          maskedNumber: '*1008'
        beneficiary:
          name: Business Insurance Company
          address:
            address1: 1805 Tiburon Dr.
            address2: Building 14, Suite 1500
            locality: Wilmington
            regionCode: NC
            countryCode: US
            postalCode: '28412'
          phoneNumber: '+9105551234'
          accountNumber: '123456789'
        beneficiaryInstitution:
          name: First Bank of Andalasia
          address:
            address1: 239 West Princess Ave.
            locality: Andalasia
            regionCode: NC
            countryCode: US
            postalCode: '28407'
          locator: '503000196'
          locatorType: abaRoutingNumber
          instructions: Account should be a savings account.
        createdAt: '2023-08-04T19:06:04.250Z'
        updatedAt: '2023-08-04T19:06:04.250Z'
        createdBy:
          id: 0399abed-fd3d
          name: Benny Billings
          username: bbillings
        updatedBy:
          id: 0399abed-fd3d
          name: Benny Billings
          username: bbillings
        allows:
          view: true
          edit: false
          delete: false
          copy: false
          createWireTransfer: false
          createWireTransferOnMobile: false
    wireTransferTemplatePatch:
      x-apiture-version: 7.0.0
      title: Wire Transfer Template Patch (v7.0.0)
      description: Representation used to patch a wire transfer template using the [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules.
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/wireTransferTemplateFields'
        - $ref: '#/components/schemas/wireTransferTemplateInstitutionFields'
        - type: object
          properties:
            beneficiaryCurrency:
              description: The target currency for the beneficiary. This is only allowed for international wire transfers whose currency is not United States Dollars (USD).
              allOf:
                - $ref: '#/components/schemas/currencyReference'
            lockedProperties:
              description: List of the properties of a wire transfer template that may not be modified when a wire transfer is created from the template.
              type: array
              uniqueItems: true
              items:
                $ref: '#/components/schemas/lockedWireTransferTemplateProperty'
              minItems: 0
              maxItems: 11
            allows:
              $ref: '#/components/schemas/wireTransferTemplateAllowsPatch'
      example:
        lockedProperties:
          - wireTransferOriginatorName
          - wireTransferOriginatorGovernmentIssuedId
        allows:
          createWireTransferOnMobile: true
    wireTransferTemplate:
      x-apiture-version: 13.0.0
      title: Wire Transfer Template (v13.0.0)
      description: Representation of a wire transfer template resource.
      required:
        - id
        - scope
        - name
        - originator
        - settlementAccount
        - beneficiary
        - beneficiaryInstitution
        - customerId
        - lockedProperties
        - allows
        - createdAt
        - createdBy
        - updatedAt
        - updatedBy
      allOf:
        - $ref: '#/components/schemas/wireTransferTemplateItem'
        - $ref: '#/components/schemas/wireTransferTemplateInstitutionFields'
        - type: object
          properties:
            beneficiaryCurrency:
              description: For international wire transfers, this is the target currency for the beneficiary. This is required when the currency is not United States Dollars (USD).
              allOf:
                - $ref: '#/components/schemas/currency'
            lockedProperties:
              description: List of the properties of a wire transfer template that may not be modified when a wire transfer is created from the template.
              type: array
              uniqueItems: true
              items:
                $ref: '#/components/schemas/lockedWireTransferTemplateProperty'
              minItems: 0
              maxItems: 11
      example:
        id: 0399abed-fd3d
        scope: domestic
        customerId: da133-1a9e91
        originator:
          name: Phil Duciary
          governmentIssuedId: '112223333'
          address:
            address1: 1805 Tiburon Dr.
            address2: Building 14, Suite 1500
            locality: Wilmington
            regionCode: NC
            countryCode: US
            postalCode: '28412'
          phoneNumber: '+9105551234'
        settlementAccount:
          id: bf23bc970b78d27691e
          label: Payroll Checking *1008
          maskedNumber: '*1008'
        intermediaryInstitution:
          name: First Bank of Andalasia
          address:
            address1: 239 West Princess Ave.
            locality: Andalasia
            regionCode: NC
            countryCode: US
            postalCode: '28407'
          locatorType: abaRoutingNumber
          locator: '123456789'
        beneficiary:
          name: Bob Harley
          address:
            address1: 1805 Tiburon Dr.
            address2: Building 14, Suite 1500
            locality: Wilmington
            regionCode: NC
            countryCode: US
            postalCode: '28412'
          phoneNumber: '+9105551234'
          accountNumber: '123456789'
        beneficiaryInstitution:
          name: First Bank of Andalasia
          address:
            address1: 239 West Princess Ave.
            locality: Andalasia
            regionCode: NC
            countryCode: US
            postalCode: '28407'
          locator: '503000196'
          locatorType: abaRoutingNumber
          instructions: Account should be a savings account.
        lockedProperties:
          - wireTransferOriginatorName
          - wireTransferOriginatorGovernmentIssuedId
          - wireTransferOriginatorCountryCode
          - wireTransferSettlementAccountNumber
        derivedFrom:
          id: df437dfd-b15b
          name: Insurance Premiums
          lockedProperties:
            - wireTransferOriginatorName
            - wireTransferOriginatorGovernmentIssuedId
            - wireTransferOriginatorCountryCode
            - wireTransferSettlementAccountNumber
        createdAt: '2023-08-04T19:06:04.250Z'
        updatedAt: '2023-08-04T19:06:04.250Z'
        createdBy:
          id: 0399abed-fd3d
          name: Benny Billings
          username: bbillings
        updatedBy:
          id: 0399abed-fd3d
          name: Benny Billings
          username: bbillings
        allows:
          view: true
          edit: true
          delete: false
          copy: false
          createWireTransfer: false
          createWireTransferOnMobile: false
    paymentBatchTemplateReferenceFields:
      x-apiture-version: 1.0.1
      title: Payment Batch Template Reference Fields (v1.0.1)
      description: Fields used to compose a reference to a payment batch template.
      x-apiture-fragment: true
      type: object
      properties:
        id:
          description: The unique identifier for this payment batch template resource. This is an immutable opaque string.
          $ref: '#/components/schemas/readOnlyResourceId'
        name:
          description: The unique, human-readable name of the template.
          type: string
          format: text
          minLength: 1
          maxLength: 50
      example:
        id: 0d5b4d7b0219071a8412
        name: Insurance Premiums
    wireTransferTemplateDerivation:
      x-apiture-version: 4.0.0
      title: Wire Transfer Template Derivation (v4.0.0)
      description: If this wire transfer template was copied from another, this object describes that source template. This field is only present when the wire transfer template was created via the [copy operation](#op-copyWireTransferTemplate).
      required:
        - id
        - name
        - lockedProperties
      allOf:
        - $ref: '#/components/schemas/paymentBatchTemplateReferenceFields'
        - type: object
          properties:
            lockedProperties:
              description: List of the properties of a wire transfer template that may not be modified when a wire transfer is created from the template.
              type: array
              uniqueItems: true
              items:
                $ref: '#/components/schemas/lockedWireTransferTemplateProperty'
              minItems: 0
              maxItems: 11
              default: []
      example:
        id: 0d5b4d7b0219071a8412
        name: Insurance Premiums
        lockedProperties: []
    wireTransferTemplates:
      x-apiture-version: 11.0.0
      title: Wire Transfer Template Collection (v11.0.0)
      description: Collection of wire transfer templates. The items in the collection are ordered in the `items` array.
      allOf:
        - type: object
          required:
            - items
          properties:
            items:
              description: An array containing wire transfer template items.
              type: array
              maxItems: 1500
              items:
                $ref: '#/components/schemas/wireTransferTemplateItem'
      example:
        items:
          - id: 0399abed-fd3d
            name: Insurance Premiums
            scope: domestic
            amount: '3516.67'
            customerId: da133-1a9e91
            originator:
              name: Benny Billings
              governmentIssuedId: '112223333'
              address:
                address1: 1805 Tiburon Dr.
                address2: Building 14, Suite 1500
                locality: Wilmington
                regionCode: NC
                countryCode: US
                postalCode: '28412'
              phoneNumber: '+9105551234'
            settlementAccount:
              id: bf23bc970b78d27691e
              label: Checking *1008
              maskedNumber: '*1008'
            beneficiary:
              name: Business Insurance Company
              address:
                address1: 1805 Tiburon Dr.
                address2: Building 14, Suite 1500
                locality: Wilmington
                regionCode: NC
                countryCode: US
                postalCode: '28412'
              phoneNumber: '+9105551234'
              accountNumber: '123456789'
            beneficiaryInstitution:
              name: First Bank of Andalasia
              address:
                address1: 239 West Princess Ave.
                locality: Andalasia
                regionCode: NC
                countryCode: US
                postalCode: '28407'
              locator: '503000196'
              locatorType: abaRoutingNumber
              instructions: Account should be a savings account.
            createdAt: '2023-08-04T19:06:04.250Z'
            updatedAt: '2023-08-04T19:06:04.250Z'
            createdBy:
              id: 0399abed-fd3d
              name: Benny Billings
              username: bbillings
            updatedBy:
              id: 0399abed-fd3d
              name: Benny Billings
              username: bbillings
            allows:
              view: true
              edit: false
              delete: false
              copy: false
              createWireTransfer: false
              createWireTransferOnMobile: false
    lockedWireTransferTemplateProperty:
      x-apiture-version: 2.0.0
      title: Locked Wire Transfer Template Property (v2.0.0)
      description: |+
        A property of a payment template that may not be modified when a payment batch is created from the template. Changes made to the template are not applied to any payment batches previously created from the template.

        <strong><code>lockedWireTransferTemplateProperty</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>wireTransferOriginatorName</code></strong></td><td>Wire Transfer Originator Name</td>
            </tr>
        <tr>
            <td><strong><code>wireTransferOriginatorGovernmentIssuedId</code></strong></td><td>Wire Transfer Originator Government Issued Id or Tax ID</td>
            </tr>
        <tr>
            <td><strong><code>wireTransferOriginatorCountryCode</code></strong></td><td>Wire Transfer Originator Country Code</td>
            </tr>
        <tr>
            <td><strong><code>wireTransferOriginatorAddress1</code></strong></td><td>Wire Transfer Originator Address 1</td>
            </tr>
        <tr>
            <td><strong><code>wireTransferOriginatorAddress2</code></strong></td><td>Wire Transfer Originator Address 2</td>
            </tr>
        <tr>
            <td><strong><code>wireTransferOriginatorLocality</code></strong></td><td>Wire Transfer Originator Locality</td>
            </tr>
        <tr>
            <td><strong><code>wireTransferOriginatorRegion</code></strong></td><td>Wire Transfer Originator Region</td>
            </tr>
        <tr>
            <td><strong><code>wireTransferOriginatorPostalCode</code></strong></td><td>Wire Transfer Originator Postal Code</td>
            </tr>
        <tr>
            <td><strong><code>wireTransferOriginatorPhoneNumber</code></strong></td><td>Wire Transfer Originator Phone Number</td>
            </tr>
        <tr>
            <td><strong><code>wireTransferAmount</code></strong></td><td>Wire Transfer Amount</td>
            </tr>
        <tr>
            <td><strong><code>wireTransferSettlementAccountNumber</code></strong></td><td>Wire Transfer Settlement Account Number</td>
            </tr>
        <tr>
            <td><strong><code>wireTransferBeneficiaryCurrency</code></strong></td><td>Wire Transfer Beneficiary Currency</td>
            </tr>
        </table>

      type: string
      x-apiture-enum: lockedWireTransferTemplateProperty
      enum:
        - wireTransferOriginatorName
        - wireTransferOriginatorGovernmentIssuedId
        - wireTransferOriginatorCountryCode
        - wireTransferOriginatorAddress1
        - wireTransferOriginatorAddress2
        - wireTransferOriginatorLocality
        - wireTransferOriginatorRegion
        - wireTransferOriginatorPostalCode
        - wireTransferOriginatorPhoneNumber
        - wireTransferAmount
        - wireTransferSettlementAccountNumber
        - wireTransferBeneficiaryCurrency
    lockedAchTemplateProperty:
      x-apiture-version: 2.0.0
      title: Locked ACH Template Property (v2.0.0)
      description: |+
        A property of an ACH payment template that may not be modified when an ACH payment batch is created from the template. Changes made to the template are not applied to any ACH payment batches previously created from the template.

        <strong><code>lockedAchTemplateProperty</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>achPaymentName</code></strong></td><td>ACH Payment Name</td>
            </tr>
        <tr>
            <td><strong><code>achPaymentDescription</code></strong></td><td>ACH Payment Description</td>
            </tr>
        <tr>
            <td><strong><code>achSettlementAccount</code></strong></td><td>ACH Settlement Account</td>
            </tr>
        <tr>
            <td><strong><code>achCompanyType</code></strong></td><td>ACH Company Type</td>
            </tr>
        <tr>
            <td><strong><code>achCompanyName</code></strong></td><td>ACH Company Name</td>
            </tr>
        <tr>
            <td><strong><code>achCompanyId</code></strong></td><td>ACH Company ID</td>
            </tr>
        <tr>
            <td><strong><code>achMemo</code></strong></td><td>ACH Memo</td>
            </tr>
        <tr>
            <td><strong><code>achConfidentialCustomers</code></strong></td><td>ACH Confidential Customers</td>
            </tr>
        <tr>
            <td><strong><code>achRecipientPaymentAmount</code></strong></td><td>ACH Recipient Payment Amount</td>
            </tr>
        <tr>
            <td><strong><code>achRecipientPaymentAddenda</code></strong></td><td>ACH Recipient Payment Addenda</td>
            </tr>
        </table>

      type: string
      x-apiture-enum: lockedAchTemplateProperty
      enum:
        - achPaymentName
        - achPaymentDescription
        - achSettlementAccount
        - achCompanyType
        - achCompanyName
        - achCompanyId
        - achMemo
        - achConfidentialCustomers
        - achRecipientPaymentAmount
        - achRecipientPaymentAddenda
    wireTransferTemplateInstitutionFields:
      x-apiture-version: 3.3.1
      title: Wire Transfer Template Institution Fields (v3.3.1)
      description: Financial institution fields of the wire transfer template resource used to build other model schemas.
      x-apiture-fragment: true
      type: object
      properties:
        intermediaryInstitution:
          description: This financial institution serves as an intermediary between the issuer and beneficiary institutions to processes the wire transfer. Required for international wire transfers where the issuing financial institution is unable to process the international wire.
          $ref: '#/components/schemas/wireTransferIntermediaryInstitution'
        secondaryIntermediaryInstitution:
          description: This financial institution serves as an additional intermediary between the issuer and beneficiary institutions to processes the wire transfer. It is optional for international wire transfers where the issuing financial institution is unable to process the wire transfer, and is not allowed for domestic wire transfers.
          $ref: '#/components/schemas/wireTransferIntermediaryInstitution'
        receivingInstitution:
          description: For international wires, a receiving institution may be used if the beneficiary's account at the beneficiary's institution should be routed to a local branch. The receiving institution represents the local branch.
          $ref: '#/components/schemas/wireTransferReceivingInstitution'
        beneficiaryInstitution:
          description: The beneficiary financial institution. A `receivingInstitution` branch of this beneficiary financial institution may be the ultimate location where the wire transfer is deposited.
          $ref: '#/components/schemas/wireTransferBeneficiaryInstitution'
    wireTransferTemplateAllowsPatch:
      title: Wire Transfer Template Allows Patch (v1.0.0)
      description: Request body for patching a Wire Transfer Template's allowed operations.
      type: object
      properties:
        createWireTransferOnMobile:
          type: boolean
          description: The customer is allowed to create a wire transfer payment from the template from within mobile applications. Both this value _and_ `wireTransfer.allows.createWireTransfer` must be `true` to create a wire transfer from this template on mobile apps.
      x-apiture-version: 1.0.0
    wireTransferTemplateAllows:
      x-apiture-version: 3.0.0
      title: Wire Transfer Template Allows (v3.0.0)
      description: Indicates what wire transfer template actions are allowed for the current customer, given the user's entitlements and the state of the wire transfer template.
      type: object
      required:
        - view
        - edit
        - delete
        - copy
        - createWireTransfer
        - createWireTransferOnMobile
      readOnly: true
      properties:
        view:
          type: boolean
          description: The customer is allowed to view details of the wire transfer template.
        edit:
          type: boolean
          description: The customer is allowed to edit the wire transfer template.
        delete:
          type: boolean
          description: The customer is allowed to delete the wire transfer template.
        copy:
          type: boolean
          description: The customer is allowed to copy the wire transfer template.
        createWireTransfer:
          type: boolean
          description: The customer is allowed to create a wire transfer payment batch from the wire transfer template.
        createWireTransferOnMobile:
          type: boolean
          description: The customer is allowed to create a wire transfer payment from the template within the mobile application.
      example:
        view: true
        edit: false
        delete: false
        copy: false
        createWireTransfer: false
        createWireTransferOnMobile: false
    bulkWireTransferTemplatePatchRequest:
      x-apiture-version: 1.0.1
      title: Bulk Wire Transfer Template Patch Request (v1.0.1)
      description: A request to patch a set of wire transfer templates using [JSON Merge Patch](https://datatracker.ietf.org/doc/html/rfc7396) format and processing rules. Updating a template does not affect existing wire transfer payment batches created from the template.
      type: object
      required:
        - wireTransferTemplateIds
        - allows
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            wireTransferTemplateIds:
              description: A list of wire transfer templates. The `allows.createWireTransferOnMobile` flag is updated on each.
              $ref: '#/components/schemas/wireTransferTemplateIds'
            allows:
              $ref: '#/components/schemas/wireTransferTemplateAllowsPatch'
      example:
        wireTransferTemplateIds:
          - f83aabf8b2934cd007c9
          - 54af277363a2613af45a
        allows:
          createWireTransferOnMobile: true
    bulkWireTransferTemplateDeletionRequest:
      x-apiture-version: 1.0.2
      title: Bulk Wire Transfer Template Deletion Request (v1.0.2)
      description: A request to delete a set of wire transfer templates. Deleting a template does not affect existing payment batches involving the template.
      type: object
      required:
        - wireTransferTemplateIds
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            wireTransferTemplateIds:
              description: A list of wire transfer templates to delete.
              $ref: '#/components/schemas/wireTransferTemplateIds'
      example:
        wireTransferTemplateIds:
          - f83aabf8b2934cd007c9
          - 54af277363a2613af45a
    wireTransferTemplateIds:
      title: Wire Transfer Template Ids (v1.0.0)
      description: A list of wire transfer template IDs to apply an operation to.
      type: array
      minItems: 1
      maxItems: 999
      items:
        $ref: '#/components/schemas/resourceId'
      x-apiture-version: 1.0.0
    wireTransferTemplateBulkDeletions:
      x-apiture-version: 1.0.1
      title: Wire Transfer Template Deletions (v1.0.1)
      description: Response from the request to delete a set of wire transfer templates.
      type: object
      $ref: '#/components/schemas/abstractBulkWireTransferTemplateOperationResponse'
    wireTransferTemplateBulkUpdates:
      title: Wire Transfer Template Bulk Updates (v1.0.0)
      description: Response from the request to update a set of wire transfer templates.
      type: object
      $ref: '#/components/schemas/abstractBulkWireTransferTemplateOperationResponse'
      x-apiture-version: 1.0.0
    abstractBulkWireTransferTemplateOperationResponse:
      title: Bulk Wire Transfer Template Operation (v1.0.0)
      description: Bulk wire transfer template operation response.
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - type: object
          properties:
            items:
              description: The result of attempting to perform an action on a set of wire transfer templates in the request. Items in the array correspond (in order) to each wire transfer template ID in the request.
              type: array
              minItems: 1
              maxItems: 999
              items:
                description: The result of attempting to perform an action on one wire transfer template from the list of wire templates in the request.
                $ref: '#/components/schemas/bulkWireTransferTemplateOperationResponseItem'
      x-apiture-version: 1.0.0
    bulkWireTransferTemplateOperationResponseItem:
      title: Bulk Wire Transfer Template Operation Item (v1.0.0)
      description: An abstract item in a [bulk wire transfer template operation response](#schema-abstractBulkWireTransferTemplateOperationResponse).
      type: object
      required:
        - id
        - succeeded
      properties:
        id:
          description: The wire transfer template ID.
          $ref: '#/components/schemas/readOnlyResourceId'
        succeeded:
          description: '`true` if the operation was successful for the wire transfer template.'
          type: boolean
        problems:
          description: If the operation for this template failed (`succeeded` is `false`), this describes why. This may include forbidden, conflict, or other 4xx error or problem types that can occur with individual wire transfer template operation calls.
          type: array
          maxItems: 1000
          items:
            $ref: '#/components/schemas/apiProblem'
      x-apiture-version: 1.0.0
    problemResponse:
      title: Problem Response (v0.4.1)
      x-apiture-version: 0.4.1
      description: API problem or error response, as per [RFC 9457 application/problem+json](https://tools.ietf.org/html/rfc9457).
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/apiProblem'
      example:
        id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
        type: https://static.api.apiture.com/errors/noSuchAccount/v1.0.0
        title: Account Not Found
        status: 422
        occurredAt: '2022-04-25T12:42:21.375Z'
        detail: No account exists for the given account reference
        instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/problemResponse
    postalCode:
      title: Postal code (v1.0.0)
      description: The postal code, which varies in format by country. For postal codes in the US, this should be a five digit US ZIP code or ten character ZIP+4.
      type: string
      minLength: 2
      maxLength: 20
      pattern: '[0-9A-Za-z][- 0-9A-Za-z]{0,18}[0-9A-Za-z]'
      examples:
        - '20521'
        - 20521-1380
        - V6C 3T4
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/postalCode
      x-apiture-version: 1.0.0
    countryCode:
      title: Country Code (v1.0.0)
      description: The [ISO-3611 alpha-2](https://www.iso.org/glossary-for-iso-3166.html) value for a country.
      type: string
      minLength: 2
      maxLength: 2
      pattern: ^[A-Za-z]{2}$
      examples:
        - US
        - CA
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/countryCode
      x-apiture-version: 1.0.0
    latitude:
      title: Latitude (v1.0.0)
      description: The north-south angular distance of a point on Earth's surface, as measured from the equator. Distances to the north are expressed as positive numbers. Distances to the south are expressed as negative numbers.
      type: number
      minimum: -90
      maximum: 90
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/latitude
      x-apiture-version: 1.0.0
    longitude:
      x-apiture-version: 1.0.1
      title: Longitude (v1.0.1)
      description: The east-west angular distance of a point on Earth's surface, as measured from the Prime Meridian (passing through Greenwich, England). Distances to the east are expressed as positive numbers. Distances to the west are expressed as negative numbers.
      type: number
      minimum: -180
      maximum: 180
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/longitude
    transferFrequency:
      title: Transfer Frequency (v1.0.0)
      description: |+
        For recurring transfers, the interval at which the money movement recurs.

        <strong><code>transferFrequency</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>once</code></strong></td><td>Once: <p>Transfer does not repeat</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>occasional</code></strong></td><td>Occasional: <p>Transfer recurs but without a new scheduled date</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>daily</code></strong></td><td>Daily: <p>Repeat daily on business days</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>weekly</code></strong></td><td>Weekly: <p>Repeat weekly</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>biweekly</code></strong></td><td>biweekly: <p>Repeat every two weeks (26 times a year)</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>semimonthly</code></strong></td><td>Semimonthly: <p>Repeat twice a month (24 times a year)</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>monthly</code></strong></td><td>Monthly: <p>Repeat monthly</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>monthlyFirstDay</code></strong></td><td>Monthly First Day: <p>Repeat on the first business day of the month</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>monthlyLastDay</code></strong></td><td>Monthly Last Day: <p>Repeat on the last business day of the month</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>bimonthly</code></strong></td><td>Bimonthly: <p>Repeat every other month</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>quarterly</code></strong></td><td>Quarterly: <p>Repeat quarterly (four times a year)</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>semiyearly</code></strong></td><td>Semiyearly: <p>Repeat every six months (twice a year)</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>yearly</code></strong></td><td>Yearly: <p>Repeat once every year</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: transferFrequency
      enum:
        - once
        - occasional
        - daily
        - weekly
        - biweekly
        - semimonthly
        - monthly
        - monthlyFirstDay
        - monthlyLastDay
        - bimonthly
        - quarterly
        - semiyearly
        - yearly
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/transferFrequency
      x-apiture-version: 1.0.0
    timeZoneId:
      x-apiture-version: 1.3.0
      title: Time Zone Identifier or Offset (v1.3.0)
      description: A time zone. This may be either a time zone identifier/TZ Identifier (as described by [RFC 7808](https://datatracker.ietf.org/doc/html/rfc7808.html#section-3.6)) in [the list of time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), or a [time zone offset from UTC](https://www.rfc-editor.org/rfc/rfc3339#section-5.6) in the form `[-+]HH:MM`. Localized abbreviations, such as `EST` and `EDT`, are also allowed.
      type: string
      maxLength: 36
      format: text
      examples:
        - America/New_York
        - America/Chicago
        - America/Indiana/Petersburg
        - '+04:00'
        - '-03:30'
        - EDT
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/timeZoneId
    achAccountRisk:
      title: ACH Account Risk (v1.0.0)
      description: |+
        Describes the risk level of a payment batch's settlement account.

        <strong><code>achAccountRisk</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>early</code></strong></td><td>Early: <p>The account is debited three business days before the ACH transfer&#39;s effective date. The account balance is also checked for sufficient funds before the account is debited. A risk limit may apply for commercial accounts with an <code>early</code> risk level.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>normal</code></strong></td><td>Normal: <p>The account is debited two business days before the ACH transfer&#39;s effective date. The account balance is also checked for sufficient funds before the account is debited. A risk limit may apply for commercial accounts with a <code>normal</code> risk level.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>float</code></strong></td><td>Float: <p>The account is debited on the ACH transfer&#39;s effective date. The account balance is not checked for sufficient funds before the account is debited. A risk limit applies for commercial accounts with a <code>float</code> risk level.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>sameDay</code></strong></td><td>Same Day: <p>The account is credited on the ACH transfer&#39;s effective day. The account balance is not checked because <code>sameDay</code> is used for credit. A risk limit and per-transaction limit applies.</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: achAccountRisk
      enum:
        - early
        - normal
        - float
        - sameDay
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/achAccountRisk
      x-apiture-version: 1.0.0
    amountRange:
      title: Amount Range (v1.2.2)
      x-apiture-version: 1.2.2
      description: 'A monetary amount range, supporting inclusive or exclusive endpoints. The value may have the following forms: <ul> <li>`1200.50` match the dollar amount 1,200.50 exactly</li> <li>`[1000.00,1200.00)` matches items where `1000.00 <= amount < 1200.00`</li> <li>`[1000.00,1199.99]` matches items where `1000.00 <= amount <= 1199.99`</li> <li>`(999.99,1200.00)` matches items where `999.99 < amount < 1200.00`</li> <li>`[1200.50,]` matches items where `amount >= 1200.50`</li> <li>`(1200.50,)` matches items where `amount > 1200.50`</li> <li>`[,1200.50]` matches items where `amount <= 1200.50`</li> <li>`(,1200.50)` matches items where `amount < 1200.50`</li> </ul>'
      type: string
      pattern: ^((\d+(\.\d{0,2})?)|([\[\(](((\d+(\.\d{0,2})?),((\d+(\.\d{0,2})?))?)|(,(\d+(\.\d{0,2})?)))[\]\)]))$
      minLength: 1
      maxLength: 30
      examples:
        - '[1000.00,1200.00)'
        - '[1000.00,1199.99]'
        - (999.99,1200.00)
        - '[1200.50,]'
        - (1200.50,)
        - '[,1200.50]'
        - (,1200.50)
        - '1200.50'
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/amountRange
    dateRange:
      title: Date Range (v1.0.0)
      description: 'A date range, supporting inclusive or exclusive endpoints. Dates ranges use dates expressed in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format. The value may have the following forms: <ul> <li>`YYYY-MM-DD` match the date exactly; equivalent to matching dates in the range `[YYYY-MM-DD,YYYY-MM-DD]`</li> <li>`[YYYY-MM-DD,YYYY-MM-DD]` between two dates, inclusive of the endpoints</li> <li>`(YYYY-MM-DD,YYYY-MM-DD)` between two dates, exclusive of the endpoints</li> <li>`[YYYY-MM-DD,]` on or after the date</li> <li>`(YYYY-MM-DD,)` after the date</li> <li>`[,YYYY-MM-DD]` before or on the date</li> <li>`(,YYYY-MM-DD)` before the date</li> </ul>'
      type: string
      maxLength: 24
      pattern: ^\d{4}-\d{2}-\d{2}|([[(](\d{4}-\d{2}-\d{2},(\d{4}-\d{2}-\d{2})?|,\d{4}-\d{2}-\d{2})[)\]])$
      examples:
        - '2022-05-19'
        - '[2022-05-01,2022-05-31]'
        - '[2022-05-01,2022-06-01)'
        - '[2022-05-19,]'
        - (2022-05-19,)
        - '[,2022-05-19]'
        - (,2022-05-19)
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/dateRange
      x-apiture-version: 1.0.0
    resourceId:
      x-apiture-version: 1.0.1
      title: Resource Identifier (v1.0.1)
      description: The unique, opaque system identifier for a resource. This case-sensitive ID is also used as path parameters in URLs or in other properties or parameters that reference a resource by ID rather than URL.
      type: string
      pattern: ^[-_:.~$a-zA-Z0-9]{6,48}$
      minLength: 6
      maxLength: 48
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/resourceId
    readOnlyResourceId:
      x-apiture-version: 1.0.1
      title: Read-only Resource Identifier (v1.0.1)
      description: The unique, opaque system-assigned identifier for a resource. This case-sensitive ID is also used in URLs as path parameters or in other properties or parameters that reference a resource by ID rather than URL. Resource IDs are immutable.
      readOnly: true
      allOf:
        - $ref: '#/components/schemas/resourceId'
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/readOnlyResourceId
    monetaryValue:
      x-apiture-version: 1.1.1
      title: Monetary Value (v1.1.1)
      description: The monetary value, supporting only positive amounts. The numeric value is  represented as a string so that it can be exact with no loss of precision.
      example: '3456.78'
      format: decimal
      type: string
      pattern: ^(0|[1-9][0-9]*)\.[0-9][0-9]$
      maxLength: 16
      x-apiture-since: 0.4.0
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/monetaryValue
    abstractBody:
      title: Abstract Body (v0.2.0)
      x-apiture-version: 0.2.0
      description: An abstract schema used to define other request and response body model schemas.
      x-apiture-fragment: true
      type: object
      properties: {}
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/abstractBody
    currencyCode:
      description: A [ISO 4217 currency code](https://en.wikipedia.org/wiki/ISO_4217) This is always upper case ASCII. Crypto currencies with codes longer that 3 characters are not supported.
      type: string
      format: text
      pattern: ^[A-Z]{3}$
      minLength: 3
      maxLength: 3
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/currencyCode
      x-apiture-version: 1.0.0
      title: ' (v1.0.0)'
    bankingDisclosureDocumentType:
      x-apiture-version: 1.2.0
      title: Banking Disclosure Document Type (v1.2.0)
      description: |+
        The type of disclosure document.

        <strong><code>bankingDisclosureDocumentType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>termsAndConditions</code></strong></td><td>Terms and Conditions: <p>Terms and conditions for a banking account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>termsAndConditionsSupplement</code></strong></td><td>Supplement to Terms and Conditions: <p>A supplement or addendum to the terms and conditions for a banking account</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>attestation</code></strong></td><td>Attestation: <p>Personal attestation that all supplied information is truthful and correct</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>electronicConsent</code></strong></td><td>Electronic Consent: <p>Consent to use electronic communications between the financial institution and the banking customer</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>privacyDocument</code></strong></td><td>Privacy Document: <p>How the financial institution protects the customer&#39;s privacy. Deprecated. Use <code>privacyPolicy</code> instead.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>privacyPolicy</code></strong></td><td>Privacy Policy: <p>Policy describing how the financial institution protects the customer&#39;s privacy.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>digitalBankingAgreement</code></strong></td><td>Digital Banking Agreement: <p>Consent for usage of digital banking between the financial institution and the banking customer</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>other</code></strong></td><td>Other: <p>Another document type</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: bankingDisclosureDocumentType
      enum:
        - termsAndConditions
        - termsAndConditionsSupplement
        - electronicConsent
        - digitalBankingAgreement
        - privacyDocument
        - privacyPolicy
        - attestation
        - other
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/bankingDisclosureDocumentType
    contentType:
      x-apiture-version: 1.0.1
      title: Content Type (v1.0.1)
      description: The [media type](https://tools.ietf.org/html/rfc6838) of a file.
      type: string
      minLength: 8
      maxLength: 191
      pattern: ^[-a-z0-9]{4,48}\/[-+a-z0-9.]{3,142}$
      example: application/pdf
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/contentType
    twoDecimalInterestRate:
      x-apiture-version: 1.0.1
      title: Two Decimal Interest Rate (v1.0.1)
      description: An interest rate, expressed as a percentage value with two decimal places of precision.
      type: string
      format: decimal
      example: '1.40'
      pattern: ^(-|\+)?(0|[1-9]\d?)\.\d{2}$
      minLength: 4
      maxLength: 7
      x-apiture-since: 0.4.0
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/twoDecimalInterestRate
    createdAtField:
      description: A field used to represent the `createdAt` date-time for a resource.
      x-apiture-fragment: true
      type: object
      properties:
        createdAt:
          description: The date-time when this resource was created, in [RFC 3339](https://tools.ietf.org/html/rfc3339) date-time `YYYY-MM-DDThh:mm:ss.sssZ` format, UTC. This is derived and immutable.
          $ref: '#/components/schemas/readOnlyTimestamp'
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/createdAtField
      x-apiture-version: 1.0.0
      title: ' (v1.0.0)'
    date:
      title: Date (v1.0.0)
      description: A date formatted in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` UTC format.
      type: string
      minLength: 10
      maxLength: 10
      format: date
      example: '2021-10-30'
      x-apiture-since: 0.5.0
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/date
      x-apiture-version: 1.0.0
    money:
      x-apiture-version: 1.0.2
      title: Money (v1.0.2)
      description: An amount of money in a specific currency.
      type: object
      properties:
        value:
          description: The net monetary value. A negative amount denotes a debit; a positive amount denotes a credit. The numeric value is represented as a string so that it can be exact with no loss of precision.
          $ref: '#/components/schemas/monetaryValue'
        currency:
          description: The [ISO 4217 currency code](https://en.wikipedia.org/wiki/ISO_4217) for this monetary value.
          $ref: '#/components/schemas/currencyCode'
      example:
        value: '1000.00'
        currency: USD
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/money
    readOnlyTimestamp:
      title: Read-Only Timestamp (v1.0.0)
      description: 'A readonly or derived timestamp (an instant in time) formatted in [RFC 3339](https://tools.ietf.org/html/rfc3339) `date-time` UTC format: `YYYY-MM-DDThh:mm:ss.sssZ`.'
      type: string
      minLength: 20
      maxLength: 30
      format: date-time
      readOnly: true
      example: '2021-10-30T19:06:04.250Z'
      x-apiture-since: 0.4.0
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/readOnlyTimestamp
      x-apiture-version: 1.0.0
    abstractPagedBody:
      title: Abstract Paged Body (v0.5.1)
      x-apiture-version: 0.5.1
      description: An abstract schema used to define paginated collections of resources. Collection classes which extend this schema define an array of `items` which represent a page of data.
      x-apiture-fragment: true
      type: object
      allOf:
        - $ref: '#/components/schemas/abstractBody'
        - $ref: '#/components/schemas/abstractPagedBodyFields'
        - type: object
          properties:
            start:
              description: The opaque cursor that specifies the starting location of this page of items.
              type: string
              format: text
              maxLength: 256
      example:
        start: 1922a8531e8384cfa71b
        limit: 100
        nextPage_url: https://static.api.apiture.com/banking/resources?start=8b76b4a97dccad88890e&limit=100
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/abstractPagedBody
    accountLocation:
      x-apiture-version: 1.1.0
      title: Account Location (v1.1.0)
      description: |+
        Indicates where an account is held

        <strong><code>accountLocation</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>internal</code></strong></td><td>Internal: <p>Accounts held by the banking customer at the current financial institution</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>external</code></strong></td><td>External: <p>Accounts held by the banking customer at another financial institution</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>outside</code></strong></td><td>Outside: <p>Non-banking accounts such as brokerage and fund accounts.</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>peer</code></strong></td><td>Peer: <p>Accounts held by others at the same financial institution, for which the banking customer has transfer to and/or transfer from entitlements.</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: accountLocation
      enum:
        - internal
        - external
        - outside
        - peer
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/accountLocation
    creditOrDebitValue:
      x-apiture-version: 1.1.1
      title: Credit Or Debit Value (v1.1.1)
      description: The monetary value representing a credit (positive amounts with no prefix or a `+` prefix) or debit (negative amounts with a `-` prefix). The numeric value is  represented as a string so that it can be exact with no loss of precision.
      example: '3456.78'
      type: string
      format: decimal
      pattern: ^(-|\+)?(0|[1-9][0-9]*)\.[0-9][0-9]$
      maxLength: 16
      x-apiture-since: 0.4.0
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/creditOrDebitValue
    challengeFactorType:
      title: Challenge Factor Type (v1.0.0)
      description: |+
        The name of challenge factor.

        <strong><code>challengeFactorType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>sms</code></strong></td><td>SMS: <p>One-time passcode sent to the primary mobile phone number</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>email</code></strong></td><td>Email: <p>One-time passcode sent to the primary email address</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>voice</code></strong></td><td>Voice: <p>One-time passcode communicated via automated voice phone call</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>authenticatorToken</code></strong></td><td>authenticator Token: <p>One-time passcode issued by a pre-registered hardware device, such as a token key fob, or an authenticator app</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>securityQuestions</code></strong></td><td>Security Questions: <p>Prompt with the user&#39;s security questions registered with their security profile</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: challengeFactorType
      enum:
        - sms
        - email
        - voice
        - securityQuestions
        - authenticatorToken
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeFactorType
      x-apiture-version: 1.0.0
    challengeFactorId:
      title: Challenge Factor ID (v1.0.0)
      description: The ID of an a challenge factor. This ID is unique within the factors offered with a challenge.
      type: string
      pattern: ^[-a-zA-Z0-9$_]{3,48}$
      minLength: 3
      maxLength: 48
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeFactorId
      x-apiture-version: 1.0.0
    challengeOperationId:
      x-apiture-version: 1.0.1
      title: Challenge Operation ID (v1.0.1)
      description: The ID of an operation/action for which the user must verify their identity via an identity challenge. This is passed when starting a challenge factor or when validating the identity challenge responses.
      type: string
      pattern: ^[-a-zA-Z0-9$_]{6,48}$
      minLength: 6
      maxLength: 48
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeOperationId
    challengePromptId:
      title: Challenge Prompt ID (v1.0.0)
      description: The unique ID of a prompt (such as a security question) in a challenge factor.
      type: string
      pattern: ^[-_:.~$a-zA-Z0-9]+$
      minLength: 1
      maxLength: 48
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengePromptId
      x-apiture-version: 1.0.0
    externalResourceId:
      x-apiture-version: 1.1.0
      title: External Resource Identifier (v1.1.0)
      description: The unique, opaque system identifier for an external resource. This case-sensitive ID is also used as path parameters in URLs or in other properties or parameters that reference an external resource by ID rather than URL.
      type: string
      format: text
      readOnly: true
      minLength: 1
      maxLength: 256
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/externalResourceId
    address:
      x-apiture-version: 1.6.1
      title: Address (v1.6.1)
      description: A postal address that can hold a US address or an international (non-US) postal addresses.
      type: object
      required:
        - address1
        - locality
        - postalCode
        - countryCode
      allOf:
        - $ref: '#/components/schemas/fullAddressFields'
      examples:
        - address1: 1805 Tiburon Dr.
          address2: Building 14, Suite 1500
          locality: Wilmington
          regionCode: NC
          countryCode: US
          postalCode: '28403'
        - address1: 999 Canada Place
          locality: Vancouver
          regionName: British Columbia
          countryCode: CA
          postalCode: V6C 3T4
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/address
    simplePhoneNumber:
      x-apiture-version: 1.1.0
      title: Simple Phone Number (v1.1.0)
      description: The phone number as a string. The service strips all spaces, hyphens, periods and parentheses from input. The default country code prefix is `+1`. Phone numbers are returned in responses in [E.164](https://en.wikipedia.org/wiki/E.164) format with a leading `+`, country code (up to 3 digits) and subscriber number for a total of up to 15 digits. See [Phone Number Representations](https://developer.apiture.com/docs/concepts/phone-numbers/) for more information. If the number is masked to hide Personally Identifiable Information, all but the last four digits are replaced with one or more `*`, such as `*1234`.
      type: string
      example: '+19105550155'
      minLength: 5
      maxLength: 20
      format: phone-number
      x-apiture-since: 0.5.0
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/simplePhoneNumber
    coordinates:
      x-apiture-version: 1.0.1
      title: Coordinates (v1.0.1)
      description: The latitude and longitude coordinate positions of a location.
      type: object
      required:
        - latitude
        - longitude
      properties:
        latitude:
          $ref: '#/components/schemas/latitude'
        longitude:
          $ref: '#/components/schemas/longitude'
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/coordinates
    typedPhoneNumber:
      x-apiture-version: 1.2.0
      title: Typed Phone Number (v1.2.0)
      description: A combination of a phone number and a method of description. This should be used when a resource is permitted to include more than one phone number.
      type: object
      properties:
        type:
          type: string
          description: A typed method to differentiate the phone number.
          format: text
          maxLength: 40
          example: business
        number:
          $ref: '#/components/schemas/simplePhoneNumber'
      required:
        - type
        - number
      x-apiture-since: 0.5.0
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/typedPhoneNumber
    positiveIntegerRange:
      title: Positive Integer Range (v1.1.0)
      x-apiture-version: 1.1.0
      description: 'A positive integer range, supporting inclusive or exclusive endpoints. The value may have the following forms: <ul> <li>`1200` match the integer 1,200 exactly</li> <li>`[1000,1200)` matches items where `1000 <= number < 1200`</li> <li>`[1000,1199]` matches items where`1000 <= number <= 1199`</li> <li>`[999,1200]` matches items where `999 < number < 1200`</li> <li>`[1200,]`  `number >= 1200`</li> <li>`(1200,)` greater than the value: `number >= 1200`</li> <li>`[,1200]` less than or equal to the value: `number <= 1200`</li> <li>`(,1200)` less than the value: `number < 1200`</li> </ul>'
      type: string
      pattern: ^\d+|([[(](\d+,(\d+)?|,\d+)[)\]])$
      maxLength: 20
      examples:
        - '[1000,1200)'
        - '[1000,1199]'
        - '[999,1200]'
        - '[1200,]'
        - (1200,)
        - '[,1200]'
        - (,1200)
        - '1200'
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/positiveIntegerRange
    timestamp:
      title: Timestamp (v1.0.0)
      description: A timestamp (an instant in time) formatted in `YYYY-MM-DDThh:mm:ss.sssZ` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date-time` UTC format.
      type: string
      minLength: 20
      maxLength: 30
      format: date-time
      example: '2021-10-30T19:06:04.250Z'
      x-apiture-since: 0.4.0
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/timestamp
      x-apiture-version: 1.0.0
    transferRecurrenceType:
      title: Transfer Recurrence Type (v1.0.0)
      description: |+
        Describes whether the transfer amount in the transfer varies or is fixed when the transfer recurs. This is ignored if the transfer frequency is `once`.

        <strong><code>transferRecurrenceType</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>fixed</code></strong></td><td>Fixed: <p>The transfer amounts are the same each time a transfer recurs</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>variable</code></strong></td><td>Variable: <p>The transfer amounts vary and must be entered/verified each time a transfer recurs</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: transferRecurrenceType
      enum:
        - fixed
        - variable
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/transferRecurrenceType
      x-apiture-version: 1.0.0
    timestampFields:
      x-apiture-version: 1.1.0
      title: Timestamp Fields (v1.1.0)
      description: Timestamps which describe when a resource was created or last updated.
      x-apiture-fragment: true
      allOf:
        - $ref: '#/components/schemas/createdAtField'
        - type: object
          properties:
            updatedAt:
              description: The date-time when the resource was last updated, in [RFC 3339](https://tools.ietf.org/html/rfc3339) date-time `YYYY-MM-DDThh:mm:ss.sssZ` format, UTC. This is derived and immutable.
              $ref: '#/components/schemas/readOnlyTimestamp'
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/timestampFields
    apiProblem:
      x-apiture-version: 1.2.1
      title: API Problem (v1.2.1)
      description: API problem or error, as per [RFC 7807 application/problem+json](https://tools.ietf.org/html/rfc7807).
      type: object
      properties:
        type:
          type: string
          format: uri-reference
          description: |
            A [URI reference (RFC3986)](https://tools.ietf.org/html/rfc3986) that identifies the problem type. If present, this is the URL of human-readable HTML documentation for the problem type. When this member is not present, its value is assumed to be `"about:blank"`.
          example: https://static.api.apiture.com/errors/forbidden/v1.0.0
          maxLength: 2048
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. The title is usually the same for all problem with the same `type`.
          maxLength: 120
          format: text
          example: User is not authorized to perform the requested action or access the requested resource.
        status:
          type: integer
          format: int32
          description: |
            The [HTTP status code](https://datatracker.ietf.org/doc/html/rfc7231#section-6) for this occurrence of the problem.
          minimum: 100
          maximum: 599
          example: 403
        detail:
          type: string
          description: |
            A human-readable explanation specific to this occurrence of the problem.
          maxLength: 256
          format: text
          example: User is not authorized to perform this operation.
        instance:
          type: string
          format: uri-reference
          description: |
            A URI reference that identifies the specific occurrence of the problem. This is the URI of an API resource that the problem is related to, with a unique error correlation ID URI fragment
          example: https://prduction.api.apiture.com/banking/accounts/ad80fc3e722q5402a#189c13ff-c54c-45f7-b8e0-c88984ba724d
          maxLength: 2048
        id:
          description: The unique identifier for this problem. This is an immutable opaque string.
          $ref: '#/components/schemas/readOnlyResourceId'
        occurredAt:
          description: The timestamp when the problem occurred, in [RFC 3339](https://tools.ietf.org/html/rfc3339) date-time `YYYY-MM-DDThh:mm:ss.sssZ` format, UTC.
          $ref: '#/components/schemas/readOnlyTimestamp'
        problems:
          description: Optional root-causes if there are multiple problems in the request or API call processing.
          type: array
          maxItems: 128
          items:
            $ref: '#/components/schemas/apiProblem'
        attributes:
          type: object
          description: Additional optional attributes related to the problem. This data conforms to the schema associated with the error type.
      example:
        id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
        type: https://static.api.apiture.com/errors/accountNotFound/v1.0.0
        title: Account Not Found
        status: 422
        occurredAt: '2022-04-25T12:42:21.375Z'
        detail: No account exists at the given account_url
        instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/apiProblem
    fullAchAccountNumber:
      title: Full ACH Account Number (v1.0.0)
      description: A full account number used in ACH account processing.
      type: string
      minLength: 2
      maxLength: 17
      pattern: ^[- a-zA-Z0-9.]{2,17}$
      examples:
        - '123456789'
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/fullAchAccountNumber
      x-apiture-version: 1.0.0
    achSecCode:
      title: ACH SEC Code (v1.0.0)
      description: |+
        The ACH transfer type.

        <strong><code>achSecCode</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>arc</code></strong></td><td>Accounts Receivable</td>
            </tr>
        <tr>
            <td><strong><code>boc</code></strong></td><td>Back Office Conversion</td>
            </tr>
        <tr>
            <td><strong><code>ccd</code></strong></td><td>Credit or Debit</td>
            </tr>
        <tr>
            <td><strong><code>cie</code></strong></td><td>Customer-Initiated</td>
            </tr>
        <tr>
            <td><strong><code>ctx</code></strong></td><td>Corporate Trade Exchange</td>
            </tr>
        <tr>
            <td><strong><code>pop</code></strong></td><td>Point of Purchase</td>
            </tr>
        <tr>
            <td><strong><code>ppd</code></strong></td><td>Prearranged Payment and Deposit</td>
            </tr>
        <tr>
            <td><strong><code>rck</code></strong></td><td>Re-Presented Check</td>
            </tr>
        <tr>
            <td><strong><code>tel</code></strong></td><td>Telephone-initiated</td>
            </tr>
        <tr>
            <td><strong><code>web</code></strong></td><td>Internet-initiated/Mobile</td>
            </tr>
        </table>

      type: string
      x-apiture-enum: achSecCode
      enum:
        - arc
        - boc
        - ccd
        - cie
        - ctx
        - pop
        - ppd
        - rck
        - tel
        - web
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/achSecCode
      x-apiture-version: 1.0.0
    nullableReadOnlyResourceId:
      title: Nullable Read-only Resource Identifier (v1.0.0)
      description: The unique, opaque system-assigned identifier for a resource. This case-sensitive ID is used in properties that reference a resource by ID rather than URL. This can be used in patch operations to detach a resource. Resource IDs are immutable.
      readOnly: true
      allOf:
        - $ref: '#/components/schemas/nullableResourceId'
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/nullableReadOnlyResourceId
      x-apiture-version: 1.0.0
    nullableResourceId:
      title: Nullable Resource Identifier (v1.0.0)
      description: The unique, opaque system-assigned identifier for a resource. This case-sensitive ID is used in properties that reference a resource by ID rather than URL. This can be used in patch operations to detach a resource.
      type:
        - string
        - 'null'
      pattern: ^[-_:.~$a-zA-Z0-9]+$
      minLength: 6
      maxLength: 48
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/nullableResourceId
      x-apiture-version: 1.0.0
    partialAddress:
      x-apiture-version: 1.0.1
      title: Partial Address (v1.0.1)
      description: A partial postal address that can hold a US address or an international (non-US) postal addresses. Partial addresses do not require any property to have a value.
      type: object
      allOf:
        - $ref: '#/components/schemas/fullAddressFields'
      examples:
        - address1: 1805 Tiburon Dr.
        - locality: Wilmington
          regionCode: NC
        - countryCode: US
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/partialAddress
    addressFields:
      x-apiture-version: 1.4.0
      title: Address Fields (v1.4.0)
      description: Properties of a simple address, used to compose other addresses.
      x-apiture-fragment: true
      properties:
        address1:
          type: string
          description: The first line of the postal address. In the US, this typically includes the building number and street name.
          example: 1805 Tiburon Dr.
          maxLength: 35
          format: text
        address2:
          type: string
          description: The second line of the street address. This should only be used if it has a value. Typical values include building numbers, suite numbers, and other identifying information beyond the first line of the postal address.
          example: Building 14, Suite 1500
          maxLength: 35
          format: text
        locality:
          type: string
          description: The city/town/municipality of the address.
          examples:
            - Wilmington
            - Atlanta
          maxLength: 30
          format: text
        countryCode:
          $ref: '#/components/schemas/countryCode'
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/addressFields
    customerAccountReference:
      x-apiture-version: 2.0.0
      title: Customer Account Reference (v2.0.0)
      description: The representation of a customer account.
      type: object
      required:
        - id
        - name
        - username
      properties:
        id:
          description: The immutable, unique, opaque identifier for the user.
          $ref: '#/components/schemas/resourceId'
        name:
          description: The user's full name.
          type: string
          format: text
          maxLength: 20
        username:
          description: The user's login name.
          $ref: '#/components/schemas/customerUsername'
      example:
        id: 0399abed-fd3d
        name: Benny Billings
        username: bbillings
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/customerAccountReference
    importState:
      title: Import State (v1.0.0)
      description: |+
        The state of this imported resource.

        <strong><code>importState</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>imported</code></strong></td><td>Imported: <p>The resource is successfully imported</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>failed</code></strong></td><td>Failed: <p>The resource is unable to import</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>processing</code></strong></td><td>Processing: <p>The resource is still being processed from import</p>
        </td>
            </tr>
        </table>

      type: string
      x-apiture-enum: importState
      enum:
        - imported
        - failed
        - processing
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/importState
      x-apiture-version: 1.0.0
    institutionId:
      x-apiture-version: 1.1.0
      title: Institution ID (v1.1.0)
      description: The unique immutable identifier of a financial institution.
      type: string
      pattern: ^[A-Z0-9_]{2,8}$
      maxLength: 8
      minLength: 2
      example: TIBURON
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/institutionId
    entityTag:
      title: Entity Tag (v1.0.0)
      description: An strong or weak [HTTP Entity Tag (ETag)](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag). Strong ETags take the form `"{printable-non-control-ASCII-characters}"` but for backwards compatibility the surrounding double quotes are optional. Weak ETags take the form `W/"{printable-non-control-ASCII-characters}"`.
      type: string
      minLength: 3
      maxLength: 512
      pattern: ^(([\x21\x23-\x7e]{1,512})|(W\/\"[\x21\x23-\x7e]{1,509}\"))$
      example: W/"325cf1cc-e370-4baf-8faf-c6db23f195a2"
      x-apiture-version: 1.0.0
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/entityTag
    institutionName1:
      title: Institution Name (v1.0.0)
      description: A financial institution's name.
      type: string
      format: text
      minLength: 2
      maxLength: 128
      x-resolved-from: ../../institutions/openapi.yaml#/components/schemas/institutionName
      x-apiture-version: 1.0.0
    wireTransferInstitutionLocatorType1:
      title: Wire Transfer Institution Locator Type (v1.0.0)
      description: |+
        Indicates the type of the institution `locator` for a wire transfer.

        <strong><code>wireTransferInstitutionLocatorType1</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>abaRoutingNumber</code></strong></td><td>ABA Routing Number: <p>The <a href="https://www.aba.com/about-us/routing-number">American Bankers Association routing number</a> of a financial institution</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>swiftBicCode</code></strong></td><td>SWIFT/BIC Code: <p>The <a href="https://www.swift.com/standards/data-standards/bic-business-identifier-code">SWIFT Business Identifier Code (BIC) code</a> of a financial institution</p>
        </td>
            </tr>
        <tr>
            <td><strong><code>other</code></strong></td><td>Other: <p>A financial institution identifier other than ABA Routing Number or SWIFT Business Identifier Code (BIC)</p>
        </td>
            </tr>
        </table>

      x-apiture-enum: wireTransferInstitutionLocatorType
      type: string
      enum:
        - abaRoutingNumber
        - swiftBicCode
        - other
      x-resolved-from: ../../paymentBatches/openapi.yaml#/components/schemas/wireTransferInstitutionLocatorType
      x-apiture-version: 1.0.0
    lockedWireTransferTemplateProperty1:
      x-apiture-version: 2.0.0
      title: Locked Wire Transfer Template Property (v2.0.0)
      description: |+
        A property of a payment template that may not be modified when a payment batch is created from the template. Changes made to the template are not applied to any payment batches previously created from the template.

        <strong><code>lockedWireTransferTemplateProperty1</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>wireTransferOriginatorName</code></strong></td><td>Wire Transfer Originator Name</td>
            </tr>
        <tr>
            <td><strong><code>wireTransferOriginatorGovernmentIssuedId</code></strong></td><td>Wire Transfer Originator Government Issued Id or Tax ID</td>
            </tr>
        <tr>
            <td><strong><code>wireTransferOriginatorCountryCode</code></strong></td><td>Wire Transfer Originator Country Code</td>
            </tr>
        <tr>
            <td><strong><code>wireTransferOriginatorAddress1</code></strong></td><td>Wire Transfer Originator Address 1</td>
            </tr>
        <tr>
            <td><strong><code>wireTransferOriginatorAddress2</code></strong></td><td>Wire Transfer Originator Address 2</td>
            </tr>
        <tr>
            <td><strong><code>wireTransferOriginatorLocality</code></strong></td><td>Wire Transfer Originator Locality</td>
            </tr>
        <tr>
            <td><strong><code>wireTransferOriginatorRegion</code></strong></td><td>Wire Transfer Originator Region</td>
            </tr>
        <tr>
            <td><strong><code>wireTransferOriginatorPostalCode</code></strong></td><td>Wire Transfer Originator Postal Code</td>
            </tr>
        <tr>
            <td><strong><code>wireTransferOriginatorPhoneNumber</code></strong></td><td>Wire Transfer Originator Phone Number</td>
            </tr>
        <tr>
            <td><strong><code>wireTransferAmount</code></strong></td><td>Wire Transfer Amount</td>
            </tr>
        <tr>
            <td><strong><code>wireTransferSettlementAccountNumber</code></strong></td><td>Wire Transfer Settlement Account Number</td>
            </tr>
        <tr>
            <td><strong><code>wireTransferBeneficiaryCurrency</code></strong></td><td>Wire Transfer Beneficiary Currency</td>
            </tr>
        </table>

      type: string
      x-apiture-enum: lockedWireTransferTemplateProperty
      enum:
        - wireTransferOriginatorName
        - wireTransferOriginatorGovernmentIssuedId
        - wireTransferOriginatorCountryCode
        - wireTransferOriginatorAddress1
        - wireTransferOriginatorAddress2
        - wireTransferOriginatorLocality
        - wireTransferOriginatorRegion
        - wireTransferOriginatorPostalCode
        - wireTransferOriginatorPhoneNumber
        - wireTransferAmount
        - wireTransferSettlementAccountNumber
        - wireTransferBeneficiaryCurrency
      x-resolved-from: ../../paymentTemplates/openapi.yaml#/components/schemas/lockedWireTransferTemplateProperty
    lockedAchTemplateProperty1:
      x-apiture-version: 2.0.0
      title: Locked ACH Template Property (v2.0.0)
      description: |+
        A property of an ACH payment template that may not be modified when an ACH payment batch is created from the template. Changes made to the template are not applied to any ACH payment batches previously created from the template.

        <strong><code>lockedAchTemplateProperty1</code></strong> strings may have one of the following
        [enumerated values](https://developer.apiture.com/docs/concepts/label-groups#enumerations):

        <table>
        <tr>
          <th>Value</th><th>Description</th>
        </tr>

        <tr>
            <td><strong><code>achPaymentName</code></strong></td><td>ACH Payment Name</td>
            </tr>
        <tr>
            <td><strong><code>achPaymentDescription</code></strong></td><td>ACH Payment Description</td>
            </tr>
        <tr>
            <td><strong><code>achSettlementAccount</code></strong></td><td>ACH Settlement Account</td>
            </tr>
        <tr>
            <td><strong><code>achCompanyType</code></strong></td><td>ACH Company Type</td>
            </tr>
        <tr>
            <td><strong><code>achCompanyName</code></strong></td><td>ACH Company Name</td>
            </tr>
        <tr>
            <td><strong><code>achCompanyId</code></strong></td><td>ACH Company ID</td>
            </tr>
        <tr>
            <td><strong><code>achMemo</code></strong></td><td>ACH Memo</td>
            </tr>
        <tr>
            <td><strong><code>achConfidentialCustomers</code></strong></td><td>ACH Confidential Customers</td>
            </tr>
        <tr>
            <td><strong><code>achRecipientPaymentAmount</code></strong></td><td>ACH Recipient Payment Amount</td>
            </tr>
        <tr>
            <td><strong><code>achRecipientPaymentAddenda</code></strong></td><td>ACH Recipient Payment Addenda</td>
            </tr>
        </table>

      type: string
      x-apiture-enum: lockedAchTemplateProperty
      enum:
        - achPaymentName
        - achPaymentDescription
        - achSettlementAccount
        - achCompanyType
        - achCompanyName
        - achCompanyId
        - achMemo
        - achConfidentialCustomers
        - achRecipientPaymentAmount
        - achRecipientPaymentAddenda
      x-resolved-from: ../../paymentTemplates/openapi.yaml#/components/schemas/lockedAchTemplateProperty
    requiredIdentityChallenge:
      x-apiture-version: 1.2.3
      title: Required Challenge (v1.2.3)
      description: A request from the service for the user to verify their identity. This contains a challenge ID, the corresponding operation ID, and a list of challenge factors for identity verification. The user must complete one of these challenge factors to satisfy the challenge. This schema defines the attributes in the 401 [Unauthorized problem response](#schema-apiProblem) when the 401 problem type name is `challengeRequired`. See the "Challenge API" for details.
      type: object
      required:
        - operationId
        - challengeId
        - factors
      properties:
        operationId:
          $ref: '#/components/schemas/challengeOperationId'
        challengeId:
          description: The unique ID of this challenge instance. This is an opaque string. This is passed when starting a challenge factor or when validating the identity challenge responses.
          $ref: '#/components/schemas/readOnlyResourceId'
        factors:
          description: 'A list of challenge factors. The user must complete one of these challenge factors. The `labels` in each factor identify one or more channels the user may use, such as a list of email addresses the system may use to send a one-time passcode to the user. ***Note**: The same channel may be used by multiple factors in the array of factors. For example, the user''s primary mobile phone number may be used for both an `sms` factor and a `voice` factor.'
          type: array
          minItems: 1
          maxItems: 8
          items:
            $ref: '#/components/schemas/challengeFactor'
      example:
        operationId: createTransfer
        challengeId: 0504076c566a3cf7009c
        factors:
          - type: sms
            labels:
              - '9876'
            id: 85c0ee5753fcd0b0953f
          - type: voice
            labels:
              - '9876'
            id: d089e10a80a8627df37b
          - type: voice
            labels:
              - '6754'
            id: 10506ecf9d1c2ee00403
          - type: email
            labels:
              - an****nk@example.com
              - an****98@example.com
            id: e917d671cb2f030b56f1
          - type: authenticatorToken
            labels:
              - Acme fob
            id: fe6c452d7da0bbb4e407
          - type: securityQuestions
            securityQuestions:
              questions:
                - id: q1
                  prompt: What is your mother's maiden name?
                - id: q4
                  prompt: What is your high school's name?
                - id: q9
                  prompt: What is the name of your first pet?
            id: df33c6f88a37d6b3f0a6
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/requiredIdentityChallenge
    abstractPagedBodyFields:
      x-apiture-version: 1.1.1
      title: Abstract Paged Body Fields (v1.1.1)
      description: Common properties of collection page responses.
      x-apiture-fragment: true
      type: object
      required:
        - limit
      properties:
        limit:
          description: The number of items requested for this page response. The length of the `items` array may be less that `limit`.
          type: integer
          format: int32
          minimum: 0
          maximum: 10000
        nextPage_url:
          description: The URL of the next page of resources. If this URL is omitted, there are no more resources in the collection.
          readOnly: true
          maxLength: 8000
          type: string
          format: uri-reference
          example: https://static.api.apiture.com/banking/resources/8b76b4a97dccad88890e
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/abstractPagedBodyFields
    fullAddressFields:
      x-apiture-version: 1.2.1
      title: Full Address Fields (v1.2.1)
      description: A postal address that can hold a US address or an international (non-US) postal addresses.
      type: object
      x-apiture-fragment: true
      allOf:
        - $ref: '#/components/schemas/addressFields'
        - type: object
          properties:
            regionName:
              type: string
              minLength: 2
              maxLength: 20
              format: text
              description: The state, district, or outlying area of the postal address. This is required if `countryCode` is not `US`. `regionCode` and `regionName` are mutually exclusive.
              examples:
                - Alessandria
                - Rio de Janeiro
                - British Columbia
            regionCode:
              type: string
              maxLength: 2
              minLength: 2
              pattern: ^[A-Za-z]{2}$
              description: The state, district, or outlying area of the postal address. This is required if `countryCode` is `US`. `regionCode` and `regionName` are mutually exclusive.
              examples:
                - NC
                - IL
                - VI
            postalCode:
              $ref: '#/components/schemas/postalCode'
      examples:
        - address1: 1805 Tiburon Dr.
          address2: Building 14, Suite 1500
          locality: Wilmington
          regionCode: NC
          countryCode: US
          postalCode: '28403'
        - address1: 999 Canada Place
          locality: Vancouver
          regionName: British Columbia
          countryCode: CA
          postalCode: V6C 3T4
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/fullAddressFields
    customerUsername:
      x-apiture-version: 2.0.0
      title: Customer Username (v2.0.0)
      description: A customer's login username.
      type: string
      format: text
      minLength: 5
      maxLength: 20
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/customerUsername
    challengeFactor:
      x-apiture-version: 1.2.1
      title: Challenge Factor (v1.2.1)
      description: A challenge factor. See [`requiredIdentityChallenge`](#schema-requiredIdentityChallenge) for multiple examples.
      type: object
      required:
        - type
      properties:
        id:
          description: |-
            The ID of an a challenge factor. This ID is unique within the challenge factors associated with a challenge. The client should pass this `id` value as the `factorId` when starting or verifying a challenge factor.

            *Note*: The `id` will become `required` in a future update to this schema.
          $ref: '#/components/schemas/challengeFactorId'
        type:
          $ref: '#/components/schemas/challengeFactorType'
        labels:
          description: A list of text label which identifies the channel(s) through which the user completes the challenge. For an `sms` or `voice` challenge, the only label item is the last four digits of the corresponding phone number. For an `email` challenge, each label is the masked email address.
          type: array
          minItems: 1
          maxItems: 4
          items:
            type: string
            maxLength: 300
            format: text
        securityQuestions:
          $ref: '#/components/schemas/challengeSecurityQuestions'
      example:
        type: sms
        labels:
          - '9876'
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeFactor
    challengeSecurityQuestions:
      x-apiture-version: 1.0.1
      title: Challenge Security Questions (v1.0.1)
      description: Describes a `securityQuestions` challenge. This is omitted if the challenge `type` is not `securityQuestions`.
      type: object
      required:
        - questions
      properties:
        questions:
          description: The array of security questions.
          type: array
          minItems: 1
          maxItems: 8
          items:
            $ref: '#/components/schemas/challengeSecurityQuestion'
      example:
        questions:
          - id: q1
            prompt: What is your mother's maiden name?
          - id: q4
            prompt: What is your high school's name?
          - id: q9
            prompt: What is the name of your first pet?
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeSecurityQuestions
    challengeSecurityQuestion:
      x-apiture-version: 1.0.1
      title: Challenge Security Question (v1.0.1)
      description: A single security question within the `questions` array of the [`challengeSecurityQuestions`](#schema-challengeSecurityQuestions)
      type: object
      required:
        - id
        - prompt
      properties:
        id:
          description: The unique ID of security question prompt. This should be included in the [`challengeVerification`](#schema-challengeVerification) response as the `promptId`.
          $ref: '#/components/schemas/challengePromptId'
        prompt:
          description: The text prompt of this security question.
          type: string
          format: text
          maxLength: 80
      example:
        id: 74699fa628911e762ea5
        prompt: What is your mother's maiden name?
      x-resolved-from: ../../common/openapi.yaml#/components/schemas/challengeSecurityQuestion
  responses:
    '204':
      description: No Content. The operation succeeded but returned no response body.
      x-resolved-from: ../../common/openapi.yaml#/components/responses/204
    '304':
      description: Not Modified. The resource has not been modified since it was last fetched.
      x-resolved-from: ../../common/openapi.yaml#/components/responses/304
    '400':
      description: |
        Bad Request. The request body, request headers, and/or query parameters are not well-formed.

        This problem responsemay have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/badRequest/v1.0.0`](https://static.api.apiture.com/errors/badRequest/v1.0.0)<br>
          The request body and/or parameters was not well-formed.
          Remediation: Correct any syntax or schema errors in the request body or parameters.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/badRequest'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/badRequest/v1.0.0
              title: Bad Request
              status: 400
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: Input did not parse as JSON
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/badRequest/v1.0.0
              title: Bad Request
              status: 400
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: Input did not parse as JSON
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/400
    '401':
      description: |
        Unauthorized. The operation requires authentication but no authentication or insufficient authentication was given.

        This problem responsemay have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/unauthorized/v1.0.0`](https://static.api.apiture.com/errors/unauthorized/v1.0.0)<br>
          The request lacks valid authentication credentials for the target resource or operation.
          Remediation: Authenticate the user and pass the required authorization with the request.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/unauthorized'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/unauthorized/v1.0.0
              title: Unauthorized
              status: 401
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request lacks valid authentication credentials
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/unauthorized/v1.0.0
              title: Unauthorized
              status: 401
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request lacks valid authentication credentials
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/401
    '403':
      description: |
        Forbidden. The authenticated caller is not authorized to perform the requested operation.

        This problem responsemay have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/forbidden/v1.0.0`](https://static.api.apiture.com/errors/forbidden/v1.0.0)<br>
          The user or agent is not allowed to perform this operation; authentication credentials were provided in the request, but the server considers them insufficient to grant access.
          Remediation: Check the user's permissions and entitlements before attempting the operation.

        * [`https://static.api.apiture.com/errors/customerDisabled/v1.0.0`](https://static.api.apiture.com/errors/customerDisabled/v1.0.0)<br>
          The customer is disabled.
          Remediation: Have the customer contact the financial institution for support.

        * [`https://static.api.apiture.com/errors/antiMalwareRequired/v1.0.0`](https://static.api.apiture.com/errors/antiMalwareRequired/v1.0.0)<br>
          The financial institution requires the customer to have anti-malware software installed.
          Remediation: Direct the user to the software requirements guide to install the correct anti-malware software.

        * [`https://static.api.apiture.com/errors/modificationForbidden/v1.0.0`](https://static.api.apiture.com/errors/modificationForbidden/v1.0.0)<br>
          The customer is properly authenticated but not authorized to create, modify, or delete resources.
          Remediation: Avoid modification operation for customers with read-only authorization.

        * [`https://static.api.apiture.com/errors/challengeRequired/v1.0.0`](https://static.api.apiture.com/errors/challengeRequired/v1.0.0)<br>
          The operation requires the customer to complete an identity challenge.
          Remediation: Complete the challenge as per the problem response, and add an additional `Challenge` header to the call.
        The `attributes` object in the error may have the properties defined by the [`requiredIdentityChallenge` schema](#schema-requiredIdentityChallenge).
        * [`https://static.api.apiture.com/errors/challengeBlocked/v1.0.0`](https://static.api.apiture.com/errors/challengeBlocked/v1.0.0)<br>
          The user has failed challenges too many times and is blocked from attempting more or performing operations which require additional authentication.
          Remediation: Have the user end their login session and login again.

        * [`https://static.api.apiture.com/errors/noIdentityChallengeFactors/v1.0.0`](https://static.api.apiture.com/errors/noIdentityChallengeFactors/v1.0.0)<br>
          This operation requires an identity challenge, but the user does not have the necessary registered authentication factors.
          Remediation: Have the user register one or more challenge security code delivery factors.

        * [`https://static.api.apiture.com/errors/invalidIdentityChallengeHeader/v1.0.0`](https://static.api.apiture.com/errors/invalidIdentityChallengeHeader/v1.0.0)<br>
          The additional on-time `Challenge` header in this request is expired, already used, or otherwise invalid.
          Remediation: Supply a valid, unexpired, unclaimed `Challenge` header in the request.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/forbidden'
        - $ref: '#/components/x-apiture-errors/customerDisabled'
        - $ref: '#/components/x-apiture-errors/antiMalwareRequired'
        - $ref: '#/components/x-apiture-errors/modificationForbidden'
        - $ref: '#/components/x-apiture-errors/challengeRequired'
        - $ref: '#/components/x-apiture-errors/challengeBlocked'
        - $ref: '#/components/x-apiture-errors/noIdentityChallengeFactors'
        - $ref: '#/components/x-apiture-errors/invalidIdentityChallengeHeader'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/forbidden/v1.0.0
              title: Forbidden
              status: 403
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request has valid authentication, but the authenticated agent is forbidden from accessing this resource or operation
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/forbidden/v1.0.0
              title: Forbidden
              status: 403
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request has valid authentication, but the authenticated agent is forbidden from accessing this resource or operation
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/403
    '404':
      description: |
        Not found. There is no such resource at the request URL.

        This problem responsemay have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/notFound/v1.0.0`](https://static.api.apiture.com/errors/notFound/v1.0.0)<br>
          The resource at the requested URL does not exist.
          Remediation: Use the URL of an existing resource.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/notFound'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/notFound/v1.0.0
              title: Not Found
              status: 404
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The resource at the request URL does not exist.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/notFound/v1.0.0
              title: Not Found
              status: 404
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The resource at the request URL does not exist.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/404
    '409':
      description: |
        Conflict. The request conflicts with the state of the application.

        This problem responsemay have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/conflict/v1.0.0`](https://static.api.apiture.com/errors/conflict/v1.0.0)<br>
          The request could not be completed due to a conflict with the current state of the target resource.
          Remediation: Try another operation that is allowed.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/conflict'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
      x-resolved-from: ../../common/openapi.yaml#/components/responses/409
    '422':
      description: |
        Unprocessable Entity. The request body and/or query parameters were well-formed but otherwise invalid.

        This problem responsemay have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0`](https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0)<br>
          The syntax of the request entity is correct but was unable to process the contained instructions.
          Remediation: Provide a semantically correct request.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/unprocessableEntity'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0
              title: Unprocessable Entity
              status: 422
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request body and/or query parameters were well-formed but otherwise invalid.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0
              title: Unprocessable Entity
              status: 422
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The request body and/or query parameters were well-formed but otherwise invalid.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/422
    '429':
      description: |
        Too Many Requests. The client has sent too many requests in a given amount of time.

        This problem responsemay have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/tooManyRequests/v1.0.0`](https://static.api.apiture.com/errors/tooManyRequests/v1.0.0)<br>
          The client has sent too many requests in a given amount of time, exceeding rate limiting.
          Remediation: Slow down the rate of API calls.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/tooManyRequests'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/tooManyRequests/v1.0.0
              title: Too Many Requests
              status: 429
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The user has sent too many requests in a given amount of time.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/tooManyRequests/v1.0.0
              title: Too Many Requests
              status: 429
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The user has sent too many requests in a given amount of time.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/429
    '504':
      description: |
        Gateway Timeout. The server did not receive a timely response from an upstream server it needed to access in order to complete the request.

        This problem responsemay have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/gatewayTimeout/v1.0.0`](https://static.api.apiture.com/errors/gatewayTimeout/v1.0.0)<br>
          The server did not receive a timely response from an upstream server it needed to access in order to complete the request.
          Remediation: Wait a few minutes and try again, or gracefully fail the client request.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/gatewayTimeout'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
      x-resolved-from: ../../common/openapi.yaml#/components/responses/504
    404BankingProduct:
      description: Not Found. There is no such product resource at the specified `{bankingProductId}`.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
    404Account:
      description: Not Found. There is no such banking account resource at the specified `{accountId}`. The response body contains details about the request error.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
    404PeerAccount:
      description: Not Found. There is no such peer account resource at the specified `{peerAccountId}`.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
    409PeerAccount:
      description: |
        Conflict. The operation may fail with a `duplicatePeerAccount` problem type if the financial institution policy disallows duplicate peer accounts.

        This problem responsemay have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/duplicatePeerAccount/v1.0.0`](https://static.api.apiture.com/errors/duplicatePeerAccount/v1.0.0)<br>
          The customer already has a peer account which matches the given data.
          Remediation: Enter data for an unique account.
      x-apiture-errors:
        - duplicatePeerAccount
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
    422PeerAccount:
      description: |
        Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

        This problem responsemay have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0`](https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0)<br>
          The syntax of the request entity is correct but was unable to process the contained instructions.
          Remediation: Provide a semantically correct request.

        * [`https://static.api.apiture.com/errors/noSuchPeerAccount/v1.0.0`](https://static.api.apiture.com/errors/noSuchPeerAccount/v1.0.0)<br>
          There is no such peer account at the financial institution for the given data.
          Remediation: Provide the account holder name and account numbers for an active account.

        * [`https://static.api.apiture.com/errors/maximumNumberOfPeerAccountsReached/v1.0.0`](https://static.api.apiture.com/errors/maximumNumberOfPeerAccountsReached/v1.0.0)<br>
          The customer/member has reached the maximum number of peer accounts.
          Remediation: Instruct the customer to delete an existing peer account.

        * [`https://static.api.apiture.com/errors/invalidPeerAccountInstitutionData/v1.0.0`](https://static.api.apiture.com/errors/invalidPeerAccountInstitutionData/v1.0.0)<br>
          The caller passed bank properties when the institution is a credit union, or passed credit union data when the institution is a bank, or the caller passed both or neither.
          Remediation: Pass `bank` only when the institution is a bank, and pass `creditUnion` only when the institution is a credit union.

        * [`https://static.api.apiture.com/errors/duplicatePeerAccountNickname/v1.0.0`](https://static.api.apiture.com/errors/duplicatePeerAccountNickname/v1.0.0)<br>
          The customer already has a peer account with the given nickname.
          Remediation: Enter a unique nickname for the account.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/unprocessableEntity'
        - noSuchPeerAccount
        - maximumNumberOfPeerAccountsReached
        - invalidPeerAccountInstitutionData
        - duplicatePeerAccountNickname
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
    422Customer:
      description: |
        Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

        This problem responsemay have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/noSuchCompanyId/v1.0.0`](https://static.api.apiture.com/errors/noSuchCompanyId/v1.0.0)<br>
          There is no such company for the provided customer ID query parameter.
          Remediation: Supply the ID of a company the customer is entitled to manage.
      x-apiture-errors:
        - noSuchCompanyId
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
    403WriteTransfer:
      description: |
        Forbidden. The user's permissions do not allow the transfer. Either the user does not have `transferFrom` permission from the source account, or does not have `transferTo` permission to the target account, or the operation requires identity challenge. (See the "Challenges API".)

        This problem responsemay have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/forbidden/v1.0.0`](https://static.api.apiture.com/errors/forbidden/v1.0.0)<br>
          The user or agent is not allowed to perform this operation; authentication credentials were provided in the request, but the server considers them insufficient to grant access.
          Remediation: Check the user's permissions and entitlements before attempting the operation.

        * [`https://static.api.apiture.com/errors/cannotTransferFrom/v1.0.0`](https://static.api.apiture.com/errors/cannotTransferFrom/v1.0.0)<br>
          The customer does not have `transferFrom` entitlement on the source account.
          Remediation: Choose a source account that allows transfers from it.

        * [`https://static.api.apiture.com/errors/cannotTransferTo/v1.0.0`](https://static.api.apiture.com/errors/cannotTransferTo/v1.0.0)<br>
          The customer does not have `transferTo` entitlement on the target account.
          Remediation: Choose a target account that allows transfers to it.

        * [`https://static.api.apiture.com/errors/customerDisabled/v1.0.0`](https://static.api.apiture.com/errors/customerDisabled/v1.0.0)<br>
          The customer is disabled.
          Remediation: Have the customer contact the financial institution for support.

        * [`https://static.api.apiture.com/errors/antiMalwareRequired/v1.0.0`](https://static.api.apiture.com/errors/antiMalwareRequired/v1.0.0)<br>
          The financial institution requires the customer to have anti-malware software installed.
          Remediation: Direct the user to the software requirements guide to install the correct anti-malware software.

        * [`https://static.api.apiture.com/errors/modificationForbidden/v1.0.0`](https://static.api.apiture.com/errors/modificationForbidden/v1.0.0)<br>
          The customer is properly authenticated but not authorized to create, modify, or delete resources.
          Remediation: Avoid modification operation for customers with read-only authorization.

        * [`https://static.api.apiture.com/errors/challengeRequired/v1.0.0`](https://static.api.apiture.com/errors/challengeRequired/v1.0.0)<br>
          The operation requires the customer to complete an identity challenge.
          Remediation: Complete the challenge as per the problem response, and add an additional `Challenge` header to the call.
        The `attributes` object in the error may have the properties defined by the [`requiredIdentityChallenge` schema](#schema-requiredIdentityChallenge).
        * [`https://static.api.apiture.com/errors/challengeBlocked/v1.0.0`](https://static.api.apiture.com/errors/challengeBlocked/v1.0.0)<br>
          The user has failed challenges too many times and is blocked from attempting more or performing operations which require additional authentication.
          Remediation: Have the user end their login session and login again.

        * [`https://static.api.apiture.com/errors/noIdentityChallengeFactors/v1.0.0`](https://static.api.apiture.com/errors/noIdentityChallengeFactors/v1.0.0)<br>
          This operation requires an identity challenge, but the user does not have the necessary registered authentication factors.
          Remediation: Have the user register one or more challenge security code delivery factors.

        * [`https://static.api.apiture.com/errors/invalidIdentityChallengeHeader/v1.0.0`](https://static.api.apiture.com/errors/invalidIdentityChallengeHeader/v1.0.0)<br>
          The additional on-time `Challenge` header in this request is expired, already used, or otherwise invalid.
          Remediation: Supply a valid, unexpired, unclaimed `Challenge` header in the request.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/forbidden'
        - cannotTransferFrom
        - cannotTransferTo
        - $ref: '#/components/x-apiture-errors/customerDisabled'
        - $ref: '#/components/x-apiture-errors/antiMalwareRequired'
        - $ref: '#/components/x-apiture-errors/modificationForbidden'
        - $ref: '#/components/x-apiture-errors/challengeRequired'
        - $ref: '#/components/x-apiture-errors/challengeBlocked'
        - $ref: '#/components/x-apiture-errors/noIdentityChallengeFactors'
        - $ref: '#/components/x-apiture-errors/invalidIdentityChallengeHeader'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
    404Transfer:
      description: Not Found. There is no such transfer resource at the specified `{transferId}`.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
    422Transfer:
      description: |
        Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.

        This problem responsemay have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/invalidSourceAccountId/v1.0.0`](https://static.api.apiture.com/errors/invalidSourceAccountId/v1.0.0)<br>
          The named `sourceAccountId` does not exist or the user is not entitled to access the account.
          Remediation: Pass the `id` of an existing account the caller has access to.

        * [`https://static.api.apiture.com/errors/invalidTargetAccountId/v1.0.0`](https://static.api.apiture.com/errors/invalidTargetAccountId/v1.0.0)<br>
          The named `targetAccountId` does not exist or the user is not entitled to access the account.
          Remediation: Pass the `id` of an existing account the caller has access to.

        * [`https://static.api.apiture.com/errors/externalToExternalTransferNotAllowed/v1.0.0`](https://static.api.apiture.com/errors/externalToExternalTransferNotAllowed/v1.0.0)<br>
          Transfers from an external account to another external is not allowed.
          Remediation: At least one of the source or target accounts must be an internal account held at the financial institution.

        * [`https://static.api.apiture.com/errors/sameSourceAndTargetTransferAccounts/v1.0.0`](https://static.api.apiture.com/errors/sameSourceAndTargetTransferAccounts/v1.0.0)<br>
          The source and target account are the same.
          Remediation: Choose different source and target accounts.

        * [`https://static.api.apiture.com/errors/nonPositiveAmount/v1.0.0`](https://static.api.apiture.com/errors/nonPositiveAmount/v1.0.0)<br>
          The transfer amount may not be 0.00.
          Remediation: Set the transfer amount to a positive number.

        * [`https://static.api.apiture.com/errors/insufficientFundsForTransfer/v1.0.0`](https://static.api.apiture.com/errors/insufficientFundsForTransfer/v1.0.0)<br>
          The source account has insufficient funds.
          Remediation: Reduce the transfer amount to less than the available balance.

        * [`https://static.api.apiture.com/errors/invalidTransferSchedule/v1.0.0`](https://static.api.apiture.com/errors/invalidTransferSchedule/v1.0.0)<br>
          The transfer schedule is invalid.
          Remediation: Choose a date that is not in the past or past the cutoff time.
      x-apiture-errors:
        - invalidSourceAccountId
        - invalidTargetAccountId
        - externalToExternalTransferNotAllowed
        - sameSourceAndTargetTransferAccounts
        - nonPositiveAmount
        - insufficientFundsForTransfer
        - invalidTransferSchedule
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
    404PaymentMethod:
      description: |
        Not Found. There is no such payment method resource at the specified `{paymentMethodId}`.

        This problem responsemay have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/noSuchContact/v1.0.0`](https://static.api.apiture.com/errors/noSuchContact/v1.0.0)<br>
          There is no such contact resource for the given `contactId`.
          Remediation: Pass a valid contact ID or omit the `contactId` from the request.

        * [`https://static.api.apiture.com/errors/noSuchPaymentMethod/v1.0.0`](https://static.api.apiture.com/errors/noSuchPaymentMethod/v1.0.0)<br>
          There is no such contact resource for the given `paymentMethodId`.
          Remediation: Pass a valid payment method ID or omit the `paymentMethodId` from the request.
      x-apiture-errors:
        - noSuchContact
        - noSuchPaymentMethod
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
    422UpdatePaymentMethod:
      description: Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
    404PaymentContact:
      description: Not Found. There is no such payment contact resource at the specified `{paymentContactId}`.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
    422UpdatePaymentContact:
      description: Unprocessable Entity. The request body and/or query parameters were well formed but otherwise invalid.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
    404PaymentInstruction:
      description: |
        Not Found. There is no such payment instruction resource at the specified `{paymentBatchId}` and `{paymentInstructionId}`.

        This problem responsemay have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/noSuchPaymentBatch/v1.0.0`](https://static.api.apiture.com/errors/noSuchPaymentBatch/v1.0.0)<br>
          There is no such payment batch for the given `paymentBatchId`.
          Remediation: Pass a valid payment batch ID.

        * [`https://static.api.apiture.com/errors/noSuchInstruction/v1.0.0`](https://static.api.apiture.com/errors/noSuchInstruction/v1.0.0)<br>
          There is no such payment instruction for the given `paymentInstructionId`.
          Remediation: Pass a valid payment instruction ID.
      x-apiture-errors:
        - noSuchPaymentBatch
        - noSuchInstruction
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
          example:
            id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
            type: https://static.api.apiture.com/errors/noSuchPaymentBatch/v1.0.0
            title: Not Found
            status: 404
            occurredAt: '2022-04-25T12:42:21.375Z'
            detail: No such transaction exists for the given `{paymentBatchId}` bb709151-5750
            instance: https://static.api.apiture.com/banking/payments/bb709151-5750/instructions/3dfda85a-ce87
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
          example:
            id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
            type: https://static.api.apiture.com/errors/noSuchPaymentBatch/v1.0.0
            title: Not Found
            status: 404
            occurredAt: '2022-04-25T12:42:21.375Z'
            detail: No such transaction exists for the given `{paymentBatchId}` bb709151-5750
            instance: https://static.api.apiture.com/banking/payments/bb709151-5750/instructions/3dfda85a-ce87
    404PaymentBatch:
      description: Not Found. There is no such payment batch resource at the specified `{paymentBatchId}`. The response body contains details about the request error.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
          example:
            id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
            type: https://static.api.apiture.com/errors/notFound/v1.0.0
            title: Not Found
            status: 404
            occurredAt: '2022-04-25T12:42:21.375Z'
            detail: The resource at the request URL does not exist.
            instance: https://static.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
          example:
            id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
            type: https://static.api.apiture.com/errors/notFound/v1.0.0
            title: Not Found
            status: 404
            occurredAt: '2022-04-25T12:42:21.375Z'
            detail: The resource at the request URL does not exist.
            instance: https://static.api.apiture.com/banking/paymentBatches/bb709151-575041fcd617
    404AchTemplatePaymentInstruction:
      description: |
        Not Found. There is no such payment instruction resource at the specified `{achTemplateId}` and `{paymentInstructionId}`.

        This problem responsemay have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/noSuchAchTemplate/v1.0.0`](https://static.api.apiture.com/errors/noSuchAchTemplate/v1.0.0)<br>
          There is no such ACH template for the given `achTemplateId`.
          Remediation: Pass a valid ACH template ID.

        * [`https://static.api.apiture.com/errors/noSuchInstruction/v1.0.0`](https://static.api.apiture.com/errors/noSuchInstruction/v1.0.0)<br>
          There is no such payment instruction for the given `paymentInstructionId`.
          Remediation: Pass a valid payment instruction ID.
      x-apiture-errors:
        - noSuchAchTemplate
        - $ref: '#/components/x-apiture-errors/noSuchInstruction'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
          example:
            id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
            type: https://static.api.apiture.com/errors/noSuchAchTemplate/v1.0.0
            title: Not Found
            status: 404
            occurredAt: '2022-04-25T12:42:21.375Z'
            detail: No such resource exists for the given `{achTemplateId}` bb709151-5750
            instance: https://static.api.apiture.com/banking/payments/bb709151-5750/instructions/3dfda85a-ce87
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
          example:
            id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
            type: https://static.api.apiture.com/errors/noSuchAchTemplate/v1.0.0
            title: Not Found
            status: 404
            occurredAt: '2022-04-25T12:42:21.375Z'
            detail: No such resource exists for the given `{achTemplateId}` bb709151-5750
            instance: https://static.api.apiture.com/banking/payments/bb709151-5750/instructions/3dfda85a-ce87
    4XX:
      description: Client Request Problem. The client request had a problem not listed under another specific 400-level HTTP response code. View the `detail` in the problem response for additional details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/methodNotAllowed/v1.0.0
              title: Method Not Allowed
              status: 405
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: This HTTP method is not allowed for the given resource URL.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/methodNotAllowed/v1.0.0
              title: Method Not Allowed
              status: 405
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: This HTTP method is not allowed for the given resource URL.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/4XX
    5XX:
      description: Server Problem. The server encountered a problem not listed under another specific 500-level HTTP response code. View the `detail` in the problem response for additional details.
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/gatewayTimeout/v1.0.0
              title: Insufficient Storage
              status: 507
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The server is unable to store the representation needed to successfully complete the request.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
            example:
              id: 3fbad566-be86-4b22-9ba6-3ca99fdc0799
              type: https://static.api.apiture.com/errors/gatewayTimeout/v1.0.0
              title: Insufficient Storage
              status: 507
              occurredAt: '2022-04-25T12:42:21.375Z'
              detail: The server is unable to store the representation needed to successfully complete the request.
              instance: https://static.api.apiture.com/banking/transfers/bb709151-575041fcd617
      x-resolved-from: ../../common/openapi.yaml#/components/responses/5XX
    422Collection:
      description: |
        Unprocessable Entity. The request body and/or query parameters were well-formed but otherwise invalid.

        This problem responsemay have one of the following `type` values:
        * [`https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0`](https://static.api.apiture.com/errors/unprocessableEntity/v1.0.0)<br>
          The syntax of the request entity is correct but was unable to process the contained instructions.
          Remediation: Provide a semantically correct request.

        * [`https://static.api.apiture.com/errors/invalidStart/v1.0.0`](https://static.api.apiture.com/errors/invalidStart/v1.0.0)<br>
          The `start` query parameter is invalid.
          Remediation: Use the `nextPage_url` in the previous response (and its service-generated `?start=` parameter) to access the next page.
      x-apiture-errors:
        - $ref: '#/components/x-apiture-errors/unprocessableEntity'
        - $ref: '#/components/x-apiture-errors/invalidStart'
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/problemResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/problemResponse'
      x-resolved-from: ../../common/openapi.yaml#/components/responses/422Collection
  parameters:
    productIdOrCodePathParam:
      name: productIdOrCode
      description: Identifies which banking product to return. This path parameter is either the `id` or the `code` from a [`bankingProductItem`](#schema-bankingProductItem) from the [`listBankingProducts`](#op-listBankingProducts) response.
      in: path
      schema:
        type: string
        format: text
        minLength: 1
        maxLength: 48
      required: true
    resolveQueryParam:
      name: resolve
      in: query
      description: If `false` (the default), the raw `highlights` and `secondaryHighlights` strings are returned (as unresolved templates) without substituting product properties. If `true`, the product's properties are replaced by their values in the `highlights` and `secondaryHighlights` strings. Use `true` when fetching products to show the highlights to end users.
      schema:
        type: boolean
        default: false
    accountIdPathParam:
      name: accountId
      description: The unique identifier of this account resource. This is an opaque string.
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/resourceId'
    peerAccountIdPathParam:
      name: peerAccountId
      description: The unique identifier of this peer account. This is an opaque string.
      in: path
      schema:
        $ref: '#/components/schemas/resourceId'
      required: true
    accountAllowsRequiredQueryParam:
      name: allows
      in: query
      description: Filter the result to accounts that have corresponding `true` values in `account.allows`. For example `?allows=transferTo,transferFrom,view` returns only accounts where `account.allows.transferTo`, `account.allows.transferFrom`, and `account.allows.view` are all `true` for the caller.
      required: true
      schema:
        type: array
        minItems: 1
        x-apiture-note: maxItems 11 is the number of enum items in accountAllowsFilter
        maxItems: 11
        uniqueItems: true
        items:
          $ref: '#/components/schemas/accountAllowsFilter'
    realTimePaymentAccountAllowsRequiredQueryParam:
      name: allows
      in: query
      description: Filter the result to real-time payment accounts that have corresponding `true` values in `account.allows`. For example `?allows=realTimePaymentTo,realTimePaymentFrom` returns only accounts where `account.allows.realTimePaymentTo` and `account.allows.realTimePaymentFrom` are both `true` for the caller.
      required: true
      schema:
        type: array
        minItems: 1
        x-apiture-note: maxItems 2 is the number of enum items in realTimePaymentAccountAllowsFilter
        maxItems: 2
        uniqueItems: true
        items:
          $ref: '#/components/schemas/realTimePaymentAccountAllowsFilter'
    secCodeQueryParam:
      name: secCode
      in: query
      description: Filter the result to accounts that allow ACH transfers of the given Standard Entry Class (SEC) codes.
      required: true
      schema:
        $ref: '#/components/schemas/achSecCode'
    unmaskedAccountNumberQueryParam:
      name: unmasked
      description: |-
        When requesting an account, the full account number or full member number is not included in the response by default, for security reasons.

        Include this query parameter with a value of `true` to request that the response body includes the full account number (for bank accounts) or full member number (for credit unions).

        External accounts are excluded from unmasking.

        Such requests are auditable.
      in: query
      required: false
      schema:
        type: boolean
        default: false
    challengeHeaderParam:
      name: Challenge
      description: This operation may require a completed challenge. If the first attempt calling this operation fails with a 403 `challengeRequired` error, the client should complete the challenge flow as described in the Challenges API, then retry the operation with this `Challenge` request header using the `challengeToken` returned at the end of that flow. If this is passed but the value is invalid, the operation fails with a 403 status code and the `invalidIdentityChallengeHeader` problem type.
      in: header
      schema:
        $ref: '#/components/schemas/challengeToken'
    requiredChallengeHeaderParam:
      name: Challenge
      description: This operation requires a completed challenge. The client should complete the challenge flow as described in the Challenges API, then complete this operation with this `Challenge` request header using the `challengeToken` returned at the end of that flow. If this is passed but the value is invalid, the operation fails with a 403 status code and the `invalidIdentityChallengeHeader` problem type.
      in: header
      required: true
      schema:
        $ref: '#/components/schemas/challengeToken'
    customerIdPathParam:
      name: customerId
      description: The identifier for the customer. This is an opaque string.
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/resourceId'
    transactionIdPathParam:
      name: transactionId
      description: The unique identifier of this transaction resource. This is an opaque string.
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/transactionId'
    transactionOccurredOnQueryParam:
      name: occurredOn
      description: |-
        Return only transactions whose `occurredOn` date is in this date range. Dates ranges use dates expressed in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) `date` format. Each account has an implicit default transaction history range of _n_ days. This is normally 30 days but may be shorter for accounts with high activity. This _n_ day period is applied to any unbounded date ranges. The default date range is the most recent _n_ days.

        Example date ranges:
          * `2023-05-19` match transactions occurring on May 19, 2023.
          * `[2023-05-01,2023-05-31]` match transactions occurring between May 1 and 31, 2023, inclusive
          * `[2023-05-01,2023-06-01)` match transactions occurring in May, 2023 (on or after May 1, but before June 1)
          * `[2023-05-09,]` match transactions _n_ days on or after May 9, 2023
          * `(2023-05-09,)` match transactions _n_ days after May 9, 2023
          * `[,2023-05-09]` match transactions _n_ days on or before May 9, 2023
          * `(,2023-05-09)` match transactions _n_ days before but excluding May 9, 2023
      in: query
      schema:
        type: string
        pattern: ^\d{4}-\d{2}-\d{2}|([[(](\d{4}-\d{2}-\d{2},(\d{4}-\d{2}-\d{2})?|,\d{4}-\d{2}-\d{2})[)\]])$
        minLength: 10
        maxLength: 24
        examples:
          - '2023-05-19'
          - '[2023-05-01,2023-05-31]'
          - '[2023-05-01,2023-06-01)'
          - '[2023-05-19,]'
          - (2023-05-19,)
          - '[,2023-05-19]'
          - (,2023-05-19)
    transferIdPathParam:
      name: transferId
      description: The unique identifier of this transfer. This is an opaque string.
      in: path
      schema:
        $ref: '#/components/schemas/resourceId'
      required: true
    businessTransferNameQueryParam:
      name: name
      description: Return business transfers whose `name` contains this substring (of at least two characters), ignoring case.
      in: query
      schema:
        type: string
        format: text
        minLength: 2
        maxLength: 10
    businessTransferStateQueryParam:
      name: state
      description: Return only business transfers whose `state` matches one of the items in this pipe-separated list.
      in: query
      schema:
        type: array
        minItems: 1
        maxItems: 11
        uniqueItems: true
        items:
          $ref: '#/components/schemas/paymentBatchState'
      style: pipeDelimited
      explode: false
    businessTransferAccountIdQueryParam:
      name: accountId
      description: Return only business transfers whose `settlementAccount.id` matches this value. Note that this is unrelated to the account number or masked account number.
      in: query
      schema:
        $ref: '#/components/schemas/resourceId'
    businessTransferEffectiveOnQueryParam:
      name: effectiveOn
      description: 'Return only business transfers whose `effectiveOn` date is in the given date range, and/or which are unscheduled. Date ranges use [range notation](https://dx.apiture.com/docs/api/concepts/collection-filtering/#range-filters). Examples: <ul> <li> `[2022-05-01,2022-05-31]` between May 1 and 31, 2022, inclusive</li> <li> `[2022-05-01,2022-05-31]|unscheduled` between May 1 and 31, 2022, inclusive, or unscheduled</li> <li> `[2022-05-01,2022-06-01)` on or after May 1, but _before_ June 1 (in May, 2022)</li> <li> `[2022-05-19,]` on or after May 19, 2022</li> <li> `(2022-05-19,)|unscheduled` after May 19, 2022, or unscheduled</li> <li> `[,2022-05-19]` on or before May 19, 2022</li> <li> `2022-05-19`</li> match only business transfers made on May 19, 2022. <li> `unscheduled` match only business transfers that are still unscheduled</li> </ul> The bracketed range options (excluding simple `YYYY-MM-DD` single date values) may include the `|unscheduled` suffix. This notation matches business transfers that are scheduled in the given date range _or_ which are unscheduled.'
      in: query
      schema:
        $ref: '#/components/schemas/dateRangeOrUnscheduled'
    businessTransferScheduledOnQueryParam:
      name: scheduledOn
      description: Return only business transfers whose `scheduledOn` date is in the given date range and/or which are unscheduled. Date ranges use [range notation](https://dx.apiture.com/docs/api/concepts/collection-filtering/#range-filters). The query parameter expression notation is the same as the `effectiveOn` query parameter above.
      in: query
      schema:
        $ref: '#/components/schemas/dateRangeOrUnscheduled'
    businessTransferCustomerIdPathParam:
      name: customerId
      description: Filter business transfers based on the banking customer ID. This is a business customer for business transfers.
      in: query
      schema:
        $ref: '#/components/schemas/readOnlyResourceId'
    businessTransferCompanyIdQueryParam:
      name: companyId
      in: query
      description: Return only business transfers where the `company.id` value matches this value.
      schema:
        type: string
        maxLength: 32
        format: text
    businessTransferTrackingNumberQueryParam:
      name: trackingNumber
      in: query
      description: Return only business transfers whose `trackingNumber` contains this substring.
      schema:
        type: string
        pattern: ^[0-9]+$
        minLength: 2
        maxLength: 9
    businessTransferConfidentialQueryParam:
      name: confidential
      in: query
      description: Return only business transfers which are confidential.
      schema:
        type: boolean
    businessTransferApprovableQueryParam:
      name: approvable
      description: Return only business transfers that the current authenticated user may approve but have not yet approved.
      in: query
      schema:
        type: boolean
    businessTransferCreditTotalQueryParam:
      name: creditTotal
      description: 'Return only business transfers whose total credit amount is in this range. Amount ranges use [range notation](https://dx.apiture.com/docs/api/concepts/collection-filtering/#range-filters). The value may have the following forms: <ul> <li>`1200.50` match the dollar amount 1,200.50 exactly</li> <li>`[1000.00,1200.00)` matches items where `1000.00 <= amount < 1200.00`</li> <li>`[1000.00,1199.99]` matches items where `1000.00 <= amount <= 1199.99`</li> <li>`(999.99,1200.00)` matches items where `999.99 < amount < 1200.00`</li> <li>`[1200.50,]` matches items where `amount >= 1200.50`</li> <li>`(1200.50,)` matches items where `amount > 1200.50`</li> <li>`[,1200.50]` matches items where `amount <= 1200.50`</li> <li>`(,1200.50)` matches items where `amount < 1200.50`</li> </ul>'
      in: query
      schema:
        $ref: '#/components/schemas/amountRange'
    businessTransferDebitTotalQueryParam:
      name: debitTotal
      description: Return only business transfers whose total debit amount is in this range. Amount ranges use [range notation](https://dx.apiture.com/docs/api/concepts/collection-filtering/#range-filters). The value may have the same range notation format as the `creditTotal` parameter.
      in: query
      schema:
        $ref: '#/components/schemas/amountRange'
    businessTransferTotalAmountQueryParam:
      name: totalAmount
      description: Return only business transfers whose total debit or total credit amount is in this range. Amount ranges use [range notation](https://dx.apiture.com/docs/api/concepts/collection-filtering/#range-filters). The value may have the same range notation format as the `creditTotal` parameter.
      in: query
      schema:
        $ref: '#/components/schemas/amountRange'
    paymentInstructionIdPathParam:
      name: paymentInstructionId
      description: The unique identifier of this payment instruction. This is an opaque string.
      in: path
      schema:
        $ref: '#/components/schemas/resourceId'
      required: true
    paymentBatchIdPathParam:
      name: paymentBatchId
      description: The unique identifier of a payment batch. This is an opaque string.
      in: path
      schema:
        $ref: '#/components/schemas/resourceId'
      required: true
    paymentContactIdPathParam:
      name: paymentContactId
      description: The unique identifier of a payment contact. This is an opaque string.
      in: path
      schema:
        $ref: '#/components/schemas/resourceId'
      required: true
    paymentMethodIdPathParam:
      name: paymentMethodId
      description: The unique identifier of a payment method. This is an opaque string.
      in: path
      schema:
        $ref: '#/components/schemas/resourceId'
      required: true
    customerIdQueryParam:
      name: customerId
      description: Restrict payment resources based on the banking customer ID. This is the ID of the business customer that owns the resource.
      in: query
      schema:
        $ref: '#/components/schemas/resourceId'
    dryRunQueryParam:
      name: dryRun
      in: query
      description: |-
        Indicates that the associated operation should only validate the request and not change the state.

        If the request is valid, the operation returns 204 No Content. If the request is invalid, it returns the corresponding 4xx error response.
      schema:
        description: When `true`, only validate the request without executing it.
        type: boolean
        default: false
    achTemplateIdPathParam:
      name: achTemplateId
      description: The unique identifier of this ACH template. This is an opaque string.
      in: path
      schema:
        $ref: '#/components/schemas/resourceId'
      required: true
    wireTransferTemplateIdPathParam:
      name: wireTransferTemplateId
      description: The unique identifier of this wire transfer template. This is an opaque string.
      in: path
      schema:
        $ref: '#/components/schemas/resourceId'
      required: true
    institutionIdHeaderParam:
      name: Institution-Id
      description: The unique identifier of the financial institution.
      in: header
      schema:
        $ref: '#/components/schemas/institutionId'
      x-resolved-from: ../../common/openapi.yaml#/components/parameters/institutionIdHeaderParam
    ifNoneMatchHeaderParam:
      name: If-None-Match
      description: The entity tag that was returned in the `ETag` response header of a previous call. If the resource's current entity tag value matches this header value, the `GET` will return 304 (Not Modified) and no response body, else the current resource representation and updated `ETag` is returned.
      in: header
      schema:
        $ref: '#/components/schemas/entityTag'
      x-resolved-from: ../../common/openapi.yaml#/components/parameters/ifNoneMatchHeaderParam
    startQueryParam:
      name: start
      in: query
      description: The location of the next item in the collection. This is an opaque cursor supplied by the API service. Omit this to start at the beginning of the collection. The client does not define this value; the API services automatically pass the `?start=` parameter on the `nextPage_url`.
      schema:
        type: string
        maxLength: 256
        pattern: ^[-a-zA-Z0-9.,-=_+:;@$]{0,256}$
        default: ''
      x-resolved-from: ../../common/openapi.yaml#/components/parameters/startQueryParam
    limitQueryParam:
      name: limit
      in: query
      description: The maximum number of items to return in this paged response.
      schema:
        type: integer
        format: int32
        minimum: 0
        maximum: 1000
        default: 100
      x-resolved-from: ../../common/openapi.yaml#/components/parameters/limitQueryParam
    customerIdQueryParam1:
      name: customerId
      description: The optional identifier of a business customer. This is an opaque string. An agent who is operating on behalf of a business can use this to access the resources of that business customer. The agent must have entitlements to act on behalf of the business; if not, the operation returns a 403 Forbidden response. This _must_ match the business' customer ID (not their access ID). For other situations, omit this value.
      in: query
      schema:
        $ref: '#/components/schemas/resourceId'
      x-resolved-from: ../../common/openapi.yaml#/components/parameters/customerIdQueryParam
    acceptLanguageHeaderParam:
      name: Accept-Language
      in: header
      schema:
        type: string
        format: text
        maxLength: 128
      description: The weighted language tags which indicate the user's preferred natural language for the localized labels in the response, as per [RFC 7231](https://tools.ietf.org/html/rfc7231#section-5.3.5). If no localized data is available that matches the requested language tag, the default US English data is returned.
      x-resolved-from: ../../common/openapi.yaml#/components/parameters/acceptLanguageHeaderParam
    institutionIdPathParam:
      name: institutionId
      description: The unique identifier of this institution.
      required: true
      in: path
      schema:
        $ref: '#/components/schemas/institutionId'
      x-resolved-from: ../../adminInstitutions/openapi.yaml#/components/parameters/institutionIdPathParam
  x-apiture-errors:
    noSuchAchTemplate:
      description: There is no such ACH template for the given `achTemplateId`.
      remediation: Pass a valid ACH template ID.
    duplicateTemplateName:
      description: The given template name already exists.
      remediation: Choose a different name for the template.
    tooManyAchTemplates:
      description: Creating the given ACH template exceeds the maximum storage allocation.
      remediation: Remove a template before creating an additional one.
    invalidWireTransferTemplateIds:
      description: One or more wire transfer template IDs are invalid or do not refer to an existing wire transfer template.
      remediation: Specify the ID of an existing template for which the user has access.
      attributes:
        properties:
          invalidWireTransferTemplateIds:
            description: The list of invalid wire transfer template IDs
            type: array
            minItems: 1
            maxItems: 1000
            items:
              type: string
              format: text
              maxLength: 48
    invalidAchTemplateIds:
      description: One or more ACH template IDs are invalid or do not refer to an existing ACH template.
      remediation: Specify the ID of an existing template for which the user has access.
      attributes:
        properties:
          invalidAchTemplateIds:
            description: The list of invalid ACH template IDs
            type: array
            minItems: 1
            maxItems: 1000
            items:
              type: string
              format: text
              maxLength: 48
    invalidAchTemplate:
      description: The given ACH template is ineligible to create a payment batch.
      remediation: Use a different ACH template.
    propertiesIneligibleForLocking:
      description: The property cannot be locked due to an incompatible value.
      remediation: Assign a different value for the property before locking.
      attributes:
        properties:
          properties:
            description: Properties that are unable to be locked due to having an incompatible value.
            type: array
            uniqueItems: true
            minItems: 1
            maxItems: 11
            items:
              $ref: '#/components/schemas/lockedWireTransferTemplateProperty'
    invalidCustomerId:
      description: The given customer ID is invalid.
      remediation: Use a different customer ID.
    invalidInstitutionLocator:
      description: The locator value for the financial institution is invalid.
      remediation: Use a valid financial institution locator.
      attributes:
        properties:
          institutionName:
            description: The financial institution's name.
            allOf:
              - $ref: '#/components/schemas/institutionName1'
          locatorType:
            description: The type of the locator.
            allOf:
              - $ref: '#/components/schemas/wireTransferInstitutionLocatorType1'
          locator:
            description: The [American Bankers Association routing number](https://www.aba.com/about-us/routingnumber), [SWIFT Business Identifier Code (BIC) code](https://www.swift.com/standards/data-standards/bic-business-identifier-code), or other financial institution identifier.
            type: string
            maxLength: 36
            format: text
    templateIneligibleForActivation:
      description: The template cannot be activated with the given values.
      remediation: Use valid values.
    missingSettlementAccount:
      description: The payment batch does not have a settlement account.
      remediation: Assign a settlement account.
    invalidTabSeparatedValues:
      description: The tab-separated values file is not well formed and parsing failed.
      remediation: Supply the Base64 encoding of a well-formed tab-separated values file.
    appendDisallowedForCtxImport:
      description: When importing CTX payment instructions, only the `replace` option is allowed.
      remediation: Change the request `strategy` from `append` to `replace`.
    tooManyInstructionsForCtxImport:
      description: When importing CTX payment instructions, only one payment instruction allowed.
      remediation: Adjust the file to include only one payment instruction.
    invalidImportFormat:
      description: The format of the content for importing values is invalid.
      remediation: Supply the Base64 encoding of a well-formed comma-separated values file or tab-separated values file.
    tooFewColumnsInImport:
      description: The values file is not well formed and parsing failed.
      remediation: Supply the Base64 encoding of a well-formed values file.
    emptyFileForImport:
      description: The provided values file is empty.
      remediation: Supply the values for import in Base64 encoding of a well-formed values file.
    tooFewColumnsInTabSeparatedValues:
      description: The tab-separated values file is not well formed and parsing failed.
      remediation: Supply the Base64 encoding of a well-formed tab-separated values file.
    invalidPaymentMethod:
      description: The payment method contains invalid data.
      remediation: Supply the correct value for the payment method field.
      attributes:
        properties:
          index:
            description: The index of the payment method with invalid data.
            type: integer
            format: int32
            minimum: 0
            maximum: 20
          fieldName:
            description: The name of the field containing invalid data.
            type: string
            format: text
            maxLength: 80
    invalidPaymentContactImportRow:
      description: One or more values are invalid for the import row.
      remediation: Supply valid values for the specified columns.
      attributes:
        properties:
          lineNumber:
            description: The line number containing invalid data.
            type: integer
            format: int32
            minimum: 1
            maximum: 1000000
          columnName:
            description: The name of the column containing invalid data.
            type: string
            format: text
            maxLength: 80
    invalidPaymentDirectionInImport:
      description: Payment direction for items must match the payment batch direction.
      remediation: Invalid items found in the file have been skipped.
      attributes:
        properties:
          recordNumbers:
            description: An array of record (line) numbers containing invalid data.
            type: array
            minItems: 1
            maxItems: 1000
            items:
              type: integer
              format: int32
              minimum: 1
              maximum: 1000000
          more:
            description: If `true`, `recordNumbers` contains only the first `n` errors and there are more errors. If `false`, the `recordNumbers` lists all values.
            type: boolean
    addendaDisallowedInImport:
      description: Addenda are not allowed for this type of batch.
      remediation: Addenda values found in the file have been skipped.
      attributes:
        properties:
          recordNumbers:
            description: An array of record (line) numbers containing invalid data.
            type: array
            minItems: 1
            maxItems: 1000
            items:
              type: integer
              format: int32
              minimum: 1
              maximum: 1000000
          more:
            description: If `true`, `recordNumbers` contains only the first `n` errors and there are more errors. If `false`, the `recordNumbers` lists all values.
            type: boolean
    tooManyAddendaInImport:
      description: Only one addenda allowed for this type of batch.
      remediation: Addenda values found in the file have been skipped.
      attributes:
        properties:
          recordNumbers:
            description: An array of record (line) numbers containing invalid data.
            type: array
            minItems: 1
            maxItems: 1000
            items:
              type: integer
              format: int32
              minimum: 1
              maximum: 1000000
          more:
            description: If `true`, `recordNumbers` contains only the first `n` errors and there are more errors. If `false`, the `recordNumbers` lists all values.
            type: boolean
    tooManyRecordsInImport:
      description: Only one record is allowed for this type of batch.
      remediation: Additional records found in the file have been skipped.
      attributes:
        properties:
          recordNumbers:
            description: An array of record (line) numbers containing invalid data.
            type: array
            minItems: 1
            maxItems: 1000
            items:
              type: integer
              format: int32
              minimum: 1
              maximum: 1000000
          more:
            description: If `true`, `recordNumbers` contains only the first `n` errors and there are more errors. If `false`, the `recordNumbers` lists all values.
            type: boolean
    invalidAccountTypeInImport:
      description: One or more ACH account type values are invalid
      remediation: Correct the invalid records and retry the operation. Valid values are `checking`, `check`, `D`, `DDA` for checking accounts, `loan`, `L`, `LN`, `LON`,  for loan accounts, and `savings`, `S`, `SAV`, `SSA` for  savings accounts.
      attributes:
        properties:
          recordNumbers:
            description: An array of record (line) numbers containing invalid data.
            type: array
            minItems: 1
            maxItems: 1000
            items:
              type: integer
              format: int32
              minimum: 1
              maximum: 1000000
          more:
            description: If `true`, `recordNumbers` contains only the first `n` errors and there are more errors. If `false`, the `recordNumbers` lists all values.
            type: boolean
    invalidAccountNumberInImport:
      description: One or more ACH account numbers are invalid.
      remediation: Correct the invalid records and retry the operation.
      attributes:
        properties:
          recordNumbers:
            description: An array of record (line) numbers containing invalid data.
            type: array
            minItems: 1
            maxItems: 1000
            items:
              type: integer
              format: int32
              minimum: 1
              maximum: 1000000
          more:
            description: If `true`, `recordNumbers` contains only the first `n` errors and there are more errors. If `false`, the `recordNumbers` lists all values.
            type: boolean
    invalidRoutingNumberInImport:
      description: One or more ACH routing and transit numbers are invalid.
      remediation: Correct the invalid records and retry the operation
      attributes:
        properties:
          recordNumbers:
            description: An array of record (line) numbers containing invalid data.
            type: array
            minItems: 1
            maxItems: 1000
            items:
              type: integer
              format: int32
              minimum: 1
              maximum: 1000000
          more:
            description: If `true`, `recordNumbers` contains only the first `n` errors and there are more errors. If `false` the `recordNumbers` lists all values.
            type: boolean
    invalidHoldValueInImport:
      description: One or more Hold column values are invalid.
      remediation: Correct the invalid records and retry the operation.
      attributes:
        properties:
          recordNumbers:
            description: An array of record (line) numbers containing invalid data.
            type: array
            minItems: 1
            maxItems: 1000
            items:
              type: integer
              format: int32
              minimum: 1
              maximum: 1000000
          more:
            description: If `true`, `recordNumbers` contains only the first `n` errors and there are more errors. If `false`, the `recordNumbers` lists all values.
            type: boolean
    extraColumnsIgnoredInImport:
      description: One or more records had extra columns which were ignored.
      remediation: Remove extra columns before importing to prevent this warning.
      attributes:
        properties:
          recordNumbers:
            description: An array of record (line) numbers containing extra columns.
            type: array
            minItems: 1
            maxItems: 1000
            items:
              type: integer
              format: int32
              minimum: 1
              maximum: 1000000
          more:
            description: If `true`, `recordNumbers` contains only the first `n` warnings and there are more warnings If `false`, the `recordNumbers` lists all values.
            type: boolean
    balancedNachaAchFileNotAllowed:
      description: The user attempted to upload a balanced NACHA file but is only allowed to upload unbalanced files.
      remediation: Upload only unbalanced NACHA files.
    exceedsEffectiveDateLimits:
      description: The time span between the earliest and latest effective dates exceeds the limit.
      remediation: Submit a NACHA file whose effective date range is within the financial institution's limit.
    paymentInstructionsNotAvailable:
      description: Payment instructions are not available for NACHA pass-through payments.
      remediation: Do not access payment instructions for NACHA pass-through payments.
    unbalancedNachaAchFileNotAllowed:
      description: The user attempted to upload an unbalanced NACHA file but is only allowed to upload balanced files.
      remediation: Upload only balanced NACHA files.
    invalidNachaAchFile:
      description: The supplied NACHA ACH file contents is invalid.
      remediation: Send a properly formatted and [Base64-encoded](https://en.wikipedia.org/wiki/Base64) [NACHA ACH file](https://achdevguide.nacha.org/ach-file-overview).
    invalidSettlementAccount:
      description: The chosen settlement account does not exist, is not accessible, or is not entitled for the chosen money movement direction.
      remediation: Choose an available account that supports debit or credits that match the batch's money movement direction.
    invalidSettlementAccounts:
      description: One or more of the chosen settlement accounts do not exist, is not accessible, or is not entitled for the chosen. money movement direction.
      remediation: Choose an available account that supports debit or credits that match the batch's money movement direction.
      attributes:
        properties:
          accounts:
            description: An array of invalid settlement account IDs.
            type: array
            minItems: 1
            maxItems: 1000
            items:
              $ref: '#/components/schemas/readOnlyResourceId'
    invalidInstructionForBatch:
      description: The payment instruction `type` does not match the payment batch `type`.
      remediation: Add only matching instructions to a patch (i.e. `ach` instructions to an `ach` batch, `wireTransfer` instructions to a `wireTransfer` batch).
    invalidAchPaymentBatchDetails:
      description: The batch type was `ach` but the request did not include the `ach` property.
      remediation: Include a valid `ach` object in the new payment batch request.
    noSuchPaymentBatchCustomerId:
      description: No such customer was found or accessible for the given `customerId`.
      remediation: Supply the resource ID (not username/access ID) of a valid customer in the `customerId` property.
    noSuchPaymentBatchCompany:
      description: No such company was found or accessible for the given company `id` and `type`.
      remediation: Supply the correct company `id` and `type` that the user is entitled to use for payment batches.
    invalidDirectionForWireTransfer:
      description: If a payment batch is a wire transfer, the `direction` must be `credit`.
      remediation: Set the `direction` to `credit` in the request.
    immutablePaymentBatchState:
      description: The payment batch is not mutable.
      remediation: To update a `scheduled` batch, unlock the batch via the `unlockPaymentBatch` operation.
    duplicatePaymentInstruction:
      description: There is already another payment instruction that matches the request.
      remediation: Enter unique data for this payment instruction.
    duplicatePaymentMethod:
      description: There is already another payment method that matches the request.
      remediation: Enter unique data for this payment method.
    duplicateNachaFile:
      description: There is already another NACHA pass-through file with the same content.
      remediation: Do not upload previously uploaded NACHA files, or have the bank customer confirm the duplicate is intentional and retry with `?allowDuplicates=true`.
    invalidAchInstructionAccountNumber:
      description: The `ach.accountNumber` is not a valid bank account number.
      remediation: Enter a valid 9 digit account number, fully padded.
    invalidAchInstructionRoutingNumber:
      description: The `ach.routingNumber` is not a valid bank routing number.
      remediation: Enter a valid 9 digit financial institution routing number.
    noSuchContact:
      description: There is no such contact resource for the given `contactId`.
      remediation: Pass a valid contact ID or omit the `contactId` from the request.
    noSuchPaymentMethod:
      description: There is no such contact resource for the given `paymentMethodId`.
      remediation: Pass a valid payment method ID or omit the `paymentMethodId` from the request.
    noSuchPaymentBatch:
      description: There is no such payment batch for the given `paymentBatchId`.
      remediation: Pass a valid payment batch ID.
    noSuchPaymentInstruction:
      description: There is no such payment instruction on this batch for one or more of the given `paymentInstructionIds`,
      remediation: Pass valid payment instruction IDs from this batch's list of instructions.
      attributes:
        properties:
          paymentInstructionIds:
            description: The invalid payment instruction IDs.
            type: array
            maxItems: 1000
            items:
              description: The `instructionId` of an instruction to reverse in this batch.
              type: string
              format: text
              maxLength: 48
    invalidPaymentBatchForCopy:
      description: The payment batch referenced by the `paymentBatchId` is not eligible for copying, or the customer does not have the copy permission.
      remediation: Pass an eligible payment batch ID.
    noSuchInstruction:
      description: There is no such payment instruction for the given `paymentInstructionId`.
      remediation: Pass a valid payment instruction ID.
    invalidLocatorTypeForInstitution:
      description: The provided `locatorType` is invalid for the institution.
      remediation: Pass a valid locator type.
      attributes:
        properties:
          locatorTypes:
            description: Valid locator types for the institution.
            type: array
            maxItems: 1000
            items:
              description: The `locatorType` to be used for locating an institution.
              minItems: 1
              type: string
              format: text
              maxLength: 48
    noSuchConfidentialCustomer:
      description: There is no such customer for the given `confidentialCustomers[i].id`.
      remediation: Pass a valid customer ID.
    ambiguousOriginatorAddress:
      description: A wire transfer originator may not have both a US and international address.
      remediation: Set the unneeded `originator` address to `null` when patching the wire transfer payment batch.
    invalidInstructions:
      description: One or more payment instructions have problems.
      remediation: Address the problems in the individual payment instructions.
    invalidScheduledDate:
      description: The payment scheduled start date for this payment batch is invalid.
      remediation: Set a different scheduled date.
      attributes:
        properties:
          earliestScheduledDate:
            description: The earliest available scheduled date, based on financial institution banking holidays and customer risk, in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) date format.
            $ref: '#/components/schemas/date'
          minimumApprovalDays:
            description: The minimum number of business days required for approving the payment batch.
            type: integer
            format: int32
            minimum: 0
            maximum: 20
          cutoffDate:
            description: The next available cutoff date for payment batch processing in `YYYY-MM-DD` [RFC 3339](https://tools.ietf.org/html/rfc3339) date format.
            $ref: '#/components/schemas/date'
    unprivilegedAchOperation:
      description: Responsible customer does not have ACH privilege(s) over customer.
      remediation: Give the customer privileges, or let a customer with the correct privileges perform the operation.
      attributes:
        properties:
          responsibleCustomerName:
            description: The name of the customer attempting the operation.
            type: string
            format: text
            maxLength: 48
            example: Benny Billings
          responsibleCustomerUsername:
            description: The login username of the customer attempting the operation.
            type: string
            format: text
            maxLength: 48
            example: bbillings
          customerName:
            description: The name of the customer the user is attempting to act on behalf of.
            type: string
            format: text
            maxLength: 48
            example: Inland Transport
          customerUsername:
            description: The login username of the customer the user is attempting to act on behalf of.
            type: string
            format: text
            maxLength: 48
            example: inland-transport
    invalidApprover:
      description: The requested approver is not eligible for approving this payment batch.
      remediation: Pass only eligible approvers from the `listPaymentBatchEligibleApprovers` operation.
      attributes:
        properties:
          id:
            description: The ineligible customer ID.
            type: string
            format: text
            maxLength: 48
          name:
            description: The ineligible customer name.
            type: string
            format: text
            maxLength: 48
          identification:
            description: The ineligible customer's identification string.
            type: string
            format: text
            maxLength: 48
    invalidStateForHold:
      description: The payment instruction `hold` value cannot be changed when the payment batch is in the current state.
      remediation: The payment batch containing the payment instruction must be in an editable state.
    invalidStateForSubmit:
      description: The submit operation is not allowed if the payment batch `allows.submit` is `false`.
      remediation: Resolve any problems in the batch and/or its payment instructions so that the payment batch `allows.submit` is `true`.
    invalidStateForPaymentInstructionDelete:
      description: The payment instruction cannot be deleted when the payment batch is in the current state.
      remediation: The payment batch containing the payment instruction must be in an editable state.
    invalidStateForReject:
      description: The payment batch cannot be rejected when in the current state.
      remediation: The payment batch state must be `pendingApprovals`.
      attributes:
        properties:
          invalidPaymentBatchIds:
            description: The list of payment batch IDs which are in an invalid state.
            type: array
            minItems: 1
            maxItems: 1000
            items:
              type: string
              format: text
              maxLength: 48
    invalidStateForReverse:
      description: The payment batch cannot be reversed when in the current state.
      remediation: The payment batch state must be `processing`.
      attributes:
        properties:
          invalidPaymentBatchIds:
            description: The list of payment batch IDs which are in an invalid state.
            type: array
            minItems: 1
            maxItems: 1000
            items:
              type: string
              format: text
              maxLength: 48
    invalidStateForUnlock:
      description: One or more payment batch cannot be unlocked when in the current state.
      remediation: The payment batch state must be `pending` or `approved` or `scheduled`
      attributes:
        properties:
          invalidPaymentBatchIds:
            description: The list of payment batch IDs which are in an invalid state.
            type: array
            minItems: 1
            maxItems: 1000
            items:
              type: string
              format: text
              maxLength: 48
    invalidStateForDelete:
      description: The payment batch cannot be deleted when in the current state.
      remediation: The payment batch state must be one of `pending`, `pendingApprovals` or `rejected`.
      attributes:
        properties:
          invalidPaymentBatchIds:
            description: The list of payment batch IDs which are in an invalid state.
            type: array
            minItems: 1
            maxItems: 1000
            items:
              type: string
              format: text
              maxLength: 48
    invalidStateForApprove:
      description: The payment batch cannot be approved when in the current state.
      remediation: The payment batch state must be `pendingApprovals` and have no problems.
      attributes:
        properties:
          invalidPaymentBatchIds:
            description: The list of payment batch IDs which are in an invalid state.
            type: array
            minItems: 1
            maxItems: 1000
            items:
              type: string
              format: text
              maxLength: 48
    invalidStateForAddApprovers:
      description: The payment batch cannot have approvers added when in the current state.
      remediation: The payment batch state must be `pendingApprovals` or remove existing approvals.
      attributes:
        properties:
          invalidPaymentBatchIds:
            description: The list of payment batch IDs which are in an invalid state.
            type: array
            minItems: 1
            maxItems: 1000
            items:
              type: string
              format: text
              maxLength: 48
    mustRemovePaymentBatchApprovals:
      description: The payment batch has at least one approval.
      remediation: Remove the existing approvals.
      attributes:
        properties:
          invalidPaymentBatchIds:
            description: The list of invalid payment batch IDs.
            type: array
            minItems: 1
            maxItems: 1000
            items:
              type: string
              format: text
              maxLength: 48
    invalidPaymentBatchIds:
      description: One or more payment batch IDs are invalid or do not refer to an existing payment batch.
      remediation: Specify the ID of a payment batch for the operation that the user requested.
      attributes:
        properties:
          invalidPaymentBatchIds:
            description: The list of invalid payment batch IDs
            type: array
            minItems: 1
            maxItems: 1000
            items:
              type: string
              format: text
              maxLength: 48
    tooManyPaymentBatchIds:
      description: Only one payment batch is allowed when exporting a tab-separated values file.
      remediation: Reduce the number of payment batch IDs to 1.
    nonAchPaymentBatch:
      description: 'The selected payment batch is not a `type: ach` batch.'
      remediation: Select only ACH batches when exporting payment batches.
      attributes:
        properties:
          invalidPaymentBatchIds:
            description: The list of invalid payment batch IDs.
            type: array
            minItems: 1
            maxItems: 1000
            items:
              type: string
              format: text
              maxLength: 48
    invalidPaymentInstructionIds:
      description: One or more payment instructions IDs are invalid or do not refer to an existing payment instruction in the payment batch.
      remediation: Specify the ID of a payment instruction for the operation that the user requested.
      attributes:
        properties:
          invalidPaymentInstructionIds:
            description: The list of invalid payment instruction IDs.
            type: array
            minItems: 1
            maxItems: 1000
            items:
              type: string
              format: text
              maxLength: 48
    invalidPaymentContactIds:
      description: One or more payment contact IDs are invalid or do not refer to an existing payment contact.
      remediation: Specify the ID of an existing contact for which the user has read access.
      attributes:
        properties:
          invalidPaymentContactIds:
            description: The list of invalid payment contact IDs
            type: array
            minItems: 1
            maxItems: 1000
            items:
              type: string
              format: text
              maxLength: 48
    pastCutoffTime:
      description: The cutoff time for payment processing has passed.
      remediation: Update the scheduled date for a future date.
    exceedsLimits:
      description: The payment total exceeds the allowed limits.
      remediation: Check for and remove excessive payments, or split the payment batch into multiple batches.
    exceedsRisks:
      description: The payment batch exceeds the risk limits.
      remediation: Address the risk limit.
    unsupportedSecCode:
      description: The SEC code is not supported
      remediation: Use a supported SEC code.
      attributes:
        properties:
          secCodes:
            description: Unsupported SEC codes.
            type: array
            maxItems: 100
            items:
              type: string
              format: text
              maxLength: 3
              minLength: 3
    invalidCompanyId:
      description: Company ID contains invalid characters or is blank.
      remediation: Remove invalid characters from company ID.
    invalidCompanyName:
      description: Company name contains invalid characters or is blank.
      remediation: Remove invalid characters from company name.
    invalidWireTransfer:
      description: Requested properties are invalid for creating a wire transfer.
      remediation: Update the request to be a valid configuration.
    missingPaymentInstructionAmount:
      description: The payment amount for this instruction is missing.
      remediation: Set a valid, non-zero payment amount.
    invalidDisclosureForWireTransfer:
      description: One or more disclosures for this wire transfer are invalid.
      remediation: Use disclosures allowed by this wire transfer.
    missingRequiredDisclosureForWireTransfer:
      description: The wire transfer requires a disclosure acknowledgement.
      remediation: Include the required disclosure when submitting this wire transfer.
    propertiesLockedInWireTransferTemplate:
      description: One of more properties have been locked for modification in the template.
      remediation: Unlock the properties in the template to modify them in this payment batch.
      attributes:
        properties:
          properties:
            description: Requested properties that are unable to be modified due to being locked.
            type: array
            uniqueItems: true
            minItems: 1
            maxItems: 11
            items:
              $ref: '#/components/schemas/lockedWireTransferTemplateProperty1'
    propertiesLockedInAchTemplate:
      description: One of more properties have been locked for modification in the template.
      remediation: Unlock the properties in the template to modify them in this payment batch.
      attributes:
        properties:
          properties:
            description: Requested properties that are unable to be modified due to being locked.
            type: array
            uniqueItems: true
            minItems: 1
            maxItems: 11
            items:
              $ref: '#/components/schemas/lockedAchTemplateProperty1'
    dryRunUnavailable:
      description: A dry run cannot be performed for the operation with the given configuration.
      remediation: Use a different configuration and try again.
    currencyQuoteExpired:
      description: The currency conversion quote has expired for this payment batch.
      remediation: Update the payment batch's scheduled date to refresh the currency quote.
    invalidAcceptedCurrencyQuote:
      description: The provided currency quote is invalid.
      remediation: Use a valid accepted currency quote.
    currencyConversionNotAllowed:
      description: Currency conversion is not allowed.
      remediation: Create a new international wire transfer payment batch with this currency conversion quote.
    nonMatchingSettlementAccount:
      description: For international wire transfer payment batches involving a currency conversion, the settlement account must match the account in the currency quote or be derived from the currency quote.
      remediation: Use a matching settlement account or use the derived account, then retry the request.
    cannotTransferFrom:
      description: The customer does not have `transferFrom` entitlement on the source account.
      remediation: Choose a source account that allows transfers from it.
    cannotTransferTo:
      description: The customer does not have `transferTo` entitlement on the target account.
      remediation: Choose a target account that allows transfers to it.
    invalidSourceAccountId:
      description: The named `sourceAccountId` does not exist or the user is not entitled to access the account.
      remediation: Pass the `id` of an existing account the caller has access to.
    invalidTargetAccountId:
      description: The named `targetAccountId` does not exist or the user is not entitled to access the account.
      remediation: Pass the `id` of an existing account the caller has access to.
    sameSourceAndTargetTransferAccounts:
      description: The source and target account are the same.
      remediation: Choose different source and target accounts.
    externalToExternalTransferNotAllowed:
      description: Transfers from an external account to another external is not allowed.
      remediation: At least one of the source or target accounts must be an internal account held at the financial institution.
    nonPositiveAmount:
      description: The transfer amount may not be 0.00.
      remediation: Set the transfer amount to a positive number.
    insufficientFundsForTransfer:
      description: The source account has insufficient funds.
      remediation: Reduce the transfer amount to less than the available balance.
    invalidTransferSchedule:
      description: The transfer schedule is invalid.
      remediation: Choose a date that is not in the past or past the cutoff time.
    cannotDeleteProcessedTransfers:
      description: The delete operation is only allowed for transfers which have not begun processing.
      remediation: Select a pending or scheduled transfer.
    transactionsForInternalAccountOnly:
      description: Transactions are not available for external accounts.
      remediation: Request transactions only for internal accounts.
    noSuchAccount:
      description: There is no such account at the given `accountId`
      remediation: Use the `accountId` of an account the user is entitled to view.
    noSuchTransaction:
      description: There is no such transaction at the given `transactionId`
      remediation: Use the `transactionId` of a transaction from the list of transaction items.
    noTransactionImages:
      description: There are no transaction images associated with this transaction.
      remediation: Invoke this operation only when a transaction has images.
    invalidLocator:
      description: The `locator` value is invalid for the given `locatorType`.
      remediation: Pass a valid ABA routing number, IBAN number, or SWIFT/BIC code, as per the given `locatorType`.
    restrictionDateRangeTooLarge:
      description: The `endOn` is limited to four years after the `startOn` date
      remediation: Limit the `endOn` date to no more than four years after the `startOn` date
    invalidRestrictionDateRange:
      description: The `startOn` date should be no earlier than a week before the start of the current month, and the `endOn` date must fall after the `startOn` date
      remediation: Pass valid values for `startOn` and `endOn`
    invalidLocationParameters:
      description: Only one type of location parameter may be included or a location parameter is missing a value.
      remediation: Provide correct location parameters.
    noSuchCompanyId:
      description: There is no such company for the provided customer ID query parameter.
      remediation: Supply the ID of a company the customer is entitled to manage.
    invalidCurrencyCode:
      description: The currency code in the request is invalid.
      remediation: Use a currency code from the listCurrencies operation response.
    missingSourceOrTargetAmount:
      description: The request must specify a `sourceAmount` or `targetAmount`.
      remediation: Pass one of `sourceAmount` and `targetAmount`.
    sourceAndTargetAmountAreMutuallyExclusive:
      description: The request contains both `sourceAmount` and `targetAmount`
      remediation: Pass only one of `sourceAmount` and `targetAmount` but not both.
    invalidCurrencyConversionQuote:
      description: The currency quote in the request is invalid.
      remediation: Use a valid currency conversion quote.
    currencyConversionQuoteExpired:
      description: The given currency conversion quote has expired.
      remediation: Request a new currency conversion quote.
    invalidChallengeId:
      description: The provided `challengeId` is invalid, expired, already claimed, or does not match the `factor` or context.
      remediation: Provide the corresponding `operationId`, `factor` and `id` from the challenge.
    invalidChallengeFactorState:
      description: The selected challenge factor is not active.
      remediation: Start the challenge factor to set it as active before verifying a user response.
    invalidChallengeOperationId:
      description: The `operationId` is invalid.
      remediation: Use the `operationId` from the corresponding challenge.
    invalidChallengeFactor:
      description: The `factor` in the request does not match available factors.
      remediation: Use a `factor` that corresponds to the `challengeId` from the corresponding challenge.
    wrongNumberOfResponses:
      description: The challenge verification sent the wrong number of response strings.
      remediation: Send only one response for one-time passcode challenges, or send exactly one response for each security question.
    cannotDeletePeerAccount:
      description: The caller cannot delete a peer account that is in use in pending transfers.
      remediation: Cancel the transfers that use this peer account, or archive the account.
    maximumNumberOfPeerAccountsReached:
      description: The customer/member has reached the maximum number of peer accounts.
      remediation: Instruct the customer to delete an existing peer account.
    noSuchPeerAccount:
      description: There is no such peer account at the financial institution for the given data.
      remediation: Provide the account holder name and account numbers for an active account.
    duplicatePeerAccount:
      description: The customer already has a peer account which matches the given data.
      remediation: Enter data for an unique account.
    duplicatePeerAccountNickname:
      description: The customer already has a peer account with the given nickname.
      remediation: Enter a unique nickname for the account.
    invalidPeerAccountState:
      description: This request is not allowed for a peer account in this state.
      remediation: Invoke the operation only on peer accounts in the required state for this operation.
      attributes:
        properties:
          currentState:
            description: The peer account's current state.
            $ref: '#/components/schemas/peerAccountState'
          requiredState:
            description: The state the peer account must be in for this operation
            $ref: '#/components/schemas/peerAccountState'
    invalidPeerAccountInstitutionData:
      description: The caller passed bank properties when the institution is a credit union, or passed credit union data when the institution is a bank, or the caller passed both or neither
      remediation: Pass `bank` only when the institution is a bank, and pass `creditUnion` only when the institution is a credit union
    invalidAccountIds:
      description: One or more account IDs are invalid and do not correspond to accounts.
      remediation: Remove the invalid account IDs from the request and try again.
      attributes:
        properties:
          accountIds:
            description: The list of invalid account IDs.
            type: array
            minItems: 1
            maxItems: 1000
            uniqueItems: true
            items:
              $ref: '#/components/schemas/readOnlyResourceId'
    invalidAccountId:
      x-apiture-version: 0.2.0
      description: The named `accountId` does not exist or the user is not entitled to access the account.
      remediation: Pass the `id` of an existing account the caller has access to.
    overdraftAccountNotEligible:
      description: The named account is not eligible as an overdraft protection account.
      remediation: Use an account from the `listEligibleOverdraftAccounts` response for the protected account.
    duplicateOverdraftAccounts:
      description: The `items` in the request list the same account `id` more than once.
      remediation: Use eligible unique accounts only.
    duplicateOverdraftAccountIds:
      description: The `id` values in the request list the same account `id` more than once.
      remediation: Use eligible unique accounts only.
    primaryOverdraftProtectionNotAvailable:
      description: The caller requested a change to the `primary` overdraft protection election, but the financial institution does not offer a primary overdraft protection plan for the given account.
      remediation: Only change primary overdraft protection elections for accounts that already have a `primary` election.
    secondaryOverdraftProtectionNotAvailable:
      description: The caller requested a change to the `secondary` overdraft protection election, but the financial institution does not offer a secondary overdraft protection plan for the given account.
      remediation: Only change secondary overdraft protection elections for accounts that already have a `secondary` election.
    overdraftElectionsViolatesPolicies:
      description: One or mode of the requested the primary and secondary overdraft protection elections violate the financial institution's policies.
      remediation: Update the election(s) to conform to the financial institution policies, available via the `getOverdraftProtectionPolicies` operation.
      properties:
        accountIds:
          description: An array of account Ids for which elections in the request violate the financial institution's overdraft election policies.
          type: array
          minItems: 1
          maxItems: 128
          items: ../common/openapi.yaml#/components/schemas/readOnlyResourceId
    tooManyOverdraftAccounts:
      description: The `items` in the request contains more than `maximumOverdraftAccounts` items.
      remediation: Specify at most `maximumOverdraftAccounts` items in the request.
    cdMaturityTransferAccountAndProductAreMutuallyExclusive:
      description: CD maturity may only specify a transfer account or a transfer product, not both.
      remediation: Set only one of a transfer account or a transfer product.
    noSuchRolloverProduct:
      description: The rollover product does not exist.
      remediation: Select an active CD rollover product that meets the balance and other requirements.
    invalidRolloverProduct:
      description: The selected rollover product is not eligible for CD rollover.
      remediation: Select an active CD rollover product that meets the balance and other requirements.
    noSuchCdMaturityTransferProduct:
      description: The selected transfer product ID does not match an existing product.
      remediation: Select a deposit product that is eligible for new account creation and funding transfer.
    noSuchCdMaturityTransferAccount:
      description: The selected transfer account ID does not match an existing account.
      remediation: Select a deposit account that is eligible for debit transfers for the current user.
    invalidCdMaturityTransferAccount:
      description: The selected transfer account ID does not match an existing account.
      remediation: Select a deposit account that is eligible for debit transfers for the current user.
    accountNotActive:
      description: The selected account is not active.
      remediation: Select an account that is active.
    accountTypeNotEligibleForLoanPayoffQuote:
      description: The account type is not eligible for displaying a loan payoff quote.
      remediation: Select an account with the `viewLoanPayoffQuote` entitlement.
    targetLoanPayoffDateInThePast:
      description: The target loan payoff date is in the past.
      remediation: Select a target loan payoff date that is today or in the future, up to the maximum allowable loan payoff target date.
    targetLoanPayoffDatePastAccountMaturityDate:
      description: The target loan payoff date is past the loan account maturity date.
      remediation: Select a target loan payoff date that is before or on the loan account maturity date.
    targetLoanPayoffDatePastMaxTargetDate:
      description: The target loan payoff date is past the maximum allowable loan payoff target date.
      remediation: Select a target loan payoff date that is before or on the maximum allowable loan payoff target date.
    unprocessableEntity:
      description: The syntax of the request entity is correct but was unable to process the contained instructions.
      remediation: Provide a semantically correct request.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/unprocessableEntity
    challengeBlocked:
      description: The user has failed challenges too many times and is blocked from attempting more or performing operations which require additional authentication.
      remediation: Have the user end their login session and login again.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/challengeBlocked
    conflict:
      description: The request could not be completed due to a conflict with the current state of the target resource.
      remediation: Try another operation that is allowed.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/conflict
    badRequest:
      description: The request body and/or parameters was not well-formed.
      remediation: Correct any syntax or schema errors in the request body or parameters.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/badRequest
    unauthorized:
      description: The request lacks valid authentication credentials for the target resource or operation.
      remediation: Authenticate the user and pass the required authorization with the request.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/unauthorized
    forbidden:
      description: The user or agent is not allowed to perform this operation; authentication credentials were provided in the request, but the server considers them insufficient to grant access.
      remediation: Check the user's permissions and entitlements before attempting the operation.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/forbidden
    customerDisabled:
      description: The customer is disabled.
      remediation: Have the customer contact the financial institution for support.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/customerDisabled
    antiMalwareRequired:
      description: The financial institution requires the customer to have anti-malware software installed.
      remediation: Direct the user to the software requirements guide to install the correct anti-malware software.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/antiMalwareRequired
    modificationForbidden:
      description: The customer is properly authenticated but not authorized to create, modify, or delete resources.
      remediation: Avoid modification operation for customers with read-only authorization.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/modificationForbidden
    challengeRequired:
      description: The operation requires the customer to complete an identity challenge.
      remediation: Complete the challenge as per the problem response, and add an additional `Challenge` header to the call.
      attributes:
        $ref: '#/components/schemas/requiredIdentityChallenge'
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/challengeRequired
    noIdentityChallengeFactors:
      description: This operation requires an identity challenge, but the user does not have the necessary registered authentication factors.
      remediation: Have the user register one or more challenge security code delivery factors.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/noIdentityChallengeFactors
    invalidIdentityChallengeHeader:
      description: The additional on-time `Challenge` header in this request is expired, already used, or otherwise invalid.
      remediation: Supply a valid, unexpired, unclaimed `Challenge` header in the request.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/invalidIdentityChallengeHeader
    notFound:
      description: The resource at the requested URL does not exist.
      remediation: Use the URL of an existing resource.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/notFound
    tooManyRequests:
      description: The client has sent too many requests in a given amount of time, exceeding rate limiting.
      remediation: Slow down the rate of API calls.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/tooManyRequests
    gatewayTimeout:
      description: The server did not receive a timely response from an upstream server it needed to access in order to complete the request.
      remediation: Wait a few minutes and try again, or gracefully fail the client request.
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/gatewayTimeout
    invalidStart:
      description: The `start` query parameter is invalid.
      remediation: Use the `nextPage_url` in the previous response (and its service-generated `?start=` parameter) to access the next page
      x-resolved-from: ../../common/openapi.yaml#/components/x-apiture-errors/invalidStart
  headers:
    ETag:
      description: The value of this resource's _entity tag_, to be passed with `If-Match` and `If-None-Match` request headers in other conditional API calls for this resource.
      schema:
        $ref: '#/components/schemas/entityTag'
      x-resolved-from: ../../common/openapi.yaml#/components/headers/ETag
    Retry-After:
      description: |-
        Indicates an absolute time, in [HTTP `date-time` format, UTC](https://datatracker.ietf.org/doc/html/rfc7231#section-7.1.1.1) or a delay in seconds (a non-negative integer) after which the client may retry the operation. See [RFC7231: Retry-After](https://datatracker.ietf.org/doc/html/rfc7231#section-7.1.3)

        Examples:
          * `Retry-After: 5`
          * `Retry-After: Mon, 03 May 2022 23:59:59 GMT`
      schema:
        type: string
        format: text
        maxLength: 32
      x-resolved-from: ../../common/openapi.yaml#/components/headers/Retry-After
x-apiture-namespace: banking
x-apiture-package-name: customer-banking
x-apiture-traits:
  - resource:
      name: banking product
      cursorPaged: false
      readOnly: true
      etag: true
      applied: true
  - security:
      baseScope: data
      applied: true
x-apiture-components: true
x-resolved-from: ../../banking/status-codes-openapi.yaml
x-resolved-at: '2024-12-03T17:03:53.582Z'
x-apiture-annotated-at: '2024-12-03T17:03:54.126Z'
