API Reference

This page provides detailed API reference for the Lightspeed Deal Update API.

Base URL

Base URI: http://int.lightspeeddataservices.com/lsapi

Authentication

All endpoints use Basic Auth with username and password associated to a Lightspeed 3PA API account.

Header: Authorization: Basic <base64(username:password)>

Endpoints

1. Deal Update Request

URL: /dealupdate/{cmf}/update/{dealid}
Method: PUT
Purpose: Update the Term and APR of the specified deal

Request Body Example

{
  "term": 12,
  "apr": 8.25,
  "additionalDeposit": 500.00,
  "units": [
    {
      "dealUnitId": "8888888888",
      "price": 25000.00,
      "freight": 350.00,
      "prepParts": 200.00,
      "prepLabor": 150.00,
      "docFee": 199.99,
      "licFee": 9.99
    }
  ]
}

Success Response (202 Accepted)

{
  "metaData": {
    "originalRequest": {
      "term": 12,
      "apr": 8.25,
      "additionalDeposit": 500.00,
      "units": [...]
    }
  },
  "payload": {
    "requestId": "{new request id}"
  }
}

Error Response (400 Bad Request)

{
  "metaData": {
    "originalRequest": {
      "term": 12,
      "apr": 8.25
    }
  },
  "payload": {
    "requestId": 0,
    "error": "Error description goes here"
  }
}

2. Deal Update Request - Extra Lines

URL: /dealupdate/{cmf}/extras/{dealid}
Method: PUT
Purpose: Update Extra Lines for specified units in the deal

Request Body Example

{
  "units": [
    {
      "dealUnitId": "8888888888",
      "extraLines": [
        {
          "mappingType": "BATTERY_FEE",
          "amount": 40.00,
          "extralineTerm": 0
        },
        {
          "mappingType": "SERVICE_CONTRACT",
          "amount": 500.00,
          "extralineTerm": 6
        }
      ]
    }
  ]
}

3. Deal Update Request Status

URL: /dealupdate/{cmf}/requeststatus/{requestId}
Method: GET
Purpose: Check the status of a previously submitted Deal Update request

Success Response (200 OK)

{
  "metaData": {
    "requestId": "{request id}",
    "originalRequest": {
      "term": 12,
      "apr": 8.25
    }
  },
  "payload": {
    "status": "PROCESSED",
    "requestReceived": "2023-03-01 12:12:12",
    "requestProcessed": "2023-03-01 12:14:12"
  }
}

Possible Status Values

  • WAITING_FOR_LOCK: Request is waiting to be processed
  • PROCESSED: Request has been successfully processed
  • FAILED: Request failed during processing

4. Finance Application Status

URL: /dealupdate/{cmf}/updatefinancestatus/{dealid}
Method: PUT
Purpose: Update deal finance application status (currently supports Octane Finance)

Request Body Example

{
  "applicationFinanceStatus": "APPROVED"
}

Success Response (202 Accepted)

{
  "metadata": {
    "originalRequest": {
      "applicationFinanceStatus": "APPROVED"
    }
  },
  "payload": {
    "requestId": "{request id}"
  }
}

5. Update Deal Score

URL: /dealupdate/{cmf}/updatedealscore/{dealid}
Method: PUT
Purpose: Update the lead disposition score for a deal

Request Body Example

{
  "score": "5"
}

Success Response (202 Accepted)

{
  "metaData": {
    "originalRequest": {
      "score": 4
    }
  },
  "payload": {
    "requestId": 785702101652356900
  }
}

Request Parameters

ParameterTypeRequiredDescription
cmfStringYesDealer CMF identifier
dealidStringYesDeal identifier
requestIdStringYesRequest ID from previous operation

Response Format

All responses follow this structure:

{
  "metaData": {
    "originalRequest": {...},
    "requestId": "..."
  },
  "payload": {
    "requestId": "...",
    "status": "...",
    "error": "..."
  }
}

Error Handling

  • All errors return HTTP 400 Bad Request
  • Error messages are provided in the payload.error field
  • Original request is echoed back in metaData.originalRequest
  • Request ID is set to 0 for failed requests