> ## Documentation Index
> Fetch the complete documentation index at: https://docs.lendflow.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Experian Liens

## Experian Liens

Use this service to retrieve tax-lien summary and filing-detail records associated with an Experian business.

## Requirements

| Application field | Requirement | Notes |
| - | - | - |
| Business country | Required | Provide the business country code. This service supports United States business information. |
| Business legal name | Conditional | Required when the application does not already have a Business Identification Number (BIN). |
| Business city | Conditional | Required when the application does not already have a BIN. |
| Business state | Conditional | Required when the application does not already have a BIN. Use the two-letter state code. |
| Business street, ZIP code, telephone, and EIN | Optional | These fields can improve Business Match results when Lendflow must obtain a BIN. |
| Business Identification Number (BIN) | Conditional | Required to run Liens. If it is unavailable, Lendflow runs Experian Business Match and uses the result with the highest numeric reliability code. The service does not run if Business Match returns no result. |

## API flow

The dashboard starts a manual run with `PUT /api/int/applications/{application_id}/enrich` and provider `experian_liens`. This is an internal dashboard route, not a supported public integration endpoint.

1. Add the `experian_liens` attribute to a published Data Orchestration template.
2. Call `POST /api/applications/{application_id}/data_orchestration/execute` through [Execute Data Orchestration](/api-reference/data-orchestration/execute-data-orchestration) with a bearer token, `template_id`, `application_id`, and `stage_id` when required.
3. The endpoint schedules the orchestration and returns `{"data":{"executed":true}}`, not the Experian result.
4. Retrieve the result with `GET /api/applications/{application_id}/commercial_data` through [Get Commercial Data](/api-reference/workflow-management/get-commercial-data), using `services[]=experian_liens`. Read the provider result from `data.commercial_data.experian.liens`, status from `data.statuses.experian.liens`, latest date from `data.dates.experian_liens`, and stored request from `data.request_data.experian.liens`.

The orchestration attribute checks saved lien data first. If its required value is absent, it runs the Experian prerequisite synchronously. Data Orchestration requests detail and disables summary by default; Lendflow can retain previously stored top-level lien result sections when a later run returns another section.

| Value | Dashboard data path |
| - | - |
| Response | `commercialData.experian.liens` |
| Status | `commercialData.statuses.experian.liens` |
| Submitted request | `commercialData.request_data.experian.liens` |

The provider request always includes `bin` and `subcode`. A normal direct service run requests `lienSummary: true` and `lienDetail: true`.

## Data Orchestration availability

| Capability | Availability |
| - | - |
| Primary attribute | `experian_liens` (`Liens`) |
| Prerequisite behavior | Runs Experian Liens only when the needed saved section is absent |
| Execution | Synchronous prerequisite |
| Reuse | Existing saved data is reused when it satisfies the selected attribute |

## What the service returns

| Result area | What it contains | How to interpret it |
| - | - | - |
| `businessHeader` | Identity data for the business associated with the BIN. | Confirm that the result belongs to the intended business. |
| `lienSummary` | Lien count and combined balance. | Zero is an explicit returned result; missing is unknown. |
| `lienDetail` | Filing date, tax type, action, document number, filing location, owner, and liability amount. | Each array item is one provider record. |
| `lienIndicator` | Top-level indicator used by Data Orchestration. | `true` means lien information is reported. |

## Representative response

```json theme={"system"}
{
  "businessHeader": {
    "bin": "000000000",
    "businessName": "SAMPLE INDUSTRIES",
    "address": {"city": "AUSTIN", "state": "TX", "zip": "78701"},
    "customerDisputeIndicator": false
  },
  "lienSummary": {"lienCount": 1, "lienBalance": 4289},
  "lienDetail": [
    {
      "dateFiled": "2021-08-17",
      "legalType": "State Tax",
      "legalAction": "Filed",
      "documentNumber": "SAMPLE-LIEN",
      "filingLocation": "SAMPLE COUNTY CLERK",
      "owner": "STATE TAX AUTHORITY",
      "liabilityAmount": 4289
    }
  ],
  "lienIndicator": true
}
```

## Response attributes

### Summary and identity

| Attribute | Type | Meaning | Possible values or units | When returned |
| - | - | - | - | - |
| `businessHeader.bin` | String | Experian BIN. | Experian identifier. | When Experian identifies the business. |
| `businessHeader.businessName` | String | Name associated with the matched record. | Business name. | When available. |
| `businessHeader.address` | Object | Address associated with the matched record. | Street, city, state, ZIP, and ZIP extension may appear. | When available. |
| `businessHeader.customerDisputeIndicator` | Boolean | Whether the business disputed profile information. | `true` or `false`. | When supplied by Experian. |
| `lienSummary.lienCount` | Number | Tax liens on file. | Count. | When summary was requested and returned. |
| `lienSummary.lienBalance` | Number | Combined lien balance. | Currency amount in provider units. | When summary was requested and returned. |
| `lienIndicator` | Boolean | Whether lien information is reported. | `true` or `false`. | When supplied by Experian. |

### Lien details

| Attribute | Type | Meaning | Possible values or units | When returned |
| - | - | - | - | - |
| `lienDetail[].dateFiled` | String | Filing date. | `YYYY-MM-DD`. | For each lien when available. |
| `lienDetail[].legalType` | String | Tax authority level. | `Federal Tax`, `State Tax`, or `County Tax`. | When available. |
| `lienDetail[].legalAction` | String | Current filing action. | `Filed` or `Released`. | When available. |
| `lienDetail[].documentNumber` | String | Filing identifier. | Jurisdiction-specific identifier. | When available. |
| `lienDetail[].filingLocation` | String | Court or filing office. | Name or jurisdiction. | When available. |
| `lienDetail[].owner` | String or null | Authority or owner named on the action. | Name. | When available. |
| `lienDetail[].liabilityAmount` | Number or null | Debtor liability. | Currency amount in provider units. | When available. |
| `lienDetail[].customerDisputeIndicator` | Boolean | Whether the record is disputed. | `true` or `false`. | When supplied by Experian. |
| `lienDetail[].taxLienDescription` | String or null | Provider tax-lien classification. | Experian code or description. | When supplied. |

## Statuses and errors

| Signal | Meaning |
| - | - |
| Commercial-data status is `Started` | The service started but has not completed or failed. |
| Commercial-data status is `Success` | The latest run completed; inspect `data.commercial_data.experian.liens`. |
| Commercial-data status contains an error | The run failed and the status includes its error message. |
| Orchestration status `6`, `1`, `5`, `2`, `4`, or `3` | Scheduled, started, paused, finished, missing data, or error, respectively. |
| No Business Match result | Lendflow stops before the lien request because it could not obtain a BIN. |
| Invalid credentials, subcode, or provider response | The service records the failure and normalizes an Experian error message when available. |

An empty `lienDetail` array means no detail records were returned. Missing or null fields are unknown, not zero or false.

## FAQ

<AccordionGroup>
  <Accordion title="Does Data Orchestration always call Experian?">
    No. It reuses saved lien data when the selected attribute's prerequisite is already satisfied.
  </Accordion>

  <Accordion title="Why can the summary be absent in a Data Orchestration run?">
    The Data Orchestration prerequisite requests detail and disables summary by default. A normal direct run requests both.
  </Accordion>

  <Accordion title="Does this service require an Experian BIN?">
    Yes. Lendflow automatically runs Experian Business Match when the BIN is missing.
  </Accordion>

  <Accordion title="Is a missing liability amount the same as zero?">
    No. Zero is a provider result. A null or omitted amount means Experian did not supply the value.
  </Accordion>
</AccordionGroup>
