Heron End User Integrations API

The EndUserIntegrations API from Heron — 15 operation(s) for enduserintegrations.

Operations 16

POST /api/end_users/{end_user_id_or_heron_id}/decision_logic Upload DecisionLogic XML
POST /api/end_users/{end_user_id_or_heron_id}/inscribe Upload Inscribe
GET /api/end_users/{end_user_id_or_heron_id}/integration_links Get Integration Links
POST /api/end_users/{end_user_id_or_heron_id}/ocrolus Upload Ocrolus
GET /api/end_users/{end_user_id_or_heron_id}/pdfs Get PDFs
POST /api/end_users/{end_user_id_or_heron_id}/pdfs/parse Parse all PDF
POST /api/end_users/{end_user_id_or_heron_id}/pdfs/v1 Upload PDF
POST /api/end_users/{end_user_id_or_heron_id}/plaid/assets Upload Plaid assets
POST /api/end_users/{end_user_id_or_heron_id}/plaid/transactions Upload Plaid transactions
POST /api/end_users/{end_user_id_or_heron_id}/yodlee Upload Yodlee
GET /api/integrations/pdfs/{heron_id} Get single PDF by heron_id
PUT /api/integrations/pdfs/{heron_id} Update PDF attributes including status
PATCH /api/integrations/pdfs/{heron_id}/processed Send patch transactions for a pdf statement
POST /api/integrations/pdfs/{heron_id}/reload_transactions Reloads transactions for a pdf
POST /api/integrations/pdfs/{heron_id}/unload_transactions Unloads transactions for a pdf
POST /api/integrations/pdfs/{heron_id}/update_currency Update PDF currency

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/heron-enduserintegrations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no email required.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

heron-enduserintegrations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  contact:
    email: support@herondata.io
    name: Support
  title: Heron Data End User Integrations API
  version: '2021-07-19'
servers:
- description: Production
  url: https://app.herondata.io
security:
- ApiKeyAuth:
  - key_XXX
