Invoice Item

The Invoice Item API is used to access information about the invoice items on the invoices on your business' account, as well as create and modify invoices. The Invoice Item API is connected to the Invoices and Quotes and Payments APIs, as invoice items appear on invoices that are used to document the payments and refunds incurred by clients. 

On this page





Invoice Item API Endpoints

These are the endpoints that are available under the /invoiceItem path, which lists all the different invoice items on the invoices on your business' account.

EndpointDescription
GET /invoiceItem/client/{clientId}/uninvoiced

Returns all invoiceItem objects assigned to specified client that do not have the invoiceId property filled in yet in array format.

GET /invoiceItem/product/{productId}Returns all invoiceItem objects that document the change in stock levels for specified product in array format.
GET /invoiceItem/recurringAppointments/{recurringAppointmentId}

Returns all invoiceItem objects for the specified recurring appointment set.

GET /appointments/client/{clientId}/uninvoiced

Returns all appointment objects for a client that have not been assigned to an invoice yet in array format.

GET /recurringAppointments/client/{clientId}/uninvoiced

Returns all recurringAppointment objects for course sets that client has booked into but have not been invoiced yet in array format.

A course set is made up of individual class sessions that all combine to form a course set. If you want to charge someone for their enrollment into the course set, you would need to add an instance of that course set to an invoice. This API is used to find out which course sets a client has booked but not been invoiced for yet.

GET /invoiceItem/appointment/{calendarId}

Returns all invoiceItem objects for appointments on an invoice in array format.
GET /invoiceItemList/reportWithCountReturns a list of all invoice items on an account in array format.
POST /invoiceItems

Creates a new line item on an invoice.

Request body/payload: Must pass an array of invoiceItem objects in request body/payload. 

For these calls, you need to pass an array of invoiceItem objects with all required fields and any fields you want to set filled in the body of the payload. We have an example of an invoiceItem object in the responses section below and have indicated the required fields in the object values table at the bottom of this page.

POST /invoiceItem

Creates an invoiceItem object. 

Request body/payload: Must pass an invoiceiIem object in request body/payload. 

For these calls, you need to pass an invoiceItem object with all required fields and any fields you want to set filled in the body of the payload. We have an example of an invoiceItem object in the responses section below and have indicated the required fields in the object values table at the bottom of this page.

PUT /invoiceItem

Updates an existing invoiceItem object.

Request body/payload: Must pass an invoiceItem object in request body/payload-make sure to include the correct invoiceId.

For these calls, you need to pass an invoiceItem object with all required fields and any fields you want to update filled in the body of the payload. We have an example of an invoiceItem object in the responses section below and have indicated the required fields in the object values table at the bottom of this page.

DELETE /invoiceItem/{invoiceItemId}

Removes an invoiceItem object from view by setting its active property to false.




Invoice Item API Parameters


Data points passed on in the request URL portion of the API call that are used to filter the data being requested. 

ParameterTypeEndpoints to be used withDescription
pageNumberintegerGET /invoiceItemList/reportWithCountWorks with the pageSize parameter to determine how data gets returned following a GET call. The pageNumber value represents the number of pages on which the invoice items that get returned appear.
pageSizeinteger
Works with the pageNumber parameter to determine how data gets returned following a GET call. The pageSize value represents the number of invoice items appearing on each page of invoice items that gets returned.




Invoice Item API Request Body/Payloads

The objects below represent the minimum viable objects to pass that are needed to create or update an invoiceItems or invoiceItem object. Check whether or not a property can be written to by looking at the Object Values table below to see if the property is writable.

GET /invoiceItemList/reportWithCount
    "pageNumber": 1,
    "pageSize": 25
