# Heron ## Docs - [Quickstart](https://docs.herondata.io/get-started/quickstart.md) - [Navigating This Documentation](https://docs.herondata.io/get-started/introduction.md) - [MCA/Cash Flow Underwriting](https://docs.herondata.io/use-cases/smb-underwriting.md) - [Bank Statements Integration](https://docs.herondata.io/integrations/bank-statements.md) - [Plaid Integration](https://docs.herondata.io/integrations/plaid.md) - [Broker Submissions API](https://docs.herondata.io/integrations/broker-submissions.md): Send complete funding submissions directly to funders using our Broker Submissions API - [Managing Broker API Keys](https://docs.herondata.io/integrations/broker-api-keys.md): Handle your own brokers' integrations with Heron via our Broker API key management endpoints - [Background Checks](https://docs.herondata.io/integrations/background-check.md): Screen a deal's owners and business and retrieve the structured results via the Heron API - [Supported File Formats](https://docs.herondata.io/faqs/supported-file-formats.md) - [Duplicate Transactions](https://docs.herondata.io/faqs/duplicate-transactions.md) - [Get Transaction Methods](https://docs.herondata.io/faqs/get-transactions.md) - [Rate Limits and 429 Errors - Too Many Requests](https://docs.herondata.io/faqs/rate-limits-429-errors.md) - [Supported Currencies](https://docs.herondata.io/faqs/supported-currencies.md) - [Sync vs. Async](https://docs.herondata.io/faqs/sync-vs-async.md) - [Webhook Delivery](https://docs.herondata.io/faqs/webhooks.md) - [OpenAPI JSON (Swagger) ](https://docs.herondata.io/faqs/open-api-json.md) - [Release Notes](https://docs.herondata.io/miscellaneous/release-notes.md) - [Merchant Locking](https://docs.herondata.io/use-cases/merchant-locking.md) - [Customer Spend Reporting](https://docs.herondata.io/use-cases/smb-analytics.md) - [Authentication](https://docs.herondata.io/api-reference/authentication.md) - [Errors](https://docs.herondata.io/api-reference/errors.md) - [Webhooks](https://docs.herondata.io/api-reference/webhooks.md) - [Get decline analytics for a user](https://docs.herondata.io/api-reference/analytics/get-decline-analytics-for-a-user.md): Returns aggregated decline analytics for end users within a date range, including total end users, total declined, and per-check pass/fail/missing counts. Only the latest policy evaluation per end user is considered. - [List available apps](https://docs.herondata.io/api-reference/appstore/list-available-apps.md): List available apps - [List broker funder policies for current user](https://docs.herondata.io/api-reference/list-broker-funder-policies-for-current-user.md): Get all broker funder policies for the current user, ordered by matching priority - [Bulk update broker funder policies](https://docs.herondata.io/api-reference/bulk-update-broker-funder-policies.md): Create or update broker funder policies for the current user - [Export broker funder policies as Excel](https://docs.herondata.io/api-reference/export-broker-funder-policies-as-excel.md): Download the current user's broker funder policies as an Excel spreadsheet. The exported file can be re-uploaded via POST /broker_funder_policies/upload/ to round-trip policies. - [Add a funder to broker's policies](https://docs.herondata.io/api-reference/add-a-funder-to-brokers-policies.md): Add a funder to the current broker's funder policies table. Idempotent — if the funder already exists in the broker's table, returns the existing record without modification. New entries start with empty criteria. - [Remove a funder from broker's policies](https://docs.herondata.io/api-reference/remove-a-funder-from-brokers-policies.md): Remove a funder from the current broker's funder policies table. Blocked if the broker-funder pair has active submission integrations (API keys). - [Upload funder policy file for parsing](https://docs.herondata.io/api-reference/upload-funder-policy-file-for-parsing.md): Upload a spreadsheet (XLS, XLSX, CSV) or PDF containing funder policies. The file will be parsed asynchronously and policies will be upserted for the current user. Only one upload job can be active at a time per user. - [Get policy upload job status](https://docs.herondata.io/api-reference/get-policy-upload-job-status.md): Get the status of the most recent policy upload job for the current user - [Get specific policy upload job](https://docs.herondata.io/api-reference/get-specific-policy-upload-job.md): Get a specific policy upload job by its Heron ID - [List pending funder matches for a job](https://docs.herondata.io/api-reference/list-pending-funder-matches-for-a-job.md): Get all pending funder matches that need manual resolution for a specific upload job - [Resolve a pending funder match](https://docs.herondata.io/api-reference/resolve-a-pending-funder-match.md): Resolve a pending match by selecting a funder. This will create the broker_funder record with the policy data and mark the pending match as resolved. - [Skip a pending funder match](https://docs.herondata.io/api-reference/skip-a-pending-funder-match.md): Skip a pending match without resolving it. This will mark it as skipped. - [Get deal link entries for an end user](https://docs.herondata.io/api-reference/get-deal-link-entries-for-an-end-user.md): List all end users linked to the same CRM opportunity as this end user — the original submission end user plus one end user per funder decision email. - [List funder policy evaluations for an end user](https://docs.herondata.io/api-reference/list-funder-policy-evaluations-for-an-end-user.md): Get all funder policy evaluations for a specific end user - [Submit an end user to a single funder](https://docs.herondata.io/api-reference/submit-an-end-user-to-a-single-funder.md): Triggers an async submission for a specific funder submission. Returns 202 immediately; poll the submission status to check progress. - [List funder integration states for the current broker](https://docs.herondata.io/api-reference/list-funder-integration-states-for-the-current-broker.md): Returns one entry per linked integration (API/portal) funder, with its current state, configuration, and last test result. - [Link a funder to the current broker for self-service](https://docs.herondata.io/api-reference/link-a-funder-to-the-current-broker-for-self-service.md): Links a funder the broker can configure. Returns the new entry in the same shape as `GET /api/funder_integrations/`. - [List funders available for self-service that the broker hasn't linked yet](https://docs.herondata.io/api-reference/list-funders-available-for-self-service-that-the-broker-hasnt-linked-yet.md): Returns the funders the broker can link but hasn't yet, sorted alphabetically. - [Save staging or production form values for a funder integration](https://docs.herondata.io/api-reference/save-staging-or-production-form-values-for-a-funder-integration.md): Saves the funder's staging or production configuration. - [Remove a funder, or delete one environment's saved integration](https://docs.herondata.io/api-reference/remove-a-funder-or-delete-one-environments-saved-integration.md): With an `environment`, deletes that environment's saved integration. With `remove=true`, removes the funder entirely. Exactly one of the two must be given: full removal is destructive (scrubs credentials and deletes the funder's policies row), so it must be requested explicitly — an absent or mistyp… - [Update a funder's submission channel and email configuration](https://docs.herondata.io/api-reference/update-a-funders-submission-channel-and-email-configuration.md): Saves the funder's submission email address and CC list, and optionally switches its submission channel (integration or email). An omitted or null `channel` keeps the current channel, so email-field saves can never change how deals are routed. Returns the updated funder entry. - [Trigger a staging or production test submission for this funder](https://docs.herondata.io/api-reference/trigger-a-staging-or-production-test-submission-for-this-funder.md): Submits the synthetic test end user to the selected funder environment. Returns the funder submission Heron ID. Frontend polls `/funder_submissions/{id}/` for the result. - [Upsert a funder submission](https://docs.herondata.io/api-reference/upsert-a-funder-submission.md): Find or create a funder submission for the given end user and funder pair. Returns the existing submission if one already exists (unique per end_user + funder). - [Get funder submission status](https://docs.herondata.io/api-reference/get-funder-submission-status.md): Returns the status and details of a funder submission. Use this to poll after triggering a submission. - [Trigger a funder submission](https://docs.herondata.io/api-reference/trigger-a-funder-submission.md): Triggers an async submission to a funder. Returns 202 immediately; poll via GET /funder_submissions/{submission_heron_id}/ to check progress. - [Search funders by name](https://docs.herondata.io/api-reference/search-funders-by-name.md): Search the Heron funder database by name using fuzzy matching. Returns a lightweight list of matching funders for the frontend picker UI. - [Ingest end user data from a CRM webhook](https://docs.herondata.io/api-reference/ingest-end-user-data-from-a-crm-webhook.md): Receives a webhook payload from a CRM integration and syncs the end user via the ingestion pipeline. Per-CRM payload shapes are parsed by the matching CRM client; only the generic ingestion controls documented below are read directly here. - [Create broker submission](https://docs.herondata.io/api-reference/brokersubmissions/create-broker-submission.md): Create a new broker submission with end user details. **Authentication**: Requires a broker API key in the `x-api-key` header. Generate keys using the `/api/broker_submissions/api_keys/generate` endpoint. - [List broker API keys for a given user.](https://docs.herondata.io/api-reference/brokersubmissions/list-broker-api-keys-for-a-given-user.md): Retrieve all Broker API keys associated with the authenticated user's funder account. Returns a list of broker-funder relationships with their corresponding API keys. - [Generate broker API key](https://docs.herondata.io/api-reference/brokersubmissions/generate-broker-api-key.md): Create a new API key for a broker-funder relationship. The broker is identified by email domain. If the funder account or broker-funder relationship doesn't exist, they will be created automatically. Returns an error if an API key already exists for this relationship. - [Delete broker API key](https://docs.herondata.io/api-reference/brokersubmissions/delete-broker-api-key.md): Delete an existing API key for a broker-funder relationship. The authenticated user must own the funder account associated with the API key. - [Upload PDF files for broker submission](https://docs.herondata.io/api-reference/brokersubmissions/upload-pdf-files-for-broker-submission.md): Upload one or more PDF files for a specified broker submission. Authenticate by passing a broker API key in the `x-api-key` header. Generate keys via the `/api/broker_submissions/api_keys/generate` endpoint. - [Add details to broker submission](https://docs.herondata.io/api-reference/brokersubmissions/add-details-to-broker-submission.md): Add company and owner details to existing broker submission. **Authentication**: Requires a broker API key in the `x-api-key` header. Generate keys using the `/api/broker_submissions/api_keys/generate` endpoint. - [Get categories](https://docs.herondata.io/api-reference/categories/get-categories.md): Get available categories - [List API keys](https://docs.herondata.io/api-reference/credentials/list-api-keys.md): List all API keys for the authenticated user. Returns key metadata including name, token prefix, creation date, and active status. The `last_used` field is the most recent usage timestamp, or null if usage data is not available. Full tokens are never returned - only the first 8 characters where the… - [Create a new API key](https://docs.herondata.io/api-reference/credentials/create-a-new-api-key.md): Create a new named API key for the authenticated user. The full token is returned only in this response - it cannot be retrieved again. - [Delete an API key](https://docs.herondata.io/api-reference/credentials/delete-an-api-key.md): Permanently delete an API key. This cannot be undone. Consider deactivating instead if you might need to rollback. - [Activate an API key](https://docs.herondata.io/api-reference/credentials/activate-an-api-key.md): Re-activate a previously deactivated API key. - [Deactivate an API key](https://docs.herondata.io/api-reference/credentials/deactivate-an-api-key.md): Deactivate an API key. The key will stop working immediately but can be re-activated later. Use this instead of deleting to allow rollback. - [List CRM Integrations](https://docs.herondata.io/api-reference/crmintegrations/list-crm-integrations.md): Get a list of CRM Integrations - [Create a CRM integration](https://docs.herondata.io/api-reference/crmintegrations/create-a-crm-integration.md): Create a CRM integration, e.g., with Salesforce - [Patch a CRM integration](https://docs.herondata.io/api-reference/crmintegrations/patch-a-crm-integration.md): patch a CRM integration - [Update a data source account's account number](https://docs.herondata.io/api-reference/enduserdatasourceaccounts/update-a-data-source-accounts-account-number.md): Update a data source account's account number - [Update a data source account](https://docs.herondata.io/api-reference/enduserdatasourceaccounts/update-a-data-source-account.md): Update a data source account - [Disable duplicate data source accounts for an end user](https://docs.herondata.io/api-reference/enduserdatasourceaccounts/disable-duplicate-data-source-accounts-for-an-end-user.md) - [Update a data source](https://docs.herondata.io/api-reference/enduserdatasources/update-a-data-source.md): Update a data source - [Get data source account summary](https://docs.herondata.io/api-reference/enduserdatasources/get-data-source-account-summary.md): Get a list of data sources accounts & their summarised information for a company - [Get data sources](https://docs.herondata.io/api-reference/enduserdatasources/get-data-sources.md): Get a list of data sources for a company - [Get email templates](https://docs.herondata.io/api-reference/emailtemplates/get-email-templates.md): Read all available templates - [Create an email template](https://docs.herondata.io/api-reference/emailtemplates/create-an-email-template.md): Create an email template used to send emails conditional on events like policy evaluation - [Patch an email template](https://docs.herondata.io/api-reference/emailtemplates/patch-an-email-template.md): Update an email template - [Get EndUser emails](https://docs.herondata.io/api-reference/endusers/get-enduser-emails.md): Get all emails for all end users associate with this user - [List EndUsers](https://docs.herondata.io/api-reference/endusers/list-endusers.md): Get a list of EndUsers - [Update EndUser](https://docs.herondata.io/api-reference/endusers/update-enduser.md): Confirm an end user is ready for async processing by sending a status of "ready". The `end_user_id` must have previously been sent with at least one Transaction if attempting to update the status. - [Create EndUser](https://docs.herondata.io/api-reference/endusers/create-enduser.md): Create a new end user. If transactions have previously been sent for this `end_user_id`, use `PUT end_users` to update instead. - [List EndUsers with Summary Information](https://docs.herondata.io/api-reference/endusers/list-endusers-with-summary-information.md): Get a list of EndUsers - [Get EndUser background check dashboard payload](https://docs.herondata.io/api-reference/endusers/get-enduser-background-check-dashboard-payload.md): Get the background check results for an end user, including the screening run status, each subject's identity matches and records, and the outcome of each policy check. - [List an end user's background check affiliations](https://docs.herondata.io/api-reference/endusers/list-an-end-users-background-check-affiliations.md): Lists every business and person the deal's background check connects it to: the businesses each owner is recorded as affiliated with, the people associated with them, and the people and companies named as officers on the business's own filings. Each row carries the state of any report requested for… - [Request background check reports for affiliations](https://docs.herondata.io/api-reference/endusers/request-background-check-reports-for-affiliations.md): Requests a background check report for each affiliation selected, business or person. Where the source records already identify the party, its report is retrieved for that party directly; otherwise a search runs first, and a search that settles on no single party returns `not_found` along with the p… - [Confirm a candidate for an affiliate report](https://docs.herondata.io/api-reference/endusers/confirm-a-candidate-for-an-affiliate-report.md): Chooses which of the parties a search found the affiliation's report should cover, either when the search settled on none of them or to correct an earlier choice. Only a party that affiliation's own search identified can be chosen. Its report is retrieved in the background, replacing any report alre… - [Stop tracking an affiliate report](https://docs.herondata.io/api-reference/endusers/stop-tracking-an-affiliate-report.md): Removes an affiliate report request, so later screening runs no longer pull a report for that affiliation. Reports already pulled remain on the runs that produced them. - [Get the pinned CLEAR candidate overrides for a background check](https://docs.herondata.io/api-reference/endusers/get-the-pinned-clear-candidate-overrides-for-a-background-check.md): Returns the per-subject CLEAR entity_id pins the background-check enricher fetches reports for directly, skipping its search. An empty value means that subject still runs the full search waterfall. - [Pin CLEAR candidate overrides for a background check](https://docs.herondata.io/api-reference/endusers/pin-clear-candidate-overrides-for-a-background-check.md): Pins a CLEAR entity_id per subject (owner_1, owner_2, business) so the enricher fetches that candidate's report directly and skips its search. A null value clears that subject's pin; unpinned subjects still run the full search waterfall. Returns the current pins. - [Clear all CLEAR candidate overrides for a background check](https://docs.herondata.io/api-reference/endusers/clear-all-clear-candidate-overrides-for-a-background-check.md): Clears every subject's CLEAR candidate pin so the enricher runs its full search waterfall for all subjects on the next run. - [Download a background check raw report](https://docs.herondata.io/api-reference/endusers/download-a-background-check-raw-report.md): Returns the requested subject's raw background check report as a base64-encoded JSON payload. - [View a criminal-record mug shot](https://docs.herondata.io/api-reference/endusers/view-a-criminal-record-mug-shot.md): Returns the mug shot for one criminal or arrest record as authenticated image bytes. - [Get duplicate end users for an end user](https://docs.herondata.io/api-reference/endusers/get-duplicate-end-users-for-an-end-user.md): Find duplicate end users for the given end user by matching on EIN (federal_tax_id) or normalized legal business name. Only returns duplicates within the same user (lender). Matching strategy: (1) Priority - Match by EIN when available (fast indexed query), (2) Fallback - Match by normalized company… - [Get EndUser by heron_id or end_user_id](https://docs.herondata.io/api-reference/endusers/get-enduser-by-heron_id-or-end_user_id.md): Get an end user using its end_user_id or heron_id - [Delete EndUser by heron_id or end_user_id (sync)](https://docs.herondata.io/api-reference/endusers/delete-enduser-by-heron_id-or-end_user_id-sync.md): Synchronously delete an end user and its associated transactions. Deprecated — use POST /end_users/{end_user_id_or_heron_id}/delete for async deletion instead. - [Delete EndUser by heron_id or end_user_id (async)](https://docs.herondata.io/api-reference/endusers/delete-enduser-by-heron_id-or-end_user_id-async.md): Asynchronously delete an end user and its associated transactions. Returns immediately with a 202 status while deletion proceeds in the background. - [Get EndUser emails](https://docs.herondata.io/api-reference/endusers/get-enduser-emails-1.md): Get the emails associated with an end user - [Get EndUser information](https://docs.herondata.io/api-reference/endusers/get-enduser-information.md): Get the company details of an end user including loan information - [Patch EndUser information](https://docs.herondata.io/api-reference/endusers/patch-enduser-information.md): Update the end user information - [Enrich transactions of EndUser](https://docs.herondata.io/api-reference/endusers/enrich-transactions-of-enduser.md): 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 su… - [Get EndUser physical location](https://docs.herondata.io/api-reference/endusers/get-enduser-physical-location.md): Get the company physical address coordinates - [Get EndUser processing status](https://docs.herondata.io/api-reference/endusers/get-enduser-processing-status.md): Get the current processing status of an end user by heron_id or end_user_id. Returns whether the end user is currently being processed or has completed processing. - [Retrieve CRM sync events for an end user](https://docs.herondata.io/api-reference/endusers/retrieve-crm-sync-events-for-an-end-user.md) - [Trigger a CRM Sync for an End User](https://docs.herondata.io/api-reference/endusers/trigger-a-crm-sync-for-an-end-user.md) - [Export an end user email as an EML file](https://docs.herondata.io/api-reference/enduseremails/export-an-end-user-email-as-an-eml-file.md): Export an end user email as an EML file. Attachments are not included. - [Start enricher execution for a specific end user asynchronously](https://docs.herondata.io/api-reference/enduserenrichers/start-enricher-execution-for-a-specific-end-user-asynchronously.md): Dispatches an enricher task for an end user and returns immediately. - [Get all fields for all enrichers for a given user](https://docs.herondata.io/api-reference/enduserenrichers/get-all-fields-for-all-enrichers-for-a-given-user.md) - [Trigger enricher execution for a specific end user](https://docs.herondata.io/api-reference/enduserenrichers/trigger-enricher-execution-for-a-specific-end-user.md): Executes a specified enricher for an end user and returns the enrichment result. The enrichment result is automatically saved to the database. - [Get enrichment results for an end user](https://docs.herondata.io/api-reference/enduserenrichers/get-enrichment-results-for-an-end-user.md): Get all latest enrichment results for a given end user by their Heron ID. - [Get enricher result by enricher name and end user](https://docs.herondata.io/api-reference/enduserenrichers/get-enricher-result-by-enricher-name-and-end-user.md): Retrieve the latest result for a specific enricher and end user - [Get the definitions for all end user entities](https://docs.herondata.io/api-reference/enduserentity/get-the-definitions-for-all-end-user-entities.md) - [Create an end user entity](https://docs.herondata.io/api-reference/enduserentity/create-an-end-user-entity.md) - [Export all saved attribute for all end users to an Excel file](https://docs.herondata.io/api-reference/enduserentity/export-all-saved-attribute-for-all-end-users-to-an-excel-file.md): Export a spreadsheet with saved entity attribute values (API sources only) for all end users under the current user. - [Set the display order of end user entities](https://docs.herondata.io/api-reference/enduserentity/set-the-display-order-of-end-user-entities.md) - [Create an end user entity attribute](https://docs.herondata.io/api-reference/enduserentity/create-an-end-user-entity-attribute.md) - [Set the display order of end user entity attributes](https://docs.herondata.io/api-reference/enduserentity/set-the-display-order-of-end-user-entity-attributes.md) - [Delete an EndUserEntityAttribute](https://docs.herondata.io/api-reference/enduserentity/delete-an-enduserentityattribute.md) - [Update an end user entity](https://docs.herondata.io/api-reference/enduserentity/update-an-end-user-entity.md) - [Create an end user entity attribute](https://docs.herondata.io/api-reference/enduserentity/create-an-end-user-entity-attribute-1.md) - [Create an end user entity attribute source](https://docs.herondata.io/api-reference/enduserentity/create-an-end-user-entity-attribute-source.md) - [Delete an EndUserEntityAttribute](https://docs.herondata.io/api-reference/enduserentity/delete-an-enduserentityattribute-1.md) - [Upsert an end user entity](https://docs.herondata.io/api-reference/enduserentity/upsert-an-end-user-entity.md) - [Delete an EndUserEntity](https://docs.herondata.io/api-reference/enduserentity/delete-an-enduserentity.md) - [Update an end user entity](https://docs.herondata.io/api-reference/enduserentity/update-an-end-user-entity-1.md) - [Get the materialised end user entities for an end user](https://docs.herondata.io/api-reference/enduserentity/get-the-materialised-end-user-entities-for-an-end-user.md) - [Bulk save entity attribute values by entity name and attribute name](https://docs.herondata.io/api-reference/enduserentity/bulk-save-entity-attribute-values-by-entity-name-and-attribute-name.md): Save multiple entity attribute values in a single request. Each item specifies the entity name, attribute name, and value to set. If an API source doesn't exist for an attribute, one will be created. - [Upsert the attribute value for an end user entity attribute source](https://docs.herondata.io/api-reference/enduserentity/upsert-the-attribute-value-for-an-end-user-entity-attribute-source.md) - [All EndUserFiles](https://docs.herondata.io/api-reference/enduserfiles/all-enduserfiles.md): Get all files uploaded to Heron by your users, not including parsed results from files - [Process file without creating EndUserFile record](https://docs.herondata.io/api-reference/enduserfiles/process-file-without-creating-enduserfile-record.md): Process a file for classification and parsing without storing it as an EndUserFile. Results are delivered via webhook to subscribed endpoints. - [Get recent files by file class](https://docs.herondata.io/api-reference/enduserfiles/get-recent-files-by-file-class.md): Retrieve the most recent files for the specified file class. - [Get file rename rules](https://docs.herondata.io/api-reference/enduserfiles/get-file-rename-rules.md): Retrieve all file rename rules for the current user. - [Create a file rename rule](https://docs.herondata.io/api-reference/enduserfiles/create-a-file-rename-rule.md): Add a new rename rule for files. - [Get file rename rule variable slugs](https://docs.herondata.io/api-reference/enduserfiles/get-file-rename-rule-variable-slugs.md): Retrieve all file rename rules slugs for the current user. - [Update a file rename rule](https://docs.herondata.io/api-reference/enduserfiles/update-a-file-rename-rule.md): Update an existing rename rule identified by its `heron_id`. - [Get a single end user file by Heron ID](https://docs.herondata.io/api-reference/enduserfiles/get-a-single-end-user-file-by-heron-id.md): Retrieve a single end user file by its Heron ID. Returns file metadata including filename, file class, parsed results (if any), and related info. Use this endpoint when you have an end user file Heron ID and need its details without listing or filtering all files. - [Delete an EndUserFile](https://docs.herondata.io/api-reference/enduserfiles/delete-an-enduserfile.md) - [Update the end user file's class](https://docs.herondata.io/api-reference/enduserfiles/update-the-end-user-files-class.md): Use this endpoint to change the end user file's class. The file will be reprocessed as the new type. - [Get EndUserFile as a base64 string](https://docs.herondata.io/api-reference/enduserfiles/get-enduserfile-as-a-base64-string.md): Get the base64 string representation of an end user file - [Trigger async parsing of an end user file](https://docs.herondata.io/api-reference/enduserfiles/trigger-async-parsing-of-an-end-user-file.md) - [Get parsed results from uploaded files](https://docs.herondata.io/api-reference/enduserfiles/get-parsed-results-from-uploaded-files.md) - [Trigger file's rename rule](https://docs.herondata.io/api-reference/enduserfiles/trigger-files-rename-rule.md) - [Trigger splitting a combined end user file into its child files based on its page_classes](https://docs.herondata.io/api-reference/enduserfiles/trigger-splitting-a-combined-end-user-file-into-its-child-files-based-on-its-page_classes.md) - [Update Parsed Results](https://docs.herondata.io/api-reference/enduserfiles/update-parsed-results.md) - [Get EndUserFiles](https://docs.herondata.io/api-reference/enduserfiles/get-enduserfiles.md): Get all files for an end user - [Post EndUserFile](https://docs.herondata.io/api-reference/enduserfiles/post-enduserfile.md): Deprecated — use [Post EndUserFile V2](/api-reference/enduserfiles/post-enduserfile-v2) instead. - [Download EndUserFiles](https://docs.herondata.io/api-reference/enduserfiles/download-enduserfiles.md): Download all files for an end user as a zip - [Download xlsx of parsed results from uploaded files](https://docs.herondata.io/api-reference/enduserfiles/download-xlsx-of-parsed-results-from-uploaded-files.md) - [Post EndUserFile V2](https://docs.herondata.io/api-reference/enduserfiles/post-enduserfile-v2.md): 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.). - [Start Workflow](https://docs.herondata.io/api-reference/enduserfiles/start-workflow.md): Starts your configured Heron workflow for an end user - [Get all file classes](https://docs.herondata.io/api-reference/fileclass/get-all-file-classes.md) - [Get file class groups enabled for a User](https://docs.herondata.io/api-reference/fileclass/get-file-class-groups-enabled-for-a-user.md) - [Get current file classes used in classification](https://docs.herondata.io/api-reference/fileclass/get-current-file-classes-used-in-classification.md) - [Add a FileClass to Classify for a User](https://docs.herondata.io/api-reference/fileclass/add-a-fileclass-to-classify-for-a-user.md) - [Remove a FileClass from Classification for a User](https://docs.herondata.io/api-reference/fileclass/remove-a-fileclass-from-classification-for-a-user.md) - [Get EndUser balance](https://docs.herondata.io/api-reference/endusercalculations/get-enduser-balance.md): Get balance for given EndUser on a daily and account granularity - [Get EndUser forecasts](https://docs.herondata.io/api-reference/endusercalculations/get-enduser-forecasts.md): Get forecast amounts for a given EndUser and category - [Get EndUser statistics](https://docs.herondata.io/api-reference/endusercalculations/get-enduser-statistics.md): Get summarized statistics for a given EndUser - [Get EndUser anomalies](https://docs.herondata.io/api-reference/endusercalculations/get-enduser-anomalies.md): Get anomalies for given EndUser given a category label or heron id - [Get EndUser bank statement summary](https://docs.herondata.io/api-reference/endusercalculations/get-enduser-bank-statement-summary.md): Get the bank statement summary by month for an end user - [Get EndUser metric benchmarks](https://docs.herondata.io/api-reference/endusercalculations/get-enduser-metric-benchmarks.md): Get the benchmarks for each metric for an end user - [Get EndUser debt candidates](https://docs.herondata.io/api-reference/endusercalculations/get-enduser-debt-candidates.md): Identify potential debt candidates. - [Export as a spreadsheet](https://docs.herondata.io/api-reference/endusercalculations/export-as-a-spreadsheet.md): Export a spreadsheet for an end user containing key metrics and reports - [Get EndUser transactions grouped by counterparty or merchant](https://docs.herondata.io/api-reference/endusercalculations/get-enduser-transactions-grouped-by-counterparty-or-merchant.md): Get a report of transactions grouped by merchant or counterparty for an end user - [Get EndUser Heron Score (beta)](https://docs.herondata.io/api-reference/endusercalculations/get-enduser-heron-score-beta.md): 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. - [Get EndUser merchant summary](https://docs.herondata.io/api-reference/endusercalculations/get-enduser-merchant-summary.md): Get the summary of transactions by merchant for an end user for given categories or analytics groups - [Get EndUser named dates](https://docs.herondata.io/api-reference/endusercalculations/get-enduser-named-dates.md): Get the named dates associated with an end user, e.g., date of last transaction - [Get EndUser cashflow P&L](https://docs.herondata.io/api-reference/endusercalculations/get-enduser-cashflow-p&l.md): Calculates the cashflow profit & loss table for an end user, based on the layout defined (if any) - [Update EndUser P&L layout](https://docs.herondata.io/api-reference/endusercalculations/update-enduser-p&l-layout.md): Update the profit and loss layout for the end user, which determines how the profit and loss table is calculated - [Get EndUser recurring transactions report](https://docs.herondata.io/api-reference/endusercalculations/get-enduser-recurring-transactions-report.md): Get a report of recurring transactions grouped by merchant or counterparty for an end user - [Get EndUser scorecard](https://docs.herondata.io/api-reference/endusercalculations/get-enduser-scorecard.md): Get scorecard metrics and rule violations for a user - [Request EndUser scorecard](https://docs.herondata.io/api-reference/endusercalculations/request-enduser-scorecard.md): Request scorecard metrics for a date and end user - [Get EndUser transaction data coverage](https://docs.herondata.io/api-reference/endusercalculations/get-enduser-transaction-data-coverage.md): Information about dates covered by any transaction data source - [Get EndUser attribute values](https://docs.herondata.io/api-reference/enduserattributes/get-enduser-attribute-values.md): Get calculated attribute values for a given end user - [Bulk create category feedback for an end user](https://docs.herondata.io/api-reference/enrichmentfeedback/bulk-create-category-feedback-for-an-end-user.md): Provide bulk feedback on Transaction Categories for a specified end user - [Bulk create merchant feedback for an end user](https://docs.herondata.io/api-reference/enrichmentfeedback/bulk-create-merchant-feedback-for-an-end-user.md): Provide bulk feedback on Transaction Merchants for a specified end user - [Revert merchant feedback for an end user](https://docs.herondata.io/api-reference/enrichmentfeedback/revert-merchant-feedback-for-an-end-user.md): Revert merchant feedback annotations created by the feedback_client annotator - [Create category, merchant feedback](https://docs.herondata.io/api-reference/enrichmentfeedback/create-category-merchant-feedback.md): Provide feedback on a Transaction's Categories and Merchants - [Get EndUser's combined financials](https://docs.herondata.io/api-reference/enduserfinancials/get-endusers-combined-financials.md): Get the combined P&L & Balance Sheet data from financial documents for an EndUser - [Upload DecisionLogic XML](https://docs.herondata.io/api-reference/enduserintegrations/upload-decisionlogic-xml.md): Upload DecisionLogic XML files for a specified end user to translate into Heron Data format and add transactions for the end user - [Upload Inscribe](https://docs.herondata.io/api-reference/enduserintegrations/upload-inscribe.md): Upload Inscribe JSON for a specified end user to translate into Heron Data format and add transactions for the end user - [Get Integration Links](https://docs.herondata.io/api-reference/enduserintegrations/get-integration-links.md): Get a list of integration links for a specified end user - [Upload Ocrolus](https://docs.herondata.io/api-reference/enduserintegrations/upload-ocrolus.md): Upload Ocrolus JSON for a specified end user to translate into Heron Data format and add transactions for the end user - [Get PDFs](https://docs.herondata.io/api-reference/enduserintegrations/get-pdfs.md): Get list of PDFs for a specified end user - [Parse all PDF](https://docs.herondata.io/api-reference/enduserintegrations/parse-all-pdf.md): Starts parsing all PDFs for a specified end users. This will not restart any PDFs that are already being parsed - [Upload PDF](https://docs.herondata.io/api-reference/enduserintegrations/upload-pdf.md): Upload encoded PDF of transactions for a specified end user to translate into Heron Data format - [Upload Plaid assets](https://docs.herondata.io/api-reference/enduserintegrations/upload-plaid-assets.md): Upload Plaid asset JSON for a specified end user to translate into Heron Data format and add transactions for the end user - [Upload Plaid transactions](https://docs.herondata.io/api-reference/enduserintegrations/upload-plaid-transactions.md): Upload Plaid transactions JSON for a specified end user to translate into Heron Data format and add transactions for the end user - [Upload Yodlee](https://docs.herondata.io/api-reference/enduserintegrations/upload-yodlee.md): Upload Yodlee JSON files for a specified end user to translate into Heron Data format and add transactions for the end user - [Get single PDF by heron_id](https://docs.herondata.io/api-reference/enduserintegrations/get-single-pdf-by-heron_id.md): Retrieve a single PDF document by its heron_id. Returns the PDF metadata, status information, and optionally the processed statements/transactions. Users can only access their own PDFs. - [Update PDF attributes including status](https://docs.herondata.io/api-reference/enduserintegrations/update-pdf-attributes-including-status.md): Update PDF attributes including status - [Send patch transactions for a pdf statement](https://docs.herondata.io/api-reference/enduserintegrations/send-patch-transactions-for-a-pdf-statement.md): Send patch transactions processed pdf that will override the extracted transactions in the specified statement - [Reloads transactions for a pdf](https://docs.herondata.io/api-reference/enduserintegrations/reloads-transactions-for-a-pdf.md): This will load transactions for the pdf that is in a transactions unloaded status - [Unloads transactions for a pdf](https://docs.herondata.io/api-reference/enduserintegrations/unloads-transactions-for-a-pdf.md): This will delete all transactions that were previously loaded for the pdf - [Update PDF currency](https://docs.herondata.io/api-reference/enduserintegrations/update-pdf-currency.md): Update the currency for a PDF and all its statement summaries. The PDF must be in transactions_unloaded status. - [Evaluate all rules for an end user](https://docs.herondata.io/api-reference/enduserrules/evaluate-all-rules-for-an-end-user.md) - [Send a Finicity Connect email to an end user](https://docs.herondata.io/api-reference/integrations/send-a-finicity-connect-email-to-an-end-user.md): 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. - [Trigger a cashflow report generation for an end user](https://docs.herondata.io/api-reference/integrations/trigger-a-cashflow-report-generation-for-an-end-user.md): Request a cashflow report generation for an end user. When the report is ready it will be available as EndUserFile. - [Trigger a statement reports generation for an end user](https://docs.herondata.io/api-reference/integrations/trigger-a-statement-reports-generation-for-an-end-user.md): 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. - [Trigger a Finicity VOE transactions report generation for an end user](https://docs.herondata.io/api-reference/integrations/trigger-a-finicity-voe-transactions-report-generation-for-an-end-user.md): Request a Finicity VOE transactions report generation for an end user. When the report is ready it will be available as an EndUserFile. - [Update an Integration Link](https://docs.herondata.io/api-reference/integrations/update-an-integration-link.md): Allows refreshing the access_token of an existing Integration Link - [List Integrations](https://docs.herondata.io/api-reference/integrations/list-integrations.md): Get a list of Integrations - [Create an integration](https://docs.herondata.io/api-reference/integrations/create-an-integration.md): Create an integration e.g. with Plaid - [Update Integration](https://docs.herondata.io/api-reference/integrations/update-integration.md): Update an Integration - [Get IntegrationLinks by Integration](https://docs.herondata.io/api-reference/integrations/get-integrationlinks-by-integration.md): Get a list of IntegrationLinks for an Integration filtered by end user - [Refresh assets reports for integration links](https://docs.herondata.io/api-reference/integrations/refresh-assets-reports-for-integration-links.md): Refresh assets reports for an integration and specific end user. This will trigger a refresh operation for all active Plaid assets report links associated with the integration and end user. - [Create an integration Link](https://docs.herondata.io/api-reference/integrations/create-an-integration-link.md): 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. - [(Soft-)Delete an integration link](https://docs.herondata.io/api-reference/integrations/soft-delete-an-integration-link.md): Soft-deletes of an integration link (sync is disabled) - [Refresh an IntegrationLink](https://docs.herondata.io/api-reference/integrations/refresh-an-integrationlink.md): Trigger a refresh operation for an IntegrationLink - [Upload an ISO application PDF for for an end user](https://docs.herondata.io/api-reference/isoapplication/upload-an-iso-application-pdf-for-for-an-end-user.md): 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. - [Get EndUser ISO Applications](https://docs.herondata.io/api-reference/isoapplication/get-enduser-iso-applications.md): Get all ISO applications for an end user - [Upload an ISO application PDF for automated scrubbing in under 15 seconds](https://docs.herondata.io/api-reference/isoapplication/upload-an-iso-application-pdf-for-automated-scrubbing-in-under-15-seconds.md): 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. - [Upload an ISO application PDF for automated scrubbing in under 15 seconds (base64)](https://docs.herondata.io/api-reference/isoapplication/upload-an-iso-application-pdf-for-automated-scrubbing-in-under-15-seconds-base64.md): This endpoint is for uploading ISO application PDFs in base64 format. - [Reprocess a single ISO application](https://docs.herondata.io/api-reference/isoapplication/reprocess-a-single-iso-application.md): Use this endpoint to trigger reprocessing of a specific ISO application. This will re-run the parsing and validation process for the specified application. - [Get the scrubbed results and data validations of an uploaded ISO application by its heron_id (prefixed "iso_")](https://docs.herondata.io/api-reference/isoapplication/get-the-scrubbed-results-and-data-validations-of-an-uploaded-iso-application-by-its-heron_id-prefixed-"iso_".md): 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". - [Get Missing Accounts (beta)](https://docs.herondata.io/api-reference/enduseraccounts/get-missing-accounts-beta.md): Get a list of possible missing accounts for a given End User. This endpoint is in beta and likely to change. - [Get the policy evaluations for an end user](https://docs.herondata.io/api-reference/policy/get-the-policy-evaluations-for-an-end-user.md): Evaluates the user's policies against end user on-the-fly - [Get all policy definitions](https://docs.herondata.io/api-reference/policy/get-all-policy-definitions.md): Gets all policy definitions set up for a user - [Progress policies for an end user](https://docs.herondata.io/api-reference/policy/progress-policies-for-an-end-user.md): Triggers the policy progression workflow for a specific end user - [Get positions summary for end user](https://docs.herondata.io/api-reference/positions/get-positions-summary-for-end-user.md): Returns positions with calculated metrics for an end user, optionally filtered by account IDs - [Get transactions for a specific position](https://docs.herondata.io/api-reference/positions/get-transactions-for-a-specific-position.md): Returns investment and repayment transactions for a specific position - [List an end user's tags](https://docs.herondata.io/api-reference/tags/list-an-end-users-tags.md): Return the tags currently applied to the end user, ordered by name. - [Replace an end user's tags](https://docs.herondata.io/api-reference/tags/replace-an-end-users-tags.md): Set the end user's tags to exactly the tags given, adding and removing as needed. Send an empty list to clear every tag. Every tag heron_id must exist, otherwise nothing changes. - [Add tags to an end user](https://docs.herondata.io/api-reference/tags/add-tags-to-an-end-user.md): Add the given tags to the end user, leaving any tags already applied in place. Re-sending a tag that is already applied is a no-op, so retries are safe. Every tag heron_id must exist, otherwise none are applied. - [Remove a tag from an end user](https://docs.herondata.io/api-reference/tags/remove-a-tag-from-an-end-user.md): Remove one tag from the end user. Removing a tag that is not applied succeeds, so retries are safe. The tag itself is not deleted. - [List tags](https://docs.herondata.io/api-reference/tags/list-tags.md): Return every tag on your account, excluding deleted ones. - [Create a tag](https://docs.herondata.io/api-reference/tags/create-a-tag.md): Create a tag. Names are normalized to lowercase. They must contain 1-140 alphanumeric characters plus _ - : and are unique to your account (case-insensitive). - [Get a tag](https://docs.herondata.io/api-reference/tags/get-a-tag.md): Return a single tag by its heron_id. Deleted tags return 404. - [Delete a tag](https://docs.herondata.io/api-reference/tags/delete-a-tag.md): Delete a tag. It is removed from everything it is currently applied to and no longer appears in tag lists. - [Update a tag](https://docs.herondata.io/api-reference/tags/update-a-tag.md): Update a tag's name, description, or color. Only the fields you send are changed; send null to clear the description or color. - [Get end user transactions](https://docs.herondata.io/api-reference/enrichedtransactions/get-end-user-transactions.md): 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 - [Get apitransactions](https://docs.herondata.io/api-reference/enrichedtransactions/get-apitransactions.md): Get enriched transaction - [Create end user transactions (async)](https://docs.herondata.io/api-reference/transactions/create-end-user-transactions-async.md): 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." - [Get apitransactions](https://docs.herondata.io/api-reference/transactions/get-apitransactions.md): Get transactions. At least `end_user_id`, `heron_id` or `request_id` must be provided. - [Enrich transactions (sync)](https://docs.herondata.io/api-reference/transactions/enrich-transactions-sync.md): 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. - [Delete transactions](https://docs.herondata.io/api-reference/transactions/delete-transactions.md): Please provide at least one of the following parameters: heron_ids, heron_id, request_id or end_user_id. - [Search funders by name](https://docs.herondata.io/api-reference/funders/search-funders-by-name.md): Returns funders whose name or aliases fuzzy-match `q`, capped at `limit` (max 50). Requires `q` (min 3 characters); bulk listing is no longer supported. - [List your linked funders](https://docs.herondata.io/api-reference/funders/list-your-linked-funders.md): Get a list of funders linked to the current user - [Get a single funder](https://docs.herondata.io/api-reference/funders/get-a-single-funder.md): Get details of a specific funder by heron_id - [Get apihello world](https://docs.herondata.io/api-reference/testing/get-apihello_world.md): Test endpoint (no authentication) - [Get apihello worldauthenticated](https://docs.herondata.io/api-reference/testing/get-apihello_worldauthenticated.md): Test authentication - [Extract merchant](https://docs.herondata.io/api-reference/merchants/extract-merchant.md): Extract Merchant from a transaction description - [List merchant groups](https://docs.herondata.io/api-reference/merchants/list-merchant-groups.md): Get Merchant groups - [List merchants](https://docs.herondata.io/api-reference/merchants/list-merchants.md): Get a paginated list of merchants with optional name and group_id filtering. Results are ordered by merchant ID for stable pagination. - [Search merchants](https://docs.herondata.io/api-reference/merchants/search-merchants.md): Search Merchants by name - [Get merchant by ID](https://docs.herondata.io/api-reference/merchants/get-merchant-by-id.md): Get Merchant by heron_id - [Set merchant group override](https://docs.herondata.io/api-reference/merchants/set-merchant-group-override.md): Update the group id for a merchant for the current user - [Get rules](https://docs.herondata.io/api-reference/rules/get-rules.md): Read all available rules - [Create a single rule](https://docs.herondata.io/api-reference/rules/create-a-single-rule.md): Create a new rule to send a 'end_user.review_required' webhook after processing if rule condition evaluates to true - [Get metrics](https://docs.herondata.io/api-reference/rules/get-metrics.md): Read all available metrics to define rules on - [Update rule by heron_id](https://docs.herondata.io/api-reference/rules/update-rule-by-heron_id.md): Update a rule - [Delete rule by heron_id](https://docs.herondata.io/api-reference/rules/delete-rule-by-heron_id.md): Delete a rule - [Get parsed submissions for an End User](https://docs.herondata.io/api-reference/parsedendusersubmission/get-parsed-submissions-for-an-end-user.md) - [This endpoint returns merchant groups categorized as pending, custom, or rejected.](https://docs.herondata.io/api-reference/usermerchantgroups/this-endpoint-returns-merchant-groups-categorized-as-pending-custom-or-rejected.md) - [Get user's company overview layout](https://docs.herondata.io/api-reference/users/get-users-company-overview-layout.md) - [Save user's company overview layout](https://docs.herondata.io/api-reference/users/save-users-company-overview-layout.md) - [Save user's settings](https://docs.herondata.io/api-reference/users/save-users-settings.md) - [Retrieve user logo](https://docs.herondata.io/api-reference/watermarks/retrieve-user-logo.md): Retrieve the logo file for the current user as raw bytes. - [Upload user logo](https://docs.herondata.io/api-reference/watermarks/upload-user-logo.md): Upload a logo file for the current user. The file is validated for security and stored in GCS. - [Get webhooks](https://docs.herondata.io/api-reference/webhooks/get-webhooks.md): Get webhook - [Create a webhook](https://docs.herondata.io/api-reference/webhooks/create-a-webhook.md): Create a webhook - [Get webhook topics](https://docs.herondata.io/api-reference/webhooks/get-webhook-topics.md): Get webhook topics - [Update a webhook](https://docs.herondata.io/api-reference/webhooks/update-a-webhook.md): Update a webhook - [Delete a webhook](https://docs.herondata.io/api-reference/webhooks/delete-a-webhook.md): Delete a webhook by its heron_id. The webhook must belong to the authenticated user. - [Start a workflow by Heron ID for an end user](https://docs.herondata.io/api-reference/workflows/start-a-workflow-by-heron-id-for-an-end-user.md): Start a workflow by Heron ID for an end user - [Start a workflow by name for an end user](https://docs.herondata.io/api-reference/workflows/start-a-workflow-by-name-for-an-end-user.md): Start a workflow by name for an end user - [List workflows for the current user](https://docs.herondata.io/api-reference/workflows/list-workflows-for-the-current-user.md): Returns all workflows belonging to the authenticated user. ## OpenAPI Specs - [swagger](https://app.herondata.io/swagger) - [openapi-from-anchor-url-0](https://docs.herondata.io/openapi-from-anchor-url-0) - [openapi](https://docs.herondata.io/api-reference/openapi.json) ## Optional - [Heron](https://herondata.io) - [Dashboard](https://dashboard.herondata.io)