Skip to main content

Heron Data API (2021-07-19)

Download OpenAPI specification:Download

Categories

Get categories

Get available categories

Authorizations:
BasicAuth

Responses

Response samples

Content type
application/json
{
  • "categories": [
    ]
}

CrmIntegrations

List CRM Integrations

Get a list of CRM Integrations

Authorizations:
BasicAuth

Responses

Response samples

Content type
application/json
{
  • "crm_integrations": [
    ]
}

Create a CRM integration

Create a CRM integration, e.g., with Salesforce

Authorizations:
BasicAuth
Request Body schema: application/json
auth
required
object

Authentication details for the CRM integration

required
object

The configuration for the CRM integration

instance_url
required
string <url>

Base URL of the CRM integration

is_enabled
boolean
Default: true

Whether the integration is enabled

is_live
boolean
Default: true

Whether the integration is live

provider
required
string
Enum: "salesforce" "lendsmart" "orgmeter" "centrex" "lendsaas" "quickbase" "zoho" "origami" "in_memory"

The CRM provider

secret
required
string

A secret key for the CRM integration

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "auth": { },
  • "config": {
    },
  • "is_enabled": true,
  • "is_live": true,
  • "provider": "salesforce",
  • "secret": "string"
}

Response samples

Content type
application/json
{
  • "crm_integration": {
    }
}

Patch a CRM integration

patch a CRM integration

Authorizations:
BasicAuth
path Parameters
heron_id
required
string
Request Body schema: application/json
auth
object

Authentication details for the CRM integration

object

The configuration for the CRM integration

instance_url
string <url>

Base URL of the CRM integration

is_enabled
boolean
Default: true

Whether the integration is enabled

is_live
boolean
Default: true

Whether the integration is live

provider
string
Enum: "salesforce" "lendsmart" "orgmeter" "centrex" "lendsaas" "quickbase" "zoho" "origami" "in_memory"

The CRM provider

secret
string

A secret key for the CRM integration

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "auth": { },
  • "config": {
    },
  • "is_enabled": true,
  • "is_live": true,
  • "provider": "salesforce",
  • "secret": "string"
}

Response samples

Content type
application/json
{
  • "config": {
    },
  • "heron_id": "string",
  • "is_enabled": true,
  • "is_live": true,
  • "provider": "salesforce"
}

EndUserDataSourceAccounts

Update a data source account

Update a data source account

Authorizations:
BasicAuth
path Parameters
heron_id
required
string
Request Body schema: application/json
is_enabled
boolean

Whether or not the account is enabled. If disabled, hides related transactions from analytics

Responses

Request samples

Content type
application/json
{
  • "is_enabled": true
}

Response samples

Content type
application/json
{
  • "account_id": "202348",
  • "anomaly_score": 200,
  • "balances": [
    ],
  • "currency": "USD",
  • "end_date": "2022-01-31",
  • "heron_id": "dso_8pSV4BmMLxnHMMhGZDttsE",
  • "institution_name": "Chase",
  • "is_enabled": true,
  • "max_date": "2022-01-31",
  • "min_date": "2022-01-01",
  • "name": "Checking Account",
  • "num_transactions": 120,
  • "number": "123456789",
  • "owner_name": "John Doe",
  • "reference_id": "account-202348",
  • "start_date": "2022-01-01",
  • "transactions_match_balances": true,
  • "type": "Checking"
}

EndUserDataSources

Update a data source

Update a data source

Authorizations:
BasicAuth
path Parameters
heron_id
required
string
Request Body schema: application/json
is_enabled
boolean
Default: true

Whether or not the data source is enabled. If disabled, hides related transactions from analytics

Responses

Request samples

Content type
application/json
{
  • "is_enabled": true
}

Response samples

Content type
application/json
{
  • "created": "2024-10-16T13:54:00.411963",
  • "data_source_accounts": [
    ],
  • "heron_id": "dso_i3XMoVhUikdb67xGm4CAmt",
  • "is_enabled": true,
  • "last_updated": "2024-11-27T13:54:00.411984",
  • "metadata": {
    },
  • "reference_id": "pdf_oXrrGEe7KYf8JXbdGJ2DoV",
  • "status": "new",
  • "type": "pdf"
}

Get data source account summary

Get a list of data sources accounts & their summarised information for a company

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get data sources

Get a list of data sources for a company

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

EmailTemplates

Get email templates

Read all available templates

Authorizations:
BasicAuth

Responses

Response samples

Content type
application/json
{
  • "rules": [
    ]
}

Create an email template

Create an email template used to send emails conditional on events like policy evaluation

Authorizations:
BasicAuth
Request Body schema: application/json
html_body
required
string

The body of the email to send.

name
required
string [ 3 .. 50 ] characters ^[a-zA-Z0-9_-]+$

Unique name of the email template. Used to match which email template to send. Only alphanumeric characters, underscores, and dashes are allowed.

to_address
string or null <email>
Default: null

The email address to send the email to

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "html_body": "string",
  • "name": "string",
  • "to_address": null
}

Response samples

Content type
application/json
{
  • "email_template": {
    }
}

Patch an email template

Update an email template

Authorizations:
BasicAuth
path Parameters
heron_id
required
string
Request Body schema: application/json
html_body
string

The body of the email to send.

name
string [ 3 .. 50 ] characters ^[a-zA-Z0-9_-]+$

Unique name of the email template. Used to match which email template to send. Only alphanumeric characters, underscores, and dashes are allowed.

to_address
string or null <email>
Default: null

The email address to send the email to

property name*
additional property
any

Responses

Request samples

Content type
application/json
{
  • "html_body": "string",
  • "name": "string",
  • "to_address": null
}

Response samples

Content type
application/json
{
  • "email_template": {
    }
}

EndUsers

Get EndUser emails

Get all emails for all end users associate with this user

Authorizations:
BasicAuth
query Parameters
page
required
integer >= 0
limit
required
integer >= 1

Responses

Response samples

Content type
application/json
{
  • "_meta": {
    },
  • "emails": [
    ]
}

List EndUsers

Get a list of EndUsers

Authorizations:
BasicAuth
query Parameters
order_by
string
Default: "last_updated_desc"
Enum: "last_updated_desc" "last_updated_asc" "created_desc" "created_asc"

Order to return end users by

include_data_sources
boolean
Default: false
Example: include_data_sources=true

Whether the to include data sources for each end user

limit
integer [ 1 .. 10000 ]
Default: 1000

Pagination limit per page

include_scorecard_metrics
boolean
Default: false
Example: include_scorecard_metrics=true

Whether to include scorecard metrics for each end user (under field criteria)

name
string or null
Default: null
Example: name=your_end_user_name

Filter by name associated with end user

heron_id
string or null
Default: null
Example: heron_id=eus_KLJx6iHsJWzSiHuCEUpRi3

Unique ID generated by Heron

page
integer >= 1
Default: 1

Pagination page number

status
string or null
Default: null
Enum: "new" "ready" "processed" "reviewed" "review_requested" "failed"
Example: status=reviewed

Filter by status of end user

end_user_id
string or null
Default: null
Example: end_user_id=your_end_user_id

Filter by ID associated with end_user_id field in transactions

is_portfolio
boolean or null
Default: null
Example: is_portfolio=true

Whether the end user is part of a lending portfolio

Responses

Response samples

Content type
application/json
{
  • "_meta": {
    },
  • "end_users": [
    ]
}

Create EndUser

Create a new end user. If transactions have previously been sent for this end_user_id, use PUT end_users to update instead.

Authorizations:
BasicAuth
Request Body schema: application/json
object (EndUserPostParams)
end_user_id
required
string [ 1 .. 140 ] characters

id defined by user; links to the end_user_id for transactions

is_portfolio
boolean

Whether the end user is part of a lending portfolio

name
string or null <= 128 characters

Name of end user; may help to improve categorisation accuracy

profit_and_loss_layout
any or null

Responses

Request samples

Content type
application/json
{
  • "end_user": {
    }
}

Response samples

Content type
application/json
{
  • "end_user": {
    }
}

Update EndUser

Confirm an end user is ready for async procesing by sending a status of "ready". The end_user_id must have previously been sent with at least one Transaction.

Authorizations:
BasicAuth
Request Body schema: application/json

Dictionary representing an EndUser

object (EndUser)
end_user_id
required
string [ 1 .. 140 ] characters

id defined by user; links to the end_user_id for transactions

is_portfolio
boolean

Whether the end user is part of a lending portfolio

name
string or null <= 128 characters

Name of end user; may help to improve categorisation accuracy

profit_and_loss_layout
any or null
status
string
Enum: "new" "ready" "processed" "reviewed" "review_requested" "failed"

Status of end user; 'ready' triggers async processing, 'review_requested' triggers manual review request

Responses

Callbacks

Request samples

Content type
application/json
{
  • "end_user": {
    }
}

Response samples

Content type
application/json
{
  • "end_user": {
    }
}

Callback payload samples

Callback
POST: $yourWebhookUrl
Content type
application/json
{
  • "created": "2019-08-24T14:15:22Z",
  • "data": {
    },
  • "meta": { },
  • "topic": "string"
}

Delete EndUser by heron_id or end_user_id

Delete an end user. You must delete associated transactions before doing this.

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

Responses

Get EndUser by heron_id or end_user_id

Get an end user using its end_user_id or heron_id

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

Responses

Response samples

Content type
application/json
{
  • "end_user": {
    }
}

Get EndUser emails

Get the emails associated with an end user

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get EndUser information

Get the company details of an end user including loan information

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

Responses

Response samples

