Point of Rental API (2026.04.00)

Download OpenAPI specification:

Point of Rental Software: [email protected] URL: https://point-of-rental.com/

The Point of Rental API is intended for both customer and 3rd party usage. As our API grows, we will do our best to enrich this documentation. Please check back often.

Getting Access to Global API

In order to make calls through the Global API, you will need to have a few things in place. These steps vary by product. Make sure you read over the parts that call out your flavor of Point of Rental.

1. You must have an active Point of Rental license.

This means you must first be an active and paying customer of the Elite, Syrinx 365, or Essentials platforms.

2. You will need the SQS Listener running (Elite & Syrinx only).

If you are Elite/Syrinx based, you will need to have what we call the “SQS Listener” running on the machine that serves your database and current Elite/Syrinx API. This should be setup by Point of Rental, so feel free to ask us if you suspect it may not be live. Once this service is running, we will be able to talk between the Global API and your local server through a secure channel. This is what will allow us to continue setting up users and licenses through our Global Admin tool. This also enables your server to talk to our POR One mobile application, among other things.

3. You will need to have a “Global Login”-enabled account.

This means your user account inside of our product must have an email address for the username and a password that fits the minimum requirements. Additionally, your company must have the “Global Login” feature turned on and synced up. This is done a little bit differently depending on your product, but we can help you with that.

4. You will need to obtain an API Key.

You will need to obtain an API Key from Point of Rental that can then be used to authenticate the calls you will make against the Global API. This Key is sacred and will need to be protected, as it allows access to your data. We can change them over time if you wish, so feel free to reach out to us on that.

5. After these 4 steps, you should be ready to start making calls against the global API.

Feel free to test out the API now with your API Key. Otherwise, happy API'ing!


Your First API Call

There are two types of URLs you can hit.

  1. In the first type, you will not need to make any changes to the URL.
    Example: https://api.pointofrental.com/v1/apikey/contacts
  2. In the second type, you will need to include the ID of the entity you are requesting.
    Example: If you have a contact with ID 12345,
    https://api.pointofrental.com/v1/apikey/contacts/{ContactId} could resolve to
    https://api.pointofrental.com/v1/apikey/contacts/12345

Your API Key should be included in the request by placing it in the X-API-Key header. Here is a sample request:

GET /apikey/customers
X-API-Key: <YOUR API KEY GOES HERE>

Filtering

Supported by Elite and Syrinx:

  • =, ==
  • <
  • <=
  • >
  • >=
  • AND
  • OR
  • IS NULL, ISNULL
  • NOT NULL, NOTNULL
  • IN
  • NOT IN
  • NOT, <>, !=
  • LIKE
  • RLIKE
  • LLIKE

Only supported per-endpoint where noted:

  • Search

Additional comparaters supported by Elite:

  • !LIKE
  • !RLIKE
  • !LLIKE

Filters are of the form:

{
    "field": "The field from the model to compare.",
    "type": "The type of comparator (from above list).",
    "value": "The value to compare the field to."
}

Example:

GET /apikey/customers
X-Filter: [
    {
    "type": "AND",
    "value": [
        {
        "field": "Name",
        "type": "LIKE",
        "value": "John Doe"
        },
        {
        "field": "CompanyName",
        "type": "LIKE",
        "value": "XYZ Company"
        }
    ]
    }
]

Search filter example:

GET /apikey/contacts
X-Filter: [
    {
    "field": "Search",
    "type": "==",
    "value": "some search query"
    }
]

Paging

Note: 100 is the upper limit on page size requests.

Paging example:

GET /apikey/contracts
X-Paging: {
    "page": 1,
    "pageSize": 25
}

Response Codes

2xx Responses:
    Create:
    201 - Record created.
    Get All:
    200 - Record(s) found.
    Get by Id:
    200 - Record found.
    Update:
    200 - Record updated.
    Delete:
    200 - Record deleted.
    204 - No record found to delete.

4xx Responses:
    Bad Request:
    400 - The request is malformed in some way. See the response message for details.
    Unauthorized:
    403 - Resource exists but you do not have access.
    Not Found:
    404 - Resource does not exist.

Call Logs

[Call Log] Post

Creates a call log record

Authorizations:
ApiKey
Request Body schema: application/json
required
Name
string or null
Default: "Customer Follow-up - Equipment Return"

Brief title or subject line describing the call or interaction

object or null

Collection of related entity identifiers associated with this call log

Body
string or null
Default: "Customer called regarding scheduled equipment return. Agreed to extend rental period by 2 weeks."

Detailed notes about the interaction, including discussion points, decisions, and action items

ContactName
string or null

Name of the person contacted or who initiated the communication

ForceAcknowledge
boolean or null

Flag indicating if this call log requires acknowledgment by other staff members

Type
string or null

Category or type of communication (e.g., Customer Service, Sales, Technical Support, Payment)

AdditionalFields
object or null

Custom fields for storing additional information specific to the business needs

Responses

Request samples

Content type
application/json
{
  • "ModelType": "CallLog",
  • "Name": "Customer Follow-up - Equipment Return",
  • "Body": "Customer called regarding scheduled equipment return. Agreed to extend rental period by 2 weeks."
}

Response samples

Content type
application/json
{
  • "ModelType": "CallLog",
  • "Name": "Customer Follow-up - Equipment Return",
  • "Body": "Customer called regarding scheduled equipment return. Agreed to extend rental period by 2 weeks."
}

[Call Log] Get All

All call logs for your organization, use query parameters to filter

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

[Call Log] Get by Id

Single call log record by call log Id

Authorizations:
ApiKey
path Parameters
CallLogId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "CallLog",
  • "Name": "Customer Follow-up - Equipment Return",
  • "Body": "Customer called regarding scheduled equipment return. Agreed to extend rental period by 2 weeks."
}

Enum Lookup for Vendor

Supported by: Elite

With this endpoint, you can look up dynamic enum values for Vendor fields. The description on a particular field will indicate if it supports a lookup.

Authorizations:
ApiKey
path Parameters
field
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Payments

Create a Transaction

Create a transaction via POR Pay.

See the /iam/transactions endpoint in the POR Pay documentation for details.

Authorizations:
ApiKey
Request Body schema: application/json
required
CustomerGuid
required
string <= 191 characters
Default: "123"

The calling app's Customer ID for this Customer. Must be unique per Organization.

Amount_Requested
required
integer <= 9223372036854776000
Default: 100

The integer representing the amount of the smallest denomination of currency. For example, 10000 Amount with a CurrencyCode of USD for $100.00

TaxAmount
integer <= 9223372036854776000

The integer representing the amount of the smallest denomination of currency (Total Tax). For example, 10000 Amount with a CurrencyCode of USD for $100.00

CurrencyCode
string or null = 3 characters

The 3-letter ISO 4217 uppercase currency code

TransactionTypeEnum
required
integer (CreateTransactionTypeEnum)
Default: 1
Enum: 1 3 6 9

The type of this Transaction allowed for creating new Transactions. Refer to Transaction.table.ts for a full list of Transaction Types available.

TerminalId
string <= 191 characters

If present, this signifies that the Transaction uses a Terminal, and should use the Terminal UI.

IsCustomerFacing
boolean

Filter processor list to only show processors that are customer facing.

ProcessorId
string <= 191 characters

If present, this signifies that the Transaction will use a specific processor.

RemoteDepotId
string or null <= 191 characters

If present, will be used to fetch payment methods from processor config.

ExcludedPaymentMethods
Array of integers or null (PaymentMethodEnum)
Enum: 1 2 4

An enumeration of supported payment types to exclude on transaction creation. 1=CreditCard, 2=DebitCard, 3=GiftCard, 4=ACH, 5=Crypto

ApplicationFeeBasisPoints
integer or null <= 9223372036854776000

The percentage of amount requested that should be applied as a fee

object

The additional details of a transaction that will be sent to the merchant as part of L3 enhanced data.

Responses

Request samples

Content type
application/json
{
  • "CustomerGuid": "123",
  • "Amount_Requested": 100,
  • "TransactionTypeEnum": 1
}

Response samples

Content type
application/json
{
  • "ApiKey": "junior",
  • "TransactionData": {
    },
  • "TransactionId": 573
}

Create a Received Payment

Supported by: Elite

Create a received payment.

The constraints listed on the below fields (e.g. maximum length) are per the Global database. These may differ in the targeted RMS.

Authorizations:
ApiKey
Request Body schema: application/json
required
Source
required
string <= 64 characters
Default: "ConsumerPortal"

The microapp that took the payment (e.g. ConsumerPortal)

Processor
required
string <= 128 characters
Default: "PORPay"

The processor for the payment ('PORPay' for PORPay)

TotalPaid
required
number
Default: 100

Dollar value that was paid against this contract

ContractId
string <= 32 characters
Deprecated

Unique identifier of the contract associated with the payment. Use ContractIds instead.

ContractIds
Array of strings[ items <= 32 characters ]

Unique identifier of the contract associated with the payment

PaidDateTime
required
string <date-time>
Default: "2025-01-10T14:15:22Z"

Date-time the payment happened

ReferenceNumber
required
string <= 64 characters
Default: "1234567890"

Necessary value to lookup more details regarding the payment in PORPay

Currency
required
string <= 8 characters
Default: "USD"

ISO 4217 currency code

DepotId
string <= 32 characters

Unique identifier of the store or depot

object

The customer who paid

PaymentMethod
number
Enum: 1 4

Acceptable values:

  • 1: Credit Card.
  • 4: ACH.

Responses

Request samples

Content type
application/json
{
  • "Source": "ConsumerPortal",
  • "Processor": "PORPay",
  • "TotalPaid": 100,
  • "PaidDateTime": "2025-01-10T14:15:22Z",
  • "ReferenceNumber": "1234567890",
  • "Currency": "USD"
}

Response samples

Content type
application/json
{
  • "Source": "WEB_APP",
  • "Processor": "Paypal",
  • "TotalPaid": 324,
  • "ContractIds": [
    ],
  • "PaidDateTime": "2026-11-20T03:39:54.684Z",
  • "ReferenceNumber": "M1UT2TMQQIMC",
  • "Currency": "WST",
  • "DepotId": 277,
  • "PaidBy": {
    },
  • "PaymentMethod": 1,
  • "Consumed": 2,
  • "Created": "2025-09-27T11:01:14.226Z",
  • "Updated": "2025-10-10T02:31:26.362Z"
}

Retrieve Received Payments

Get a list of received payments.

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update a Received Payment

Update a received payment.

Authorizations:
ApiKey
Request Body schema: application/json
required
required
integer or string

GUID - Allows catchup/verification should a push be missed

Source
string <= 64 characters
Default: "API"

The microapp that took the payment (e.g. ConsumerPortal)

Processor
string <= 128 characters
Default: "Internal"

The processor for the payment ('PORPay' for PORPay)

TotalPaid
number
Default: 657

Dollar value that was paid against this contract

ContractId
string <= 32 characters
Default: 289

Unique identifier of the contract associated with the payment

ContractIds
Array of strings[ items <= 32 characters ]
Default: ["Shirt","Gloves"]

Unique identifier of the contract associated with the payment

PaidDateTime
string <date-time>
Default: "2026-10-20T11:25:05.097Z"

Date-time the payment happened

ReferenceNumber
string <= 64 characters
Default: "EMZPX1FAJLUR"

Necessary value to lookup more details regarding the payment in PORPay

Currency
string <= 8 characters
Default: "BDT"

ISO 4217 currency code

DepotId
string <= 32 characters
Default: 146

Unique identifier of the store or depot

object
Default: {"Address":{"City":"Newport Beach","Country":"Aruba","GeoRegion2":"68108 Abbott Stream","GeoRegion3":"650 Judge Tunnel","Latitude":-24.7078,"Line1":"2609 Jeff Motorway","Line2":"Apt. 774","Line3":"ice-cream","Longitude":173.9417,"Name":"Teri Hammes","PostalCode":"45719-2906","Province":"California","Type":"user"},"CompanyName":"Beatty, Muller and McKenzie","Email":"[email protected]","FirstName":"Wellington","LastName":"Kuhlman","Phone":{"CountryCode":"MQ","Extension":"kinase","Number":"625.612.8764 x78847","NumberE164":"+13545262063","SmsCapable":false,"Type":"default"}}

The customer who paid

PaymentMethod
number
Default: 4
Enum: 1 4

Acceptable values:

  • 1: Credit Card.
  • 4: ACH.
Consumed
number or null
Default: 1
Enum: 1 2 3

The payment processing status based on the RMS.

Acceptable values:

  • 0: Waiting - The payment hasn't been saved to RMS database yet for processing.
  • 1: Imported - The payment has been imported by the RMS but hasn't been posted.
  • 2: Posted - The payment has been posted and is reflected in the contract.
  • 3: Error - The payment wasn't able to be imported.
Hidden
integer or null
Value: 1

Hidden

Disabled
integer or null
Value: 1

Disabled

Responses

Request samples

Content type
application/json
{
  • "Source": "API",
  • "Processor": "Internal",
  • "TotalPaid": 657,
  • "ContractId": 289,
  • "ContractIds": [
    ],
  • "PaidDateTime": "2026-10-20T11:25:05.097Z",
  • "ReferenceNumber": "EMZPX1FAJLUR",
  • "Currency": "BDT",
  • "DepotId": 146,
  • "PaidBy": {
    },
  • "PaymentMethod": 4,
  • "Consumed": 1,
  • "Created": "2026-05-17T10:12:28.196Z",
  • "Updated": "2026-05-29T15:41:45.804Z"
}

Response samples

Content type
application/json
{
  • "Source": "INTERNAL_PROCESS",
  • "Processor": "Internal",
  • "TotalPaid": 370,
  • "ContractId": 940,
  • "ContractIds": [
    ],
  • "PaidDateTime": "2025-10-06T18:25:00.700Z",
  • "ReferenceNumber": "EHSYXXFIUJ8C",
  • "Currency": "MRU",
  • "DepotId": 427,
  • "PaidBy": {
    },
  • "PaymentMethod": 4,
  • "Consumed": 1,
  • "Created": "2026-06-11T15:38:33.796Z",
  • "Updated": "2025-12-14T11:07:02.209Z"
}

Categories

Retrieve a list of categories

Supported by: Elite, Syrinx

Retrieve a list of categories

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[]

Retrieve a single category by Id

Supported by: Elite, Syrinx

Retrieve a single category by Id

Authorizations:
ApiKey
path Parameters
CategoryId
required
string

Responses

Response samples

Content type
application/json
{}

Enum Lookup for categories

Supported by: Elite

With this endpoint, you can look up enums related to categories. Currently, the only enum used is "departmentid".

Authorizations:
ApiKey
path Parameters
field
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Contacts

Create a new Contact

Supported by: Elite

Create a new Contact

Required fields:

  • Name
  • Identifiers.ParentId (Elite)
Authorizations:
ApiKey
Request Body schema: application/json
required
Name
string or null [ 1 .. 50 ] characters
Default: "55365DR2"

The display name for the contact. Example: 'John Smith' or 'Smith, John - Project Manager'

object or null
Default: {"ParentId":"103559"}

Identifying items for Contact.

Department
string or null <= 50 characters

Department of the company. Example: 'Field Operations' or 'Equipment Management'

Disabled
boolean or null

This is the state of the Contact record. By default, this state is FALSE. Setting a Contact Disabled property to TRUE temporarily deactivates the Contact until it is updated to FALSE. Example: Set to TRUE when an employee leaves the company or is no longer authorized to rent equipment.

Elite: Supported

Essentials: Supported

Syrinx: Not Supported

Array of objects or null
Default: [{"Type":"Default","Email":"[email protected]"}]

Can support multiple email addresses for a contact. Example: Work email and personal email for notifications.

Elite: This array will only have a single element.

FirstName
string or null
Default: "John"

