Fleetiva Guide Reference Deutsch OpenAPI (JSON)

API reference

All calls of the Fleetiva API, grouped by area, with parameters, fields, responses and a test console. Below them the data formats.

Every call needs the Authorization: Bearer header with the key, every response carries X-Request-Id. The rules for all calls – authentication, idempotency, limits and errors – are in the guide.

Contents

Inquiries

POST/inquiries

Create an inquiry · create_inquiry · Scope: inquiries.create

Create a transport inquiry for one or more passengers (people with special needs) on behalf of the requesting person. The operator reviews it in the Fleetiva inbox; nothing is booked automatically. Requires an Idempotency-Key: the same key with the same content returns the existing inquiry, with different content it is rejected.

Parameters

NameInRequiredValuesDescription
Idempotency-Keyheaderyes1–120 charactersYour own ID for this inquiry, e.g. a UUID or your booking number. Send the same key when you retry the same request: with the same content you get the existing inquiry back (200), with different content the call is rejected (422). Not only spaces.
Fleetiva-Dry-Runheadernoone of: true, falsetrue: check the call without any effect — same authentication, scope, limits and validation, but nothing is created, no one is notified and nothing is stored; a passed check answers 204 without a body. Not checked: whether the Idempotency-Key was already used. false or no header: the call takes effect. Any other value is rejected (400).

Body (JSON)

JSON object, at most 64 KB.

FieldTypeRequiredValuesDescription
requesterRequesteryesThe person or institution asking for transport — the operator replies to them. Email or phone is required.
passengerslist of Passengeryes1–20 entriesThe people to be transported, one entry each.
messagestringnoat most 4000 characters
may be null
Free text for the operator.
consentConsentyesConsent your system obtained from the person before sending (required).

Responses

StatusDescription
200Same Idempotency-Key and same content again: the existing inquiry, nothing new is created.
201Inquiry created.
204Dry run passed (Fleetiva-Dry-Run: true): everything was checked, nothing was created. No body.
400invalid_input: Invalid request
401unauthorized: Missing or invalid API key
403forbidden: The API key lacks the scope for this operation; access_inactive: API access is not active for this account
413payload_too_large: Request body too large
415unsupported_media_type: Content-Type must be application/json
422idempotency_key_reused: Idempotency-Key was already used with different content
429rate_limited: Too many requests
503unavailable: Service unavailable

What the error codes mean and how to handle them: Error handling.

Response fields

FieldTypeRequiredValuesDescription
idstringyesformat uuidID of the inquiry — keep it to query the status.
duplicatebooleanyestrue if this Idempotency-Key was already used with the same content; the existing inquiry is returned.

Example

HTTP/1.1 200

{
  "id": "0b7c6d1e-2f3a-4b5c-8d9e-0f1a2b3c4d5e",
  "duplicate": true
}

GET/inquiries/{id}

Query the status of an inquiry · get_inquiry_status · Scope: inquiries.create

Read the processing status of an inquiry this API client created (new, in_progress, accepted, rejected). Inquiries of other clients, unknown and deleted ones are all reported as not found.

Parameters

NameInRequiredValuesDescription
idpathyesformat uuidID returned when the inquiry was created.

Responses

StatusDescription
200Status of the inquiry.
400invalid_input: Invalid request
401unauthorized: Missing or invalid API key
403forbidden: The API key lacks the scope for this operation; access_inactive: API access is not active for this account
404not_found: Not found
429rate_limited: Too many requests
503unavailable: Service unavailable

What the error codes mean and how to handle them: Error handling.

Response fields

FieldTypeRequiredValuesDescription
idstringyesformat uuidID of the inquiry.
statusstringyesone of: new, in_progress, accepted, rejectednew (not yet processed), in_progress (the operator is working on it), accepted (taken over for planning) or rejected.
received_atstringyesWhen the inquiry was received (ISO 8601 with offset).

Example

HTTP/1.1 200

{
  "id": "0b7c6d1e-2f3a-4b5c-8d9e-0f1a2b3c4d5e",
  "status": "in_progress",
  "received_at": "2026-11-02T09:15:00+00:00"
}

Customers

GET/customers

List customers · list_customers · Scope: master_data.read

List the customers of the transport service (institutions, authorities, cost bearers, private persons), ordered by last change, oldest first. Page with cursor; sync with updated_since and list_deleted_customers.

Parameters

NameInRequiredValuesDescription
limitqueryno1–200
may be null
Records per page, 1–200. Default 50.
cursorquerynoat most 500 characters
may be null
next_cursor of the previous page, unchanged. Use it with the same filters. Omit it for the first page.
updated_sincequerynoformat date-time
may be null
Only records changed at or after this time (ISO 8601 with offset). For syncing: use the start of your previous sync minus a few minutes — a record may come twice, store by id.
statusquerynoone of: active, inactive, archived
may be null
Only customers with this status.
typequerynoone of: agency, carrier, institution, private, caretaker
may be null
Only customers of this type.
includequerynomay be nullField groups to add: billing (needs the scope accounting.read). Comma-separated.

Responses

StatusDescription
200One page of customers changed since the given time; more follow with next_cursor.
400invalid_input: Invalid request
401unauthorized: Missing or invalid API key
403forbidden: The API key lacks the scope for this operation; access_inactive: API access is not active for this account
429rate_limited: Too many requests
503unavailable: Service unavailable

What the error codes mean and how to handle them: Error handling.

Response fields

