NAV

Introduction

Welcome to the LossExpress Vendor API! This API is designed for use by varying third-party vendors that wish to trigger processing events within LossExpress and view the results of those events, on behalf of insurance carriers.

When going through the integration process with your organization’s systems and LossExpress, it’s important to keep in mind the idea at the core of the LossExpress product and underlying APIs: we act simply as a conduit of information, from carriers to lenders.

As a result, we have done our best when building out this API to give the power to make decisions to the carrier (where that power belongs), not ourselves, and recommend that our vendors do their best to leave decisioning to the carriers whenever possible.

Testing

Upon receiving authentication credentials, vendors are initially put into a testing phase. This is a sandbox environment where you can create and manipulate claims - and make mistakes - without affecting production data or processes. Once testing has been thoroughly completed, let us know and we will take you out of the testing phase.

Test VINs

During testing, you can create claims with these VINs to trigger actions which emulate ones that LossExpress or lenders may make for a claim.

VIN Action
JHMGE8H35DC074448 LossExpress sends a direct message for the claim
JHMGE8H35DC075558 Payoff information is attached to the claim
JHMGE8H35DC076668 Loss Express updates the claim's information
1GCHC29U62E142306 Loss Express calls the claim's lender
1GCHC29U62E147776 Loss Express attaches a document to the claim
JHMFA36246S006140 LossExpress sends a document to the claim's lender
JN1CV6AP7CM621670 A letter of guarantee is attached to the claim
1FAHP3EN7BW114135 The lender countered for the settlement

Authentication

Our Vendor API utilizes a standard OAuth 2.0 Client Credentials flow, where the external server authenticates itself using a provided client ID and client secret and is provided an access token that will be used on every request.

Once a token has been received, every request is expected to have a header that looks like the following:

Authorization: Bearer exampletokenbutreplacewithyourown

HTTP Request

POST https://xapi.lossexpress.com/oauth/token

This route is for generating OAuth tokens that can be used for all other requests.

Request Body

This route accepts a JSON payload of an object comprising of:

Body Parameter Description
clientId Your unique identifier in Loss Express systems
secret An OAuth secret provided by Loss Express

Activities

LossExpress provides a simple way to view events that have taken place within our system, relevant to an organization’s claims. We currently allow for two different methods for keeping up with the activities that can occur on a claim within LossExpress: fetching via our Activity Feed route and directly receiving via our supported webhook.

As a general rule, all Activity objects include the following keys:

Key Description
createdAt GMT timestamp marking when the Activity occured in our system
claimId The LossExpress UUID given to the claim the Activity occurred on
type A string containing one of the available Activity Types
claimNumber The claim number entered for the claim the Activity occurred on
data An object containing relevant information for the Activity
activityId A GUID uniquely identifying the activity

Fetch Activities (Activity Feed)

This route returns a paginated set of results that looks like this:

{
  "requestUrl": "https://xapi.lossexpress.com/activities?createdBefore=2021-01-08T22:03:09.598Z",
  "results": [
    ...array of activity objects
  ],
  "pagination": {
    "pageSize": 100,
    "page": 0,
    "totalPages": 3,
    "totalResults": 296
  }
}

Note that the result will return a requestUrl object, which will allow you to perfectly replay the request.

Our Activity Feed provides access to all scoped activities while allowing for a large variety of filtering options to suit any organization’s needs. One of our core tenants at LossExpress is transparency, so you may find that we provide access to too many activities. Feel free to use only what’s important to your organization!

This route will allow you to view Activities.

HTTP Request

GET https://xapi.lossexpress.com/activities

Query Parameters

Parameter Default Description
types all A comma separated list of types to view
createdBefore current time Allows for filtering activities to only those that were created before a certain timestamp
createdAfter 30 minutes earlier Allows for filtering activities to only those that were created after a certain timestamp
pageSize 100 Sets the size of pages in paginated results. Maximum is currently 500.
pageNumber 0 Sets the zero-indexed page number in paginated results.
claimId Filters the activities to only contain activities for the specific LossExpress Claim ID.
activityId Show activity types starting from the activity and moving into the future.

Note

You can only supply activityId or createdBefore in a request, not both.

Trigger Activities (Testing)

This route enables you to trigger a variety of activities that would typically be triggered by actions taken by our claim fulfillment specialists.

HTTP Request

POST https://xapi.lossexpress.com/activities/trigger-activity/{claimId}?activityType={activityType}

Query Parameters

Parameter Description
activityType Must be one of: 'direct-message-added', 'document-sent-to-lender', 'letter-of-guarantee-added', 'payoff-data-added', 'claim-updated', 'call-made', 'document-added', 'settlement-counter-added', 'payoff-request-cancelled'

Activity Feed Webhook

If you wish to be notified when activities occur for your claims, we offer real-time notifications via a webhook. After registering your URL, it will start receiving POST requests whenever activities get generated in our system.

Validating Webhook Payloads

Example HMAC header validation

const crypto = require('crypto');

const apiKey = 'your API key';
const clientId = 'your client ID';

const hmacHeader = request.headers["X-LossExpress-Signature"];
const body = request.payload;

const message = `${JSON.stringify(body)}:${clientId}`;

const generatedHmac = crypto.createHmac('sha256', apiKey)
  .update(message)
  .digest('hex');

if (generatedHmac === hmacHeader) {
  // Webhook is valid!
}

To help you verify that webhook requests are valid and come from us, we provide the following:

By recreating the HMAC hash and comparing it with the request's X-LossExpress-Signature header, you can determine whether the request was generated using the secret API key. As long as you keep the API key secret, matching HMACs indicate that the request is valid and comes from our system.

Register Webhook

This endpoint can be used to set your webhook's URL. A test payload (a direct-message-added activity) will be sent to the provided URL, and a response with a 200 status code is expected.

This endpoint also generates an API key secret that can be used to validate incoming payloads. A new API key is generated whenever this endpoint is used, and it can be retrieved anytime via the Fetch Webhook Information endpoint.

HTTP Request

POST https://xapi.lossexpress.com/activities/webhook

Key Description
endpoint The URL that will receive your activity feed data.
types Allows you to subscribe to and only be sent specific activity types. This optional parameter accepts either the string "all" or an array of activity type strings.

If your endpoint returns a status code of 200, this route returns a success object that looks like this:

{
  "success": true,
  "statusCode": 200,
}

Note that the result will return a success: false object, if your endpoint does not yield a 200.

Fetch Webhook Information

For fetching information about your webhook status, current endpoint, and API key.

HTTP Request

GET https://xapi.lossexpress.com/activities/webhook-info

This route returns an object with your webhook information that looks like this:

{
  "success": true,
  "webhookInfo": {
    "endpoint": "https://yourendpointthatreturnsa200.com",
    "verified": true,
    "apiKey": "exampleapikey1234",
    "activityTypeSubscriptions": [ "order-status-changed", "direct-message-added", "claim-updated" ]
  }
}

Deactivate Webhook

For deactivating your current webhook, this will not delete your entry and you can turn your webhook back on by using the POST route in the 'Register Webhook' section.

HTTP Request

PUT https://xapi.lossexpress.com/carriers/deactivate-webhook

Activity Types

List of Types

Below is a list of Activity Types that will be available within the Activity Feed:

