API reference
Example Response 200
Example Response 201 Example Response 200
Example Response 200
Example Response 200
Example Response 201
Terminals
6 endpoints
The endpoint descriptions come directly from the API and are in German.
Terminals auflisten
get/v1/terminals
Gekoppelte PAX IM30.
Response 200TerminalList
| Name | Type | Description |
|---|---|---|
objectrequired | "list" | |
datarequired | Terminal[] | |
has_morerequired | boolean |
Possible errors
- 400 Anfrage ungültig
- 401 Nicht angemeldet
- 403 Berechtigung fehlt
- 404 Nicht gefunden
- 409 Zustand passt nicht
- 429 Zu viele Anfragen
curl -X GET https://api.ladehase.com/v1/terminals \n -H "Authorization: Bearer lh_test_…"{
"object": "list",
"data": [
{
"id": "trm_6b0c2d8e1f3a5b7c",
"object": "terminal",
"name": "string",
"model": "string",
"location_id": "string",
"integration_id": "string",
"external_terminal_id": "string",
"paired": true,
"online": true,
"app_version": "string",
"last_seen_at": "2026-10-25T08:30:00.000Z",
"created_at": "string"
}
],
"has_more": true
}Terminal anlegen
post/v1/terminals
Neues PAX IM30 für einen Standort. Antwort enthält den Wartungs-PIN (nur einmal sichtbar).
Parameters
| Name | In | Type |
|---|---|---|
idempotency-keyoptionalWiederholbare Anfragen ohne doppelte Wirkung (24 Stunden) | Header | string |
Request
| Name | Type | Description |
|---|---|---|
nameoptional | string | |
location_idrequired | string | |
integration_idoptional | string | null | |
external_terminal_idoptional | string | null | |
maintenance_pinoptional | string |
Response 201Terminal
| Name | Type | Description |
|---|---|---|
idrequired | string | ID mit Präfix «trm_» |
objectrequired | "terminal" | |
namerequired | string | |
modelrequired | string | |
location_idrequired | string | |
integration_idrequired | string | null | |
external_terminal_idrequired | string | null | Terminal-ID bei Freika |
pairedrequired | boolean | |
onlinerequired | boolean | |
app_versionrequired | string | null | |
last_seen_atrequired | string | null | Zeitpunkt (ISO 8601, UTC) |
created_atrequired | string |
Possible errors
- 400 Anfrage ungültig
- 401 Nicht angemeldet
- 403 Berechtigung fehlt
- 404 Nicht gefunden
- 409 Zustand passt nicht
- 429 Zu viele Anfragen
curl -X POST https://api.ladehase.com/v1/terminals \n -H "Authorization: Bearer lh_test_…" \n -H "Content-Type: application/json" \n -d '{"name":"PAX IM30","location_id":"string","integration_id":"string","external_terminal_id":"string","maintenance_pin":"string"}'{
"id": "trm_6b0c2d8e1f3a5b7c",
"object": "terminal",
"name": "string",
"model": "string",
"location_id": "string",
"integration_id": "string",
"external_terminal_id": "string",
"paired": true,
"online": true,
"app_version": "string",
"last_seen_at": "2026-10-25T08:30:00.000Z",
"created_at": "string"
}Freika-Terminals
get/v1/terminals/available
Terminals im verbundenen Freika-Konto zur Auswahl beim Koppeln.
Response 200Object
Possible errors
- 400 Anfrage ungültig
- 401 Nicht angemeldet
- 403 Berechtigung fehlt
- 404 Nicht gefunden
- 409 Zustand passt nicht
- 429 Zu viele Anfragen
curl -X GET https://api.ladehase.com/v1/terminals/available \n -H "Authorization: Bearer lh_test_…"{}Terminal ändern
patch/v1/terminals/{id}
Name, Standort, Freika-Terminal, Wartungs-PIN.
Parameters
| Name | In | Type |
|---|---|---|
idrequired | Path | string |
Request
| Name | Type | Description |
|---|---|---|
nameoptional | string | |
location_idoptional | string | |
integration_idoptional | string | null | |
external_terminal_idoptional | string | null | |
maintenance_pinoptional | string |
Response 200Terminal
| Name | Type | Description |
|---|---|---|
idrequired | string | ID mit Präfix «trm_» |
objectrequired | "terminal" | |
namerequired | string | |
modelrequired | string | |
location_idrequired | string | |
integration_idrequired | string | null | |
external_terminal_idrequired | string | null | Terminal-ID bei Freika |
pairedrequired | boolean | |
onlinerequired | boolean | |
app_versionrequired | string | null | |
last_seen_atrequired | string | null | Zeitpunkt (ISO 8601, UTC) |
created_atrequired | string |
Possible errors
- 400 Anfrage ungültig
- 401 Nicht angemeldet
- 403 Berechtigung fehlt
- 404 Nicht gefunden
- 409 Zustand passt nicht
- 429 Zu viele Anfragen
curl -X PATCH https://api.ladehase.com/v1/terminals/{id} \n -H "Authorization: Bearer lh_test_…" \n -H "Content-Type: application/json" \n -d '{"name":"PAX IM30","location_id":"string","integration_id":"string","external_terminal_id":"string","maintenance_pin":"string"}'{
"id": "trm_6b0c2d8e1f3a5b7c",
"object": "terminal",
"name": "string",
"model": "string",
"location_id": "string",
"integration_id": "string",
"external_terminal_id": "string",
"paired": true,
"online": true,
"app_version": "string",
"last_seen_at": "2026-10-25T08:30:00.000Z",
"created_at": "string"
}Terminal entfernen
delete/v1/terminals/{id}
Die App muss danach neu gekoppelt werden.
Parameters
| Name | In | Type |
|---|---|---|
idrequired | Path | string |
Response 200Deleted
| Name | Type | Description |
|---|---|---|
idrequired | string | |
objectrequired | string | |
deletedrequired | true |
Possible errors
- 400 Anfrage ungültig
- 401 Nicht angemeldet
- 403 Berechtigung fehlt
- 404 Nicht gefunden
- 409 Zustand passt nicht
- 429 Zu viele Anfragen
curl -X DELETE https://api.ladehase.com/v1/terminals/{id} \n -H "Authorization: Bearer lh_test_…"{
"id": "string",
"object": "string",
"deleted": true
}Kopplungscode
post/v1/terminals/{id}/pairing_codes
Code und QR-Inhalt zum Koppeln der Terminal-App (15 Minuten gültig).
Parameters
| Name | In | Type |
|---|---|---|
idrequired | Path | string |
idempotency-keyoptionalWiederholbare Anfragen ohne doppelte Wirkung (24 Stunden) | Header | string |
Response 201Object
Possible errors
- 400 Anfrage ungültig
- 401 Nicht angemeldet
- 403 Berechtigung fehlt
- 404 Nicht gefunden
- 409 Zustand passt nicht
- 429 Zu viele Anfragen
curl -X POST https://api.ladehase.com/v1/terminals/{id}/pairing_codes \n -H "Authorization: Bearer lh_test_…"{}