openapi: 3.0.0
servers:
  - url: 'https://api.devbank.apiture.com/transactions'
info:
  title: Transactions
  description: >
    The Transactions API provides read-only access to banking account transactions for bank customers.


    The Transactions API returns transactions for accounts held at the current financial institution. Transactions are debits and credits to accounts,
    such as depostis, transfers, processed checks, fees, interest, reversals, etc. The [`/transactions`](#op-getTransactions) collection lists all
    transactions, both pending and completed. For accounts with completed transaction history, the user can view those transactions via the
    [`getHistory`](#op-getHistory) operation. Pending transactions are managed in a separate collection, accessed via the
    [`getPendingTransactions`](#op-getPendingTransactions) operation.


    Note that the queries to filter transactions, such as

    ```
       GET /transactions/history?account={accounId}
    ```

    do not filter by the actual account numbers. For security, these queries only filter based on the opaque account resource ID, which is decoupled
    from the account number. (The `{accountId}` is the account's `_id` from the Accounts API.) Thus, actual customer account numbers do not appear in
    the request URLs or in web traffic logs.


    Some transactions have check images associated with them, such as a cashed check photograph acptured for remote check deposit, or a written check
    drafted against the account. If there is a check, the [`transaction` object](#schema-transaction) contains two links to the check image content,
    one for the check front and and one for the back (typically JPEG or PNG image).


    # Error Types


    Error responses in this API may have one of the `type` values described below.

    See [Errors](https://developer.apiture.com/docs/concepts/errors) for more information

    on error responses and error types.




    <h2 class='errorType' id="err-invalidCheckId">invalidCheckId</h2>


    **Description**: No checks images were found for the specified checkId or check side. <br>

    **Remediation**: Use the check image links on a transaction.



    <h2 class='errorType' id="err-transactionNotFound">transactionNotFound</h2>


    **Description**: No transactions were found for the specified transactionId. <br>

    **Remediation**: Check to make sure that the supplied transactionId corresponds to an apiture transaction resource.
  version: 0.16.4
  contact:
    name: Apiture
    url: 'https://developer.apiture.com'
    email: api@apiture.com
  termsOfService: 'https://developer.apiture.com/docs/Apiture-Open-API-License-Agreement.pdf'
tags:
  - name: Transactions
    description: Bank Account Transactions
  - name: Pending Transactions
    description: Bank Account Pending Transactions
  - name: History
    description: Bank Account Past Transactions
  - name: API
    description: The Transactions API
  - name: Checks Images
    description: Check Images Attached to a Transaction
paths:
  /transactions:
    get:
      summary: Return a collection of pending and completed transactions.
      description: >-
        Return a [paginated](https://developer.apiture.com/docs/concepts/pagination) [sortable](https://developer.apiture.com/docs/concepts/sorting)
        [filterable](https://developer.apiture.com/docs/concepts/filtering) [searchable](https://developer.apiture.com/docs/concepts/searchable)
        collection of pending and completed transactions. The [links](https://developer.apiture.com/docs/concepts/links) in the response include
        pagination links.


        The default will show transactions for all accounts that the user has access to. The default sort order is by descending `effectiveAt`.
      operationId: getTransactions
      security:
        - apiKey: []
          accessToken:
            - banking/read
      x-apiture-implemented: true
      tags:
        - Transactions
      x-apiture-traits:
        sortBy:
          - checkNumber
          - description
          - type
          - effectiveAt
          - postedOn
          - reversedOn
        itemSchema: Transaction
        filters:
          checkNumber:
            filter:
              - in
              - le
              - ge
          state:
            filter:
              - eq
              - contains
          type:
            filter:
              - eq
              - contains
          description:
            filter:
              - eq
              - contains
          network:
            filter:
              - eq
          amount.value:
            filter:
              - eq
              - contains
          balance.current:
            filter:
              - eq
              - contains
          postedOn:
            filter:
              - eq
              - gt
              - ge
              - lt
              - le
          effectiveAt:
            filter:
              - eq
              - gt
              - ge
              - lt
              - le
      parameters:
        - $ref: '#/components/parameters/checkNumberQueryParam'
        - $ref: '#/components/parameters/holdStateQueryParam'
        - name: start
          in: query
          description: 'The zero-based index of the first transaction in this page. The default, 0, represents the first page of the collection.'
          schema:
            type: integer
            format: int64
            default: 0
        - name: limit
          in: query
          description: The maximum number of transaction representations to return in this page.
          schema:
            type: integer
            format: int32
            default: 100
        - name: sortBy
          in: query
          description: >-
            Optional sort criteria. See [sort criteria format](https://developer.apiture.com/docs/concepts/sorting), such as
            `?sortBy=field1,-field2`.<br>This collection may be sorted by following properties:<br>&bullet; `checkNumber`<br>&bullet;
            `description`<br>&bullet; `type`<br>&bullet; `effectiveAt`<br>&bullet; `postedOn`<br>&bullet; `reversedOn`
          schema:
            type: string
        - name: filter
          in: query
          description: >-
            Optional filter criteria. See [filtering](https://developer.apiture.com/docs/concepts/filtering).<br>This collection may be filtered by
            following properties and functions:<br>&bullet;  Property `checkNumber` using functions `in`,  `le`,  `ge`<br>&bullet;  Property `state`
            using functions `eq`,  `contains`<br>&bullet;  Property `type` using functions `eq`,  `contains`<br>&bullet;  Property `description` using
            functions `eq`,  `contains`<br>&bullet;  Property `network` using functions `eq`<br>&bullet;  Property `amount.value` using functions
            `eq`,  `contains`<br>&bullet;  Property `balance.current` using functions `eq`,  `contains`<br>&bullet;  Property `postedOn` using
            functions `eq`,  `gt`,  `ge`,  `lt`,  `le`<br>&bullet;  Property `effectiveAt` using functions `eq`,  `gt`,  `ge`,  `lt`,  `le`
          schema:
            type: string
        - $ref: '#/components/parameters/qQueryParam'
        - $ref: '#/components/parameters/accountQueryParam'
        - $ref: '#/components/parameters/disputeStateQueryParam'
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/transactions'
            application/json:
              schema:
                $ref: '#/components/schemas/transactions'
        '400':
          $ref: '#/components/responses/400'
        '422':
          $ref: '#/components/responses/422'
  '/transactions/{transactionId}':
    get:
      summary: Fetch a representation of this transaction
      description: 'Return a [HAL](https://developer.apiture.com/docs/concepts/hal) representation of this transaction resource.'
      operationId: getTransaction
      security:
        - apiKey: []
          accessToken:
            - banking/read
      x-apiture-implemented: true
      tags:
        - Transactions
      parameters:
        - $ref: '#/components/parameters/transactionIdPathParam'
        - $ref: '#/components/parameters/unmaskedQueryParam'
      responses:
        '200':
          description: OK
          headers:
            ETag:
              description: >-
                The `ETag` response header specifies an entity tag which must be provided in an `If-Match` request header for *`PUT`* or *`PATCH`*
                operations which update this resource.
              schema:
                type: string
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/transaction'
            application/json:
              schema:
                $ref: '#/components/schemas/transaction'
        '304':
          $ref: '#/components/responses/304'
        '404':
          $ref: '#/components/responses/404Transaction'
  /pendingTransactions:
    get:
      summary: Return a collection of pending transactions
      description: >-
        Return a [paginated](https://developer.apiture.com/docs/concepts/pagination) [sortable](https://developer.apiture.com/docs/concepts/sorting)
        [filterable](https://developer.apiture.com/docs/concepts/filtering) [searchable](https://developer.apiture.com/docs/concepts/searchable)
        collection of pending transactions. The [links](https://developer.apiture.com/docs/concepts/links) in the response include pagination links.


        The default will show pending transactions for all accounts that the user has access to.
      operationId: getPendingTransactions
      security:
        - apiKey: []
          accessToken:
            - banking/read
      x-apiture-implemented: true
      tags:
        - Pending Transactions
      parameters:
        - $ref: '#/components/parameters/checkNumberQueryParam'
        - $ref: '#/components/parameters/holdStateQueryParam'
        - name: start
          in: query
          description: 'The zero-based index of the first transaction in this page. The default, 0, represents the first page of the collection.'
          schema:
            type: integer
            format: int64
            default: 0
        - name: limit
          in: query
          description: The maximum number of transaction representations to return in this page.
          schema:
            type: integer
            format: int32
            default: 100
        - name: sortBy
          in: query
          description: 'Optional sort criteria. See [sort criteria format](https://developer.apiture.com/docs/concepts/sorting), such as `?sortBy=field1,-field2`.'
          schema:
            type: string
        - $ref: '#/components/parameters/filterQueryParam'
        - $ref: '#/components/parameters/qQueryParam'
        - $ref: '#/components/parameters/accountQueryParam'
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/transactions'
            application/json:
              schema:
                $ref: '#/components/schemas/transactions'
        '400':
          $ref: '#/components/responses/400'
        '422':
          $ref: '#/components/responses/422'
  /history:
    get:
      summary: Return a collection of past transactions
      description: >-
        Return a [paginated](https://developer.apiture.com/docs/concepts/pagination) [sortable](https://developer.apiture.com/docs/concepts/sorting)
        [filterable](https://developer.apiture.com/docs/concepts/filtering) [searchable](https://developer.apiture.com/docs/concepts/searchable)
        collection of transactions. The [links](https://developer.apiture.com/docs/concepts/links) in the response include pagination links.


        Transactions in the history are immutable and not deletable.


        The default will show transactions for all accounts that the user has access to.
      operationId: getHistory
      security:
        - apiKey: []
          accessToken:
            - banking/read
      x-apiture-implemented: true
      tags:
        - History
      parameters:
        - $ref: '#/components/parameters/checkNumberQueryParam'
        - $ref: '#/components/parameters/holdStateQueryParam'
        - name: start
          in: query
          description: 'The zero-based index of the first transaction in this page. The default, 0, represents the first page of the collection.'
          schema:
            type: integer
            format: int64
            default: 0
        - name: limit
          in: query
          description: The maximum number of transaction representations to return in this page.
          schema:
            type: integer
            format: int32
            default: 100
        - name: sortBy
          in: query
          description: 'Optional sort criteria. See [sort criteria format](https://developer.apiture.com/docs/concepts/sorting), such as `?sortBy=field1,-field2`.'
          schema:
            type: string
        - $ref: '#/components/parameters/filterQueryParam'
        - $ref: '#/components/parameters/qQueryParam'
        - $ref: '#/components/parameters/accountQueryParam'
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/transactions'
            application/json:
              schema:
                $ref: '#/components/schemas/transactions'
        '400':
          $ref: '#/components/responses/400'
        '422':
          $ref: '#/components/responses/422'
  '/checkImages/{checkId}/{side}':
    get:
      summary: Image metadata for one side of check
      description: >-
        Return the image metadata for one side of a check associated with a transaction. Use [the `apiture:content` link](#op-getCheckImageContent) in
        the response to `GET` the raw image content (typically JPEG). Valid check side values:
          * `front`
          * `back`
      operationId: getCheckImage
      x-apiture-implemented: true
      tags:
        - Checks Images
      security:
        - apiKey: []
          accessToken:
            - banking/read
      parameters:
        - $ref: '#/components/parameters/checkIdPathParam'
        - $ref: '#/components/parameters/checkSidePathParam'
        - $ref: '#/components/parameters/ifNoneMatchHeaderParam'
      responses:
        '200':
          description: OK
          headers:
            ETag:
              description: >-
                The `ETag` response header specifies an entity tag which must be provided in an `If-Match` request header for *`PUT`* or *`PATCH`*
                operations which update this check deposit resource.
              schema:
                type: string
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/transactionCheckImage'
            application/json:
              schema:
                $ref: '#/components/schemas/transactionCheckImage'
        '404':
          $ref: '#/components/responses/404CheckImage'
  '/checkImages/{checkId}/{side}/content':
    get:
      summary: Raw image content for one side of a check
      description: >-
        Return the raw image content for one side of a check associated with a transaction, as a stream of bytes. This image is described by the
        corresponding [check image metadata](#op-getCheckImage).


        This operation may return a 302 status code to redirect the caller to the actual URL where the file content is available.
      operationId: getCheckImageContent
      x-apiture-implemented: true
      tags:
        - Checks Images
      security:
        - apiKey: []
          accessToken:
            - banking/read
      parameters:
        - $ref: '#/components/parameters/checkIdPathParam'
        - $ref: '#/components/parameters/checkSidePathParam'
        - $ref: '#/components/parameters/ifNoneMatchHeaderParam'
      responses:
        '200':
          description: OK
          headers:
            Content-Type:
              description: >-
                The media type of the file content. The default image media type is `image/jpeg`, but this may change if additional file types are
                supported in the future.
              schema:
                type: string
          content:
            '*/*':
              schema:
                type: string
                format: binary
            application/hal+json:
              schema:
                type: string
                format: binary
            application/json:
              schema:
                type: string
                format: binary
        '302':
          description: Found. The URL where the file's content is located.
          headers:
            Location:
              description: The URL where the image content is located.
              schema:
                type: string
        '404':
          $ref: '#/components/responses/404CheckImage'
  /labels:
    get:
      summary: Localized Labels
      description: >-
        Return a JSON object which defines labels for enumeration types and choice groups defined by the schemas defined in this API. The labels in
        the response may not all match the requested language; some may be in the default language (`en-us`).
      operationId: getLabels
      security:
        - apiKey: []
      parameters:
        - name: Accept-Language
          in: header
          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).
          schema:
            type: string
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/labelGroups'
            application/json:
              schema:
                $ref: '#/components/schemas/labelGroups'
      tags:
        - API
  /:
    get:
      summary: Top-level resources and operations in this API
      description: >-
        Return links to the top-level resources and operations in this API. This API returns the following links: *`apiture:accounts`* : links to the
        collection of accounts held at this financial institution
      operationId: getApi
      security:
        - apiKey: []
      x-apiture-implemented: true
      responses:
        '200':
          description: OK
          content:
            application/hal+json:
              schema:
                $ref: '#/components/schemas/root'
              examples:
                response:
                  value:
                    id: accounts
                    name: User Bank Accounts
                    apiVersion: 0.1.0
                    _profile: 'https://api.apiture.com/schemas/common/root/v2.0.1/profile.json'
                    _links:
                      'apiture:transactions':
                        href: /transactions/transactions
            application/json:
              schema:
                $ref: '#/components/schemas/root'
      tags:
        - API
  /apiDoc:
    get:
      summary: Return API definition document
      description: Return the OpenAPI document that describes this API.
      operationId: getApiDoc
      security:
        - apiKey: []
      x-apiture-implemented: true
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                type: object
            application/openapi+json;version=2.0:
              schema:
                type: object
            application/openapi+yaml;version=2.0:
              schema:
                type: object
            application/hal+json:
              schema:
                type: object
      tags:
        - API
x-apiture-errors:
  transactionNotFound:
    description: No transactions were found for the specified transactionId
    remediation: Check to make sure that the supplied transactionId corresponds to an apiture transaction resource
  invalidCheckId:
    description: No checks images were found for the specified checkId or check side
    remediation: Use the check image links on a transaction.
x-apiture-traits:
  - api:
      title: Transactions
      basePath: transactions
      links:
        - getTransactions
        - getPendingTransactions
        - getHistory
        - getApi
        - getApiDoc
      applied: true
  - resource:
      name: transaction
      description: A transaction against this account
      excludeMethods:
        - put
        - patch
        - delete
      simpleModelSchema: true
      applied: true
  - security:
      baseScope: banking
x-apiture-annotated-at: '2020-10-02T13:41:48.975Z'
components:
  schemas:
    transactionCheckImage:
      title: Transaction Check Image (v1.0.0)
      description: >
        Metadata for a check image associated with a transaction.



        <h3 class='schema-links' id="transactionCheckImage-links" >Links</h3>


        Response and request bodies using this <strong><code>transactionCheckImage</code></strong> schema may contain

        the following <a href='https://developer.apiture.com/docs/concepts/links'>links</a>:


        <table>

        <tr>
          <th>Rel</th><th>Summary</th><th>Method</th>
        </tr>


        <tr>

        <td><a href='#op-getCheckImageContent'><strong><code>apiture:content</code></strong></a></td><td>The URL of the raw check image file,
        typically a JPEG image</td><td><code>GET</code></td>

        </tr>


        <tr>

        <td><a href='#op-getTransaction'><strong><code>apiture:transaction</code></strong></a></td><td>The transaction that contains this check
        image</td><td><code>GET</code></td>

        </tr>

        </table>
      x-apiture-links:
        - rel: 'apiture:content'
          operationId: getCheckImageContent
          title: 'The URL of the raw check image file, typically a JPEG image'
        - rel: 'apiture:transaction'
          operationId: getTransaction
          title: The transaction that contains this check image
      example:
        _id: f6c321e6-c628-419a
        _profile: 'https://api.apiture.com/schemas/transactions/transactionCheckImage/v1.0.0/profile.json'
        _links:
          'apiture:content':
            href: 'https://api.apiture.com/transactions/checkImages/f6c321e6-c628-419a/front/content'
          'apiture:transaction':
            href: 'https://api.apiture.com/transactions/transactions/bedfecb5-60a9-4f44-a53a-b6d86608434a'''
            operationId: getTransaction
        name: f6c321e6-c628-419a-front.jpeg
        contentType: image/jpeg
        description: Front check image captured and uploaded from an iPhoneX.
        sizeBytes: 112800
        createdAt: '2020-01-04T07:00:49.375Z'
      x-apiture-version: 1.0.0
      x-apiture-composition:
        - $ref: '#/components/schemas/checkImage'
        - properties:
            - _id
      properties:
        _links:
          description: 'An optional map of links, mapping each link relation to a link object. This model defines the `_links` object of HAL representations.'
          allOf:
            - $ref: '#/components/schemas/links'
        _embedded:
          description: 'An optional map of nested resources, mapping each nested resource name to a nested resource representation.'
          type: object
        _profile:
          description: 'The URI of a [resource profile](https://developer.apiture.com/docs/concepts/profiles/) which describes the representation.'
          type: string
          format: uri
        _error:
          description: An object which describes an error. This value is omitted if the operation succeeded without error.
          type: object
          allOf:
            - $ref: '#/components/schemas/error'
        name:
          description: >-
            The file name, for identification purposes. File names may include file extensions such as `.jpeg` for JPEG images, although the system
            does not validate or ensure that extensions match the file content type. This is limited to 64 characters and may not contain certain
            special characters such as / or \\. If omitted, the system will assign a name.
          type: string
          maxLength: 64
        description:
          description: A description of this file and its contents.
          type: string
          maxLength: 4096
        contentType:
          description: 'The [media type](https://tools.ietf.org/html/rfc6838) for this file.'
          type: string
          example: image/jpeg
        sizeBytes:
          description: The file size in bytes. This is a derived property and cannot be modified in updates.
          type: number
          readOnly: true
        createdAt:
          description: The date-time when the image was created or uploaded.
          type: string
          format: date-time
          readOnly: true
        _id:
          description: The unique ID of the check for this transaction. (The check ID is shared for the images of the front and back of check.)
          type: string
          readOnly: true
          maxLength: 48
          minLength: 16
          example: f6c321e6-c628-419a
      type: object
      x-apiture-flattened: true
    transactionType:
      title: Transaction Type (v1.0.0)
      description: |-
        *`type`* should indicate the type of the transaction (not what is allowed for the account). i.e.

          * *`credit`* - the transaction was a credit posted to the
             account, such as the transfer of funds _to_ this account or interested posted to the account

          * *`debit`* - the transaction debited funds from the account, such as a check written against an account.
      type: string
      enum:
        - debit
        - credit
      x-apiture-version: 1.0.0
      x-apiture-flattened: true
    transactionState:
      title: Transaction State (v1.0.0)
      description: '*`state`* indicates the current state of the transaction.'
      type: string
      enum:
        - pending
        - completed
        - reversed
      x-apiture-version: 1.0.0
      x-apiture-flattened: true
    disputeState:
      title: Dispute State (v1.0.0)
      description: The current state of a dispute on the transaction.
      type: string
      enum:
        - none
        - inProgress
        - resolved
      x-apiture-version: 1.0.0
      x-apiture-flattened: true
    holdState:
      title: Hold State (v1.0.0)
      description: >-
        Indicates the hold state of the transaction. the `holdState` will be `none` if no hold is associated to the transaction; otherwise, the
        `holdState` will indicate if the hold is currently `active` or has `expired`.
      type: string
      readOnly: true
      enum:
        - active
        - expired
        - none
      x-apiture-version: 1.0.0
      x-apiture-flattened: true
    transaction:
      title: A transaction (v1.2.1)
      description: >
        An financial transaction, such as a deposit, a check payment, interest, fees, transaction reversals, etc.



        <h3 class='schema-links' id="transaction-links" >Links</h3>


        Response and request bodies using this <strong><code>transaction</code></strong> schema may contain

        the following <a href='https://developer.apiture.com/docs/concepts/links'>links</a>:


        <table>

        <tr>
          <th>Rel</th><th>Summary</th><th>Method</th>
        </tr>


        <tr>

        <td><strong><code>apiture:account</code></strong></td>

        <td>Account</td><td><code>GET</code></td>


        <tr>

        <td><strong><code>apiture:sourceAccount</code></strong></td>

        <td>Source Account</td><td><code>GET</code></td>


        <tr>

        <td><strong><code>apiture:targetAccount</code></strong></td>

        <td>Target Account</td><td><code>GET</code></td>


        <tr>

        <td><a href='#op-getCheckImageContent'><strong><code>apiture:checkFrontImage</code></strong></a></td><td>Check Front Image
        Content</td><td><code>GET</code></td>

        </tr>


        <tr>

        <td><a href='#op-getCheckImageContent'><strong><code>apiture:checkBackImage</code></strong></a></td><td>Check Back Image
        Content</td><td><code>GET</code></td>

        </tr>


        <tr>

        <td><a href='#op-getTransaction'><strong><code>apiture:reversedBy</code></strong></a></td><td>Fetch a representation of this
        transaction</td><td><code>GET</code></td>

        </tr>


        <tr>

        <td><a href='#op-getTransaction'><strong><code>apiture:reverses</code></strong></a></td><td>Fetch a representation of this
        transaction</td><td><code>GET</code></td>

        </tr>

        </table>
      x-apiture-version: 1.2.1
      x-apiture-links:
        - rel: 'apiture:account'
          title: Account
          verb: get
          description: The URL of the local account the transaction applies to.
        - rel: 'apiture:sourceAccount'
          title: Source Account
          verb: get
          description: 'For account to account transfer transactions, this is the account where the funds were debited (withdrawn from), if available.'
        - rel: 'apiture:targetAccount'
          title: Target Account
          verb: get
          description: 'For account to account transfer transactions, this is the account where the funds were credited (deposited to) if available.'
        - rel: 'apiture:checkFrontImage'
          title: Check Front Image Content
          operationId: getCheckImageContent
          description: >-
            If the transaction has an associated check image, this link is the URL of the image of the front of a processed check written from the
            account.
        - rel: 'apiture:checkBackImage'
          title: Check Back Image Content
          operationId: getCheckImageContent
          description: >-
            If the transaction has an associated check image, this link is the URL of the image of the back of a processed check written from the
            account.
        - rel: 'apiture:reversedBy'
          operationId: getTransaction
        - rel: 'apiture:reverses'
          operationId: getTransaction
      example:
        _id: 969d61b1-2b49-4eb6-9b7d-356f242ca0aa
        _profile: 'https://api.apiture.com/schemas/transactions/transaction/v1.2.1/profile.json'
        amount:
          value: '327.50'
          currency: USD
        balance:
          current: '2180.27'
          currency: USD
        state: completed
        type: debit
        providerSummary: check 1856 | Don't Bug Me Pest Control
        summary: check 1856 | Don't Bug Me Pest Control
        description: 'check 1856, processed May 10, 2019'
        checkNumber: 1856
        sourceAccountNumbers:
          masked: '*************3210'
          full: '9876543210'
        sourceAccountName: My Personal Checking
        transactionCode: D480
        postedOn: '2020-07-01'
        effectiveAt: '2020-07-01T06:24:31.375Z'
        network: check
        disputeState: resolved
        _links:
          self:
            href: /transactions/transactions/969d61b1-2b49-4eb6-9b7d-356f242ca0aa
          'apiture:account':
            href: /accounts/accounts/7e6acb45-71c0-4aa8-9fe4-a5f3b4298be7
          'apiture:checkFrontImage':
            href: /vault/files/14361265-7837-4eab-8b74-3232c9716385/content
          'apiture:checkBackImage':
            href: /vault/files/41c9daba-c4c6-412d-9faf-eb82bc76e2e1/content
          'apiture:sourceAccount':
            href: /accounts/accounts/85efad52-14f6-494f-a52b-5b5960000766
      x-apiture-composition:
        - $ref: '#/components/schemas/abstractResource'
        - properties:
            - _id
            - amount
            - balance
            - state
            - type
            - subtype
            - providerSummary
            - summary
            - description
            - checkNumber
            - sourceAccountNumbers
            - sourceAccountName
            - targetAccountNumbers
            - targetAccountName
            - transactionCode
            - postedOn
            - effectiveAt
            - reversedOn
            - network
            - holdState
            - holdAmount
            - holdExpiresAt
            - eft
            - ach
            - disputeState
      properties:
        _links:
          description: 'An optional map of links, mapping each link relation to a link object. This model defines the `_links` object of HAL representations.'
          allOf:
            - $ref: '#/components/schemas/links'
        _embedded:
          description: 'An optional map of nested resources, mapping each nested resource name to a nested resource representation.'
          type: object
        _profile:
          description: 'The URI of a [resource profile](https://developer.apiture.com/docs/concepts/profiles/) which describes the representation.'
          type: string
          format: uri
        _error:
          description: An object which describes an error. This value is omitted if the operation succeeded without error.
          type: object
          allOf:
            - $ref: '#/components/schemas/error'
        _id:
          description: The unique identifier for this transaction resource. This is an immutable opaque string.
          readOnly: true
          type: string
        amount:
          description: The amount of the transaction.
          allOf:
            - $ref: '#/components/schemas/money'
        balance:
          description: The account's running balance as of this transaction. This property is optional and is omitted if not computable.
          allOf:
            - $ref: '#/components/schemas/balance'
        state:
          $ref: '#/components/schemas/transactionState'
        type:
          $ref: '#/components/schemas/transactionType'
        subtype:
          description: 'A subtype, more specific transaction type.'
          type: string
        providerSummary:
          description: Human readable version of the transaction description.
          type: string
        summary:
          description: A cleansed version of the `providerSummary`.
          type: string
        description:
          description: This field contains additional descriptive information about the transaction.
          type: string
        checkNumber:
          description: 'If this transaction represents a check drafted against this account, this is the check number.'
          type: integer
          minimum: 0
          maximum: 4294967295
        sourceAccountNumbers:
          description: >-
            If the transaction involves only one account, this is that account's number. If the transaction involves a transfer between accounts, this
            is the source account the money was transferred from.
          allOf:
            - $ref: '#/components/schemas/transactionAccountNumbers'
        sourceAccountName:
          description: The name of the transaction's primary or source account.
          type: string
        targetAccountNumbers:
          description: 'If the transaction involves a transfer between accounts, this is the target account the money was transferred to.'
          allOf:
            - $ref: '#/components/schemas/transactionAccountNumbers'
        targetAccountName:
          description: The name of the transaction's target account.
          type: string
        transactionCode:
          description: The transaction code returned from the core.
          type: string
        postedOn:
          description: >-
            The date when the transaction processing completed. This property is set only if the state is `completed`. This is an [RFC
            3339](https://tools.ietf.org/html/rfc3339) date in `YYYY-MM-DD` format.
          type: string
          format: date
        effectiveAt:
          description: >-
            The date-time when the transaction was applied to the account balance. This may be before `postedOn` if the transaction was back-dated.
            This is an [RFC 3369](https://tools.ietf.org/html/rfc3339) date-time string in `YYYY-MM-DDThh:mm:ss.sssZ` format.
          type: string
          format: date-time
        reversedOn:
          description: The date when the transaction was reversed.  This property is set only if the state is `reversed`.
          type: string
          format: date
        network:
          description: |-
            The name of the settlement network that is the transaction source, one of:

              * `check` - the transaction was a check
              * `eft` - debit card transaction or other electronic funds transfer
              * `ach` - transfers and other Automated Clearing House transactions
              * `core` - transactions sourced within the bank core
          type: string
        holdState:
          $ref: '#/components/schemas/holdState'
        holdAmount:
          description: The amount of funds on hold.
          allOf:
            - $ref: '#/components/schemas/money'
        holdExpiresAt:
          description: >-
            The date-time when the hold will expire. This is an [RFC 3369](https://tools.ietf.org/html/rfc3339) formatted date-time string,
            `YYYY-MM-DDThh:mm:ss.sssZ`.
          type: string
          format: date-time
        eft:
          description: The electronic funds transfer. This property exists only if `network` is `eft`.
          allOf:
            - $ref: '#/components/schemas/electronicFundsTransfer'
        ach:
          description: The automated clearing house transfer. This property exists only if `network` is `ach`.
          allOf:
            - $ref: '#/components/schemas/ach'
        disputeState:
          $ref: '#/components/schemas/disputeState'
      type: object
      x-apiture-flattened: true
    transactions:
      title: Transaction Collection (v1.2.1)
      description: >-
        Collection of transactions. The items in the collection are ordered in the `_embedded` object with array `items`. The top-level `_links`
        object may contain pagination links (`self`, `next`, `prev`, `first`, `last`, `collection`).


        When this response is used for the `getPendingTransactions` operation, the pagination links will reference
        `/transactions/pendingTransactions`; when this response is used for the `getTransactions` operation, the pagination links will reference
        `/transactions/transactions`;  when this response is used for the `getHistory` operation, the pagination links will reference
        `/transactions/history`. The example shows the response for `getTransactions`.
      x-apiture-version: 1.2.1
      example:
        _profile: 'https://api.apiture.com/schemas/transactions/transactions/v1.2.1/profile.json'
        start: 10
        limit: 10
        count: 67
        name: transactions
        _links:
          self:
            href: /transactions/transactions?start=10&limit=10
          first:
            href: /transactions/transactions?start=0&limit=10
          next:
            href: /transactions/transactions?start=20&limit=10
          collection:
            href: /transactions/transactions
        _embedded:
          items:
            anyOf:
              - _id: 0399abed-fd3d-4830-a88b-30f38b8a365c
                _profile: 'https://api.apiture.com/schemas/transaction/v1.2.0/profile.json'
                _links:
                  self:
                    href: /transactions/transactions/0399abed-fd3d-4830-a88b-30f38b8a365c
                  'apiture:account':
                    href: /transactions/accounts/86de587e-a5a7-11e8-98d0-529269fb1459
                  'apiture:organization':
                    href: /transactions/organizations/86de587e-a5a7-11e8-98d0-529269fb1459
                amount:
                  value: '35.00'
                  currency: USD
                state: pending
                type: debit
                providerSummary: gas station
              - _id: d62c0701-0d74-4836-83f9-ebf3709442ea
                _profile: 'https://api.apiture.com/schemas/transactions/transaction/v1.2.1/profile.json'
                _links:
                  self:
                    href: /transactions/transactions/d62c0701-0d74-4836-83f9-ebf3709442ea
                  'apiture:account':
                    href: /transactions/accounts/86de587e-a5a7-11e8-98d0-529269fb1459
                  'apiture:organization':
                    href: /transactions/organizations/86de587e-a5a7-11e8-98d0-529269fb1459
                amount:
                  value: '1000.00'
                  currency: USD
                state: pending
                type: debit
                providerSummary: donation
      x-apiture-composition:
        - $ref: '#/components/schemas/collection'
        - properties:
            - _embedded
      properties:
        _links:
          description: 'An optional map of links, mapping each link relation to a link object. This model defines the `_links` object of HAL representations.'
          allOf:
            - $ref: '#/components/schemas/links'
        _embedded:
          description: The `transactions` schema's embededed items collection.
          allOf:
            - $ref: '#/components/schemas/transactionsEmbedded'
        _profile:
          description: 'The URI of a [resource profile](https://developer.apiture.com/docs/concepts/profiles/) which describes the representation.'
          type: string
          format: uri
        _error:
          description: An object which describes an error. This value is omitted if the operation succeeded without error.
          type: object
          allOf:
            - $ref: '#/components/schemas/error'
        count:
          description: >-
            The number of items in the collection. This value is _optional_ and may be omitted if the count is not computable efficiently. If a filter
            is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the
            filter.
          type: integer
        start:
          description: The start index of this page of items.
          type: integer
        limit:
          description: The maximum number of items per page.
          type: integer
        name:
          description: The name of the collection.
          type: string
      type: object
      x-apiture-flattened: true
    transactionsEmbedded:
      title: Transactions Embedded Objects (v1.0.0)
      description: 'Objects embedded in the [`transactions`](#schema-transactions) schema.'
      type: object
      properties:
        items:
          description: An array containing a page of transaction items.
          type: array
          items:
            $ref: '#/components/schemas/transaction'
      x-apiture-version: 1.0.0
      x-apiture-flattened: true
    balance:
      title: Account Balance (v1.0.0)
      description: >-
        The balance of the account. This is derived data and not mutable through the API. Balances may be negative, indicating a deficit or loan
        balance.
      properties:
        current:
          description: >-
            The string representation of the current account balance. This is an exact decimal representation of the numeric balance value. The
            current balance does not include pending transactions.
          type: string
          readOnly: true
          example: '3450.30'
        value:
          description: >-
            The current balance. **Note**: This property is deprecated. Use `balance.current` instead. This property will be removed in the next
            release of this service.
          type: string
          readOnly: true
          example: '3450.30'
        available:
          description: >-
            The string representation of the exact decimal available balance. For deposit accounts, this reflects the amount that may be used for
            withdrawals or transfers. This field does not apply to debit accounts such as loans.
          type: string
          readOnly: true
          example: '3450.30'
        currency:
          description: 'The [ISO 4217 currency code](https://en.wikipedia.org/wiki/ISO_4217) for this balance.'
          type: string
          readOnly: true
      example:
        current: '3450.30'
        available: '3450.30'
        currency: USD
      x-apiture-version: 1.0.0
      type: object
      x-apiture-flattened: true
    money:
      title: Money (v1.0.0)
      description: An amount of money in a specific currency.
      properties:
        value:
          description: >-
            The net monetary value. A negative amount denotes a debit; a positive amount a credit. The numeric value is represented as a string so
            that it can be exact with no loss of precision.
          example: '3456.78'
          type: string
        currency:
          description: >-
            The [ISO 4217 currency code](https://en.wikipedia.org/wiki/ISO_4217) for this monetary value. This is always upper case ASCII. Note: ISO
            4217 defines three-character codes. However, ISO 4217 does not account for cryptocurrencies. Of note, DASH uses 4 characters.
          type: string
          minLength: 3
          maxLength: 3
      x-apiture-version: 1.0.0
      type: object
      x-apiture-flattened: true
    electronicFundsTransfer:
      title: Electronic Funds Transfer (v1.0.0)
      description: Representation of an electronic funds transfer.
      properties:
        cashBackAmount:
          description: The amount in which the buyer receives cash at the time of purchase.
          allOf:
            - $ref: '#/components/schemas/money'
        fee:
          description: Fees (if applicable).
          type: string
        merchantAddress:
          description: Merchant's full address.
          allOf:
            - $ref: '#/components/schemas/address'
        panEntryMode:
          description: >-
            Indicates how the primary account number (PAN) was entered into the system.  This value encodes [ISO 8583 point of service PAN entry
            modes](https://en.wikipedia.org/wiki/ISO_8583#Point_of_service_entry_modes).


            **Warning**: The `enum` list will be removed in a future version of this API.


            The allowed values for this property are defined at runtime in the

            [label group](https://developer.apiture.com/concepts/label-groups) named `panEntryMode`

            in the response from the [`getLabels`](#op-getLabels) operation.
          type: string
          enum:
            - unknown
            - manual
            - magneticStripe
            - barCode
            - ocr
            - iccCvv
            - contactlessEmv
            - fallbackFromIcc
            - magneticStripeTrackTwo
            - contactlessMagneticStripe
            - iccNoCvv
            - sameAsOriginalTransaction
          x-apiture-choice: panEntryMode
      example:
        cashBackAmount:
          amount: '123.45'
          currency: USD
        fee: '6.78'
        merchantAddress:
          addressLine1: 100 Front St.
          city: Wilmington
          regionCode: NC
          postalCode: '28401'
          countryCode: US
        panEntryMode: manual
      x-apiture-version: 1.0.0
      type: object
      x-apiture-flattened: true
    ach:
      title: Automated Clearing House Transfer (v1.0.0)
      description: Representation of an automated clearing house transfer.
      properties:
        traceId:
          description: ACH Trace ID (threadId).
          type: string
      example:
        traceId: '1234567890'
      x-apiture-version: 1.0.0
      type: object
      x-apiture-flattened: true
    address:
      title: Address (v1.0.0)
      description: A postal address.
      type: object
      properties:
        addressLine1:
          description: 'The first street address line of the address, normally a house number and street name.'
          type: string
        addressLine2:
          description: The optional second street address line of the address.
          type: string
        city:
          description: The name of the city or municipality.
          type: string
        regionCode:
          description: 'The mailing address region code, such as state in the US, or a province in Canada.'
          type: string
          example: NC
        postalCode:
          description: 'The mailing address postal code, such as a US Zip or Zip+4 code, or a Canadian postal code.'
          type: string
          example: 28401-5405
        countryCode:
          description: The ISO 3166-1 country code.
          type: string
          minLength: 2
          maxLength: 2
      example:
        type: home
        addressLine1: 555 N Front Street
        addressLine2: Suite 5555
        city: Wilmington
        regionCode: NC
        postalCode: 28401-5405
        countryCode: US
      x-apiture-version: 1.0.0
      x-apiture-flattened: true
    transactionAccountNumbers:
      title: Transaction Account Numbers (v1.0.1)
      description: The account numbers associated with a transfer.
      x-apiture-version: 1.0.1
      properties:
        masked:
          description: >-
            A partial account number that does not contain all the digits of the full account number. This masked number appears in statements or in
            user experience presentation.  It is sufficient for a user to differentiate this account from other accounts they hold, but is not
            sufficient for initiating transfers, etc. The first character is the mask character and is repeated; this does not indicate that the full
            account number is the same as the mask length. This value is derived and immutable.
          type: string
          minLength: 9
          maxLength: 32
          example: '*************3210'
        full:
          description: >-
            The full account number. The full number is not included in the representation of the transaction that is included in transaction
            collection responses. This value only appears when passing `?unmasked=true` on the [`GET
            /transaction/{transactionId}`](#op-getTransaction) request.
          type: string
          minLength: 9
          maxLength: 32
          example: '9876543210'
      type: object
      x-apiture-flattened: true
    labelGroups:
      title: Label Groups (v1.0.1)
      description: |-
        A set of named groups of labels, each of which contains multiple item labels.


        The abbreviated example shows two groups, one named `structure` and one named `estimatedAnnualRevenue`.
        The first has items with names such as `corporation`, `llc` and `soleProprietorship`,
        with text labels for each in the default and in French. The second has
        items for estimated revenue *ranges* but no localized labels. For example, the item named `from1to10Million`
        has the `label` "$1M to $10M" and the range `[1000000.00,10000000.00)`.

        This schema was resolved from [`common/labelGroups`](https://production.api.apiture.com/schemas/common/labelGroups/v1.0.1/model.json).
      x-apiture-version: 1.0.1
      example:
        _profile: 'https://api.apiture.com/schemas/common/labelGroups/v1.0.1/profile.json'
        groups:
          structure:
            unknown:
              label: Unknown
              code: '0'
              hidden: true
            corporation:
              label: Corporation
              code: '1'
              variants:
                fr:
                  label: Soci\u00e9t\u00e9
            partnership:
              label: Partnership
              code: '2'
              variants:
                fr:
                  label: Partenariat
            llc:
              label: Limited Liability Company
              code: '2'
              variants:
                fr:
                  label: Soci\u00e9t\u00e9 \u00e9 Responsabilit\u00e9 Limit\u00e9e
            nonProfit:
              label: Non Profit
              code: '4'
              variants:
                fr:
                  label: Non Lucratif
            financialInstitution:
              label: Financial Institution
              code: '8'
              variants:
                fr:
                  label: Institution financi\u00e8re
            soleProprietorship:
              label: Sole Proprietorship
              code: '11'
              variants:
                fr:
                  label: Entreprise individuelle
            other:
              label: Other
              code: '254'
              variants:
                fr:
                  label: Autre
          estimatedAnnualRevenue:
            unknown:
              label: Unknown
              code: '0'
            under1Million:
              label: Under $1M
              code: '1'
              range: '[0,1000000.00)'
            from1to10Million:
              label: $1M to $10M
              code: '2'
              range: '[1000000.00,10000000.00)'
            from10to100Million:
              label: $10M to $100M
              code: '3'
              range: '[10000000.00,100000000.00)'
            over100Million:
              label: 'Over $100,000,000.00'
              code: '4'
              range: '[100000000.00,]'
            other:
              label: Other
              code: '254'
      x-apiture-resolved-from: 'https://production.api.apiture.com/schemas/common/labelGroups/v1.0.1/model.json'
      x-apiture-namespace: common
      x-apiture-composition:
        - $ref: '#/components/schemas/abstractResource'
        - properties:
            - groups
      properties:
        _links:
          description: 'An optional map of links, mapping each link relation to a link object. This model defines the `_links` object of HAL representations.'
          allOf:
            - $ref: '#/components/schemas/links'
        _embedded:
          description: 'An optional map of nested resources, mapping each nested resource name to a nested resource representation.'
          type: object
        _profile:
          description: 'The URI of a [resource profile](https://developer.apiture.com/docs/concepts/profiles/) which describes the representation.'
          type: string
          format: uri
        _error:
          description: An object which describes an error. This value is omitted if the operation succeeded without error.
          type: object
          allOf:
            - $ref: '#/components/schemas/error'
        groups:
          description: 'Groups of localized labels. This maps *group names* &rarr; [*a group of labels*](#schema-labelgroup) within that group.'
          x-apiture-key: groupName
          additionalProperties:
            $ref: '#/components/schemas/labelGroup'
      type: object
      x-apiture-flattened: true
    root:
      x-apiture-version: 2.0.1
      title: API Root (v2.0.1)
      description: |-
        A HAL response, with hypermedia `_links` for the top-level resources and operations in API.

        This schema was resolved from [`common/root`](https://production.api.apiture.com/schemas/common/root/v2.0.1/model.json).
      example:
        id: apiName
        name: API name
        apiVersion: 1.0.0
        _profile: 'https://production.api.apiture.com/schemas/common/root/v2.0.1/profile.json'
        _links: {}
      x-apiture-resolved-from: 'https://production.api.apiture.com/schemas/common/root/v2.0.1/model.json'
      x-apiture-namespace: common
      x-apiture-composition:
        - $ref: '#/components/schemas/abstractResource'
        - properties:
            - _id
            - name
            - apiVersion
      properties:
        _links:
          description: 'An optional map of links, mapping each link relation to a link object. This model defines the `_links` object of HAL representations.'
          allOf:
            - $ref: '#/components/schemas/links'
        _embedded:
          description: 'An optional map of nested resources, mapping each nested resource name to a nested resource representation.'
          type: object
        _profile:
          description: 'The URI of a [resource profile](https://developer.apiture.com/docs/concepts/profiles/) which describes the representation.'
          type: string
          format: uri
        _error:
          description: An object which describes an error. This value is omitted if the operation succeeded without error.
          type: object
          allOf:
            - $ref: '#/components/schemas/error'
        _id:
          description: This API's unique ID.
          readOnly: true
          type: string
        name:
          type: string
          description: This API's name.
        apiVersion:
          type: string
          description: This API's version.
      type: object
      x-apiture-flattened: true
    errorResponse:
      x-apiture-version: 2.0.0
      title: Error Response (v2.0.0)
      description: |-
        Describes an error response, typically returned on 4xx or 5xx errors from API operations. The `_error` object contains the error details.

        This schema was resolved from [`common/errorResponse`](https://production.api.apiture.com/schemas/common/errorResponse/v2.0.0/model.json).
      example:
        _profile: 'https://api.apiture.com/schemas/common/errorResponse/v2.0.0/profile.json'
        _error:
          _id: 2eae46e1-575c-4d69-8a8f-0a7b0115a4b3
          message: The value for deposit must be greater than 0.
          statusCode: 422
          type: positiveNumberRequired
          attributes:
            value: -125.5
          remediation: Provide a value which is greater than 0
          occurredAt: '2018-01-25T05:50:52.375Z'
          _links:
            describedby:
              href: 'https://api.apiture.com/errors/positiveNumberRequired'
          _embedded:
            errors: []
      x-apiture-resolved-from: 'https://production.api.apiture.com/schemas/common/errorResponse/v2.0.0/model.json'
      x-apiture-namespace: common
      x-apiture-composition:
        - $ref: '#/components/schemas/abstractResource'
      properties:
        _links:
          description: 'An optional map of links, mapping each link relation to a link object. This model defines the `_links` object of HAL representations.'
          allOf:
            - $ref: '#/components/schemas/links'
        _embedded:
          description: 'An optional map of nested resources, mapping each nested resource name to a nested resource representation.'
          type: object
        _profile:
          description: 'The URI of a [resource profile](https://developer.apiture.com/docs/concepts/profiles/) which describes the representation.'
          type: string
          format: uri
        _error:
          description: An object which describes an error. This value is omitted if the operation succeeded without error.
          type: object
          allOf:
            - $ref: '#/components/schemas/error'
      type: object
      x-apiture-flattened: true
    checkImage:
      title: Check Image (v1.0.0)
      description: >-
        Representation of a check image file. The image may contain an `apiture:uploadUrl` link  within the item's `_links`. The client should next
        `PUT` the file content to the upload URLs. The file must be an image with JPEG format. If file content has been uploaded, the image may have
        an `apiture:content` link to access the direct URI of the file's content.


        This schema was resolved from
        [`checkDeposits/checkImage`](https://production.api.apiture.com/schemas/checkDeposits/checkImage/v1.0.0/model.json).
      example:
        _id: 7dc00a42-76f9-4bbb-bda3-bd6ed203c01b
        _profile: 'https://api.apiture.com/schemas/checkDeposits/checkImage/v1.0.0/profile.json'
        _links:
          self:
            href: /checkDeposits/checkDeposits/f6c321e6-c628-419a-879e-ebcbc56b57fc/checks/999a1163-6e32-47fd-b9b8-085e198729b2/images/front
          'apiture:content':
            href: /checkDeposits/checkDeposits/f6c321e6-c628-419a-879e-ebcbc56b57fc/checks/999a1163-6e32-47fd-b9b8-085e198729b2/images/front/content
        name: frontImage.jpeg
        contentType: image/jpeg
        description: Front check image captured and uploaded from an iPhoneX.
        sizeBytes: 112800
        createdAt: '2019-01-04T07:00:49.375Z'
      x-apiture-version: 1.0.0
      x-apiture-resolved-from: 'https://production.api.apiture.com/schemas/checkDeposits/checkImage/v1.0.0/model.json'
      x-apiture-namespace: checkDeposits
      x-apiture-composition:
        - $ref: '#/components/schemas/abstractResource'
        - properties:
            - name
            - description
            - contentType
            - sizeBytes
            - createdAt
      properties:
        _links:
          description: 'An optional map of links, mapping each link relation to a link object. This model defines the `_links` object of HAL representations.'
          allOf:
            - $ref: '#/components/schemas/links'
        _embedded:
          description: 'An optional map of nested resources, mapping each nested resource name to a nested resource representation.'
          type: object
        _profile:
          description: 'The URI of a [resource profile](https://developer.apiture.com/docs/concepts/profiles/) which describes the representation.'
          type: string
          format: uri
        _error:
          description: An object which describes an error. This value is omitted if the operation succeeded without error.
          type: object
          allOf:
            - $ref: '#/components/schemas/error'
        name:
          description: >-
            The file name, for identification purposes. File names may include file extensions such as `.jpeg` for JPEG images, although the system
            does not validate or ensure that extensions match the file content type. This is limited to 64 characters and may not contain certain
            special characters such as / or \\. If omitted, the system will assign a name.
          type: string
          maxLength: 64
        description:
          description: A description of this file and its contents.
          type: string
          maxLength: 4096
        contentType:
          description: 'The [media type](https://tools.ietf.org/html/rfc6838) for this file.'
          type: string
          example: image/jpeg
        sizeBytes:
          description: The file size in bytes. This is a derived property and cannot be modified in updates.
          type: number
          readOnly: true
        createdAt:
          description: The date-time when the image was created or uploaded.
          type: string
          format: date-time
          readOnly: true
      type: object
      x-apiture-flattened: true
    abstractResource:
      x-apiture-version: 2.0.0
      title: Abstract Resource (v2.0.0)
      description: >-
        An abstract schema used to define other schemas for request and response bodies. This is a
        [HAL](https://tools.ietf.org/html/draft-kelly-json-hal-08) resource representation. This model contains hypermedia `_links`, and either
        optional domain object data with `_profile` and optional `_embedded` objects, or an `_error` object. In responses, if the operation was
        successful, this object will not include the `_error`, but if the operation was a 4xx or 5xx error, this object will not include `_embedded`
        or any data fields, only `_error` and optionally `_links`.


        This schema was resolved from
        [`common/abstractResource`](https://production.api.apiture.com/schemas/common/abstractResource/v2.0.0/model.json).
      example:
        _profile: '{uri of resource profile.json}'
        _links:
          self:
            href: '{uri of current resource}'
      x-apiture-resolved-from: 'https://production.api.apiture.com/schemas/common/abstractResource/v2.0.0/model.json'
      x-apiture-namespace: common
      x-apiture-composition:
        - $ref: '#/components/schemas/abstractRequest'
        - properties:
            - _error
      properties:
        _links:
          description: 'An optional map of links, mapping each link relation to a link object. This model defines the `_links` object of HAL representations.'
          allOf:
            - $ref: '#/components/schemas/links'
        _embedded:
          description: 'An optional map of nested resources, mapping each nested resource name to a nested resource representation.'
          type: object
        _profile:
          description: 'The URI of a [resource profile](https://developer.apiture.com/docs/concepts/profiles/) which describes the representation.'
          type: string
          format: uri
        _error:
          description: An object which describes an error. This value is omitted if the operation succeeded without error.
          type: object
          allOf:
            - $ref: '#/components/schemas/error'
      type: object
      x-apiture-flattened: true
    collection:
      x-apiture-version: 2.0.0
      title: Collection (v2.0.0)
      description: |-
        A collection of resources. This is an abstract model schema which is extended to define specific resource collections.

        This schema was resolved from [`common/collection`](https://production.api.apiture.com/schemas/common/collection/v2.0.0/model.json).
      x-apiture-resolved-from: 'https://production.api.apiture.com/schemas/common/collection/v2.0.0/model.json'
      x-apiture-namespace: common
      x-apiture-composition:
        - $ref: '#/components/schemas/abstractResource'
        - properties:
            - count
            - start
            - limit
            - name
      properties:
        _links:
          description: 'An optional map of links, mapping each link relation to a link object. This model defines the `_links` object of HAL representations.'
          allOf:
            - $ref: '#/components/schemas/links'
        _embedded:
          description: 'An optional map of nested resources, mapping each nested resource name to a nested resource representation.'
          type: object
        _profile:
          description: 'The URI of a [resource profile](https://developer.apiture.com/docs/concepts/profiles/) which describes the representation.'
          type: string
          format: uri
        _error:
          description: An object which describes an error. This value is omitted if the operation succeeded without error.
          type: object
          allOf:
            - $ref: '#/components/schemas/error'
        count:
          description: >-
            The number of items in the collection. This value is _optional_ and may be omitted if the count is not computable efficiently. If a filter
            is applied to the collection (either implicitly or explicitly), the count, if present, indicates the number of items that satisfy the
            filter.
          type: integer
        start:
          description: The start index of this page of items.
          type: integer
        limit:
          description: The maximum number of items per page.
          type: integer
        name:
          description: The name of the collection.
          type: string
      type: object
      x-apiture-flattened: true
    labelGroup:
      title: Label Group (v1.0.0)
      description: >-
        A map that defines labels for the items in a group. This is a map from each item *name* &rarr; *a [`labelItem`](#schema-labelitem) object*.
        For example, consider a JSON response that includes a property named `revenueEstimate`; the values for `revenueEstimate` must be one of the
        items in the group named `estimatedAnnualRevenue`, with options ranging `under1Million`, to `over100Million`. The item name is used as the
        selected value in an Apiture representation, such as `{ ..., "revenueEstimate" : "from10to100Million" , ...}`, and the item with the name
        `from10to100Million` defines the presentation labels for that item, as well as other metadata about that choice: this is the range
        `[10000000.00,100000000.00)`.


        This allows the client to let the user select a value from a list, such as the following derivde from the labels in the example:

          * Unknown
          * Under $1M
          * $1M to $10M
          * $10M to $100M
          * $100M or more

        Note that the `other` item is hidden from the selection list, as that item is marked as `hidden`. For items which define numeric ranges, a
        client may instead let the customer *directly* enter their estimated annual revenue as a number, such as 4,500,000.00. The client can then
        match that number to one of ranges in the items and set the `revenueEstimate` to the corresponding item's name: `{ ..., "revenueEstimate" :
        "from1to10Million", ... }`.


        This schema was resolved from [`common/labelGroup`](https://production.api.apiture.com/schemas/common/labelGroup/v1.0.0/model.json).
      x-apiture-key: labelName
      x-apiture-version: 1.0.0
      additionalProperties:
        $ref: '#/components/schemas/labelItem'
      example:
        unknown:
          label: Unknown
          code: '0'
          hidden: true
        under1Million:
          label: Under $1M
          code: '1'
          range: '[0,1000000.00)'
          variants:
            fr:
              label: Moins de $1M
        from1to10Million:
          label: $1M to $10M
          code: '2'
          range: '[1000000.00,10000000.00)'
          variants:
            fr:
              label: $1M \u00e0 $10M
        from10to100Million:
          label: $10M to $100M
          code: '3'
          range: '[10000000.00,100000000.00)'
          variants:
            fr:
              - label $10M \u00e0 $100M
        over100Million:
          label: 'Over $100,000,000.00'
          code: '4'
          range: '[100000000.00,]'
          variants:
            fr:
              label: Plus de $10M
        other:
          label: Other
          code: 254
      x-apiture-resolved-from: 'https://production.api.apiture.com/schemas/common/labelGroup/v1.0.0/model.json'
      x-apiture-namespace: common
      type: object
      properties: {}
      x-apiture-flattened: true
    abstractRequest:
      x-apiture-version: 2.0.0
      title: Abstract Request (v2.0.0)
      description: >-
        An abstract schema used to define other request-only schemas. This is a [HAL](https://tools.ietf.org/html/draft-kelly-json-hal-08) resource
        representation, minus the `_error` defined in `abstractResource`.


        This schema was resolved from [`common/abstractRequest`](https://production.api.apiture.com/schemas/common/abstractRequest/v2.0.0/model.json).
      properties:
        _links:
          description: 'An optional map of links, mapping each link relation to a link object. This model defines the `_links` object of HAL representations.'
          allOf:
            - $ref: '#/components/schemas/links'
        _embedded:
          description: 'An optional map of nested resources, mapping each nested resource name to a nested resource representation.'
          type: object
        _profile:
          description: 'The URI of a [resource profile](https://developer.apiture.com/docs/concepts/profiles/) which describes the representation.'
          type: string
          format: uri
      example:
        _profile: '{uri of resource profile.json}'
        _links:
          self:
            href: '{uri of current resource}'
      x-apiture-resolved-from: 'https://production.api.apiture.com/schemas/common/abstractRequest/v2.0.0/model.json'
      x-apiture-namespace: common
      type: object
      x-apiture-flattened: true
    error:
      x-apiture-version: 2.0.0
      title: Error (v2.0.0)
      description: |-
        Describes an error in an API request or in a service called via the API.

        This schema was resolved from [`common/error`](https://production.api.apiture.com/schemas/common/error/v2.0.0/model.json).
      required:
        - message
      properties:
        message:
          type: string
          description: A localized message string describing the error condition.
        _id:
          description: >-
            A unique identifier for this error instance. This may be used as a correlation ID with the root cause error (i.e. this ID may be logged at
            the source of the error). This is is an opaque string.
          readOnly: true
          type: string
        statusCode:
          description: The HTTP status code associate with this error.
          type: integer
          minimum: 100
          maximum: 599
          example: 422
        type:
          type: string
          description: >-
            An error identifier which indicates the category of error and associate it with API support documentation or which the UI tier can use to
            render an appropriate message or hint. This provides a finer level of granularity than the `statusCode`. For example, instead of just 400
            Bad Request, the `type` may be much more specific. such as `integerValueNotInAllowedRange` or `numericValueExceedsMaximum` or
            `stringValueNotInAllowedSet`.
        occurredAt:
          type: string
          format: date-time
          description: 'An [RFC 3339](https://tools.ietf.org/html/rfc3339) UTC time stamp indicating when the error occurred.'
          example: '2018-02-02T03:37:15.375Z'
        attributes:
          description: >-
            Informative values or constraints which describe the error. For example, for a value out of range error, the attributes may specify the
            `minimum` and `maximum` values. This allows clients to present error messages as they see fit (the API does not assume the
            client/presentation tier). The set of attributes varies by error `type`.
          allOf:
            - $ref: '#/components/schemas/attributes'
        remediation:
          type: string
          description: An optional localized string which provides hints for how the user or client can resolve the error.
        errors:
          description: An optional array of nested error objects. This property is not always present.
          type: array
          items:
            $ref: '#/components/schemas/error'
        _links:
          $ref: '#/components/schemas/links'
      example:
        _id: 2eae46e1575c0a7b0115a4b3
        message: Descriptive error message...
        statusCode: 422
        type: errorType1
        remediation: Remediation string...
        occurredAt: '2018-01-25T05:50:52.375Z'
        errors:
          - _id: ccdbe2c5c938a230667b3827
            message: An optional embedded error
          - _id: dbe9088dcfe2460f229338a3
            message: Another optional embedded error
        _links:
          describedby:
            href: 'https://developer.apiture.com/errors/errorType1'
      x-apiture-resolved-from: 'https://production.api.apiture.com/schemas/common/error/v2.0.0/model.json'
      x-apiture-namespace: common
      type: object
      x-apiture-flattened: true
    labelItem:
      title: Label Item (v1.0.0)
      description: >-
        An item in a [`labelGroup`](#schema-labelgroup), with a set of `variants` which contains different localized labels for the item. Each
        ([`simpleLabel`](#schema-simpleLabel)) variant defines the presentation text label and optional description for a language. Items may also
        have a lookup `code` to map to external syststems, a numeric range, and a `hidden` boolean to indicate the item is normally hidden in the UI.


        This schema was resolved from [`common/labelItem`](https://production.api.apiture.com/schemas/common/labelItem/v1.0.0/model.json).
      x-apiture-version: 1.0.0
      example:
        over100Million:
          label: 'Over $100,000,000.00'
          code: '4'
          range: '[100000000.00,]'
          variants:
            fr:
              label: Plus de $10M
      x-apiture-resolved-from: 'https://production.api.apiture.com/schemas/common/labelItem/v1.0.0/model.json'
      x-apiture-namespace: common
      x-apiture-composition:
        - $ref: '#/components/schemas/simpleLabel'
        - properties:
            - variants
            - code
            - hidden
            - range
      properties:
        label:
          type: string
          description: A label or title which may be used as labels or other UI controls which present a value.
          example: Board of Directors
        description:
          type: string
          description: A more detailed localized description of a localizable label.
        variants:
          description: >-
            The language-specific variants of this label. The keys in this object are [RFC 7231](https://tools.ietf.org/html/rfc7231#section-3.1.3.1)
            language codes.
          x-apiture-key: languageCode
          type: object
          additionalProperties:
            $ref: '#/components/schemas/simpleLabel'
          example:
            en:
              label: More then $10M
            es:
              label: Mas de $10M
            fr:
              label: Plus de $10M
        code:
          type: string
          description: 'If the localized value is associated with an external standard or definition, this is a lookup code or key or URI for that value.'
          example: '3'
          minLength: 1
        hidden:
          type: boolean
          description: 'If `true`, this item is normally hidden from the User Interface.'
        range:
          description: >-
            The range of values, if the item describes a bounded numeric value. This is range notation such as `[min,max]`, `(exclusiveMin,max]`,
            `[min,exclusiveMax)`, or `(exclusiveMin,exclusiveMax)`. For example, `[0,100)` is the range greater than or equal to 0 and less than 100.
            If the *min* or *max* value are omitted, that end of the range is unbounded. For example, `(,1000.00)` means less than 1000.00 and
            `[20000.00,]` means 20000.00 or more. The ranges do not overlap or have gaps.
          type: string
          pattern: '^[\[\(](-?(0|[1-9][0-9]*)(\.[0-9]+)?)?,(-?(0|[1-9][0-9]*)(\.[0-9]+)?)?[\]\)]$'
      type: object
      x-apiture-flattened: true
    links:
      title: Links (v1.0.0)
      x-apiture-version: 1.0.0
      description: |-
        An optional map of links, mapping each link relation to a link object. This model defines the `_links` object of HAL representations.

        This schema was resolved from [`common/links`](https://production.api.apiture.com/schemas/common/links/v1.0.0/model.json).
      type: object
      x-apiture-key: linkRelationName
      additionalProperties:
        $ref: '#/components/schemas/link'
      x-apiture-resolved-from: 'https://production.api.apiture.com/schemas/common/links/v1.0.0/model.json'
      x-apiture-namespace: common
      properties: {}
      x-apiture-flattened: true
    attributes:
      x-apiture-version: 2.0.0
      title: Attributes (v2.0.0)
      description: |-
        An optional map of name/value pairs which contains additional dynamic data about the resource.

        This schema was resolved from [`common/attributes`](https://production.api.apiture.com/schemas/common/attributes/v2.0.0/model.json).
      type: object
      x-apiture-key: attributeName
      additionalProperties:
        $ref: '#/components/schemas/attributeValue'
      x-apiture-resolved-from: 'https://production.api.apiture.com/schemas/common/attributes/v2.0.0/model.json'
      x-apiture-namespace: common
      properties: {}
      x-apiture-flattened: true
    simpleLabel:
      title: Simple Label (v1.0.0)
      description: |-
        A text label and optional description.

        This schema was resolved from [`common/simpleLabel`](https://production.api.apiture.com/schemas/common/simpleLabel/v1.0.0/model.json).
      x-apiture-version: 1.0.0
      type: object
      required:
        - label
      properties:
        label:
          type: string
          description: A label or title which may be used as labels or other UI controls which present a value.
          example: Board of Directors
        description:
          type: string
          description: A more detailed localized description of a localizable label.
      x-apiture-resolved-from: 'https://production.api.apiture.com/schemas/common/simpleLabel/v1.0.0/model.json'
      x-apiture-namespace: common
      x-apiture-flattened: true
    link:
      x-apiture-version: 1.0.0
      title: Link (v1.0.0)
      description: >-
        Describes a hypermedia link within a `_links` object in HAL representations. In Apiture APIs, links are [HAL
        links](https://developer.apiture.com/docs/concepts/links), but Apiture APIs do not use the `name` or `hreflang` properties of HAL. Apiture
        links _may_ include a `method` property.


        This schema was resolved from [`common/link`](https://production.api.apiture.com/schemas/common/link/v1.0.0/model.json).
      required:
        - href
      properties:
        href:
          type: string
          format: uri
          description: The URI or URI template for the resource/operation this link refers to.
        type:
          type: string
          description: The media type for the resource.
        templated:
          type: boolean
          description: 'If true, the link''s href is a [URI template](https://tools.ietf.org/html/rfc6570).'
        title:
          type: string
          description: An optional human-readable localized title for the link.
        deprecation:
          type: string
          format: uri
          description: 'If present, the containing link is deprecated and the value is a URI which provides human-readable text information about the deprecation.'
        profile:
          type: string
          format: uri
          description: 'The URI of a profile document, a JSON document which describes the target resource/operation.'
      example:
        href: /contacts/contacts/328f6bf6-d762-422f-a077-ab91ca4d0b6f
        title: Applicant
      x-apiture-resolved-from: 'https://production.api.apiture.com/schemas/common/link/v1.0.0/model.json'
      x-apiture-namespace: common
      type: object
      x-apiture-flattened: true
    attributeValue:
      x-apiture-version: 2.0.0
      title: Attribute Value (v2.0.0)
      description: |-
        The data associated with this attribute.

        This schema was resolved from [`common/attributeValue`](https://production.api.apiture.com/schemas/common/attributeValue/v2.0.0/model.json).
      x-apiture-resolved-from: 'https://production.api.apiture.com/schemas/common/attributeValue/v2.0.0/model.json'
      x-apiture-namespace: common
      type: object
      properties: {}
      x-apiture-flattened: true
  responses:
    '304':
      description: Not Modified. The resource has not been modified since it was last fetched.
    '400':
      description: >-
        Bad Request.  The request body or one or more of the query parameters was not well formed.  The `_error` field in the response will contain
        details about the request error.
      content:
        application/hal+json:
          schema:
            $ref: '#/components/schemas/errorResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/errorResponse'
    '422':
      description: >-
        Unprocessable Entity. One or more of the query parameters was well formed but otherwise invalid. The `_error` field in the response will
        contain details about the request error.
      content:
        application/hal+json:
          schema:
            $ref: '#/components/schemas/errorResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/errorResponse'
    404Transaction:
      description: >-
        Not Found. There is no such transaction resource at the specified `{transactionId}`. The `_error` field in the response will contain details
        about the request error.


        This error response may have one of the following `type` values:

        * [`transactionNotFound`](#err-transactionNotFound)
      x-apiture-errors:
        - transactionNotFound
      content:
        application/hal+json:
          schema:
            $ref: '#/components/schemas/errorResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/errorResponse'
    404CheckImage:
      description: |-
        Not Found. No such check image metadata or content. The `_error` field in the response contains details about the request error.

        This error response may have one of the following `type` values:
        * [`invalidCheckId`](#err-invalidCheckId)
      x-apiture-errors:
        - invalidCheckId
      content:
        application/hal+json:
          schema:
            $ref: '#/components/schemas/errorResponse'
        application/json:
          schema:
            $ref: '#/components/schemas/errorResponse'
  parameters:
    ifNoneMatchHeaderParam:
      name: If-None-Match
      description: >-
        The entity tag that was returned in the `ETag` response. If the resource's current entity tag matches, the `GET` returns 304 (Not Modified)
        and no response body, else the resource representation is returned.
      in: header
      schema:
        type: string
    checkIdPathParam:
      name: checkId
      description: The unique identifier of a check image. This is an opaque string.
      in: path
      required: true
      schema:
        type: string
    checkSidePathParam:
      name: side
      description: The side of the check. Allowed values are `back` and `front`.
      in: path
      required: true
      schema:
        type: string
    transactionIdPathParam:
      name: transactionId
      description: >-
        The unique identifier of this transaction. This is an opaque string. This string is not the same as the bank's core transaction ID; it is
        simply the resource ID for referencing the transaction resource via the API.
      in: path
      required: true
      schema:
        type: string
    checkNumberQueryParam:
      name: checkNumber
      in: query
      description: >-
        Specify one or more check numbers or check number ranges. This is a comma-separated or `|` separated list of number or ranges. Ranges have the
        form `number-number`. For example, the value `201,202,210-213` matches the transactions where the check number is 201, 202, 210, 211, 212, or
        213; this may also be expressed as `201|202|210-213`.
      schema:
        type: string
    holdStateQueryParam:
      name: holdState
      in: query
      description: >-
        Subset the transactions collection to those whose `holdState` matches this value. Use `|` to separate multiple values.  For example,
        `?holdState=active` will match only items whose `holdState` is `active`; `?holdState=active|expired` will match items whose `holdState` is
        `active` or `expired`. This is combined with an implicit `and` with other filters if they are used. See
        [filtering](https://developer.apiture.com/docs/concepts/filtering).
      required: false
      schema:
        type: string
        default: none
    filterQueryParam:
      name: filter
      in: query
      description: 'Optional filter criteria. See [filtering](https://developer.apiture.com/docs/concepts/filtering).'
      schema:
        type: string
    qQueryParam:
      name: q
      in: query
      description: 'Optional search string. See [searching](https://developer.apiture.com/docs/concepts/searching).'
      schema:
        type: string
    accountQueryParam:
      name: account
      in: query
      required: false
      description: 'A list of server-supplied values which identify the account instances, i.e. ?account=acct1|acct2|acct3.'
      schema:
        type: string
    unmaskedQueryParam:
      name: unmasked
      description: >-
        When requesting a transaction, the full account 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. Such requests are auditable.
      in: query
      required: false
      schema:
        type: boolean
        default: false
    disputeStateQueryParam:
      name: disputeState
      in: query
      description: >-
        Subset the transactions collection to those whose `disputeState` matches this value. Use `|` to separate multiple values.  For example,
        `?disputeState=resolved` will match only items whose `disputeState` is `resolved`; `?disputeState=resolved|inProgress` will match items whose
        `disputeState` is `resolved` or `inProgress`. This is combined with an implicit `and` with other filters if they are used. See
        [filtering](https://developer.apiture.com/docs/concepts/filtering).
      required: false
      schema:
        type: string
        default: none
  securitySchemes:
    apiKey:
      type: apiKey
      name: API-Key
      in: header
      description: >-
        API Key based authentication. Each client application must pass its private, unique API key, allocated in the developer portal, via the
        `API-Key: {api-key}` request header.
    accessToken:
      type: oauth2
      description: >-
        OAuth2 client access token authentication. The client authenticates against the server at `authorizationUrl`, passing the client's private
        `clientId` (and optional `clientSecret`) as part of this flow. The client obtains an access token from the server at `tokenUrl`. It then
        passes the received access token via the `Authorization: Bearer {access-token}` header in subsequent API calls. The authorization process also
        returns a refresh token which the client should use to renew the access token before it expires.
      flows:
        authorizationCode:
          authorizationUrl: 'https://auth.devbank.apiture.com/auth/oauth2/authorize'
          tokenUrl: 'https://api.devbank.apiture.com/auth/oauth2/token'
          scopes:
            banking/read: Read access to accounts and account-related resources such as transfers and transactions.
            banking/write: Write (update) access to accounts and account-related resources such as transfers and transactions.
            banking/delete: Delete access to deletable accounts and account-related resources such as transfers.
            banking/readBalance: >-
              Read access to account balances. This must be granted in addition to the `banking/read` scope in order to view balances, but is included
              in the `banking/full` scope.
            banking/full: Full access to accounts and account-related resources such as transfers and transactions.