FieldTypeRequiredValuesDescription
datalist of objectyesCustomers, ordered by updated_at, then id.
data[].idstringyesID of the customer.
data[].numberstringyesmay be nullCustomer number assigned by the operator.
data[].namestringyesName of the customer, e.g. the institution or the person.
data[].typestringyesone of: agency, carrier, institution, private, caretaker
may be null
agency (public authority, e.g. youth welfare office), carrier (cost bearer, e.g. health insurance), institution (e.g. workshop, school, day care centre), private (private person), caretaker (legal guardian). null when not set.
data[].statusstringyesone of: active, inactive, archived
may be null
active, inactive or archived. null when not set.
data[].emailstringyesmay be nullEmail address.
data[].phonestringyesmay be nullPhone number.
data[].faxstringyesmay be nullFax number.
data[].websitestringyesmay be nullWebsite.
data[].postal_addressobjectyesmay be nullPostal address, e.g. for invoices.
data[].postal_address.streetstringyesmay be nullStreet.
data[].postal_address.house_numberstringyesmay be nullHouse number.
data[].postal_address.zipstringyesmay be nullPostal code.
data[].postal_address.citystringyesmay be nullCity.
data[].postal_address.countrystringyesmay be nullCountry as stored, e.g. DE or Deutschland.
data[].postal_address.address_line_2stringyesmay be nullAddress supplement, e.g. building or floor.
data[].postal_address.po_boxstringyesmay be nullPO box, instead of a street.
data[].postal_address.departmentstringyesmay be nullDepartment.
data[].postal_address.attentionstringyesmay be nullFor the attention of a person.
data[].postal_address.referencestringyesmay be nullReference of the addressee, e.g. a file number.
data[].physical_addressobjectyesmay be nullPhysical address, if it differs from the postal address — e.g. where passengers are dropped off.
data[].physical_address.streetstringyesmay be nullStreet.
data[].physical_address.house_numberstringyesmay be nullHouse number.
data[].physical_address.zipstringyesmay be nullPostal code.
data[].physical_address.citystringyesmay be nullCity.
data[].physical_address.countrystringyesmay be nullCountry as stored, e.g. DE or Deutschland.
data[].physical_address.address_line_2stringyesmay be nullAddress supplement, e.g. building or floor.
data[].physical_address.po_boxstringyesmay be nullPO box, instead of a street.
data[].physical_address.departmentstringyesmay be nullDepartment.
data[].physical_address.attentionstringyesmay be nullFor the attention of a person.
data[].physical_address.referencestringyesmay be nullReference of the addressee, e.g. a file number.
data[].notesstringyesmay be nullNotes of the operator.
data[].created_atstringyesmay be nullWhen the customer was created (ISO 8601 with offset).
data[].updated_atstringyesWhen the customer was last changed (ISO 8601 with offset).
data[].billingobjectnoBilling data. Only with include=billing and the scope accounting.read.
data[].billing.tax_idstringyesmay be nullTax number.
data[].billing.vat_idstringyesmay be nullVAT ID.
data[].billing.buyer_referencestringyesmay be nullBuyer reference for e-invoices (Leitweg-ID in Germany).
data[].billing.payment_methodstringyesmay be nullPayment method as entered by the operator, free text.
data[].billing.bank_accountobjectyesmay be nullBank account; null when none is stored.
data[].billing.bank_account.account_holderstringyesmay be nullAccount holder.
data[].billing.bank_account.bank_namestringyesmay be nullName of the bank.
data[].billing.bank_account.ibanstringyesmay be nullIBAN.
data[].billing.bank_account.bicstringyesmay be nullBIC.
next_cursorstringyesmay be nullPass it as cursor to get the next page. null: there are no more records.

Example

HTTP/1.1 200

{
  "data": [
    {
      "id": "7a1f3c2e-5b4d-4e6f-9a8b-1c2d3e4f5a6b",
      "number": "K-1042",
      "name": "Tagesförderstätte Sonnenhof",
      "type": "institution",
      "status": "active",
      "email": "verwaltung@example.org",
      "phone": "+49 30 1234567",
      "fax": null,
      "website": null,
      "postal_address": {
        "street": "Lindenallee",
        "house_number": "12",
        "zip": "10115",
        "city": "Berlin",
        "country": "DE",
        "address_line_2": null,
        "po_box": null,
        "department": null,
        "attention": null,
        "reference": null
      },
      "physical_address": null,
      "notes": "Drop-off at the side entrance.",
      "created_at": "2026-09-14T08:30:00.000000+00:00",
      "updated_at": "2026-11-02T07:45:12.345678+00:00"
    }
  ],
  "next_cursor": "WyIyMDI2LTExLTAyVDA3OjQ1OjEyLjM0NTY3OCswMDowMCIsIjdhMWYzYzJlLTViNGQtNGU2Zi05YThiLTFjMmQzZTRmNWE2YiJd"
}

GET/customers/{id}

Read a customer · get_customer · Scope: master_data.read

Read one customer by ID. Unknown and deleted customers are reported as not found.

Parameters

NameInRequiredValuesDescription
idpathyesformat uuidID of the customer.
includequerynomay be nullField groups to add: billing (needs the scope accounting.read). Comma-separated.

Responses

StatusDescription
200The customer with the field group billing.
400invalid_input: Invalid request
401unauthorized: Missing or invalid API key
403forbidden: The API key lacks the scope for this operation; access_inactive: API access is not active for this account
404not_found: Not found
429rate_limited: Too many requests
503unavailable: Service unavailable

What the error codes mean and how to handle them: Error handling.

Response fields

FieldTypeRequiredValuesDescription
idstringyesID of the customer.
numberstringyesmay be nullCustomer number assigned by the operator.
namestringyesName of the customer, e.g. the institution or the person.
typestringyesone of: agency, carrier, institution, private, caretaker
may be null
agency (public authority, e.g. youth welfare office), carrier (cost bearer, e.g. health insurance), institution (e.g. workshop, school, day care centre), private (private person), caretaker (legal guardian). null when not set.
statusstringyesone of: active, inactive, archived
may be null
active, inactive or archived. null when not set.
emailstringyesmay be nullEmail address.
phonestringyesmay be nullPhone number.
faxstringyesmay be nullFax number.
websitestringyesmay be nullWebsite.
postal_addressobjectyesmay be nullPostal address, e.g. for invoices.
postal_address.streetstringyesmay be nullStreet.
postal_address.house_numberstringyesmay be nullHouse number.
postal_address.zipstringyesmay be nullPostal code.
postal_address.citystringyesmay be nullCity.
postal_address.countrystringyesmay be nullCountry as stored, e.g. DE or Deutschland.
postal_address.address_line_2stringyesmay be nullAddress supplement, e.g. building or floor.
postal_address.po_boxstringyesmay be nullPO box, instead of a street.
postal_address.departmentstringyesmay be nullDepartment.
postal_address.attentionstringyesmay be nullFor the attention of a person.
postal_address.referencestringyesmay be nullReference of the addressee, e.g. a file number.
physical_addressobjectyesmay be nullPhysical address, if it differs from the postal address — e.g. where passengers are dropped off.
physical_address.streetstringyesmay be nullStreet.
physical_address.house_numberstringyesmay be nullHouse number.
physical_address.zipstringyesmay be nullPostal code.
physical_address.citystringyesmay be nullCity.
physical_address.countrystringyesmay be nullCountry as stored, e.g. DE or Deutschland.
physical_address.address_line_2stringyesmay be nullAddress supplement, e.g. building or floor.
physical_address.po_boxstringyesmay be nullPO box, instead of a street.
physical_address.departmentstringyesmay be nullDepartment.
physical_address.attentionstringyesmay be nullFor the attention of a person.
physical_address.referencestringyesmay be nullReference of the addressee, e.g. a file number.
notesstringyesmay be nullNotes of the operator.
created_atstringyesmay be nullWhen the customer was created (ISO 8601 with offset).
updated_atstringyesWhen the customer was last changed (ISO 8601 with offset).
billingobjectnoBilling data. Only with include=billing and the scope accounting.read.
billing.tax_idstringyesmay be nullTax number.
billing.vat_idstringyesmay be nullVAT ID.
billing.buyer_referencestringyesmay be nullBuyer reference for e-invoices (Leitweg-ID in Germany).
billing.payment_methodstringyesmay be nullPayment method as entered by the operator, free text.
billing.bank_accountobjectyesmay be nullBank account; null when none is stored.
billing.bank_account.account_holderstringyesmay be nullAccount holder.
billing.bank_account.bank_namestringyesmay be nullName of the bank.
billing.bank_account.ibanstringyesmay be nullIBAN.
billing.bank_account.bicstringyesmay be nullBIC.