First Name (if it's an individual). Example: 'John' or 'Maria'

Elite: Read-Only

LastName
string or null
Default: "Doe"

Last Name (if it's an individual). Example: 'Smith' or 'Garcia'

Elite: Read-Only

Array of objects or null

Can support multiple phone numbers for a contact. Example: Office phone, mobile phone for urgent notifications.

Title
string or null <= 255 characters

The contact's title. Example: 'Project Manager' or 'Equipment Supervisor'

object or null

Additional fields for Contact.

Responses

Request samples

Content type
application/json
{
  • "FirstName": "John",
  • "LastName": "Doe",
  • "Name": "55365DR2",
  • "Identifiers": {
    },
  • "Emails": []
}

Response samples

Content type
application/json
{
  • "ModelType": "CustomerContact",
  • "Addresses": [
    ]
}

Retrieve a list of Contacts

Supported by: Elite, Syrinx

Elite supports the following fields for the Search filter:

  • Name
  • Emails.Email
  • Phones.Number
Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a single Contact by Id

Supported by: Elite, Syrinx

Retrieve a single Contact by Id

Authorizations:
ApiKey
path Parameters
ContactId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "CustomerContact",
  • "Addresses": [
    ]
}

Update a single Contact by Id

Supported by: Elite

Update a single Contact by Id

Required fields:

  • Id
Authorizations:
ApiKey
path Parameters
ContactId
required
string
Request Body schema: application/json
required
Name
string or null [ 1 .. 50 ] characters
Default: "55365DR2"

The display name for the contact. Example: 'John Smith' or 'Smith, John - Project Manager'

object or null
Default: {"ParentId":"103559"}

Identifying items for Contact.

Department
string or null <= 50 characters

Department of the company. Example: 'Field Operations' or 'Equipment Management'

Disabled
boolean or null

This is the state of the Contact record. By default, this state is FALSE. Setting a Contact Disabled property to TRUE temporarily deactivates the Contact until it is updated to FALSE. Example: Set to TRUE when an employee leaves the company or is no longer authorized to rent equipment.

Elite: Supported

Essentials: Supported

Syrinx: Not Supported

Array of objects or null
Default: [{"Type":"Default","Email":"[email protected]"}]

Can support multiple email addresses for a contact. Example: Work email and personal email for notifications.

Elite: This array will only have a single element.

FirstName
string or null
Default: "John"

First Name (if it's an individual). Example: 'John' or 'Maria'

Elite: Read-Only

LastName
string or null
Default: "Doe"

Last Name (if it's an individual). Example: 'Smith' or 'Garcia'

Elite: Read-Only

Array of objects or null

Can support multiple phone numbers for a contact. Example: Office phone, mobile phone for urgent notifications.

Title
string or null <= 255 characters

The contact's title. Example: 'Project Manager' or 'Equipment Supervisor'

object or null

Additional fields for Contact.

Responses

Request samples

Content type
application/json
{
  • "FirstName": "John",
  • "LastName": "Doe",
  • "Name": "55365DR2",
  • "Identifiers": {
    },
  • "Emails": []
}

Response samples

Content type
application/json
{
  • "ModelType": "CustomerContact",
  • "Addresses": [
    ]
}

Contracts

Retrieve a list of Contracts

Supported by: Elite, Syrinx

Retrieve a list of Contracts

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a single Contract by Id

Supported by: Elite, Syrinx

Retrieve a single Contract by Id

Authorizations:
ApiKey
path Parameters
ContractId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "Contract",
  • "Id": "CNT-2024-0012345",
  • "Name": "Excavator Rental - ABC Construction",
  • "Identifiers": {
    },
  • "Addresses": [
    ],
  • "AmountDue": 2450.75,
  • "AmountPaid": 1000,
  • "Contacts": [
    ],
  • "ContractInformation": "Weekly rental of CAT 320 Excavator for Downtown Dallas project",
  • "CustomerId": "CUST-ABC-001",
  • "CustomerName": "ABC Construction",
  • "CustomerPickup": {
    },
  • "DepotId": "DPT-DAL-001",
  • "EndDateTime": "2024-03-22T17:00:00Z",
  • "EsignState": "Signed",
  • "GrandTaxTotal": 202.19,
  • "GrandTotal": 2652.94,
  • "LineItems": [
    ],
  • "LocationId": "LOC-DAL-001",
  • "Notes": [
    ],
  • "PONumber": "ABC-PO-98765",
  • "StartDateTime": "2024-03-15T08:00:00Z",
  • "Status": "Open",
  • "Totals": [
    ],
  • "CreatedDateTime": "2024-03-14T15:30:00Z",
  • "UpdatedDateTime": "2024-03-15T08:15:00Z",
  • "IsPickup": true,
  • "Revision": 2,
  • "AdditionalFields": {
    }
}

Update an existing Contract record

Supported by: Elite

Update an existing Contract record by ContractId. Only fields defined below in swagger can be modified. Additional changes will be ignored

Authorizations:
ApiKey
path Parameters
ContractId
required
string
Request Body schema: application/json
required
ContractInformation
string or null

Text field for additional details to be added to a Contract that would make it easier to identify based on the context entered.

Supported by: Elite, Essentials

object or null

Location, address, special instructions and date/time for driver actions, delivery, or customer pickup

object or null

Location, address, special instructions and date/time for driver actions, delivery, or customer pickup

Array of objects or null

Updatable line items: Id (required), Comments; Quantity requires PatchLineItemQty license.

LocationId
string or null

Id of the Location. (see the Location endpoints)

Array of objects
Default: [{"Type":"Delivery","Value":"availability"},{"Type":"Pickup","Value":"vista"},{"Type":"Delivery","Value":"unibody"}]

Any comments or notes.

IsDelivery
boolean
Default: false

True when the contract is marked for delivery.

IsPickup
boolean
Default: true

True when the contract is marked for customer pickup.

Responses

Request samples

Content type
application/json
{
  • "Notes": [
    ],
  • "IsDelivery": false,
  • "IsPickup": true
}

Response samples

Content type
application/json
{
  • "ModelType": "Contract",
  • "Id": "CNT-2024-0012345",
  • "Name": "Excavator Rental - ABC Construction",
  • "Identifiers": {
    },
  • "Addresses": [
    ],
  • "AmountDue": 2450.75,
  • "AmountPaid": 1000,
  • "Contacts": [
    ],
  • "ContractInformation": "Weekly rental of CAT 320 Excavator for Downtown Dallas project",
  • "CustomerId": "CUST-ABC-001",
  • "CustomerName": "ABC Construction",
  • "CustomerPickup": {
    },
  • "DepotId": "DPT-DAL-001",
  • "EndDateTime": "2024-03-22T17:00:00Z",
  • "EsignState": "Signed",
  • "GrandTaxTotal": 202.19,
  • "GrandTotal": 2652.94,
  • "LineItems": [
    ],
  • "LocationId": "LOC-DAL-001",
  • "Notes": [
    ],
  • "PONumber": "ABC-PO-98765",
  • "StartDateTime": "2024-03-15T08:00:00Z",
  • "Status": "Open",
  • "Totals": [
    ],
  • "CreatedDateTime": "2024-03-14T15:30:00Z",
  • "UpdatedDateTime": "2024-03-15T08:15:00Z",
  • "IsPickup": true,
  • "Revision": 2,
  • "AdditionalFields": {
    }
}

Payment Boundaries

Retrieve payment boundaries for a single Contract by Id.

Authorizations:
ApiKey
path Parameters
ContractId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Call a Contract Off Rent

Supported by: Elite

Call a Contract Off Rent

Authorizations:
ApiKey
Request Body schema: application/json
required
ContractId
required
string
Default: "123"

The unique id for the contract

CalledOffDateTime
required
string <date-time>
Default: "2025-05-27T00:00:00Z"

What date and time to call off the line item. UTC time zone. e.g. 2023-01-01T06:00:00Z

PersonCallingOff
string
Default: "John Doe"

Name of the person who is calling the contract off rent.

Memo
string
Default: "Customer called regarding scheduled equipment return. Agreed to extend rental period by 2 weeks."

Additional textual information for calling a contract off rent.

RemoteUserId
string

An identifier on the remote server for the user's account. Can be User ID, Username, anything to match the Relationship to a user.

Responses

Request samples

Content type
application/json
{
  • "ContractId": "123",
  • "CalledOffDateTime": "2025-05-27T00:00:00Z",
  • "PersonCallingOff": "John Doe",
  • "Memo": "Customer called regarding scheduled equipment return. Agreed to extend rental period by 2 weeks."
}

Response samples

Content type
application/json
{
  • "ModelType": "Contract",
  • "Id": "CNT-2024-0012345",
  • "Name": "Excavator Rental - ABC Construction",
  • "Identifiers": {
    },
  • "Addresses": [
    ],
  • "AmountDue": 2450.75,
  • "AmountPaid": 1000,
  • "Contacts": [
    ],
  • "ContractInformation": "Weekly rental of CAT 320 Excavator for Downtown Dallas project",
  • "CustomerId": "CUST-ABC-001",
  • "CustomerName": "ABC Construction",
  • "CustomerPickup": {
    },
  • "DepotId": "DPT-DAL-001",
  • "EndDateTime": "2024-03-22T17:00:00Z",
  • "EsignState": "Signed",
  • "GrandTaxTotal": 202.19,
  • "GrandTotal": 2652.94,
  • "LineItems": [
    ],
  • "LocationId": "LOC-DAL-001",
  • "Notes": [
    ],
  • "PONumber": "ABC-PO-98765",
  • "StartDateTime": "2024-03-15T08:00:00Z",
  • "Status": "Open",
  • "Totals": [
    ],
  • "CreatedDateTime": "2024-03-14T15:30:00Z",
  • "UpdatedDateTime": "2024-03-15T08:15:00Z",
  • "IsPickup": true,
  • "Revision": 2,
  • "AdditionalFields": {
    }
}

Retrieve files for a single Contract by Id.

Supported by: Elite

Retrieve files for a single Contract by Id.

Authorizations:
ApiKey
path Parameters
ContractId
required
string
tagKey
required
string

pdfs or instructions or photos

Responses

Response samples

Content type
application/json
[]

Retrieve Tax Details for a single Contract by Id.

Supported by: Elite

Retrieve Tax Details for a single Contract by Id.

Authorizations:
ApiKey
path Parameters
ContractId
required
string

Responses

Response samples

Content type
application/json
{
  • "SubTotal": 1000,
  • "TaxableAmount": 1000,
  • "TaxAmount": 82.5,
  • "TotalAmount": 1082.5,
  • "TaxDetails": [
    ]
}

Cancel a Contract

Supported by: Elite

Cancels a contract by changing its status to cancelled. The contract record is not deleted

Authorizations:
ApiKey
path Parameters
ContractId
required
string
Request Body schema: application/json
required
CancelReasonId
string or null

Use the contracts/lookup/CancelReasonId to get the list of options.

Reason
string or null

The reason why they are canceling/voiding the contract

Responses

Request samples

Content type
application/json
{ }

Response samples

Content type
application/json
{
  • "ModelType": "Contract",
  • "Id": "CNT-2024-0012345",
  • "Name": "Excavator Rental - ABC Construction",
  • "Identifiers": {
    },
  • "Addresses": [
    ],
  • "AmountDue": 2450.75,
  • "AmountPaid": 1000,
  • "Contacts": [
    ],
  • "ContractInformation": "Weekly rental of CAT 320 Excavator for Downtown Dallas project",
  • "CustomerId": "CUST-ABC-001",
  • "CustomerName": "ABC Construction",
  • "CustomerPickup": {
    },
  • "DepotId": "DPT-DAL-001",
  • "EndDateTime": "2024-03-22T17:00:00Z",
  • "EsignState": "Signed",
  • "GrandTaxTotal": 202.19,
  • "GrandTotal": 2652.94,
  • "LineItems": [
    ],
  • "LocationId": "LOC-DAL-001",
  • "Notes": [
    ],
  • "PONumber": "ABC-PO-98765",
  • "StartDateTime": "2024-03-15T08:00:00Z",
  • "Status": "Open",
  • "Totals": [
    ],
  • "CreatedDateTime": "2024-03-14T15:30:00Z",
  • "UpdatedDateTime": "2024-03-15T08:15:00Z",
  • "IsPickup": true,
  • "Revision": 2,
  • "AdditionalFields": {
    }
}

Quote to Reservation

Supported by: Elite

Changes a contract quote into a reservation. See quoteToReservationEligible to check if a quote is eligible to be converted into a reservation.

Authorizations:
ApiKey
path Parameters
ContractId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "Contract",
  • "Id": "CNT-2024-0012345",
  • "Name": "Excavator Rental - ABC Construction",
  • "Identifiers": {
    },
  • "Addresses": [
    ],
  • "AmountDue": 2450.75,
  • "AmountPaid": 1000,
  • "Contacts": [
    ],
  • "ContractInformation": "Weekly rental of CAT 320 Excavator for Downtown Dallas project",
  • "CustomerId": "CUST-ABC-001",
  • "CustomerName": "ABC Construction",
  • "CustomerPickup": {
    },
  • "DepotId": "DPT-DAL-001",
  • "EndDateTime": "2024-03-22T17:00:00Z",
  • "EsignState": "Signed",
  • "GrandTaxTotal": 202.19,
  • "GrandTotal": 2652.94,
  • "LineItems": [
    ],
  • "LocationId": "LOC-DAL-001",
  • "Notes": [
    ],
  • "PONumber": "ABC-PO-98765",
  • "StartDateTime": "2024-03-15T08:00:00Z",
  • "Status": "Open",
  • "Totals": [
    ],
  • "CreatedDateTime": "2024-03-14T15:30:00Z",
  • "UpdatedDateTime": "2024-03-15T08:15:00Z",
  • "IsPickup": true,
  • "Revision": 2,
  • "AdditionalFields": {
    }
}

Quote to Reservation Eligible

Supported by: Elite

Check if a Contract quote is eligible to be converted into a reservation.

Authorizations:
ApiKey
path Parameters
ContractId
required
string

Responses

Response samples

Content type
application/json
{
  • "Success": true,
  • "Issues": [ ]
}

Enum Lookup for Contracts

Supported by: Elite

Elite users can look up enums related to contracts. Currently lookup/cancelReasonId is the only field this returns a value

Authorizations:
ApiKey
path Parameters
field
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Customers

Create a new Customer

Supported by: Elite

Create a new Customer

Required fields:

  • If RecordType is "Individual", then:
    • FirstName
    • LastName
  • Otherwise:
    • Name
Authorizations:
ApiKey
Request Body schema: application/json
required
Name
string or null [ 1 .. 50 ] characters
Default: "ABC Construction Co"

Can be a company or individual name. Example Business: "ABC Construction Services LLC" Example Individual: "John Smith"

object or null

These are unique properties that are specific to certain products (Elite, Essentials, Syrinx).

Supported List

All

  • TaxNumber - Example: "47-1234567"

Elite Only

  • CustomerKey - Example: "ABC123"
  • DriversLicense - Example: "D1234567"
  • FederalId - Example: "84-1234567"
  • InsuranceNumber - Example: "POL-987654321"
  • OtherId - Example: "DUNS-456789"

Syrinx Only

  • AccountNumber - Example: "ACC10012345"
  • RegistrationNumber - Example: "REG2024-001"
  • VatNumber - Example: "GB123456789"

Not all properties are valid across all products.

Array of objects

Supported types will depend on the product.

Elite:

  • Supported: "Customer"
  • Coming Soon: "Default", "Billing"

Example: [ { "Type": "Customer", "Line1": "1234 Construction Way", "Line2": "Suite 100", "City": "Dallas", "Province": "TX", "PostalCode": "75201" } ]

BillingName
string or null <= 50 characters

Full name associated with billing contact. Other billing details can be placed in Address, Phone & Email fields by type. Example: "Sarah Johnson, Accounts Payable"

Classification
string or null

What kind of customer is this? Examples include:

  • "General Contractor"
  • "Plumbing Contractor"
  • "Homeowner"
  • "Event Planner"
  • "Landscaper"
  • "Demolition Contractor"
  • "HVAC Contractor"

You can hit the /customers/lookup/{Field} endpoint and pass in the query parameter "Field" --> "Classification" to receive a list of acceptable values for this field.

Array of objects

If there are any contacts associated with this Location, then they will be listed here. NOTE - Syrinx has contacts on the customer record, but not the location.

Elite: Supported.
Syrinx: Supported.

CreditLimit
integer or null <= 2147483647

The highest outstanding balance (open, closed, etc summed) that a non-elevated rental employee can create/modify a contract without override from a manager. Example: 25000 (represents $25,000 credit limit)

CurrencyCode
string or null
Default: "USD"

Defaults to "USD". Code is ISO 4217 format. Common Examples:

  • "USD" (US Dollar)
  • "CAD" (Canadian Dollar)
  • "GBP" (British Pound)
  • "EUR" (Euro)
  • "AUD" (Australian Dollar)

You can hit the /customers/lookup/{Field} endpoint and pass in the query parameter "Field" --> "CurrencyCode" to receive a list of acceptable values for this field.

DoNotEmail
boolean or null

Prevents the software from sending 'marketing' emails.

Array of objects

Example: [ { "Type": "Primary", "Email": "contracts@abcconstruction.com" } ]

FirstName
string or null [ 1 .. 50 ] characters

First Name of Customer (individual only). Example: "John"

HeardAboutUs
string or null

Common Examples:

  • "Google Search"
  • "Referral"
  • "Trade Show"
  • "Social Media"
  • "Industry Publication"
  • "Local Advertisement"

You can hit the /customers/lookup/{Field} endpoint and pass in the query parameter "Field" --> "HeardAboutUs" to receive a list of acceptable values for this field.

LastName
string or null [ 1 .. 50 ] characters

Last Name of Customer (individual only). Example: "Smith"

Locale
string or null
Default: "en-US"

Defaults to "en-US". Code is ISO 639 format.

You can hit the /customers/lookup/{Field} endpoint and pass in the query parameter "Field" --> "Locale" to receive a list of acceptable values for this field.

Nontaxable
boolean or null

Means no tax is calculated for this customer on any contracts

Array of objects

Example: [ { "Type": "Default", "CountryCode": "1", "Number": "214-555-0123" }, { "Type": "Mobile", "CountryCode": "1", "Number": "214-555-0124" } ]

RecordType
string
Default: "Business"
Enum: "Business" "Individual"

Denotes if this record is a business or an individual. Example Business: Construction company renting heavy equipment Example Individual: Homeowner renting tools

object or null

Data related to the sales person associated with the Customer.

Status
string
Default: "Lead"
Enum: "Lead" "Prospect" "Cash" "Account"

Examples:

  • "Lead": Initial contact, no rentals yet
  • "Prospect": Actively discussing rental needs
  • "Cash": Pay-as-you-go customer
  • "Account": Established customer with credit terms

You can hit the /customers/lookup/{Field} endpoint and pass in the query parameter "Field" --> "Status" to receive a list of acceptable values for this field.

ExternalReceivableBalance
number

(Elite Only) The value representing the balance due as calculated by an external ERP system that handles all lines of business for an organization.

object or null

Additional fields for Customer. Example: { "CustomerWebPortal": true, "ExternalTaxClass": "CONST", "ExternalTaxCode": "TX-CONST-01", "ForceContractInfo": true, "ForceJobId": true, "ForcePurchaseOrder": true, "InvoiceSendBy": "Email", "StatementSendBy": "Email", "Terms": "Net 30", "UserDefined1": "VIP Customer", "UserDefined2": "Annual Revenue >$5M" }

Responses

Request samples

Content type
application/json
{
  • "Name": "ABC Construction Co"
}

Response samples

Content type
application/json
{
  • "ModelType": "Customer",
  • "Id": "CUST-12345",
  • "Name": "ABC Construction Co",
  • "Identifiers": {
    },
  • "Addresses": [
    ],
  • "Status": "Active",
  • "CreatedDateTime": "2024-01-01T00:00:00Z"
}

Retrieve a list of Customers

Supported by: Elite, Syrinx

Elite supports the following fields for the Search filter:

  • Name
  • Identifiers.CustomerKey
  • Addresses.Line1
  • Addresses.City
  • Addresses.State
  • Addresses.PostalCode
  • Phones.Number
Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a single Customer by Id

Supported by: Elite, Syrinx

Retrieve a single Customer by Id

Authorizations:
ApiKey
path Parameters
CustomerId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "Customer",
  • "Id": "CUST-12345",
  • "Name": "ABC Construction Co",
  • "Identifiers": {
    },
  • "Addresses": [
    ],
  • "Status": "Active",
  • "CreatedDateTime": "2024-01-01T00:00:00Z"
}

