curl --request GET \
--url "https://v1-api.ticket-plus.app/billing/items/2024-05-01/ticket-charge" \
--header "Authorization: Basic <base64(clientId:clientSecret)>"
import requests, base64
credentials = base64.b64encode(b"<clientId>:<clientSecret>").decode()
res = requests.get(
"https://v1-api.ticket-plus.app/billing/items/2024-05-01/ticket-charge",
headers={"Authorization": f"Basic {credentials}"},
)
print(res.json())
const credentials = Buffer.from("<clientId>:<clientSecret>").toString("base64");
const res = await fetch(
"https://v1-api.ticket-plus.app/billing/items/2024-05-01/ticket-charge",
{ headers: { Authorization: `Basic ${credentials}` } }
);
console.log(await res.json());
{
"data": [
{
"id": 1024,
"billing": {
"period": "2024-05-01",
"total": { "label": "€29.00", "value": 2900 },
"tax": { "label": "€5.51", "value": 551 },
"overall": { "label": "€34.51", "value": 3451 }
},
"charge": {
"type": "ticket-charge",
"employee": {
"profile": {
"id": 42,
"firstName": "Anna",
"lastName": "Müller",
"email": "anna.mueller@example.com",
"hrId": "emp_HR_001"
},
"exists": true
},
"plan": {
"type": "split-pay-plan",
"companyAmount": { "label": "€20.00", "value": 2000 },
"employeeAmount": { "label": "€9.00", "value": 900 }
}
},
"billedAt": "2024-05-01T00:00:00Z",
"resource": "billing-item",
"_links": {
"self": { "href": "https://v1-api.ticket-plus.app/billing/items/1024", "type": "application/json" },
"employee": { "href": "https://v1-api.ticket-plus.app/employees/42", "type": "application/json" }
}
}
]
}
Billing Items
Export Billing Items
Export every billing item for one period and charge type as a single array.
GET
/
billing
/
items
/
{period}
/
{chargeType}
curl --request GET \
--url "https://v1-api.ticket-plus.app/billing/items/2024-05-01/ticket-charge" \
--header "Authorization: Basic <base64(clientId:clientSecret)>"
import requests, base64
credentials = base64.b64encode(b"<clientId>:<clientSecret>").decode()
res = requests.get(
"https://v1-api.ticket-plus.app/billing/items/2024-05-01/ticket-charge",
headers={"Authorization": f"Basic {credentials}"},
)
print(res.json())
const credentials = Buffer.from("<clientId>:<clientSecret>").toString("base64");
const res = await fetch(
"https://v1-api.ticket-plus.app/billing/items/2024-05-01/ticket-charge",
{ headers: { Authorization: `Basic ${credentials}` } }
);
console.log(await res.json());
{
"data": [
{
"id": 1024,
"billing": {
"period": "2024-05-01",
"total": { "label": "€29.00", "value": 2900 },
"tax": { "label": "€5.51", "value": 551 },
"overall": { "label": "€34.51", "value": 3451 }
},
"charge": {
"type": "ticket-charge",
"employee": {
"profile": {
"id": 42,
"firstName": "Anna",
"lastName": "Müller",
"email": "anna.mueller@example.com",
"hrId": "emp_HR_001"
},
"exists": true
},
"plan": {
"type": "split-pay-plan",
"companyAmount": { "label": "€20.00", "value": 2000 },
"employeeAmount": { "label": "€9.00", "value": 900 }
}
},
"billedAt": "2024-05-01T00:00:00Z",
"resource": "billing-item",
"_links": {
"self": { "href": "https://v1-api.ticket-plus.app/billing/items/1024", "type": "application/json" },
"employee": { "href": "https://v1-api.ticket-plus.app/employees/42", "type": "application/json" }
}
}
]
}
Returns all billing items for one billing period and one charge type in a single, non-paginated response. This is the fastest way to pull a complete month of charges in one call.
To build payroll data, export a month’s
ticket-charge items — you get one entry per employee who received a ticket, each with the employee’s hrId, the price, and the billing period.
This endpoint requires the
view-billing permission. See Authorization.Unlike List Billing Items, this endpoint is not paginated — it returns the full result set for the period and charge type at once.
curl --request GET \
--url "https://v1-api.ticket-plus.app/billing/items/2024-05-01/ticket-charge" \
--header "Authorization: Basic <base64(clientId:clientSecret)>"
import requests, base64
credentials = base64.b64encode(b"<clientId>:<clientSecret>").decode()
res = requests.get(
"https://v1-api.ticket-plus.app/billing/items/2024-05-01/ticket-charge",
headers={"Authorization": f"Basic {credentials}"},
)
print(res.json())
const credentials = Buffer.from("<clientId>:<clientSecret>").toString("base64");
const res = await fetch(
"https://v1-api.ticket-plus.app/billing/items/2024-05-01/ticket-charge",
{ headers: { Authorization: `Basic ${credentials}` } }
);
console.log(await res.json());
{
"data": [
{
"id": 1024,
"billing": {
"period": "2024-05-01",
"total": { "label": "€29.00", "value": 2900 },
"tax": { "label": "€5.51", "value": 551 },
"overall": { "label": "€34.51", "value": 3451 }
},
"charge": {
"type": "ticket-charge",
"employee": {
"profile": {
"id": 42,
"firstName": "Anna",
"lastName": "Müller",
"email": "anna.mueller@example.com",
"hrId": "emp_HR_001"
},
"exists": true
},
"plan": {
"type": "split-pay-plan",
"companyAmount": { "label": "€20.00", "value": 2000 },
"employeeAmount": { "label": "€9.00", "value": 900 }
}
},
"billedAt": "2024-05-01T00:00:00Z",
"resource": "billing-item",
"_links": {
"self": { "href": "https://v1-api.ticket-plus.app/billing/items/1024", "type": "application/json" },
"employee": { "href": "https://v1-api.ticket-plus.app/employees/42", "type": "application/json" }
}
}
]
}
Path Parameters
string
required
The billing period to export, in
YYYY-MM-DD format — the first day of the billed month, e.g. 2024-05-01.string
required
The charge type to export. Allowed values:
service-charge, ticket-charge, hr-integration-charge, hr-payroll-integration-charge, api-charge. Use ticket-charge to export the per-employee ticket charges for payroll.Response
object[]
required
Array of billing item objects for the requested period and charge type. Returned in full — this response is not paginated.
Show billing item object
Show billing item object
integer
required
Unique billing item identifier.
object
required
The billing period this charge belongs to and its monetary amounts.
Show properties
Show properties
string
required
Billing period in
YYYY-MM-DD format — the first day of the billed month.object
required
object
required
object
required
What the charge is for, and the employee it applies to where relevant.
Show properties
Show properties
string
required
The kind of charge. Allowed values:
service-charge, ticket-charge, hr-integration-charge, hr-payroll-integration-charge, api-charge.object | null
The employee this charge applies to.
null for company-level charges not tied to an employee.Show properties
Show properties
object
required
Snapshot of the employee as billed. Fields may be
null if the employee was removed after being billed.Show properties
Show properties
integer | null
required
JobTicket employee ID.
null if the employee no longer exists.string | null
required
Employee’s first name at the time of billing.
string | null
required
Employee’s last name at the time of billing.
string | null
required
Employee’s email at the time of billing.
string | null
required
The employee’s ID in your HR system. Use this to match the charge back to your payroll records.
boolean
required
true if the employee still exists in JobTicket; false if they have since been removed.object | null
The subscription plan that produced this charge, and how its cost is split between company and employee.
null for charges not tied to a plan, such as company-level platform fees.Show properties
Show properties
string
required
Plan type. Allowed values:
fully-subsidized-plan (company pays the full amount), deferred-plan (cost is deferred), split-pay-plan (cost is split between company and employee).object
string
required
ISO 8601 timestamp of when the charge was billed.
string
required
Resource type label. Always
"billing-item".object
required
HAL hypermedia links.
Show properties
Show properties
Authorizations
HTTP Basic Auth using your API key credentials. Use the username and password issued from the Developer Portal. Encode them as Base64(username:password) and pass in the Authorization: Basic <token> header.
Path Parameters
The billing period to export, in YYYY-MM-DD format (the first day of the billed month, e.g. 2024-05-01).
The charge type to export. Allowed values: service-charge, ticket-charge, hr-integration-charge, hr-payroll-integration-charge, api-charge.
Available options:
service-charge, ticket-charge, hr-integration-charge, hr-payroll-integration-charge, api-charge Response
200 - application/json
All billing items for the given period and charge type.
Show child attributes
Show child attributes