Example

HTTP/1.1 200

{
  "id": "7a1f3c2e-5b4d-4e6f-9a8b-1c2d3e4f5a6b",
  "number": "K-1042",
  "name": "Tagesförderstätte Sonnenhof",
  "type": "institution",
  "status": "active",
  "email": "verwaltung@example.org",
  "phone": "+49 30 1234567",
  "fax": null,
  "website": null,
  "postal_address": {
    "street": "Lindenallee",
    "house_number": "12",
    "zip": "10115",
    "city": "Berlin",
    "country": "DE",
    "address_line_2": null,
    "po_box": null,
    "department": null,
    "attention": null,
    "reference": null
  },
  "physical_address": null,
  "notes": "Drop-off at the side entrance.",
  "created_at": "2026-09-14T08:30:00.000000+00:00",
  "updated_at": "2026-11-02T07:45:12.345678+00:00",
  "billing": {
    "tax_id": null,
    "vat_id": "DE123456789",
    "buyer_reference": "11001-12345-67",
    "payment_method": "Bank transfer",
    "bank_account": {
      "account_holder": "Sonnenhof gGmbH",
      "bank_name": "Musterbank",
      "iban": "DE89370400440532013000",
      "bic": "MUSTDEFFXXX"
    }
  }
}

GET/customers/deleted

List deleted customers · list_deleted_customers · Scope: master_data.read

List customers deleted since a point in time, so a synced copy can remove them. Kept for a limited time; further back the call is rejected and you need a full sync.

Parameters

NameInRequiredValuesDescription
sincequeryyesformat date-timeDeletions at or after this time (ISO 8601 with offset), at most 90 days back. Use the same time as updated_since of your sync.
limitqueryno1–200
may be null
Records per page, 1–200. Default 50.
cursorquerynoat most 500 characters
may be null
next_cursor of the previous page, unchanged. Use it with the same filters. Omit it for the first page.

Responses

StatusDescription
200Customers deleted since the given time.
400invalid_input: Invalid request
401unauthorized: Missing or invalid API key
403forbidden: The API key lacks the scope for this operation; access_inactive: API access is not active for this account
429rate_limited: Too many requests
503unavailable: Service unavailable

What the error codes mean and how to handle them: Error handling.

Response fields

FieldTypeRequiredValuesDescription
datalist of objectyesDeleted records, oldest first.
data[].idstringyesID of the deleted record.
data[].deleted_atstringyesWhen it was deleted (ISO 8601 with offset).
next_cursorstringyesmay be nullPass it as cursor to get the next page. null: there are no more records.

Example

HTTP/1.1 200

{
  "data": [
    {
      "id": "3c9e8d7f-1a2b-4c5d-8e9f-0a1b2c3d4e5f",
      "deleted_at": "2026-11-01T16:20:05.000000+00:00"
    }
  ],
  "next_cursor": null
}

Passengers

GET/passengers

List passengers · list_passengers · Scope: master_data.read

List the passengers of the transport service, ordered by last change, oldest first. Page with cursor; sync with updated_since and list_deleted_passengers.

Parameters

NameInRequiredValuesDescription
limitqueryno1–200
may be null
Records per page, 1–200. Default 50.
cursorquerynoat most 500 characters
may be null
next_cursor of the previous page, unchanged. Use it with the same filters. Omit it for the first page.
updated_sincequerynoformat date-time
may be null
Only records changed at or after this time (ISO 8601 with offset). For syncing: use the start of your previous sync minus a few minutes — a record may come twice, store by id.
statusquerynoone of: active, inactive, archived
may be null
Only passengers with this status.
customer_idquerynoformat uuid
may be null
Only passengers of this customer.
self_payerquerynomay be nulltrue: only self-payers; false: only the others (passengers of a cost bearer or without a customer).
includequerynomay be nullField groups to add: health (needs the scope health_data; every delivered passenger is logged) and billing (needs the scope accounting.read). Comma-separated.

Responses

StatusDescription
200One page of active passengers changed since the given time; more follow with next_cursor.
400invalid_input: Invalid request
401unauthorized: Missing or invalid API key
403forbidden: The API key lacks the scope for this operation; access_inactive: API access is not active for this account
429rate_limited: Too many requests
503unavailable: Service unavailable

What the error codes mean and how to handle them: Error handling.

Response fields