Update a single Customer by Id

Supported by: Elite

Update a single Customer by Id

Required fields:

  • Id
Authorizations:
ApiKey
path Parameters
CustomerId
required
string
Request Body schema: application/json
required
Name
string or null [ 1 .. 50 ] characters
Default: "ABC Construction Co"

Can be a company or individual name. Example Business: "ABC Construction Services LLC" Example Individual: "John Smith"

object or null

These are unique properties that are specific to certain products (Elite, Essentials, Syrinx).

Supported List

All

  • TaxNumber - Example: "47-1234567"

Elite Only

  • CustomerKey - Example: "ABC123"
  • DriversLicense - Example: "D1234567"
  • FederalId - Example: "84-1234567"
  • InsuranceNumber - Example: "POL-987654321"
  • OtherId - Example: "DUNS-456789"

Syrinx Only

  • AccountNumber - Example: "ACC10012345"
  • RegistrationNumber - Example: "REG2024-001"
  • VatNumber - Example: "GB123456789"

Not all properties are valid across all products.

Array of objects

Supported types will depend on the product.

Elite:

  • Supported: "Customer"
  • Coming Soon: "Default", "Billing"

Example: [ { "Type": "Customer", "Line1": "1234 Construction Way", "Line2": "Suite 100", "City": "Dallas", "Province": "TX", "PostalCode": "75201" } ]

BillingName
string or null <= 50 characters

Full name associated with billing contact. Other billing details can be placed in Address, Phone & Email fields by type. Example: "Sarah Johnson, Accounts Payable"

Classification
string or null

What kind of customer is this? Examples include:

  • "General Contractor"
  • "Plumbing Contractor"
  • "Homeowner"
  • "Event Planner"
  • "Landscaper"
  • "Demolition Contractor"
  • "HVAC Contractor"

You can hit the /customers/lookup/{Field} endpoint and pass in the query parameter "Field" --> "Classification" to receive a list of acceptable values for this field.

Array of objects

If there are any contacts associated with this Location, then they will be listed here. NOTE - Syrinx has contacts on the customer record, but not the location.

Elite: Supported.
Syrinx: Supported.

CreditLimit
integer or null <= 2147483647

The highest outstanding balance (open, closed, etc summed) that a non-elevated rental employee can create/modify a contract without override from a manager. Example: 25000 (represents $25,000 credit limit)

CurrencyCode
string or null
Default: "USD"

Defaults to "USD". Code is ISO 4217 format. Common Examples:

  • "USD" (US Dollar)
  • "CAD" (Canadian Dollar)
  • "GBP" (British Pound)
  • "EUR" (Euro)
  • "AUD" (Australian Dollar)

You can hit the /customers/lookup/{Field} endpoint and pass in the query parameter "Field" --> "CurrencyCode" to receive a list of acceptable values for this field.

DoNotEmail
boolean or null

Prevents the software from sending 'marketing' emails.

Array of objects

Example: [ { "Type": "Primary", "Email": "contracts@abcconstruction.com" } ]

FirstName
string or null [ 1 .. 50 ] characters

First Name of Customer (individual only). Example: "John"

HeardAboutUs
string or null

Common Examples:

  • "Google Search"
  • "Referral"
  • "Trade Show"
  • "Social Media"
  • "Industry Publication"
  • "Local Advertisement"

You can hit the /customers/lookup/{Field} endpoint and pass in the query parameter "Field" --> "HeardAboutUs" to receive a list of acceptable values for this field.

LastName
string or null [ 1 .. 50 ] characters

Last Name of Customer (individual only). Example: "Smith"

Locale
string or null
Default: "en-US"

Defaults to "en-US". Code is ISO 639 format.

You can hit the /customers/lookup/{Field} endpoint and pass in the query parameter "Field" --> "Locale" to receive a list of acceptable values for this field.

Nontaxable
boolean or null

Means no tax is calculated for this customer on any contracts

Array of objects

Example: [ { "Type": "Default", "CountryCode": "1", "Number": "214-555-0123" }, { "Type": "Mobile", "CountryCode": "1", "Number": "214-555-0124" } ]

RecordType
string
Default: "Business"
Enum: "Business" "Individual"

Denotes if this record is a business or an individual. Example Business: Construction company renting heavy equipment Example Individual: Homeowner renting tools

object or null

Data related to the sales person associated with the Customer.

Status
string
Default: "Lead"
Enum: "Lead" "Prospect" "Cash" "Account"

Examples:

  • "Lead": Initial contact, no rentals yet
  • "Prospect": Actively discussing rental needs
  • "Cash": Pay-as-you-go customer
  • "Account": Established customer with credit terms

You can hit the /customers/lookup/{Field} endpoint and pass in the query parameter "Field" --> "Status" to receive a list of acceptable values for this field.

ExternalReceivableBalance
number

(Elite Only) The value representing the balance due as calculated by an external ERP system that handles all lines of business for an organization.

object or null

Additional fields for Customer. Example: { "CustomerWebPortal": true, "ExternalTaxClass": "CONST", "ExternalTaxCode": "TX-CONST-01", "ForceContractInfo": true, "ForceJobId": true, "ForcePurchaseOrder": true, "InvoiceSendBy": "Email", "StatementSendBy": "Email", "Terms": "Net 30", "UserDefined1": "VIP Customer", "UserDefined2": "Annual Revenue >$5M" }

Responses

Request samples

Content type
application/json
{
  • "Name": "ABC Construction Co"
}

Response samples

Content type
application/json
{
  • "ModelType": "Customer",
  • "Id": "CUST-12345",
  • "Name": "ABC Construction Co",
  • "Identifiers": {
    },
  • "Addresses": [
    ],
  • "Status": "Active",
  • "CreatedDateTime": "2024-01-01T00:00:00Z"
}

Enum Lookup for Customer

Supported by: Elite

With this endpoint, you can look up dynamic enum values for Customer fields. The description on a particular field will indicate if it supports a lookup.

Authorizations:
ApiKey
path Parameters
field
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Depots

Retrieve a list of Depots

Supported by: Elite, Syrinx

Elite supports the following fields for the Search filter:

  • Name
  • Identifiers.Key
Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a single Depot by Id

Supported by: Elite, Syrinx

Retrieve a single Depot by Id

Authorizations:
ApiKey
path Parameters
DepotId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "Depot",
  • "Id": "DEP-001",
  • "Name": "Main Equipment Yard",
  • "Address": {
    },
  • "ContactName": "Yard Manager",
  • "ContactPhone": "214-555-7890",
  • "Status": "Active",
  • "CreatedDateTime": "2024-01-01T00:00:00Z"
}

Invoices

Retrieve a list of Invoices

Retrieve a list of Invoices

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a single Invoice by Id

Retrieve a single Invoice by Id

Authorizations:
ApiKey
path Parameters
InvoiceId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "Invoice",
  • "Id": "INV-2024-001",
  • "InvoiceNumber": "24001",
  • "CustomerId": "CUST-12345",
  • "InvoiceDate": "2024-03-15T00:00:00Z",
  • "DueDate": "2024-04-14T00:00:00Z",
  • "SubTotal": 1500,
  • "TaxAmount": 123.75,
  • "TotalAmount": 1623.75,
  • "Status": "Open",
  • "CreatedDateTime": "2024-03-15T14:30:00Z"
}

Retrieve files for a single Invoice by Id.

Supported by: Elite

Retrieve files for a single Invoice by Id.

Authorizations:
ApiKey
path Parameters
InvoiceId
required
string
tagKey
required
string

pdfs or instructions or photos

Responses

Response samples

Content type
application/json
[]

Line Items

Retrieve a list of line items

Retrieve a list of line items

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a single line item by its id

Retrieve a single line item by its id

Authorizations:
ApiKey
path Parameters
LineItemId
required
string

Responses

Response samples

Content type
application/json
{
  • "Id": "LI-001",
  • "ContractId": "CNT-2024-001",
  • "ProductId": "PROD-123",
  • "Name": "20T Excavator",
  • "Quantity": 1,
  • "RateAmount": 450,
  • "RateType": "Daily",
  • "StartDate": "2024-03-15T00:00:00Z",
  • "EndDate": "2024-04-15T00:00:00Z",
  • "Status": "OnRent",
  • "SubTotal": 13500,
  • "TaxAmount": 1113.75,
  • "TotalAmount": 14613.75
}

Call Line Items Off Rent

Supported by: Elite

Call Line Items Off Rent

Authorizations:
ApiKey
Request Body schema: application/json
required
LineItemIds
required
Array of strings
Default: ["687122~@!^$1"]

Array of unique line item IDs to be called off rent. Each ID represents a piece of equipment being returned.

CalledOffDateTime
required
string <date-time>
Default: "2024-04-15T00:00:00"

The exact date and time when the equipment will be called off rent (returned). Must be in UTC timezone.

PersonCallingOff
string

Full name of the customer representative who is authorizing the return of the equipment. This person should be authorized to make rental decisions.

Memo
string

Additional notes about the return, such as equipment condition, reason for return, or special handling instructions

RemoteUserId
string

The identifier for the user account on the remote system making this request. Could be an email, username, or internal ID that maps to the user in the remote system.

Responses

Request samples

Content type
application/json
{
  • "LineItemIds": [
    ],
  • "ContractId": "CNT-2024-001",
  • "ReturnDate": "2024-04-15T00:00:00Z",
  • "CalledOffDateTime": "2024-04-15T00:00:00",
  • "Condition": "Good",
  • "Notes": "Equipment returned in clean condition, no damage",
  • "MeterReading": 150.5,
  • "FuelLevel": 0.75
}

Response samples

Content type
application/json
{
  • "ModelType": "Contract",
  • "Id": "CNT-2024-0012345",
  • "Name": "Excavator Rental - ABC Construction",
  • "Identifiers": {
    },
  • "Addresses": [
    ],
  • "AmountDue": 2450.75,
  • "AmountPaid": 1000,
  • "Contacts": [
    ],
  • "ContractInformation": "Weekly rental of CAT 320 Excavator for Downtown Dallas project",
  • "CustomerId": "CUST-ABC-001",
  • "CustomerName": "ABC Construction",
  • "CustomerPickup": {
    },
  • "DepotId": "DPT-DAL-001",
  • "EndDateTime": "2024-03-22T17:00:00Z",
  • "EsignState": "Signed",
  • "GrandTaxTotal": 202.19,
  • "GrandTotal": 2652.94,
  • "LineItems": [
    ],
  • "LocationId": "LOC-DAL-001",
  • "Notes": [
    ],
  • "PONumber": "ABC-PO-98765",
  • "StartDateTime": "2024-03-15T08:00:00Z",
  • "Status": "Open",
  • "Totals": [
    ],
  • "CreatedDateTime": "2024-03-14T15:30:00Z",
  • "UpdatedDateTime": "2024-03-15T08:15:00Z",
  • "IsPickup": true,
  • "Revision": 2,
  • "AdditionalFields": {
    }
}

Locations

Create a new Location

Supported by: Elite

Create a new Location

Required fields:

  • Name
Authorizations:
ApiKey
Request Body schema: application/json
required
Name
string or null [ 1 .. 255 ] characters
Default: "Downtown Construction Site"

This would map to the jobsite description in Elite. Examples:

  • 'Downtown High-Rise Project - 123 Main St'
  • 'Smith Wedding Venue - Central Park'
  • 'Airport Terminal 3 Expansion Project'
  • 'Annual Home & Garden Show - Convention Center'
  • 'Johnson Construction - Highway 40 Bridge Project'
object or null

Location address with specific delivery instructions. Examples:

  • Construction site with security checkpoint
  • Event venue with loading dock access
  • Warehouse with specific bay numbers
Array of objects

If there are any contacts associated with this Location, then they will be listed here. NOTE - Syrinx has contacts on the customer record, but not the location.

Elite: Supported.
Syrinx: Not supported.

EndDate
string or null <date-time>

This is the date from which the location is no longer valid to be used. A location cannot be used after this date. Examples:

  • '2024-12-31T23:59:59Z' for construction project completion
  • '2024-06-30T23:59:59Z' for event venue teardown deadline
  • '2024-09-30T23:59:59Z' for temporary storage facility closure

Elite: This field is not supported.
Syrinx: Supported.

Array of objects

Currently we only support SiteDeliveryInstructions for special delivery requirements and site access information.

OwnerId
string or null

Can be null if SharedLocation is true. Should be a CustomerId if Type is Customer, SupplierId if Type is Supplier, etc. Examples:

  • 'CUST_12345' for ABC Construction's project site
  • 'CUST_67890' for Metropolitan Events' venue
  • 'SUPP_34567' for Equipment Manufacturing Co's facility
Array of objects

Type can == "Customer" or "Billing" for now. This supports multiple phone numbers. Examples:

  • Site office main line
  • Security desk 24/7 contact
  • Project manager's direct line
  • Loading dock coordinator
  • After-hours emergency contact
StartDate
string or null <date-time>

This is the date from which the location is valid to be used. A location cannot be used before this date. Examples:

  • '2024-03-15T00:00:00Z' for construction project mobilization
  • '2024-06-01T00:00:00Z' for event venue setup start
  • '2024-04-01T00:00:00Z' for warehouse opening date

Elite: Not supported.
Syrinx: Supported.

AdditionalFields
object or null

Additional fields for Location. Example: Custom fields for site-specific requirements or certifications.

Responses

Request samples

Content type
application/json
{
  • "Name": "Downtown Construction Site"
}

Response samples

Content type
application/json
{
  • "ModelType": "Location",
  • "Id": "LOC-2024-001",
  • "Name": "Downtown Construction Site",
  • "CustomerId": "CUST-12345",
  • "Address": {
    },
  • "ContactName": "Site Manager",
  • "ContactPhone": "214-555-5678",
  • "Status": "Active",
  • "CreatedDateTime": "2024-03-15T00:00:00Z"
}