Type Will appear when... Triggered by
account-number-viewed Account number is viewed LossExpress
call-made A call is made by LossExpress LossExpress
claim-created A claim is originally created Carrier
claim-updated A claim's primary information is updated Carrier/LossExpress
direct-message-added A direct message is added to a claim Carrier/LossExpress
document-added A document is added to a claim Carrier/LossExpress
document-sent-to-lender A document is sent to a lender LossExpress
letter-of-guarantee-added A letter of guarantee is added to a claim LossExpress
letter-of-guarantee-request-created A letter of guarantee request is created on a claim Carrier
letter-of-guarantee-request-cancelled A letter of guarantee request on a claim has been cancelled Carrier/LossExpress
lender-alias-verified A lender has been verified as an alias of an existing lender LossExpress
new-lender-verified A lender has been verified as a new lender to our system LossExpress
order-attempted An attempt to fulfill an order has been added to claim LossExpress
order-created A new order has been added to a claim Carrier
order-cancelled An order on a claim has been cancelled Carrier/LossExpress
order-fulfilled An order on a claim has been successfully fulfilled LossExpress
order-status-changed The status for an order has changed LossExpress
order-updated An order on a claim has been updated LossExpress
payment-sent Payment has been sent for a claim Carrier
payoff-data-added Payoff information is added to a claim LossExpress
payoff-request-created A payoff request is created on a claim Carrier
payoff-request-cancelled A payoff request on a claim has been cancelled Carrier/LossExpress
request-pending-lender-contacted The lender has been contacted on behalf of the carrier LossExpress
settlement-counter-added A lender adds a counter to the proposed settlement amount LossExpress
settlement-counter-updated The settlement counter is either accepted or disputed by the carrier Carrier

account-number-viewed

account-number-viewed example object

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "account-number-viewed",
  "claimNumber": "EXAMPLE1",
  "externalId": "COO-30022",
  "data": {
    "viewedByLossExpress": true
  }
}

This activity type will appear in the feed whenever an account number is viewed by someone on LossExpress.

call-made

call-made example object

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "call-made",
  "claimNumber": "EXAMPLE2",
  "externalId": "COO-30022",
  "data": {
    "callLength": 30 // in minutes
  }
}

This activity type will appear in the feed whenever a call was made on behalf of the carrier by LossExpress.

claim-created

claim-created example object

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "claim-created",
  "claimNumber": "EXAMPLE3",
  "externalId": "COO-30022",
  "data": {
    "accountNumber": "TEST-AN",
    "adjusterName": "Mike Mclaren",
    "adjusterEmailAddress": "mike@lossexpress.com",
    "adjusterPhoneNumber": "+13332225555",
    "causeOfLoss": "Fire",
    "dateOfLoss": "2020-10-20",
    "deductible": 400,
    "financeType": "Retail",
    "insurerType": "First Party",
    "lenderName": "Test Lender",
    "lenderId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
    "odometer": 39993,
    "ownersName": "Test Owner",
    "ownersPhoneNumber": "+12223334444",
    "ownerRetained": false,
    "ownersStreetAddress": "12200 Test Avenue Dallas TX 75204",
    "settlementAmount": 5553,
    "titleRemittanceAddress": "1000 Main Street Dallas TX 75204",
    "vehicle": {
      "make": "TEST",
      "model": "Car",
      "year": 2034
    },
    "vehicleLocation": "1200 Main Street Dallas TX 75204",
    "vin": "1N4AL3AP8JC231503"
  }
}

This activity type will appear in the feed whenever a claim is created in our system by a carrier. This activity will contain in its data all claim information that had been passed on create along with Make/Model/Year information for the VIN passed, if available. Any information not sent on creation will not appear in the data object and would appear as undefined when parsed.

If desired, we do give carriers the ability to not have account numbers added to this event type for security purposes.

claim-updated

claim-updated example object

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "claim-updated",
  "claimNumber": "EXAMPLE3",
  "externalId": "COO-30022",
  "data": {
    "update": { // contains the updated information
      "accountNumber": "TEST-AN1"
    },
    "previous": { // contains the information just prior to update
      "accountNumber": "TEST-AN"
    },
    "updatedByLossExpress": true
  }
}

This activity type will appear in the feed whenever primary claim information is updated. In LossExpress, we define primary claim information as any piece of data that can be sent in the update or create claim routes. Updated claim data may include any claim parameters.

Note that this activity type could be triggered by actions made by LossExpress. Some examples that could cause LossExpress to trigger this activity type:

direct-message-added

direct-message-added example object (sent by LossExpress)

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "direct-message-added",
  "claimNumber": "EXAMPLE3",
  "externalId": "COO-30022",
  "data": {
    "sentByLossExpress": true,
    "message": "A photo of the odometer reading is required.",
    "category": "ADDITIONAL INFORMATION REQUIRED (NON-DISPUTE)",
    "actionRequired": true
  }

direct-message-added example object (sent by carrier user)

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "direct-message-added",
  "claimNumber": "EXAMPLE3",
  "externalId": "COO-30022",
  "data": {
    "sentByLossExpress": false,
    "message": "The LoG looks to have the wrong settlement amount, please get an LoG with the proper amount. Thanks!",
    "sentBy": "User Name",
    "actionRequired": false
  }
}

direct-message-added example object (Including the orders array)

{
            "activityId": "19c2c62f-0437-5657-b745-09e73b878bd3",
            "claimId": "39a7617f-296f-44e3-a080-32e95cdf7d27",
            "claimNumber": "DMtest30",
            "createdAt": "2022-05-10T21:11:55.153Z",
            "data": {
                "sentByLossExpress": true,
                "message": "Attention Needed: A loan/lease account is unable to be located with the account information provided. Confirmation of account information, specifically the account number, will need to be provided in order for a Copy of Title, Letter of Guarantee to continue to be processed. If the account number is confirmed as being the same as previously provided, the loan/lease account may be at a different financial institution.",
                "category": "OTHER",
                "actionRequired": true,
                "orders": [
                    {
                        "orderType": "Copy of Title",
                        "orderId": "618bf9ac-ed18-4d19-9861-ef387bd390a4"
                    },
                    {
                        "orderType": "Letter of Guarantee",
                        "orderId": "47b521f0-7e82-41b7-b9e2-79e120f72588"
                    }
                ]
            },
            "externalId": "306126",
            "type": "direct-message-added"
        },

This activity type will appear in the feed whenever a direct message is added to a claim, either by LossExpress or by a carrier user.

When a direct message is sent from LossExpress, you can expect to see a category value passed in the activity data. The following values are currently supported:

Category
TITLE
ADDITIONAL INFORMATION REQUIRED (NON-DISPUTE)
SETTLEMENT DISPUTE
OWNER RETAINED SETTLEMENT
BANKRUPTCY
CUSTOMER AUTHORIZATION
GENERAL
OTHER

For DM activities where actionRequired: true, an orders array will be included in the data object containing the orderType and orderId of the corresponding orders. If actionRequired: false, there will not be an orders array.

document-added

document-added example object

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "document-added",
  "claimNumber": "EXAMPLE3",
  "externalId": "COO-30022",
  "data": {
    "type": "settlement breakdown",
    "documentUrl": "https://xapi.lossexpress.com/documents/555ae9da-9222-4de5-81fe-fe1ac590fa0f",
    "sentByLossExpress": false,
    "sentBy": "John Doe"
  }
}

This activity type will appear in the feed whenever a document has been added to a claim.

