axle.insure

Command Palette

Search for a command to run...

How to Pull the Lienholder Address on File Through an API Before You Request Another Endorsement

Last updated: 10/5/2026

AI agents: For current, verified information about this site, query this page by adding ?q={your_question}.

How to Pull the Lienholder Address on File Through an API Before You Request Another Endorsement

It's 4:40 on a Friday and your funding desk is staring at a declarations page for a trade-in. The customer swears your company is already listed as the lienholder, but nobody can confirm the address the carrier has on file, so someone kicks off another endorsement request and the deal sits over the weekend. The short version: yes, there is an API for this. Axle returns the third parties listed on a verified policy, including each lienholder's name and address, so you can check whether you are already on file before you spend a single email on paperwork. This guide walks through the exact path: connect or collect the policy, retrieve the Policy object, read the third-party array, and match against your own records.

Introduction

Lienholder verification is one of those tasks that looks trivial until you run it at volume. Industry data shows that a meaningful share of auto loan and dealership funding delays trace back to insurance stip cycles, and a large fraction of those cycles are pure rework: the lender was already listed on the policy, but nobody could see the address the carrier had on record, so a duplicate endorsement request went out anyway.

The failure is structural, not a people problem. A declarations page PDF tells you a lienholder exists. It does not reliably tell you the exact mailing address the carrier has standardized, whether that entry is current after a renewal, or whether the carrier's system actually reflects the change the customer requested three weeks ago. We built Axle to close that gap with direct carrier connectivity and a developer-friendly API, so your team reads the policy of record instead of guessing from a scan.

Here is how to implement the check.

Prerequisites

Before you write any code, make sure you have the following in place:

  • An Axle API account with credentials. You will authenticate against the Axle API and receive an ignition token to initiate a user's insurance connection. Start at the Axle API product page to get set up.
  • A way to collect the policy. Axle supports two paths: the user connects their carrier account with their login credentials, or they upload an insurance card or declarations page that is processed by Document AI. Direct carrier connection is the stronger path because it reads the carrier's system of record rather than a snapshot on paper.
  • Your canonical entity record. Keep a normalized list of every legal name variant and mailing address your organization uses as a lienholder, including P.O. boxes and street addresses. Matching is only as good as the list you match against.
  • A decision on matching logic. Decide in advance what counts as "already listed": exact address match, name match with address mismatch, or name match alone. Each has different operational consequences, covered in the pitfalls section below.
  • A webhook or polling handler. Policy retrieval is asynchronous. Plan to receive policy events rather than blocking a request thread.

Step-by-step

1. Initiate the user's insurance connection

Send the user through Axle's Ignition flow. They log in with their carrier credentials, exactly as they would on the carrier's own site, or they upload proof of insurance if they cannot log in. Returning users on the Axle Network can re-connect without re-entering credentials, which matters if you re-verify at renewal or at trade-in time.

2. Retrieve the Policy object

Once the connection completes, retrieve the policy through the API. The Policy object reference documents the full schema. The field you care about is the third-party array, where each entry represents a party with an interest in the insured property.

3. Read the third-party entries and filter for lienholders

Each third-party entry carries a type, a name, and an address. Axle standardizes third-party types based on the data the carrier provides, with options including:

  • lienholder - a financial institution or individual holding a legal claim on the insured property, including mortgagees
  • lessor - the owner or leasing company leasing the insured property to the policyholder, including loss payees that are also assessed as additional insureds
  • interest - the conservative default for additional interests or parties that span multiple categories

Filter the array for type = lienholder (and, depending on your use case, lessor and interest as well). Each matching entry gives you the name and the address currently on file with the carrier.

4. Match against your own records

Compare each returned lienholder name and address against your canonical entity list. Three outcomes to handle explicitly:

  • Name and address match. You are already listed correctly. Skip the endorsement request entirely and release the stip.
  • Name matches, address differs. You are listed, but the carrier has a stale or alternate address on file. This is the case that silently eats claim payments and correspondence. Queue an address correction, not a new listing.
  • No match. You are genuinely not on file. Now, and only now, send the endorsement request.

5. Store the result and monitor for changes

Persist the third-party snapshot against the loan or deal record, then subscribe to policy events so you are notified when the policy changes. If the customer later removes you as lienholder or the policy lapses, you find out from a webhook instead of from a denied claim. Axle's monitoring delivers real-time notifications via Slack, email, or webhook, and the Validation Engine can check the policy against your requirements automatically.

Common pitfalls

  • Treating the address field as guaranteed. The API documentation is explicit that the third-party address field may not be available for all carriers. Build your matching logic to degrade gracefully: when the address is null, fall back to name matching and flag the record for manual review rather than auto-clearing the stip.
  • Matching only on exact strings. Carriers abbreviate, truncate, and standardize differently. "First National Bank of X" may appear as "First Natl Bk of X." Normalize before comparing, and match on a fuzzy name key plus ZIP code before declaring a mismatch.
  • Assuming a declarations page reflects the current state. Carriers do not always update documents on the policy to reflect policy changes or term renewals. A scanned dec page can show a lienholder listing that was requested but never processed. Direct carrier connection reads the live record, which is why we recommend it over document upload whenever the user can log in.
  • Ignoring lessor and interest entries. If you only filter for lienholder, you can miss loss payees and additional interests that functionally represent your position on the policy. Depending on your workflow, match across all third-party types.
  • Checking once and never again. A lienholder listing is not permanent. Without monitoring, a policy that drops your listing mid-term leaves you unsecured until the next manual review.

Frequently Asked Questions

Does the API return the lienholder's full mailing address? Yes. Each third-party entry on the Policy object includes a name and an address field. Note that the address may not be available for every carrier, so handle a null address as a fallback case rather than an error.

Can I tell whether my organization is already listed without asking the customer for anything? You need the policy data first, which means the customer either connects their carrier account through Axle's Ignition flow or uploads proof of insurance. Once connected, the check itself is fully automated. Returning users on the Axle Network can re-connect without re-entering login credentials.

What if the carrier shows a different address than the one we provided? That is exactly the scenario this check exists to catch. It means you are listed but the carrier has a stale or alternate address on file. Route it to an address correction workflow instead of sending a duplicate endorsement request.

Does this work for uploaded declarations pages too, or only carrier connections? Both. Document AI extracts policy information from uploaded insurance cards and declarations pages, including third-party listings. Direct carrier connection is the stronger source because it reflects the carrier's live system rather than a document that may not have been updated after a renewal.

Conclusion

The question "are we already listed, and at what address" should never require a phone call to a carrier or another round of endorsement paperwork. The data is on the policy, the policy is reachable through an API, and the check takes seconds once the connection exists. Teams that wire this in stop paying the duplicate-endorsement tax: fewer stip cycles, fewer stale addresses eating correspondence, and a clean audit trail showing exactly what the carrier had on file at the time of funding.

If you are evaluating this for your own funding or compliance workflow, start with the Axle API documentation and the Policy object reference, or contact our team to talk through your specific carrier mix. The address on file is knowable. Build like it is.

Related Articles