Where it is stored, how to export it and how to switch
This page provides the information required by the EU Data Act (Regulation (EU) 2023/2854, Articles 26, 28 and 29). The Subscription Agreement refers to it in Article 13.4 and Annex A. Your data remains yours: you can export it at any time, free of charge.
1. Where is your data stored?
The BIQSDRIVE 27 database, with all the data of your driving school or training centre, your students, trainees and business customers, is hosted by a Belgian hosting provider in data centres in Belgium. A few supporting services use other suppliers:
| Component | Supplier | Location of processing | Jurisdiction over the infrastructure |
|---|---|---|---|
| Platform and database (production) | Level 27 BV, Hasselt (BE 0890.439.412) | Belgium | Belgium (European Union) |
| Backups | Level 27 BV | Separate location within the European Economic Area | EEA Member State |
| Sending text messages (SMS) | Spryng B.V., Amsterdam | Frankfurt (Germany) | Germany (European Union) |
| Helpdesk and support tickets | Odoo SA, Grand-Rosière (BE 0477.472.701) | Belgium and France; backups in France, the Netherlands and Sweden | Member States of the European Union |
| AI agents (AI support agent, admin agent and planning agent) | Anthropic Ireland, Limited, with processing by Anthropic PBC | United States | United States (contract under Irish law; transfer under the standard contractual clauses of the European Commission) |
| Bank Connection (Payment Automation) | Isabel NV (Ponto), Brussels (BE 0455.530.509) | See the Isabel NV privacy statement | See the Isabel NV privacy statement |
| Payments through Pay. (online, SoftPOS and payment terminals) | Pay. (TinTel B.V.), Spijkenisse | See the Pay. privacy statement | See the Pay. privacy statement |
| Emails sent from the Platform | Your organisation's own mail server (Google Workspace or Microsoft 365) | Under your own contract with Google or Microsoft | Under your own contract |
| Reviews and surveys | The service your organisation connects itself, with its own account: Tally, Klantenvertellen or Google (Google Business Profile) | Under your own agreement with that service and its privacy statement | Under your own agreement |
| Flexi-Dimona declarations (HR and time tracking module, once available) | The Belgian National Social Security Office (RSZ), which receives the declarations that BIQSDRIVE submits in the name and on the instructions of your organisation, using your organisation's own RSZ access; not a supplier of BIQSDRIVE | Belgium | Belgium (European Union) |
In short: the database and the backups containing your Customer Data are stored in Belgium and the EEA and fall under the jurisdiction of EU Member States. The payments that Payment Automation matches to customers, files and orders are also stored by BIQSDRIVE in Belgium (Level 27); for the processing by Isabel NV (Bank Connection) and Pay. we refer to their privacy statements (see the table). The invitations for reviews and surveys and the opt-outs from review invitations are also stored by BIQSDRIVE in Belgium (Level 27). For Tally and Klantenvertellen, BIQSDRIVE also passes the recipient's name and email address to that service in the invitation, insofar as that service allows it; for Google, the invitation contains only the link. What BIQSDRIVE passes on in this way, and what recipients fill in or publish at Tally, Klantenvertellen or Google, falls under your own agreement with that service and its privacy statement (see the table). The data of the HR and time tracking module, once it is available, such as time records, leave and absences, is also stored by BIQSDRIVE in Belgium (Level 27); BIQSDRIVE submits the flexi-Dimona declarations (the Belgian declarations of employment for flexi-jobs) to the RSZ in the name and on the instructions of your organisation, using your organisation's own RSZ access. The Platform keeps time records and flexi-Dimona declarations for five years; it keeps leave requests, absences (including absences due to illness), unavailability and leave balances for as long as the staff member is active. Thirty days after your organisation sets the staff member to inactive, the Platform takes that data out of use and shows an absence due to illness in the calendar only as an absence; up to and including the ninetieth day after the staff member was set to inactive, your organisation can restore the data by setting the staff member to active again, after which the Platform erases it permanently. Apart from this, only the processing by the AI agents (your questions, their answers and suggestions, and the data they look up for this within the user's permissions) takes place in the United States, where it falls under US law. The agents never retrieve national register numbers, INSZ numbers (Belgian social security numbers), identity documents, full addresses, dates of birth, internal notes, account numbers or imported bank transactions, nor the type of or reason for an absence, comments on leave requests, corrections to time records or Dimona declarations; the planning agent only sees that a staff member is absent or unavailable. As a location, the planning agent only uses the municipality or the postcode. When you talk to the agents, do not share any data about students or trainees that is not needed to answer your question.
The full list of parties that process personal data on our behalf is available at www.biqsdrive.com/en/sub-processors.
2. Protection against access by foreign governments
This section concerns data that does not relate to a person, such as your organisation's settings, rates and planning rules (non-personal data, Articles 28 and 32 of the Data Act). For personal data, the GDPR applies, together with the safeguards in section 1 and on the Sub-processors page. The Data Act requires us to describe how we prevent governments outside the European Union from gaining access to data in breach of European or Belgian law.
Technical measures
- The database and the backups are hosted by a Belgian provider, in data centres in the European Economic Area.
- Encryption of all traffic (TLS) and of databases and backups at rest.
- Strict access control with personal accounts, multi-factor authentication for administrators and logging of administrative actions.
- The AI agents only see the data that the user is allowed to see and never retrieve national register numbers, INSZ numbers, identity documents, full addresses, dates of birth, internal notes, account numbers or imported bank transactions, nor the type of or reason for an absence, comments on leave requests, corrections to time records or Dimona declarations. As a location, the planning agent only uses the municipality or the postcode. This keeps what is processed in the United States limited to what is necessary.
Organisational measures
- Only authorised staff bound by a duty of confidentiality have access to production data, and only insofar as necessary.
- Every request from a government for access to data is subject to a legal review. We only release data on the basis of a binding decision founded on European or Belgian law, or on an international agreement that provides for it, and then only the minimum data required.
- We notify the customer concerned before we release any data, except where the request serves law enforcement, and for as long as necessary to safeguard it.
Contractual measures
- Our suppliers are contractually bound to process data only on our instructions and to inform us of requests from governments, insofar as the law allows.
- Transfers outside the European Economic Area by the AI agents are covered by the standard contractual clauses of the European Commission. For Isabel NV and Pay. we refer to their privacy statements (section 1).
If we receive a request from a government outside the European Union for access to your data, we only comply with it within the limits of Article 32 of the Data Act, and we inform you in advance, except where the request serves law enforcement, and for as long as necessary to safeguard it.
3. Exporting your data
The Administrator of your Account can make an export at any time, at no extra cost, using the export function in the Platform. While your Account is suspended, you can request an export at info@biqsdrive.com; you will receive it within five working days. You can also make an export at any time during the free trial period.
| Category | Content | Format |
|---|---|---|
| 1. Students, trainees and candidates | Identification, contact and file details, supervisors | CSV/XLSX and JSON |
| 2. Enrolments and planning | Enrolments, packages, courses, lesson planning, calendar, availability | CSV/XLSX and JSON |
| 3. Lessons and follow-up | Recorded lessons and training hours, evaluations, digital lesson follow-up | CSV/XLSX and JSON |
| 4. Exams and certifications | Bookings, notices to attend, results and certifications as recorded in the Platform | CSV/XLSX and JSON |
| 5. Resources | Instructors, vehicles, rooms and locations | CSV/XLSX and JSON |
| 6. Business customers | Business customers, contact persons, participants and training programmes | CSV/XLSX and JSON |
| 7. Financial | Invoices, payments (with their source: a payment through Pay., a bank transfer or cash), matches, reminders and balances kept in the Platform | CSV/XLSX and JSON; invoices in PDF |
| 8. Documents | Documents uploaded by your organisation or generated by the Platform (certificates, contracts) | Original format or PDF |
| 9. Configuration and metadata | Rates, lesson types, templates, settings; creation and modification dates, author | JSON |
| 10. Audit trail | The change history that the Platform keeps for each record (time, user, field changed) | CSV/JSON |
| 11. Reviews and surveys | Scheduled and sent invitations for reviews and surveys (recipient, time, service and status) and opt-outs from review invitations | CSV/XLSX and JSON |
| 12. HR and time tracking | Once the module is available: employment status of staff members, leave types and balances, leave requests, absences and unavailability and the decisions on them, time records with corrections and closed periods, flexi-Dimona declarations with the response from the RSZ | CSV/XLSX and JSON |
4. Register of data structures and formats
Every export comes with a description of the data structure (data dictionary). For each export file, the register describes:
- the fields, with their name, description, data type and whether the field is mandatory;
- the keys and the relationships between the files (for example between student, enrolment and lesson);
- the permitted values for drop-down lists (such as licence categories and lesson types);
- the version number and the date of the last change.
You will find the current register of data structures and formats below. You can also request it free of charge at data@biqsdrive.com.
Open a category to see the files and their fields. Fields ending in _id refer to the key of another file; the relations are listed under each table. "Required" means that the field is always filled in. Dates and times follow ISO 8601.
1. Students, trainees and candidates (CSV/XLSX and JSON)
students: Students and trainees, with their identification, contact and file details. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
branch_id | Branch the student or trainee belongs to. | integer | Yes |
first_name | First name. | text, max. 128 characters | Yes |
last_name | Surname. | text, max. 128 characters | Yes |
email | Email address. | text, max. 180 characters | No |
phone | Phone number. | text, max. 32 characters | No |
birth_date | Date of birth. | date | No |
birth_place | Place of birth. | text, max. 128 characters | No |
gender | Gender. Allowed values: male, female, other. | text, max. 8 characters | No |
nationality | Nationality, as a two-letter country code. | text, max. 2 characters | No |
national_id | National register number (for the Netherlands: citizen service number, BSN). | text, max. 32 characters | No |
id_card_number | Identity card number. | text, max. 32 characters | No |
id_card_valid_until | Expiry date of the identity card. | date | No |
identity_verified_at | Time the identity details were last confirmed through itsme®. | date and time | No |
identity_verified_via | Service used to confirm the identity. Allowed values: itsme (itsme®). | text, max. 16 characters | No |
street | Street. | text, max. 255 characters | No |
house_number | House number. | text, max. 16 characters | No |
box | Box number within the building (not a PO box). | text, max. 16 characters | No |
postal_code | Postcode. | text, max. 16 characters | No |
city | Municipality. | text, max. 128 characters | No |
country_code | Country, as a two-letter country code (ISO 3166-1), for example BE. | text, max. 2 characters | Yes |
lang | Language for communication. Allowed values: nl (Dutch), fr (French), en (English), de (German). | text, max. 2 characters | Yes |
status | Status of the file. Allowed values: new, active, paused, completed, cancelled. | text, max. 16 characters | Yes |
blocked | Blocked manually: no lessons can be confirmed. | yes/no | Yes |
block_reason | Reason for the block. | text, max. 255 characters | No |
medical_exam_date | Date of the medical examination. | date | No |
registration_source | How the student or trainee was created. Allowed values: manual (manually by your organisation), online (through an online enrolment), import (through an import). | text, max. 16 characters | Yes |
notes | Free notes from your organisation. | text | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: branch_id refers to branches.id.
student_photos: Passport photo from the electronic identity card, if it was provided through itsme®. Key: student_id.
| Field | Description | Type | Required |
|---|---|---|---|
student_id | Key of the student or trainee. | integer | Yes |
mime_type | File type of the image (for example image/jpeg). | text, max. 32 characters | Yes |
data | The image. | file (binary) | Yes |
source | Who provided the photo. Allowed values: itsme (itsme®). | text, max. 16 characters | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: student_id refers to students.id.
portal_users: Accounts of students and trainees for the student and trainee portal, without passwords or other authentication data. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
student_id | Key of the student or trainee. | integer | Yes |
email | Email address used to log in. | text, max. 180 characters | Yes |
lang | Language for communication. Allowed values: nl (Dutch), fr (French), en (English), de (German). | text, max. 2 characters | Yes |
enabled | Account enabled. | yes/no | Yes |
totp_enabled_at | Time two-factor authentication was enabled. | date and time | No |
invited_at | Time of the invitation. | date and time | No |
activated_at | Time the first password was chosen. | date and time | No |
last_login_at | Time of the last login. | date and time | No |
password_changed_at | Time of the last password change. | date and time | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: student_id refers to students.id.
2. Enrolments and planning (CSV/XLSX and JSON)
enrollments: Enrolments of students and trainees for a category, with the package of hours. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
subscription_number | Enrolment number, for example GNT-2026-0042 (branch code, year, sequence number). | text, max. 32 characters | No |
student_id | Key of the student or trainee. | integer | Yes |
license_type_id | Key of the category (licence category or course). | integer | Yes |
branch_id | Key of the branch. | integer | Yes |
state | Status of the enrolment. Allowed values: enrolled, in_progress (in progress), exam_ready (ready for the exam), passed, failed, expired, cancelled. | text, max. 16 characters | Yes |
enrollment_date | Date of the enrolment. | date | Yes |
hours_required | Number of hours in the package (topped up with each order of hours). | decimal number, 2 decimals | Yes |
hours_completed | Number of hours of completed lessons. | decimal number, 2 decimals | Yes |
hours_planned | Number of hours of planned lessons not yet completed. | decimal number, 2 decimals | Yes |
preferred_instructor_id | Preferred instructor (key from instructors). | integer | No |
preferred_vehicle_id | Preferred vehicle (key from vehicles). | integer | No |
order_id | Order the enrolment came from (key from sales_orders). | integer | No |
theory_passed_at | Date the theory exam was passed. | date | No |
automatic_transmission | The exam is taken with an automatic gearbox. | yes/no | Yes |
bijlage4 | Belgian annex 4 (bijlage 4, training certificate): no provisional licence model is needed for the exam. | yes/no | Yes |
notes | Free notes from your organisation. | text | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: student_id refers to students.id; license_type_id refers to license_types.id; branch_id refers to branches.id; preferred_instructor_id refers to instructors.id; preferred_vehicle_id refers to vehicles.id; order_id refers to sales_orders.id.
provisional_licenses: Provisional licences linked to an enrolment. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
enrollment_id | Key of the enrolment. | integer | Yes |
number | Number of the provisional licence. | text, max. 64 characters | Yes |
validity_months | Period of validity in months. Allowed values: 12 (12 months), 18 (18 months), 36 (36 months). | integer | Yes |
issue_date | Date of issue. | date | Yes |
expiry_date | Expiry date (issue date plus period of validity). | date | Yes |
active | The provisional licence is in use. | yes/no | Yes |
note | Free note from your organisation. | text | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: enrollment_id refers to enrollments.id.
availabilities: Availability per weekday of students, trainees and instructors. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
student_id | Student or trainee (key from students); empty for an instructor's availability. | integer | No |
instructor_id | Instructor (key from instructors); empty for a student's or trainee's availability. | integer | No |
day_of_week | Weekday according to ISO 8601: 1 is Monday, 7 is Sunday. | integer | Yes |
time_from | Start time. | time (HH:MM) | Yes |
time_to | End time. | time (HH:MM) | Yes |
status_id | Key of the availability status. | integer | Yes |
valid_from | Valid from (empty: no start date). | date | No |
valid_until | Valid until and including (empty: no end date). | date | No |
note | Free note from your organisation. | text, max. 255 characters | No |
Relations: student_id refers to students.id; instructor_id refers to instructors.id; status_id refers to availability_statuses.id.
scheduled_slots: The calendar: every planned lesson, session, exam and other appointment, with the assigned instructor, vehicle, room and student or trainee. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
type | Type of appointment. Allowed values: lesson, course_session (course session), exam, other (other appointment). | text, max. 16 characters | Yes |
branch_id | Key of the branch. | integer | Yes |
instructor_id | Key of the instructor or trainer. | integer | No |
vehicle_id | Key of the vehicle. | integer | No |
room_id | Key of the room. | integer | No |
student_id | Key of the student or trainee. | integer | No |
license_type_id | Key of the category (licence category or course). | integer | No |
start_at | Start (date and time). | date and time | Yes |
end_at | End (date and time). | date and time | Yes |
block_start_at | Start of the period in which the instructor, vehicle, room and student are occupied (for an exam, including travel time). | date and time | Yes |
block_end_at | End of that period. | date and time | Yes |
lesson_id | Key of the lesson. | integer | No |
course_session_id | Key of the course session. | integer | No |
exam_id | Key of the exam. | integer | No |
ignore_conflict | Planned anyway: conflicts with this appointment were accepted. | yes/no | Yes |
title | Title in the calendar. | text, max. 255 characters | Yes |
category | Category of another appointment. Once the HR and time tracking module is available: thirty days after your organisation sets a staff member to inactive (staff_members.inactive_since), the Platform changes the category of their absence blocks from sick (sick) to other (other), with a neutral title, or deletes the blocks that are no longer needed for the planning; the lessons and other appointments remain unchanged, and up to and including the ninetieth day after that date the original category can be restored (Article 6.10 of the Subscription Agreement). Allowed values: holiday (leave), office, sick, other. | text, max. 32 characters | No |
show_on_ride_sheet | Another appointment is printed on the instructor's trip sheet. | yes/no | Yes |
Relations: branch_id refers to branches.id; instructor_id refers to instructors.id; vehicle_id refers to vehicles.id; room_id refers to rooms.id; student_id refers to students.id; license_type_id refers to license_types.id; lesson_id refers to lessons.id; course_session_id refers to course_sessions.id; exam_id refers to exams.id.
courses: Courses and group courses. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
branch_id | Key of the branch. | integer | Yes |
course_type_id | Key of the course type. | integer | Yes |
name | Name. | text, max. 255 characters | Yes |
room_id | Key of the room. | integer | No |
product_id | Key of the product. | integer | No |
price | Price. | decimal number, 2 decimals | Yes |
capacity_min | Minimum number of participants. | integer | Yes |
capacity_max | Maximum number of participants. | integer | Yes |
min_attendance_pct | Required minimum attendance, as a percentage. | decimal number, 2 decimals | Yes |
state | Status of the course. Allowed values: draft, open, full (fully booked), in_progress (in progress), done (finished), cancelled. | text, max. 16 characters | Yes |
notes | Free notes from your organisation. | text | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: branch_id refers to branches.id; course_type_id refers to course_types.id; room_id refers to rooms.id; product_id refers to products.id.
course_license_types: Categories a course applies to. Key: course_id and license_type_id.
| Field | Description | Type | Required |
|---|---|---|---|
course_id | Key of the course. | integer | Yes |
license_type_id | Key of the category (licence category or course). | integer | Yes |
Relations: course_id refers to courses.id; license_type_id refers to license_types.id.
course_instructors: Instructors or trainers of a course. Key: course_id and instructor_id.
| Field | Description | Type | Required |
|---|---|---|---|
course_id | Key of the course. | integer | Yes |
instructor_id | Key of the instructor or trainer. | integer | Yes |
Relations: course_id refers to courses.id; instructor_id refers to instructors.id.
course_sessions: Sessions (lesson times) of a course. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
course_id | Key of the course. | integer | Yes |
sequence | Sequence number of the session within the course. | integer | Yes |
session_type | Type of session. Allowed values: theory, practical. | text, max. 16 characters | Yes |
start_at | Start (date and time). | date and time | Yes |
end_at | End (date and time). | date and time | Yes |
room_id | Key of the room. | integer | No |
max_participants | Maximum number of participants for this session. | integer | No |
state | Status of the session. Allowed values: scheduled (planned), in_progress (in progress), done (finished), cancelled. | text, max. 16 characters | Yes |
note | Free note from your organisation. | text | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: course_id refers to courses.id; room_id refers to rooms.id.
course_session_instructors: Instructors or trainers of a session. Key: course_session_id and instructor_id.
| Field | Description | Type | Required |
|---|---|---|---|
course_session_id | Key of the course session. | integer | Yes |
instructor_id | Key of the instructor or trainer. | integer | Yes |
Relations: course_session_id refers to course_sessions.id; instructor_id refers to instructors.id.
registration_submissions: Online enrolments through an enrolment form, with all the details and answers entered. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
wizard_id | Key of the enrolment form. | integer | No |
entry_point_id | Key of the enrolment link. | integer | No |
wizard_name | Name of the form at the time of enrolment. | text, max. 120 characters | Yes |
entry_point_name | Name of the enrolment link at the time of enrolment. | text, max. 120 characters | Yes |
data | All the details collected by the steps of the form. | JSON structure | Yes |
answers | Answers to the custom questions, with each question as it was worded at the time. | JSON structure | Yes |
current_step | Furthest step reached. | integer | Yes |
state | Status of the enrolment. Allowed values: in_progress (in progress), completed, expired. | text, max. 16 characters | Yes |
lang | Language for communication. Allowed values: nl (Dutch), fr (French), en (English), de (German). | text, max. 2 characters | Yes |
student_id | Key of the student or trainee. | integer | No |
order_id | Key of the order. | integer | No |
pay_now | The person enrolling chose to pay online straight away (or the form required it). | yes/no | Yes |
completed_at | Time the enrolment was completed. | date and time | No |
possible_duplicates | Existing students or trainees who may be the same person, detected at enrolment. | JSON structure | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: wizard_id refers to registration_wizards.id; entry_point_id refers to registration_entry_points.id; student_id refers to students.id; order_id refers to sales_orders.id.
3. Lessons and follow-up (CSV/XLSX and JSON)
lessons: Recorded practical lessons, with the digital lesson follow-up (odometer reading, feedback and points for attention). Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
branch_id | Key of the branch. | integer | Yes |
instructor_id | Key of the instructor or trainer. | integer | Yes |
vehicle_id | Key of the vehicle. | integer | No |
license_type_id | Key of the category (licence category or course). | integer | Yes |
enrollment_id | Enrolment whose hours the lesson uses (key from enrollments). | integer | No |
start_at | Start (date and time). | date and time | Yes |
end_at | End (date and time). | date and time | Yes |
sequence | Lesson number within the enrolment, assigned on confirmation. | integer | No |
state | Status of the lesson. Allowed values: draft, pending_approval (awaiting the student's agreement), confirmed, in_progress (in progress), done (completed), cancelled. | text, max. 20 characters | Yes |
source | How the lesson was created. Allowed values: manual (manually in the planning), portal (through the portal), online, auto_plan (automatic planning), customer_portal (by the student in the student portal). | text, max. 16 characters | Yes |
price | Price of the lesson. | decimal number, 2 decimals | Yes |
cancel_reason_id | Key of the cancellation reason. | integer | No |
cancel_note | Explanation of the cancellation. | text | No |
cancel_fee | Cancellation fee charged. | decimal number, 2 decimals | No |
cancelled_at | Time of the cancellation. | date and time | No |
note | Free note from your organisation. | text | No |
created_by | User who created the lesson (key from users). | integer | No |
booking_decision | Decision on a lesson the student booked themselves. Allowed values: approved, rejected. | text, max. 16 characters | No |
booking_reviewed_at | Time of that decision. | date and time | No |
booking_reviewed_by | User who decided (key from users). | integer | No |
booking_rejection_reason | Reason for the rejection. | text | No |
previous_start_at | Original start, while a proposed new time is awaiting a reply. | date and time | No |
previous_end_at | Original end, while a proposed new time is awaiting a reply. | date and time | No |
odometer_start | Odometer reading of the vehicle at the start (km). | integer | No |
odometer_end | Odometer reading of the vehicle at the end (km). | integer | No |
started_at | Time the instructor recorded the start. | date and time | No |
finished_at | Time the instructor recorded the end. | date and time | No |
started_by | User who recorded the start (key from users). | integer | No |
finished_by | User who recorded the end (key from users). | integer | No |
previous_lesson_feedback | Filled in at the start: how the previous lesson or exam went. | text | No |
feedback | Filled in at the end: how the lesson or exam went. | text | No |
attention_points | Filled in at the end: what the next lesson will work on. | text | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: branch_id refers to branches.id; instructor_id refers to instructors.id; vehicle_id refers to vehicles.id; license_type_id refers to license_types.id; enrollment_id refers to enrollments.id; cancel_reason_id refers to cancel_reasons.id; created_by refers to users.id; booking_reviewed_by refers to users.id; started_by refers to users.id; finished_by refers to users.id.
lesson_students: Students or trainees of a lesson. Key: lesson_id and student_id.
| Field | Description | Type | Required |
|---|---|---|---|
lesson_id | Key of the lesson. | integer | Yes |
student_id | Key of the student or trainee. | integer | Yes |
Relations: lesson_id refers to lessons.id; student_id refers to students.id.
lesson_signatures: Signatures of the student and the instructor for a lesson. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
lesson_id | Key of the lesson. | integer | Yes |
role | Who signed. Allowed values: student (student or trainee), instructor. | text, max. 16 characters | Yes |
student_id | Student or trainee who signed (key from students). | integer | No |
instructor_id | Instructor who signed (key from instructors). | integer | No |
signer_name | Name of the signer, as at the time of signing. | text, max. 255 characters | Yes |
data | The signature as a PNG image. | file (binary) | Yes |
sha256 | SHA-256 checksum of the image. | text, max. 64 characters | Yes |
signed_at | Time of the signature. | date and time | Yes |
captured_by | User on whose device the signature was made (key from users). | integer | No |
ip_address | IP address of the device at the time of signing. | text, max. 45 characters | No |
user_agent | Browser and device at the time of signing (user agent). | text, max. 255 characters | No |
Relations: lesson_id refers to lessons.id; student_id refers to students.id; instructor_id refers to instructors.id; captured_by refers to users.id.
course_enrollments: Participation of students and trainees in a course, with attendance and result. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
course_id | Key of the course. | integer | Yes |
student_id | Key of the student or trainee. | integer | Yes |
enrollment_id | Key of the enrolment. | integer | No |
order_line_id | Key of the order line. | integer | No |
state | Status of the participation. Allowed values: enrolled, attending (attending the course), completed, failed, cancelled. | text, max. 16 characters | Yes |
result | Result. Allowed values: pending (not yet known), pass (passed), fail (failed), absent. | text, max. 8 characters | Yes |
attendance_rate | Attendance as a percentage of the sessions held so far. | decimal number, 2 decimals | Yes |
attendance | Attendance per session: the key of the session with yes or no. | JSON structure | Yes |
certificate_issued | The certificate was issued. | yes/no | Yes |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: course_id refers to courses.id; student_id refers to students.id; enrollment_id refers to enrollments.id; order_line_id refers to sales_order_lines.id.
4. Exams and certifications (CSV/XLSX and JSON)
exams: Exam bookings and results as recorded in the Platform, with the follow-up of a practical exam. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
enrollment_id | Key of the enrolment. | integer | Yes |
student_id | Key of the student or trainee. | integer | Yes |
branch_id | Key of the branch. | integer | Yes |
exam_center_id | Key of the exam centre. | integer | Yes |
exam_slot_id | Key of the exam slot. | integer | No |
exam_type | Type of exam. Allowed values: theory, practical, medical. | text, max. 16 characters | Yes |
date_at | Date and start time of the exam. | date and time | Yes |
duration_hours | Duration in hours. | decimal number, 2 decimals | Yes |
end_at | End (date and time). | date and time | Yes |
travel_before_minutes | Travel time from the branch to the exam centre, in minutes. | integer | Yes |
travel_after_minutes | Travel time back to the branch, in minutes. | integer | Yes |
state | Status of the booking. Allowed values: draft, booked, done (taken), cancelled. | text, max. 16 characters | Yes |
result | Result. Allowed values: pending (not yet known), passed, failed, absent. | text, max. 8 characters | Yes |
result_date | Date of the result. | date | No |
result_reason | Explanation of the result. | text | No |
examiner_name | Name of the examiner. | text, max. 128 characters | No |
attempt_number | Attempt (1 for the first attempt). | integer | Yes |
instructor_id | Instructor who accompanies the candidate (key from instructors). | integer | No |
vehicle_id | Key of the vehicle. | integer | No |
external_reference | Reference of the exam at the exam centre. | text, max. 128 characters | No |
note | Free note from your organisation. | text | No |
av_guid | Identifier of the appointment at Autoveiligheid. | text, max. 64 characters | No |
av_reservation_only | Only the slot is reserved at the exam centre; the candidate has not yet been submitted. | yes/no | Yes |
mapping_id | Key of the exam type. | integer | No |
odometer_start | Odometer reading of the vehicle at the start (km). | integer | No |
odometer_end | Odometer reading of the vehicle at the end (km). | integer | No |
started_at | Time the instructor recorded the start. | date and time | No |
finished_at | Time the instructor recorded the end. | date and time | No |
started_by | User who recorded the start (key from users). | integer | No |
finished_by | User who recorded the end (key from users). | integer | No |
previous_lesson_feedback | Filled in at the start: how the previous lesson or exam went. | text | No |
feedback | Filled in at the end: how the lesson or exam went. | text | No |
attention_points | Filled in at the end: what the next lesson will work on. | text | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: enrollment_id refers to enrollments.id; student_id refers to students.id; branch_id refers to branches.id; exam_center_id refers to exam_centers.id; exam_slot_id refers to exam_slots.id; instructor_id refers to instructors.id; vehicle_id refers to vehicles.id; mapping_id refers to exam_type_mappings.id; started_by refers to users.id; finished_by refers to users.id.
exam_signatures: Signatures of the candidate and the instructor for a practical exam. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
exam_id | Key of the exam. | integer | Yes |
role | Who signed. Allowed values: student (student or trainee), instructor. | text, max. 16 characters | Yes |
student_id | Student or trainee who signed (key from students). | integer | No |
instructor_id | Instructor who signed (key from instructors). | integer | No |
signer_name | Name of the signer, as at the time of signing. | text, max. 255 characters | Yes |
data | The signature as a PNG image. | file (binary) | Yes |
sha256 | SHA-256 checksum of the image. | text, max. 64 characters | Yes |
signed_at | Time of the signature. | date and time | Yes |
captured_by | User on whose device the signature was made (key from users). | integer | No |
ip_address | IP address of the device at the time of signing. | text, max. 45 characters | No |
user_agent | Browser and device at the time of signing (user agent). | text, max. 255 characters | No |
Relations: exam_id refers to exams.id; student_id refers to students.id; instructor_id refers to instructors.id; captured_by refers to users.id.
exam_slots: Exam slots at an exam centre, entered manually or reserved through Autoveiligheid. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
exam_center_id | Key of the exam centre. | integer | Yes |
license_type_id | Key of the category (licence category or course). | integer | Yes |
exam_type | Type of exam. Allowed values: theory, practical, medical. | text, max. 16 characters | Yes |
start_at | Start (date and time). | date and time | Yes |
end_at | End (date and time). | date and time | Yes |
capacity | Number of places (0 is unlimited). | integer | Yes |
state | Status of the exam slot. Allowed values: available, full (fully booked), past, cancelled. | text, max. 16 characters | Yes |
external_id | Identifier at the exam centre. | text, max. 128 characters | No |
source | Origin. Allowed values: manual (entered manually), av_api (through Autoveiligheid). | text, max. 16 characters | Yes |
av_guid | Identifier of the exam slot at Autoveiligheid. | text, max. 64 characters | No |
mapping_id | Key of the exam type. | integer | No |
Relations: exam_center_id refers to exam_centers.id; license_type_id refers to license_types.id; mapping_id refers to exam_type_mappings.id.
certificate_requests: Requests for certificates and duplicates through the student and trainee portal. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
student_id | Key of the student or trainee. | integer | Yes |
portal_user_id | Portal account that made the request (key from portal_users). | integer | No |
certificate_type | Document requested. Allowed values: enrollment_card (proof of enrolment), theory (theory certificate), practical (practical certificate), course (course certificate), other (other document). | text, max. 16 characters | Yes |
training | Course the request relates to, as chosen by the requester. | text, max. 255 characters | No |
reason | Reason for the request. Allowed values: lost, damaged, extra_copy (extra copy), other. | text, max. 16 characters | Yes |
note | Explanation from the requester. | text | No |
status | Status of the request. Allowed values: requested, handled, rejected. | text, max. 16 characters | Yes |
created_at | Time the record was created. | date and time | Yes |
handled_at | Time the request was handled. | date and time | No |
handled_by | User who handled the request (key from users). | integer | No |
answer | Reply to the requester. | text | No |
Relations: student_id refers to students.id; portal_user_id refers to portal_users.id; handled_by refers to users.id.
5. Resources (CSV/XLSX and JSON)
branches: Branches (locations) of your organisation, with their planning rules. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
company_id | Key of the organisation. | integer | Yes |
name | Name. | text, max. 255 characters | Yes |
code | Short code, unique within the organisation; start of the enrolment numbers. | text, max. 16 characters | Yes |
street | Street. | text, max. 255 characters | No |
house_number | House number. | text, max. 16 characters | No |
box | Box number within the building (not a PO box). | text, max. 16 characters | No |
postal_code | Postcode. | text, max. 16 characters | No |
city | Municipality. | text, max. 128 characters | No |
country_code | Country, as a two-letter country code (ISO 3166-1), for example BE. | text, max. 2 characters | Yes |
email | Email address. | text, max. 180 characters | No |
phone | Phone number. | text, max. 32 characters | No |
timezone | Time zone (IANA), for example Europe/Brussels. | text, max. 64 characters | Yes |
lesson_duration_hours | Default duration of a lesson in hours. | decimal number, 2 decimals | Yes |
exam_duration_hours | Default duration of an exam in hours. | decimal number, 2 decimals | Yes |
max_lessons_per_day | Maximum number of lessons per day per student (0 is unlimited). | integer | Yes |
max_lessons_mode | What happens when that maximum is exceeded. Allowed values: ignore, warn, block. | text, max. 8 characters | Yes |
double_booking_mode | What happens in case of a double booking. Allowed values: ignore, warn, block. | text, max. 8 characters | Yes |
check_instructor_overlap | Check for overlaps between instructors. | yes/no | Yes |
check_vehicle_overlap | Check for overlaps between vehicles. | yes/no | Yes |
check_room_overlap | Check for overlaps between rooms. | yes/no | Yes |
availability_conflict_mode | What happens in case of a conflict with an availability. Allowed values: ignore, warn, block. | text, max. 8 characters | Yes |
grid_minutes | Planning grid in minutes. Allowed values: 5 (5 minutes), 10 (10 minutes), 15 (15 minutes), 20 (20 minutes), 30 (30 minutes), 60 (60 minutes). | integer | Yes |
day_start_hour | First hour of the day in the planning. | integer | Yes |
day_end_hour | Last hour of the day in the planning. | integer | Yes |
late_cancel_hours | Number of hours before a lesson from which a cancellation is charged. | integer | Yes |
reminder_hours | Number of hours before a lesson at which a reminder is sent. | integer | Yes |
portal_booking_mode | How bookings made through the portal are confirmed. Allowed values: manual_confirm (confirmation by your organisation), auto_confirm (confirmed automatically). | text, max. 16 characters | Yes |
max_active_students | Guide value for the maximum number of active students (0 is no maximum). | integer | Yes |
active | Active (yes) or no longer in use (no). | yes/no | Yes |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: company_id refers to companies.id.
instructors: Instructors and trainers. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
first_name | First name. | text, max. 128 characters | Yes |
last_name | Surname. | text, max. 128 characters | Yes |
email | Email address. | text, max. 180 characters | No |
phone | Phone number. | text, max. 32 characters | No |
employee_number | Staff number. | text, max. 32 characters | No |
default_vehicle_id | Default vehicle (key from vehicles). | integer | No |
color | Colour in the calendar, as a hexadecimal code (for example #8FC043). | text, max. 7 characters | Yes |
timezone | Time zone (IANA). | text, max. 64 characters | Yes |
working_hours | Weekly work schedule per ISO weekday, with time blocks (HH:MM). | JSON structure | Yes |
medical_exam_valid_until | Expiry date of the medical certificate. | date | No |
active | Active; an active instructor counts towards the licence. | yes/no | Yes |
notes | Free notes from your organisation. | text | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: default_vehicle_id refers to vehicles.id.
instructor_branches: Branches where an instructor works. Key: instructor_id and branch_id.
| Field | Description | Type | Required |
|---|---|---|---|
instructor_id | Key of the instructor or trainer. | integer | Yes |
branch_id | Key of the branch. | integer | Yes |
Relations: instructor_id refers to instructors.id; branch_id refers to branches.id.
instructor_license_types: Categories an instructor may teach; no rows means all categories. Key: instructor_id and license_type_id.
| Field | Description | Type | Required |
|---|---|---|---|
instructor_id | Key of the instructor or trainer. | integer | Yes |
license_type_id | Key of the category (licence category or course). | integer | Yes |
Relations: instructor_id refers to instructors.id; license_type_id refers to license_types.id.
instructor_certificates: Qualifications (brevets) and certificates of an instructor. Key: instructor_id and certificate_id.
| Field | Description | Type | Required |
|---|---|---|---|
instructor_id | Key of the instructor or trainer. | integer | Yes |
certificate_id | Key of the qualification or certificate. | integer | Yes |
Relations: instructor_id refers to instructors.id; certificate_id refers to certificates.id.
instructor_vehicles: Default vehicle of an instructor per category. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
instructor_id | Key of the instructor or trainer. | integer | Yes |
license_type_id | Key of the category (licence category or course). | integer | Yes |
vehicle_id | Key of the vehicle. | integer | Yes |
Relations: instructor_id refers to instructors.id; license_type_id refers to license_types.id; vehicle_id refers to vehicles.id.
instructor_signatures: Signature of an instructor for documents. Key: instructor_id.
| Field | Description | Type | Required |
|---|---|---|---|
instructor_id | Key of the instructor or trainer. | integer | Yes |
data | The signature as a PNG image. | file (binary) | Yes |
sha256 | SHA-256 checksum of the image. | text, max. 64 characters | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
updated_by | User who saved the signature (key from users). | integer | No |
Relations: instructor_id refers to instructors.id; updated_by refers to users.id.
vehicles: Vehicles. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
branch_id | Key of the branch. | integer | Yes |
name | Name. | text, max. 128 characters | Yes |
short_name | Short name. | text, max. 16 characters | No |
license_plate | Number plate. | text, max. 16 characters | No |
brand | Make. | text, max. 64 characters | No |
model | Model. | text, max. 64 characters | No |
transmission | Gearbox. Allowed values: manual, automatic. | text, max. 16 characters | Yes |
blocked | Temporarily unavailable. | yes/no | Yes |
block_reason | Reason for the block. | text, max. 255 characters | No |
odometer_km | Odometer reading. | integer | No |
inspection_valid_until | Roadworthiness inspection valid until. | date | No |
insurance_valid_until | Insurance valid until. | date | No |
color | Colour in the calendar, as a hexadecimal code (for example #8FC043). | text, max. 7 characters | Yes |
active | Active (yes) or no longer in use (no). | yes/no | Yes |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: branch_id refers to branches.id.
vehicle_license_types: Categories a vehicle can be used for. Key: vehicle_id and license_type_id.
| Field | Description | Type | Required |
|---|---|---|---|
vehicle_id | Key of the vehicle. | integer | Yes |
license_type_id | Key of the category (licence category or course). | integer | Yes |
Relations: vehicle_id refers to vehicles.id; license_type_id refers to license_types.id.
vehicle_allowed_instructors: Instructors allowed to use a vehicle; no rows means everyone. Key: vehicle_id and instructor_id.
| Field | Description | Type | Required |
|---|---|---|---|
vehicle_id | Key of the vehicle. | integer | Yes |
instructor_id | Key of the instructor or trainer. | integer | Yes |
Relations: vehicle_id refers to vehicles.id; instructor_id refers to instructors.id.
rooms: Rooms, grounds and simulators. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
branch_id | Key of the branch. | integer | Yes |
name | Name. | text, max. 128 characters | Yes |
type | Type of space. Allowed values: classroom, terrain (training ground), simulator, other. | text, max. 16 characters | Yes |
capacity | Number of places. | integer | Yes |
shared | Can also be used by other branches of the organisation. | yes/no | Yes |
active | Active (yes) or no longer in use (no). | yes/no | Yes |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: branch_id refers to branches.id.
6. Business customers (CSV/XLSX and JSON)
business_accounts: Business customers. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
company_id | Key of the organisation. | integer | Yes |
code | Your organisation's own customer number for this business customer. | text, max. 32 characters | No |
name | Name. | text, max. 255 characters | Yes |
legal_name | Registered name, if different. | text, max. 255 characters | No |
vat_number | VAT number. | text, max. 32 characters | No |
vat_status | Result of the last check of the VAT number in VIES. Allowed values: unknown (not checked), valid, invalid. | text, max. 16 characters | Yes |
vat_checked_at | Time of that check. | date and time | No |
street | Street. | text, max. 255 characters | No |
house_number | House number. | text, max. 16 characters | No |
box | Box number within the building (not a PO box). | text, max. 16 characters | No |
postal_code | Postcode. | text, max. 16 characters | No |
city | Municipality. | text, max. 128 characters | No |
country_code | Country, as a two-letter country code (ISO 3166-1), for example BE. | text, max. 2 characters | Yes |
email | General email address. | text, max. 180 characters | No |
billing_email | Email address for payment links and invoices. | text, max. 180 characters | No |
phone | Phone number. | text, max. 32 characters | No |
lang | Language for communication. Allowed values: nl (Dutch), fr (French), en (English), de (German). | text, max. 2 characters | Yes |
currency | Currency, as a three-letter code (ISO 4217), for example EUR. | text, max. 3 characters | Yes |
payment_terms_days | Payment term in days. | integer | Yes |
discount_pct | Discount as a percentage. | decimal number, 2 decimals | Yes |
requires_purchase_order | Orders require a purchase order reference. | yes/no | Yes |
default_cost_center | Default cost centre. | text, max. 64 characters | No |
auto_link_orders | New orders of linked participants are invoiced to this business customer by default. | yes/no | Yes |
peppol_identifier | Peppol identifier. | text, max. 64 characters | No |
notes | Free notes from your organisation. | text | No |
settings | Settings per business customer. | JSON structure | Yes |
active | Active (yes) or no longer in use (no). | yes/no | Yes |
archived_at | Time of archiving. | date and time | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: company_id refers to companies.id.
business_account_contacts: Contact persons of business customers. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
account_id | Key of the business customer. | integer | Yes |
name | Name. | text, max. 255 characters | Yes |
email | Email address. | text, max. 180 characters | No |
phone | Phone number. | text, max. 32 characters | No |
function | Position within the company. | text, max. 128 characters | No |
lang | Language for communication. Allowed values: nl (Dutch), fr (French), en (English), de (German). | text, max. 2 characters | Yes |
receives_invoices | Receives the financial correspondence. | yes/no | Yes |
receives_planning | Receives the correspondence about the planning. | yes/no | Yes |
active | Active (yes) or no longer in use (no). | yes/no | Yes |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: account_id refers to business_accounts.id.
business_account_members: Participants of business customers: the link between a business customer and a student or trainee, with the period of the programme. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
account_id | Key of the business customer. | integer | Yes |
student_id | Key of the student or trainee. | integer | Yes |
valid_from | Start of the link. | date | Yes |
valid_until | End of the link (empty: no end date). | date | No |
status | Status of the link. Allowed values: pending (awaiting confirmation), active, ended, rejected. | text, max. 16 characters | Yes |
default_bill_to | New orders of this participant are invoiced to the business customer by default. | yes/no | Yes |
reference | Staff number or standing purchase order reference for this participant. | text, max. 64 characters | No |
cost_center | Cost centre. | text, max. 64 characters | No |
source | Who created the link. Allowed values: staff (your organisation), b2b_portal (the business customer through the business portal). | text, max. 16 characters | Yes |
accepted_at | Time of acceptance. | date and time | No |
ended_reason | Reason for ending. | text, max. 255 characters | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: account_id refers to business_accounts.id; student_id refers to students.id.
b2b_users: Accounts of contact persons for the business portal, without passwords or other authentication data. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
account_id | Key of the business customer. | integer | Yes |
email | Email address used to log in. | text, max. 180 characters | Yes |
name | Name. | text, max. 128 characters | Yes |
roles | Roles granted, on top of the basic role. Allowed values: ROLE_B2B_MANAGER (participant management), ROLE_B2B_BILLING (invoicing), ROLE_B2B_ADMIN (administrator). | JSON structure | Yes |
lang | Language for communication. Allowed values: nl (Dutch), fr (French), en (English), de (German). | text, max. 2 characters | Yes |
enabled | Account enabled. | yes/no | Yes |
totp_enabled_at | Time two-factor authentication was enabled. | date and time | No |
invited_at | Time of the invitation. | date and time | No |
activated_at | Time the first password was chosen. | date and time | No |
last_login_at | Time of the last login. | date and time | No |
password_changed_at | Time of the last password change. | date and time | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: account_id refers to business_accounts.id.
7. Financial (CSV/XLSX and JSON)
sales_orders: Orders of students, trainees and business customers, with the invoicing and payment status. The Platform does not create invoices itself: the invoice is drawn up in your accounting software, and the order number and the invoice reference are stored here. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
number | Order number (unique). | text, max. 32 characters | No |
branch_id | Key of the branch. | integer | Yes |
student_id | Key of the student or trainee. | integer | Yes |
bill_to_id | Business customer who pays (key from business_accounts); empty if the student or trainee pays themselves. | integer | No |
bill_to_contact_id | Key of the business customer's contact person. | integer | No |
customer_reference | Purchase order number of the payer. | text, max. 64 characters | No |
cost_center | Cost centre. | text, max. 64 characters | No |
bill_to_snapshot | Details of the payer, recorded at the time of confirmation. | JSON structure | No |
order_type | Type of order. Allowed values: subscription (enrolment with a package of hours), other (other order). | text, max. 16 characters | Yes |
license_type_id | Key of the category (licence category or course). | integer | No |
state | Status of the order. Allowed values: draft, sent, confirmed, cancelled. | text, max. 16 characters | Yes |
currency | Currency, as a three-letter code (ISO 4217), for example EUR. | text, max. 3 characters | Yes |
notes | Free notes from your organisation. | text | No |
confirmed_at | Time of the confirmation. | date and time | No |
enrollment_id | Key of the enrolment. | integer | No |
source | Origin of the order, for example manual (entered manually) or online (online enrolment). | text, max. 16 characters | Yes |
invoice_status | Status in the accounting software. Allowed values: not_invoiced (not invoiced), queued (in the queue), invoiced, failed. | text, max. 16 characters | Yes |
invoice_connector | Connection with the accounting software, or manual. | text, max. 32 characters | No |
invoice_reference | Invoice number as shown by the accounting software. | text, max. 64 characters | No |
invoice_external_id | Identifier of the invoice in the accounting software. | text, max. 128 characters | No |
invoiced_at | Time of invoicing. | date and time | No |
payment_status | Status of the payments through the payment service provider. Allowed values: not_paid (not paid), pending (processing), partial (partly paid), paid. | text, max. 16 characters | Yes |
paid_cents | Amount received through the payment service provider, in cents. | integer | Yes |
paid_at | Time of full payment. | date and time | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: branch_id refers to branches.id; student_id refers to students.id; bill_to_id refers to business_accounts.id; bill_to_contact_id refers to business_account_contacts.id; license_type_id refers to license_types.id; enrollment_id refers to enrollments.id.
sales_order_lines: Lines of an order. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
order_id | Key of the order. | integer | Yes |
product_id | Key of the product. | integer | Yes |
description | Description. | text, max. 255 characters | Yes |
quantity | Quantity. | decimal number, 2 decimals | Yes |
unit_price | Unit price excluding VAT. | decimal number, 2 decimals | Yes |
vat_rate | VAT rate as a percentage. | decimal number, 2 decimals | Yes |
course_id | Course the enrolment is for (key from courses). | integer | No |
Relations: order_id refers to sales_orders.id; product_id refers to products.id; course_id refers to courses.id.
payments: Payments through payment links and payment terminals. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
order_id | Key of the order. | integer | Yes |
channel | Channel. Allowed values: link (payment link), terminal (payment terminal). | text, max. 16 characters | Yes |
started_by_user_id | User who started a payment on the terminal (key from users). | integer | No |
provider | Payment service provider. | text, max. 32 characters | Yes |
amount | Amount in cents. | integer | Yes |
currency | Currency, as a three-letter code (ISO 4217), for example EUR. | text, max. 3 characters | Yes |
status | Status of the payment. Allowed values: open, pending (processing), paid, cancelled, expired, refunded. | text, max. 16 characters | Yes |
test_mode | Test payment. | yes/no | Yes |
provider_reference | Reference of the payment at the payment service provider. | text, max. 128 characters | No |
provider_status | Status as named by the payment service provider. | text, max. 64 characters | No |
method | Payment method used, such as Bancontact. | text, max. 64 characters | No |
expires_at | Time the payment link expires. | date and time | No |
sent_to | Email address the payment link was sent to. | text, max. 180 characters | No |
sent_at | Time of sending. | date and time | No |
paid_at | Time of payment. | date and time | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: order_id refers to sales_orders.id; started_by_user_id refers to users.id.
received_payments: Payments the Platform registers for Payment Automation (Annex D of the Subscription Agreement): payments through Pay. (online, SoftPOS and payment terminal), incoming bank transfers that are read in through the Bank Connection and matched to a customer, file or order, and cash payments that your organisation registers itself. The Platform does not store unmatched transfers, outgoing transactions or balances; they are therefore not included in the export. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
source | Source of the payment. Allowed values: pay (payment through Pay. online, with SoftPOS or with a terminal), bank_transfer (bank transfer), cash. | text, max. 16 characters | Yes |
payment_id | Payment through Pay. started from the Platform, with a payment link or terminal (key from payments); empty for a bank transfer or a cash payment. | integer | No |
received_on | Date of the payment; for a bank transfer, the date on the bank statement. | date | Yes |
amount | Amount in cents. | integer | Yes |
currency | Currency, as a three-letter code (ISO 4217), for example EUR. | text, max. 3 characters | Yes |
communication | Payment reference, structured or free. | text, max. 140 characters | No |
payer_name | Name of the payer. | text, max. 140 characters | No |
payer_account | Account number (IBAN) of the payer. In the Platform, only visible to users with a financial role. | text, max. 34 characters | No |
method | Payment method used, such as Bancontact, Visa or bank transfer. | text, max. 64 characters | No |
transaction_reference | Reference of the transaction at Pay. or at the bank. | text, max. 128 characters | No |
card_masked | For a card payment: the masked card details that Pay. passes on, such as the card brand and the last four digits. | text, max. 32 characters | No |
match_status | Status of the matching to customers, files and orders. Allowed values: matched (fully matched), partial (partly matched), unmatched (not matched, only for a payment through Pay. or a cash payment). | text, max. 16 characters | Yes |
counts_for_platform_fee | Registered Payment for the Platform Fee (Annex D.6 of the Subscription Agreement). | yes/no | Yes |
registered_by_user_id | User who registered a cash payment (key from users). | integer | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: payment_id refers to payments.id; registered_by_user_id refers to users.id.
payment_matches: Matches of registered payments to customers, files and orders. One payment can be split over several orders. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
received_payment_id | Key of the payment. | integer | Yes |
order_id | Order the payment is booked to. | integer | No |
student_id | Student or trainee (file) the payment is matched to. | integer | No |
business_account_id | Business customer the payment is matched to. | integer | No |
amount | Matched amount in cents. | integer | Yes |
match_method | How the match was made. Allowed values: structured_communication (structured payment reference), order_or_file_number (order or file number), amount_and_account (amount and account number of the payer), payment_link (payment through Pay. on the order), manual (manually by a user). | text, max. 24 characters | Yes |
matched_by_user_id | User who made or corrected the match manually (key from users); empty for an automatic match. | integer | No |
matched_at | Time of the match. | date and time | Yes |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: received_payment_id refers to received_payments.id; order_id refers to sales_orders.id; student_id refers to students.id; business_account_id refers to business_accounts.id; matched_by_user_id refers to users.id.
payment_reminders: Reminders for outstanding amounts, planned or sent according to your organisation's settings. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
order_id | Order the reminder is for. | integer | Yes |
sequence | Sequence number of the reminder for this order (1 is the first reminder). | integer | Yes |
amount_due | Outstanding amount at the time of the reminder, in cents. | integer | Yes |
currency | Currency, as a three-letter code (ISO 4217), for example EUR. | text, max. 3 characters | Yes |
due_date | Payment deadline stated in the reminder. | date | No |
status | Status of the reminder. Allowed values: scheduled (planned), sent, paused (paused, for example while the Bank Connection is interrupted), cancelled (cancelled, for example because the payment has come in since). | text, max. 16 characters | Yes |
scheduled_at | Planned time of sending. | date and time | No |
sent_to | Email address the reminder was sent to. | text, max. 180 characters | No |
sent_at | Time of sending. | date and time | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: order_id refers to sales_orders.id.
8. Documents (original format or PDF, in a ZIP file with an index in CSV)
index.csv: Index of all documents in the ZIP file. Each document is in a folder per record it is linked to (for example student-12/), with the last eight characters of the UUID before the original file name; documents without a link are in the folder unlinked/. Documents generated by the Platform, such as a proof of enrolment, are included. Key: uuid. Format: CSV.
| Field | Description | Type | Required |
|---|---|---|---|
path | Path of the document in the ZIP file. | text | Yes |
uuid | Unique key of the document. | UUID | Yes |
name | Original file name. | text, max. 255 characters | Yes |
category | Type of document. Allowed values: identity, medical, licence (driving licence), contract, invoice, certificate, other. | text, max. 24 characters | Yes |
mime_type | File type (MIME type), for example application/pdf. | text, max. 127 characters | Yes |
size | Size in bytes. | integer | Yes |
sha256 | SHA-256 checksum of the file. | text, max. 64 characters | Yes |
source | Origin. Allowed values: upload (uploaded), generated (generated by the Platform), import (imported). | text, max. 16 characters | Yes |
records | Records the document is linked to, as type:key separated by a space (for example student:12 sales_order:7). Allowed values: student (student or trainee (students)), sales_order (order (sales_orders)), business_account (business customer (business_accounts)), instructor (instructor (instructors)), vehicle (vehicle (vehicles)), company (organisation (companies)), branch (branch (branches)). | text | No |
shared_with_student | Shared with the student or trainee in the portal (1 is yes, 0 is no). | yes/no | Yes |
shared_with_b2b | Shared with the business customer in the business portal (1 is yes, 0 is no). | yes/no | Yes |
retention_until | Statutory retention up to and including this date; empty if there is no retention obligation. | date | No |
created_at | Time the document was uploaded or generated. | date and time | Yes |
9. Configuration and metadata (JSON)
companies: Your organisation and its settings. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
name | Name. | text, max. 255 characters | Yes |
vat_number | VAT number. | text, max. 32 characters | No |
recognition_number | Approval number of the driving school with the authorities. | text, max. 64 characters | No |
localization | Country pack (regulations and catalogues). Allowed values: generic (general), be_flanders (Belgium, Flanders), be_wallonia (Belgium, Wallonia), be_brussels (Belgium, Brussels), nl (the Netherlands). | text, max. 32 characters | Yes |
business_type | Type of organisation. Allowed values: driving_school (driving school), training_center (training centre). | text, max. 32 characters | Yes |
street | Street. | text, max. 255 characters | No |
house_number | House number. | text, max. 16 characters | No |
box | Box number within the building (not a PO box). | text, max. 16 characters | No |
postal_code | Postcode. | text, max. 16 characters | No |
city | Municipality. | text, max. 128 characters | No |
country_code | Country, as a two-letter country code (ISO 3166-1), for example BE. | text, max. 2 characters | Yes |
email | Email address. | text, max. 180 characters | No |
phone | Phone number. | text, max. 32 characters | No |
website | Website. | text, max. 255 characters | No |
currency | Currency, as a three-letter code (ISO 4217), for example EUR. | text, max. 3 characters | Yes |
settings | Settings of the organisation. | JSON structure | Yes |
active | Active (yes) or no longer in use (no). | yes/no | Yes |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
company_logos: Your organisation's logo. Key: company_id.
| Field | Description | Type | Required |
|---|---|---|---|
company_id | Key of the organisation. | integer | Yes |
mime_type | File type of the image. | text, max. 32 characters | Yes |
data | The image. | file (binary) | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: company_id refers to companies.id.
users: Users of the Platform and their roles, without passwords or other authentication data. The fields that refer to a user (such as created_by or handled_by) use this key. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
email | Email address used to log in. | text, max. 180 characters | Yes |
name | Name. | text, max. 255 characters | Yes |
roles | Roles of the user. Allowed values: ROLE_ADMIN (administrator), ROLE_MANAGER (manager), ROLE_PLANNER (planner), ROLE_INSTRUCTOR (instructor). | JSON structure | Yes |
instructor_id | Instructor this user is (key from instructors). | integer | No |
lang | Language for communication. Allowed values: nl (Dutch), fr (French), en (English), de (German). | text, max. 2 characters | Yes |
enabled | Account enabled. | yes/no | Yes |
disabled_reason | Reason the account is disabled. Allowed values: manual, license (licence), instructor_inactive (instructor not active). | text, max. 32 characters | No |
two_factor_required | Two-factor authentication required. | yes/no | Yes |
totp_enabled_at | Time two-factor authentication was enabled. | date and time | No |
last_login_at | Time of the last login. | date and time | No |
password_changed_at | Time of the last password change. | date and time | No |
invited_at | Time of the invitation. | date and time | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: instructor_id refers to instructors.id.
user_branches: Branches where a user may work; no rows for an administrator means all branches. Key: user_id and branch_id.
| Field | Description | Type | Required |
|---|---|---|---|
user_id | Key of the user. | integer | Yes |
branch_id | Key of the branch. | integer | Yes |
Relations: user_id refers to users.id; branch_id refers to branches.id.
user_hr_permissions: HR permissions per user and per branch, once the HR and time tracking module is available. They are separate from the roles in users: only a user with the permission to do so decides on leave, not every manager or planner. No row means no HR permission in that branch. Key: user_id and branch_id.
| Field | Description | Type | Required |
|---|---|---|---|
user_id | Key of the user. | integer | Yes |
branch_id | Key of the branch. | integer | Yes |
decide_leave | May approve or reject leave requests and enter absences. | yes/no | Yes |
manage_time | May correct time records and close periods. | yes/no | Yes |
manage_status_dimona | May manage the employment status and the details for the flexi-Dimona, including the INSZ, and hold back declarations; without this permission, nobody can hold back a declaration. | yes/no | Yes |
export | May export the hours and the leave per period, including for the social secretariat. | yes/no | Yes |
granted_by_user_id | User who granted or changed the permission (key from users). | integer | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: user_id refers to users.id; branch_id refers to branches.id; granted_by_user_id refers to users.id.
license_types: Licence categories and courses, with their rules. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
company_id | Key of the organisation. | integer | Yes |
code | Code, for example B. | text, max. 16 characters | Yes |
name | Name. | text, max. 128 characters | Yes |
category | Type of vehicle. Allowed values: car, motorcycle, moped, truck (lorry), bus, trailer, agricultural (agricultural vehicle), other. | text, max. 16 characters | Yes |
color | Colour in the calendar, as a hexadecimal code (for example #8FC043). | text, max. 7 characters | Yes |
minimum_age_years | Minimum age, years. | integer | Yes |
minimum_age_months | Minimum age, additional months. | integer | Yes |
max_students | Maximum number of students per lesson. | integer | Yes |
vehicle_required | A vehicle is needed. | yes/no | Yes |
default_hours | Default number of hours in a package. | decimal number, 2 decimals | Yes |
default_lesson_duration_hours | Default duration of a lesson in hours. | decimal number, 2 decimals | Yes |
theory_required | Theory exam required. | yes/no | Yes |
theory_validity_years | Validity of the theory exam in years. | integer | Yes |
medical_required | Medical certificate required. | yes/no | Yes |
requires_subscription_number | An enrolment receives an enrolment number. | yes/no | Yes |
reexam_mandatory_hours | Mandatory hours before a retake. | decimal number, 2 decimals | Yes |
reexam_failure_threshold | Number of failed attempts after which those hours apply. | integer | Yes |
sort_order | Order in lists. | integer | Yes |
active | Active (yes) or no longer in use (no). | yes/no | Yes |
pack_code | Code of the country pack that installed this record; empty if your organisation created it itself. | text, max. 32 characters | No |
regulatory | Country-specific characteristics (such as the provisional licence model and the medical group). | JSON structure | Yes |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: company_id refers to companies.id.
exam_rules: Conditions for admission to an exam, per category. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
license_type_id | Key of the category (licence category or course). | integer | Yes |
name | Name. | text, max. 160 characters | Yes |
exam_type | Type of exam. Allowed values: theory, practical, medical. | text, max. 16 characters | Yes |
rule_type | Type of condition. Allowed values: min_age (minimum age), min_hours (minimum number of hours), min_lessons (minimum number of lessons), theory_passed (theory passed), theory_validity (theory validity), medical_valid (valid medical certificate), waiting_period (waiting time between attempts), practice_months (months of practice period), prior_license (previous licence required), progressive_years (years of experience with a previous licence), reexam_hours (hours before a retake). | text, max. 32 characters | Yes |
min_hours | Minimum number of hours. | decimal number, 2 decimals | No |
min_lessons | Minimum number of lessons. | integer | No |
waiting_days | Waiting time in days between two attempts. | integer | No |
age_years | Age, years. | integer | No |
age_months | Age, additional months. | integer | No |
validity_months | Validity in months. | integer | No |
practice_months | Months since the start of the enrolment. | integer | No |
required_license_code | Code of the category the person must already hold. | text, max. 16 characters | No |
progressive_years | Number of years holding that category. | integer | No |
failure_threshold | Number of failed attempts after which the minimum number of hours applies. | integer | No |
pack_code | Code of the country pack that installed this record; empty if your organisation created it itself. | text, max. 32 characters | No |
sort_order | Order in lists. | integer | Yes |
active | Active (yes) or no longer in use (no). | yes/no | Yes |
Relations: license_type_id refers to license_types.id.
products: Products and rates, such as packages of hours, enrolment fees and charges. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
company_id | Key of the organisation. | integer | Yes |
code | Code. | text, max. 32 characters | No |
name | Name. | text, max. 255 characters | Yes |
description | Description. | text | No |
type | Type of product. Allowed values: practical_hours (practical hours), course_enrollment (enrolment for a course), exam_fee (exam fee), admin_fee (administration fee), cancel_fee (cancellation fee), guidance (accompaniment), other. | text, max. 32 characters | Yes |
practical_hours | Number of practical hours per unit. | decimal number, 2 decimals | Yes |
price | Price excluding VAT. | decimal number, 2 decimals | Yes |
vat_rate | VAT rate as a percentage. | decimal number, 2 decimals | Yes |
publish_online | Visible in online enrolments. | yes/no | Yes |
sort_order | Order in lists. | integer | Yes |
active | Active (yes) or no longer in use (no). | yes/no | Yes |
pack_code | Code of the country pack that installed this record; empty if your organisation created it itself. | text, max. 32 characters | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: company_id refers to companies.id.
product_license_types: Categories a product applies to. Key: product_id and license_type_id.
| Field | Description | Type | Required |
|---|---|---|---|
product_id | Key of the product. | integer | Yes |
license_type_id | Key of the category (licence category or course). | integer | Yes |
Relations: product_id refers to products.id; license_type_id refers to license_types.id.
cancel_reasons: Cancellation reasons and the fees that go with them. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
company_id | Key of the organisation. | integer | Yes |
name | Name. | text, max. 128 characters | Yes |
charge_fee | Charge a cancellation fee by default. | yes/no | Yes |
fee_type | Type of fee. Allowed values: percentage (percentage of the price), fixed (fixed amount). | text, max. 16 characters | Yes |
fee_percentage | Percentage. | decimal number, 2 decimals | Yes |
fee_fixed_amount | Fixed amount. | decimal number, 2 decimals | Yes |
fee_product_id | Product used to charge the fee (key from products). | integer | No |
instructor_selectable | Instructors can choose this reason. | yes/no | Yes |
active | Active (yes) or no longer in use (no). | yes/no | Yes |
Relations: company_id refers to companies.id; fee_product_id refers to products.id.
course_types: Types of courses. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
company_id | Key of the organisation. | integer | Yes |
code | Code. | text, max. 32 characters | Yes |
name | Name. | text, max. 128 characters | Yes |
default_session_type | Default type of session. Allowed values: theory, practical. | text, max. 16 characters | Yes |
color | Colour in the calendar, as a hexadecimal code (for example #8FC043). | text, max. 7 characters | Yes |
active | Active (yes) or no longer in use (no). | yes/no | Yes |
pack_code | Code of the country pack that installed this record; empty if your organisation created it itself. | text, max. 32 characters | No |
Relations: company_id refers to companies.id.
certificates: Catalogue of instructors' qualifications (brevets) and certificates. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
company_id | Key of the organisation. | integer | Yes |
code | Code. | text, max. 32 characters | Yes |
name | Name. | text, max. 160 characters | Yes |
is_director | Holders of this qualification may act as director of the driving school on official documents. | yes/no | Yes |
pack_code | Code of the country pack that installed this record; empty if your organisation created it itself. | text, max. 32 characters | No |
sort_order | Order in lists. | integer | Yes |
active | Active (yes) or no longer in use (no). | yes/no | Yes |
Relations: company_id refers to companies.id.
availability_statuses: Types of availability. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
code | Code (unique). | text, max. 32 characters | Yes |
name | Name. | text, max. 64 characters | Yes |
color | Colour in the calendar, as a hexadecimal code (for example #8FC043). | text, max. 7 characters | Yes |
blocks_planning | A lesson that overlaps with this causes a conflict. | yes/no | Yes |
sort_order | Order in lists. | integer | Yes |
exam_centers: Exam centres, without the access credentials of the connections. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
company_id | Key of the organisation. | integer | Yes |
name | Name. | text, max. 128 characters | Yes |
code | Code. | text, max. 32 characters | No |
street | Street. | text, max. 255 characters | No |
house_number | House number. | text, max. 16 characters | No |
box | Box number within the building (not a PO box). | text, max. 16 characters | No |
postal_code | Postcode. | text, max. 16 characters | No |
city | Municipality. | text, max. 128 characters | No |
country_code | Country, as a two-letter country code (ISO 3166-1), for example BE. | text, max. 2 characters | Yes |
api_type | Type of connection. Allowed values: manual (no connection), av (Autoveiligheid), cbr, custom (other connection). | text, max. 16 characters | Yes |
active | Active (yes) or no longer in use (no). | yes/no | Yes |
pack_code | Code of the country pack that installed this record; empty if your organisation created it itself. | text, max. 32 characters | No |
Relations: company_id refers to companies.id.
exam_type_mappings: Exam types and their codes at the exam centre. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
company_id | Key of the organisation. | integer | Yes |
code | Fixed code within the organisation, for example B-E2-01. | text, max. 32 characters | No |
license_type_id | Key of the category (licence category or course). | integer | No |
exam_type | Type of exam. Allowed values: theory, practical, medical. | text, max. 16 characters | Yes |
av_category | Category at Autoveiligheid. | text, max. 5 characters | Yes |
av_type | Type at Autoveiligheid. | text, max. 5 characters | Yes |
av_code | Code at Autoveiligheid. | text, max. 5 characters | Yes |
description | Description. | text, max. 255 characters | No |
list_price | Official exam price including VAT (for information). | decimal number, 2 decimals | Yes |
duration_minutes | Duration in minutes. | integer | Yes |
active | Active (yes) or no longer in use (no). | yes/no | Yes |
pack_code | Code of the country pack that installed this record; empty if your organisation created it itself. | text, max. 32 characters | No |
Relations: company_id refers to companies.id; license_type_id refers to license_types.id.
exam_center_type_mappings: Exam types offered by an exam centre. Key: exam_center_id and exam_type_mapping_id.
| Field | Description | Type | Required |
|---|---|---|---|
exam_center_id | Key of the exam centre. | integer | Yes |
exam_type_mapping_id | Key of the exam type. | integer | Yes |
Relations: exam_center_id refers to exam_centers.id; exam_type_mapping_id refers to exam_type_mappings.id.
exam_travel_times: Travel times between branches and exam centres. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
branch_id | Key of the branch. | integer | Yes |
exam_center_id | Key of the exam centre. | integer | Yes |
minutes_to | Minutes from the branch to the exam centre. | integer | Yes |
minutes_from | Minutes from the exam centre back to the branch. | integer | Yes |
Relations: branch_id refers to branches.id; exam_center_id refers to exam_centers.id.
registration_wizards: Enrolment forms: steps, fields, custom questions and design. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
company_id | Key of the organisation. | integer | Yes |
name | Name. | text, max. 120 characters | Yes |
active | Active (yes) or no longer in use (no). | yes/no | Yes |
sort_order | Order in lists. | integer | Yes |
steps | Steps of the form (type, title, active). | JSON structure | Yes |
personal_fields | Personal fields (visible, required, width, help text). | JSON structure | Yes |
questions | Custom questions (question, type, required, choices, help text). | JSON structure | Yes |
payment_mode | Payment at enrolment. Allowed values: pay_now (pay straight away), pay_later (pay later), choice (the person enrolling chooses). | text, max. 16 characters | Yes |
primary_color | Main colour (hexadecimal). | text, max. 7 characters | Yes |
accent_color | Accent colour (hexadecimal). | text, max. 7 characters | Yes |
background_color | Background colour (hexadecimal). | text, max. 7 characters | Yes |
corner_radius | Corner rounding in pixels. | integer | Yes |
card_style | Style of the cards. Allowed values: flat, shadow (with shadow), bordered (with border). | text, max. 16 characters | Yes |
progress_style | Style of the progress indicator. Allowed values: steps, bar, dots. | text, max. 16 characters | Yes |
button_style | Style of the buttons. Allowed values: solid (filled), outline (outlined). | text, max. 16 characters | Yes |
show_logo | Show the logo. | yes/no | Yes |
welcome_text | Text above the first step. | text | No |
success_message | Text after the enrolment. | text | No |
redirect_url | Address the button leads to after the enrolment. | text, max. 500 characters | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: company_id refers to companies.id.
registration_wizard_license_types: Categories a form offers; no rows means all active categories. Key: registration_wizard_id and license_type_id.
| Field | Description | Type | Required |
|---|---|---|---|
registration_wizard_id | Key of the enrolment form. | integer | Yes |
license_type_id | Key of the category (licence category or course). | integer | Yes |
Relations: registration_wizard_id refers to registration_wizards.id; license_type_id refers to license_types.id.
registration_wizard_branches: Branches a form offers; no rows means all active branches. Key: registration_wizard_id and branch_id.
| Field | Description | Type | Required |
|---|---|---|---|
registration_wizard_id | Key of the enrolment form. | integer | Yes |
branch_id | Key of the branch. | integer | Yes |
Relations: registration_wizard_id refers to registration_wizards.id; branch_id refers to branches.id.
registration_entry_points: Enrolment links to a form, optionally with a preselected category, product or branch. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
wizard_id | Key of the enrolment form. | integer | Yes |
code | Code in the link. | text, max. 16 characters | Yes |
name | Name. | text, max. 120 characters | Yes |
description | Description. | text | No |
license_type_id | Key of the category (licence category or course). | integer | No |
product_id | Key of the product. | integer | No |
branch_id | Key of the branch. | integer | No |
active | Active (yes) or no longer in use (no). | yes/no | Yes |
sort_order | Order in lists. | integer | Yes |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: wizard_id refers to registration_wizards.id; license_type_id refers to license_types.id; product_id refers to products.id; branch_id refers to branches.id.
registration_dashboards: Enrolment pages with tiles linking to enrolment links. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
company_id | Key of the organisation. | integer | Yes |
code | Code in the link. | text, max. 16 characters | Yes |
name | Internal name. | text, max. 120 characters | Yes |
title | Title of the page. | text, max. 160 characters | No |
intro_text | Introductory text. | text | No |
primary_color | Main colour (hexadecimal). | text, max. 7 characters | Yes |
background_color | Background colour (hexadecimal). | text, max. 7 characters | Yes |
show_logo | Show the logo. | yes/no | Yes |
active | Active (yes) or no longer in use (no). | yes/no | Yes |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: company_id refers to companies.id.
registration_dashboard_items: Tiles on an enrolment page. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
dashboard_id | Key of the enrolment page. | integer | Yes |
entry_point_id | Key of the enrolment link. | integer | Yes |
label | Title of the tile. | text, max. 120 characters | No |
description | Text of the tile. | text | No |
sort_order | Order in lists. | integer | Yes |
Relations: dashboard_id refers to registration_dashboards.id; entry_point_id refers to registration_entry_points.id.
10. Audit trail (CSV/JSON)
identity_verifications: History of the identity checks with itsme®: when, at whose request and which details of the student or trainee were changed in the process. The time of creation and of the last change and, where the Platform keeps track of it, the user who performed an action are included as fields in the files of the other categories (such as created_at, updated_at, created_by, started_by and handled_by). Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
student_id | Key of the student or trainee. | integer | Yes |
provider | Identity service. Allowed values: itsme (itsme®). | text, max. 16 characters | Yes |
channel | How the check was started. Allowed values: portal (by the student or trainee in the portal), link (through a link sent by your organisation). | text, max. 16 characters | Yes |
status | Outcome. Allowed values: pending, verified (confirmed), mismatch (details do not match), failed, expired, cancelled. | text, max. 16 characters | Yes |
requested_by_user_id | User who sent the link (key from users); empty for a check through the portal. | integer | No |
created_at | Time the record was created. | date and time | Yes |
expires_at | Time the request expires. | date and time | Yes |
started_at | Time the check started at itsme®. | date and time | No |
completed_at | Time the check was completed. | date and time | No |
changes | For a confirmed check: the changed fields with their old and new values. For details that do not match: the names of the fields that differed. | JSON structure | No |
error_code | Error code for a failed check. | text, max. 64 characters | No |
Relations: student_id refers to students.id; requested_by_user_id refers to users.id.
11. Reviews and surveys (CSV/XLSX and JSON)
review_invitations: Invitations for a review or a survey with a service that your organisation connects itself (Tally, Klantenvertellen or Google), planned or sent by email according to your organisation's settings. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
provider | Service the invitation is for. Allowed values: google (Google, review on the Google Business Profile), klantenvertellen (Klantenvertellen, review), tally (Tally, survey). | text, max. 32 characters | Yes |
recipient_type | Type of recipient. Allowed values: student (student or trainee), guardian (parent or supervisor of a student), business_contact (contact person of a business customer). | text, max. 32 characters | Yes |
student_id | Student or trainee the invitation relates to. | integer | No |
business_account_contact_id | Contact person of the business customer who receives the invitation. | integer | No |
recipient_name | Name of the recipient as used in the invitation. | text, max. 255 characters | No |
trigger | Moment the invitation is sent, as set by your organisation (for example after a passed exam, a completed course, a Code 95 session or a paid order). | text, max. 64 characters | Yes |
status | Status of the invitation. Allowed values: scheduled (planned), sent, cancelled, opted_out (not sent, because the recipient has opted out of invitations for reviews). | text, max. 16 characters | Yes |
scheduled_at | Planned time of sending. | date and time | No |
sent_to | Email address the invitation was sent to. | text, max. 180 characters | No |
sent_at | Time of sending. | date and time | No |
recipient_data_shared | Whether the name and email address of the recipient were passed on to the service in the invitation (only for Tally and Klantenvertellen, never for Google). | yes/no | Yes |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: student_id refers to students.id; business_account_contact_id refers to business_account_contacts.id.
review_opt_outs: Opt-outs from invitations for reviews: people who used the opt-out link in an invitation for a review (Google or Klantenvertellen) to say they no longer want to receive invitations for reviews from your organisation. The Platform then no longer sends that person invitations for reviews; invitations for surveys have no opt-out link and are not covered. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
email | Email address of the person who opted out. | text, max. 180 characters | Yes |
recipient_type | Type of person who opted out, as in the invitation. Allowed values: student (student or trainee), guardian (parent or supervisor of a student), business_contact (contact person of a business customer). | text, max. 32 characters | Yes |
student_id | Student or trainee the opt-out relates to. | integer | No |
business_account_contact_id | Contact person of the business customer who opted out. | integer | No |
scope | Invitations the opt-out applies to. Allowed values: reviews (all invitations for reviews from your organisation (Google and Klantenvertellen), not for surveys). | text, max. 16 characters | Yes |
review_invitation_id | Invitation in which the opt-out link was used. | integer | No |
opted_out_at | Time of the opt-out. | date and time | Yes |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: student_id refers to students.id; business_account_contact_id refers to business_account_contacts.id; review_invitation_id refers to review_invitations.id.
12. HR and time tracking (CSV/XLSX and JSON)
staff_members: Staff members in the HR and time tracking module, once it is available: instructors, trainers, office staff and other people who work for your organisation. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
instructor_id | Instructor or trainer this staff member is (key from instructors); empty for a staff member who does not teach. | integer | No |
user_id | User this staff member is (key from users), for example an office staff member. | integer | No |
ssin | Social security identification number (INSZ: national register number or BIS number), only for the flexi-Dimona declarations. In the Platform, only visible to users with the HR permission. | text, max. 11 characters | No |
time_clock_enabled | The staff member records the start and end of their work and their breaks through the instructor environment on their smartphone; this applies to instructors and trainers and also to office staff. | yes/no | Yes |
active | Active (yes) or no longer employed (no). As long as the staff member is active, the Platform keeps their leave requests, absences (including due to sickness) and unavailabilities (leave_requests) and their leave balances (leave_balances). Thirty days after your organisation sets them to inactive (inactive_since), the Platform takes that data out of use and shows their absences due to sickness in the calendar only as an absence (scheduled_slots); up to and including the ninetieth day after that date, your organisation can restore the data by setting the staff member to active again, after which the Platform erases it permanently (Article 6.10 of the Subscription Agreement). Their time records and flexi-Dimona declarations are kept for five years. | yes/no | Yes |
inactive_since | Time your organisation set the staff member to inactive; empty as long as they are active. The periods of thirty and ninety days of Article 6.10 of the Subscription Agreement run from that time; if your organisation sets them to active again, the field is emptied. | date and time | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: instructor_id refers to instructors.id; user_id refers to users.id.
staff_statuses: Employment status of the staff members per organisation, with start and end date. A change of status is a new row; the previous one is kept. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
staff_member_id | Staff member (key from staff_members). | integer | Yes |
company_id | Organisation that is the employer or client (key from companies). | integer | Yes |
status | Employment status. Allowed values: employee_full_time (employee, full-time), employee_part_time (employee, part-time), flexi_job (flexi-job worker), student (student worker), self_employed (self-employed). | text, max. 32 characters | Yes |
valid_from | Valid from. | date | Yes |
valid_until | Valid until and including (empty: no end date). | date | No |
framework_agreement_date | Date of the written framework agreement (only for a flexi-job worker). | date | No |
flexi_contract_form | Form of the flexi-job employment contract (only for a flexi-job worker). Allowed values: oral (verbal (one declaration per work period, with start and end time)), written. | text, max. 16 characters | No |
eligibility_checked | Your organisation has ticked that it checked whether the staff member meets the conditions for this status. | yes/no | Yes |
dimona_by | Who submits the flexi-Dimona declarations for this staff member. The Platform only submits flexi-Dimona declarations, so only for a flexi-job worker. Allowed values: biqsdrive (BIQSDRIVE, through the Platform, in the name of your organisation and with its own RSZ access (Article 7.7 of the Subscription Agreement)), social_secretariat (social secretariat or other service provider of your organisation), none (no flexi-Dimona through the Platform, as for a status other than flexi-job worker). | text, max. 32 characters | Yes |
created_by_user_id | User who entered the status (key from users). | integer | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: staff_member_id refers to staff_members.id; company_id refers to companies.id; created_by_user_id refers to users.id.
leave_types: Types of leave and absence that your organisation sets up, such as annual holiday, short leave (klein verlet) or sickness. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
company_id | Key of the organisation. | integer | Yes |
name | Name, as set up by your organisation. | text, max. 128 characters | Yes |
category | Type. For sickness, the Platform only records the fact and the period. Allowed values: leave, sickness, unavailability, other (other absence). | text, max. 16 characters | Yes |
requestable_by_staff | The staff member can request or report this themselves; otherwise only your organisation enters it. | yes/no | Yes |
requires_approval | A request must be approved by a user with the HR permission of your organisation. | yes/no | Yes |
uses_balance | Approved leave of this type is deducted from a balance. | yes/no | Yes |
balance_period | Validity period of the balance for this type, as set up by your organisation; empty if this type is not deducted from a balance. Allowed values: calendar_year (calendar year), custom (other period set up by your organisation). | text, max. 16 characters | No |
color | Colour in the calendar, as a hexadecimal code; only visible to users with the HR permission. | text, max. 7 characters | Yes |
active | Active (yes) or no longer in use (no). | yes/no | Yes |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: company_id refers to companies.id.
leave_requests: Leave requests, reports of sickness and unavailability, and absences entered by your organisation, with the decision. For sickness, only the fact and the period, without medical data. The Platform keeps all requests, reports and absences in this file, including those your organisation enters itself, as long as the staff member is active (staff_members.active); thirty days after your organisation sets them to inactive, it takes them out of use (they are then no longer included in the export, section 7), up to and including the ninetieth day after that date your organisation can restore them by setting the staff member to active again, and after that the Platform erases them permanently (Article 6.10 of the Subscription Agreement). Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
staff_member_id | Staff member (key from staff_members). | integer | Yes |
leave_type_id | Type of leave or absence (key from leave_types). | integer | Yes |
start_at | Start of the period. | date and time | Yes |
end_at | End of the period; empty for a sick report without a known end date. | date and time | No |
day_part | Extent per day. Allowed values: full_day (full day), morning, afternoon, hours (number of hours). | text, max. 16 characters | Yes |
hours | Number of hours, for a request per hour. | decimal number, 2 decimals | No |
balance_hours | Number of hours deducted from the balance, calculated for a day of leave according to the staff member's work schedule; empty if this type is not deducted from a balance. | decimal number, 2 decimals | No |
note | Comment from the staff member, without medical or other sensitive data. | text, max. 500 characters | No |
status | Status of the request. Allowed values: pending (processing), approved, refused (rejected), withdrawn (withdrawn by the staff member), cancelled, registered (registered without approval, such as a sick report or an unavailability). | text, max. 16 characters | Yes |
entered_by_user_id | User who entered the absence for the staff member (key from users); empty if the staff member requested or reported it themselves. | integer | No |
decided_by_user_id | User with the HR permission for that branch who approved or rejected the request (key from users). | integer | No |
decided_at | Time of the decision. | date and time | No |
decision_reason | Reason for the decision; required for a rejection. | text, max. 500 characters | No |
approved_with_conflicts | Approved while appointments were still planned in that period, after explicit confirmation. | yes/no | Yes |
scheduled_slot_id | Absence block in the calendar (key from scheduled_slots). | integer | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: staff_member_id refers to staff_members.id; leave_type_id refers to leave_types.id; entered_by_user_id refers to users.id; decided_by_user_id refers to users.id; scheduled_slot_id refers to scheduled_slots.id.
leave_balances: Leave balances in hours as set up by your organisation, per staff member, type and validity period (a calendar year or another period set up by your organisation). The Platform does not calculate any statutory leave entitlement; it only deducts the approved leave, in hours. The Platform keeps a staff member's balances as long as they are active and then follows the same periods of thirty and ninety days as for leave_requests (Article 6.10 of the Subscription Agreement). Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
staff_member_id | Staff member (key from staff_members). | integer | Yes |
leave_type_id | Type of leave (key from leave_types). | integer | Yes |
valid_from | First day of the period in which the balance applies, for example 1 January for a balance per calendar year. | date | Yes |
valid_until | Last day of the period in which the balance applies, for example 31 December for a balance per calendar year. | date | Yes |
amount | Balance in hours set by your organisation, before deduction of the approved leave. | decimal number, 2 decimals | Yes |
note | Reason for an adjustment. | text, max. 255 characters | No |
set_by_user_id | User who set or adjusted the balance (key from users). | integer | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: staff_member_id refers to staff_members.id; leave_type_id refers to leave_types.id; set_by_user_id refers to users.id.
time_periods: Periods (week or month) for which your organisation has reviewed and closed the time records. After closing, a record can only be changed through a correction. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
branch_id | Key of the branch. | integer | Yes |
period_start | First day of the period. | date | Yes |
period_end | Last day of the period. | date | Yes |
closed_by_user_id | User who closed the period (key from users). | integer | Yes |
closed_at | Time of closing. | date and time | Yes |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: branch_id refers to branches.id; closed_by_user_id refers to users.id.
time_entries: Time records: the start and end of work periods and of breaks, recorded by the staff member at the moment itself through the instructor environment on their smartphone, without location or biometric data (Article 6.10 of the Subscription Agreement). A recorded time is never overwritten; a change is made through a correction (time_entry_corrections). The Platform keeps them for five years from the day after the last day of the work period or of the period they relate to and then erases them (Article 6.10 of the Subscription Agreement); at the end of the agreement, the standard erasure applies. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
staff_member_id | Staff member (key from staff_members). | integer | Yes |
branch_id | Key of the branch. | integer | No |
kind | Type of record. Allowed values: work (work period), break. | text, max. 8 characters | Yes |
start_at | Start, as recorded (server time). | date and time | Yes |
end_at | End, as recorded (server time); empty as long as the record is open. | date and time | No |
start_source | Where the start was recorded. Allowed values: smartphone (instructor environment on the smartphone, also for office staff), correction (correction or entry by your organisation in the management environment). | text, max. 16 characters | Yes |
end_source | Where the end was recorded. Allowed values: smartphone (instructor environment on the smartphone, also for office staff), correction (correction or entry by your organisation in the management environment). | text, max. 16 characters | No |
time_period_id | Closed period the record belongs to (key from time_periods). | integer | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: staff_member_id refers to staff_members.id; branch_id refers to branches.id; time_period_id refers to time_periods.id.
time_entry_corrections: Corrections of time records, with the original and the new value, who requested or made them, when and why. The Platform keeps them for five years from the day after the last day of the work period or of the period they relate to and then erases them (Article 6.10 of the Subscription Agreement); at the end of the agreement, the standard erasure applies. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
time_entry_id | Corrected record (key from time_entries). | integer | Yes |
field | Corrected time. Allowed values: start_at (start), end_at (end). | text, max. 16 characters | Yes |
old_value | Original value; empty if it was missing, for example if the end was not recorded. | date and time | No |
new_value | New value. | date and time | Yes |
reason | Reason for the correction. | text, max. 500 characters | Yes |
status | Status of the correction. Allowed values: requested (requested by the staff member), approved (approved and applied), refused (rejected), applied (made directly by your organisation). | text, max. 16 characters | Yes |
requested_by_user_id | User who requested or made the correction (key from users). | integer | No |
decided_by_user_id | User who approved or rejected the requested correction (key from users). | integer | No |
decided_at | Time of the decision. | date and time | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: time_entry_id refers to time_entries.id; requested_by_user_id refers to users.id; decided_by_user_id refers to users.id.
dimona_declarations: Flexi-Dimona declarations that BIQSDRIVE submitted to the RSZ in the name and on the instructions of your organisation, with its own RSZ access (declaration, change and cancellation), with the response from the RSZ. The Platform only submits flexi-Dimona declarations. The INSZ is only stored with the staff member (staff_members). The Platform keeps them for five years from the day after the last day of the work period or of the period they relate to and then erases them (Article 6.10 of the Subscription Agreement); at the end of the agreement, the standard erasure applies. Key: id.
| Field | Description | Type | Required |
|---|---|---|---|
id | Unique key of the record in this file. | integer | Yes |
staff_member_id | Staff member (key from staff_members). | integer | Yes |
company_id | Employer for whom the declaration was made (key from companies). | integer | Yes |
action | Type of declaration. Allowed values: in (declaration of employment), update (change), cancel (cancellation). | text, max. 8 characters | Yes |
worker_type | Type of worker as declared: always FLX (flexi-job worker). | text, max. 3 characters | Yes |
joint_committee | Joint committee as declared: always XXX (flexi-job). | text, max. 8 characters | Yes |
work_date | Date of the work period, or first day of the declared period. | date | Yes |
end_date | Last day of the declared period, for a declaration covering a period (written flexi-job employment contract); empty for a declaration for a single day. | date | No |
start_time | Start time as declared. | time (HH:MM) | No |
end_time | End time as declared. | time (HH:MM) | No |
triggered_by | What triggered the declaration. Allowed values: planning (confirmation of the start of the shift in the planning), time_clock (time record), office (your organisation). | text, max. 16 characters | Yes |
time_entry_id | Time record that triggered the declaration, for example a later start (key from time_entries). | integer | No |
status | Status of the declaration. Allowed values: queued (ready to send), held (held back before sending by a user with the HR permission of your organisation; not sent), sent (sent, awaiting response), ok (accepted by the RSZ, response OK), nok (accepted by the RSZ, response NOK: not accepted as a flexi-job), refused (rejected by the RSZ), error (technical error). | text, max. 16 characters | Yes |
billable | Counts as a charged flexi-Dimona declaration (Annex B.2 of the Subscription Agreement): yes for a declaration (in) accepted by the RSZ, with or without warnings, including with the response NOK; no for a change, a cancellation, a rejection or a technical error. | yes/no | Yes |
declaration_reference | Reference of the declaration at the RSZ. | text, max. 64 characters | No |
period_reference | Number of the Dimona period at the RSZ. | text, max. 64 characters | No |
sent_at | Time the declaration was sent to the RSZ. | date and time | No |
response_at | Time of the response from the RSZ. | date and time | No |
response_detail | Explanation of a negative response, a rejection or an error, as given by the RSZ. | text, max. 500 characters | No |
created_by_user_id | User who sent or confirmed the declaration manually, or held it back before sending (key from users); empty for an automatic declaration. | integer | No |
created_at | Time the record was created. | date and time | Yes |
updated_at | Time the record was last changed. | date and time | Yes |
Relations: staff_member_id refers to staff_members.id; company_id refers to companies.id; time_entry_id refers to time_entries.id; created_by_user_id refers to users.id.
Formats and standards used:
| Format | Standard | Use |
|---|---|---|
| CSV | RFC 4180, UTF-8 character encoding | Tables, easy to import into other software |
| XLSX | Office Open XML (ISO/IEC 29500) | Tables for Excel and similar programs |
| JSON | RFC 8259, with a JSON Schema description | Complete structure with relationships, for a switch to other software |
| ISO 32000 | Invoices and generated documents | |
| Dates and times | ISO 8601 (for example 2026-10-01T09:30:00+02:00) | In all export files |
5. Switching to another supplier or stopping
You can switch to another supplier or to your own infrastructure at any time, or ask for your data to be erased. This is how it works:
| Step | Period | What happens |
|---|---|---|
| 1. Termination | Monthly Plan: at the end of the calendar month following the month in which notice is given. Annual Plan: at the end of the current period if notice is given at least 30 days in advance, or mid-term, two months after notice is given | You tell us through your Account or at info@biqsdrive.com that you want to switch or have your data erased |
| 2. Transition period (on request) | Up to 30 days, extendable once | The service continues at the ordinary licence fee for that period; we provide reasonable help with the switch and keep security at the required level |
| 3. Retrieval period | 30 days | You retrieve your full export free of charge, also after termination for non-payment |
| 4. Erasure | After the retrieval period; backups within 35 days after the end of the retrieval period | All Customer Data is erased; on request we confirm this in writing |
If a switch within 30 days is not technically feasible, we will tell you within 14 working days, with an explanation and an alternative period of no more than seven months.
To make a switch go smoothly, include the following in your request: the desired end date, whether you want a transition period, the format or supplier you are switching to, and a contact person.
6. Costs
| What | Cost |
|---|---|
| Standard export (at any time, also during the retrieval period) | Always free |
| Erasure of your data | Always free |
| Switching assistance that we must provide under the Data Act | Up to and including 11 January 2027: no more than the costs directly linked to it, as stated in advance in the Price List. From 12 January 2027: free |
| Additional services you request yourself (such as training, cleaning up data or converting it to the format of a new supplier, custom work) | At the rates in the Price List, after a prior quote |
| Help with a switch to BIQSDRIVE | Free, unless your Order provides otherwise |
| Early termination of an Annual Plan | The annual discount granted for the months that have elapsed becomes payable (Article 4.5 of the Subscription Agreement), never more than the licence fee for the remaining term. Amounts paid in advance for the remaining months are refunded after set-off |
| Licence fee during the notice period and a requested transition period | Payable in accordance with the Price List |
7. What the export does not include
The export contains all the data that your organisation has entered or generated in the Platform. The only exclusions are:
- the source code, the algorithms and the software of the Platform;
- internal logs, security and monitoring data of BIQSDRIVE;
- aggregated, anonymised statistics;
- passwords, keys and other authentication data;
- the internal configuration of the BIQSDRIVE infrastructure;
- data that is only available from a third party, such as Isabel NV, a review or survey service (Tally, Klantenvertellen or Google), Pay. or the systems of a government or an exam centre;
- outgoing and unmatched bank transactions, which the Platform does not store (Annex D.4 of the Subscription Agreement);
- the data on leave, absences, unavailability and leave balances of a staff member that the Platform took out of use thirty days after your organisation set that staff member to inactive, and that your organisation has not restored (Article 6.10 of the Subscription Agreement).
These exclusions do not prevent a switch. Your new supplier must set up connections with third parties (such as governments, exam centres or your mail server) again itself.
8. Contact
Questions about your data or a switch: info@biqsdrive.com. Questions about the register of data structures: data@biqsdrive.com. You can also use the support function in the Platform.
Free trial period: you can always make an export during the trial period. If you do not activate after a trial period, we keep your data for 30 days after the end of the agreement. After that we erase it, and the copies in backups no later than 35 days later. During those 30 days you can still request an export at info@biqsdrive.com.
BIQSDRIVE is a product of BIQS IT BV, Kolmen 35 box 1, 3980 Tessenderlo-Ham, enterprise number and VAT BE 0899.469.023, RLE Antwerp, Hasselt division.