Content type
application/json
{
  • "amount_requested": 0,
  • "annual_revenue": 0,
  • "business_start_date": "2019-08-24",
  • "company_billing_address": {
    },
  • "company_email": "string",
  • "company_legal_business_name": "string",
  • "company_phone_number": "string",
  • "company_physical_address": {
    },
  • "company_website": "string",
  • "dba": "string",
  • "federal_tax_id": "string",
  • "industry_type": "string",
  • "loan_purpose": "string",
  • "monthly_revenue": 0,
  • "naics": "string",
  • "owner_1": {
    },
  • "owner_2": {
    },
  • "predicted_industry_probability": 0,
  • "source_type": "iso_application_form",
  • "state_of_incorporation": "string",
  • "type_of_business_entity": "string"
}

Patch EndUser information

Update the end user information

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string
Request Body schema: application/json
amount_requested
number
annual_revenue
number
business_start_date
string <date>
object (Address)
company_email
string
company_legal_business_name
string
company_phone_number
string
object (Address)
company_website
string
dba
string

Doing business as

federal_tax_id
string
industry_type
string
loan_purpose
string
monthly_revenue
number
naics
string
object (Owner)
object (Owner)
predicted_industry_probability
number
source_type
string
Enum: "api" "iso_application_form" "heron_industry_classifier" "rel6_industry_classifier"

Source of the end user information

state_of_incorporation
string
type_of_business_entity
string

Responses

Request samples

Content type
application/json
{
  • "amount_requested": 0,
  • "annual_revenue": 0,
  • "business_start_date": "2019-08-24",
  • "company_billing_address": {
    },
  • "company_email": "string",
  • "company_legal_business_name": "string",
  • "company_phone_number": "string",
  • "company_physical_address": {
    },
  • "company_website": "string",
  • "dba": "string",
  • "federal_tax_id": "string",
  • "industry_type": "string",
  • "loan_purpose": "string",
  • "monthly_revenue": 0,
  • "naics": "string",
  • "owner_1": {
    },
  • "owner_2": {
    },
  • "predicted_industry_probability": 0,
  • "source_type": "iso_application_form",
  • "state_of_incorporation": "string",
  • "type_of_business_entity": "string"
}

Response samples

Content type
application/json
{
  • "amount_requested": 0,
  • "annual_revenue": 0,
  • "business_start_date": "2019-08-24",
  • "company_billing_address": {
    },
  • "company_email": "string",
  • "company_legal_business_name": "string",
  • "company_phone_number": "string",
  • "company_physical_address": {
    },
  • "company_website": "string",
  • "dba": "string",
  • "federal_tax_id": "string",
  • "industry_type": "string",
  • "loan_purpose": "string",
  • "monthly_revenue": 0,
  • "naics": "string",
  • "owner_1": {
    },
  • "owner_2": {
    },
  • "predicted_industry_probability": 0,
  • "source_type": "iso_application_form",
  • "state_of_incorporation": "string",
  • "type_of_business_entity": "string"
}

Enrich transactions of EndUser

Enriches transactions of an end user identified by its end_user_id or heron_id. There is an optional priority parameter that can be set to high to prioritize the enrichment over normal (default) priority. High priority enrichment is only enabled for enterprise-level accounts. Please contact support@herondata.io to upgrade your account.

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string
query Parameters
priority
string
Default: "normal"
Enum: "normal" "high"

Priority for async enrichment

Responses

Response samples

Content type
application/json
{
  • "end_user": {
    }
}

EndUserEmails

Export an end user email as an EML file

Export an end user email as an EML file. Attachments are not included.

Authorizations:
BasicAuth
path Parameters
heron_id
required
string

The heron_id of the email to export

Responses

EndUserFiles

Update the end user file's class

Use this endpoint to change the end user file's class. The file will be reprocessed as the new type.

Authorizations:
BasicAuth
path Parameters
heron_id
required
string
Request Body schema: application/json
file_class
string
Enum: "other" "iso_application_form" "bank_statement" "debt_summary" "email" "invoice" "identity_card" "passport" "trade_license" "registration_certificate" "disclosure_certificate" "drivers_licence_front" "acord_125" "loss_run_report" "driver_list" "fleet_list" "fuel_tax_return" "motor_vehicle_record" "ifta_report" "cab_report" "acord_127" "utility_bill" "supplemental_application" "insurance_policy" "schedule_of_values" "statement_of_values" "acord_825" "acord_838" "acord_137" "acord_other" "pnl_statement" "balance_sheet" "tax_return" "void_check" "brokerage_statement" "inspection_report" "inspection_report_confirmation" "premium_audit" "combined" "money_market_statement" "commercial_financing_contract" "financing_repayment_history" "ucc_filing" "finicity_cashflow_report" "finicity_voe_transactions_report" "salesforce_object_export" "finicity_failed_statement_report"
object or null
reference_id
string

Responses

Request samples

Content type
application/json
{
  • "file_class": "other",
  • "page_classes": {
    },
  • "reference_id": "string"
}

Response samples

Content type
application/json
{
  • "bank_statement": null,
  • "created": "2019-08-24T14:15:22Z",
  • "email": null,
  • "file_class": "other",
  • "filename": "string",
  • "heron_id": "string",
  • "iso_application": {
    },
  • "page_classes": {
    },
  • "parent_heron_id": "string",
  • "parsed_results": [ ],
  • "reference_id": "string"
}

Get EndUserFile as a base64 string

Get the base64 string representation of an end user file

Authorizations:
BasicAuth
path Parameters
heron_id
required
string

The heron_id of the end user file

Responses

Response samples

Content type
application/json
{
  • "file_b64": "string",
  • "mime_type": "string"
}

Trigger async parsing of an end user file

Authorizations:
BasicAuth
path Parameters
heron_id
required
string

The file's heron_id

Request Body schema: application/json
parser_id
required
string
Enum: "DebtPositionEmailParser" "DriversLicenceFrontParser" "LossRunParser" "PnLStatementParser" "BalanceSheetParser" "TaxReturnParser" "VoidCheckParser" "InspectionReportParser" "MoneyMarketStatementParser" "SalesforceObjectJsonParser"

Responses

Request samples

Content type
application/json
{
  • "parser_id": "DebtPositionEmailParser"
}

Get parsed results from uploaded files

Authorizations:
BasicAuth
path Parameters
heron_id
required
string

The file's heron_id

query Parameters
parser_id
string or null

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Trigger splitting a combined end user file into its child files based on its page_classes

Authorizations:
BasicAuth
path Parameters
heron_id
required
string

The file's heron_id

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get EndUserFiles

Get all files for an end user

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Post EndUserFile

Upload file to an end user & asynchronously classify its type

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string
Request Body schema: application/json
file_base64
required
string
file_class
string
Enum: "other" "iso_application_form" "bank_statement" "debt_summary" "email" "invoice" "identity_card" "passport" "trade_license" "registration_certificate" "disclosure_certificate" "drivers_licence_front" "acord_125" "loss_run_report" "driver_list" "fleet_list" "fuel_tax_return" "motor_vehicle_record" "ifta_report" "cab_report" "acord_127" "utility_bill" "supplemental_application" "insurance_policy" "schedule_of_values" "statement_of_values" "acord_825" "acord_838" "acord_137" "acord_other" "pnl_statement" "balance_sheet" "tax_return" "void_check" "brokerage_statement" "inspection_report" "inspection_report_confirmation" "premium_audit" "combined" "money_market_statement" "commercial_financing_contract" "financing_repayment_history" "ucc_filing" "finicity_cashflow_report" "finicity_voe_transactions_report" "salesforce_object_export" "finicity_failed_statement_report"
filename
required
string
reference_id
string or null

Responses

Request samples

Content type
application/json
{
  • "file_base64": "string",
  • "file_class": "other",
  • "filename": "string",
  • "reference_id": "string"
}

Response samples

Content type
application/json
{
  • "bank_statement": null,
  • "created": "2019-08-24T14:15:22Z",
  • "email": null,
  • "file_class": "other",
  • "filename": "string",
  • "heron_id": "string",
  • "iso_application": {
    },
  • "page_classes": {
    },
  • "parent_heron_id": "string",
  • "parsed_results": [ ],
  • "reference_id": "string"
}

Download EndUserFiles

Download all files for an end user as a zip

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

Responses

Download xlsx of parsed results from uploaded files

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

Responses

EndUserCalculations

Get EndUser balance

Get balance for given EndUser on a daily and account granularity

Authorizations:
BasicAuth
query Parameters
timestamp_max
string or null <date-time>
Default: null
Example: timestamp_max=2024-11-26T13:54:00.121341

Deprecated (use date_max instead). Filter for transactions with timestamp earlier than the input value

date_min
string or null <date>
Default: null
Example: date_min=2024-11-27

Filter for transactions with timestamp after the input value (inclusive). It has precedence over timestamp_min

timestamp_min
string or null <date-time>
Default: null
Example: timestamp_min=2024-11-27T13:54:00.121265

Deprecated (use date_min instead). Filter for transactions with timestamp after the input value

date_max
string or null <date>
Default: null
Example: date_max=2024-11-26

Filter for transactions with date earlier than the input value (inclusive). It has precedence over timestamp_max

end_user_heron_id
string or null
Default: null
Example: end_user_heron_id=eus_d4mKHqTQwbYnFYRzm5qRWv

Heron-generated id for end user; either end_user_id or end_user_heron_id is required

end_user_id
string or null
Default: null
Example: end_user_id=your_end_user_id

end_user_id for statistics; either end_user_id or end_user_heron_id is required

include_forecast
boolean
Default: false

If true, forecasts the balances of each account

to_currency
string or null
Enum: "GBP" "USD" "EUR"
Example: to_currency=USD

ISO 4217 currency code to convert to

Responses

Response samples

Content type
application/json
{
  • "daily_balances": [
    ],
  • "forecasted": [
    ],
  • "summary": {
    }
}

Get EndUser forecasts

Get forecast amounts for a given EndUser and category

Authorizations:
BasicAuth
query Parameters
from_date
string or null <date>
Default: null
Example: from_date=2022-01-01

The earliest transaction timestamp date to use in forecasting

category_label
string
Example: category_label=Revenue

Label of category to be forecasted; either category_heron_id or category_label must be present