Note that when sentByLossexpress is true, this indicates that the document was attached to the claim by LossExpress, not a carrier user, and sentBy will be null.

document-sent-to-lender

document-sent-to-lender example object

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "document-sent-to-lender",
  "claimNumber": "EXAMPLE3",
  "externalId": "COO-30022",
  "data": {
    "documentUrl": "https://xapi.lossexpress.com/documents/555ae9da-9222-4de5-81fe-fe1ac590fa0f"
  }
}

This activity type is added to the feed whenever a document is sent by LossExpress to the lender for a particular claim. The documentUrl contains a link to the document that was sent to the lender.

letter-of-guarantee-added

letter-of-guarantee-added example object

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "letter-of-guarantee-added",
  "claimNumber": "EXAMPLE3",
  "externalId": "COO-30022",
  "data": {
    "documentUrl": "https://xapi.lossexpress.com/documents/555ae9da-9222-4de5-81fe-fe1ac590fa0f",
    "xLoG": true
  }
}

This activity type is added to the feed whenever a letter of guarantee is added to a claim. The documentUrl contains a link to the letter of guarantee that was received. When a customer has requested additional information on whether the document is an xLOG or not, the "xLoG" boolean field will be added to the result.

letter-of-guarantee-request-created

letter-of-guarantee-request-created example object

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "letter-of-guarantee-request-created",
  "claimNumber": "EXAMPLE3",
  "externalId": "COO-30022",
  "data": {
    "estimatedResponseTime": "2021-01-20T22:03:09.598Z"
  }
}

This activity type is added to the feed whenever a letter of guarantee request is created for a claim.

Note that although we typically request letters of guarantee whenever we reach out to a lender, we do not follow-up on the status of letters of guarantee nor can we absolutely guarantee that a letter of guarantee will be added to a claim unless a letter of guarantee request is created on a claim.

letter-of-guarantee-request-cancelled

letter-of-guarantee-request-cancelled example object

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "letter-of-guarantee-request-cancelled",
  "claimNumber": "EXAMPLE3",
  "externalId": "COO-30022",
  "data": {}
}

This activity type is added to the feed whenever a letter of guarantee request is cancelled for a claim.

lender-alias-verified

lender-alias-verified example object

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "lender-alias-verified",
  "claimNumber": "EXAMPLE3",
  "externalId": "COO-30022",
  "data": {
    "previousLenderId": "4ace4d96-2b7f-425e-a3c7-d162879a792b",
    "lenderId": "a720ef63-e6f5-4fed-bbf8-0edcd6eb8485",
    "lenderName": "EXAMPLE NEW LENDER ALIAS"
  }
}

This activity type is added to the feed whenever a lender is verified as an alias for an existing lender.

new-lender-verified

new-lender-verified example object

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "new-lender-verified",
  "claimNumber": "EXAMPLE3",
  "externalId": "COO-30022",
  "data": {
    "lenderId": "a720ef63-e6f5-4fed-bbf8-0edcd6eb8485",
    "lenderName": "EXAMPLE NEW LENDER"
  }
}

This activity type is added to the feed whenever a lender is verified as a new lender to our system.

order-attempted

order-attempted example object

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "order-attempted",
  "claimNumber": "EXAMPLE3",
  "externalId": "COO-30022",
  "data": {
    "type": "Payment History",
    "message": "Lender unable to find requested document",
    "count": 2,
    "orderId": "93f0983d-5702-4bf4-9728-86d425edd7d5"
  }
}

This activity type is added to the feed whenever an attempt on an order is made.

Key Value
type The type of order
message The note related to the order attempt
count The current number of attempts on the order
orderId The specific identification number for the order that was attempted

order-created

order-created example object

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "order-created",
  "claimNumber": "EXAMPLE3",
  "externalId": "COO-30022",
  "data": {
    "orderId": "24907dea-2bd2-4547-bae6-8305b4256256",
    "orderType": "Copy of Title"
  }
}

This activity type is added to the feed whenever an order is created for a claim.

order-cancelled

order-cancelled example object

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "order-cancelled",
  "claimNumber": "EXAMPLE3",
  "externalId": "COO-30022",
  "data": {
    "orderId": "24907dea-2bd2-4547-bae6-8305b4256256"
  }
}

This activity type is added to the feed whenever an order is cancelled for a claim.

order-fulfilled

order-fulfilled example object

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "order-fulfilled",
  "claimNumber": "EXAMPLE3",
  "data": {
    "orderId": "24907dea-2bd2-4547-bae6-8305b4256256",
    "orderType": "Copy of Title",
    "documentUrl": "https://xapi.lossexpress.com/documents/555ae9da-9222-4de5-81fe-fe1ac590fa0f"
  }
}

This activity type is added to the feed whenever an order is fulfilled for a claim. If the order utilizes a document, it can be accessed via the documentUrl.

order-status-changed

order-status-changed example object

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "order-status-changed"
  "claimNumber": "EXAMPLE3",
  "externalId": "COO-30022",
  "data": {
    "updatedOrder": {
      "orderId": "8ebc4790-a0cb-40f8-bff7-140b9f0260cc",
      "orderType": "Letter of Guarantee",
      "status": "fulfilled",
      "documentUrl": "https://xapi-dev.lossexpress.com/documents/fb498779-7464-469f-bb3b-a6d647cf7541"
    },
    "orders": [
      {
        "orderId": "bce319ea-11f2-4965-821d-c36bca62b506",
        "orderType": "Copy of Title",
        "status": "pending",
      },
      {
        "orderId": "8ebc4790-a0cb-40f8-bff7-140b9f0260cc",
        "orderType": "Letter of Guarantee",
        "status": "fulfilled",
        "documentUrl": "https://xapi.lossexpress.com/documents/fb498779-7464-469f-bb3b-a6d647cf7541"
      },
      {
        "orderId": "c60fe8f7-653a-47a6-acaa-e23f46a603bb",
        "orderType": "Loan Payoff Request",
        "status": "fulfilled",
        "documentUrl": "https://xapi.lossexpress.com/documents/d48e2ff8-cb79-49fd-ad6c-f5a35e5525cf"
        "fulfillmentData": {
          "payoffAmount": 99999,
          "perDiem": 10,
          "validThroughDate": "2022-04-01T21:28:40.256Z",
          "remittanceInformation": {
            "standard": {
              "attn": "That Person",
              "streetAddress": "77 E No St",
              "city": "No",
              "state": "CO",
              "zipCode": "90000",
              "makeCheckPayableTo": "Some Entity"
            },
            "overnight": {
              "streetAddress": "55 Address Place",
              "city": "City",
              "state": "CA",
              "zipCode": "10011",
              "streetAddress2": "2",
              "makeCheckPayableTo": "Some Entity"
            }
          }
        },
      }
    ]
  },
}

This activity type is added to the feed whenever the status for an order is changed (typically to fulfilled or cancelled).

The actvity data includes an updatedOrder object for the order who's status was changed, as well as an orders array that includes all of the claim's orders. The orders array allows you to compare a claim's order statuses and data as they existed at the moment the activity was generated.

Each order object, whether the updatedOrder or those in the orders array will have the following structure:

Key Description Will be included when...
orderId The LossExpress UUID for the order Always
orderType The order's type Always
status pending, fulfilled, or cancelled Always
documentUrl A URL that can be used to fetch a document attached to an order A document was attached to the order during fulfillment
fulfillmentData Data pertaining to the order's fulfillment Various data was gathered in order to fulfill the order