tags:
- name: EndUserIntegrations
paths:
  /api/end_users/{end_user_id_or_heron_id}/decision_logic:
    post:
      description: 'Upload DecisionLogic XML files for a specified end user to translate into Heron Data format and add transactions for the end user

        '
      parameters:
      - description: The `end_user_id` or `heron_id` of EndUser to upload
        in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      - description: ISO 4217 currency code
        in: query
        name: currency
        required: false
        schema:
          example: USD
          type: string
      requestBody:
        content:
          application/xml:
            schema:
              type: string
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                properties:
                  _summary:
                    properties:
                      request_id:
                        description: Unique UUID per request
                        type: string
                    type: object
                type: object
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Upload DecisionLogic XML
      tags:
      - EndUserIntegrations
  /api/end_users/{end_user_id_or_heron_id}/inscribe:
    post:
      description: 'Upload Inscribe JSON for a specified end user to translate into Heron Data format and add transactions for the end user

        '
      parameters:
      - description: The `end_user_id` or `heron_id` of EndUser to upload
        in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InscribeSchema'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                properties:
                  _summary:
                    properties:
                      request_id:
                        description: Unique UUID per request
                        type: string
                    type: object
                type: object
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Upload Inscribe
      tags:
      - EndUserIntegrations
  /api/end_users/{end_user_id_or_heron_id}/integration_links:
    get:
      description: 'Get a list of integration links for a specified end user

        '
      parameters:
      - description: The `end_user_id` or `heron_id` of EndUser
        in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  links:
                    items:
                      $ref: '#/components/schemas/IntegrationLinkSchema'
                    type: array
                type: object
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Get Integration Links
      tags:
      - EndUserIntegrations
  /api/end_users/{end_user_id_or_heron_id}/ocrolus:
    post:
      description: 'Upload Ocrolus JSON for a specified end user to translate into Heron Data format and add transactions for the end user

        '
      parameters:
      - description: The `end_user_id` or `heron_id` of EndUser to upload
        in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      - description: Skip the check for the number of transactions in the payload
        in: query
        name: skip_num_txns_check
        required: false
        schema:
          type: boolean
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/OcrolusSchema'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                properties:
                  _summary:
                    properties:
                      request_id:
                        description: Unique UUID per request
                        type: string
                    type: object
                type: object
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Upload Ocrolus
      tags:
      - EndUserIntegrations
  /api/end_users/{end_user_id_or_heron_id}/pdfs:
    get:
      description: 'Get list of PDFs for a specified end user

        '
      parameters:
      - description: The `end_user_id` or `heron_id` of EndUser to upload
        in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      - description: Include processed results where applicable per pdf
        in: query
        name: with_processed_results
        required: false
        schema:
          type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  pdfs:
                    items:
                      $ref: '#/components/schemas/PdfGetSchema'
                    type: array
                type: object
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Get PDFs
      tags:
      - EndUserIntegrations
  /api/end_users/{end_user_id_or_heron_id}/pdfs/parse:
    post:
      description: 'Starts parsing all PDFs for a specified end users. This will not restart any PDFs that are already being parsed

        '
      parameters:
      - description: The `end_user_id` or `heron_id` of EndUser to upload
        in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  pdf_heron_ids:
                    items:
                      type: string
                    type: array
                  request_id:
                    description: Unique UUID per request
                    type: string
                type: object
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Parse all PDF
      tags:
      - EndUserIntegrations
  /api/end_users/{end_user_id_or_heron_id}/pdfs/v1:
    post:
      description: 'Upload encoded PDF of transactions for a specified end user to translate into Heron Data format

        '
      parameters:
      - description: The `end_user_id` or `heron_id` of EndUser to upload
        in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PdfPostSchema'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                properties:
                  pdf_heron_id:
                    description: Heron id of the uploaded pdf file
                    type: string
                  request_id:
                    description: Unique UUID per request
                    type: string
                type: object
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Upload PDF
      tags:
      - EndUserIntegrations
  /api/end_users/{end_user_id_or_heron_id}/plaid/assets:
    post:
      description: 'Upload Plaid asset JSON for a specified end user to translate into Heron Data format and add transactions for the end user

        '
      parameters:
      - description: The `end_user_id` or `heron_id` of EndUser to upload
        in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlaidAssetsSchema'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                properties:
                  _summary:
                    properties:
                      request_id:
                        description: Unique UUID per request
                        type: string
                    type: object
                type: object
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Upload Plaid assets
      tags:
      - EndUserIntegrations
  /api/end_users/{end_user_id_or_heron_id}/plaid/transactions:
    post:
      description: 'Upload Plaid transactions JSON for a specified end user to translate into Heron Data format and add transactions for the end user

        '
      parameters:
      - description: The `end_user_id` or `heron_id` of EndUser to upload
        in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PlaidTransactionsSchema'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                properties:
                  _summary:
                    properties:
                      request_id:
                        description: Unique UUID per request
                        type: string
                    type: object
                type: object
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Upload Plaid transactions
      tags:
      - EndUserIntegrations
  /api/end_users/{end_user_id_or_heron_id}/yodlee:
    post:
      description: 'Upload Yodlee JSON files for a specified end user to translate into Heron Data format and add transactions for the end user

        '
      parameters:
      - description: The `end_user_id` or `heron_id` of EndUser to upload
        in: path
        name: end_user_id_or_heron_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/YodleeSchema'
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                properties:
                  _summary:
                    properties:
                      request_id:
                        description: Unique UUID per request
                        type: string
                    type: object
                type: object
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Upload Yodlee
      tags:
      - EndUserIntegrations
  /api/integrations/pdfs/{heron_id}:
    get:
      description: 'Retrieve a single PDF document by its heron_id. Returns the PDF metadata, status information, and optionally the processed statements/transactions. Users can only access their own PDFs.

        '
      parameters:
      - description: The heron_id of the PDF to retrieve
        in: path
        name: heron_id
        required: true
        schema:
          type: string
      - description: Include processed statements/transactions in the response
        in: query
        name: with_processed_results
        required: false
        schema:
          default: false
          type: boolean
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  pdf:
                    $ref: '#/components/schemas/PdfGetSchema'
                type: object
          description: Successfully retrieved PDF
        '404':
          content:
            application/json:
              schema:
                properties:
                  message:
                    example: no pdf with heron_id=example_id found
                    type: string
                type: object
          description: PDF not found or user does not have access
      security:
      - ApiKeyAuth: []
      summary: Get single PDF by heron_id
      tags:
      - EndUserIntegrations
    put:
      description: 'Update PDF attributes including status

        '
      parameters:
      - description: heron_id of the pdf
        in: path
        name: heron_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PdfPutSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  pdf:
                    $ref: '#/components/schemas/PdfGetSchema'
                  request_id:
                    description: Unique UUID per request
                    type: string
                type: object
          description: OK
      security:
      - ApiKeyAuth: []
      summary: Update PDF attributes including status
      tags:
      - EndUserIntegrations
  /api/integrations/pdfs/{heron_id}/processed:
    patch:
      description: 'Send patch transactions processed pdf that will override the extracted transactions in the specified statement

        '
      parameters:
      - description: heron_id of the pdf
        in: path
        name: heron_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PdfStatementPatchSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  ok:
                    type: boolean
                type: object
          description: Ok
      security:
      - ApiKeyAuth: []
      summary: Send patch transactions for a pdf statement
      tags:
      - EndUserIntegrations
  /api/integrations/pdfs/{heron_id}/reload_transactions:
    post:
      description: 'This will load transactions for the pdf that is in a transactions unloaded status

        '
      parameters:
      - description: heron_id of the pdf
        in: path
        name: heron_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  ok:
                    type: boolean
                type: object
          description: Ok
      security:
      - ApiKeyAuth: []
      summary: Reloads transactions for a pdf
      tags:
      - EndUserIntegrations
  /api/integrations/pdfs/{heron_id}/unload_transactions:
    post:
      description: 'This will delete all transactions that were previously loaded for the pdf

        '
      parameters:
      - description: heron_id of the pdf
        in: path
        name: heron_id
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  ok:
                    type: boolean
                type: object
          description: Ok
      security:
      - ApiKeyAuth: []
      summary: Unloads transactions for a pdf
      tags:
      - EndUserIntegrations
  /api/integrations/pdfs/{heron_id}/update_currency:
    post:
      description: 'Update the currency for a PDF and all its statement summaries. The PDF must be in transactions_unloaded status.

        '
      parameters:
      - description: heron_id of the PDF
        in: path
        name: heron_id
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PdfDefaultCurrencyUpdateSchema'
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                properties:
                  ok:
                    type: boolean
                  pdf:
                    $ref: '#/components/schemas/PdfGetSchema'
                  request_id:
                    description: Unique UUID per request
                    type: string
                type: object
          description: PDF currency updated successfully
        '400':
          description: Bad request - PDF not in correct status
        '404':
          description: PDF not found
      security:
      - ApiKeyAuth: []
      summary: Update PDF currency
      tags:
      - EndUserIntegrations