date_granularity
string
Default: "month"
Enum: "week" "month"
Example: date_granularity=month

Aggregate results over time, i.e., aggregate by week or by month

end_user_heron_id
string or null
Default: null
Example: end_user_heron_id=eus_d4mKHqTQwbYnFYRzm5qRWv

Heron-generated id for end user; either end_user_id or end_user_heron_id is required

to_date
string or null <date>
Default: null
Example: to_date=2022-01-31

The latest transaction timestamp date to use in forecasting

category_heron_id
string
Example: category_heron_id=ctg_UnAdtzJM4RVP7ae6fQefy3

Heron ID of category to be forecasted; either category_heron_id or category_label must be present

end_user_id
string or null
Default: null
Example: end_user_id=your_end_user_id

end_user_id for statistics; either end_user_id or end_user_heron_id is required

to_currency
string or null
Enum: "GBP" "USD" "EUR"
Example: to_currency=USD

ISO 4217 currency code to convert to

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get EndUser statistics

Get summarized statistics for a given EndUser

Authorizations:
BasicAuth
query Parameters
group_by
string
Default: "category"
Enum: "category" "merchant"
Example: group_by=category

Pivot results by merchant or by category

from_date
string or null <date>
Default: null
Example: from_date=2024-11-27

Filter for transactions with timestamp after the input value (as date)

category_heron_ids
Array of strings
Default: []
Example: category_heron_ids=ctg_GGVoy7HeaLVoQJQwvXxJc7&category_heron_ids=ctg_9rGDWMMGZ9p96FD2XAAVuC

Filter by specific categories

date_granularity
string
Default: "month"
Enum: "day" "week" "month" "quarter" "year"
Example: date_granularity=month

Aggregate results over time, e.g., by week or by quarter

end_user_heron_id
string or null
Default: null
Example: end_user_heron_id=eus_d4mKHqTQwbYnFYRzm5qRWv

Heron-generated id for end user; either end_user_id or end_user_heron_id is required

to_date
string or null <date>
Default: null
Example: to_date=2024-11-26

Filter for transactions with timestamp before the input value (as date)

merchant_heron_ids
Array of strings
Default: []
Example: merchant_heron_ids=mrc_47GpqKuBj4KRdMqQfrnWks&merchant_heron_ids=mrc_FMGq9TkyK924ubwzjdT8eo

Filter by specific merchants

end_user_id
string or null
Default: null
Example: end_user_id=your_end_user_id

end_user_id for statistics; either end_user_id or end_user_heron_id is required

to_currency
string or null
Enum: "GBP" "USD" "EUR"
Example: to_currency=USD

ISO 4217 currency code to convert to

Responses

Response samples

Content type
application/json
{
  • "statistics": [
    ]
}

Get EndUser anomalies

Get anomalies for given EndUser given a category label or heron id

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

The end_user_id or heron_id of EndUser to upload

query Parameters
category_label_or_heron_id
required
string
Example: category_label_or_heron_id=Revenue

Label or Heron ID of category to find anomalies for

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get EndUser bank statement summary

Get the bank statement summary by month for an end user

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string
query Parameters
account_ids
Array of strings or null
Default: null
Example: account_ids=1234

Account ids to include in the summary, if not provided, all accounts are included

num_full_calendar_months
integer or null >= 1
Default: null

Number of full calendar months to show in the summary

grouping
string
Default: "by_month"
Enum: "by_month" "by_data_source_account_heron_id" "rolling_30_days_from_last_txn" "rolling_30_days_from_today" "by_month_by_data_source_account_heron_id"

Determines how to group transactions. It supports calendar month (by_month) or rolling 30-day period (from last txns with rolling_30_days_from_last_txn or from today with rolling_30_days_from_today)

Responses

Response samples

Content type
application/json
{
  • "average": {
    },
  • "by_data_source_account_heron_id": {
    },
  • "by_month": {
    },
  • "by_month_by_data_source_account_heron_id": {
    },
  • "grouping": "string",
  • "rolling_30_days_from_last_txn": {
    },
  • "rolling_30_days_from_today": {
    },
  • "total": {
    }
}

Get EndUser metric benchmarks

Get the benchmarks for each metric for an end user

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

Responses

Response samples

Content type
application/json
{
  • "benchmarks": [
    ]
}

Export as a spreadsheet

Export a spreadsheet for an end user containing key metrics and reports

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

Responses

Get EndUser transactions grouped by counterparty or merchant

Get a report of transactions grouped by merchant or counterparty for an end user

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get EndUser Heron Score (beta)

Get Heron Score for end user with a breakdown of the feature group contributions which resulted in the score. The score is calculated for the day of last transaction. This is a beta feature and is subject to change.

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string
query Parameters
min_category_confidence
number or null
Default: null
Example: min_category_confidence=0.8

Minimum company categorisation confidence to calculate Heron Score

date
string or null <date>
Default: null
Example: date=2023-01-19

Cut-off date to consider transactions to for calculating heron score (inclusive)

Responses

Response samples

Content type
application/json
{
  • "data_quality_issues": [
    ],
  • "feature_groups_contributions": {
    },
  • "predicted_at": "2019-08-24T14:15:22Z",
  • "reference_timestamp": "2019-08-24T14:15:22Z",
  • "status": "not_available",
  • "value": 0
}

Get EndUser industry

Predict the industry of the end user based on its name

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

The end_user_id or heron_id of EndUser

query Parameters
naics_code_max_digits
integer [ 2 .. 6 ]
Example: naics_code_max_digits=6

Maximum number of digits in NAICS code

naics_code_min_digits
integer [ 2 .. 6 ]
Example: naics_code_min_digits=2

Minimum number of digits in NAICS code

Responses

Response samples

Content type
application/json
{
  • "label": "Fruit and Vegetable Preserving and Specialty Food Manufacturing",
  • "probability": 0.42,
  • "taxonomy": "naics",
  • "taxonomy_value": "3114"
}

Get EndUser merchant summary

Get the summary of transactions by merchant for an end user for given categories or analytics groups

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string
query Parameters
account_ids
Array of strings or null
Default: null
Example: account_ids=1234

Account ids to include in the summary, if not provided, all accounts are included

analytics_group
Array of strings or null or null non-empty
Enum: "revenue" "cost_of_goods_sold" "operational_expenses" "tax_expenses" "intra_company" "debt" "equity" "other_income" "special_items" "other"
Example: analytics_group=debt
group_by_counterparty_txn_clusters
boolean
Default: false

Whether to group by counterparty transaction clusters

category_label_or_heron_id
Array of strings or null non-empty

Responses

Response samples

Content type
application/json
{
  • "by_merchant_summary": [
    ]
}

Get EndUser named dates

Get the named dates associated with an end user, e.g., date of last transaction

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

Responses

Response samples

Content type
application/json
{
  • "named_dates": [
    ]
}

Get EndUser cashflow P&L

Calculates the cashflow profit & loss table for an end user, based on the layout defined (if any)

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string
query Parameters
currency
string or null
Enum: "GBP" "USD" "EUR"
Example: currency=USD

ISO 4217 currency code for balance

from_date
string or null <date>
Default: null
Example: from_date=2022-01-01

The earliest transaction timestamp date to use

dates_ascending
boolean
Default: false

If true, dates are sorted left to right by ascending order. False by default, i.e., by default sorted in descending date order so more recent dates are first

to_date
string or null <date>
Default: null
Example: to_date=2022-01-31

The latest transaction timestamp date to use

Responses

Response samples

Content type
application/json
{
  • "dates": [
    ],
  • "sections": [
    ]
}

Update EndUser P&L layout

Update the profit and loss layout for the end user, which determines how the profit and loss table is calculated

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string
Request Body schema: application/json
category_labels
required
Array of strings non-empty

List of category labels to assign to a different section

section_slug
required
string

Slug of section to assign labels to

Responses

Request samples

Content type
application/json
{
  • "category_labels": [
    ],
  • "section_slug": "operational_expenses"
}

Response samples

Content type
application/json
{
  • "sections": [
    ]
}

Get EndUser recurring transactions report

Get a report of recurring transactions grouped by merchant or counterparty for an end user

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string
query Parameters
account_ids
Array of strings or null
Default: null
Example: account_ids=1234

Account ids to include in the report, if not provided, all accounts are included

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get EndUser scorecard

Get scorecard metrics and rule violations for a user

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string
query Parameters
date
string or null <date>
Default: null
Example: date=2023-01-19

Cut-off date to consider transactions to for calculating scorecard (inclusive)

named_date
string or null
Default: null
Enum: "end_user_created" "end_user_last_updated" "last_transaction" "end_user_last_enriched" "last_data_source_end_date_or_transaction_timestamp" "custom_date"
Example: named_date=end_user_created

Qualitative description for date to calculate scorecard

Responses

Response samples

Content type
application/json
{
  • "metrics": [
    ],
  • "rule_violations": [
    ]
}

Request EndUser scorecard

Request scorecard metrics for a date and end user

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string
query Parameters
date
required
string <date>
Example: date=2023-01-19

Cut-off date to consider transactions to for calculating scorecard (inclusive)

Responses

Response samples

Content type
application/json
{
  • "message": "string"
}

EndUserAttributes

Get EndUser attribute values

Get calculated attribute values for a given end user

Authorizations:
BasicAuth
path Parameters
end_user_heron_id
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

EnrichmentFeedback

Bulk create category feedback for an end user

Provide bulk feedback on Transaction Categories for a specified end user

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string
query Parameters
high_priority
boolean
Default: false

Whether to process the feedback with high priority

Request Body schema: application/json

A list of objects containing a Transaction's heron id and the suggested Category. If you provide a heron_id for Category, you don't need to provide other fields. If heron_id is provided, we disregard label.

required
object (CategoryFeedback)
source
string or null <= 120 characters
Default: null

your identifier for where the feedback comes from e.g. bob_the_underwriter