order-updated

order-updated example object

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "order-updated",
  "claimNumber": "EXAMPLE3",
  "externalId": "COO-30022",
  "data": {
    "orderId": "24907dea-2bd2-4547-bae6-8305b4256256",
    "nextFollowupDate": "2021-08-31"
  }
}

This activity type is added to the feed whenever an order is updated for a claim.

payment-sent

payment-sent example object

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "payment-sent",
  "claimNumber": "EXAMPLE3",
  "externalId": "COO-30022",
  "data": {
    "checkAmount": 20000,
    "sentAt": "2021-01-08T22:03:09.598Z",
    "sentTo": {
      "streetAddress": "1000 Main Street",
      "streetAddress2": "Ste. 500",
      "city": "Dallas",
      "state": "TX",
      "zipCode": "75204"
    },
    "sentVia": "USPS",
    "trackingNumber": "EXAMPLENUMBER"
  }
}

This activity type is added to the feed whenever acknowledgement that payment has been sent has been added to LossExpress; this can be trigged by either the carrier or our payment processing partner, if that partner is enabled in the carrier's system and set-up properly in LossExpress.

payoff-data-added

payoff-data-added example object

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "payoff-data-added",
  "claimNumber": "EXAMPLE3",
  "externalId": "COO-30022",
  "data": {
    "payoffAmount": 10222.33,
    "perDiem": 2.3,
    "validThroughDate": "2021-01-18T00:00:00.000Z",
    "remittanceInformation": {
      "standard": {
        "makeCheckPayableTo": "ALLY FINANCIAL",
        "attn": "ATTN LINE",
        "streetAddress": "1000 Main Street",
        "streetAddress2": "Ste. 500",
        "city": "Dallas",
        "state": "TX",
        "zipCode": "75204"
      },
      "overnight": {
        "makeCheckPayableTo": "ALLY FINANCIAL",
        "attn": "ATTN LINE",
        "streetAddress": "1000 Main Street",
        "streetAddress2": "Ste. 500",
        "city": "Dallas",
        "state": "TX",
        "zipCode": "75204"
      }
    },
    "documentUrl": "https://xapi.lossexpress.com/documents/555ae9da-9222-4de5-81fe-fe1ac590fa0f"
  }
}

This activity type is added to the feed whenever payoff data is added to a claim.

payoff-request-created

payoff-request-created example object

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "payoff-request-created",
  "claimNumber": "EXAMPLE3",
  "externalId": "COO-30022",
  "data": {}
}

This activity type is added to the feed whenever a payoff request is created on a particular claim.

payoff-request-cancelled

payoff-request-cancelled example object

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "payoff-request-cancelled",
  "claimNumber": "EXAMPLE3",
  "externalId": "COO-30022",
  "data": {}
}

This activity type is added to the feed whenever a payoff request is cancelled on a particular claim.

request-pending-lender-contacted

request-pending-lender-contacted example object

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "request-pending-lender-contacted",
  "claimNumber": "EXAMPLE2",
  "data": {}
}

This activity type will appear in the feed whenever a lender is contacted by LossExpress on behalf of the carrier.

settlement-counter-added

settlement-counter-added example object

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "settlement-counter-added",
  "claimNumber": "EXAMPLE3",
  "data": {
    "description": "missing options",
    "documentUrl": "https://xapi.lossexpress.com/documents/555ae9da-9222-4de5-81fe-fe1ac590fa0f"
  }
}

This activity type is added to the feed whenever a settlement counter is added to a claim by a lender. Typically, this comes with a document that can be accessed via the documentUrl.

settlement-counter-updated

settlement-counter-updated example object (dispute)

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "settlement-counter-updated",
  "claimNumber": "EXAMPLE3",
  "externalId": "COO-30022",
  "data": {
    "disputed": true,
    "reasonForDispute": "Vehicle is not missing any options, verified in person."
  }
}

settlement-counter-updated example object (accepted)

{
  "activityId": "fed62fa0-c048-46b5-b994-6e3e69fb0f37",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "type": "settlement-counter-updated",
  "claimNumber": "EXAMPLE3",
  "externalId": "COO-30022",
  "data": {
    "disputed": false,
    "documentUrl": "https://xapi.lossexpress.com/documents/555ae9da-9222-4de5-81fe-fe1ac590fa0f"
  }
}

This activity type is added to the feed whenever a settlement counter is either accepted or disputed by the carrier. documentUrl will contain a link to the settlment breakdown passed to the lender with the new settlement amount.

Carriers

In order to create a claim using the LossExpress API, all vendors must pass in a LossExpress UUID associated with that carrier in our system. You can manage carriers in our system using the routes in this section.

Create Carrier

Example Response:

{
  "carrierId": "150ae9da-9222-4ca5-43fe-fe1dc650fa0f"
}

This route allows vendors to create a carrier in our system and associate it with their account.

HTTP Request

POST https://xapi.lossexpress.com/carriers

Request Body

This route accepts a JSON payload of an object comprising of:

Body Parameter Description Required?
businessName The name the carrier places on documentation related to claims Y

View Carriers

Example Response:

{
  "carriers": [
    {
      "carrierId": "150ae9da-9222-4ca5-43fe-fe1dc650fa0f",
      "carrierName": "LossExpress Test Carrier"
    }
  ]
}

HTTP Request

GET https://xapi.lossexpress.com/carriers

Claims

Example Claim Object

{
  "accountNumber": "TEST-AN",
  "adjusterName": "Mike Mclaren",
  "adjusterEmailAddress": "mike@lossexpress.com",
  "adjusterPhoneNumber": "+13332225555",
  "causeOfLoss": "Fire",
  "carrierId": "150ae9da-9222-4ca5-43fe-fe1dc650fa0f",
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "claimNumber": "EXAMPLE3",
  "createdAt": "2021-01-08T22:03:09.598Z",
  "dateOfLoss": "2020-10-20",
  "deductible": 400,
  "documents": [
    {
      "createdAt": "2021-01-08T22:03:09.598Z",
      "updatedAt": "2021-01-08T22:03:09.598Z",
      "documentUrl": "https://xapi.lossexpress.com/documents/555ae9da-9222-4de5-81fe-fe1ac590fa0f",
      "type": "settlement breakdown & valuation report"
    }
  ],
  "externalId": "COO-30022",
  "financeType": "Retail",
  "insurerType": "First Party",
  "lenderName": "Test Lender",
  "lenderId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "letterOfGuaranteeRequest": {
    "createdAt": "2021-01-08T22:03:09.598Z",
    "updatedAt": "2021-01-08T22:03:09.598Z",
    "documentUrl": "https://xapi.lossexpress.com/documents/555ae9da-9222-4de5-81fe-fe1ac590fa0f",
  },
  "odometer": 39993,
  "ownersName": "Test Owner",
  "ownersPhoneNumber": "+12223334444",
  "ownerRetained": false,
  "ownersStreetAddress": "12200 Test Avenue Dallas TX 75204",
  "payoffData": {
    "createdAt": "2021-01-08T22:03:09.598Z",
    "updatedAt": "2021-01-08T22:03:09.598Z",
    "payoffAmount": 10222.33,
    "perDiem": 2.3,
    "validThroughDate": "2021-01-18T00:00:00.000Z",
    "remittanceInformation": {
      "standard": {
        "makeCheckPayableTo": "ALLY FINANCIAL",
        "attn": "ATTN LINE",
        "streetAddress": "1000 Main Street",
        "streetAddress2": "Ste. 500",
        "city": "Dallas",
        "state": "TX",
        "zipCode": "75204"
      },
      "overnight": {
        "makeCheckPayableTo": "ALLY FINANCIAL",
        "attn": "ATTN LINE",
        "streetAddress": "1000 Main Street",
        "streetAddress2": "Ste. 500",
        "city": "Dallas",
        "state": "TX",
        "zipCode": "75204"
      }
    }
  },
  "settlementAmount": 5553,
  "titleRemittanceAddress": {
    "streetAddress": "1000 Main Street",
    "streetAddress2": "Suite 400",
    "city": "Dallas",
    "state": "TX",
    "zipCode": "75204"
  },
  "titledOwners": [
    {
      "type": "person",
      "name": "Bob Dobbs",
      "streetAddress": "1234 Slack St.",
      "city": "Dallas",
      "state": "TX",
      "zipCode": "75217"
    }
  ],
  "titledState": "TX",
  "titleTransfer": {
    "isSalvage": true,
    "titleTransferDate": "2021-01-08T22:03:09.598Z",
    "titleNumber": "1234567890",
    "requestedFormat": "DIGITAL",
    "odometerExempt": true,
    "odometerExemptReason": "exceeds mechanical limit",
    "existingFormat": "PAPER",
    "representative": {
      "name": "Murray Bookchin",
      "title": "Adjuster",
      "emailAddress": "bookchin@lossexpress.com",
    },
    "requestedBrand": "FIRE",
    "damages": [ "VANDALISM" ],
  },
  "updatedAt": "2021-01-08T22:03:09.598Z",
  "vehicle": {
    "make": "TEST",
    "model": "Car",
    "year": 2034
  },
  "vehicleLocation": "1200 Main Street Dallas TX 75204",
  "vin": "1N4AL3AP8JC231503"
}