Retrieve a list of Locations

Supported by: Elite, Syrinx

Elite supports the following fields for the Search filter:

  • Name
  • Address.Line1
  • Address.City
  • Address.Province
  • Address.PostalCode
  • Phones.Number
  • Contacts.Contact.Name
Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a single Location by Id

Supported by: Elite, Syrinx

Retrieve a single Location by Id

Authorizations:
ApiKey
path Parameters
LocationId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "Location",
  • "Id": "LOC-2024-001",
  • "Name": "Downtown Construction Site",
  • "CustomerId": "CUST-12345",
  • "Address": {
    },
  • "ContactName": "Site Manager",
  • "ContactPhone": "214-555-5678",
  • "Status": "Active",
  • "CreatedDateTime": "2024-03-15T00:00:00Z"
}

Update a single Location by Id

Supported by: Elite

Update a single Location by Id

Required fields:

  • Id
Authorizations:
ApiKey
path Parameters
LocationId
required
string
Request Body schema: application/json
required
Name
string or null [ 1 .. 255 ] characters
Default: "Downtown Construction Site"

This would map to the jobsite description in Elite. Examples:

  • 'Downtown High-Rise Project - 123 Main St'
  • 'Smith Wedding Venue - Central Park'
  • 'Airport Terminal 3 Expansion Project'
  • 'Annual Home & Garden Show - Convention Center'
  • 'Johnson Construction - Highway 40 Bridge Project'
object or null

Location address with specific delivery instructions. Examples:

  • Construction site with security checkpoint
  • Event venue with loading dock access
  • Warehouse with specific bay numbers
Array of objects

If there are any contacts associated with this Location, then they will be listed here. NOTE - Syrinx has contacts on the customer record, but not the location.

Elite: Supported.
Syrinx: Not supported.

EndDate
string or null <date-time>

This is the date from which the location is no longer valid to be used. A location cannot be used after this date. Examples:

  • '2024-12-31T23:59:59Z' for construction project completion
  • '2024-06-30T23:59:59Z' for event venue teardown deadline
  • '2024-09-30T23:59:59Z' for temporary storage facility closure

Elite: This field is not supported.
Syrinx: Supported.

Array of objects

Currently we only support SiteDeliveryInstructions for special delivery requirements and site access information.

OwnerId
string or null

Can be null if SharedLocation is true. Should be a CustomerId if Type is Customer, SupplierId if Type is Supplier, etc. Examples:

  • 'CUST_12345' for ABC Construction's project site
  • 'CUST_67890' for Metropolitan Events' venue
  • 'SUPP_34567' for Equipment Manufacturing Co's facility
Array of objects

Type can == "Customer" or "Billing" for now. This supports multiple phone numbers. Examples:

  • Site office main line
  • Security desk 24/7 contact
  • Project manager's direct line
  • Loading dock coordinator
  • After-hours emergency contact
StartDate
string or null <date-time>

This is the date from which the location is valid to be used. A location cannot be used before this date. Examples:

  • '2024-03-15T00:00:00Z' for construction project mobilization
  • '2024-06-01T00:00:00Z' for event venue setup start
  • '2024-04-01T00:00:00Z' for warehouse opening date

Elite: Not supported.
Syrinx: Supported.

AdditionalFields
object or null

Additional fields for Location. Example: Custom fields for site-specific requirements or certifications.

Responses

Request samples

Content type
application/json
{
  • "Name": "Downtown Construction Site"
}

Response samples

Content type
application/json
{
  • "ModelType": "Location",
  • "Id": "LOC-2024-001",
  • "Name": "Downtown Construction Site",
  • "CustomerId": "CUST-12345",
  • "Address": {
    },
  • "ContactName": "Site Manager",
  • "ContactPhone": "214-555-5678",
  • "Status": "Active",
  • "CreatedDateTime": "2024-03-15T00:00:00Z"
}

Products

Retrieve availability for a single Product by Id

Supported by: Elite, Syrinx

Retrieve availability for a single Product by Id

Authorizations:
ApiKey
path Parameters
ProductId
required
string
query Parameters
startdate
required
string
enddate
required
string
returnSingleRecord
required
string

Responses

Response samples

Content type
application/json
{
  • "ProductId": "PROD-123",
  • "Name": "20T Excavator",
  • "TotalQuantity": 5,
  • "AvailableQuantity": 3,
  • "ReservedQuantity": 1,
  • "RentedQuantity": 1,
  • "NextAvailableDate": "2024-03-20T00:00:00Z",
  • "DepotId": "DEP-001"
}

Create a Product

Create a new product in the system. This endpoint is used to create a new product in the system. The product will be created with the default values for the product type. The product will be created with the default values for the product type.

Authorizations:
ApiKey
Request Body schema: application/json
required
Name
required
string or null
Default: "Test MOdel "

The display name for the item. Should be clear and descriptive, including key specifications when relevant.

required
object or null
Default: {"Key":"12435","Barcode":"123","Alias":"smith"}

Identifying items for Product. Contains various codes and numbers used to track and identify the product across systems.

CategoryName
string or null
Default: "Audio - Video - Lighting"

Denormalized name of the Category. Elite only supports one category name. Used for display and filtering.

Classification
required
string
Default: "Rental"
Enum: "Rental" "Sale"

Specifies if the product is available for rental or sale. Only Rental and Sale supported for POST.

DepotId
required
string or null
Default: "000"

Id of the Depot (Syrinx), Store (Elite), or Company (Essentials) where the equipment is located.

Description
required
string or null
Default: "Nodescription"

Detailed description of the product including key features, specifications, and use cases.

IsPart
boolean or null

Indicates if this is a spare part or consumable item rather than rental equipment.

required
object or null
Default: {"ExternalTaxCode":"12AS","RentalType":"Rental - Header","CurrentDepotId":"000","ReorderMinimum":"2","ReorderMaximum":"3","CaseQuantity":5,"RentalCaseQuantity":2,"CriticalLevel":1,"TaxCode":14}

Additional fields for inventory management and ordering.

Responses

Request samples

Content type
application/json
{
  • "ModelType": "Product",
  • "Name": "Test MOdel ",
  • "Identifiers": {
    },
  • "CategoryIds": [
    ],
  • "CategoryName": "Audio - Video - Lighting",
  • "Classification": "Rental",
  • "Description": "Nodescription",
  • "Images": [ ],
  • "Key": ".ACPLUG",
  • "ModelNumber": "23",
  • "ModelYear": "2025",
  • "OtherUrls": [ ],
  • "Tags": [ ],
  • "DepotId": "000",
  • "AdditionalFields": {
    }
}

Response samples

Content type
application/json
{
  • "ModelType": "Product",
  • "Id": "PROD-123",
  • "Name": "20T Excavator",
  • "Description": "20-ton tracked excavator suitable for large construction projects",
  • "Category": "Heavy Equipment",
  • "Manufacturer": "CAT",
  • "Model": "320",
  • "SerialNumber": "CAT320-123456",
  • "Status": "Available",
  • "DepotId": "DEP-001",
  • "Rates": [
    ],
  • "CreatedDateTime": "2024-03-15T00:00:00Z"
}

Retrieve a list of Products

Supported by: Elite, Syrinx

Elite supports the following fields for the Search filter:

  • Name
  • Identifiers.Key
Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a single Product by Id

Supported by: Elite, Syrinx

Retrieve a single Product by Id

Authorizations:
ApiKey
path Parameters
ProductId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "Product",
  • "Id": "PROD-123",
  • "Name": "20T Excavator",
  • "Description": "20-ton tracked excavator suitable for large construction projects",
  • "Category": "Heavy Equipment",
  • "Manufacturer": "CAT",
  • "Model": "320",
  • "SerialNumber": "CAT320-123456",
  • "Status": "Available",
  • "DepotId": "DEP-001",
  • "Rates": [
    ],
  • "CreatedDateTime": "2024-03-15T00:00:00Z"
}

Update a Product

Update a Product

Authorizations:
ApiKey
path Parameters
ProductId
required
string
Request Body schema: application/json
required
Name
required
string or null
Default: "Test MOdel "

The display name for the item. Should be clear and descriptive, including key specifications when relevant.

required
object or null
Default: {"Key":"12435","Barcode":"123","Alias":"smith"}

Identifying items for Product. Contains various codes and numbers used to track and identify the product across systems.

CategoryName
string or null
Default: "Audio - Video - Lighting"

Denormalized name of the Category. Elite only supports one category name. Used for display and filtering.

Classification
required
string
Default: "Rental"
Enum: "Rental" "Sale"

Specifies if the product is available for rental or sale. Only Rental and Sale supported for POST.

DepotId
required
string or null
Default: "000"

Id of the Depot (Syrinx), Store (Elite), or Company (Essentials) where the equipment is located.

Description
required
string or null
Default: "Nodescription"

Detailed description of the product including key features, specifications, and use cases.

IsPart
boolean or null

Indicates if this is a spare part or consumable item rather than rental equipment.

required
object or null
Default: {"ExternalTaxCode":"12AS","RentalType":"Rental - Header","CurrentDepotId":"000","ReorderMinimum":"2","ReorderMaximum":"3","CaseQuantity":5,"RentalCaseQuantity":2,"CriticalLevel":1,"TaxCode":14}

Additional fields for inventory management and ordering.

Responses

Request samples

Content type
application/json
{
  • "ModelType": "Product",
  • "Name": "Test MOdel ",
  • "Identifiers": {
    },
  • "CategoryIds": [
    ],
  • "CategoryName": "Audio - Video - Lighting",
  • "Classification": "Rental",
  • "Description": "Nodescription",
  • "Images": [ ],
  • "Key": ".ACPLUG",
  • "ModelNumber": "23",
  • "ModelYear": "2025",
  • "OtherUrls": [ ],
  • "Tags": [ ],
  • "DepotId": "000",
  • "AdditionalFields": {
    }
}

Response samples

Content type
application/json
{
  • "ModelType": "Product",
  • "Id": "PROD-123",
  • "Name": "20T Excavator",
  • "Description": "20-ton tracked excavator suitable for large construction projects",
  • "Category": "Heavy Equipment",
  • "Manufacturer": "CAT",
  • "Model": "320",
  • "SerialNumber": "CAT320-123456",
  • "Status": "Available",
  • "DepotId": "DEP-001",
  • "Rates": [
    ],
  • "CreatedDateTime": "2024-03-15T00:00:00Z"
}

Retrieve rates for a single Product by Id.

Supported by: Elite, Syrinx

Retrieve rates for a single Product by Id.

Authorizations:
ApiKey
path Parameters
ProductId
required
string
query Parameters
depotId
required
string
locationId
required
string
customerId
required
string
startDate
required
string
endDate
required
string

Responses

Response samples

Content type
application/json
{
  • "ProductId": "PROD-123",
  • "Name": "20T Excavator",
  • "Rates": [
    ]
}

Retrieve a list of associations between products

Supported by: Elite

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve files for a single Product by Id.

Supported by: Elite

Retrieve files for a single Product by Id.

Authorizations:
ApiKey
path Parameters
ProductId
required
string
tagKey
required
string

pdfs or instructions or photos

Responses

Response samples

Content type
application/json
[]

Stock

Create a new Stock record (serialized)

Supported by: Elite

Only serialized stock is supported for POST at this time.

Required fields:

  • Name
  • Classification
  • ProductId
  • DepotId
Authorizations:
ApiKey
Request Body schema: application/json
required
Name
string or null
Default: "20T Excavator"

A display name for this record. Often used as a summary for lookups.

object or null
Default: {"PartNumber":"12345","ReorderMinimum":"2","Alias":"CAT320-123456","Barcode":"1234567890123"}

Identifying items for Stock.

Classification
string
Default: "Sale"
Enum: "Internal" "Rental" "Sale"

This Product is either meant for sale, rental or internal.

DepotId
string or null <= 3 characters
Default: "001"

Id of the Depot (Syrinx), Store (Elite), or Company (Essentials) of the stock. (See Depot endpoints)

IsAsset
boolean or null

Item is eligible for depreciation

LoadingRatio
integer or null

A number that represents the ability for a stock item to fit on a vehicle.

Elite: This field is not supported.

Manufacturer
string or null <= 50 characters

The manufacturer associated with a specific instance of an item.

ModelName
string or null <= 30 characters

OPTIONAL. This also exists on Product. The model name associated with a specific instance of an item.

Elite: This field is not supported.

ModelNumber
string or null <= 30 characters
Default: "1234"

OPTIONAL. This also exists on Product. The model number associated with a specific instance of an item.

ModelYear
string or null
Default: "2020"

OPTIONAL. This also exists on Product. The model year associated with a specific instance of an item.

ProductId
string <= 16 characters
Default: "158"

Id of the Product this Stock belongs to (see Product endpoint).

PurchaseDateTime
string or null <date-time>

Date stock was purchased.

Elite: On serialized items, it is the date and time the item was purchased. On bulk items, it is the last date and time the items were purchased.

PurchasePrice
number or null

Price stock was purchased.

Elite: On serialized items, it is the purchase price for the item. On bulk items, it is the most recent purchase price of the item.

Quantity
string or null

Field only required for bulk stock endpoints

SerialNumber
string or null <= 50 characters

The serial number associated with a specific instance of an item.

object or null
Default: {"ReorderMinimum":2,"ReorderMaximum":3,"CaseQuantity":5,"RentalCaseQuantity":2,"CriticalLevel":1,"GlNumber":"1234"}
object or null

Depreciation fields for Stock

object or null
Deprecated

Depreciation fields for Stock

Responses

Request samples

Content type
application/json
{
  • "Name": "20T Excavator",
  • "DepotId": "001",
  • "ProductId": "158",
  • "Classification": "Sale",
  • "ModelNumber": "1234",
  • "ModelYear": "2020",
  • "Identifiers": {
    },
  • "AdditionalFields": {
    },
  • "IsPart": true
}

Response samples

Content type
application/json
{
  • "ModelType": "Stock",
  • "Id": "STK-12345",
  • "Name": "CAT 305E2 Mini Excavator #123",
  • "CategoryIds": [
    ],
  • "CategoryName": "Mini Excavators",
  • "Classification": "Rental",
  • "DepartmentId": "DEPT-EARTHMOVING",
  • "DepartmentName": "Earthmoving Equipment",
  • "DepotId": "DEPOT-DALLAS",
  • "HasFuel": true,
  • "FuelCapacity": 15.5,
  • "IsAsset": true,
  • "IsSerialized": true,
  • "IsCustomerWorkOrderItem": true,
  • "IsGenericWorkOrderItem": true,
  • "LoadingRatio": 100,
  • "Manufacturer": "Caterpillar",
  • "ModelName": "305E2",
  • "ModelNumber": "CAT305E2-2023",
  • "ModelYear": "2023",
  • "ProductId": "PROD-CAT305E2",
  • "PurchaseDateTime": "2023-01-15T08:30:00Z",
  • "PurchasePrice": 65000,
  • "Quantity": 1,
  • "SerialNumber": "CAT305E2ABC123456",
  • "Status": "Available",
  • "CreatedDateTime": "2023-01-15T08:30:00Z",
  • "UpdatedDateTime": "2023-06-15T14:30:00Z"
}

Retrieve a list of Stock records

Supported by: Elite, Syrinx

Elite supports the following fields for the Search filter:

  • Name
  • Identifiers.Key
Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Update an existing Stock record

Supported by: Elite

Update an existing Stock record by StockId

Authorizations:
ApiKey
path Parameters
StockId
required
string
Request Body schema: application/json
required
SerialNumber
string or null
Default: "null"

The unique serial number of the stock item. For equipment, this is typically the manufacturer's serial number (e.g., 'CAT0123456789' for a Caterpillar excavator). For parts or consumables without a manufacturer serial, use your internal tracking number.

object or null
Default: {"Alias":"MINI-EX-35","Barcode":"EQ-123456"}

Additional identifying information for tracking the stock item in the system

object
Default: {"TotalDepreciation":15000,"CurrentValue":30000}
object
Default: {"CaseQuantity":12,"CriticalLevel":5,"GlNumber":"15200","RentalCaseQuantity":1,"ReorderMaximum":50,"ReorderMinimum":24,"TaxCode":1,"ExternalTaxCode":"PC040100"}

Responses

Request samples

Content type
application/json
{
  • "SerialNumber": "CAT0123456789",
  • "Identifiers": {
    },
  • "Depreciation": {
    },
  • "AdditionalFields": {
    }
}

Response samples