transaction_heron_ids
Array of strings
Default: []

List of transaction heron IDs

transaction_reference_ids
Array of strings
Default: []

List of transaction reference IDs

Responses

Request samples

Content type
application/json
{
  • "category": {
    },
  • "source": null,
  • "transaction_heron_ids": [ ],
  • "transaction_reference_ids": [ ]
}

Response samples

Content type
application/json
{
  • "num_annotations": 1
}

Create category, merchant feedback

Provide feedback on a Transaction's Categories and Merchants

Authorizations:
BasicAuth
path Parameters
heron_id
required
string

Transaction heron_id

Request Body schema: application/json

A partial Transaction object with the suggested Category and/or Merchant. If you provide a heron_id for Category or Merchant, you don't need to provide other fields. If you don't know the Merchant heron_id nor name, you can just send the is_correct boolean. If heron_id is provided, we disregard name and label. If is_correct is set to true, we disregard all other Merchant fields.

object (TransactionFeedbackSchema)
object
Default: {}
object
Default: {}
source
string or null <= 120 characters
Default: null

your identifier for where the feedback comes from e.g. bob_the_underwriter

Responses

Request samples

Content type
application/json
{
  • "transaction": {
    }
}

EndUserFinancials

Get EndUser's combined financials

Get the combined P&L & Balance Sheet data from financial documents for an EndUser

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string
query Parameters
grouping
string or null
Enum: "by_month" "by_quarter" "by_year"

Responses

Response samples

Content type
application/json
{
  • "by_category": [
    ],
  • "by_sub_category": [
    ],
  • "currency": "string",
  • "grouping": "by_month",
  • "metrics": [
    ]
}

EndUserRules

Evaluate all rules for an end user

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Integrations

Send a Finicity Connect email to an end user

Create a Finicity Link for an end user and send a Finicity Connect email to the end user to initiate the connection. The end user must have sufficient end user information to create the link.

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

Responses

Trigger a cashflow report generation for an end user

Request a cashflow report generation for an end user. When the report is ready it will be available as EndUserFile.

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string
Request Body schema: application/json
applicant_is_personal_guarantor
required
boolean
for_cra_purpose
required
boolean
user_type
required
string
Enum: "personal" "business"

Responses

Request samples

Content type
application/json
{
  • "applicant_is_personal_guarantor": true,
  • "for_cra_purpose": true,
  • "user_type": "personal"
}

Trigger a statement reports generation for an end user

Request a Finicity statement reports generation for end user. Reports will be generated for each account available and each month going back in time between min_statement_index and max_statement_index. When the report is ready it will be available as EndUserFile.

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string
Request Body schema: application/json
max_statement_index
integer
Default: 24
min_statement_index
integer
Default: 1

Responses

Request samples

Content type
application/json
{
  • "max_statement_index": 24,
  • "min_statement_index": 1
}

Trigger a Finicity VOE transactions report generation for an end user

Request a Finicity VOE transactions report generation for an end user. When the report is ready it will be available as an EndUserFile.

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string
Request Body schema: application/json
from_date
string <date-time>

Responses

Request samples

Content type
application/json
{
  • "from_date": "2019-08-24T14:15:22Z"
}

Update an Integration Link

Allows refreshing the access_token of an existing Integration Link

Authorizations:
BasicAuth
path Parameters
item_id
required
string
Request Body schema: application/json

IntegrationLink

object (IntegrationLinkUpdateSchema)
access_token
required
string

The generated token that grants access to the bank (this is encrypted in transit and at-rest with a custom key)

Responses

Request samples

Content type
application/json
{
  • "end_user": {
    }
}

Response samples

Content type
application/json
{
  • "integration_link": {
    }
}

List Integrations

Get a list of Integrations

Authorizations:
BasicAuth

Responses

Response samples

Content type
application/json
{}

Create an integration

Create an integration e.g. with Plaid

Authorizations:
BasicAuth
Request Body schema: application/json
object (IntegrationSchema)
base_url
string <url>

Base URL of the API integration. Required for Plaid integration

client_auth
object
client_id
string

Client ID for API access (this is encrypted in transit and at-rest with a custom key). Required for Plaid integration

client_secret
string

Client Secret for API access (this is encrypted in transit and at-rest with a custom key). Required for Plaid integration

name
required
string

A name for your integration

resource
required
string
Enum: "transaction" "assets_report" "end_user_application" "invoice_factoring_processing" "end_user_files"

For integrations with multiple available resources, the specific resource

type
required
string
Enum: "plaid" "ocrolus" "truelayer" "email" "salesforce" "rel6" "finicity"

The integration type, a specific provider

webhook_url
string or null <url>

URL provided by you to which we'll forward all webhooks (optional)

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Update Integration

Update an Integration

Authorizations:
BasicAuth
path Parameters
heron_id
required
string
Request Body schema: application/json

Integration

object (IntegrationSchema)
base_url
string <url>

Base URL of the API integration. Required for Plaid integration

client_auth
object
client_id
string

Client ID for API access (this is encrypted in transit and at-rest with a custom key). Required for Plaid integration

client_secret
string

Client Secret for API access (this is encrypted in transit and at-rest with a custom key). Required for Plaid integration

name
required
string

A name for your integration

resource
required
string
Enum: "transaction" "assets_report" "end_user_application" "invoice_factoring_processing" "end_user_files"

For integrations with multiple available resources, the specific resource

type
required
string
Enum: "plaid" "ocrolus" "truelayer" "email" "salesforce" "rel6" "finicity"

The integration type, a specific provider

webhook_url
string or null <url>

URL provided by you to which we'll forward all webhooks (optional)

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

(Soft-)Delete an integration link

Soft-deletes of an integration link (sync is disabled)

Authorizations:
BasicAuth
path Parameters
heron_id
required
string

The Integration's heron_id

query Parameters
end_user_id_or_heron_id
required
string

Delete that end user's IntegrationLinks

Responses

Get IntegrationLinks by Integration

Get a list of IntegrationLinks for an Integration filtered by end user

Authorizations:
BasicAuth
path Parameters
heron_id
required
string

The Integration's heron_id

query Parameters
end_user_id_or_heron_id
required
string

Return only IntegrationLinks for that end user

Responses

Response samples

Content type
application/json
{
  • "links": [
    ]
}

Create an integration Link

Create a Link for an active Integration every time a customer connects their bank. In Plaid, this is a Plaid Link every time a customer connects their bank. For Plaid, call this after exchanging a public token for an Item access_token.

Authorizations:
BasicAuth
path Parameters
heron_id
required
string
Request Body schema: application/json
access_token
required
string

The generated token that grants access to the bank (this is encrypted in transit and at-rest with a custom key)

end_user_id
required
string

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
required
string

Unique identifier for each bank connection made by your end users. In Plaid this is the 'item_id'.

Responses

Request samples

Content type
application/json
{
  • "access_token": "access-sandbox-de3ce8ef-33f8-452c-a685-8671031fc0f6",
  • "end_user_id": "ade5edfa-1338-48c1-a35a-8a1f99a7966d",
  • "end_user_name": "Acme Corp",
  • "item_id": "M5eVJqLnv3tbzdngLDp9FL5OlDNxlNhlE55op"
}

Response samples

Content type
application/json
{
  • "link": {
    }
}

EndUserIntegrations

Upload Inscribe

Upload Inscribe JSON for a specified end user to translate into Heron Data format and add transactions for the end user

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

The end_user_id or heron_id of EndUser to upload

Request Body schema: application/json
customer_name
string or null
Default: null
object (InscribeParsedDetails)

Responses

Request samples

Content type
application/json
{
  • "customer_name": null,
  • "parsed_details": {
    }
}

Response samples

Content type
application/json
{
  • "_summary": {
    }
}

Get Integration Links

Get a list of integration links for a specified end user

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

The end_user_id or heron_id of EndUser

Responses

Response samples

Content type
application/json
{
  • "links": [
    ]
}

Upload Ocrolus

Upload Ocrolus JSON for a specified end user to translate into Heron Data format and add transactions for the end user

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

The end_user_id or heron_id of EndUser to upload

query Parameters
skip_num_txns_check
boolean

Skip the check for the number of transactions in the payload

Request Body schema: application/json
required
object (OcrolusResponse)
required
Array of objects (OcrolusBankAccount)
name
required
string

Responses

Request samples

Content type
application/json
{
  • "response": {
    }
}

Response samples

Content type
application/json
{
  • "_summary": {
    }
}

Get PDFs

Get list of PDFs for a specified end user

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

The end_user_id or heron_id of EndUser to upload

query Parameters
with_processed_results
boolean

Include processed results where applicable per pdf

Responses

Response samples

Content type
application/json
{
  • "pdfs": [
    ]
}

Parse all PDF

Starts parsing all PDFs for a specified end users. This will not restart any PDFs that are already being parsed

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

The end_user_id or heron_id of EndUser to upload

Responses

Response samples

Content type
application/json
{
  • "pdf_heron_ids": [
    ],
  • "request_id": "string"
}

Upload PDF

Upload encoded PDF of transactions for a specified end user to translate into Heron Data format

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

The end_user_id or heron_id of EndUser to upload

Request Body schema: application/json
account_id
string or null
Default: null

Unique ID for account associated with PDF

currency
string or null
Default: null
Enum: "USD" "GBP"

ISO 4217 currency code for transactions in account. We currently only support GBP and USD PDFs

filename
string or null
Default: null

The filename of the PDF

pdf_base64
required
string^data\:\w+\/\w+\;base64\,

The base64 encoded string of the PDF file. If using Javascript, this is directly the output of the FileReader.readAsDataURL() output. See https://developer.mozilla.org/en-US/docs/Web/API/FileReader/readAsDataURL for more info

read_us_dates
boolean or null
Default: null

True if date formats in the statement are US: month/date/year

reference_id
string or null <= 140 characters
Default: null