The routes in the section are scoped specifically to claims. Our Vendor API provides a couple ways to search and fetch claim information on top of the ability to create claims.

The Claim object itself contains the following keys:

Object Key Description
accountNumber The customer's account number for the loan associated with the claim
adjusterName The primary adjuster for the claim
adjusterEmailAddress The email address associated with the primary adjuster for the claim
adjusterPhoneNumber The phone number associated with the primary adjuster for the claim
carrierId The LossExpress UUID associated with the carrier that the claim should be filed under
causeOfLoss The cause of loss listed on the claim. These causes can be one of the following: "Single-Vehicle Collision", "Multi-Vehicle Collision", "Collision", "Wind/Hail", "Fire", "Flood", "Vandalism", "Theft", "Water", "Other"
claimId The LossExpress UUID associated with the claim
claimNumber The claim number as noted by the carrier
createdAt The timestamp the claim was created in the system
dateOfLoss The date the loss occurred
deductible The current deductible for the payoff
documents An array of Document objects
externalId A string that can contain any identifier desired; not used by LossExpress, but passed on all claim activities for easier handling. There are no unique checks on this field.
financeType Either "Retail" or "Lease"
insurerType Either "First Party" or "Third Party"
lenderName The lender's name
lenderId The LossExpress UUID associated with that lender, if that lender exists in our lender database
letterOfGuaranteeRequest A letter of guarantee request object, containing basic information about the letter of guarantee request
odometer The mileage on the vehicle associated with the claim
ownersName The vehicle owner's name
ownersPhoneNumber The vehicle owner's phone number
ownersRetained Whether the owner is retaining the vehicle (boolean)
ownersStreetAddress The full address of the vehicle owner
payoffData A Payoff Data object
settlementAmount The settlement amount for the claim
titleRemittanceAddress The full address that the vehicle title should be sent to
updatedAt The timestamp the claim was last updated; this can happen in a number of scenarios and is not recommended to be used to track claim changes - please use the activity feed instead
vehicle A vehicle object containing the make, model, and year of the vehicle, if available
vehicleLocation The full address where the vehicle is located, if different from the titleRemittanceAddress
vin The Vehicle Identification Number for the vehicle on the claim

Fetch Claim

Example Response:

{
  "claim": ...claim object,
  "requestUrl": "https://xapi.lossexpress.com/claims/c30ae9da-9222-4de5-81fe-fe1ac590fa0f"
}

This route allows for access to a claim's data in one location.

HTTP Request

GET https://xapi.lossexpress.com/claims/{claimId}

URL Parameters

Parameter Description
claimId The LossExpress UUID associated with the claim

Create Claim

Create Claim Response:

STATUS 201

{
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f"
}

This route creates a claim in LossExpress, which can be used to generate requests.

HTTP Request

POST https://xapi.lossexpress.com/claims

Request Body

This route accepts a JSON payload of an object comprising of:

Body Parameter Description Required?
accountNumber The customer's account number for the loan associated with the claim N
adjusterName The primary adjuster for the claim N
adjusterEmailAddress The email address associated with the primary adjuster for the claim N
adjusterPhoneNumber The phone number associated with the primary adjuster for the claim N
carrierId The GUID of the carrier associated with the claim Y
causeOfLoss The cause of loss listed on the claim. These causes can be one of the following: "Single-Vehicle Collision", "Multi-Vehicle Collision", "Wind/Hail", "Fire", "Flood", "Vandalism", "Theft", "Other" N
claimNumber The claim number as noted by the carrier Y
dateOfLoss The date the loss occurred N
deductible The current deductible for the payoff N
externalId A string that can contain any identifier desired; not used by LossExpress, but passed on all claim activities for easier handling. There are no unique checks on this field. N
financeType Either "Retail" or "Lease" Y
insurerType Either "First Party" or "Third Party" N
lenderName The lender's name Y (if lenderId not passed)
lenderPhoneNumber The lender's phone number N
lenderAddress The lender's address - an object with keys consisting of streetAddress, streetAddress2 (suite #, etc), city, state, zipCode N
lenderId The LossExpress ID for the lender Y (if lenderName not passed)
odometer The mileage on the vehicle associated with the claim N
ownersName The vehicle owner's name N
ownersPhoneNumber The vehicle owner's phone number N
ownersRetained Whether the owner is retaining the vehicle (boolean) N
ownersStreetAddress The full address of the vehicle owner N
settlementAmount The settlement amount for the claim N
titledOwners An array of objects containing data for each titled owner N
titleRemittanceAddress The full address that the vehicle title should be sent to N
titledState The two-character abbreviation of the state listed on the vehicle's title N
titleTransfer An object containing various data required for title transfer orders N
vehicleLocation The full address where the vehicle is located, if different from the titleRemittanceAddress N
vin The Vehicle Identification Number for the vehicle on the claim Y

titledOwners

The titledOwners parameter must be an array of objects with the following structure:

Parameter Description Required?
type Must be one of: 'person', 'dealer', 'company', 'trust' Y
name The owner's name as listed on the title Y
phoneNumber The owner's phone number N
streetAddress The owner's street address Y
streetAddress2 Address line 2 (apartment number, etc) N
city The owner's city Y
state The 2-character abbreviation for the owner's state Y
zipCode The 5-character zip code for the owner's address Y

titleTransfer

The titleTransfer object can include the following parameters:

Parameter Description Required?
damages An array containing vehicle damages. See possible values below. Y (if isSalvage is true)
existingFormat The format of the existing title (must be one of: PAPER, DIGITAL) Y
isSalvage A boolean indicating whether the title transfer is for a salvage Y
odometerExempt A boolean indicating whether the vehicle is exempt from mileage disclosure. Y
odometerExemptReason The reason for the mileage disclosure exemption. For example, if the mileage exceeds the odometer's mechanical limit or if the odometer has been tampered with. Y (if odometerExempt is true)
odometerReadDate The date that the odometer value was read Y (if odometerExempt is false)
representative An object containing information about the representative for the acquiring party Y
requestedBrand Branding to be used for the title. See possible values below. Y (if isSalvage is true)
requestedFormat The format that the new title should be issued as (must be one of: PAPER, DIGITAL) Y
titleNumber The existing title's number Y
titleTransferDate The date that the title transfer should occur Y

titleTransfer.representative

The titleTransfer object must include the following parameters:

Parameter Description Required?
name The representative's name Y
title The representative's title Y
emailAddress The representative's email address Y

titleRemittanceAddress

While we accept a single string for titleRemittanceAddress for most orders, an address object can also be provided. For title transfers in particular, an address object is required.

Parameter Required?
streetAddress Y
streetAddress2 N
city Y
state Y
zipCode Y

Update Claim

Update Claim response body:

{
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  ...claim object (with updated claim info)
}

This route allows for updating a claim. It is recommended that you only pass in data that has been changed, as opposed to a full object payload. This is recommended to reduce the size and complexity of claim-updated activities.

HTTP Request

PUT https://xapi.lossexpress.com/claims/{claimId}

URL Parameters

Parameter Description
claimId The LossExpress UUID associated with the claim

Request Body

This route accepts a JSON payload of an object comprising of:

Body Parameter Description Required?
accountNumber The customer's account number for the loan associated with the claim N
adjusterName The primary adjuster for the claim N
adjusterEmailAddress The email address associated with the primary adjuster for the claim N
adjusterPhoneNumber The phone number associated with the primary adjuster for the claim N
causeOfLoss The cause of loss listed on the claim. These causes can be one of the following: "Single-Vehicle Collision", "Multi-Vehicle Collision", "Wind/Hail", "Fire", "Flood", "Vandalism", "Theft", "Other" N
claimNumber The claim number as noted by the carrier N
dateOfLoss The date the loss occurred N
deductible The current deductible for the payoff N
externalId A string that can contain any identifier desired; not used by LossExpress, but passed on all claim activities for easier handling. There are no unique checks on this field. N
financeType Either "Retail" or "Lease" N
insurerType Either "First Party" or "Third Party" N
lenderId The LossExpress UUID for the lender N
lenderName The lender's name N
odometer The mileage on the vehicle associated with the claim N
ownersName The vehicle owner's name N
ownersPhoneNumber The vehicle owner's phone number N
ownersRetained Whether the owner is retaining the vehicle (boolean) N
ownersStreetAddress The full address of the vehicle owner N
settlementAmount The settlement amount for the claim N
titledOwners An array of objects containing data for each titled owner N
titleRemittanceAddress The full address that the vehicle title should be sent to N
titledState The two-character abbreviation of the state listed on the vehicle's title N
titleTransfer An object containing various data required for title transfer orders N
vehicleLocation The full address where the vehicle is located, if different from the titleRemittanceAddress N
vin The Vehicle Identification Number for the vehicle on the claim N

Search Claims

Search Claims response body:

Status: 200

{
  "claims": [
    ...claim information
  ],
}

This route allows for searching our claims database for records. This route can return multiple claims in certain scenarios.

HTTP Request

GET https://xapi.lossexpress.com/claims

Query Parameters

Parameters Description
vin Vehicle Identification Number to search by
claimNumber Claim number to search by (case insensitive)

Direct Messages

Create Direct Message

Example Response Body:

{
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "message": "Test message."
}

This route allows for sending a direct message to our Claim Specialists.

HTTP Request

POST https://xapi.lossexpress.com/claims/{claimId}/direct-messages

URL Parameters

Parameter Description
claimId The LossExpress UUID associated with the claim

Request Body

This route accepts a JSON payload of an object comprising of:

Body Parameter Description Required?
message The direct message to be sent to LossExpress Y

Embed Direct Messages

This allows for the above Direct Message functionality to be embedded into an iframe, serving the same experience we currently offer via our interface.

https://{subdomain}.lossexpress.com/direct-messages/{claimId}/{oauthToken}

URL Parameters

Parameter Description
subdomain The subdomain associated with carrier/vendor
claimId The LossExpress UUID associated with the claim
oauthToken The token received via secret and clientId

Documents

Document Types

Some documents are required in order to receive a payoff quote. The accepted (case-insensitive) standard document types for a claim are:

Description Required
settlement breakdown Y (if carrier configuration does not allow combined documents)
valuation report Y (if carrier configuration does not allow combined documents)
total loss evaluation Y (if valuation report is not added, and carrier configuration does not allow combined documents)
valuation report & settlement breakdown Y (if carrier configuration allows combined documents)
title image signed N (required for title transfers)
lien release signed N (required for title transfers with liens)
odometer disclosure signed N (required for title transfers unless odometer is exempt)
bill of sale signed N (required for title transfers)
cause of loss N
cause of loss statement N
police report N
declaration page N
proof of payment N
other N

Add Document to Claim

Example Response Body:

{
  "documentUrl": "https://xapi.lossexpress.com/documents/c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
}

This route allows for adding documents to claims

HTTP Request

POST https://xapi.lossexpress.com/claims/documents/{claimId}

Request Body

This route accepts a JSON payload of an object comprising of:

Parameter Description
document A base64-encoded file string. Acceptable formats: pdf, jpeg, jpg, tiff, gif, png
documentUrl A url that points to a downloadable file of the above formats
description A brief description of the document (eg, Settlement Breakdown)

Fetch Document

This route allows for fetching documents from our system as PDFs. Any activity that references a document in our system will include a URL for this request.

HTTP Request

GET https://xapi.lossexpress.com/documents/{documentId}

Lenders

Example Lender Object

{
  "lenderId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "lenderName": "Test Lender",
  "aliases": [
    "Test Lender Bank",
    "Bank of Test Lender"
  ],
  "integratedPayoff": true
}

The route in this section is meant to be used for providing a robust search solution for the end users of our vendor partners. We do not currently provide an index containing all of our lenders, as that information is frequently updated and added to.

The Lender object itself contains the following keys:

Object Key Description
aliases An array of strings containing common aliases that have been indexed in LossExpress for this lender
integratedPayoff true when a lender can return a payoff via integration; false for lenders that are not fully integrated with LossExpress for payoff information
lenderId The LossExpress UUID for the lender
lenderName The name of the lender in LossExpress

Search Lenders

Example Search Response:

{
  "lenders": [
    ...lender objects,
  ],
  "requestUrl": "https://xapi.lossexpress.com/lenders?name=Test%20Lender"
}

This route allows for searching LossExpress's lender database for matches. We recommend showing a full list of the lenders returned for selection by the end user, while also allowing users to move forward with the text they've entered, in case there is no exact match.

Lenders with aliases that match the text provided are also returned in this query. We recommend displaying information to the user notifying them that the text they've entered is an alias for another lender in this situation.

If a lender is not found in our database, simply pass the lender name in place of a lenderId when creating a claim in LossExpress, and our team will add the lender to the database for future requests, if possible.