FieldTypeRequiredValuesDescription
datalist of objectyesPassengers, ordered by updated_at, then id.
data[].idstringyesID of the passenger.
data[].numberstringyesmay be nullPassenger number assigned by the operator.
data[].statusstringyesone of: active, inactive, archived
may be null
active, inactive or archived. null when not set.
data[].self_payerbooleanyesThe passenger pays for their trips themselves: they belong to the system customer for self-payers (customer.number SELBSTZAHLER), however often they ride.
data[].salutationstringyesone of: mr, ms, diverse
may be null
mr, ms or diverse. null when not set.
data[].first_namestringyesmay be nullFirst name.
data[].last_namestringyesLast name.
data[].date_of_birthstringyesmay be nullDate of birth (YYYY-MM-DD).
data[].emailstringyesmay be nullEmail address.
data[].phone_numberslist of objectyesPhone numbers with a label, e.g. mobile or mother. Empty list when none.
data[].phone_numbers[].labelstringyesmay be nullWhose number, e.g. mother.
data[].phone_numbers[].numberstringyesPhone number.
data[].home_addressobjectyesmay be nullHome address — where the passenger is usually picked up.
data[].home_address.streetstringyesmay be nullStreet.
data[].home_address.house_numberstringyesmay be nullHouse number.
data[].home_address.zipstringyesmay be nullPostal code.
data[].home_address.citystringyesmay be nullCity.
data[].home_address.countrystringyesmay be nullCountry as stored, e.g. DE or Deutschland.
data[].customerobjectyesmay be nullThe customer (cost bearer) the passenger belongs to. Read the customer itself to sync it.
data[].customer.idstringyesID of the customer.
data[].customer.namestringyesName of the customer at the time of reading.
data[].customer.numberstringyesmay be nullCustomer number.
data[].reference_codeslist of objectyesReference codes of cost bearers, as printed on documents. Empty list when none.
data[].reference_codes[].typestringyesKind of reference, e.g. approval number.
data[].reference_codes[].valuestringyesValue.
data[].needsobjectyesWhat the passenger needs on the trip — vehicle, seat and help. Same keys as needs of an inquiry.
data[].needs.wheelchairbooleanyesTravels seated in the wheelchair (needs a wheelchair space and a ramp or lift). false when not recorded.
data[].needs.wheelchair_transferablebooleanyesUses a wheelchair but can move to a regular seat for the trip. false when not recorded.
data[].needs.rollatorbooleanyesBrings a rollator. false when not recorded.
data[].needs.walkerbooleanyesUses a walking frame. false when not recorded.
data[].needs.canebooleanyesUses a walking stick. false when not recorded.
data[].needs.ambulatorybooleanyesCan walk without help. false when not recorded.
data[].needs.stretcherbooleanyesTravels lying on a stretcher. false when not recorded.
data[].needs.oxygenbooleanyesNeeds oxygen during the trip (needs an oxygen-equipped vehicle). false when not recorded.
data[].needs.companionbooleanyesNeeds an escort provided by the transport service. false when not recorded.
data[].needs.boarding_assistancebooleanyesNeeds help getting in and out of the vehicle. false when not recorded.
data[].needs.assistancebooleanyesNeeds support during the trip. false when not recorded.
data[].needs.service_animalbooleanyesTravels with an assistance animal. false when not recorded.
data[].needs.bicyclebooleanyesBrings a bicycle. false when not recorded.
data[].seat_preferencestringyesone of: no_preference, front, rear
may be null
front, rear or no_preference. null when not recorded.
data[].boarding_minutesnumberyesmay be nullMinutes the passenger usually needs to board.
data[].pickup_earlieststringyesmay be nullUsual earliest pickup time (HH:MM, local time of the operator).
data[].pickup_lateststringyesmay be nullUsual latest pickup time (HH:MM, local time of the operator).
data[].notesstringyesmay be nullNotes of the operator.
data[].created_atstringyesmay be nullWhen the passenger was created (ISO 8601 with offset).
data[].updated_atstringyesWhen the passenger was last changed (ISO 8601 with offset).
data[].healthobjectnoHealth data (Art. 9 GDPR). Only for API keys with the scope health_data and include=health. Every passenger delivered with this group is logged for the operator.
data[].health.medical_notesstringyesmay be nullMedical notes for the trip.
data[].health.allergiesstringyesmay be nullAllergies.
data[].health.emergency_contactobjectyesmay be nullEmergency contact; null when none is stored.
data[].health.emergency_contact.namestringyesmay be nullName of the contact person.
data[].health.emergency_contact.relationshipstringyesmay be nullRelationship to the passenger, e.g. mother.
data[].health.emergency_contact.phonestringyesmay be nullPhone number.
data[].health.needs_notesstringyesmay be nullFree text about the needs, e.g. how to help with boarding.
data[].health.autismbooleanyesThe passenger is autistic. false when not recorded.
data[].health.visual_impairmentbooleanyesThe passenger has a visual impairment. false when not recorded.
data[].health.cognitive_impairmentbooleanyesThe passenger has a cognitive impairment. false when not recorded.
data[].billingobjectnoBilling data. Only with include=billing and the scope accounting.read.
data[].billing.namestringyesmay be nullName on invoices, if it differs from the passenger.
data[].billing.addressobjectyesmay be nullBilling address; null when none is stored. If neither name nor address is set, documents are addressed to the passenger at home_address.
data[].billing.address.streetstringyesmay be nullStreet.
data[].billing.address.house_numberstringyesmay be nullHouse number.
data[].billing.address.zipstringyesmay be nullPostal code.
data[].billing.address.citystringyesmay be nullCity.
data[].billing.address.countrystringyesmay be nullCountry as stored, e.g. DE or Deutschland.
data[].billing.default_tax_ratenumberyesmay be nullDefault VAT rate in percent for documents of this passenger.
next_cursorstringyesmay be nullPass it as cursor to get the next page. null: there are no more records.

Example

HTTP/1.1 200

