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": "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
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": "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 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": "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
integer
required
The unique numeric ID of the billing item to retrieve.
Response
object
required
Show properties
Show properties
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. A ticket-charge is a per-employee transit ticket charge; the other types are company-level platform fees not tied to a single employee.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 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