components:
  schemas:
    DataSourceNested:
      properties:
        heron_id:
          description: Heron ID of the data source
          type: string
        is_enabled:
          description: Whether this data source is enabled
          type: boolean
      type: object
    YodleeAmount:
      properties:
        amount:
          type: number
        currency:
          type: string
      type: object
    InscribeSchema:
      properties:
        customer_name:
          type:
          - string
          - 'null'
        parsed_details:
          $ref: '#/components/schemas/InscribeParsedDetails'
      type: object
    MoneyThumbStatementSummary:
      properties:
        account_number:
          type: string
        account_title:
          type: string
        bank_name:
          type: string
        company:
          type: string
        currency:
          type: string
        end_balance:
          type: number
        fraud_reasons:
          items:
            type: string
          type: array
        fraud_score:
          type: integer
        is_business_account:
          type: boolean
        is_ocr:
          type: boolean
        max_resolution:
          type: integer
        min_resolution:
          type: integer
        num_credits:
          type: integer
        num_debits:
          type: integer
        num_transactions:
          type: integer
        reconciled:
          type: boolean
        start_balance:
          type: number
        statement_end_date:
          format: date-time
          type: string
        statement_start_date:
          format: date-time
          type: string
        total_credits:
          type: number
        total_debits:
          type: number
        unreconciled_end_balance:
          type: number
        web_report:
          type: boolean
      required:
      - end_balance
      - num_credits
      - num_debits
      - num_transactions
      - reconciled
      - start_balance
      - total_credits
      - total_debits
      type: object
    InscribeTransaction:
      properties:
        amount:
          type: integer
        date:
          format: date
          type: string
        description:
          type: string
        id:
          type: string
      type: object
    PdfPutSchema:
      properties:
        filename:
          description: The filename of the PDF
          example: my-favourite.pdf
          type: string
        fraud_reason:
          description: 'If fraud reason '
          type:
          - string
          - 'null'
        is_fraud:
          description: True if fraud was detected in the PDF
          type: boolean
        notes:
          description: Notes associated with PDF, e.g., rejected reason, failed reason
          type: string
        reference_id:
          description: An optional field for your unique identifier for the PDF
          example: my-favourite-pdf
          maxLength: 140
          type: string
        status:
          description: Status of PDF
          enum:
          - new
          - parsing
          - parsed
          - processed
          - human_reviewing
          - approved
          - rejected
          - failed
          - transactions_loaded
          - transactions_unloaded
          example: processed
          type: string
      type: object
    PlaidAccount:
      properties:
        account_id:
          type: string
        balances:
          $ref: '#/components/schemas/PlaidAccountSnapshotBalance'
        historical_balances:
          items:
            $ref: '#/components/schemas/PlaidAccountBalance'
          type: array
        holder_category:
          type:
          - string
          - 'null'
        mask:
          type:
          - string
          - 'null'
        name:
          type:
          - string
          - 'null'
        official_name:
          type:
          - string
          - 'null'
        owners:
          items:
            $ref: '#/components/schemas/PlaidAccountOwners'
          type:
          - array
          - 'null'
        subtype:
          type:
          - string
          - 'null'
        transactions:
          items:
            $ref: '#/components/schemas/PlaidTransaction'
          type: array
        type:
          type:
          - string
          - 'null'
      required:
      - account_id
      - balances
      - historical_balances
      - transactions
      type: object
    OcrolusResponse:
      properties:
        bank_accounts:
          items:
            $ref: '#/components/schemas/OcrolusBankAccount'
          type: array
        name:
          type: string
      required:
      - bank_accounts
      - name
      type: object
    MoneyThumbTransactionBounds:
      properties:
        page:
          type:
          - integer
          - 'null'
        x_max:
          type:
          - integer
          - 'null'
        x_min:
          type:
          - integer
          - 'null'
        y_max:
          type:
          - integer
          - 'null'
        y_min:
          type:
          - integer
          - 'null'
      required:
      - page
      - x_max
      - x_min
      - y_max
      - y_min
      type: object
    InscribeParsedDetails:
      properties:
        bank_accounts:
          items:
            $ref: '#/components/schemas/InscribeAccount'
          type: array
        name:
          $ref: '#/components/schemas/InscribeParsedDetailsName'
      type: object
    PlaidAccountSnapshotBalance:
      properties:
        available:
          type:
          - number
          - 'null'
        current:
          type:
          - number
          - 'null'
        iso_currency_code:
          type: string
        limit:
          type:
          - number
          - 'null'
      type: object
    InscribeNumberPrediction:
      properties:
        confidence:
          type: number
        normalized:
          type: integer
        raw:
          type: string
      type: object
    PdfTransaction:
      properties:
        amount:
          type: number
        balance:
          type: number
        bounds:
          allOf:
          - $ref: '#/components/schemas/MoneyThumbTransactionBounds'
        currency:
          type:
          - string
          - 'null'
        description:
          type: string
        ocr_suspect:
          type: boolean
        reference_id:
          type: string
        timestamp:
          format: date-time
          type: string
        transaction_code:
          type: string
      required:
      - amount
      - description
      - timestamp
      type: object
    PlaidAssetsSchema:
      properties:
        report:
          $ref: '#/components/schemas/PlaidAssetReport'
      required:
      - report
      type: object
    PlaidTransaction:
      properties:
        account_id:
          type: string
        amount:
          type: number
        balance:
          type: number
        category:
          type:
          - string
          - 'null'
        date:
          format: date
          type: string
        iso_currency_code:
          description: ISO 4217 currency code
          example: USD
          maxLength: 3
          minLength: 3
          type:
          - string
          - 'null'
        merchant_name:
          type:
          - string
          - 'null'
        name:
          type: string
        pending:
          type: boolean
        pending_transaction_id:
          type:
          - string
          - 'null'
        timestamp:
          format: date-time
          type: string
        transaction_code:
          type:
          - string
          - 'null'
        transaction_id:
          type: string
      type: object
    PlaidTransactionsSchema:
      properties:
        accounts:
          items:
            $ref: '#/components/schemas/PlaidAccountSnapshot'
          type: array
        transactions:
          items:
            $ref: '#/components/schemas/PlaidTransaction'
          type: array
      required:
      - transactions
      type: object
    OcrolusSchema:
      properties:
        response:
          $ref: '#/components/schemas/OcrolusResponse'
      required:
      - response
      type: object
    PlaidAccountSnapshot:
      properties:
        account_id:
          type: string
        balances:
          allOf:
          - $ref: '#/components/schemas/PlaidAccountSnapshotBalance'
          description: Balance information for the account as an object. This is optional, but if not provided, balance calculations will not be performed for individual transactions.
        holder_category:
          type:
          - string
          - 'null'
        institution_name:
          type:
          - string
          - 'null'
        mask:
          type:
          - string
          - 'null'
        name:
          type: string
        official_name:
          type:
          - string
          - 'null'
        owners:
          items:
            $ref: '#/components/schemas/PlaidAccountOwners'
          type:
          - array
          - 'null'
        subtype:
          type: string
        type:
          type: string
      type: object
    OcrolusBankAccount:
      properties:
        account_category:
          type: string
        account_number:
          type: string
        alternative_lender_transactions:
          items:
            $ref: '#/components/schemas/OcrolusTransaction'
          type: array
        daily_balances:
          additionalProperties:
            type: string
          type: object
        debt_consolidator_txns:
          items:
            $ref: '#/components/schemas/OcrolusTransaction'
          type: array
        deposits_max_by_month:
          additionalProperties:
            items:
              $ref: '#/components/schemas/OcrolusTransaction'
            type:
            - array
            - 'null'
          type: object
        estimated_expense_txns_list:
          items:
            $ref: '#/components/schemas/OcrolusTransaction'
          type: array
        estimated_revenue_txns_list:
          items:
            $ref: '#/components/schemas/OcrolusTransaction'
          type: array
        factor_txns:
          items:
            $ref: '#/components/schemas/OcrolusTransaction'
          type: array
        holder_country:
          type: string
        insurance_credits:
          items:
            $ref: '#/components/schemas/OcrolusTransaction'
          type: array
        insurance_debits:
          items:
            $ref: '#/components/schemas/OcrolusTransaction'
          type: array
        interbank_transactions:
          items:
            $ref: '#/components/schemas/OcrolusTransaction'
          type: array
        merchant_cash_advance_lender_txns:
          items:
            $ref: '#/components/schemas/OcrolusTransaction'
          type: array
        non_estimated_revenue_txns_list:
          items:
            $ref: '#/components/schemas/OcrolusTransaction'
          type: array
        nsf_transactions:
          items:
            $ref: '#/components/schemas/OcrolusTransaction'
          type: array
        nsf_transactions_paid_or_negative_balance:
          items:
            $ref: '#/components/schemas/OcrolusTransaction'
          type: array
        nsf_transactions_returned_or_not_paid:
          items:
            $ref: '#/components/schemas/OcrolusTransaction'
          type: array
        outside_source_deposits:
          items:
            $ref: '#/components/schemas/OcrolusTransaction'
          type: array
        payroll:
          items:
            $ref: '#/components/schemas/OcrolusTransaction'
          type: array
        period_balance_mismatches:
          items:
            $ref: '#/components/schemas/OcrolusTransaction'
          type: array
        ppp_loan_txns:
          items:
            $ref: '#/components/schemas/OcrolusTransaction'
          type: array
        probable_recurring_txns:
          items:
            items:
              $ref: '#/components/schemas/OcrolusTransaction'
            type: array
          type: array
        returned_items:
          items:
            $ref: '#/components/schemas/OcrolusTransaction'
          type: array
        round_number_txns:
          items:
            $ref: '#/components/schemas/OcrolusTransaction'
          type: array
        txn_count:
          type: integer
        withdrawals:
          items:
            $ref: '#/components/schemas/OcrolusTransaction'
          type: array
        withdrawals_max_by_month:
          additionalProperties:
            items:
              $ref: '#/components/schemas/OcrolusTransaction'
            type:
            - array
            - 'null'
          type: object
      type: object
    YodleeTransaction:
      properties:
        accountId:
          type: integer
        amount:
          $ref: '#/components/schemas/YodleeAmount'
        baseType:
          enum:
          - CREDIT
          - DEBIT
          type: string
        category:
          type: string
        date:
          example: '2025-07-08'
          pattern: ^\d{4}-\d{2}-\d{2}$
          type: string
        description:
          $ref: '#/components/schemas/YodleeTransactionDescription'
        id:
          type: integer
      type: object
    YodleeTransactionDescription:
      properties:
        original:
          type: string
        simple:
          type: string
      type: object
    PdfDefaultCurrencyUpdateSchema:
      properties:
        currency:
          description: ISO 4217 currency code to update for PDF and all statements
          enum:
          - USD
          - GBP
          - EUR
          - SEK
          - AED
          - AUD
          - SGD
          - CAD
          - NOK
          - IDR
          - CHF
          - DKK
          - MXN
          - PLN
          - MYR
          - VND
          - RON
          - TRY
          - CZK
          - BGN
          - HKD
          - PHP
          - HUF
          - NZD
          - BRL
          - ILS
          - COP
          - RUB
          - INR
          - ZAR
          - THB
          - JPY
          - CLP
          - MAD
          - RSD
          - SLE
          example: EUR
          type: string
      required:
      - currency
      type: object
    YodleeSchema:
      properties:
        accounts:
          items:
            $ref: '#/components/schemas/YodleeAccount'
          type: array
        transactions:
          items:
            $ref: '#/components/schemas/YodleeTransaction'
          type: array
      type: object
    YodleeAccount:
      properties:
        balance:
          $ref: '#/components/schemas/YodleeAmount'
        classification:
          type:
          - string
          - 'null'
        id:
          type: integer
      type: object
    IntegrationLinkSchema:
      properties:
        access_token:
          description: The generated token that grants access to the bank (this is encrypted in transit and at-rest with a custom key)
          example: access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6
          type: string
          writeOnly: true
        asset_report_token:
          description: Optional. If you already have a Plaid asset report, pass the token to skip creating a new one.
          type:
          - string
          - 'null'
          writeOnly: true
        created:
          description: When the integration link was created in Heron system
          example: '2020-01-01T00:00:00Z'
          format: date-time
          readOnly: true
     

# --- truncated at 32 KB (44 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/heron/refs/heads/main/openapi/heron-enduserintegrations-api-openapi.yml