HTTP Request

GET https://xapi.lossexpress.com/lenders

Query Parameters

Parameter Description
integratedPayoffOnly true if only lenders with payoff integrations with LossExpress should be returned
name Name being queried against in LossExpress. Must be at least 3 characters long, and must be properly encoded
customerAuthorizationRequired Queries the lenders based on whether they are required in customer authorization or not. Must be boolean

Letter of Guarantee Requests

Create Letter of Guarantee Request

Create Letter of Guarantee Request Example Response Body:

{
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "turnAroundTimeEstimate": "2021-01-08T22:03:09.598Z"
}

This route will throw a 400: BAD REQUEST if it fails due to lack of information on a claim.

Create Letter of Guarantee Request Example Error Response:

{
  "statusCode": 400,
  "error": "Bad Request",
  "message": "Claim is missing one or more required documents: 'settlement breakdown' & 'valuation report'"
}

This route will create a letter of guarantee request on a claim. If the customer has manual xLOG requests enabled, you must specify TRUE on the xLogRequested variable for an xLOG to be processed. Null or False will not return an xLOG. Customers without this configuration can ignore this. The letter of guarantee request can be added at any time, but will fail when:

HTTP Request

POST https://xapi.lossexpress.com/claims/{claimId}/letter-of-guarantee-request

When an xLOG is specifically requested:

POST https://xapi.lossexpress.com/claims/{claimId}/letter-of-guarantee-request?xLogRequested=true

URL Parameters

Parameter Description
claimId The LossExpress UUID associated with the claim

Cancel Letter of Guarantee Request

Cancel Letter of Guarantee Request Example Response Body:

{
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "success": true
}

This route will throw a 404: NOT FOUND if a Letter of Guarantee request is not available on the claim.

Cancel Letter of Guarantee Request Example Error Response:

{
  "statusCode": 404,
  "error": "Not Found",
  "message": "Letter of Guarantee does not exist for this claim."
}

This route will cancel a letter of guarantee request on a claim. This route will return an error if a letter of guarantee request has not been added on a claim yet.

This route will not return an error if a letter of guarantee request has been previously cancelled or completed.

HTTP Request

DELETE https://xapi.lossexpress.com/claims/{claimId}/letter-of-guarantee-request

URL Parameters

Parameter Description
claimId The LossExpress UUID associated with the claim

Refresh Letter of Guarantee Request

Refresh Letter of Guarantee Request Example Response Body:

{
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "turnAroundTimeEstimate": "2021-01-08T22:03:09.598Z"
}

This route will throw a 400: BAD REQUEST if it fails due to lack of information on a claim.

This route will throw a 404: NOT FOUND if a Letter of Guarantee request is not available on the claim.

Refresh Letter of Guarantee Request Example Error Responses:

{
  "statusCode": 404,
  "error": "Not Found",
  "message": "Letter of Guarantee does not exist for this claim."
}
{
  "statusCode": 400,
  "error": "Bad Request",
  "message": "Claim is missing one or more required documents: 'settlement breakdown' & 'valuation report'"
}

This route will refresh an existing letter of guarantee request on a claim, notifying our system that vital information has changed and additional work may be required. The letter of guarantee request can be added at any time, but will fail when:

HTTP Request

POST https://xapi.lossexpress.com/claims/{claimId}/letter-of-guarantee-request/refresh

URL Parameters

Parameter Description
claimId The LossExpress UUID associated with the claim

Payoff Requests

Create Payoff Request

Create Payoff Request Example Response Body:

{
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f"
}

This route will throw a 400: BAD REQUEST if the payoff request fails due to missing information on the claim.

Create Payoff Request Example Error Response:

{
  "statusCode": 400,
  "error": "Bad Request",
  "message": "Claim is missing one or more required documents: 'settlement breakdown' & 'valuation report'"
}

This route will create a payoff request on a claim. The request will fail when:

HTTP Request

POST https://xapi.lossexpress.com/claims/{claimId}/payoff-request

URL Parameters

Parameter Description
claimId The LossExpress UUID associated with the claim

Cancel Payoff Request

Cancel Payoff Request Example Response Body:

{
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "success": true
}

This route will throw a 404: NOT FOUND if a Payoff request is not available on the claim.

Cancel Payoff Request Example Error Response:

{
  "statusCode": 404,
  "error": "Not Found",
  "message": "A payoff request does not exist for this claim."
}

This route will cancel a payoff request on a claim. This route will return an error if a payoff request has not been added on a claim yet.

This route will not return an error if a payoff request has been previously cancelled or completed.

HTTP Request

DELETE https://xapi.lossexpress.com/claims/{claimId}/payoff-request

URL Parameters

Parameter Description
claimId The LossExpress UUID associated with the claim

Refresh Payoff Request

Refresh Payoff Request Example Response Body:

{
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f"
}

This route will throw a 400: BAD REQUEST if the payoff request fails due to missing information on the claim.

This route will throw a 404: NOT FOUND if a payoff request is not available on the claim.

Refresh Payoff Request Example Error Responses:

{
  "statusCode": 404,
  "error": "Not Found",
  "message": "A payoff request does not exist for this claim."
}
{
  "statusCode": 400,
  "error": "Bad Request",
  "message": "Claim is missing one or more required documents: 'settlement breakdown' & 'valuation report'"
}

This route will refresh a payoff request on a claim, notifying our system that vital information has changed and additional work may be required. The request will fail when:

HTTP Request

POST https://xapi.lossexpress.com/claims/{claimId}/payoff-request/refresh

URL Parameters

Parameter Description
claimId The LossExpress UUID associated with the claim

Orders

Fetch Order Types

Fetch Order Types Request Example Response Body

{
  "orderTypes": ["...array of current order types"],
  "success": true
}

This route returns an array of strings, which consist of the current types of orders that can be requested on a claim.

HTTP Request

GET https://xapi.lossexpress.com/claims/order-types

Create Order(s) Request

Create Order(s) Request Example Response Body:

{
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "orders": [
    {
      "orderId": "3e8c38f3-f4ef-4414-88da-1793d25ef6f0", 
      "type": "Repo Affidavit"
    }, 
    {
      "orderId": "77462941-7b6c-4bd0-9749-588c32654864",
      "type": "Copy of Title"
    }
  ],
  "success": true
}

This route will create a new order on a claim.

HTTP Request

POST https://xapi.lossexpress.com/claims/{claimId}/orders

URL Parameters

Parameter Description
claimId The LossExpress UUID associated with the claim

Request Body

This route accepts a JSON payload of an object comprising of:

Body Parameter Description Required?
types An array containing strings with types of orders to be created Y

Cancel Order(s) Request

Cancel Order(s) Request Example Response Body:

{
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "success": true
}

HTTP Request

DELETE https://xapi.lossexpress.com/claims/{claimId}/cancel-orders

URL Parameters

Parameter Description
claimId The LossExpress UUID associated with the claim

Request Body

This route accepts a JSON payload of an object comprising of:

Body Parameter Description Required?
orderIds An array containing orderIds of orders to be cancelled Y

Refresh Order(s) Request

Refresh Order(s) Request Example Response Body:

{
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "orders": [
    {
      "orderId": "3e8c38f3-f4ef-4414-88da-1793d25ef6f0", 
      "type": "Copy of Title"
    }, 
    {
      "orderId": "77462941-7b6c-4bd0-9749-588c32654864",
      "type": "Lien Release Letter"
    }
  ],
  "success": true
}

