- Make sure the deal’s owner and business details have reached Heron - usually automatically from the ISO applications you already send us.
- Trigger the background check.
- Poll for completion and fetch the results.
The background check runs asynchronously. Triggering it returns immediately; you poll the results endpoint until the run completes.
Prerequisites
Before following this guide, you will need:- An API key (see Authentication). All requests send it in the
x-api-keyheader. - The background check product enabled for your account. Speak to your Heron rep to switch it on - it is not enabled by default.
- An end user representing the deal you want to screen. Most integrations already have these - an end user is created whenever you send Heron an ISO application, or you can create one directly (Create EndUser). The calls below address it by its
heron_id(aneus_string) or your ownend_user_id.
Steps
1. Make sure the deal’s details have reached Heron
The background check searches on the owner and business identity Heron holds for the deal. There are two ways that data gets there.From your ISO applications (most common)
If you already send Heron the deal’s ISO application - by API or email forwarding - Heron extracts the owner and business details from it automatically. There’s nothing extra to do here; skip to step 2.Send the details over the API
If you don’t send ISO applications, supply the identity directly withPATCH /end_users/{id}/end_user_information (reference):
app.py
| Subject | Fields used |
|---|---|
| Owners | first_name, last_name, social_security_number, date_of_birth, home_address |
| Business | company_legal_business_name, dba, federal_tax_id, company_physical_address, company_phone_number |
The more identity available, the more precise the match. A name is the minimum for an owner (first + last) and a legal name or DBA is the minimum for the business, but an owner’s SSN and date of birth is what reliably resolves them to the right person and avoids false matches. Up to two owners (
owner_1, owner_2) are supported.2. Trigger the background check
Start the check with thebackground_check enricher (reference). It returns 202 Accepted as soon as the run is dispatched:
app.py
3. Poll and fetch the results
Fetch the background check (reference) and read the top-levelstatus until it is no longer processing:
app.py
Status lifecycle
status | Meaning |
|---|---|
never_run | No background check has been triggered for this end user yet. |
processing | A run is in flight. processing_stage reports the phase: searching, pulling_reports, analysing. |
succeeded | The run completed; overall, subjects, and policy are populated. |
failed | The run errored. No results are available. |
missing_input_data | No owner or business identity was available to search on (see step 1). |
Understanding the result
A succeeded response has three parts:overall- the headline: aresult(pass/review_required/failed/missing_data), aseverity, and pass / review / fail counts.subjects[]- one entry perowner_1,owner_2, andbusiness, each with how it was matched (resolution), the search trail (searches), and the findings grouped by record type (sections).policy- the outcome of your configured checks, each with its status and the evidence (subject, section, and records) behind it.
Downloading a report as a PDF
Heron returns the background check as structured data (above), which is the source of truth and the most flexible format to integrate against - you can render it however suits your product. We can also generate a single combined PDF covering all owners and the business in one document, branded as Heron’s work product.Heron provides its own background check work product. We can’t redistribute the raw third-party reports our data comes from. If a rendered PDF is something you need, talk to your Heron rep about format and branding.