Documentation Index
Fetch the complete documentation index at: https://mintlify.com/traconiq/tachoparser/llms.txt
Use this file to discover all available pages before exploring further.
ParseCard accepts the raw bytes of a tachograph driver card DDD file and returns a ParseCardResponse containing a single Card message with all decoded data. The server acquires the global mutex before parsing, so only one call executes at a time.
Proto definition
message ParseCardRequest {
bytes data = 1;
}
message ParseCardResponse {
Card card = 1;
}
Request fields
The raw binary content of the DDD driver card file. Read the file and pass its bytes directly — no base64 encoding is required when using a native gRPC client. When using
grpcurl, encode the bytes as base64 in the JSON body.Response fields
The fully decoded driver card record. Fields for both first-generation (
_1) and second-generation (_2) blocks are present; fields for the non-applicable generation will be empty.Show Card identification fields
Show Card identification fields
card_identification_and_driver_card_holder_identification_1
CardIdentificationAndDriverCardHolderIdentification
Card identification and holder identity for first-generation cards.
Show CardIdentificationAndDriverCardHolderIdentification fields
Show CardIdentificationAndDriverCardHolderIdentification fields
Whether the block’s signature was verified against the stored public keys.
Contains
card_issuing_member_state (numeric nation code), card_number (16-character decoded string), card_issuing_authority_name, card_issue_date, card_validity_begin, and card_expiry_date — all timestamps as Unix seconds.Contains
card_holder_name (with holder_surname and holder_first_names), card_holder_birth_date (year/month/day as uint32), and card_holder_preferred_language.card_identification_and_driver_card_holder_identification_2
CardIdentificationAndDriverCardHolderIdentification
Same structure as
_1, for second-generation cards. Accompanied by a second-generation signature (card_identification_and_driver_card_holder_identification_2_sig).Show Driver activity fields
Show Driver activity fields
Activity records for first-generation cards.
Show CardDriverActivityFirstGen fields
Show CardDriverActivityFirstGen fields
Whether the block’s signature was verified.
Offset pointer to the oldest day record within the activity buffer.
Offset pointer to the newest record within the activity buffer.
Repeated. Each record contains
activity_record_date (Unix timestamp), activity_daily_presence_counter, activity_day_distance (km), and repeated activity_change_info entries — each decoded into driver (bool), team (bool), card_present (bool), work_type (uint32), and minutes (uint32).Same structure as
card_driver_activity_1, for second-generation cards.Show Vehicles used fields
Show Vehicles used fields
Vehicles used records for first-generation cards.
Show CardVehiclesUsedFirstGen fields
Show CardVehiclesUsedFirstGen fields
Whether the block’s signature was verified.
Index of the most recent vehicle record.
Repeated. Each record contains
vehicle_odometer_begin, vehicle_odometer_end (decoded km), vehicle_first_use, vehicle_last_use (Unix timestamps), vehicle_registration (VehicleRegistrationIdentification), and vu_data_block_counter.Same structure as
_1 for second-generation cards, with one additional field per record: vehicle_identification_number (decoded VIN string).Show Event data fields
Show Event data fields
Event records for first-generation cards.
Show CardEventDataFirstGen fields
Show CardEventDataFirstGen fields
Whether the block’s signature was verified.
Repeated array of event type buckets (6 buckets for first-generation cards). Each bucket contains repeated
card_event_records, where each record has event_type (uint32), event_begin_time, event_end_time (Unix timestamps), and event_vehicle_registration.Same structure as
_1 for second-generation cards, with 11 event type buckets instead of 6.Show Fault data fields
Show Fault data fields
Fault records for first-generation cards.
Show CardFaultDataFirstGen fields
Show CardFaultDataFirstGen fields
Whether the block’s signature was verified.
Repeated array of fault type buckets (2 buckets). Each bucket contains repeated
card_fault_records, where each record has fault_type (uint32), fault_begin_time, fault_end_time (Unix timestamps), and fault_vehicle_registration.Same structure as
_1 for second-generation cards.Show Additional card fields
Show Additional card fields
ICC identification for first-generation cards. Contains
clock_stop, card_extended_serial_number, card_approval_number, card_personaliser_id, embedder_ic_assembler_id, and ic_identifier.ICC identification for second-generation cards. Same structure as
_1 but with a ExtendedSerialNumberSecondGen serial number.Application identification for first-generation cards. Contains event/fault counts per type, activity structure length, number of vehicle and place records.
Application identification for second-generation cards. Adds GNSS AD record count, specific condition record count, and vehicle unit record count.
Place/daily work period records for first-generation cards. Each
PlaceRecordFirstGen contains entry_time, entry_type_daily_work_period, daily_work_period_country, daily_work_period_region, and vehicle_odometer_value.Place/daily work period records for second-generation cards. Each
PlaceRecordSecondGen adds an entry_gnss_place_record with GNSS coordinates.Vehicle unit records from the card. Each
CardVehicleUnitRecord contains time_stamp, manufacturer_code, device_id, and vu_software_version.GNSS accumulated driving records. Each
GNSSAccumulatedDrivingRecord contains time_stamp, gnss_place_record (with coordinates), and vehicle_odometer_value.Border crossing records (second-generation v2 cards). Each
CardBorderCrossingRecord contains country_left, country_entered, gnss_place_auth_record, and vehicle_odometer_value.Load/unload operation records (second-generation v2 cards). Each
CardLoadUnloadRecord contains time_stamp, operation_type, gnss_place_auth_record, and vehicle_odometer_value.Load type entry records (second-generation v2 cards). Each
CardLoadTypeEntryRecord contains time_stamp and load_type_entered.Specific condition records for first-generation cards. Each
SpecificConditionRecord contains entry_time and specific_condition_type.Specific condition records for second-generation cards.
Driving licence information for first-generation cards. Contains
driving_licence_issuing_authority, driving_licence_issuing_nation, and driving_licence_number.Driving licence information for second-generation cards.
The card’s own first-generation certificate.
The member state certificate for first-generation cards.
The motion sensor authority certificate for second-generation cards.
The card’s signing certificate for second-generation cards.
The certification authority certificate for second-generation cards.
The link certificate for cross-generation verification.
Usage examples
Using dddclientcat drivercard.ddd | ./dddclient -addr localhost:50055 -card
Card message as JSON to stdout.
Using grpcurl
Encode the DDD file as base64, then pass it in the JSON body:
grpcurl -plaintext \
-d "{\"data\": \"$(base64 -w 0 drivercard.ddd)\"}" \
localhost:50055 proto.DDDParser/ParseCard