{
  "data": [
    {
      "id": "5d2e8f1a-3b4c-4d6e-9f0a-1b2c3d4e5f6a",
      "number": "F-2087",
      "status": "active",
      "self_payer": false,
      "salutation": "mr",
      "first_name": "Jonas",
      "last_name": "Beispiel",
      "date_of_birth": "2012-04-17",
      "email": null,
      "phone_numbers": [
        {
          "label": "Home",
          "number": "+49 30 7654321"
        },
        {
          "label": "Mother",
          "number": "+49 170 1234567"
        }
      ],
      "home_address": {
        "street": "Birkenweg",
        "house_number": "7",
        "zip": "10437",
        "city": "Berlin",
        "country": "DE"
      },
      "customer": {
        "id": "7a1f3c2e-5b4d-4e6f-9a8b-1c2d3e4f5a6b",
        "name": "Tagesförderstätte Sonnenhof",
        "number": "K-1042"
      },
      "reference_codes": [
        {
          "type": "Approval number",
          "value": "EGH-2026-0815"
        }
      ],
      "needs": {
        "wheelchair": true,
        "wheelchair_transferable": false,
        "rollator": false,
        "walker": false,
        "cane": false,
        "ambulatory": false,
        "stretcher": false,
        "oxygen": false,
        "companion": false,
        "boarding_assistance": true,
        "assistance": false,
        "service_animal": false,
        "bicycle": false
      },
      "seat_preference": "front",
      "boarding_minutes": 5,
      "pickup_earliest": "07:00",
      "pickup_latest": "07:20",
      "notes": "Ring twice.",
      "created_at": "2026-09-20T10:05:00.000000+00:00",
      "updated_at": "2026-11-02T06:58:41.123456+00:00"
    }
  ],
  "next_cursor": "WyIyMDI2LTExLTAyVDA2OjU4OjQxLjEyMzQ1NiswMDowMCIsIjVkMmU4ZjFhLTNiNGMtNGQ2ZS05ZjBhLTFiMmMzZDRlNWY2YSJd"
}

GET/passengers/{id}

Read a passenger · get_passenger · Scope: master_data.read

Read one passenger by ID. Unknown and deleted passengers are reported as not found.

Parameters

NameInRequiredValuesDescription
idpathyesformat uuidID of the passenger.
includequerynomay be nullField groups to add: health (needs the scope health_data; every delivered passenger is logged) and billing (needs the scope accounting.read). Comma-separated.

Responses

StatusDescription
200The passenger with the field group health — this call is logged for the operator.
400invalid_input: Invalid request
401unauthorized: Missing or invalid API key
403forbidden: The API key lacks the scope for this operation; access_inactive: API access is not active for this account
404not_found: Not found
429rate_limited: Too many requests
503unavailable: Service unavailable

What the error codes mean and how to handle them: Error handling.

Response fields

FieldTypeRequiredValuesDescription
idstringyesID of the passenger.
numberstringyesmay be nullPassenger number assigned by the operator.
statusstringyesone of: active, inactive, archived
may be null
active, inactive or archived. null when not set.
self_payerbooleanyesThe passenger pays for their trips themselves: they belong to the system customer for self-payers (customer.number SELBSTZAHLER), however often they ride.
salutationstringyesone of: mr, ms, diverse
may be null
mr, ms or diverse. null when not set.
first_namestringyesmay be nullFirst name.
last_namestringyesLast name.
date_of_birthstringyesmay be nullDate of birth (YYYY-MM-DD).
emailstringyesmay be nullEmail address.
phone_numberslist of objectyesPhone numbers with a label, e.g. mobile or mother. Empty list when none.
phone_numbers[].labelstringyesmay be nullWhose number, e.g. mother.
phone_numbers[].numberstringyesPhone number.
home_addressobjectyesmay be nullHome address — where the passenger is usually picked up.
home_address.streetstringyesmay be nullStreet.
home_address.house_numberstringyesmay be nullHouse number.
home_address.zipstringyesmay be nullPostal code.
home_address.citystringyesmay be nullCity.
home_address.countrystringyesmay be nullCountry as stored, e.g. DE or Deutschland.
customerobjectyesmay be nullThe customer (cost bearer) the passenger belongs to. Read the customer itself to sync it.
customer.idstringyesID of the customer.
customer.namestringyesName of the customer at the time of reading.
customer.numberstringyesmay be nullCustomer number.
reference_codeslist of objectyesReference codes of cost bearers, as printed on documents. Empty list when none.
reference_codes[].typestringyesKind of reference, e.g. approval number.
reference_codes[].valuestringyesValue.
needsobjectyesWhat the passenger needs on the trip — vehicle, seat and help. Same keys as needs of an inquiry.
needs.wheelchairbooleanyesTravels seated in the wheelchair (needs a wheelchair space and a ramp or lift). false when not recorded.
needs.wheelchair_transferablebooleanyesUses a wheelchair but can move to a regular seat for the trip. false when not recorded.
needs.rollatorbooleanyesBrings a rollator. false when not recorded.
needs.walkerbooleanyesUses a walking frame. false when not recorded.
needs.canebooleanyesUses a walking stick. false when not recorded.
needs.ambulatorybooleanyesCan walk without help. false when not recorded.
needs.stretcherbooleanyesTravels lying on a stretcher. false when not recorded.
needs.oxygenbooleanyesNeeds oxygen during the trip (needs an oxygen-equipped vehicle). false when not recorded.
needs.companionbooleanyesNeeds an escort provided by the transport service. false when not recorded.
needs.boarding_assistancebooleanyesNeeds help getting in and out of the vehicle. false when not recorded.
needs.assistancebooleanyesNeeds support during the trip. false when not recorded.
needs.service_animalbooleanyesTravels with an assistance animal. false when not recorded.
needs.bicyclebooleanyesBrings a bicycle. false when not recorded.
seat_preferencestringyesone of: no_preference, front, rear
may be null
front, rear or no_preference. null when not recorded.
boarding_minutesnumberyesmay be nullMinutes the passenger usually needs to board.
pickup_earlieststringyesmay be nullUsual earliest pickup time (HH:MM, local time of the operator).
pickup_lateststringyesmay be nullUsual latest pickup time (HH:MM, local time of the operator).
notesstringyesmay be nullNotes of the operator.
created_atstringyesmay be nullWhen the passenger was created (ISO 8601 with offset).
updated_atstringyesWhen the passenger was last changed (ISO 8601 with offset).
healthobjectnoHealth data (Art. 9 GDPR). Only for API keys with the scope health_data and include=health. Every passenger delivered with this group is logged for the operator.
health.medical_notesstringyesmay be nullMedical notes for the trip.
health.allergiesstringyesmay be nullAllergies.
health.emergency_contactobjectyesmay be nullEmergency contact; null when none is stored.
health.emergency_contact.namestringyesmay be nullName of the contact person.
health.emergency_contact.relationshipstringyesmay be nullRelationship to the passenger, e.g. mother.
health.emergency_contact.phonestringyesmay be nullPhone number.
health.needs_notesstringyesmay be nullFree text about the needs, e.g. how to help with boarding.
health.autismbooleanyesThe passenger is autistic. false when not recorded.
health.visual_impairmentbooleanyesThe passenger has a visual impairment. false when not recorded.
health.cognitive_impairmentbooleanyesThe passenger has a cognitive impairment. false when not recorded.
billingobjectnoBilling data. Only with include=billing and the scope accounting.read.
billing.namestringyesmay be nullName on invoices, if it differs from the passenger.
billing.addressobjectyesmay be nullBilling address; null when none is stored. If neither name nor address is set, documents are addressed to the passenger at home_address.
billing.address.streetstringyesmay be nullStreet.
billing.address.house_numberstringyesmay be nullHouse number.
billing.address.zipstringyesmay be nullPostal code.
billing.address.citystringyesmay be nullCity.
billing.address.countrystringyesmay be nullCountry as stored, e.g. DE or Deutschland.
billing.default_tax_ratenumberyesmay be nullDefault VAT rate in percent for documents of this passenger.