POST /invoiceItems
{
    "clientId": 10575898,
    "description": "test",
    "discountAmount": null,
    "discountPercentage": 15,
    "invoiceId": 2472628,
    "quantity": 2,
    "rate": 5
}
POST /invoiceItem
{
    "businessId": 43111,
    "clientId": 5146945,
    "description": "Advanced Dog Training - doggy",
    "grossAmount": 25,
    "netAmount": 25,
    "quantity": 1,
    "rate": 25,
    "recurringAppointmentId": 742510,
    "taxable": false
}
PUT /invoiceItem
{
    "active": true,
    "businessId": 43111,
    "calendarId": null,
    "client": null,
    "clientId": 5146945,
    "coupon": null,
    "couponError": null,
    "createdDate": 1686761942198,
    "createdUser": "JoeSchmo",
    "depositAmount": null,
    "description": "Advanced Dog Training - doggy",
    "discountAmount": null,
    "discountPercentage": 25,
    "editing": true,
    "giftCardUUID": null,
    "grossAmount": 25,
    "invoiceId": 2515124,
    "invoiceItemId": 2685481,
    "invoiceItemName": null,
    "invoiceStatus": null,
    "modifiedUser": "JoeSchmo",
    "netAmount": 25,
    "noDescriptionError": false,
    "packageSoldId": null,
    "productId": null,
    "quantity": 1,
    "rate": 25,
    "reasonId": null,
    "recurringAppointmentId": 742510,
    "taxable": false
}




Invoice Item API Responses

