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 #
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 form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

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
      operationId: postApiEndUsersByEndUserIdOrHeronIdDecisionLogic
      x-operation-id-source: derived
  /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
      operationId: postApiEndUsersByEndUserIdOrHeronIdInscribe
      x-operation-id-source: derived
  /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
      operationId: getApiEndUsersByEndUserIdOrHeronIdIntegrationLinks
      x-operation-id-source: derived
  /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
      operationId: postApiEndUsersByEndUserIdOrHeronIdOcrolus
      x-operation-id-source: derived
  /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
      operationId: getApiEndUsersByEndUserIdOrHeronIdPdfs
      x-operation-id-source: derived
  /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
      operationId: postApiEndUsersByEndUserIdOrHeronIdPdfsParse
      x-operation-id-source: derived
  /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
      operationId: postApiEndUsersByEndUserIdOrHeronIdPdfsV1
      x-operation-id-source: derived
  /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
      operationId: postApiEndUsersByEndUserIdOrHeronIdPlaidAssets
      x-operation-id-source: derived
  /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
      operationId: postApiEndUsersByEndUserIdOrHeronIdPlaidTransactions
      x-operation-id-source: derived
  /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
      operationId: postApiEndUsersByEndUserIdOrHeronIdYodlee
      x-operation-id-source: derived
  /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
      operationId: getApiIntegrationsPdfsByHeronId
      x-operation-id-source: derived
    put:
      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
      operationId: putApiIntegrationsPdfsByHeronId
      x-operation-id-source: derived
  /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
      operationId: patchApiIntegrationsPdfsByHeronIdProcessed
      x-operation-id-source: derived
  /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
      operationId: postApiIntegrationsPdfsByHeronIdReloadTransactions
      x-operation-id-source: derived
  /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
      operationId: postApiIntegrationsPdfsByHeronIdUnloadTransactions
      x-operation-id-source: derived
  /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
      operationId: postApiIntegrationsPdfsByHeronIdUpdateCurrency
      x-operation-id-source: derived
components:
  schemas:
    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
    InscribeAccount:
      properties:
        account_type:
          type:
          - string
          - 'null'
        beginning_balance:
          allOf:
          - $ref: '#/components/schemas/InscribeNumberPrediction'
        ending_balance:
          allOf:
          - $ref: '#/components/schemas/InscribeNumberPrediction'
        institution_name:
          type:
          - string
          - 'null'
        number:
          $ref: '#/components/schemas/InscribeStringPrediction'
        transactions:
          items:
            $ref: '#/components/schemas/InscribeTransaction'
          type: array
        transactions_match_balances:
          type:
          - boolean
          - 'null'
      type: object
    InscribeParsedDetails:
      properties:
        bank_accounts:
          items:
            $ref: '#/components/schemas/InscribeAccount'
          type: array
        name:
          $ref: '#/components/schemas/InscribeParsedDetailsName'
      type: object
    PlaidAssetReportItem:
      properties:
        accounts:
          items:
            $ref: '#/components/schemas/PlaidAccount'
          type: array
        institution_name:
          type: string
      required:
      - accounts
      - institution_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
    YodleeSchema:
      properties:
        accounts:
          items:
            $ref: '#/components/schemas/YodleeAccount'
          type: array
        transactions:
          items:
            $ref: '#/components/schemas/YodleeTransaction'
          type: array
      type: object
    PlaidAssetsSchema:
      properties:
        report:
          $ref: '#/components/schemas/PlaidAssetReport'
      required:
      - report
      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
          type: string
        end_user_id:
          description: A unique identifier for your end user (customer) generated by you
          example: 8432b0b7-11fa-4334-b496-5f850c35bb43
          type: string
          writeOnly: true
        end_user_name:
          description: An human readable name for this end user, like the company legal name
          example: Acme Corp
          type: string
          writeOnly: true
        item_id:
          description: Unique identifier for each bank connection made by your end users. In Plaid this is the 'item_id'.
          example: M5eVJqLnv3tbzdngLDp9FL5OlDNxlNhlE55op
          type: string
        last_successful_sync:
          description: When the integration link was last successfully synced
          example: '2020-01-01T00:00:00Z'
          format: date-time
          readOnly: true
          type: string
        last_updated:
          description: When the integration link was last updated in Heron system
          example: '2020-01-01T00:00:00Z'
          format: date-time
          readOnly: true
          type: string
        status:
          description: The integration link status
          enum:
          - pending
          - active
          - syncing
          - erroring
          - sync_disabled
          - deleted_in_plaid
          example: active
          readOnly: true
          type: string
        status_message:
          description: A message describing the 'erroring' status of the integration link
          example: '[ITEM_LOGIN_REQUIRED] the login details of this item have changed (credentials, MFA, or required user action) and a user login is required to update this information. use Link''s update mode to restore the item to a good state'
          readOnly: true
          type: string
        type:
          description: 'The integration link type, inherited from the integration: plaid_assets_report or plaid_integration'
          example: plaid_assets_report
          readOnly: true
          type: string
      required:
      - access_token
      - end_user_id
      - item_id
      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
    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
    OcrolusSchema:
      properties:
        response:
          $ref: '#/components/schemas/OcrolusResponse'
      required:
      - response
      type: object
    InscribeStringPrediction:
      properties:
        confidence:
          type: number
        normalized:
          type: string
        raw:
          type: string
      type: object
    PdfGetSchema:
      properties:
        account_id:
          description: Unique ID for account associated with PDF
          example: checking_account_202348
          type: string
        created:
          description: Timestamp when PDF was created in Heron system
          example: '2026-08-14T12:24:30.801571'
          format: date-time
          type: string
        currency:
          description: ISO 4217 currency code for transactions in account. We currently only support GBP and USD PDFs
          enum:
          - USD
          - GBP
          example: USD
          type: string
        data_source:
          allOf:
          - $ref: '#/components/schemas/DataSourceNested'
          description: The data source for this PDF. Only available after parsing and enrichment has completed, otherwise null.
        end_user:
          $ref: '#/components/schemas/EndUser2'
        filename:
          description: The filename of the PDF
          example: my-favourite.pdf
          type: string
        heron_id:
          description: ID generated by Heron Data
          example: pdf_TdpNDuBWbCK82yDs4CqSAT
          type: string
        is_image_based:
          description: True if the PDF was processed using image-based OCR. None if not yet processed
          type:
          - boolean
          - 'null'
        last_updated:
          description: Timestamp when PDF was last updated in Heron system
          example: '2026-08-14T12:24:30.801623'
          format: date-time
          type: string
        notes:
          description: Notes for the PDF, e.g., failed reason
          example: failed to send to external OCR provider
          type: string
        parsing_version:
          description: Indicates which provider was used to parse this pdf
          type: string
        reference_id:
          description: An optional field for your unique identifier for the PDF
          example: my-favourite-pdf
          type: string
        statements:
          items:
            $ref: '#/components/schemas/PdfStatement'
          type: array
        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:
 

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