Example

HTTP/1.1 200

{
  "id": "5d2e8f1a-3b4c-4d6e-9f0a-1b2c3d4e5f6a",
  "number": "F-2087",
  "status": "active",
  "self_payer": false,
  "salutation": "mr",
  "first_name": "Jonas",
  "last_name": "Beispiel",
  "date_of_birth": "2012-04-17",
  "email": null,
  "phone_numbers": [
    {
      "label": "Home",
      "number": "+49 30 7654321"
    },
    {
      "label": "Mother",
      "number": "+49 170 1234567"
    }
  ],
  "home_address": {
    "street": "Birkenweg",
    "house_number": "7",
    "zip": "10437",
    "city": "Berlin",
    "country": "DE"
  },
  "customer": {
    "id": "7a1f3c2e-5b4d-4e6f-9a8b-1c2d3e4f5a6b",
    "name": "Tagesförderstätte Sonnenhof",
    "number": "K-1042"
  },
  "reference_codes": [
    {
      "type": "Approval number",
      "value": "EGH-2026-0815"
    }
  ],
  "needs": {
    "wheelchair": true,
    "wheelchair_transferable": false,
    "rollator": false,
    "walker": false,
    "cane": false,
    "ambulatory": false,
    "stretcher": false,
    "oxygen": false,
    "companion": false,
    "boarding_assistance": true,
    "assistance": false,
    "service_animal": false,
    "bicycle": false
  },
  "seat_preference": "front",
  "boarding_minutes": 5,
  "pickup_earliest": "07:00",
  "pickup_latest": "07:20",
  "notes": "Ring twice.",
  "created_at": "2026-09-20T10:05:00.000000+00:00",
  "updated_at": "2026-11-02T06:58:41.123456+00:00",
  "health": {
    "medical_notes": "Epilepsy: emergency medication in the backpack.",
    "allergies": "Peanuts",
    "emergency_contact": {
      "name": "Sabine Beispiel",
      "relationship": "Mother",
      "phone": "+49 170 1234567"
    },
    "needs_notes": "Fasten the wheelchair with four-point restraints.",
    "autism": false,
    "visual_impairment": false,
    "cognitive_impairment": true
  }
}

GET/passengers/deleted

List deleted passengers · list_deleted_passengers · Scope: master_data.read

List passengers deleted since a point in time, so a synced copy can remove them. Kept for a limited time; further back the call is rejected and you need a full sync.

Parameters

NameInRequiredValuesDescription
sincequeryyesformat date-timeDeletions at or after this time (ISO 8601 with offset), at most 90 days back. Use the same time as updated_since of your sync.
limitqueryno1–200
may be null
Records per page, 1–200. Default 50.
cursorquerynoat most 500 characters
may be null
next_cursor of the previous page, unchanged. Use it with the same filters. Omit it for the first page.

Responses

StatusDescription
200Passengers deleted since the given time.
400invalid_input: Invalid request
401unauthorized: Missing or invalid API key
403forbidden: The API key lacks the scope for this operation; access_inactive: API access is not active for this account
429rate_limited: Too many requests
503unavailable: Service unavailable

What the error codes mean and how to handle them: Error handling.

Response fields

FieldTypeRequiredValuesDescription
datalist of objectyesDeleted records, oldest first.
data[].idstringyesID of the deleted record.
data[].deleted_atstringyesWhen it was deleted (ISO 8601 with offset).
next_cursorstringyesmay be nullPass it as cursor to get the next page. null: there are no more records.

Example

HTTP/1.1 200

{
  "data": [
    {
      "id": "8e1f2a3b-4c5d-4e6f-8a9b-0c1d2e3f4a5b",
      "deleted_at": "2026-11-01T17:02:44.000000+00:00"
    }
  ],
  "next_cursor": null
}

Data formats

The objects inquiries, records and responses are made of. The OpenAPI file lists them under components.schemas with the same names.

Requesting person Requester

The person or institution asking for transport — the operator replies to them. Email or phone is required.

FieldTypeRequiredValuesDescription
rolestringnoone of: self, relative, institution, payer
may be null
Who is asking: self (the passenger), relative, institution (e.g. a care home or workshop) or payer (the cost bearer).
first_namestringnoat most 100 characters
may be null
First name of the requesting person.
last_namestringyes1–100 charactersLast name of the requesting person, or a contact name at the institution.
emailstringnoat most 254 characters
format email
may be null
Email address for replies. Email or phone is required.
phonestringnoat most 50 characters
may be null
Phone number for call-backs. Email or phone is required.
organizationstringnoat most 255 characters
may be null
Name of the institution, if the request comes from one.
postal_addressAddressnomay be nullPostal address of the requesting person or institution for the invoice; the operator uses it when creating a new customer. If any part is given, street and city are required.

Passenger (inquiry) Passenger

A person to be transported; becomes one item of the inquiry.