Content type
application/json
{
  • "ModelType": "Stock",
  • "Id": "STK-12345",
  • "Name": "CAT 305E2 Mini Excavator #123",
  • "CategoryIds": [
    ],
  • "CategoryName": "Mini Excavators",
  • "Classification": "Rental",
  • "DepartmentId": "DEPT-EARTHMOVING",
  • "DepartmentName": "Earthmoving Equipment",
  • "DepotId": "DEPOT-DALLAS",
  • "HasFuel": true,
  • "FuelCapacity": 15.5,
  • "IsAsset": true,
  • "IsSerialized": true,
  • "IsCustomerWorkOrderItem": true,
  • "IsGenericWorkOrderItem": true,
  • "LoadingRatio": 100,
  • "Manufacturer": "Caterpillar",
  • "ModelName": "305E2",
  • "ModelNumber": "CAT305E2-2023",
  • "ModelYear": "2023",
  • "ProductId": "PROD-CAT305E2",
  • "PurchaseDateTime": "2023-01-15T08:30:00Z",
  • "PurchasePrice": 65000,
  • "Quantity": 1,
  • "SerialNumber": "CAT305E2ABC123456",
  • "Status": "Available",
  • "CreatedDateTime": "2023-01-15T08:30:00Z",
  • "UpdatedDateTime": "2023-06-15T14:30:00Z"
}

Retrieve a single Stock record by Id

Supported by: Elite, Syrinx

Authorizations:
ApiKey
path Parameters
StockId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "Stock",
  • "Id": "STK-12345",
  • "Name": "CAT 305E2 Mini Excavator #123",
  • "CategoryIds": [
    ],
  • "CategoryName": "Mini Excavators",
  • "Classification": "Rental",
  • "DepartmentId": "DEPT-EARTHMOVING",
  • "DepartmentName": "Earthmoving Equipment",
  • "DepotId": "DEPOT-DALLAS",
  • "HasFuel": true,
  • "FuelCapacity": 15.5,
  • "IsAsset": true,
  • "IsSerialized": true,
  • "IsCustomerWorkOrderItem": true,
  • "IsGenericWorkOrderItem": true,
  • "LoadingRatio": 100,
  • "Manufacturer": "Caterpillar",
  • "ModelName": "305E2",
  • "ModelNumber": "CAT305E2-2023",
  • "ModelYear": "2023",
  • "ProductId": "PROD-CAT305E2",
  • "PurchaseDateTime": "2023-01-15T08:30:00Z",
  • "PurchasePrice": 65000,
  • "Quantity": 1,
  • "SerialNumber": "CAT305E2ABC123456",
  • "Status": "Available",
  • "CreatedDateTime": "2023-01-15T08:30:00Z",
  • "UpdatedDateTime": "2023-06-15T14:30:00Z"
}

Retrieve realtime Availability for a single Stock record by Id

Supported by: Elite, Syrinx

Retrieve realtime Availability for a single Stock record by Id

Authorizations:
ApiKey
path Parameters
StockId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "StockAvailability",
  • "Id": "SA-12345678-90AB-CDEF",
  • "Name": "CAT 305E2 #SN12345",
  • "Identifiers": {
    },
  • "StockId": "STK-98765432-10FE-DCBA",
  • "StockName": "Caterpillar 305E2 Mini Excavator",
  • "SerialNumber": "CAT0305E2ABCD12345",
  • "DepotId": "DEPOT-001-CHICAGO",
  • "StartDateTime": "2024-03-15T08:00:00Z",
  • "EndDateTime": "2024-03-22T17:00:00Z",
  • "AvailableQuantity": 1,
  • "ExpectedQuantity": 3,
  • "TotalQuantity": 5,
  • "QtyExpected": 3
}

Retrieve work orders for a Stock record by Id

Gets all the work orders for a stock item

Authorizations:
ApiKey
path Parameters
StockId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "WorkOrder",
  • "Id": "WO-20240315-1234",
  • "Name": "WO-20240315-1234 - ACME Construction - CAT 320 Excavator PM Service",
  • "StockId": "STOCK-CAT320-789",
  • "StockName": "2022 CAT 320 Excavator",
  • "DepotId": "DEPOT-DALLAS-001",
  • "OpenDateTime": "2024-03-15T08:00:00Z",
  • "CloseDateTime": "2024-03-15T16:30:00Z",
  • "CustomerId": "CUST-ACME-001",
  • "Status": "Open",
  • "Type": "PM Service",
  • "SubType": "250-Hour Service",
  • "IsCustomerWO": true,
  • "LaborTracking": {
    },
  • "Complaint": "Excessive hydraulic noise when operating boom functions, visible oil leak at main pump",
  • "Cause": "Failed seal in main hydraulic pump allowing air infiltration and internal wear",
  • "Correction": "Removed and replaced main hydraulic pump assembly, performed system flush, replaced filters, and tested all functions",
  • "ReportedIssue": "Customer reports loud noise from hydraulic system and oil spots under machine",
  • "OtherComments": "Customer requested notification before proceeding with repairs over $1000. Machine is needed back in service by Friday.",
  • "Operation": "250 Hour Preventive Maintenance Service",
  • "DueDateTime": "2024-03-17T17:00:00Z",
  • "AssignedRemoteUserId": "TECH-JOHN-001",
  • "AdditionalFields": {
    },
  • "CreatedDateTime": "2024-03-15T08:00:00Z",
  • "UpdatedDateTime": "2024-03-15T16:30:00Z"
}

Add fuel to a contract line item

Supported by: Elite

Add fuel to a contract line itemitem. Returns empty object on success. User can determine if it is successful by checking the response status code. 20X = success, 40X or 50X status codes are failures.

Required fields:

  • ContractLineItemId
  • FuelStockId
  • QuantitySold
Authorizations:
ApiKey
Request Body schema: application/json
required
ContractLineItemId
required
string
Default: "CLI-2024-0472891"

The line item id of the contract that this stock item is associated with. This links the fuel to a specific piece of equipment on a rental contract.

FuelStockId
required
string
Default: "FUEL-DSL-RED-001"

The id of the fuel type added. Found either on the line item additional fields, or the fuel info response. Common types include diesel (red or clear) and gasoline.

QuantitySold
required
number
Default: 25.5

Amount of fuel added in gallons/liters (depending on region settings). For example, adding 25.5 gallons of diesel to a mini excavator.

Responses

Request samples

Content type
application/json
{
  • "ContractLineItemId": "CLI-2024-0472891",
  • "FuelStockId": "FUEL-DSL-RED-001",
  • "QuantitySold": 25.5
}

Response samples

Content type
application/json
null

Retrieve fuel info for a single Stock record by Id

Supported by: Elite

Retrieve fuel info for a single Stock record by Id

Authorizations:
ApiKey
path Parameters
StockId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "StockAvailability",
  • "Id": "SA-12345678-90AB-CDEF",
  • "Name": "CAT 305E2 #SN12345",
  • "Identifiers": {
    },
  • "StockId": "STK-98765432-10FE-DCBA",
  • "StockName": "Caterpillar 305E2 Mini Excavator",
  • "SerialNumber": "CAT0305E2ABCD12345",
  • "DepotId": "DEPOT-001-CHICAGO",
  • "StartDateTime": "2024-03-15T08:00:00Z",
  • "EndDateTime": "2024-03-22T17:00:00Z",
  • "AvailableQuantity": 1,
  • "ExpectedQuantity": 3,
  • "TotalQuantity": 5,
  • "QtyExpected": 3
}

Retrieve files for a single Stock by Id.

Supported by: Elite

Retrieve files for a single Stock by Id.

Authorizations:
ApiKey
path Parameters
StockId
required
string
tagKey
required
string

pdfs or instructions or photos

Responses

Response samples

Content type
application/json
[]

Adjust a single bulk Stock record

Supported by: Elite

Add or remove quantity of bulk Stock records. Quantity IS modifiable here, whereas it is not modifiable on the PATCH /apikey/stock/{StockId} endpoint.

Authorizations:
ApiKey
path Parameters
StockId
required
string
Request Body schema: application/json
required
StockId
string
Default: "STK-12345"

The unique identifier of the Stock record being adjusted. For example: 'STK-12345' for a specific excavator's stock record or 'STK-78901' for a particular generator's stock entry.

QuantityAdjustment
required
number
Default: 5

The quantity change to apply to the stock level. Use positive numbers for additions (e.g., +5 for receiving new units) and negative numbers for reductions (e.g., -2 for damaged units). Common scenarios: receiving new inventory (+), cycle count adjustments (+/-), damage write-offs (-), theft (-)

AdjustmentReason
string or null
Default: "New shipment received - PO#45678"

Brief explanation for the stock adjustment. Examples: 'New shipment received', 'Cycle count adjustment', 'Damaged in transit', 'Annual inventory reconciliation', 'Write-off due to theft'

DepotId
string or null
Default: "DEP-001"

Location identifier where the stock adjustment is occurring. Examples: 'DEP-001' (Main Warehouse), 'STO-789' (Downtown Rental Center), 'COM-456' (West Coast Branch)

ProductId
string or null
Default: "PRD-5566"

Product identifier for the item being adjusted. Examples: 'PRD-5566' (CAT 305E2 Mini Excavator), 'PRD-7788' (Honda EU2200i Generator), 'PRD-9900' (Genie S-65 Boom Lift)

PurchaseDateTime
string or null <date-time>
Default: "2024-03-15T14:30:00Z"

The date and time when the stock was purchased. Important for depreciation calculations and warranty tracking. Format: ISO 8601 datetime

PurchasePrice
number or null
Default: 50000

The purchase price per unit in the system's base currency. Examples: 50000.00 for a mini excavator, 1200.00 for a generator, 75000.00 for a boom lift. Used for asset valuation and depreciation calculations.

Responses

Request samples

Content type
application/json
{
  • "StockId": "STK-12345",
  • "QuantityAdjustment": 5,
  • "AdjustmentReason": "New shipment received - PO#45678",
  • "DepotId": "DEP-001",
  • "ProductId": "PRD-5566",
  • "PurchaseDateTime": "2024-03-15T14:30:00Z",
  • "PurchasePrice": 50000
}

Response samples

Content type
application/json
{
  • "ModelType": "Stock",
  • "Id": "STK-12345",
  • "Name": "CAT 305E2 Mini Excavator #123",
  • "CategoryIds": [
    ],
  • "CategoryName": "Mini Excavators",
  • "Classification": "Rental",
  • "DepartmentId": "DEPT-EARTHMOVING",
  • "DepartmentName": "Earthmoving Equipment",
  • "DepotId": "DEPOT-DALLAS",
  • "HasFuel": true,
  • "FuelCapacity": 15.5,
  • "IsAsset": true,
  • "IsSerialized": true,
  • "IsCustomerWorkOrderItem": true,
  • "IsGenericWorkOrderItem": true,
  • "LoadingRatio": 100,
  • "Manufacturer": "Caterpillar",
  • "ModelName": "305E2",
  • "ModelNumber": "CAT305E2-2023",
  • "ModelYear": "2023",
  • "ProductId": "PROD-CAT305E2",
  • "PurchaseDateTime": "2023-01-15T08:30:00Z",
  • "PurchasePrice": 65000,
  • "Quantity": 1,
  • "SerialNumber": "CAT305E2ABC123456",
  • "Status": "Available",
  • "CreatedDateTime": "2023-01-15T08:30:00Z",
  • "UpdatedDateTime": "2023-06-15T14:30:00Z"
}

Vendors

Create a new Vendor

Supported by: Elite

Create a new Vendor

Required fields:

  • Name
Authorizations:
ApiKey
Request Body schema: application/json
required
Name
string or null [ 1 .. 50 ] characters
Default: "Equipment Supply Co"

The full name of the vendor. Could be a company or an individual. Examples:

  • 'JLG Industries' - Equipment manufacturer
  • 'Genie Lifts' - Aerial lift manufacturer
  • 'Smith's Equipment Repair' - Service provider
  • 'HD Supply' - Parts supplier
  • 'Bob Johnson' - Independent contractor
object or null

Identifying items for Vendor. Examples:

  • AccountNumber: 'CAT-12345' for Caterpillar vendor account
  • AccountNumber: 'JLG-789' for JLG Industries account
  • ExternalVendorId: 'SUP-789' for parts supplier in third-party system
  • ExternalVendorId: 'REP-456' for repair vendor in external system
Array of objects

Supported types will depend on the product. Examples:

  • Default address for Caterpillar's parts distribution center
  • Billing address for JLG's accounts receivable department
  • Shipping address for Genie's main warehouse
  • Service center address for local repair vendor

Elite:

  • Supported: "Default"
  • Coming soon: "Billing", "Shipping"
Array of objects

Name and Types of Contacts related to the Vendor. Examples:

  • Primary purchasing contact at Caterpillar
  • Accounts payable contact at JLG
  • Service coordinator at local repair shop
  • Parts department manager
  • Regional sales representative
CurrencyCode
string or null
Default: "USD"

Defaults to "USD". Code is ISO 4217 format. Examples:

  • 'USD' - US Dollar for domestic vendors
  • 'CAD' - Canadian Dollar for Canadian suppliers
  • 'EUR' - Euro for European manufacturers
  • 'GBP' - British Pound for UK vendors
  • 'JPY' - Japanese Yen for Japanese suppliers

You can hit the /vendors/lookup/{Field} endpoint and pass in the query parameter "Field" --> "CurrencyCode" to receive a list of acceptable values for this field.

Inactive
boolean or null

Used to denote whether a vendor is considered active. Examples:

  • true - Vendor no longer in business
  • true - Contract terminated
  • false - Current active supplier
  • false - Regular service provider
  • true - Seasonal vendor during off-season
Array of objects

Any comments or notes. Examples:

  • Preferred shipping instructions
  • Special payment terms
  • Quality control requirements
  • Service level agreements
  • Warranty information
Array of objects
Terms
string or null <= 50 characters

Billing terms for the vendor. Examples:

  • 'Net 30' - Standard 30-day payment terms
  • 'Net 60' - Extended payment period
  • '2% 10 Net 30' - 2% discount if paid within 10 days
  • 'COD' - Cash on delivery
  • 'Due Upon Receipt' - Immediate payment required
object or null

Additional fields specific to each vendor. Examples include:

  • Payment methods (ACH, check, credit card)
  • Term days for billing
  • Preferred delivery days
  • Quality rating
  • Vendor category

Responses

Request samples

Content type
application/json
{
  • "Name": "Equipment Supply Co",
  • "VendorNumber": "V1234",
  • "TaxId": "12-3456789",
  • "Address": {
    },
  • "ContactName": "Bob Johnson",
  • "ContactEmail": "[email protected]",
  • "ContactPhone": "214-555-4321",
  • "PaymentTerms": "NET30"
}

Response samples

Content type
application/json
{
  • "ModelType": "Vendor",
  • "Id": "VEN-001",
  • "Name": "Equipment Supply Co",
  • "VendorNumber": "V1234",
  • "TaxId": "12-3456789",
  • "Address": {
    },
  • "ContactName": "Bob Johnson",
  • "ContactEmail": "[email protected]",
  • "ContactPhone": "214-555-4321",
  • "PaymentTerms": "NET30",
  • "Status": "Active",
  • "CreatedDateTime": "2024-01-01T00:00:00Z"
}

Retrieve a list of Vendors

Supported by: Elite, Syrinx

Elite supports the following fields for the Search filter:

  • Name
  • Identifiers.AccountNumber
  • Addresses.Line1
  • Addresses.City
  • Addresses.Provice
  • Addresses.PostalCode
Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a single Vendor by Id

Supported by: Elite, Syrinx

Authorizations:
ApiKey
path Parameters
VendorId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "Vendor",
  • "Id": "VEN-001",
  • "Name": "Equipment Supply Co",
  • "VendorNumber": "V1234",
  • "TaxId": "12-3456789",
  • "Address": {
    },
  • "ContactName": "Bob Johnson",
  • "ContactEmail": "[email protected]",
  • "ContactPhone": "214-555-4321",
  • "PaymentTerms": "NET30",
  • "Status": "Active",
  • "CreatedDateTime": "2024-01-01T00:00:00Z"
}

Update a single Vendor by Id

Supported by: Elite

Update a single Vendor by Id

Required fields:

  • Id
Authorizations:
ApiKey
path Parameters
VendorId
required
string
Request Body schema: application/json
required
Name
string or null [ 1 .. 50 ] characters
Default: "Equipment Supply Co"

The full name of the vendor. Could be a company or an individual. Examples:

  • 'JLG Industries' - Equipment manufacturer
  • 'Genie Lifts' - Aerial lift manufacturer
  • 'Smith's Equipment Repair' - Service provider
  • 'HD Supply' - Parts supplier
  • 'Bob Johnson' - Independent contractor
object or null

Identifying items for Vendor. Examples:

  • AccountNumber: 'CAT-12345' for Caterpillar vendor account
  • AccountNumber: 'JLG-789' for JLG Industries account
  • ExternalVendorId: 'SUP-789' for parts supplier in third-party system
  • ExternalVendorId: 'REP-456' for repair vendor in external system
