### GET /api/hello_world/authenticated Source: https://docs.herondata.io/api-reference/testing/get-apihello_worldauthenticated Tests the API authentication by returning a 'hello' message. This endpoint requires an API key for access. ```APIDOC ## GET /api/hello_world/authenticated ### Description Tests the API authentication. This endpoint verifies that your API key is valid and allows access to protected resources. ### Method GET ### Endpoint /api/hello_world/authenticated ### Parameters #### Query Parameters None #### Request Body None ### Request Example ```bash curl -X GET \ https://app.herondata.io/api/hello_world/authenticated \ -H 'x-api-key: YOUR_API_KEY' ``` ### Response #### Success Response (200) - **hello** (string) - A confirmation message indicating successful authentication. #### Response Example ```json { "hello": "world" } ``` #### Error Response (401) - **description**: Unauthorized. Indicates that the provided API key is missing or invalid. ``` -------------------------------- ### Start Enricher Execution via OpenAPI Source: https://docs.herondata.io/api-reference/enduserenrichers/start-enricher-execution-for-a-specific-end-user-asynchronously This OpenAPI definition outlines the POST request required to initiate an asynchronous enrichment task. It requires an API key for authentication and expects the end_user_heron_id in the request body. ```yaml paths: /api/end_user_enrichers/definitions/{enricher_definition_name}/start_enrich: post: tags: - EndUserEnrichers summary: Start enricher execution for a specific end user asynchronously parameters: - name: enricher_definition_name in: path required: true schema: type: string requestBody: content: application/json: schema: type: object properties: end_user_heron_id: type: string required: - end_user_heron_id responses: '202': description: Enrichment task dispatched successfully ``` -------------------------------- ### POST /api/iso_applications/ Source: https://docs.herondata.io/api-reference/isoapplication/upload-an-iso-application-pdf-for-automated-scrubbing-in-under-15-seconds Uploads an ISO application PDF for automated scrubbing. The process is asynchronous and returns a heron_id for status tracking. ```APIDOC ## POST /api/iso_applications/ ### Description Upload an ISO application PDF for automated scrubbing in under 15 seconds. The file is processed asynchronously, and the returned heron_id can be used to poll for results. ### Method POST ### Endpoint /api/iso_applications/ ### Parameters #### Request Body - **file** (binary) - Required - The ISO application PDF file to be uploaded. ### Request Example Content-Type: multipart/form-data --boundary Content-Disposition: form-data; name="file"; filename="application.pdf" Content-Type: application/pdf [binary data] --boundary-- ### Response #### Success Response (200) - **heron_id** (string) - The unique identifier for the application (prefixed "iso_"). - **status** (string) - The current status of the processing (e.g., "processing"). #### Response Example { "heron_id": "iso_123456789", "status": "processing" } ``` -------------------------------- ### Start a workflow by name via OpenAPI Source: https://docs.herondata.io/api-reference/workflows/start-a-workflow-by-name-for-an-end-user Defines the POST endpoint for starting a workflow. It requires an end_user_heron_id and workflow_name, and supports optional workflow_parameters. ```yaml openapi: 3.0.0 info: title: Heron Data API version: '2021-07-19' paths: /api/workflow/start_by_name: post: summary: Start a workflow by name for an end user requestBody: content: application/json: schema: $ref: '#/components/schemas/WorkflowStartByNameRequestSchema' required: true responses: '200': description: Workflow started successfully content: application/json: schema: $ref: '#/components/schemas/WorkflowStartResponseSchema' components: schemas: WorkflowStartByNameRequestSchema: type: object required: - end_user_heron_id - workflow_name properties: end_user_heron_id: type: string workflow_name: type: string workflow_parameters: type: object ``` -------------------------------- ### Get EndUser transactions grouped by counterparty or merchant via OpenAPI Source: https://docs.herondata.io/api-reference/endusercalculations/get-enduser-transactions-grouped-by-counterparty-or-merchant This OpenAPI specification defines the GET endpoint for retrieving a grouped transaction report. It requires an end_user_id_or_heron_id path parameter and returns an array of transaction groups categorized by merchant or counterparty. ```yaml openapi: 3.0.0 info: contact: email: support@herondata.io name: Support title: Heron Data API version: '2021-07-19' paths: /api/end_users/{end_user_id_or_heron_id}/grouped_transactions_report: get: tags: - EndUserCalculations summary: Get EndUser transactions grouped by counterparty or merchant parameters: - in: path name: end_user_id_or_heron_id required: true schema: type: string responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/EndUserGroupedTransactionsReport' type: array security: - ApiKeyAuth: [] ``` -------------------------------- ### GET /api/hello_world Source: https://docs.herondata.io/api-reference/testing/get-apihello_world A simple test endpoint to verify API connectivity. It does not require any authentication. ```APIDOC ## GET /api/hello_world ### Description Test endpoint (no authentication) ### Method GET ### Endpoint /api/hello_world ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body None ### Request Example None ### Response #### Success Response (200) - **hello** (string) - A confirmation message indicating the API is working. #### Response Example ```json { "hello": "world" } ``` ``` -------------------------------- ### POST /rules Source: https://docs.herondata.io/api-reference/enduserrules/evaluate-all-rules-for-an-end-user Create or configure a new monitoring rule for end users based on specific financial metrics and selectors. ```APIDOC ## POST /rules ### Description Creates a new rule to monitor specific financial metrics for end users. Rules are evaluated based on the provided selector and threshold values. ### Method POST ### Endpoint /rules ### Parameters #### Request Body - **name** (string) - Optional - Description of the rule for webhook references. - **selector** (object) - Optional - Key-value pairs defining which end users to apply the rule to. - **value** (number) - Optional - Numeric threshold for metric comparison. - **value_str** (string) - Optional - String threshold for metric comparison. ### Request Example { "name": "notify_if_debt_investment_count_gt_0_last_180d", "selector": { "is_portfolio": true }, "value": 42.42 } ### Response #### Success Response (200) - **status** (string) - Confirmation of rule creation. #### Response Example { "status": "success" } ``` -------------------------------- ### Get Missing Accounts API Endpoint (OpenAPI) Source: https://docs.herondata.io/api-reference/enduseraccounts/get-missing-accounts-beta This OpenAPI specification defines the GET endpoint for retrieving a list of missing accounts for a given end user. It requires an API key for authentication and returns an array of account objects containing names, numbers, and associated transactions. ```yaml openapi: 3.0.0 info: contact: email: support@herondata.io name: Support title: Heron Data API version: '2021-07-19' paths: /api/end_users/{end_user_id_or_heron_id}/missing_accounts: get: tags: - EndUserAccounts summary: Get Missing Accounts (beta) parameters: - name: end_user_id_or_heron_id in: path required: true schema: type: string responses: '200': content: application/json: schema: properties: missing_accounts: type: array items: $ref: '#/components/schemas/MissingAccountSchema' security: - ApiKeyAuth: [] ``` -------------------------------- ### GET /api/end_user_files/rename_rules/slugs Source: https://docs.herondata.io/api-reference/enduserfiles/get-file-rename-rule-variable-slugs Retrieve a list of all available file rename rule slugs associated with the authenticated user. ```APIDOC ## GET /api/end_user_files/rename_rules/slugs ### Description Retrieve all file rename rules slugs for the current user. This endpoint returns a list of strings representing the available slugs. ### Method GET ### Endpoint /api/end_user_files/rename_rules/slugs ### Parameters None ### Request Example GET /api/end_user_files/rename_rules/slugs Headers: x-api-key: ### Response #### Success Response (200) - **slugs** (array of strings) - A list of file rename rule slugs #### Response Example [ "rule_slug_1", "rule_slug_2", "rule_slug_3" ] ``` -------------------------------- ### POST /rules Source: https://docs.herondata.io/api-reference/rules/update-rule-by-heron_id Create a new rule to monitor specific financial metrics for end users based on defined selectors and thresholds. ```APIDOC ## POST /rules ### Description Creates a new rule for evaluating financial metrics. Rules use selectors to target specific end users and compare metrics against numeric or string thresholds. ### Method POST ### Endpoint /rules ### Parameters #### Request Body - **name** (string) - Optional - Description of the rule for webhook reference. - **selector** (object) - Optional - Key-value pairs defining which end users to apply the rule to (AND condition). - **value** (number) - Optional - Numeric threshold to compare against a metric. - **value_str** (string) - Optional - String threshold to compare against a metric. ### Request Example { "name": "notify_if_debt_investment_count_gt_0_last_180d", "selector": { "is_portfolio": true }, "value": 42.42 } ### Response #### Success Response (200) - **status** (string) - Confirmation of rule creation. #### Response Example { "status": "success" } ``` -------------------------------- ### Get File Rename Rules (OpenAPI) Source: https://docs.herondata.io/api-reference/enduserfiles/get-file-rename-rules This OpenAPI specification defines the GET endpoint for retrieving file rename rules. It outlines the request parameters, response structure, and authentication methods required. The response includes details like file class, name template, and enablement status. ```yaml openapi: 3.0.0 info: contact: email: support@herondata.io name: Support title: Heron Data API version: '2021-07-19' servers: - description: Production url: https://app.herondata.io security: - ApiKeyAuth: - key_XXX externalDocs: description: Read Tutorial url: https://docs.herondata.io/ paths: /api/end_user_files/rename_rules: get: tags: - EndUserFiles summary: Get file rename rules description: Retrieve all file rename rules for the current user. responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/GetFileRenameRulesSchema' type: array description: A list of file rename rules security: - ApiKeyAuth: [] components: schemas: GetFileRenameRulesSchema: properties: end_user_file_class: type: string file_name_template: type: string heron_id: type: string is_enabled: type: boolean variables: items: $ref: '#/components/schemas/VariableDefinition' type: array required: - end_user_file_class - file_name_template - is_enabled type: object VariableDefinition: properties: description: type: string examples: items: type: string type: array key: type: string name: type: string required: - description - examples - key - name type: object securitySchemes: ApiKeyAuth: in: header name: x-api-key type: apiKey ``` -------------------------------- ### GET /api/rules/ Source: https://docs.herondata.io/api-reference/rules/get-rules Retrieves a list of all available underwriting rules configured within the Heron system. ```APIDOC ## GET /api/rules/ ### Description Read all available rules configured in the Heron system. This endpoint returns an array of rule objects containing conditions, metrics, and metadata. ### Method GET ### Endpoint /api/rules/ ### Parameters #### Path Parameters - None #### Query Parameters - None #### Request Body - None ### Request Example GET /api/rules/ ### Response #### Success Response (200) - **rules** (array) - A list of rule objects. #### Response Example { "rules": [ { "heron_id": "rul_8pk4nySEzZq2tYxbQeHJLV", "condition": "equal", "date_range": "last_180_days", "group": "data_quality_datasource", "metric_label": "data_volume", "created": "2026-02-09T22:51:27.044122", "last_updated": "2026-03-23T22:51:27.044163" } ] } ``` -------------------------------- ### Get EndUser ISO Applications Source: https://docs.herondata.io/api-reference/isoapplication/get-enduser-iso-applications Retrieves all ISO applications for a given end user. ```APIDOC ## GET /enduser/applications ### Description Get all ISO applications for an end user. ### Method GET ### Endpoint /enduser/applications ### Parameters #### Query Parameters - **userId** (string) - Required - The unique identifier for the end user. ### Request Example ``` GET /enduser/applications?userId=user123 ``` ### Response #### Success Response (200) - **applications** (array) - A list of ISO applications. - **appId** (string) - The unique identifier for the application. - **appName** (string) - The name of the application. #### Response Example ```json { "applications": [ { "appId": "app001", "appName": "Example App 1" }, { "appId": "app002", "appName": "Example App 2" } ] } ``` ``` -------------------------------- ### GET /metrics Source: https://docs.herondata.io/api-reference/rules/create-a-single-rule Retrieves a list of available financial metrics and ratios, such as outflow-to-revenue ratios, balance velocity, and cashflow averages. ```APIDOC ## GET /metrics ### Description Retrieves the calculated financial metrics for an account, including various ratio comparisons and balance statistics. ### Method GET ### Endpoint /metrics ### Parameters #### Query Parameters - **account_id** (string) - Required - The unique identifier for the account. ### Response #### Success Response (200) - **heron_score** (number) - The calculated creditworthiness score. - **latest_balance** (number) - The most recent account balance. - **net_operating_cashflow** (number) - The net operating cashflow value. #### Response Example { "heron_score": 750, "latest_balance": 15000.50, "net_operating_cashflow": 2500.00 } ``` -------------------------------- ### GET /api/positions/{position_heron_id}/transactions Source: https://docs.herondata.io/api-reference/positions/get-transactions-for-a-specific-position Fetches investment and repayment transactions for a specified financial position using its unique Heron ID. ```APIDOC ## GET /api/positions/{position_heron_id}/transactions ### Description Returns investment and repayment transactions for a specific position. ### Method GET ### Endpoint /api/positions/{position_heron_id}/transactions ### Parameters #### Path Parameters - **position_heron_id** (string) - Required - The position heron ID ### Request Example ```json { "example": "" } ``` ### Response #### Success Response (200) - **investment_transactions** (array) - List of investment transactions. - **position_heron_id** (string) - The unique identifier for the position. - **repayment_transactions** (array) - List of repayment transactions. - **reversal_transactions** (array) - List of reversal transactions. #### Response Example ```json { "investment_transactions": [ { "amount": { "amount": 1234.56, "currency": "USD" }, "description": "Initial investment", "heron_id": "inv_tx_123", "timestamp": "2023-10-27T10:00:00Z" } ], "position_heron_id": "pos_abc", "repayment_transactions": [ { "amount": { "amount": 500.00, "currency": "USD" }, "description": "Partial repayment", "heron_id": "rep_tx_456", "timestamp": "2023-10-27T11:00:00Z" } ], "reversal_transactions": [] } ``` ``` -------------------------------- ### GET /metrics Source: https://docs.herondata.io/api-reference/rules/update-rule-by-heron_id Retrieve available financial metrics and balance calculations supported by the Heron Data platform. ```APIDOC ## GET /metrics ### Description Returns a list of available financial metrics, including ratios (e.g., travel_to_other_expenses_ratio), balance statistics (e.g., latest_balance, balance_average), and cashflow indicators. ### Method GET ### Endpoint /metrics ### Parameters None ### Request Example GET /metrics ### Response #### Success Response (200) - **metrics** (array) - List of available metric keys. #### Response Example { "metrics": [ "travel_to_other_expenses_ratio", "latest_balance", "heron_score", "debt_service_coverage_ratio" ] } ``` -------------------------------- ### GET /api/categories Source: https://docs.herondata.io/api-reference/categories/get-categories Retrieves a list of all available financial categories. This endpoint is useful for understanding the structure of financial data and for filtering or categorizing transactions. ```APIDOC ## GET /api/categories ### Description Get available categories. ### Method GET ### Endpoint /api/categories ### Parameters #### Query Parameters None #### Request Body None ### Request Example ```json { "example": "No request body needed for this endpoint." } ``` ### Response #### Success Response (200) - **categories** (array) - A list of category objects. - **categories[].analytics_group** (string) - The analytics group of the category. Enum: ["revenue", "cost_of_goods_sold", "operational_expenses", "tax_expenses", "intra_company", "debt", "equity", "other_income", "special_items", "other", "null"] - **categories[].created** (string) - Timestamp for when the category was created (format: date-time). - **categories[].description** (string) - Description of the category. - **categories[].heron_id** (string) - Unique ID of the category generated by Heron Data. - **categories[].label** (string) - The label of the category. #### Response Example ```json { "categories": [ { "analytics_group": "revenue", "created": "2026-03-23T22:51:22.258986", "description": "Rent for offices, workspaces or storage facilities", "heron_id": "ctg_VrL2p9Q94m6vTd4krBREro", "label": "Rent" } ] } ``` #### Error Response (401) - **description**: Unauthorized ``` -------------------------------- ### Get EndUser ISO Applications - OpenAPI Specification Source: https://docs.herondata.io/api-reference/isoapplication/get-enduser-iso-applications This OpenAPI 3.0.0 specification defines the GET endpoint for retrieving all ISO applications for a given end user. It includes details on request parameters, response schemas, and authentication methods. The endpoint requires an API key for authentication and returns a list of ISO applications with their associated metadata. ```yaml openapi: 3.0.0 info: contact: email: support@herondata.io name: Support title: Heron Data API version: '2021-07-19' servers: - description: Production url: https://app.herondata.io security: - ApiKeyAuth: - key_XXX externalDocs: description: Read Tutorial url: https://docs.herondata.io/ paths: /api/end_users/{end_user_id_or_heron_id}/iso_applications: get: tags: - ISOApplication summary: Get EndUser ISO Applications description: Get all ISO applications for an end user parameters: - in: path name: end_user_id_or_heron_id required: true schema: type: string responses: '200': content: application/json: schema: items: $ref: '#/components/schemas/GetIsoApplicationSchema' type: array description: OK security: - ApiKeyAuth: [] components: schemas: GetIsoApplicationSchema: properties: created: format: date-time readOnly: true type: string end_user_heron_id: description: >- The heron_id of the end_user associated with the iso application, if available readOnly: true type: string end_user_id: description: >- The end_user_id of the end_user associated with the iso application, if available readOnly: true type: string field_validations: items: $ref: '#/components/schemas/IsoApplicationFieldValidation' type: array filename: description: The original filename of the ISO application form example: iso_app.pdf type: string heron_id: description: The ISO application's heron_id example: iso_6hBjQT9k6KP2rLCXwjUJff type: string processing_status: description: The processing status of the file. enum: - new - processing - processed - failed example: processed type: string quality_status: description: >- The overall field validation results. 'fully_matched' indicated all field validations have passed. 'review_required' indicates one or more field validations failed. enum: - fully_matched - review_required - null example: fully_matched nullable: true type: string result: additionalProperties: $ref: '#/components/schemas/IsoApplicationFieldResult' description: >- The extracted keys/values from the form, normalised to Heron's field schema. Keys will only be present in results if they are found in the original file. For a full list of fields, see the documentation. type: object source_email: allOf: - $ref: '#/components/schemas/EndUserEmail' description: Original email that contained ISO application, if applicable nullable: true readOnly: true required: - filename - heron_id - processing_status - quality_status type: object IsoApplicationFieldValidation: properties: failure_reason: nullable: true type: string field_name: type: string result: enum: - passed - failed - not_applicable example: passed type: string validation_type: type: string required: - failure_reason - field_name - result - validation_type type: object IsoApplicationFieldResult: properties: document_field_name: description: The field's original name in the source document example: Company Legal Name type: string is_empty: description: Whether the value is empty example: false type: boolean value: description: The value extracted from the document for the current field example: Heron Data Ltd type: string value_confidence: description: OCR confidence of the extracted value example: 0.99 nullable: true type: number required: - document_field_name - is_empty - value - value_confidence type: object EndUserEmail: properties: date_sent: format: date-time type: string date_sent_string: type: string from_address: type: string from_address_domain: ``` -------------------------------- ### GET /api/end_users/{end_user_heron_id}/entities Source: https://docs.herondata.io/api-reference/enduserentity/get-the-materialised-end-user-entities-for-an-end-user Retrieves a list of materialised end-user entities for a specific end user, including their attributes and sources. ```APIDOC ## GET /api/end_users/{end_user_heron_id}/entities ### Description Fetches the materialised end user entities for a given end user. This endpoint provides detailed information about entities associated with an end user, including their attributes, data types, and sources. ### Method GET ### Endpoint /api/end_users/{end_user_heron_id}/entities ### Parameters #### Path Parameters - **end_user_heron_id** (string) - Required - The unique identifier for the end user. #### Query Parameters None #### Request Body None ### Request Example None ### Response #### Success Response (200) - **display_order** (integer) - The order in which to display the entity. - **entity_heron_id** (string) - The unique identifier for the entity. - **entity_name** (string) - The name of the entity. - **is_list** (boolean) - Indicates if the entity is a list. - **materialised_attributes** (array) - A list of materialised attributes for the entity. - **attribute_heron_id** (string) - The unique identifier for the attribute. - **attribute_name** (string) - The name of the attribute. - **attribute_type** (enum) - The data type of the attribute (float, int, decimal, string, date, datetime, bool). - **display_order** (integer) - The order in which to display the attribute. - **materialised_sources** (array) - A list of sources for the attribute. - **source** (object) - Details about the data source. - **heron_id** (string, nullable) - The unique identifier for the source. - **sort_order** (integer) - The order of the source. - **source_config** (object) - Configuration details for the source. - **source_type** (enum) - The type of the source (parsed_end_user_file, api, rel_6, end_user_enricher, company_attribute, static_value, end_user_query, broker_submission_api). - **source_data** (object) - Additional data from the source. - **timestamp** (string) - The timestamp when the data was recorded. - **value** (any) - The value of the attribute from this source. - **selected_source** (object, nullable) - The selected source for the attribute. #### Response Example ```json [ { "display_order": 1, "entity_heron_id": "entity_123", "entity_name": "User Profile", "is_list": false, "materialised_attributes": [ { "attribute_heron_id": "attr_456", "attribute_name": "Email", "attribute_type": "string", "display_order": 1, "materialised_sources": [ { "source": { "heron_id": "source_abc", "sort_order": 1, "source_config": {}, "source_type": "parsed_end_user_file" }, "source_data": {}, "timestamp": "2023-10-27T10:00:00Z", "value": "user@example.com" } ], "selected_source": { "heron_id": "source_abc", "sort_order": 1, "source_config": {}, "source_type": "parsed_end_user_file" } } ] } ] ``` ``` -------------------------------- ### POST /api/rules/ Source: https://docs.herondata.io/api-reference/rules/create-a-single-rule Create a new underwriting rule to trigger a 'end_user.review_required' webhook when specific metric conditions are met. ```APIDOC ## POST /api/rules/ ### Description Create a new rule to send a 'end_user.review_required' webhook after processing if the rule condition evaluates to true. ### Method POST ### Endpoint /api/rules/ ### Parameters #### Request Body - **rule** (object) - Required - The rule definition object containing condition, date_range, metric_label, and group. ### Request Example { "rule": { "condition": "equal", "date_range": "last_180_days", "metric_label": "data_volume", "group": "data_quality_datasource" } } ### Response #### Success Response (201) - **rule** (object) - The created rule object including system-generated fields like heron_id, created, and last_updated. #### Response Example { "rule": { "heron_id": "rul_8pk4nySEzZq2tYxbQeHJLV", "condition": "equal", "date_range": "last_180_days", "metric_label": "data_volume", "group": "data_quality_datasource", "created": "2026-02-09T22:51:27.044122", "last_updated": "2026-03-23T22:51:27.044163" } } ``` -------------------------------- ### GET /api/end_users/{end_user_id_or_heron_id}/recurring_transactions_report Source: https://docs.herondata.io/api-reference/endusercalculations/get-enduser-recurring-transactions-report Retrieves a report of recurring transactions grouped by merchant or counterparty for a specific end user. ```APIDOC ## GET /api/end_users/{end_user_id_or_heron_id}/recurring_transactions_report ### Description Get a report of recurring transactions grouped by merchant or counterparty for an end user. ### Method GET ### Endpoint /api/end_users/{end_user_id_or_heron_id}/recurring_transactions_report ### Parameters #### Path Parameters - **end_user_id_or_heron_id** (string) - Required - The unique identifier for the end user. #### Query Parameters - **account_ids** (array) - Optional - Account ids to include in the report, if not provided, all accounts are included. ### Request Example GET /api/end_users/user_123/recurring_transactions_report?account_ids=1234 ### Response #### Success Response (200) - **avg_amount** (object) - The average transaction amount. - **avg_confidence** (number) - The confidence score of the recurring pattern. - **counterparty** (string) - The name of the counterparty. - **frequency** (string) - The identified frequency (e.g., monthly, weekly). - **merchant_name** (string) - The name of the merchant. - **transactions** (array) - List of individual transactions associated with this recurring pattern. #### Response Example [ { "merchant_name": "Netflix", "frequency": "monthly", "avg_amount": { "amount": 15.99, "currency": "USD" }, "avg_confidence": 0.98 } ] ``` -------------------------------- ### Get EndUser Recurring Transactions Report via OpenAPI Source: https://docs.herondata.io/api-reference/endusercalculations/get-enduser-recurring-transactions-report This OpenAPI specification defines the GET request to retrieve recurring transactions for a specific end user. It supports filtering by account IDs and returns a detailed report including merchant information, transaction frequency, and individual transaction records. ```yaml openapi: 3.0.0 info: title: Heron Data API version: '2021-07-19' paths: /api/end_users/{end_user_id_or_heron_id}/recurring_transactions_report: get: summary: Get EndUser recurring transactions report parameters: - in: path name: end_user_id_or_heron_id required: true schema: type: string - in: query name: account_ids required: false schema: type: array items: type: string responses: '200': description: OK content: application/json: schema: type: array items: $ref: '#/components/schemas/EndUserRecurringTransactionsReport' ``` -------------------------------- ### Create End User via OpenAPI Source: https://docs.herondata.io/api-reference/endusers/create-enduser Defines the POST endpoint for creating a new end user. Requires an end_user_id and accepts optional fields like name and portfolio status. ```yaml paths: /api/end_users: post: tags: - EndUsers summary: Create EndUser description: Create a new end user. If transactions have previously been sent for this `end_user_id`, use `PUT end_users` to update instead. requestBody: content: application/json: schema: properties: end_user: $ref: '#/components/schemas/EndUserPostParams' type: object required: true responses: '201': content: application/json: schema: properties: end_user: $ref: '#/components/schemas/EndUser' type: object description: OK ``` -------------------------------- ### Post EndUserFile V2 Source: https://docs.herondata.io/api-reference/enduserfiles/post-enduserfile-v2 Uploads a file to an end user and asynchronously classifies its type. After uploading, you can call the `/start_workflow` endpoint to trigger downstream processing. ```APIDOC ## POST /enduserfile/v2 ### Description Upload file to an end user & asynchronously classify its type. After uploading, call the `/start_workflow` endpoint to trigger downstream processing (parsing, bank statement extraction, etc.). ### Method POST ### Endpoint /enduserfile/v2 ### Parameters #### Path Parameters None #### Query Parameters None #### Request Body - **file** (file) - Required - The file to upload. - **user_id** (string) - Required - The ID of the end user. ### Request Example ```json { "file": "", "user_id": "user_123" } ``` ### Response #### Success Response (200) - **file_id** (string) - The ID of the uploaded file. - **status** (string) - The status of the file upload. #### Response Example ```json { "file_id": "file_abc789", "status": "uploaded" } ``` ``` -------------------------------- ### Get Parsed Submissions for an End User Source: https://docs.herondata.io/api-reference/parsedendusersubmission/get-parsed-submissions-for-an-end-user Retrieves a list of parsed submissions associated with a given end user's Heron ID. ```APIDOC ## GET /api/submission_parsers/{end_user_heron_id} ### Description Retrieves parsed submissions for a specific end user identified by their Heron ID. ### Method GET ### Endpoint /api/submission_parsers/{end_user_heron_id} ### Parameters #### Path Parameters - **end_user_heron_id** (string) - Required - The heron_id of the end user whose submissions are to be fetched. ### Request Example ```json { "example": "" } ``` ### Response #### Success Response (200) - **end_user_heron_id** (string) - The Heron ID of the end user. - **result** (object) - An object containing the parsed submission results. - **status** (string) - The status of the submission parsing (e.g., 'success', 'failed'). - **submission_parser** (object) - Details about the submission parser used. - **description** (string) - Description of the submission parser. - **heron_id** (string) - The Heron ID of the submission parser. - **name** (string) - The name of the submission parser. - **slug** (string) - The slug of the submission parser. #### Response Example ```json { "example": "[ { "end_user_heron_id": "user_123", "result": { "field1": "value1", "field2": 123 }, "status": "success", "submission_parser": { "description": "Standard parser", "heron_id": "parser_abc", "name": "Standard", "slug": "standard" } } ]" } ``` ``` -------------------------------- ### GET /api/integrations/{heron_id}/links Source: https://docs.herondata.io/api-reference/integrations/get-integrationlinks-by-integration Retrieves a list of IntegrationLinks associated with a specific Integration. The results can be filtered by an end user ID or Heron ID. ```APIDOC ## GET /api/integrations/{heron_id}/links ### Description Get a list of IntegrationLinks for an Integration filtered by end user. ### Method GET ### Endpoint /api/integrations/{heron_id}/links ### Parameters #### Path Parameters - **heron_id** (string) - Required - The Integration's heron_id #### Query Parameters - **end_user_id_or_heron_id** (string) - Required - Return only IntegrationLinks for that end user ### Request Example ```yaml # No request body for GET request ``` ### Response #### Success Response (200) - **links** (array) - An array of IntegrationLinkSchema objects. #### Response Example ```json { "links": [ { "access_token": "access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6", "created": "2020-01-01T00:00:00Z", "end_user_id": "78f646f2-e2f1-4cb5-aa5a-fb0721d55c61", "end_user_name": "Acme Corp", "item_id": "M5eVJqLnv3tbzdngLDp9FL5OlDNxlNhlE55op", "last_successful_sync": "2020-01-01T00:00:00Z", "last_updated": "2020-01-01T00:00:00Z", "status": "active", "status_message": null, "type": "plaid_assets_report" } ] } ``` ### Components #### IntegrationLinkSchema - **access_token** (string) - Required - The generated token that grants access to the bank (this is encrypted in transit and at-rest with a custom key). - **created** (string) - The date and time when the integration link was created in Heron system. - **end_user_id** (string) - Required - A unique identifier for your end user (customer) generated by you. - **end_user_name** (string) - An human readable name for this end user, like the company legal name. - **item_id** (string) - Required - Unique identifier for each bank connection made by your end users. In Plaid this is the 'item_id'. - **last_successful_sync** (string) - The date and time when the integration link was last successfully synced. - **last_updated** (string) - The date and time when the integration link was last updated in Heron system. - **status** (string) - The integration link status. Possible values: `pending`, `active`, `syncing`, `erroring`, `sync_disabled`, `deleted_in_plaid`. - **status_message** (string) - A message describing the 'erroring' status of the integration link. - **type** (string) - The integration link type, inherited from the integration: `plaid_assets_report` or `plaid_integration`. ### Security - ApiKeyAuth: Requires an `x-api-key` header. ``` -------------------------------- ### POST /api/integrations Source: https://docs.herondata.io/api-reference/integrations/create-an-integration Create a new integration with a third-party provider like Plaid by providing the necessary authentication credentials and configuration. ```APIDOC ## POST /api/integrations ### Description Create a new integration instance. This endpoint allows you to connect services like Plaid by providing client credentials and configuration settings. ### Method POST ### Endpoint /api/integrations ### Parameters #### Request Body - **integration** (object) - Required - The integration configuration object. - **name** (string) - Required - A name for your integration (e.g., "Plaid Prod"). - **type** (string) - Required - The integration type/provider name. - **resource** (string) - Required - The specific resource type (e.g., transaction, assets_report). - **client_id** (string) - Optional - Client ID for API access. - **client_secret** (string) - Optional - Client Secret for API access. - **base_url** (string) - Optional - Base URL of the API integration. - **webhook_url** (string) - Optional - URL for receiving webhooks. - **client_auth** (object) - Optional - Client-specific authentication settings. ### Request Example { "integration": { "name": "Plaid Prod", "type": "plaid", "resource": "transaction", "client_id": "your_client_id", "client_secret": "your_client_secret" } } ### Response #### Success Response (201) - **integration** (object) - The created integration object including the generated `heron_id`. #### Response Example { "integration": { "heron_id": "int_123456789", "name": "Plaid Prod", "type": "plaid", "resource": "transaction" } } ``` -------------------------------- ### Get Specific Policy Upload Job Source: https://docs.herondata.io/api-reference/get-specific-policy-upload-job Retrieves the status and details of a specific policy upload job using its unique Heron ID. ```APIDOC ## GET /api/broker_funder_policies/upload/{job_heron_id}/ ### Description Fetches the details of a specific policy upload job identified by its Heron ID. ### Method GET ### Endpoint /api/broker_funder_policies/upload/{job_heron_id}/ ### Parameters #### Path Parameters - **job_heron_id** (string) - Required - The unique Heron ID of the upload job. ### Request Example ```json { "example": "" } ``` ### Response #### Success Response (200) - **heron_id** (string) - The unique identifier for the upload job. - **status** (string) - The current status of the job (e.g., 'queued', 'processing', 'completed', 'failed'). - **created** (string) - Timestamp when the job was created. - **started_at** (string) - Timestamp when the job started processing. - **finished_at** (string) - Timestamp when the job finished processing. - **filename** (string) - The name of the file uploaded for the job. - **total_count** (integer) - The total number of records in the job. - **processed_count** (integer) - The number of records processed so far. - **success_count** (integer) - The number of records processed successfully. - **error_count** (integer) - The number of records that resulted in an error. - **error_message** (string) - A general error message if the job failed. - **error_details** (object) - Detailed error information for failed records. - **results_summary** (object) - A summary of the job results. - **last_updated** (string) - Timestamp of the last update to the job. #### Response Example ```json { "heron_id": "job_abc123", "status": "completed", "created": "2023-10-27T10:00:00Z", "started_at": "2023-10-27T10:05:00Z", "finished_at": "2023-10-27T10:15:00Z", "filename": "policies_batch_1.csv", "total_count": 1000, "processed_count": 1000, "success_count": 995, "error_count": 5, "error_message": null, "error_details": { "row_5": "Invalid policy number format" }, "results_summary": { "policies_added": 990, "policies_updated": 5 }, "last_updated": "2023-10-27T10:15:00Z" } ``` #### Error Response (404) - **description**: Upload job not found. ``` -------------------------------- ### POST /api/end_users/{end_user_id_or_heron_id}/iso_application_form Source: https://docs.herondata.io/api-reference/isoapplication/upload-an-iso-application-pdf-for-for-an-end-user Uploads an ISO application PDF for a specific end user. The file is processed asynchronously, and the returned heron_id can be used to track scrubbing results. ```APIDOC ## POST /api/end_users/{end_user_id_or_heron_id}/iso_application_form ### Description Use this endpoint to upload an ISO application PDF. Once uploaded, the file will be automatically scrubbed asynchronously. You can use the returned iso_application heron_id to fetch the scrubbing results. ### Method POST ### Endpoint /api/end_users/{end_user_id_or_heron_id}/iso_application_form ### Parameters #### Path Parameters - **end_user_id_or_heron_id** (string) - Required - The unique identifier for the end user. #### Request Body - **file** (binary) - Required - The ISO application PDF file to upload. ### Request Example { "file": "[binary_data]" } ### Response #### Success Response (200) - **heron_id** (string) - Unique ID for the file. - **iso_application** (object) - Object containing the iso_application heron_id and processing status. - **filename** (string) - Original name of the uploaded file. - **num_pages** (integer) - Number of pages in the document. #### Response Example { "heron_id": "file_12345", "iso_application": { "heron_id": "iso_6hBjQT9k6KP2rLCXwjUJff", "processing_status": "processed" }, "filename": "application.pdf", "num_pages": 5 } ```