GET /invoiceItem/client/{clientId}/uninvoiced
[{
    "active": true,
    "businessId": 43111,
    "calendarId": null,
    "client": null,
    "clientId": 5143212,
    "coupon": null,
    "couponError": null,
    "createdDate": 1536770974005,
    "createdUser": "JoeSchmo",
    "depositAmount": null,
    "description": "Need more $",
    "discountAmount": 4.5,
    "discountPercentage": 10,
    "giftCardUUID": null,
    "grossAmount": 10,
    "invoiceId": null,
    "invoiceItemId": 455016,
    "invoiceItemName": null,
    "invoiceStatus": null,
    "modifiedUser": "JoeSchmo",
    "netAmount": 10,
    "packageSoldId": null,
    "productId": null,
    "quantity": 2,
    "rate": 5,
    "reasonId": null,
    "recurringAppointmentId": null,
    "taxable": false
}]
GET /invoiceItem/product/{productId}
[{
    "active": true,
    "businessId": 43111,
    "calendarId": null,
    "client": null,
    "clientId": null,
    "coupon": null,
    "couponError": null,
    "createdDate": 1536869585107,
    "createdUser": "JoeSchmo",
    "depositAmount": null,
    "description": "Collars: Bought new collars and came in shipment",
    "discountAmount": null,
    "discountPercentage": null,
    "giftCardUUID": null,
    "grossAmount": 0,
    "invoiceId": 469508,
    "invoiceItemId": 458960,
    "invoiceItemName": null,
    "invoiceStatus": null,
    "modifiedUser": "JoeSchmo",
    "netAmount": 0,
    "packageSoldId": null,
    "productId": 6183,
    "quantity": -50,
    "rate": 0,
    "reasonId": null,
    "recurringAppointmentId": null,
    "taxable": true
}]
GET /invoiceItem/recurringAppointment/{recurringAppointmentId}
[{
    "active": true,
    "businessId": 43111,
    "calendarId": null,
    "client": null,
    "clientId": 5146945,
    "coupon": null,
    "couponError": null,
    "createdDate": 1686761942198,
    "createdUser": "JoeSchmo",
    "depositAmount": null,
    "description": "Advanced Dog Training - doggy",
    "discountAmount": 6.25,
    "discountPercentage": 25,
    "giftCardUUID": null,
    "grossAmount": 25,
    "invoiceId": 2515124,
    "invoiceItemId": 2685481,
    "invoiceItemName": null,
    "invoiceStatus": null,
    "modifiedUser": "JoeSchmo",
    "netAmount": 18.75,
    "packageSoldId": null,
    "productId": null,
    "quantity": 1,
    "rate": 25,
    "reasonId": null,
    "recurringAppointmentId": 742510,
    "taxable": false
}]
GET /appointments/client/{clientId}/uninvoiced
[{
    "addOnReasonIdList": null,
    "addOnReasonList": null,
    "additionalStaffIdList": null,
    "address": null,
    "appointmentIdHash": "xqmrSN1n3N",
    "appointmentDateTimeClient": "Monday, Sep 3, 2018 at 11:35 AM EDT",
    "appointmentDateTimeStaff": null,
    "apptTZ": null,
    "batchAppointmentId": null,
    "blockResourceIdList": null,
    "blockStaffIdList": null,
    "blockedStaffList": null,
    "businessId": 43111,
    "calTimeSlot": null,
    "calendarId": 17713652,
    "cancelReason": null,
    "cancelUser": null,
    "changeReason": null,
    "classScheduleId": null,
    "classroom": null,
    "client": {Client object for client of appointment - for more info, see Clients API page},
    "clientConfirmDate": null,
    "clientConfirmed": true,
    "clientEndDate": "2018-09-03",
    "clientEndDateTime": 1543829400000,
    "clientEndDateTimeUTC": 1543829400000,
    "clientEndTime": 1505,
    "clientReminderHours": 24,
    "clientRescheduleCount": 0,
    "clientStartDate": "2018-09-03",
    "clientStartDateTime": 1543827600000,
    "clientStartDateTimeUTC": 1543827600000,
    "clientStartTime": 1335,
    "color": null,
    "completedReason": null,
    "coordinatorStaff": null,
    "coupon": null,
    "couponId": null,
    "createddate": "2018-08-28 17:29:09",
    "createduser": "",
    "customField1": null,
    "customField2": null,
    "customField3": null,
    "customFieldData": null,
    "customFieldDesc": "Comments : ",
    "date": "2018-09-03",
    "dateCheckedIn": null,
    "dateCompleted": 1536580616496,
    "dateStarted": null,
    "discount": null,
    "duration": null,
    "endDate": "2018-09-03",
    "endDateTimeUTC": null,
    "endTime": 1500,
    "externalEventId": null,
    "fields": {Scheduler fields object for fields of fields of appointment - for more info, see Scheduler Fields API page},
    "invitationUUId": null,
    "jobRequisitionId": null,
    "location": {Location object for location of appointment - for more info, see Locations API page},
    "locationGroup": null,
    "locationSuperGroup": null,
    "modifieddate": "2023-06-14 15:13:57",
    "modifieduser": "SYSTEM_CLOSER",
    "noPrefSelected": null,
    "noShowReason": null,
    "note": "",
    "packageSoldId": 0,
    "paid": null,
    "price": 8,
    "reason": {Reason object for service of appointment - for more info, see Services API page},
    "reasonBatchSeriesId": null,
    "reasonDesc": null,
    "reasonGroup": null,
    "recall": null,
    "recallDate": null,
    "recallStatus": null,
    "recurringAppointmentId": 0,
    "remindClientSmsHrs": null,
    "remindStaffSmsHours": null,
    "resource": {Resource object for resource of appointment - for more info, see Resources API page},
    "seats": 1,
    "sendConfirmationToClient": false,
    "sendConfirmationToStaff": false,
    "showAs": "Busy",
    "staff": {Staff object for staff of appointment - for more info, see Staff API page},
    "staffReminderHours": 24,
    "staffRescheduleCount": 0,
    "staffTimeText": null,
    "startDate": "2018-09-03",
    "startDateTimeUTC": null,
    "startTime": 1330,
    "status": "COMPLETED",
    "subStatus": "COMPLETED",
    "subject": null,
    "tax1Amount": null,
    "ticket": null,
    "transactionFee": null,
    "waitlistId": null
}]
GET /recurringappointments/clients/{clientId}/uninvoiced
[{
    "additionalStaffIdList": null,
    "address": null,
    "adhoc": null,
    "blockStaffIdList": null,
    "blockedStaffList": null,
    "businessId": 43111,
    "cancelReason": null,
    "changeReason": null,
    "classScheduleIdList": [45553889, 45553890, 45553891],
    "classScheduleList": null,
    "client": {Client object for client of course set - for more info, see Clients API page},
    "clientEndTime": 1200,
    "clientId": 5147353,
    "clientReminderHours": 24,
    "clientStartTime": 1000,
    "color": null,
    "coordinatorStaff": null,
    "createdBy": null,
    "customFieldData": [],
    "dateCreated": null,
    "dateModified": null,
    "dates": null,
    "discount": null,
    "endDate": "2018-09-21",
    "endTime": 1200,
    "everyXMonths": 0,
    "everyXWeeks": 0,
    "fields": {Fields object for scheduler fields of course set - for more info, see Scheduler Fields API page},
    "fri": true,
    "getSendConfirmationToClient": null,
    "location": {Location object for location of course set - for more info, see Locations API page},
    "locationGroup": null,
    "locationId": 81129,
    "locationSuperGroup": null,
    "modifiedBy": null,
    "mon": false,
    "note": null,
    "paid": null,
    "price": 25,
    "reason": {Reason object for service of course set - for more info, see Services API page},
    "reasonId": 240127,
    "recurringAppointmentId": 179108,
    "recurringSchedule": {Recurring schedule object for recurring class schedule of course set - for more info, see Recurring Class Schedule API page},
    "remindClientSmsHours": 1,
    "remindStaffSmsHours": 0,
    "repeatStaffIds": null,
    "resource": null,
    "sat": false,
    "seats": null,
    "sendConfirmationToClient": null,
    "sendConfirmationToStaff": null,
    "staff": {Staff object for staff of course set - for more info, see Staff API page},
    "staffId": 81988,
    "staffReminderHours": 24,
    "startDate": "2018-09-19",
    "startTime": 1000,
    "status": "Open",
    "sun": false,
    "tax1Amount": null,
    "thu": true,
    "timeSlotList": null,
    "tue": false,
    "waitListId": null,
    "waitListOrigRecurringAppointmentId": null,
    "wed": true
}
GET /invoiceItem/appointment/{calendarId}
[{
    "active": true,
    "businessId": 43111,
    "calendarId": 17927840,
    "clientId": 5147404,
    "coupon": null,
    "createdDate": 1536855019903,
    "createdUser": "JoeSchmo",
    "depositAmount": null,
    "description": "For Dog Training with Major Hay on Saturday, Sep 15, 2018 at 10:10 AM EDT",
    "discountAmount": null,
    "discountPercentage": null,
    "giftCardUUID": null,
    "grossAmount": 0,
    "invoiceId": 469475,
    "invoiceItemId": 458568,
    "modifiedUser": "JoeSchmo",
    "netAmount": 0,
    "packageSoldId": null,
    "productId": null,
    "quantity": 1,
    "rate": 0,
    "recurringAppointmentId": null,
    "taxable": false
}]
GET /invoiceItemList/reportWithCount
[{
    "active": true,
    "businessId": 43111,
    "calendarId": 16470837,
    "client": {Client object for client of Invoice Item - for more info, see Clients API page},
    "clientId": 4761823,
    "coupon": null,
    "couponError": null,
    "createdDate": 1526492308900,
    "createdUser": "WebClient",
    "depositAmount": 0,
    "description": "For Dog grooming with Titus Bigly on Wednesday, Jun 6, 2018 at 12:05 PM EDT",
    "discountAmount": 0,
    "discountPercentage": 0,
    "giftCardUUID": null,
    "grossAmount": 8,
    "invoiceId": 312165,
    "invoiceItemId": 295813,
    "invoiceItemName": 0,
    "invoiceStatus": "OPEN",
    "modifiedUser": null,
    "netAmount": 8,
    "packageSoldId": null,
    "productId": null,
    "quantity": 1,
    "rate": 8,
    "reasonId": null,
    "recurringAppointmentId": null,
    "taxable": false
}]
POST /invoiceItems
{
    "active": true,
    "businessId": 43111,
    "calendarId": 17466100,
    "client": {Client object for client of invoice item - for more info, see Clients API page},
    "clientId": 4658091,
    "coupon": null,
    "couponError": null,
    "createdDate": 1536759463375,
    "createdUser": "JoeSchmo",
    "depositAmount": null,
    "description": "For Dog Training with Jay Morgan on Thursday, Sep 13, 2018 at 8:00 AM EDT",
    "discountAmount": 2.25,
    "discountPercentage": 15,
    "giftCardUUID": null,
    "grossAmount": 15,
    "invoiceId": 465804,
    "invoiceItemId": 455016,
    "invoiceItemName": null,
    "invoiceStatus": null,
    "modifiedUser": "JoeSchmo",
    "netAmount": 12.75,
    "packageSoldId": null,
    "productId": null,
    "quantity": 1,
    "rate": 15,
    "reasonId": null,
    "recurringAppointmentId": null,
    "taxable": false
}
POST /invoiceItem
{
    "active": true,
    "businessId": 43111,
    "calendarId": null,
    "client": null,
    "clientId": 5146945,
    "coupon": null,
    "couponError": null,
    "createdDate": 1686761942198,
    "createdUser": "JoeSchmo",
    "depositAmount": null,
    "description": "Advanced Dog Training - doggy",
    "discountAmount": null,
    "discountPercentage": null,
    "giftCardUUID": null,
    "grossAmount": 25,
    "invoiceId": null,
    "invoiceItemId": 2685481,
    "invoiceItemName": null,
    "invoiceStatus": null,
    "modifiedUser": "JoeSchmo",
    "netAmount": 25,
    "packageSoldId": null,
    "productId": null,
    "quantity": 1,
    "rate": 25,
    "reasonId": null,
    "recurringAppointmentId": 742510,
    "taxable": false
}
PUT /invoiceItem
{
    "active": true,
    "businessId": 43111,
    "calendarId": 17602802,
    "client": null,
    "clientId": 4761823,
    "coupon": null,
    "couponError": null,
    "createdDate": 1536761795057,
    "createdUser": "JoeSchmo",
    "depositAmount": null,
    "description": "Bought a book",
    "discountAmount": null,
    "discountPercentage": null,
    "giftCardUUID": null,
    "grossAmount": 10,
    "invoiceId": 437711,
    "invoiceItemId": 442802,
    "invoiceItemName": null,
    "invoiceStatus": null,
    "modifiedUser": "JoeSchmo",
    "netAmount": 10,
    "packageSoldId": null,
    "productId": null,
    "quantity": 1,
    "rate":  10,
    "reasonId": null,
    "recurringAppointmentId": null,
    "taxable": false
}




Invoice Item Object Values

Property NameTypeRequiredDescription
activebooleanYesIndicates whether or not the specified invoice item should return on GET calls. 
businessIdintegerYesProvides unique numerical ID for the business to which the specified invoice item belongs.
calendarIdinteger
Provides unique numeric ID for the calendar of the appointment from which the specified invoice item was created.
clientobject
Displays the client object of any client connected to the specified invoice item - for more info, see Clients API page.
clientIdintegerYesProvides unique numeric ID for the client attached to the specified invoice item.
couponobject
Displays the coupon object of any coupon being applied on the specified invoice item - for more info, see Coupon API page.
couponErrorstring
Displays as the error message for the coupon error.
createdDateinteger
Displays as the date the specified invoice item was created in milliseconds elapsed since January 1, 1970 00:00:00 UTC form. 
createdUserstring
Displays as username of the user who created specified invoice item.
depositAmountinteger
Displays the monetary amount of any deposit paid for the invoice to which the specified invoice item belongs.
descriptionstring
Displays string representation of what the specified invoice item is for. Example: "For Dog Training with Titus Bigly on Thursday, Sep 13, 2018 at 8:00 AM EDT".
discountAmountinteger
Displays as monetary value of any discount applied to the specified invoice item.
discountPercentageinteger
Displays as percentage of any discount applied to the specified invoice item.
giftCardUUIdinteger
Provides unique numeric ID for any giftcard used to create the specified invoice item.
grossAmountinteger
Displays as monetary value of payment/refund being applied before accounting for any discounts. Refunds show as negative numbers.
invoiceIdintegerYesProvides unique numeric ID for the invoice to which the specified invoice item belongs.
invoiceItemIdintegerYes, on PUT callsProvides unique numeric ID for the specified invoice item.
modifiedUserstring
Displays as username of the user who created the specified invoice item.
netAmountinteger
Displays as monetary value of payment/refund being applied after accounting for any discounts. Refunds show as negative numbers.
packageSoldIdinteger
Provides unique numeric ID of any package sold as part of the specified invoice item.
productIdinteger
Provides unique numeric ID of any product that is part of the specified invoice item.
quantityintegerYesDisplays as number of payments/refunds being applied.
rateintegerYesDisplays as monetary value of each individual payment/refund being applied. Refunds show as negative numbers.
reasonIdinteger
Provides unique numeric ID of the reason related to the specified invoice item.
recurringAppointmentIdinteger
Provides unique numeric ID of any recurring appointment related to the specified invoice item.
taxableboolean

Indicates whether or not the specified invoice item is taxable, which would impact the overall balance of the invoice itself.