Array of objects

Supported types will depend on the product. Examples:

  • Default address for Caterpillar's parts distribution center
  • Billing address for JLG's accounts receivable department
  • Shipping address for Genie's main warehouse
  • Service center address for local repair vendor

Elite:

  • Supported: "Default"
  • Coming soon: "Billing", "Shipping"
Array of objects

Name and Types of Contacts related to the Vendor. Examples:

  • Primary purchasing contact at Caterpillar
  • Accounts payable contact at JLG
  • Service coordinator at local repair shop
  • Parts department manager
  • Regional sales representative
CurrencyCode
string or null
Default: "USD"

Defaults to "USD". Code is ISO 4217 format. Examples:

  • 'USD' - US Dollar for domestic vendors
  • 'CAD' - Canadian Dollar for Canadian suppliers
  • 'EUR' - Euro for European manufacturers
  • 'GBP' - British Pound for UK vendors
  • 'JPY' - Japanese Yen for Japanese suppliers

You can hit the /vendors/lookup/{Field} endpoint and pass in the query parameter "Field" --> "CurrencyCode" to receive a list of acceptable values for this field.

Inactive
boolean or null

Used to denote whether a vendor is considered active. Examples:

  • true - Vendor no longer in business
  • true - Contract terminated
  • false - Current active supplier
  • false - Regular service provider
  • true - Seasonal vendor during off-season
Array of objects

Any comments or notes. Examples:

  • Preferred shipping instructions
  • Special payment terms
  • Quality control requirements
  • Service level agreements
  • Warranty information
Array of objects
Terms
string or null <= 50 characters

Billing terms for the vendor. Examples:

  • 'Net 30' - Standard 30-day payment terms
  • 'Net 60' - Extended payment period
  • '2% 10 Net 30' - 2% discount if paid within 10 days
  • 'COD' - Cash on delivery
  • 'Due Upon Receipt' - Immediate payment required
object or null

Additional fields specific to each vendor. Examples include:

  • Payment methods (ACH, check, credit card)
  • Term days for billing
  • Preferred delivery days
  • Quality rating
  • Vendor category

Responses

Request samples

Content type
application/json
{
  • "Name": "Equipment Supply Co",
  • "VendorNumber": "V1234",
  • "TaxId": "12-3456789",
  • "Address": {
    },
  • "ContactName": "Bob Johnson",
  • "ContactEmail": "[email protected]",
  • "ContactPhone": "214-555-4321",
  • "PaymentTerms": "NET30"
}

Response samples

Content type
application/json
{
  • "ModelType": "Vendor",
  • "Id": "VEN-001",
  • "Name": "Equipment Supply Co",
  • "VendorNumber": "V1234",
  • "TaxId": "12-3456789",
  • "Address": {
    },
  • "ContactName": "Bob Johnson",
  • "ContactEmail": "[email protected]",
  • "ContactPhone": "214-555-4321",
  • "PaymentTerms": "NET30",
  • "Status": "Active",
  • "CreatedDateTime": "2024-01-01T00:00:00Z"
}

Enum Lookup for Vendor

Supported by: Elite

With this endpoint, you can look up dynamic enum values for Vendor fields. The description on a particular field will indicate if it supports a lookup.

Authorizations:
ApiKey
path Parameters
field
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Work Orders

Create a work order

Create a work order

Authorizations:
ApiKey
Request Body schema: application/json
required
StockId
string or null
Default: "25266"

Unique identifier of the equipment being serviced. Example: 'STOCK-JD320D-123'

StockName
string or null
Default: "SOD CUTTER, 18\""

Descriptive name of the equipment being serviced. Example: '2019 John Deere 320D Excavator'

DepotId
string or null
Default: "002"

Identifier of the service location or branch. Example: 'DEPOT-CHICAGO-001'

OpenDateTime
string or null <date-time>
Default: "2017-11-29T21:48:00Z"

When the work order was opened. Example: '2024-03-15T09:00:00Z'

CloseDateTime
string or null <date-time>
Default: "2017-11-30T17:59:00Z"

When the work order was completed. Example: '2024-03-15T16:30:00Z'

CustomerId
string or null
Default: "51963"

Reference to the customer responsible for this Work Order. Example: 'CUST-ACME-001'

Status
string
Default: "Closed"
Enum: "Quote" "Open" "Closed"

Current status of the work order. 'Quote' for estimates, 'Open' for active work, 'Closed' for completed work.

Type
string or null
Default: "Internal Repair"

Primary classification of the work order. Example: 'Preventive Maintenance', 'Repair', 'Inspection'

SubType
string or null

Secondary classification of the work order. Example: '500 Hour Service', 'Hydraulic System', 'Annual DOT'

Array of objects or strings or null
Default: []
IsCustomerWO
boolean

Indicates if this is a customer-facing work order. Example: true for customer repairs, false for internal maintenance

Complaint
string

The issue detected by the technician. Example: 'Hydraulic system losing pressure during operation'

Cause
string

The identified root cause of the issue. Example: 'Worn hydraulic pump seals causing internal leakage'

Correction
string

The repair actions taken. Example: 'Replaced hydraulic pump seals and tested system pressure'

ReportedIssue
string
Default: "Broken blade drive belt"

The initial problem reported by the customer. Example: 'Machine is slow to lift'

OtherComments
string

Additional notes about the work order. Example: 'Customer requested completion by end of week'

Operation
string
Default: "Repair complete"

Specific maintenance or repair operation to be performed. Use the "Name" field from the operations lookup endpoint (workorders/lookup/operations or workorders/lookup/consumerOperations) to display the operation to the user.

DueDateTime
string <date-time>
Default: "2017-11-30T17:59:00Z"

When the work order needs to be completed. Example: '2024-03-20T17:00:00Z'

Hidden
integer or null
Value: 1

Flag to hide work order from normal views. 0 = visible, 1 = hidden

Responses

Request samples

Content type
application/json
{
  • "ModelType": "WorkOrder",
  • "Id": "r962692",
  • "Name": "r962692",
  • "ReportedIssue": "Broken blade drive belt",
  • "Identifiers": { },
  • "CloseDateTime": "2017-11-30T17:59:00Z",
  • "CustomerId": "51963",
  • "DepotId": "002",
  • "OpenDateTime": "2017-11-29T21:48:00Z",
  • "DueDateTime": "2017-11-30T17:59:00Z",
  • "Parts": [ ],
  • "Status": "Closed",
  • "StockId": "25266",
  • "StockName": "SOD CUTTER, 18\"",
  • "Type": "Internal Repair",
  • "Operation": "Repair complete",
  • "LaborTracking": {
    },
  • "AdditionalFields": { },
  • "CreatedDateTime": "2017-11-29T21:50:11.377Z",
  • "UpdatedDateTime": "2017-11-30T18:00:01.813Z"
}

Response samples

Content type
application/json
{
  • "ModelType": "WorkOrder",
  • "Id": "WO-20240315-1234",
  • "Name": "WO-20240315-1234 - ACME Construction - CAT 320 Excavator PM Service",
  • "StockId": "STOCK-CAT320-789",
  • "StockName": "2022 CAT 320 Excavator",
  • "DepotId": "DEPOT-DALLAS-001",
  • "OpenDateTime": "2024-03-15T08:00:00Z",
  • "CloseDateTime": "2024-03-15T16:30:00Z",
  • "CustomerId": "CUST-ACME-001",
  • "Status": "Open",
  • "Type": "PM Service",
  • "SubType": "250-Hour Service",
  • "IsCustomerWO": true,
  • "LaborTracking": {
    },
  • "Complaint": "Excessive hydraulic noise when operating boom functions, visible oil leak at main pump",
  • "Cause": "Failed seal in main hydraulic pump allowing air infiltration and internal wear",
  • "Correction": "Removed and replaced main hydraulic pump assembly, performed system flush, replaced filters, and tested all functions",
  • "ReportedIssue": "Customer reports loud noise from hydraulic system and oil spots under machine",
  • "OtherComments": "Customer requested notification before proceeding with repairs over $1000. Machine is needed back in service by Friday.",
  • "Operation": "250 Hour Preventive Maintenance Service",
  • "DueDateTime": "2024-03-17T17:00:00Z",
  • "AssignedRemoteUserId": "TECH-JOHN-001",
  • "AdditionalFields": {
    },
  • "CreatedDateTime": "2024-03-15T08:00:00Z",
  • "UpdatedDateTime": "2024-03-15T16:30:00Z"
}

Retrieve a list of work orders

Retrieve a list of work orders

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a single work order by its id

Retrieve a single work order by its id

Authorizations:
ApiKey
path Parameters
WorkOrderId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "WorkOrder",
  • "Id": "WO-20240315-1234",
  • "Name": "WO-20240315-1234 - ACME Construction - CAT 320 Excavator PM Service",
  • "StockId": "STOCK-CAT320-789",
  • "StockName": "2022 CAT 320 Excavator",
  • "DepotId": "DEPOT-DALLAS-001",
  • "OpenDateTime": "2024-03-15T08:00:00Z",
  • "CloseDateTime": "2024-03-15T16:30:00Z",
  • "CustomerId": "CUST-ACME-001",
  • "Status": "Open",
  • "Type": "PM Service",
  • "SubType": "250-Hour Service",
  • "IsCustomerWO": true,
  • "LaborTracking": {
    },
  • "Complaint": "Excessive hydraulic noise when operating boom functions, visible oil leak at main pump",
  • "Cause": "Failed seal in main hydraulic pump allowing air infiltration and internal wear",
  • "Correction": "Removed and replaced main hydraulic pump assembly, performed system flush, replaced filters, and tested all functions",
  • "ReportedIssue": "Customer reports loud noise from hydraulic system and oil spots under machine",
  • "OtherComments": "Customer requested notification before proceeding with repairs over $1000. Machine is needed back in service by Friday.",
  • "Operation": "250 Hour Preventive Maintenance Service",
  • "DueDateTime": "2024-03-17T17:00:00Z",
  • "AssignedRemoteUserId": "TECH-JOHN-001",
  • "AdditionalFields": {
    },
  • "CreatedDateTime": "2024-03-15T08:00:00Z",
  • "UpdatedDateTime": "2024-03-15T16:30:00Z"
}

Update a single work order by its id

Update a single work order by its id

Authorizations:
ApiKey
path Parameters
WorkOrderId
required
string
Request Body schema: application/json
required
StockId
string or null
Default: "25266"

Unique identifier of the equipment being serviced. Example: 'STOCK-JD320D-123'

StockName
string or null
Default: "SOD CUTTER, 18\""

Descriptive name of the equipment being serviced. Example: '2019 John Deere 320D Excavator'

DepotId
string or null
Default: "002"

Identifier of the service location or branch. Example: 'DEPOT-CHICAGO-001'

OpenDateTime
string or null <date-time>
Default: "2017-11-29T21:48:00Z"

When the work order was opened. Example: '2024-03-15T09:00:00Z'

CloseDateTime
string or null <date-time>
Default: "2017-11-30T17:59:00Z"

When the work order was completed. Example: '2024-03-15T16:30:00Z'

CustomerId
string or null
Default: "51963"

Reference to the customer responsible for this Work Order. Example: 'CUST-ACME-001'

Status
string
Default: "Closed"
Enum: "Quote" "Open" "Closed"

Current status of the work order. 'Quote' for estimates, 'Open' for active work, 'Closed' for completed work.

Type
string or null
Default: "Internal Repair"

Primary classification of the work order. Example: 'Preventive Maintenance', 'Repair', 'Inspection'

SubType
string or null

Secondary classification of the work order. Example: '500 Hour Service', 'Hydraulic System', 'Annual DOT'

Array of objects or strings or null
Default: []
IsCustomerWO
boolean

Indicates if this is a customer-facing work order. Example: true for customer repairs, false for internal maintenance

Complaint
string

The issue detected by the technician. Example: 'Hydraulic system losing pressure during operation'

Cause
string

The identified root cause of the issue. Example: 'Worn hydraulic pump seals causing internal leakage'

Correction
string

The repair actions taken. Example: 'Replaced hydraulic pump seals and tested system pressure'

ReportedIssue
string
Default: "Broken blade drive belt"

The initial problem reported by the customer. Example: 'Machine is slow to lift'

OtherComments
string

Additional notes about the work order. Example: 'Customer requested completion by end of week'

Operation
string
Default: "Repair complete"

Specific maintenance or repair operation to be performed. Use the "Name" field from the operations lookup endpoint (workorders/lookup/operations or workorders/lookup/consumerOperations) to display the operation to the user.

DueDateTime
string <date-time>
Default: "2017-11-30T17:59:00Z"

When the work order needs to be completed. Example: '2024-03-20T17:00:00Z'

Hidden
integer or null
Value: 1

Flag to hide work order from normal views. 0 = visible, 1 = hidden

Responses

Request samples

Content type
application/json
{
  • "ModelType": "WorkOrder",
  • "Id": "r962692",
  • "Name": "r962692",
  • "ReportedIssue": "Broken blade drive belt",
  • "Identifiers": { },
  • "CloseDateTime": "2017-11-30T17:59:00Z",
  • "CustomerId": "51963",
  • "DepotId": "002",
  • "OpenDateTime": "2017-11-29T21:48:00Z",
  • "DueDateTime": "2017-11-30T17:59:00Z",
  • "Parts": [ ],
  • "Status": "Closed",
  • "StockId": "25266",
  • "StockName": "SOD CUTTER, 18\"",
  • "Type": "Internal Repair",
  • "Operation": "Repair complete",
  • "LaborTracking": {
    },
  • "AdditionalFields": { },
  • "CreatedDateTime": "2017-11-29T21:50:11.377Z",
  • "UpdatedDateTime": "2017-11-30T18:00:01.813Z"
}

Response samples

Content type
application/json
{
  • "ModelType": "WorkOrder",
  • "Id": "WO-20240315-1234",
  • "Name": "WO-20240315-1234 - ACME Construction - CAT 320 Excavator PM Service",
  • "StockId": "STOCK-CAT320-789",
  • "StockName": "2022 CAT 320 Excavator",
  • "DepotId": "DEPOT-DALLAS-001",
  • "OpenDateTime": "2024-03-15T08:00:00Z",
  • "CloseDateTime": "2024-03-15T16:30:00Z",
  • "CustomerId": "CUST-ACME-001",
  • "Status": "Open",
  • "Type": "PM Service",
  • "SubType": "250-Hour Service",
  • "IsCustomerWO": true,
  • "LaborTracking": {
    },
  • "Complaint": "Excessive hydraulic noise when operating boom functions, visible oil leak at main pump",
  • "Cause": "Failed seal in main hydraulic pump allowing air infiltration and internal wear",
  • "Correction": "Removed and replaced main hydraulic pump assembly, performed system flush, replaced filters, and tested all functions",
  • "ReportedIssue": "Customer reports loud noise from hydraulic system and oil spots under machine",
  • "OtherComments": "Customer requested notification before proceeding with repairs over $1000. Machine is needed back in service by Friday.",
  • "Operation": "250 Hour Preventive Maintenance Service",
  • "DueDateTime": "2024-03-17T17:00:00Z",
  • "AssignedRemoteUserId": "TECH-JOHN-001",
  • "AdditionalFields": {
    },
  • "CreatedDateTime": "2024-03-15T08:00:00Z",
  • "UpdatedDateTime": "2024-03-15T16:30:00Z"
}

Retrieve a list of work order parts

Retrieve a list of work order parts

Authorizations:
ApiKey
path Parameters
WorkOrderId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Create a work order part

Create a work order part

Authorizations:
ApiKey
path Parameters
WorkOrderId
required
string
Request Body schema: application/json
required
Name
string
Default: "Crystal Schoen"

The display name for this record, typically including the part name and any relevant specifications. For example: '1/2" Hydraulic Hose - 10ft' or 'Air Filter - CAT 259D3'

IsBulk
boolean or null

Items with this field do not have unique serial numbers. For example, nuts, bolts, and fluids are bulk items (true), while engines and transmissions are not bulk items (false). If isSerialized and isBulk are both true, then an alternate serialization method is being used.

IsSerialized
boolean or null

Indicates whether we expect this Line Item to have a unique Serial Number. For example, major components like engines (true) vs consumables like oil filters (false). NOTE: If isSerialized and isBulk are both true, then an alternate serialization method is being used.

ProductId
string or null

If exists, this is a reference to the header "Item" or "Inventory" record. Could even be a "Category". For example: 'HYD-HOSE-12' for hydraulic hose category or 'ENG-CAT-3126' for a specific engine model.

PullFromStock
boolean or null

Indicates if the items should be pulled from stock when added to a work order. For example, common parts like filters and fluids (true) vs special order items (false).

PurchasePrice
number or null