FieldTypeRequiredValuesDescription
first_namestringnoat most 100 characters
may be null
First name of the passenger.
last_namestringnoat most 100 characters
may be null
Last name of the passenger.
birth_yearintegerno1900–2100
may be null
Year of birth — helps the operator to tell passengers with the same name apart.
pickupAddressnomay be nullWhere the passenger is picked up. If any part is given, street and city are required.
dropoffAddressnomay be nullWhere the passenger is taken, e.g. a school, workshop or day care centre. If any part is given, street and city are required.
trip_kindstringnoone of: single, recurring
may be null
single for a one-off trip, recurring for a regular transport (e.g. every school day).
requested_datestringnomay be nullDesired date as YYYY-MM-DD (a real calendar day); for a recurring transport the first day.
requested_time_windowstringnoat most 80 characters
may be null
Desired time as free text, e.g. 07:30 or arrival by 8:00.
return_tripbooleannomay be nulltrue if a return trip is wanted as well.
return_time_windowstringnoat most 80 characters
may be null
Desired time of the return trip as free text. Rejected together with return_trip: false.
vehicle_preferencestringnoone of: car, van, minibus, bus, special_vehicle
may be null
Preferred vehicle class. A wheelchair ramp is not a preference: set needs.wheelchair instead.
needsNeedsnomay be nullWhat the passenger needs during the trip. Health data (Art. 9 GDPR): send only with consent. Missing or null means none.
payer_hintstringnoat most 200 characters
may be null
Who is expected to pay, as free text (e.g. youth welfare office, health insurance). The operator checks it.

Address Address

An address. Street and city are required as soon as any part is given; house number and postal code are optional.

FieldTypeRequiredValuesDescription
streetstringnoat most 255 characters
may be null
Street name.
house_numberstringnoat most 20 characters
may be null
House number, with suffix if any (12a).
zipstringnoat most 20 characters
may be null
Postal code.
citystringnoat most 100 characters
may be null
Town or city.

Needs Needs

Needs during the trip. Every flag is optional; true marks a need, missing or false means no.

FieldTypeRequiredValuesDescription
wheelchairbooleannomay be nullTravels seated in the wheelchair (needs a wheelchair space and a ramp or lift).
wheelchair_transferablebooleannomay be nullUses a wheelchair but can move to a regular seat for the trip.
rollatorbooleannomay be nullBrings a rollator.
stretcherbooleannomay be nullTravels lying on a stretcher.
companionbooleannomay be nullNeeds an escort provided by the transport service.
boarding_assistancebooleannomay be nullNeeds help getting in and out of the vehicle.
private_companionbooleannomay be nullA relative or private companion rides along and takes a seat.
otherstringnoat most 500 characters
may be null
Other needs as free text.

Consent your system obtained from the person before sending (required).

FieldTypeRequiredValuesDescription
givenbooleanyesexactly trueMust be true: the person agreed that the operator processes the data, including the needs (health data).
text_versionstringyes1–36 charactersVersion of the consent text the person saw, e.g. 2026-11. Stored with the inquiry as proof.
given_atstringnoformat date-time
may be null
When consent was given (ISO 8601 with offset). Defaults to the time of receipt; must not be in the future.

Customer Customer

A customer of the operator: institution, authority, cost bearer or private person.

FieldTypeRequiredValuesDescription
idstringyesID of the customer.
numberstringyesmay be nullCustomer number assigned by the operator.
namestringyesName of the customer, e.g. the institution or the person.
typestringyesone of: agency, carrier, institution, private, caretaker
may be null
agency (public authority, e.g. youth welfare office), carrier (cost bearer, e.g. health insurance), institution (e.g. workshop, school, day care centre), private (private person), caretaker (legal guardian). null when not set.
statusstringyesone of: active, inactive, archived
may be null
active, inactive or archived. null when not set.
emailstringyesmay be nullEmail address.
phonestringyesmay be nullPhone number.
faxstringyesmay be nullFax number.
websitestringyesmay be nullWebsite.
postal_addressStoredAddressyesmay be nullPostal address, e.g. for invoices.
physical_addressStoredAddressyesmay be nullPhysical address, if it differs from the postal address — e.g. where passengers are dropped off.
notesstringyesmay be nullNotes of the operator.
created_atstringyesmay be nullWhen the customer was created (ISO 8601 with offset).
updated_atstringyesWhen the customer was last changed (ISO 8601 with offset).
billingCustomerBillingnoBilling data. Only with include=billing and the scope accounting.read.

Billing data (customer) CustomerBilling

Billing data. Only with include=billing and the scope accounting.read.

FieldTypeRequiredValuesDescription
tax_idstringyesmay be nullTax number.
vat_idstringyesmay be nullVAT ID.
buyer_referencestringyesmay be nullBuyer reference for e-invoices (Leitweg-ID in Germany).
payment_methodstringyesmay be nullPayment method as entered by the operator, free text.
bank_accountBankAccountyesmay be nullBank account; null when none is stored.

Bank account BankAccount

Bank account as stored. Empty parts are null.

FieldTypeRequiredValuesDescription
account_holderstringyesmay be nullAccount holder.
bank_namestringyesmay be nullName of the bank.
ibanstringyesmay be nullIBAN.
bicstringyesmay be nullBIC.

Stored address StoredAddress

Address as stored in Fleetiva. Empty parts are null.

FieldTypeRequiredValuesDescription
streetstringyesmay be nullStreet.
house_numberstringyesmay be nullHouse number.
zipstringyesmay be nullPostal code.
citystringyesmay be nullCity.
countrystringyesmay be nullCountry as stored, e.g. DE or Deutschland.
address_line_2stringyesmay be nullAddress supplement, e.g. building or floor.
po_boxstringyesmay be nullPO box, instead of a street.
departmentstringyesmay be nullDepartment.
attentionstringyesmay be nullFor the attention of a person.
referencestringyesmay be nullReference of the addressee, e.g. a file number.

Passenger (master data) PassengerRecord

A passenger of the transport service.