An optional field for your unique identifier for the PDF

with_fraud
boolean or null
Default: null

True if fraud detection should be enabled for this PDF

Responses

Request samples

Content type
application/json
{
  • "account_id": "checking_account_202348",
  • "currency": "USD",
  • "filename": "my-favourite.pdf",
  • "pdf_base64": "string",
  • "read_us_dates": null,
  • "reference_id": "my-favourite-pdf",
  • "with_fraud": null
}

Response samples

Content type
application/json
{
  • "pdf_heron_id": "string",
  • "request_id": "string"
}

Upload Plaid assets

Upload Plaid asset JSON for a specified end user to translate into Heron Data format and add transactions for the end user

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

The end_user_id or heron_id of EndUser to upload

Request Body schema: application/json
required
object (PlaidAssetReport)
date_generated
required
string <date-time>
days_requested
required
integer
required
Array of objects (PlaidAssetReportItem)

Responses

Request samples

Content type
application/json
{
  • "report": {
    }
}

Response samples

Content type
application/json
{
  • "_summary": {
    }
}

Upload Plaid transactions

Upload Plaid transactions JSON for a specified end user to translate into Heron Data format and add transactions for the end user

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

The end_user_id or heron_id of EndUser to upload

Request Body schema: application/json
Array of objects (PlaidAccountSnapshot)
required
Array of objects (PlaidTransaction)

Responses

Request samples

Content type
application/json
{
  • "accounts": [
    ],
  • "transactions": [
    ]
}

Response samples

Content type
application/json
{
  • "_summary": {
    }
}

Upload Yodlee

Upload Yodlee JSON files for a specified end user to translate into Heron Data format and add transactions for the end user

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

The end_user_id or heron_id of EndUser to upload

Request Body schema: application/json
Array of objects (YodleeAccount)
Array of objects (YodleeTransaction)

Responses

Request samples

Content type
application/json
{
  • "accounts": [
    ],
  • "transactions": [
    ]
}

Response samples

Content type
application/json
{
  • "_summary": {
    }
}

Update PDF attributes including status

Update PDF attributes including status

Authorizations:
BasicAuth
path Parameters
heron_id
required
string

heron_id of the pdf

Request Body schema: application/json
filename
string

The filename of the PDF

fraud_reason
string or null

If fraud reason

is_fraud
boolean

True if fraud was detected in the PDF

notes
string

Notes associated with PDF, e.g., rejected reason, failed reason

reference_id
string <= 140 characters

An optional field for your unique identifier for the PDF

status
string
Enum: "new" "parsing" "parsed" "processed" "human_reviewing" "approved" "rejected" "failed" "transactions_loaded" "transactions_unloaded"

Status of PDF

Responses

Request samples

Content type
application/json
{
  • "filename": "my-favourite.pdf",
  • "fraud_reason": "string",
  • "is_fraud": true,
  • "notes": "string",
  • "reference_id": "my-favourite-pdf",
  • "status": "processed"
}

Response samples

Content type
application/json
{
  • "pdf": {
    },
  • "request_id": "string"
}

Send patch transactions for a pdf statement

Send patch transactions processed pdf that will override the extracted transactions in the specified statement

Authorizations:
BasicAuth
path Parameters
heron_id
required
string

heron_id of the pdf

Request Body schema: application/json
exclude
boolean

True if the statement should be excluded from processing

index
required
integer

The index of the statement in the pdf to patch

object (PdfPatchStatementSummary)
required
Array of objects (PdfPatchTransaction)

The full list of transactions that will be used to override the extracted transactions for the specified statement

Responses

Request samples

Content type
application/json
{
  • "exclude": true,
  • "index": 0,
  • "summary": {
    },
  • "transactions": [
    ]
}

Response samples

Content type
application/json
{
  • "ok": true
}

Reloads transactions for a pdf

This will load transactions for the pdf that is in a transactions unloaded status

Authorizations:
BasicAuth
path Parameters
heron_id
required
string

heron_id of the pdf

Responses

Response samples

Content type
application/json
{
  • "ok": true
}

Unloads transactions for a pdf

This will delete all transactions that were previously loaded for the pdf

Authorizations:
BasicAuth
path Parameters
heron_id
required
string

heron_id of the pdf

Responses

Response samples

Content type
application/json
{
  • "ok": true
}

ISOApplication

Upload an ISO application PDF for for an end user

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 (prefixed "iso_") to fetch the scrubbing results. Please contact support@herondata.io to enable this endpoint.

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string
Request Body schema: multipart/form-data
file
string <binary>

Responses

Response samples

Content type
application/json
{
  • "bank_statement": null,
  • "created": "2019-08-24T14:15:22Z",
  • "email": null,
  • "file_class": "other",
  • "filename": "string",
  • "heron_id": "string",
  • "iso_application": {
    },
  • "page_classes": {
    },
  • "parent_heron_id": "string",
  • "parsed_results": [ ],
  • "reference_id": "string"
}

Get EndUser ISO Applications

Get all ISO applications for an end user

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Upload an ISO application PDF for automated scrubbing in under 15 seconds

Use this endpoint to upload an ISO application PDF. Once uploaded, the file will be automatically scrubbed asynchronously. You can use the returned heron_id (prefixed "iso_") to fetch the scrubbing results from the GET endpoint below. Please contact support@herondata.io to enable this endpoint.

Authorizations:
BasicAuth
Request Body schema: multipart/form-data
file
string <binary>

Responses

Response samples

Content type
application/json
{
  • "heron_id": "string",
  • "status": "processing"
}

Upload an ISO application PDF for automated scrubbing in under 15 seconds (base64)

This endpoint is for uploading ISO application PDFs in base64 format.

Authorizations:
BasicAuth
Request Body schema: application/json
file_base64
required
string^data\:\w+\/\w+\;base64\,

The base64 encoded string of the file

filename
required
string

The original filename of the ISO application form

reference_id
string or null
Default: null

A reference id for the file

Responses

Request samples

Content type
application/json
{
  • "file_base64": "base64_encoded_string",
  • "filename": "iso_app.pdf",
  • "reference_id": "your-file-id"
}

Response samples

Content type
application/json
{
  • "heron_id": "string",
  • "status": "processing"
}

Get the scrubbed results and data validations of an uploaded ISO application by its heron_id (prefixed "iso_")

Use this endpoint to retrieve the scrubbed results and data validations of an uploaded ISO application PDF once it has finished processing. If processing is still underway, the processing_status field will be "processing".

Authorizations:
BasicAuth
path Parameters
heron_id
required
string

Responses

Response samples

Content type
application/json
{
  • "created": "2019-08-24T14:15:22Z",
  • "end_user_heron_id": "string",
  • "end_user_id": "string",
  • "field_validations": [
    ],
  • "filename": "iso_app.pdf",
  • "heron_id": "iso_6hBjQT9k6KP2rLCXwjUJff",
  • "processing_status": "processed",
  • "quality_status": "fully_matched",
  • "result": {
    },
  • "source_email": {
    }
}

EndUserAccounts

Get Missing Accounts (beta)

Get a list of possible missing accounts for a given End User. This endpoint is in beta and likely to change.

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string

The end_user_id or heron_id of EndUser

Responses

Response samples

Content type
application/json
{
  • "missing_accounts": [
    ]
}

EnrichedTransactions

Get end user transactions

Get all unique transactions for a single end user. Set end user status to "ready" to initiate transaction enrichment, otherwise may contain both enriched and unenriched transactions

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string
query Parameters
per_page
integer [ 1 .. 50000 ]
Default: 100

Desired results per page

page
integer >= 1
Default: 1

Results page

last_updated_min
string or null <date-time>
Default: null
Example: last_updated_min=2024-11-27T13:54:00.805963

Filter for transactions whose values were last updated in Heron systems after the specified input value, isoformat

Responses

Response samples

Content type
application/json
{
  • "_meta": {
    },
  • "transactions_enriched": [
    ]
}

Get enriched transaction

Get enriched transaction

Authorizations:
BasicAuth
path Parameters
reference_id_or_heron_id
required
string

Responses

Response samples

Content type
application/json
{
  • "transaction_enriched": {
    }
}

Transactions

Create end user transactions (async)

Upload transactions for a specific end user. Does not include enriching transactions -- set end user status = 'ready' to initiate processing. For synchronous enrichment, please instead use "Enrich transactions (sync). Either timestamp (preferred) or date must be present in the transaction payload."

Authorizations:
BasicAuth
path Parameters
end_user_id_or_heron_id
required
string
Request Body schema: application/json
Array of objects or null (AccountBalance1)

Bank account balance information for a particular account_id. The balance here must be the latest balance after all the transactions in this batch have been applied.

required
Array of objects (EndUserTransactionPostAsync) non-empty

Responses

Request samples

Content type
application/json
{
  • "balances": [
    ],
  • "transactions": [
    ]
}

Response samples

Content type
application/json
{
  • "request_id": "string",
  • "transactions_loaded": 0
}

Delete transactions

Please provide at least one of the following parameters: heron_ids, heron_id, request_id or end_user_id.

Authorizations:
BasicAuth
query Parameters
reference_ids
Array of strings
Default: []

Reference IDs of transactions to be deleted

account_id
string or null
Default: null

account_id of transactions to be deleted

request_id
string or null
Default: null

Request ID of transactions to be deleted

heron_ids
Array of strings
Default: []

Heron IDs of transactions to be deleted

heron_id
string or null
Default: null
Example: heron_id=txn_feykNZnjNsHq8aB596ccK6

(legacy) Heron ID of transaction to be deleted

end_user_id
string or null
Default: null

end_user_id of transactions to be deleted

only_duplicates
boolean or null
Default: null

if true, deletes only transactions that are marked as duplicates

Responses

Callbacks

Response samples

Content type
application/json
{
  • "message": "string"
}

Callback payload samples