The purchase price of the part. For example: 45.99 for a standard air filter or 2500.00 for a hydraulic pump.

Quantity
string or null

The quantity of this part on the work order. For example: '2' for two air filters or '10.5' for 10.5 feet of hydraulic hose.

StockId
string or null

Id of stock item in inventory. For example: 'STK-HYD-001' for a specific hydraulic component or 'STK-FIL-002' for a specific filter in inventory.

Comments
string
Default: "majority"

Any comments for this part, such as installation notes, condition observations, or special handling instructions. For example: 'Replace gasket during installation' or 'Customer requested OEM parts only'

Responses

Request samples

Content type
application/json
{
  • "Name": "Crystal Schoen",
  • "Comments": "majority"
}

Response samples

Content type
application/json
{
  • "ModelType": "WorkOrderPart",
  • "Id": "WOP-12345-6789",
  • "Classification": "Sale",
  • "Name": "Oil Filter 10 Micron",
  • "IsBulk": true,
  • "ProductId": "FILTER-10M",
  • "PullFromStock": true,
  • "PurchasePrice": 45.99,
  • "Quantity": "2",
  • "SerialNumber": "CAT123456",
  • "Status": "Out",
  • "StockId": "BIN-A123",
  • "Comments": "Customer requested OEM parts only",
  • "CreatedDateTime": "2024-03-15T14:30:00Z",
  • "UpdatedDateTime": "2024-03-16T09:15:00Z"
}

Create work order from Record360 inspection

Supported by: Elite, Essentials, Syrinx

Creates a work order from Record360 inspection webhook payload. Validates the inspection data and extracts work order creation information.

Authorizations:
ApiKey
Request Body schema: application/json
required
id
required
string
Default: 405

Event id from Record360

object
required
string
Default: "event"
Value: "event"

Specifies you are receiving an event object

type
required
string
Default: "inspection.updated"
Enum: "inspection.created" "inspection.updated" "inspection.completed"

Type of event from Record360

created_at
required
string <date-time>
Default: "2024-12-20T08:29:04.332Z"

When the event was created

required
object
Default: {"id":78,"object":"inspection","type":"maintenance","location":{"id":203,"name":"Nettie Hyatt Jr."},"damage_present":true,"unit":{"id":22,"reference_number":"mouser"},"user":{"id":947,"username":"Etha.Reinger33"},"results":["Computer","Keyboard","Tuna"],"workflow":"blowgun","dashboard_url":"https://alarmed-goat.net/","photos":[{"url":"https://outstanding-heroine.name/","instruction_id":875},{"url":"https://spiteful-devastation.biz","instruction_id":739},{"url":"https://meager-opera.com","instruction_id":341}],"videos":[{"url":"https://forsaken-hippodrome.com/"}],"signatures":[{"url":"https://querulous-papa.com/"},{"url":"https://personal-advancement.info/"},{"url":"https://acclaimed-chops.org"}],"created_at":"2026-07-06T04:48:45.665Z","updated_at":"2026-08-30T23:44:37.946Z"}

The inspection data from Record360

Responses

Request samples

Content type
application/json
{}

Response samples

Content type
application/json
{
  • "ModelType": "WorkOrder",
  • "Id": "WO-20240315-1234",
  • "Name": "WO-20240315-1234 - ACME Construction - CAT 320 Excavator PM Service",
  • "StockId": "STOCK-CAT320-789",
  • "StockName": "2022 CAT 320 Excavator",
  • "DepotId": "DEPOT-DALLAS-001",
  • "OpenDateTime": "2024-03-15T08:00:00Z",
  • "CloseDateTime": "2024-03-15T16:30:00Z",
  • "CustomerId": "CUST-ACME-001",
  • "Status": "Open",
  • "Type": "PM Service",
  • "SubType": "250-Hour Service",
  • "IsCustomerWO": true,
  • "LaborTracking": {
    },
  • "Complaint": "Excessive hydraulic noise when operating boom functions, visible oil leak at main pump",
  • "Cause": "Failed seal in main hydraulic pump allowing air infiltration and internal wear",
  • "Correction": "Removed and replaced main hydraulic pump assembly, performed system flush, replaced filters, and tested all functions",
  • "ReportedIssue": "Customer reports loud noise from hydraulic system and oil spots under machine",
  • "OtherComments": "Customer requested notification before proceeding with repairs over $1000. Machine is needed back in service by Friday.",
  • "Operation": "250 Hour Preventive Maintenance Service",
  • "DueDateTime": "2024-03-17T17:00:00Z",
  • "AssignedRemoteUserId": "TECH-JOHN-001",
  • "AdditionalFields": {
    },
  • "CreatedDateTime": "2024-03-15T08:00:00Z",
  • "UpdatedDateTime": "2024-03-15T16:30:00Z"
}

Enum Lookup for Operations

Supported by: Elite

With this endpoint, you receive an array of contract operations supported by the current organization for the internal Work Order. This response is similar to the other EnumLookup responses.

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Enum Lookup for Consumer Operations

Supported by: Elite

With this endpoint, you receive an array of consumer operations supported by the current organization for the customer. This response is similar to the other EnumLookup responses.

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Remote

Get all hire rates.

Supported by: Syrinx

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get a hire rate.

Supported by: Syrinx

Authorizations:
ApiKey
path Parameters
HireRateId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a list of Account Payable Invoices

Supported by: Elite

This is a list of account payable invoices. By default you can retrieve a list of payable invoices where State property is equal to 'Pending'. Apply an additional filter to the the State property in order to receive other payable invoices states.

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a single Account Payable Invoice

Supported by: Elite

This is a single account payable invoice retrieved by the given payable invoice id.

Authorizations:
ApiKey
path Parameters
InvoiceId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "AccountPayableInvoice",
  • "PurchaseOrderDateTime": "2024-11-28T15:44:54.502Z",
  • "FreightTotal": 237.07,
  • "GrandTaxTotal": 635.11,
  • "GrandTotal": 123.43,
  • "Identifiers": {
    },
  • "LineItems": [
    ],
  • "MiscellaneousTotal": 906.13,
  • "PurchaseOrderNumber": "surface",
  • "PurchaseOrderSequenceNumber": "cauliflower",
  • "PurchaseTotal": 27.72,
  • "ShippingMethod": "disadvantage",
  • "State": "Posted",
  • "TermsCode": "accountability",
  • "Vendor": {
    }
}

Update an existing Account Payable Invoice

Supported by: Elite

Update an existing Account Payable Invoice

Authorizations:
ApiKey
path Parameters
InvoiceId
required
string
Request Body schema: application/json
required
ErrorCode
string or null

Error code value whenever the payable invoice State is set to 'Error'.

ErrorDescription
string or null

Error description value whenever payable invoice State is set to 'Error'.

object
Default: {"BatchId":67,"ContractStoreId":46,"ExternalLocationId":681,"ExternalPayableId":854,"ExternalVendorId":831,"FreightAccountId":919,"MiscellaneousAccountId":501,"PayableAccountId":378,"TaxAccountId":913}

Collection of unique ids related to this payable invoice.

State
string
Default: "Error"
Enum: "Pending" "Posted" "Error"

Defines the state of the payable invoice. Initial value of an payable invoice is 'Pending'. If the value is 'Posted' you can not update to another state.

Responses

Request samples

Content type
application/json
{
  • "ModelType": "AccountPayableInvoice",
  • "PurchaseOrderDateTime": "2025-10-03T15:10:11.104Z",
  • "FreightTotal": 156.99,
  • "GrandTaxTotal": 212.73,
  • "GrandTotal": 4.01,
  • "Identifiers": {
    },
  • "LineItems": [
    ],
  • "MiscellaneousTotal": 457.9,
  • "PurchaseOrderNumber": "essence",
  • "PurchaseOrderSequenceNumber": "recommendation",
  • "PurchaseTotal": 899.89,
  • "ShippingMethod": "shore",
  • "State": "Error",
  • "TermsCode": "smoke",
  • "Vendor": {
    }
}

Response samples

Content type
application/json
{
  • "ModelType": "AccountPayableInvoice",
  • "PurchaseOrderDateTime": "2024-11-28T15:44:54.502Z",
  • "FreightTotal": 237.07,
  • "GrandTaxTotal": 635.11,
  • "GrandTotal": 123.43,
  • "Identifiers": {
    },
  • "LineItems": [
    ],
  • "MiscellaneousTotal": 906.13,
  • "PurchaseOrderNumber": "surface",
  • "PurchaseOrderSequenceNumber": "cauliflower",
  • "PurchaseTotal": 27.72,
  • "ShippingMethod": "disadvantage",
  • "State": "Posted",
  • "TermsCode": "accountability",
  • "Vendor": {
    }
}

[Elite Account Receivable Invoices] Get All

All Elite account receivable invoices, use query parameters to filter

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

[Elite Account Receivable Invoices] Get By Id

Single Elite account receivable invoice by Id

Authorizations:
ApiKey
path Parameters
InvoiceId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "AccountReceivableInvoice",
  • "ContractTotal": 905.43,
  • "ContractType": "Cash",
  • "DamageWaiverTotal": 216.01,
  • "Delivery": {
    },
  • "GrandTaxTotal": 885.14,
  • "GrandTotal": 256.57,
  • "Identifiers": {
    },
  • "LineItems": [
    ],
  • "OtherTotal": 165.62,
  • "PaidTotal": 713.73,
  • "RentTotal": 867.11,
  • "RevenueDateTime": "2025-07-02T06:12:13.675Z",
  • "SaleTotal": "Bike",
  • "StartDateTime": "2024-12-11T04:56:18.692Z",
  • "State": "Posted",
  • "TaxableTotal": 358.19
}

[Elite Account Receivable Invoices] Update

Update a single Elite account receivable invoice

Authorizations:
ApiKey
path Parameters
InvoiceId
required
string
Request Body schema: application/json
required
Id
string

Unique identifier for the model type.

ErrorCode
string or null

Error code value whenever the invoice State is set to 'Error'.

ErrorDescription
string or null

Error description value whenever invoice State is set to 'Error'.

object
Default: {"ContractId":135,"BatchId":476,"ContractStoreId":374,"CustomerId":290,"ExternalLocationId":621,"ExternalInvoiceId":672,"ExternalCustomerId":926}

Collection of unique ids related to this invoice.

State
string
Default: "Pending"
Enum: "Pending" "Posted" "Error"

Defines the state of the invoice. Initial value of an invoice is 'Pending'. If the value is 'Posted' you can not update to another state.

Responses

Request samples

Content type
application/json
{
  • "ModelType": "AccountReceivableInvoice",
  • "ContractTotal": 996.42,
  • "ContractType": "Credit",
  • "DamageWaiverTotal": 9.95,
  • "Delivery": {
    },
  • "GrandTaxTotal": 927.11,
  • "GrandTotal": 255.56,
  • "Identifiers": {
    },
  • "LineItems": [
    ],
  • "OtherTotal": 182.12,
  • "PaidTotal": 5.23,
  • "RentTotal": 242.93,
  • "RevenueDateTime": "2025-04-02T13:06:03.957Z",
  • "SaleTotal": "Salad",
  • "StartDateTime": "2026-09-05T13:52:00.183Z",
  • "State": "Pending",
  • "TaxableTotal": 270.95
}

Response samples

Content type
application/json
{
  • "ModelType": "AccountReceivableInvoice",
  • "ContractTotal": 905.43,
  • "ContractType": "Cash",
  • "DamageWaiverTotal": 216.01,
  • "Delivery": {
    },
  • "GrandTaxTotal": 885.14,
  • "GrandTotal": 256.57,
  • "Identifiers": {
    },
  • "LineItems": [
    ],
  • "OtherTotal": 165.62,
  • "PaidTotal": 713.73,
  • "RentTotal": 867.11,
  • "RevenueDateTime": "2025-07-02T06:12:13.675Z",
  • "SaleTotal": "Bike",
  • "StartDateTime": "2024-12-11T04:56:18.692Z",
  • "State": "Posted",
  • "TaxableTotal": 358.19
}

[Elite Account Receivable Payments] Get All

All Elite account receivable payments, use query parameters to filter

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

[Elite Account Receivable Payments] Create

Create a single Elite account receivable payment

Authorizations:
ApiKey
Request Body schema: application/json
required
ContractCodeName
required
string
Default: "Payment"
Enum: "Credit" "Payment"

Contract code class name, either Credit or Payment.

GrandTotal
number
Default: 100

Total amount credited to the customer invoice.

required
object
Default: {"ContractId":"775511","CustomerId":"8","ExternalContractId":"775511"}

All Requests

For every request, ONE from each of the bullet points below is REQUIRED:

  • ContractId, ExternalContractId, ExternalInvoiceId, or InvoiceNumber
  • CustomerId or ExternalCustomerId

Credit Requests Require an Additional Identifiers Field

  • When posting a credit with the parameter that ContractCodeName = 'Credit', ONE of the following is REQUIRED to be set IN ADDITION TO THE ABOVE: CreditSourceContractId, ExternalCreditId, or CreditSourceInvoiceNumber.
Memo
string
Default: "test"

Note, reference or description related to the payment.

Method
string
Default: "Cash"
Enum: "Card" "Cash" "Check" "Credit" "Debit"

Method of payment.

REQUIRED if ContractCodeName = 'Payment'.

TransactionDate
string <date-time>
Default: "2025-01-10T14:15:22Z"

Date and time when the payment was posted.

Responses

Request samples

Content type
application/json
{
  • "ContractCodeName": "Payment",
  • "GrandTotal": 100,
  • "Memo": "test",
  • "Method": "Cash",
  • "TransactionDate": "2025-01-10T14:15:22Z",
  • "Identifiers": {
    }
}

Response samples

Content type
application/json
{
  • "ModelType": "AccountReceivablePayment",
  • "Id": "34",
  • "ContractCodeName": "Payment",
  • "GrandTotal": 100.25,
  • "Identifiers": {
    },
  • "Memo": "Payment being processed through the front counter terminal.",
  • "Method": "Card",
  • "TransactionDate": "2024-12-01T20:00:00.000Z",
  • "State": "Posted"
}

[Elite Account Receivable Payments] Get By Id

Single Elite account receivable payment by Id

Authorizations:
ApiKey
path Parameters
PaymentId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "AccountReceivablePayment",
  • "Id": "34",
  • "ContractCodeName": "Payment",
  • "GrandTotal": 100.25,
  • "Identifiers": {
    },
  • "Memo": "Payment being processed through the front counter terminal.",
  • "Method": "Card",
  • "TransactionDate": "2024-12-01T20:00:00.000Z",
  • "State": "Posted"
}

Retrieve a list of General Ledger Journal Entries

Supported by: Elite

This is a list of general ledger journal entries. By default you can retrieve a list of journal entries where State property is equal to 'Pending'. Apply an additional filter to the the State property in order to receive other journal entries states.

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a single General Ledger Journal Entry

Supported by: Elite

This is a single general ledger journal entries retrieved by a given journal entry id.

Authorizations:
ApiKey
path Parameters
JournalEntryId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "JournalEntry",
  • "Dimensions": {
    },
  • "Identifiers": {
    },
  • "LineItems": [
    ],
  • "State": "Posted"
}

Update an existing General Ledger Journal Entry

Supported by: Elite

Update an existing General Ledger Journal Entry

Authorizations:
ApiKey
path Parameters
JournalEntryId
required
string
Request Body schema: application/json
required
Id
string

Unique identifier for the model type.

ErrorCode
string or null

Error code value whenever the invoice State is set to 'Error'.

ErrorDescription
string or null

Error description value whenever invoice State is set to 'Error'.

object
Default: {"BatchId":811,"ExternalJournalEntryId":651}

Collection of unique ids related to this invoice line item.

State
string
Default: "Error"
Enum: "Pending" "Posted" "Error"

Defines the state of the journal entry. Initial value of an journal entry is 'Pending'. If the value is 'Posted' you can not update to another state.

Responses

Request samples

Content type
application/json
{
  • "ModelType": "JournalEntry",
  • "Dimensions": {
    },
  • "Identifiers": {
    },
  • "LineItems": [
    ],
  • "State": "Error"
}

Response samples

Content type
application/json
{
  • "ModelType": "JournalEntry",
  • "Dimensions": {
    },
  • "Identifiers": {
    },
  • "LineItems": [
    ],
  • "State": "Posted"
}

Hire Rates

Get all hire rates.

Supported by: Syrinx

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get all hire rates.

Supported by: Syrinx

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get a hire rate.

Supported by: Syrinx

Authorizations:
ApiKey
path Parameters
HireRateId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Get a hire rate.

Supported by: Syrinx

Authorizations:
ApiKey
path Parameters
HireRateId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Accounts Payable

Retrieve a list of Account Payable Invoices

Supported by: Elite