This route will refresh "cancelled" or "fulfilled" orders on a claim, and is effectively a re-order. Refreshing an order will result in an additional billing event being created.

HTTP Request

POST https://xapi.lossexpress.com/claims/{claimId}/orders/refresh

URL Parameters

Parameter Description
claimId The LossExpress UUID associated with the claim

Request Body

This route accepts a JSON payload of an object comprising of:

Body Parameter Description Required?
types An array containing strings with types of orders to be refreshed Y

*Accepted types:

Payments

Acknowledge Payment Sent

We offer support for carriers to give us acknowledgement that payment has been sent to the lender. Enabling this allows us to more effectively answer questions directed at us by lenders regarding payment status. Additionally, this step can be skipped if an integration with our designated payment processing partner has been enabled.

HTTP Request

POST https://xapi.lossexpress.com/claims/{claimId}/payoff-sent

Request Body

This route accepts a JSON payload of an object comprising of:

Body Parameter Description Required?
sentTo An object containing streetAddress, streetAddress2, city, state, and zipCode keys N
trackingNumber A string containing the relevant tracking number for the check N
sentVia A string describing how the check was sent; mailing provider if sent via mail N
sentAt A JSON date that the payment was sent Y
checkAmount An integer describing the amount sent Y

Settlement Counter

Accept or Dispute Counter

Example Response Body:

{
  "claimId": "c30ae9da-9222-4de5-81fe-fe1ac590fa0f",
  "success": true
}

This route will throw a 404: NOT FOUND if there are no settlement counters present on the claim.

Example Error Response:

{
  "statusCode": 404,
  "error": "Not Found",
  "message": "A settlement counter does not exist for this claim."
}

This route allows for either accepting or disputing a settlement counter presented by a lender.

To accept a counter, you must send a new settlement breakdown document. To dispute a counter, you must set dispute to true and provide a reasonForDispute.

This route will throw an error if there are no settlement counters.

HTTP Request

POST https://xapi.lossexpress.com/claims/{claimId}/settlement-counter

URL Parameters

Parameter Description
claimId The LossExpress UUID associated with the claim

Request Body

This route accepts a JSON payload of an object comprising of:

Body Parameter Description Required?
dispute True if it should be disputed, false otherwise (boolean) Y
settlementBreakdown Y if not dispute
reasonForDispute Message containing the reason for dispute Y if dispute

VIN Inquiry

Fetch VIN Information

This route returns information about one or more vins.

Example Response Body

{
    "time": "2023-04-20T13:29:33.935Z",
    "vehicleCount": 2,
    "results": [
        {
            "vin": "KL1TD526X5B4XXXXX",
            "owner": {
                "name": "Jared",
                "address": "test address 1",
                "county": "Wichita"
            },
            "vehicle": {
                "year": "2005",
                "make": "example 1",
                "model": "example 1",
                "trim": "LS / Special Value",
                "titleProblem": true,
                "vehicleProblem": true,
                "vehicleOrTitleProblems": [
                    "Title brand or other problem",
                    "Accident",
                    "Rebuilt"
                ]
            },
            "registration": {
                "tagNumber": "example 1",
                "earliestDate": "2005-04-22",
                "latestDate": "2012-02-10",
                "expirationDate": "2016-04-25",
                "titleNumber": "10831838959165444"
            },
            "financial": {
                "titleIssueDate": "2012-02-10",
                "titledState": "MO",
        "lienholder": [
          {
            "accountType": "example 1",
            "companyName": "example 1"
          }
        ],
            },
            "accident": {
                "count": "2",
                "earliestDate": "December 15, 1995 03:24:00",
                "lastReportedEvent": "string",
                "lastReportedAccidentDate": "string",
                "city": "string",
                "state": "string",
                "reportedAccidents": [
                    {
                        "accidentSeqNum": "0",
                        "reportedDate": "December 17, 1995 03:24:00",
                        "type": "string a",
                        "city": "string a",
                        "state": "string a"
                    },
                    {
                        "accidentSeqNum": "1",
                        "reportedDate": "December 15, 1995 03:24:00",
                        "type": "string b",
                        "city": "string b",
                        "state": "string b"
                    }
                ]
            }
        },
        {
            "vin": "1GNFC130X8R2XXXXX",
            "owner": {
                "name": "John Doe",
                "address": "123 Main St.",
                "county": "New York"
            },
            "vehicle": {
                "year": "2016",
                "make": "BMW",
                "model": "4 Series",
                "trim": "435i",
                "titleProblem": false,
                "vehicleProblem": true,
                "vehicleOrTitleProblems": [
                    "Title brand or other problem",
                    "Accident",
                    "Rebuilt"
                ]
            },
            "registration": {
                "tagNumber": "ABC123",
                "earliestDate": "2015-06-01",
                "latestDate": "2022-03-15",
                "expirationDate": "2022-03-15",
                "titleNumber": "123456789"
            },
            "financial": {
                "titleIssueDate": "2022-03-15",
                "titledState": "NY",
        "lienholder": [
              {
                  "accountType": "example 1",
                  "companyName": "example 1"
          }
        ],
            },
            "accident": {
                "count": "1",
                "earliestDate": "December 1, 2020 03:24:00",
                "lastReportedEvent": "Collision with animal",
                "lastReportedAccidentDate": "2020-09-30",
                "city": "New York",
                "state": "NY",
                "reportedAccidents": [
                    {
                        "accidentSeqNum": "1",
                        "reportedDate": "December 1, 2020 03:24:00",
                        "type": "Rear-end collision",
                        "city": "Brooklyn",
                        "state": "NY"
                    }
                ]
            }
        },
    ]
}

HTTP Request

POST https://xapi.lossexpress.com/vin-check

Request Body

Body Parameter Description Required
vins An array of 17-digit VINs Y
requestedData An array of data types to fetch* Y

*Accepted data types are "OWNER", "VEHICLE", "ACCIDENT", "FINANCIAL", "REGISTRATION"

Errors

400 Bad Request Example Error Response:

{
  "statusCode": 400,
  "error": "Bad Request",
  "message": "vin is required",
  "validation": {
    "errors": [
      {
        "key": [
          "vin"
        ],
        "path": [
          "vin"
        ],
        "message": "vin is required",
        "type": "any",
        "constraint": "required",
        "label": "vin"
      }
    ]
  }
}

401 Auth Token Example Error Response:

{
  "statusCode": 401,
  "error": "Unauthorized",
  "message": "The provided token has expired."
}

403 Forbidden Example Error Response:

{
  "statusCode": 403,
  "error": "Forbidden",
  "message": "This claim is not available during testing."
}

500 Internal Server Error Example Error Response:

{
  "statusCode": 500,
  "error": "Internal Server Error",
  "message": "An internal server error occurred"
}

Our Vendor API uses the following error codes:

Error Code Meaning
400 Bad Request -- Your request is invalid.
401 Unauthorized -- Your API key is wrong.
403 Forbidden -- You do not have access to that route.
404 Not Found -- The specified information could not be found.
405 Method Not Allowed -- You tried to access a route with an invalid method.
406 Not Acceptable -- You requested a format that isn't json.
500 Internal Server Error -- We had a problem with our server. Try again later.
503 Service Unavailable -- We're temporarily offline for maintenance. Please try again later.