Callback
POST: $yourWebhookUrl
Content type
application/json
{
  • "created": "2024-11-27T13:54:00.116505",
  • "data": {
    },
  • "meta": { },
  • "topic": "transactions.deleted"
}

Get transactions. At least `end_user_id`, `heron_i

Get transactions. At least end_user_id, heron_id or request_id must be provided.

Authorizations:
BasicAuth
query Parameters
has_merchant
boolean or null
Default: null

Filter by whether the transaction has a merchant entity associated with it

confidence_max
number [ 0 .. 1 ]

Filter by maximum confidence of annotation associated with transaction

include_duplicates
boolean

Whether or not to include duplicate transactions in the response. Defaults to false unless request_id is provided, in which case it defaults to true.

limit
integer [ 1 .. 10000 ]
Default: 1000

Number of transactions to return per page

merchant_heron_id
string

Filter by merchant heron id

heron_id
string
Example: heron_id=txn_JHHy7nLnsW6JvtGrddC8fj

Heron generated Id of transaction

order_by
string
Default: "id_asc"
Enum: "amount_asc" "amount_desc" "abs_amount_asc" "abs_amount_desc" "description_asc" "description_desc" "timestamp_asc" "timestamp_desc" "id_asc" "id_desc" "confidence_asc" "confidence_desc"

What to order transactions by

description_keyword
string

Filter by keyword match on transaction description; case insensitive

created_date_min
string <date>
Example: created_date_min=2020-04-27

Filter by earliest transaction upload date - when Heron received the transaction

is_recurring
boolean

Filter by whether the transaction is recurring

from_date
string <date>

Deprecated; see created_date_ or timestamp_date_

has_matching_transaction
boolean

Filter by whether the transaction has a matching transaction

request_id
string

Request-Id header returned in the response of POST transactions. Sending this parameter will return all transactions sent in a particular POST request, including any duplicates.

page
integer >= 1
Default: 1

Page of transaction to return

end_user_id
string

End user id of transaction

min_amount
number

Filter by minimum amount of transaction

max_amount
number

Filter by maximum amount of transaction

transaction_code
string

Filter by transaction code

confidence_min
number [ 0 .. 1 ]

Filter by minimum confidence of annotation associated with transaction

timestamp_date_min
string <date>
Example: timestamp_date_min=2020-04-27

Filter by earliest transaction timestamp

merchant_group_id
string

Filter by merchant group id

last_updated_min
string <date-time>
Example: last_updated_min=2024-11-27T13:54:00.113182

Filter for transactions whose values were last updated in Heron systems after the specified input value

to_date
string <date>

Deprecated; see created_date_ or timestamp_date_

category_heron_id
Array of strings or null
Default: []
Example: category_heron_id=ctg_cnDz4nHNDitWsvbA43Y7em

Filter by the heron_id of the category that the transaction is annotated with

last_updated_max
string <date-time>
Example: last_updated_max=2024-11-27T13:54:00.113195

Filter for transactions whose values were last updated in Heron systems before the specified input value

timestamp_date_max
string <date>
Example: timestamp_date_max=2020-04-27

Filter by latest transaction timestamp

reference_id
string

Reference Id of transaction

description_regex
string

Filter by regex matching transaction description

account_ids
Array of strings or null
Default: null
Example: account_ids=1234

Account ids to include. If not provided, all accounts are included

created_date_max
string <date>
Example: created_date_max=2020-04-27

Filter by latest transaction upload date - when Heron received the transaction

Responses

Response samples

Content type
application/json
{
  • "_meta": {
    },
  • "_summary": {
    },
  • "transactions": [
    ]
}

Enrich transactions (sync)

Enrich and categorize transactions and consume them in a sync response. For business lending and underwriting, please use "Create end user transactions" instead. Please send a maximum of 249 transactions per request.

Authorizations:
BasicAuth
Request Body schema: application/json
required
Array of objects (Transaction1) non-empty
Array (non-empty)
account_id
string or null <= 400 characters

Your unique ID for account associated with transaction

amount
required
number

Amount. Inflows to an account should be positive, and outflows from an account should be negative. If using Plaid, please flip the amount sign for all transactions.

balance
number or null

The running balance of the account after transaction ocurred

categories_default
string or null

Category of transaction that you may have received from other sources

currency
string or null = 3 characters

ISO 4217 currency code

date
string or null <date>

The date of the transaction; 'timestamp' field takes priority over 'date'

description
required
string

The text description for the transaction

end_user_id
string or null <= 140 characters

Your unique ID for end user associated with transaction

mcc_code
string or null^\d{4}$

Merchant category code associated with transaction that you may have received from other sources

order
integer or null

If sending a batch of transactions, the order in which the transaction occurs, where a higher value is equivalent to a more recent transaction

reference_id
string or null <= 140 characters

Your unique ID for transaction

timestamp
string or null <date-time>

The ISO 8601 timezone aware timestamp of the transaction; takes precedence over 'date'

transaction_code
string or null <= 140 characters

Code associated with transaction to indicate the type of transaction

Responses

Request samples

Content type
application/json
{
  • "transactions": [
    ]
}

Response samples

Content type
application/json
{
  • "_summary": {
    },
  • "transactions": [
    ]
}

Policy

Get the policy evaluations for an end user

Evaluates the user's policies against end user on-the-fly

Authorizations:
BasicAuth
path Parameters
heron_id
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Testing

Test endpoint (no authentication)

Test endpoint (no authentication)

Authorizations:
BasicAuth

Responses

Response samples

Content type
application/json
{
  • "hello": "string"
}

Test authentication

Test authentication

Authorizations:
BasicAuth

Responses

Response samples

Content type
application/json
{
  • "hello": "string"
}

Merchants

Extract Merchant from a transaction description

Extract Merchant from a transaction description

Authorizations:
BasicAuth
Request Body schema: application/json

The bank transaction description as a string

description
required
string

Responses

Request samples

Content type
application/json
{
  • "description": "PAYPAL* AMZN Mktp 198748320"
}

Response samples

Content type
application/json
{}

Get Merchant groups

Get Merchant groups

Authorizations:
BasicAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Search Merchants by name

Search Merchants by name

Authorizations:
BasicAuth
query Parameters
name
required
string

Full or partial name, minimum 3 characters

only_priority
boolean

If true, only returns priority merchants

Responses

Response samples

Content type
application/json
{
  • "merchants": [
    ]
}

Get Merchant by heron_id

Get Merchant by heron_id

Authorizations:
BasicAuth
path Parameters
heron_id
required
string

The Merchant heron_id

Responses

Response samples

Content type
application/json
{
  • "merchant": {
    }
}

Rules

Get rules

Read all available rules

Authorizations:
BasicAuth

Responses

Response samples

Content type
application/json
{
  • "rules": [
    ]
}

Create a single rule

Create a new rule to send a 'end_user.review_required' webhook after processing if rule condition evaluates to true

Authorizations:
BasicAuth
Request Body schema: application/json
object (Rule)
condition
string
Enum: "equal" "not_equal" "greater_than" "greater_than_or_equal" "less_than" "less_than_or_equal" "contains"

Key for how to compare metric value to rule value

date_range
string
Enum: "latest" "last_30_days" "last_90_days" "last_120_days" "last_180_days" "last_365_days" "next_30_days" "next_60_days" "next_90_days" "next_180_days" "last_1_calendar_months" "last_3_calendar_months" "last_4_calendar_months" "last_6_calendar_months" "last_12_calendar_months" "last_15_calendar_months" "last_24_calendar_months" "last_1_full_calendar_months" "last_2_full_calendar_months" "last_3_full_calendar_months" "last_6_full_calendar_months" "last_12_full_calendar_months" "last_60_days"

Date range corresponding to metric

group
string or null
Enum: "data_quality_datasource" "data_quality_account" "data_quality_transaction"

Used to display rules by the stage in the underwriting workflow to which they apply.

metric_label
string
Enum: "data_volume" "date_range" "date_range_with_data_sources" "data_freshness" "has_balance_ratio" "data_coverage" "accounts" "potentially_duplicated_account_pairs" "category_coverage" "inflows" "outflows" "deposit_days" "net_amount" "inflow_monthly_avg_amount" "inflow_amount" "inflow_growth_rate" "merchant_coverage" "confidence" "revenue_anomalies" "last_debt_investment" "last_debt_investment_days" "merchant_heron_ids" "distinct_mcas" "distinct_mcas_from_outflows" "distinct_mcas_from_inflows" "latest_largest_mca_funding_amount" "min_revenue_count_per_statement_ignoring_savings_accounts" "max_negative_balance_days_per_statement" "min_total_revenue_per_statement" "min_average_daily_balance_per_statement" "revenue_daily_average" "cogs_daily_average" "opex_daily_average" "debt_repayment_daily_average" "debt_investment" "debt_investors" "nsf_fees" "nsf_days" "inflow_daily_average" "average_monthly_revenue_sources" "debt_investment_count" "debt_collection" "tax_payments" "tax_payment_amount" "unconnected_account_ratio" "outflow_daily_average" "revenue_sources" "atm_withdrawals" "revenue" "annualized_revenue" "cogs" "average_credit_card_spend" "opex" "revenue_profit_and_loss" "annualized_revenue_profit_and_loss" "cogs_profit_and_loss" "opex_profit_and_loss" "revenue_monthly_average" "debt_repayment" "revenue_growth_rate" "category_debt_repayment_count" "category_other_expenses_count" "category_revenue_count" "category_postage_count" "category_debt_investment_count" "category_atm_cash_outflows_count" "category_rent_count" "insurance_in_out_ratio" "rent_in_out_ratio" "taxes_in_out_ratio" "travel_in_out_ratio" "company_investments_in_out_ratio" "atm_cash_outflows_in_out_ratio" "overdraft_nsf_fees_in_out_ratio" "reconciled_intra_company_transfers_to_insurance_ratio" "insurance_to_general_payment_ratio" "insurance_to_advertising_ratio" "insurance_to_credit_card_ratio" "insurance_to_check_deposits_ratio" "insurance_to_atm_cash_inflows_ratio" "insurance_to_debt_repayment_ratio" "insurance_to_charges_fees_ratio" "insurance_to_travel_ratio" "insurance_to_inventory_ratio" "insurance_to_none_ratio" "equity_investment_to_advertising_ratio" "equity_investment_to_debt_repayment_ratio" "equity_investment_to_charges_fees_ratio" "equity_investment_to_unreconciled_intra_company_transfers_ratio" "equity_investment_to_travel_ratio" "equity_investment_to_company_investments_ratio" "general_payment_to_credit_card_ratio" "general_payment_to_p2p_transfers_ratio" "general_payment_to_company_investments_ratio" "general_payment_to_none_ratio" "debt_investment_to_overdraft_nsf_fees_ratio" "debt_investment_to_other_expenses_ratio" "debt_investment_to_none_ratio" "advertising_to_p2p_transfers_ratio" "advertising_to_other_expenses_ratio" "credit_card_to_check_deposits_ratio" "credit_card_to_charges_fees_ratio" "credit_card_to_travel_ratio" "credit_card_to_inventory_ratio" "credit_card_to_revenue_ratio" "credit_card_to_payroll_and_consultants_ratio" "credit_card_to_none_ratio" "rent_to_check_deposits_ratio" "rent_to_postage_ratio" "rent_to_special_outflows_ratio" "rent_to_travel_ratio" "rent_to_p2p_transfers_ratio" "rent_to_payroll_and_consultants_ratio" "check_deposits_to_debt_repayment_ratio" "check_deposits_to_postage_ratio" "check_deposits_to_unreconciled_intra_company_transfers_ratio" "check_deposits_to_revenue_ratio" "special_inflows_to_charges_fees_ratio" "special_inflows_to_utilities_ratio" "special_inflows_to_unreconciled_intra_company_transfers_ratio" "special_inflows_to_travel_ratio" "special_inflows_to_revenue_ratio" "special_inflows_to_atm_cash_outflows_ratio" "special_inflows_to_payroll_and_consultants_ratio" "refunds_to_atm_cash_inflows_ratio" "refunds_to_charges_fees_ratio" "refunds_to_utilities_ratio" "refunds_to_unreconciled_intra_company_transfers_ratio" "refunds_to_travel_ratio" "refunds_to_overdraft_nsf_fees_ratio" "refunds_to_atm_cash_outflows_ratio" "atm_cash_inflows_to_charges_fees_ratio" "atm_cash_inflows_to_utilities_ratio" "atm_cash_inflows_to_unreconciled_intra_company_transfers_ratio" "atm_cash_inflows_to_atm_cash_outflows_ratio" "atm_cash_inflows_to_other_expenses_ratio" "debt_repayment_to_taxes_ratio" "debt_repayment_to_postage_ratio" "debt_repayment_to_special_outflows_ratio" "debt_repayment_to_atm_cash_outflows_ratio" "debt_repayment_to_payroll_and_consultants_ratio" "check_outflows_to_charges_fees_ratio" "check_outflows_to_utilities_ratio" "check_outflows_to_travel_ratio" "check_outflows_to_p2p_transfers_ratio" "check_outflows_to_revenue_ratio" "check_outflows_to_other_expenses_ratio" "check_outflows_to_payroll_and_consultants_ratio" "taxes_to_travel_ratio" "taxes_to_p2p_transfers_ratio" "taxes_to_revenue_ratio" "taxes_to_atm_cash_outflows_ratio" "taxes_to_other_expenses_ratio" "taxes_to_payroll_and_consultants_ratio" "charges_fees_to_postage_ratio" "charges_fees_to_overdraft_nsf_fees_ratio" "charges_fees_to_revenue_ratio" "charges_fees_to_company_investments_ratio" "charges_fees_to_other_expenses_ratio" "charges_fees_to_none_ratio" "utilities_to_postage_ratio" "utilities_to_special_outflows_ratio" "utilities_to_travel_ratio" "utilities_to_overdraft_nsf_fees_ratio" "utilities_to_other_expenses_ratio" "postage_to_unreconciled_intra_company_transfers_ratio" "postage_to_p2p_transfers_ratio" "postage_to_none_ratio" "unreconciled_intra_company_transfers_to_travel_ratio" "unreconciled_intra_company_transfers_to_p2p_transfers_ratio" "unreconciled_intra_company_transfers_to_atm_cash_outflows_ratio" "unreconciled_intra_company_transfers_to_other_expenses_ratio" "special_outflows_to_p2p_transfers_ratio" "special_outflows_to_atm_cash_outflows_ratio" "travel_to_p2p_transfers_ratio" "travel_to_inventory_ratio" "travel_to_other_expenses_ratio" "travel_to_payroll_and_consultants_ratio" "travel_to_none_ratio" "p2p_transfers_to_overdraft_nsf_fees_ratio" "p2p_transfers_to_atm_cash_outflows_ratio" "inventory_to_overdraft_nsf_fees_ratio" "inventory_to_company_investments_ratio" "inventory_to_atm_cash_outflows_ratio" "inventory_to_other_expenses_ratio" "overdraft_nsf_fees_to_other_expenses_ratio" "revenue_to_payroll_and_consultants_ratio" "latest_balance" "balance_minimum" "balance_maximum" "balance_average" "change_in_balance" "negative_balance_days" "negative_balance_days_by_account" "mean_balance_velocity" "mean_abs_balance_velocity" "weekday_balance_average" "weekday_with_highest_avg" "weekday_with_lowest_avg" "gross_operating_cashflow_daily_average" "net_operating_cashflow_daily_average" "gross_operating_cashflow" "net_operating_cashflow" "gross_operating_cashflow_profit_and_loss" "net_operating_cashflow_profit_and_loss" "net_operating_cashflow_monthly_average" "debt_service_coverage_ratio" "predicted_nsf_fees" "predicted_balance_daily_average" "heron_score"

Label corresponding to metric

name
string or null <= 140 characters

Description of rule. Sent with webhook response, so can be used as a reference to the rule

selector
object

key-value pairs of the desired selector that should select whichend users to apply this rule. They are evaluated as an AND condition(all must be true to run this rule for an end user). Leave empty toapply to all end users.

value
number or null

Numeric value to compare to a metric; use this when the threshold is numeric

value_str
string or null

String value to compare to a metric; use this when the threshold is a string

Responses

Request samples

Content type
application/json
{
  • "rule": {
    }
}

Response samples

Content type
application/json
{
  • "rule": {
    }
}

Delete rule by heron_id

Delete a rule

Authorizations:
BasicAuth
path Parameters
heron_id
required
string

Responses

Response samples

Content type
application/json
{
  • "heron_id": "string"
}

Update rule by heron_id

Update a rule

Authorizations:
BasicAuth
path Parameters
heron_id
required
string
Request Body schema: application/json

Rule

object (RuleUpdateSchema)
condition
string
Enum: "equal" "not_equal" "greater_than" "greater_than_or_equal" "less_than" "less_than_or_equal" "contains"

Key for how to compare metric value to rule value

date_range
string
Enum: "latest" "last_30_days" "last_90_days" "last_120_days" "last_180_days" "last_365_days" "next_30_days" "next_60_days" "next_90_days" "next_180_days" "last_1_calendar_months" "last_3_calendar_months" "last_4_calendar_months" "last_6_calendar_months" "last_12_calendar_months" "last_15_calendar_months" "last_24_calendar_months" "last_1_full_calendar_months" "last_2_full_calendar_months" "last_3_full_calendar_months" "last_6_full_calendar_months" "last_12_full_calendar_months" "last_60_days"

Date range corresponding to metric

group
string or null
Enum: "data_quality_datasource" "data_quality_account" "data_quality_transaction"

Used to display rules by the stage in the underwriting workflow to which they apply.

metric_label
string
Enum: "data_volume" "date_range" "date_range_with_data_sources" "data_freshness" "has_balance_ratio" "data_coverage" "accounts" "potentially_duplicated_account_pairs" "category_coverage" "inflows" "outflows" "deposit_days" "net_amount" "inflow_monthly_avg_amount" "inflow_amount" "inflow_growth_rate" "merchant_coverage" "confidence" "revenue_anomalies" "last_debt_investment" "last_debt_investment_days" "merchant_heron_ids" "distinct_mcas" "distinct_mcas_from_outflows" "distinct_mcas_from_inflows" "latest_largest_mca_funding_amount" "min_revenue_count_per_statement_ignoring_savings_accounts" "max_negative_balance_days_per_statement" "min_total_revenue_per_statement" "min_average_daily_balance_per_statement" "revenue_daily_average" "cogs_daily_average" "opex_daily_average" "debt_repayment_daily_average" "debt_investment" "debt_investors" "nsf_fees" "nsf_days" "inflow_daily_average" "average_monthly_revenue_sources" "debt_investment_count" "debt_collection" "tax_payments" "tax_payment_amount" "unconnected_account_ratio" "outflow_daily_average" "revenue_sources" "atm_withdrawals" "revenue" "annualized_revenue" "cogs" "average_credit_card_spend" "opex" "revenue_profit_and_loss" "annualized_revenue_profit_and_loss" "cogs_profit_and_loss" "opex_profit_and_loss" "revenue_monthly_average" "debt_repayment" "revenue_growth_rate" "category_debt_repayment_count" "category_other_expenses_count" "category_revenue_count" "category_postage_count" "category_debt_investment_count" "category_atm_cash_outflows_count" "category_rent_count" "insurance_in_out_ratio" "rent_in_out_ratio" "taxes_in_out_ratio" "travel_in_out_ratio" "company_investments_in_out_ratio" "atm_cash_outflows_in_out_ratio" "overdraft_nsf_fees_in_out_ratio" "reconciled_intra_company_transfers_to_insurance_ratio" "insurance_to_general_payment_ratio" "insurance_to_advertising_ratio" "insurance_to_credit_card_ratio" "insurance_to_check_deposits_ratio" "insurance_to_atm_cash_inflows_ratio" "insurance_to_debt_repayment_ratio" "insurance_to_charges_fees_ratio" "insurance_to_travel_ratio" "insurance_to_inventory_ratio" "insurance_to_none_ratio" "equity_investment_to_advertising_ratio" "equity_investment_to_debt_repayment_ratio" "equity_investment_to_charges_fees_ratio" "equity_investment_to_unreconciled_intra_company_transfers_ratio" "equity_investment_to_travel_ratio" "equity_investment_to_company_investments_ratio" "general_payment_to_credit_card_ratio" "general_payment_to_p2p_transfers_ratio" "general_payment_to_company_investments_ratio" "general_payment_to_none_ratio" "debt_investment_to_overdraft_nsf_fees_ratio" "debt_investment_to_other_expenses_ratio" "debt_investment_to_none_ratio" "advertising_to_p2p_transfers_ratio" "advertising_to_other_expenses_ratio" "credit_card_to_check_deposits_ratio" "credit_card_to_charges_fees_ratio" "credit_card_to_travel_ratio" "credit_card_to_inventory_ratio" "credit_card_to_revenue_ratio" "credit_card_to_payroll_and_consultants_ratio" "credit_card_to_none_ratio" "rent_to_check_deposits_ratio" "rent_to_postage_ratio" "rent_to_special_outflows_ratio" "rent_to_travel_ratio" "rent_to_p2p_transfers_ratio" "rent_to_payroll_and_consultants_ratio" "check_deposits_to_debt_repayment_ratio" "check_deposits_to_postage_ratio" "check_deposits_to_unreconciled_intra_company_transfers_ratio" "check_deposits_to_revenue_ratio" "special_inflows_to_charges_fees_ratio" "special_inflows_to_utilities_ratio" "special_inflows_to_unreconciled_intra_company_transfers_ratio" "special_inflows_to_travel_ratio" "special_inflows_to_revenue_ratio" "special_inflows_to_atm_cash_outflows_ratio" "special_inflows_to_payroll_and_consultants_ratio" "refunds_to_atm_cash_inflows_ratio" "refunds_to_charges_fees_ratio" "refunds_to_utilities_ratio" "refunds_to_unreconciled_intra_company_transfers_ratio" "refunds_to_travel_ratio" "refunds_to_overdraft_nsf_fees_ratio" "refunds_to_atm_cash_outflows_ratio" "atm_cash_inflows_to_charges_fees_ratio" "atm_cash_inflows_to_utilities_ratio" "atm_cash_inflows_to_unreconciled_intra_company_transfers_ratio" "atm_cash_inflows_to_atm_cash_outflows_ratio" "atm_cash_inflows_to_other_expenses_ratio" "debt_repayment_to_taxes_ratio" "debt_repayment_to_postage_ratio" "debt_repayment_to_special_outflows_ratio" "debt_repayment_to_atm_cash_outflows_ratio" "debt_repayment_to_payroll_and_consultants_ratio" "check_outflows_to_charges_fees_ratio" "check_outflows_to_utilities_ratio" "check_outflows_to_travel_ratio" "check_outflows_to_p2p_transfers_ratio" "check_outflows_to_revenue_ratio" "check_outflows_to_other_expenses_ratio" "check_outflows_to_payroll_and_consultants_ratio" "taxes_to_travel_ratio" "taxes_to_p2p_transfers_ratio" "taxes_to_revenue_ratio" "taxes_to_atm_cash_outflows_ratio" "taxes_to_other_expenses_ratio" "taxes_to_payroll_and_consultants_ratio" "charges_fees_to_postage_ratio" "charges_fees_to_overdraft_nsf_fees_ratio" "charges_fees_to_revenue_ratio" "charges_fees_to_company_investments_ratio" "charges_fees_to_other_expenses_ratio" "charges_fees_to_none_ratio" "utilities_to_postage_ratio" "utilities_to_special_outflows_ratio" "utilities_to_travel_ratio" "utilities_to_overdraft_nsf_fees_ratio" "utilities_to_other_expenses_ratio" "postage_to_unreconciled_intra_company_transfers_ratio" "postage_to_p2p_transfers_ratio" "postage_to_none_ratio" "unreconciled_intra_company_transfers_to_travel_ratio" "unreconciled_intra_company_transfers_to_p2p_transfers_ratio" "unreconciled_intra_company_transfers_to_atm_cash_outflows_ratio" "unreconciled_intra_company_transfers_to_other_expenses_ratio" "special_outflows_to_p2p_transfers_ratio" "special_outflows_to_atm_cash_outflows_ratio" "travel_to_p2p_transfers_ratio" "travel_to_inventory_ratio" "travel_to_other_expenses_ratio" "travel_to_payroll_and_consultants_ratio" "travel_to_none_ratio" "p2p_transfers_to_overdraft_nsf_fees_ratio" "p2p_transfers_to_atm_cash_outflows_ratio" "inventory_to_overdraft_nsf_fees_ratio" "inventory_to_company_investments_ratio" "inventory_to_atm_cash_outflows_ratio" "inventory_to_other_expenses_ratio" "overdraft_nsf_fees_to_other_expenses_ratio" "revenue_to_payroll_and_consultants_ratio" "latest_balance" "balance_minimum" "balance_maximum" "balance_average" "change_in_balance" "negative_balance_days" "negative_balance_days_by_account" "mean_balance_velocity" "mean_abs_balance_velocity" "weekday_balance_average" "weekday_with_highest_avg" "weekday_with_lowest_avg" "gross_operating_cashflow_daily_average" "net_operating_cashflow_daily_average" "gross_operating_cashflow" "net_operating_cashflow" "gross_operating_cashflow_profit_and_loss" "net_operating_cashflow_profit_and_loss" "net_operating_cashflow_monthly_average" "debt_service_coverage_ratio" "predicted_nsf_fees" "predicted_balance_daily_average" "heron_score"

Label corresponding to metric

name
string or null <= 140 characters

Description of rule. Sent with webhook response, so can be used as a reference to the rule

selector
object

key-value pairs of the desired selector that should select whichend users to apply this rule. They are evaluated as an AND condition(all must be true to run this rule for an end user). Leave empty toapply to all end users.

value
number or null

Numeric value to compare to a metric; use this when the threshold is numeric

value_str
string or null

String value to compare to a metric; use this when the threshold is a string

Responses

Request samples

Content type
application/json
{
  • "rule": {
    }
}

Response samples

Content type
application/json
{
  • "rule": {
    }
}

Users

Get user's company overview layout

Authorizations:
BasicAuth

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Save user's company overview layout

Authorizations:
BasicAuth
Request Body schema: application/json

The new company overview layout

Array
group_name
required
string
id
required
string

A unique id used to reference the group

required
Array of objects (Widget)

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Save user's settings

Authorizations:
BasicAuth
Request Body schema: application/json

The new settings

object (BalanceSheetCategories)
object
object (PnLCategories)
use_new_company_layout
boolean
use_new_end_user_table
boolean

Responses

Request samples

Content type
application/json
{
  • "balance_sheet_categories": {
    },
  • "financials_metrics": {
    },
  • "pnl_categories": {
    },
  • "use_new_company_layout": true,
  • "use_new_end_user_table": true
}

Webhooks

Get webhooks

Get webhook

Authorizations:
BasicAuth

Responses

Response samples

Content type
application/json
[]

Create a webhook

Create a webhook

Authorizations:
BasicAuth
Request Body schema: application/json
headers
object or null

Headers to send webhook with

is_enabled
boolean

Whether the webhook is enabled

topic
string
Enum: "data_source_account_summary.created" "data_source.disabled" "end_user.created" "end_user.processed" "end_user.failed" "end_user.reviewed" "end_user.transactions_updated" "end_user.review_required" "end_user.files_changed" "end_user.files_classified" "end_user_information.updated" "end_user.policy_workflow_finished" "end_user.policy_workflow_failed" "enrich_workflow.finished" "transactions.deleted" "transactions.updated" "pdf.processed" "pdf.checks_passed" "pdf.checks_failed" "pdf.transactions_loaded" "pdf.failed" "pdf.parsed" "pdf.approved" "integration_link.erroring" "iso_application.processed" "iso_application.processed_simple" "iso_application.created" "end_user_email.processed" "end_user_email.failed" "debt_summary.processed" "end_user_file.parsed" "end_user_file.parse_failed"

Webhook topic for different Heron events

url
string <url>

URL where webhook should be sent

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}

Get webhook topics

Get webhook topics

Authorizations:
BasicAuth

Responses

Response samples

Content type
application/json
{
  • "topics": [
    ]
}

Update a webhook

Update a webhook

Authorizations:
BasicAuth
path Parameters
heron_id
required
string
Request Body schema: application/json
headers
object or null

Headers to send webhook with

is_enabled
boolean

Whether the webhook is enabled

topic
string
Enum: "data_source_account_summary.created" "data_source.disabled" "end_user.created" "end_user.processed" "end_user.failed" "end_user.reviewed" "end_user.transactions_updated" "end_user.review_required" "end_user.files_changed" "end_user.files_classified" "end_user_information.updated" "end_user.policy_workflow_finished" "end_user.policy_workflow_failed" "enrich_workflow.finished" "transactions.deleted" "transactions.updated" "pdf.processed" "pdf.checks_passed" "pdf.checks_failed" "pdf.transactions_loaded" "pdf.failed" "pdf.parsed" "pdf.approved" "integration_link.erroring" "iso_application.processed" "iso_application.processed_simple" "iso_application.created" "end_user_email.processed" "end_user_email.failed" "debt_summary.processed" "end_user_file.parsed" "end_user_file.parse_failed"

Webhook topic for different Heron events

url
string <url>

URL where webhook should be sent

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{}