This is a list of account payable invoices. By default you can retrieve a list of payable invoices where State property is equal to 'Pending'. Apply an additional filter to the the State property in order to receive other payable invoices states.

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a single Account Payable Invoice

Supported by: Elite

This is a single account payable invoice retrieved by the given payable invoice id.

Authorizations:
ApiKey
path Parameters
InvoiceId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "AccountPayableInvoice",
  • "PurchaseOrderDateTime": "2024-11-28T15:44:54.502Z",
  • "FreightTotal": 237.07,
  • "GrandTaxTotal": 635.11,
  • "GrandTotal": 123.43,
  • "Identifiers": {
    },
  • "LineItems": [
    ],
  • "MiscellaneousTotal": 906.13,
  • "PurchaseOrderNumber": "surface",
  • "PurchaseOrderSequenceNumber": "cauliflower",
  • "PurchaseTotal": 27.72,
  • "ShippingMethod": "disadvantage",
  • "State": "Posted",
  • "TermsCode": "accountability",
  • "Vendor": {
    }
}

Update an existing Account Payable Invoice

Supported by: Elite

Update an existing Account Payable Invoice

Authorizations:
ApiKey
path Parameters
InvoiceId
required
string
Request Body schema: application/json
required
ErrorCode
string or null

Error code value whenever the payable invoice State is set to 'Error'.

ErrorDescription
string or null

Error description value whenever payable invoice State is set to 'Error'.

object
Default: {"BatchId":67,"ContractStoreId":46,"ExternalLocationId":681,"ExternalPayableId":854,"ExternalVendorId":831,"FreightAccountId":919,"MiscellaneousAccountId":501,"PayableAccountId":378,"TaxAccountId":913}

Collection of unique ids related to this payable invoice.

State
string
Default: "Error"
Enum: "Pending" "Posted" "Error"

Defines the state of the payable invoice. Initial value of an payable invoice is 'Pending'. If the value is 'Posted' you can not update to another state.

Responses

Request samples

Content type
application/json
{
  • "ModelType": "AccountPayableInvoice",
  • "PurchaseOrderDateTime": "2025-10-03T15:10:11.104Z",
  • "FreightTotal": 156.99,
  • "GrandTaxTotal": 212.73,
  • "GrandTotal": 4.01,
  • "Identifiers": {
    },
  • "LineItems": [
    ],
  • "MiscellaneousTotal": 457.9,
  • "PurchaseOrderNumber": "essence",
  • "PurchaseOrderSequenceNumber": "recommendation",
  • "PurchaseTotal": 899.89,
  • "ShippingMethod": "shore",
  • "State": "Error",
  • "TermsCode": "smoke",
  • "Vendor": {
    }
}

Response samples

Content type
application/json
{
  • "ModelType": "AccountPayableInvoice",
  • "PurchaseOrderDateTime": "2024-11-28T15:44:54.502Z",
  • "FreightTotal": 237.07,
  • "GrandTaxTotal": 635.11,
  • "GrandTotal": 123.43,
  • "Identifiers": {
    },
  • "LineItems": [
    ],
  • "MiscellaneousTotal": 906.13,
  • "PurchaseOrderNumber": "surface",
  • "PurchaseOrderSequenceNumber": "cauliflower",
  • "PurchaseTotal": 27.72,
  • "ShippingMethod": "disadvantage",
  • "State": "Posted",
  • "TermsCode": "accountability",
  • "Vendor": {
    }
}

Accounts Receivable

[Elite Account Receivable Invoices] Get All

All Elite account receivable invoices, use query parameters to filter

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

[Elite Account Receivable Invoices] Get By Id

Single Elite account receivable invoice by Id

Authorizations:
ApiKey
path Parameters
InvoiceId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "AccountReceivableInvoice",
  • "ContractTotal": 905.43,
  • "ContractType": "Cash",
  • "DamageWaiverTotal": 216.01,
  • "Delivery": {
    },
  • "GrandTaxTotal": 885.14,
  • "GrandTotal": 256.57,
  • "Identifiers": {
    },
  • "LineItems": [
    ],
  • "OtherTotal": 165.62,
  • "PaidTotal": 713.73,
  • "RentTotal": 867.11,
  • "RevenueDateTime": "2025-07-02T06:12:13.675Z",
  • "SaleTotal": "Bike",
  • "StartDateTime": "2024-12-11T04:56:18.692Z",
  • "State": "Posted",
  • "TaxableTotal": 358.19
}

[Elite Account Receivable Invoices] Update

Update a single Elite account receivable invoice

Authorizations:
ApiKey
path Parameters
InvoiceId
required
string
Request Body schema: application/json
required
Id
string

Unique identifier for the model type.

ErrorCode
string or null

Error code value whenever the invoice State is set to 'Error'.

ErrorDescription
string or null

Error description value whenever invoice State is set to 'Error'.

object
Default: {"ContractId":135,"BatchId":476,"ContractStoreId":374,"CustomerId":290,"ExternalLocationId":621,"ExternalInvoiceId":672,"ExternalCustomerId":926}

Collection of unique ids related to this invoice.

State
string
Default: "Pending"
Enum: "Pending" "Posted" "Error"

Defines the state of the invoice. Initial value of an invoice is 'Pending'. If the value is 'Posted' you can not update to another state.

Responses

Request samples

Content type
application/json
{
  • "ModelType": "AccountReceivableInvoice",
  • "ContractTotal": 996.42,
  • "ContractType": "Credit",
  • "DamageWaiverTotal": 9.95,
  • "Delivery": {
    },
  • "GrandTaxTotal": 927.11,
  • "GrandTotal": 255.56,
  • "Identifiers": {
    },
  • "LineItems": [
    ],
  • "OtherTotal": 182.12,
  • "PaidTotal": 5.23,
  • "RentTotal": 242.93,
  • "RevenueDateTime": "2025-04-02T13:06:03.957Z",
  • "SaleTotal": "Salad",
  • "StartDateTime": "2026-09-05T13:52:00.183Z",
  • "State": "Pending",
  • "TaxableTotal": 270.95
}

Response samples

Content type
application/json
{
  • "ModelType": "AccountReceivableInvoice",
  • "ContractTotal": 905.43,
  • "ContractType": "Cash",
  • "DamageWaiverTotal": 216.01,
  • "Delivery": {
    },
  • "GrandTaxTotal": 885.14,
  • "GrandTotal": 256.57,
  • "Identifiers": {
    },
  • "LineItems": [
    ],
  • "OtherTotal": 165.62,
  • "PaidTotal": 713.73,
  • "RentTotal": 867.11,
  • "RevenueDateTime": "2025-07-02T06:12:13.675Z",
  • "SaleTotal": "Bike",
  • "StartDateTime": "2024-12-11T04:56:18.692Z",
  • "State": "Posted",
  • "TaxableTotal": 358.19
}

[Elite Account Receivable Payments] Get All

All Elite account receivable payments, use query parameters to filter

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

[Elite Account Receivable Payments] Create

Create a single Elite account receivable payment

Authorizations:
ApiKey
Request Body schema: application/json
required
ContractCodeName
required
string
Default: "Payment"
Enum: "Credit" "Payment"

Contract code class name, either Credit or Payment.

GrandTotal
number
Default: 100

Total amount credited to the customer invoice.

required
object
Default: {"ContractId":"775511","CustomerId":"8","ExternalContractId":"775511"}

All Requests

For every request, ONE from each of the bullet points below is REQUIRED:

  • ContractId, ExternalContractId, ExternalInvoiceId, or InvoiceNumber
  • CustomerId or ExternalCustomerId

Credit Requests Require an Additional Identifiers Field

  • When posting a credit with the parameter that ContractCodeName = 'Credit', ONE of the following is REQUIRED to be set IN ADDITION TO THE ABOVE: CreditSourceContractId, ExternalCreditId, or CreditSourceInvoiceNumber.
Memo
string
Default: "test"

Note, reference or description related to the payment.

Method
string
Default: "Cash"
Enum: "Card" "Cash" "Check" "Credit" "Debit"

Method of payment.

REQUIRED if ContractCodeName = 'Payment'.

TransactionDate
string <date-time>
Default: "2025-01-10T14:15:22Z"

Date and time when the payment was posted.

Responses

Request samples

Content type
application/json
{
  • "ContractCodeName": "Payment",
  • "GrandTotal": 100,
  • "Memo": "test",
  • "Method": "Cash",
  • "TransactionDate": "2025-01-10T14:15:22Z",
  • "Identifiers": {
    }
}

Response samples

Content type
application/json
{
  • "ModelType": "AccountReceivablePayment",
  • "Id": "34",
  • "ContractCodeName": "Payment",
  • "GrandTotal": 100.25,
  • "Identifiers": {
    },
  • "Memo": "Payment being processed through the front counter terminal.",
  • "Method": "Card",
  • "TransactionDate": "2024-12-01T20:00:00.000Z",
  • "State": "Posted"
}

[Elite Account Receivable Payments] Get By Id

Single Elite account receivable payment by Id

Authorizations:
ApiKey
path Parameters
PaymentId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "AccountReceivablePayment",
  • "Id": "34",
  • "ContractCodeName": "Payment",
  • "GrandTotal": 100.25,
  • "Identifiers": {
    },
  • "Memo": "Payment being processed through the front counter terminal.",
  • "Method": "Card",
  • "TransactionDate": "2024-12-01T20:00:00.000Z",
  • "State": "Posted"
}

Journal Entries

Retrieve a list of General Ledger Journal Entries

Supported by: Elite

This is a list of general ledger journal entries. By default you can retrieve a list of journal entries where State property is equal to 'Pending'. Apply an additional filter to the the State property in order to receive other journal entries states.

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a single General Ledger Journal Entry

Supported by: Elite

This is a single general ledger journal entries retrieved by a given journal entry id.

Authorizations:
ApiKey
path Parameters
JournalEntryId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "JournalEntry",
  • "Dimensions": {
    },
  • "Identifiers": {
    },
  • "LineItems": [
    ],
  • "State": "Posted"
}

Update an existing General Ledger Journal Entry

Supported by: Elite

Update an existing General Ledger Journal Entry

Authorizations:
ApiKey
path Parameters
JournalEntryId
required
string
Request Body schema: application/json
required
Id
string

Unique identifier for the model type.

ErrorCode
string or null

Error code value whenever the invoice State is set to 'Error'.

ErrorDescription
string or null

Error description value whenever invoice State is set to 'Error'.

object
Default: {"BatchId":811,"ExternalJournalEntryId":651}

Collection of unique ids related to this invoice line item.

State
string
Default: "Error"
Enum: "Pending" "Posted" "Error"

Defines the state of the journal entry. Initial value of an journal entry is 'Pending'. If the value is 'Posted' you can not update to another state.

Responses

Request samples

Content type
application/json
{
  • "ModelType": "JournalEntry",
  • "Dimensions": {
    },
  • "Identifiers": {
    },
  • "LineItems": [
    ],
  • "State": "Error"
}

Response samples

Content type
application/json
{
  • "ModelType": "JournalEntry",
  • "Dimensions": {
    },
  • "Identifiers": {
    },
  • "LineItems": [
    ],
  • "State": "Posted"
}

Fulfillment

[Fulfillment] Add Fulfillment Serialized Line Item

Supported by: Elite

Adds a serialized line item

Authorizations:
ApiKey
Request Body schema: application/json
required
LineItemId
string
Default: 603

The line item id associated with the fulfillment line item

ActionId
required
string
Default: 374

The id for the fulfillment action being taken. The id must exist in enumlookup/fulfillment/actionid

QuantityActioned
required
number
Default: 582.09

Quantity of the item being actioned. (can be negative)

StockId
required
string
Default: 524

The item id being fulfilled.

Eyeballed
boolean
Default: false

Indicator if the item has been visually inspected during fulfillment. Generally used to indicate if the quantity has been estimated.

Notes
string
Default: "nucleotidase"

The note associated with the fulfillment serialized line item

Responses

Request samples

Content type
application/json
{
  • "LineItemId": 603,
  • "ActionId": 374,
  • "QuantityActioned": 582.09,
  • "StockId": 524,
  • "Eyeballed": false,
  • "Notes": "nucleotidase"
}

Response samples

Content type
application/json
{
  • "ContractId": 370,
  • "LineItemId": 719,
  • "StockId": 283,
  • "ActionId": 461,
  • "ActionName": "Rudolph Glover",
  • "ActionSourceId": 862,
  • "ActionSourceName": "Eileen Spencer",
  • "QuantityActioned": 112.43,
  • "Eyeballed": false,
  • "Notes": "circumference",
  • "RemoteUserId": 27
}

Enum Lookup for Fulfillment Routes

Supported by: Elite

With this endpoint, you can look up the fulfillment action id. These will be used with the actionid field in the fulfillment endpoints.

Authorizations:
ApiKey
path Parameters
field
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve Fulfillment Line Items for a Contract

Supported by: Elite

Authorizations:
ApiKey
path Parameters
ContractId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve Fulfillment Line Items by Id

Supported by: Elite

Authorizations:
ApiKey
path Parameters
LineItemId
required
string

Responses

Response samples

Content type
application/json
{
  • "ContractId": 139,
  • "LineItemId": 408,
  • "StockId": 27,
  • "Actions": [
    ]
}

Retrieve Fulfillment Serialized Line Item History

Supported by: Elite

Authorizations:
ApiKey
path Parameters
LineItemId
required
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Sales Persons

Retrieve a list of SalesPersons

Supported by: Elite

Elite supports the following fields for the Search filter:

  • Name
  • Email.Email
Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a single SalesPerson by ID

Supported by: Elite

Retrieve a single SalesPerson by ID

Authorizations:
ApiKey
path Parameters
SalesPersonId
required
string

Responses

Response samples

Content type
application/json
{
  • "ModelType": "SalesPerson",
  • "Id": "SP-001",
  • "Name": "Jane Smith",
  • "Email": "[email protected]",
  • "Phone": "214-555-9876",
  • "Status": "Active",
  • "Territory": "North Texas",
  • "CreatedDateTime": "2024-01-01T00:00:00Z"
}

Web Products

Retrieve a list of WebProducts

Supported by: Elite

Elite supports the following fields for the Search filter:

  • Name
  • Identifiers.Key
Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Retrieve a list of associations between WebProducts

Supported by: Elite

Authorizations:
ApiKey

Responses

Response samples

Content type
application/json
{
  • "ModelType": "WebProductAssociation",
  • "Id": "WPA-2024-03-15-001",
  • "ParentProductId": "SKU-SKIDSTEER-S650",
  • "ParentStockId": "STOCK-S650-123456",
  • "ChildProductId": "SKU-ATTACHMENT-BUCKET-72",
  • "ChildStockId": "STOCK-BUCKET-987654",
  • "AssociationType": "Optional",
  • "Group": "Skid Steer Attachments",
  • "GroupSelectionType": "ChooseOne",
  • "IsSelected": true,
  • "DisplayOrder": 1,
  • "CreatedDateTime": "2024-03-15T14:30:00Z",
  • "UpdatedDateTime": "2024-03-15T15:45:00Z",
  • "Quantity": 4
}

Retrieve a single WebProduct by Id

Supported by: Elite

Retrieve a single WebProduct by Id

Authorizations:
ApiKey
path Parameters
Id
required
string

Responses

Response samples

Content type
application/json
{
  • "ProductId": "17254",
  • "Quantity": "1",
  • "ProductAssociation": {
    }
}

Get an Estimate

Supported by: Elite

Get an Estimate

Authorizations:
ApiKey
Request Body schema: application/json
required
CustomerId
string

The unique identifier of the customer requesting the estimate

DepotId
required
string
Default: "001"

The unique identifier of the rental depot/branch location where the equipment will be rented from

LocationId
string or null

Optional identifier for the specific delivery location within the customer's account

EndDateTime
required
string <date-time>
Default: "2025-04-29T04:00:00Z"

The date and time when the rental period ends (in ISO 8601 format)

StartDateTime
required
string <date-time>
Default: "2025-04-29T00:00:00Z"

The date and time when the rental period begins (in ISO 8601 format)

required
Array of objects
Default: [{"Quantity":"1","ProductId":"17254","ProductAssociation":{"ProductAssociationId":"21068","ProductAssociationType":"Automatic"}}]

List of products to be included in the rental estimate

Responses

Request samples

Content type
application/json
{
  • "DepotId": "001",
  • "StartDateTime": "2025-04-29T00:00:00Z",
  • "EndDateTime": "2025-04-29T04:00:00Z",
  • "Products": [
    ]
}

Response samples

Content type
application/json
{
  • "CustomerId": "227179",
  • "DepotId": "002",
  • "StartDateTime": "2025-08-01T12:00:00Z",
  • "EndDateTime": "2025-08-05T12:00:00Z",
  • "Notes": "Notes mine"
}