FieldTypeRequiredValuesDescription
idstringyesID of the passenger.
numberstringyesmay be nullPassenger number assigned by the operator.
statusstringyesone of: active, inactive, archived
may be null
active, inactive or archived. null when not set.
self_payerbooleanyesThe passenger pays for their trips themselves: they belong to the system customer for self-payers (customer.number SELBSTZAHLER), however often they ride.
salutationstringyesone of: mr, ms, diverse
may be null
mr, ms or diverse. null when not set.
first_namestringyesmay be nullFirst name.
last_namestringyesLast name.
date_of_birthstringyesmay be nullDate of birth (YYYY-MM-DD).
emailstringyesmay be nullEmail address.
phone_numberslist of objectyesPhone numbers with a label, e.g. mobile or mother. Empty list when none.
phone_numbers[].labelstringyesmay be nullWhose number, e.g. mother.
phone_numbers[].numberstringyesPhone number.
home_addressStreetAddressyesmay be nullHome address — where the passenger is usually picked up.
customerobjectyesmay be nullThe customer (cost bearer) the passenger belongs to. Read the customer itself to sync it.
customer.idstringyesID of the customer.
customer.namestringyesName of the customer at the time of reading.
customer.numberstringyesmay be nullCustomer number.
reference_codeslist of objectyesReference codes of cost bearers, as printed on documents. Empty list when none.
reference_codes[].typestringyesKind of reference, e.g. approval number.
reference_codes[].valuestringyesValue.
needsPassengerNeedsyesWhat the passenger needs on the trip — vehicle, seat and help. Same keys as needs of an inquiry.
seat_preferencestringyesone of: no_preference, front, rear
may be null
front, rear or no_preference. null when not recorded.
boarding_minutesnumberyesmay be nullMinutes the passenger usually needs to board.
pickup_earlieststringyesmay be nullUsual earliest pickup time (HH:MM, local time of the operator).
pickup_lateststringyesmay be nullUsual latest pickup time (HH:MM, local time of the operator).
notesstringyesmay be nullNotes of the operator.
created_atstringyesmay be nullWhen the passenger was created (ISO 8601 with offset).
updated_atstringyesWhen the passenger was last changed (ISO 8601 with offset).
healthPassengerHealthnoHealth data (Art. 9 GDPR). Only for API keys with the scope health_data and include=health. Every passenger delivered with this group is logged for the operator.
billingPassengerBillingnoBilling data. Only with include=billing and the scope accounting.read.

Needs (passenger) PassengerNeeds

What the passenger needs on the trip — vehicle, seat and help. Same keys as needs of an inquiry.

FieldTypeRequiredValuesDescription
wheelchairbooleanyesTravels seated in the wheelchair (needs a wheelchair space and a ramp or lift). false when not recorded.
wheelchair_transferablebooleanyesUses a wheelchair but can move to a regular seat for the trip. false when not recorded.
rollatorbooleanyesBrings a rollator. false when not recorded.
walkerbooleanyesUses a walking frame. false when not recorded.
canebooleanyesUses a walking stick. false when not recorded.
ambulatorybooleanyesCan walk without help. false when not recorded.
stretcherbooleanyesTravels lying on a stretcher. false when not recorded.
oxygenbooleanyesNeeds oxygen during the trip (needs an oxygen-equipped vehicle). false when not recorded.
companionbooleanyesNeeds an escort provided by the transport service. false when not recorded.
boarding_assistancebooleanyesNeeds help getting in and out of the vehicle. false when not recorded.
assistancebooleanyesNeeds support during the trip. false when not recorded.
service_animalbooleanyesTravels with an assistance animal. false when not recorded.
bicyclebooleanyesBrings a bicycle. false when not recorded.

Health data (passenger) PassengerHealth

Health data (Art. 9 GDPR). Only for API keys with the scope health_data and include=health. Every passenger delivered with this group is logged for the operator.

FieldTypeRequiredValuesDescription
medical_notesstringyesmay be nullMedical notes for the trip.
allergiesstringyesmay be nullAllergies.
emergency_contactEmergencyContactyesmay be nullEmergency contact; null when none is stored.
needs_notesstringyesmay be nullFree text about the needs, e.g. how to help with boarding.
autismbooleanyesThe passenger is autistic. false when not recorded.
visual_impairmentbooleanyesThe passenger has a visual impairment. false when not recorded.
cognitive_impairmentbooleanyesThe passenger has a cognitive impairment. false when not recorded.

Emergency contact EmergencyContact

Emergency contact as stored. Empty parts are null.

FieldTypeRequiredValuesDescription
namestringyesmay be nullName of the contact person.
relationshipstringyesmay be nullRelationship to the passenger, e.g. mother.
phonestringyesmay be nullPhone number.

Billing data (passenger) PassengerBilling

Billing data. Only with include=billing and the scope accounting.read.

FieldTypeRequiredValuesDescription
namestringyesmay be nullName on invoices, if it differs from the passenger.
addressStreetAddressyesmay be nullBilling address; null when none is stored. If neither name nor address is set, documents are addressed to the passenger at home_address.
default_tax_ratenumberyesmay be nullDefault VAT rate in percent for documents of this passenger.

Address StreetAddress

Address with street, house number, postal code, city and country. Empty parts are null.

FieldTypeRequiredValuesDescription
streetstringyesmay be nullStreet.
house_numberstringyesmay be nullHouse number.
zipstringyesmay be nullPostal code.
citystringyesmay be nullCity.
countrystringyesmay be nullCountry as stored, e.g. DE or Deutschland.

Deleted record DeletedRecord

A record that no longer exists. Remove it from your copy.

FieldTypeRequiredValuesDescription
idstringyesID of the deleted record.
deleted_atstringyesWhen it was deleted (ISO 8601 with offset).

Error response Problem

Error response (RFC 9457, application/problem+json).

FieldTypeRequiredValuesDescription
typestringyesStable identifier of the problem: tag:fleetiva.de,2026:api/problems/<code>.
titlestringyesShort English summary.
statusintegeryes-9007199254740991–9007199254740991HTTP status code, same as the response status.
codestringyesone of: unauthorized, forbidden, access_inactive, not_found, invalid_input, idempotency_key_reused, payload_too_large, unsupported_media_type, rate_limited, unavailableMachine-readable error code — branch on this.
request_idstringyesID of this request, also in the X-Request-Id header. Quote it when you contact support.
issueslist of objectnoOnly with invalid_input: what is wrong where. Never repeats the submitted values.
issues[].pathstringyesField path such as passengers.0.pickup.city or idempotency_key; empty for the whole body.
issues[].messagestringyesone of: required, too_short, too_long, too_few, too_many, too_small, too_large, invalid_type, invalid_value, invalid_format, unknown_field, invalid_json, invalid_characters, contact_required, address_incomplete, invalid_date, in_future, return_time_requires_return_trip, invalid_cursor, sync_window_exceededFixed reason code — branch on this. The list only grows; treat an unknown code like invalid_value.
issues[].limitnumbernoWith too_short, too_long, too_few, too_many, too_small, too_large: the limit that was broken.
retry_after_secondsintegerno1–9007199254740991Only with rate_limited: seconds to wait, same as the Retry-After header.