curl --request GET \
--url "https://v1-api.ticket-plus.app/billing/items/1024" \
--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/1024",
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/1024", {
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": "[email protected]",
"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
Get Billing Item
Retrieve full details for a single billing item by its ID.
GET
/
billing
/
items
/
{id}
curl --request GET \
--url "https://v1-api.ticket-plus.app/billing/items/1024" \
--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/1024",
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/1024", {
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": "[email protected]",
"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 the complete record for one billing item — its billing period, the charge it represents, the employee it applies to (for per-employee charges), and the net, tax, and gross amounts.
This endpoint requires the
view-billing permission. See Authorization.curl --request GET \
--url "https://v1-api.ticket-plus.app/billing/items/1024" \
--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/1024",
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/1024", {
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": "[email protected]",
"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
The unique numeric ID of the billing item to retrieve.
Response
Show properties
Show properties
Unique billing item identifier.
The billing period this charge belongs to and its monetary amounts.
Show properties
Show properties
Billing period in
YYYY-MM-DD format — the first day of the billed month.What the charge is for, and the employee it applies to where relevant.
Show properties
Show properties
The kind of charge. Allowed values:
service-charge, ticket-charge, hr-integration-charge, hr-payroll-integration-charge, api-charge. A ticket-charge is a per-employee transit ticket charge; the other types are company-level platform fees not tied to a single employee.The employee this charge applies to.
null for company-level charges not tied to an employee.Show properties
Show properties
Snapshot of the employee as billed. Fields may be
null if the employee was removed after being billed.Show properties
Show properties
JobTicket employee ID.
null if the employee no longer exists.Employee’s first name at the time of billing.
Employee’s last name at the time of billing.
Employee’s email at the time of billing.
The employee’s ID in your HR system. Use this to match the charge back to your payroll records.
true if the employee still exists in JobTicket; false if they have since been removed.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
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).ISO 8601 timestamp of when the charge was billed.
Resource type label. Always
"billing-item".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 unique numeric ID of the billing item to retrieve.
Response
200 - application/json
The requested billing item.
A single charge on your company's invoice, tied to a billing period.
Show child attributes
Show child attributes
⌘I

