Creator NameRequiredAllowed: Non-empty text
Notes: Creator identity for the issuing entity.
LogiHash Documentation
This page documents the current behavior of the Try platform form and API demo: all supported fields, allowed values, required rules, and practical constraints for production-ready T-Code generation.
LogiHash supports exactly three languages: English (en), German (de), and French (fr). That applies to the console, this documentation, and the EN/DE/FR label-translation fields in forms and APIs—no other locales are offered.
Cryptographic signing keys used for T-Code verification are rotated on a 90-day cycle.
Creator identity data is account-level and must stay consistent. It is not meant to change for every T-Code. Per-item differences should go into object type, custom fields, validity date, and optional linked document metadata.
Creator NameRequiredAllowed: Non-empty text
Notes: Creator identity for the issuing entity.
Address (Street, House Number, Postal Code, City, Country)RequiredAllowed: All non-empty text values
Notes: All five address fields are mandatory.
Object TypeRequiredAllowed: Preset: ID Card, Contract, Invoice, Certificate, Diploma, Permit, Badge, Ticket, Voucher, Warranty, Membership, or custom text
Notes: Custom mode is available via "Other".
T-Code LabelOptionalAllowed: Optional text
Notes: Creator-side helper label, intentionally not encrypted.
Valid UntilRequiredAllowed: YYYY-MM-DD date, minimum today
Default: One year from today (GUI initial date)
Notes: Must be on or after today.
Creator's Logo (optional)OptionalAllowed: Image upload (PNG, JPG/JPEG, WebP, SVG as base64 data URL), max 2 MB
Notes: Click to upload logo (max 2MB).
Linked DocumentOptionalAllowed: Accepted types: PDF, DOC/DOCX, XML, XLS/XLSX, PPT/PPTX, PNG, JPG/JPEG, WebP, SVG (max 10MB)
Notes: Supports optional label and optional EN/DE/FR label translations.
Additional Custom FieldsRequiredAllowed: At least 4 entries, each with non-empty label and value
Notes: Extra rows allowed; translation toggle supports EN/DE/FR per row.
Download FormatRequiredAllowed: PNG | JPG | JPEG | WebP | SVG
Default: PNG (GUI); png (API example)
Notes: Equivalent to API field output_image_format.
The GUI supports the same visual controls reflected in display_options for API usage. Use this section to keep rendered T-Codes visually consistent across channels.
T-Code colorRequiredAllowed: black, logihash blue, navy, darkGreen, maroon, purple, darkGray, brown
Default: black (maps to #000000 in API)
Notes: These map to fixed hex values used by the API and GUI validator.
T-Code backgroundRequiredAllowed: transparent | white
Default: transparent
Notes: Transparent is ideal for overlay usage; white is print-friendly on noisy backgrounds.
Scan text enabledRequiredAllowed: true | false
Default: true
Notes: Toggles the sentence shown above or below the code.
Scan text contentRequiredAllowed: Default sentence or custom sentence
Default: “Scan to verify with the LogiHash App” (when not using custom text)
Notes: Custom mode uses your own sentence instead of the default.
Scan text positionRequiredAllowed: above | below
Default: below
Notes: Controls where the sentence appears relative to the T-Code.
Scan text alignmentRequiredAllowed: left | center | right
Default: center
Notes: Text alignment inside the generated image block.
Scan text colorRequiredAllowed: Same palette as T-Code color
Default: black
Notes: GUI and API both enforce the same allowed color set.
App buttonsRequiredAllowed: enabled true|false, style filled|outlined, color from palette
Default: enabled false; when enabled: style filled, color black
Notes: Adds in-image app-action buttons for branded visual style.
API base endpoint: https://api.logihash.com
Generate path: /api/v1/tcode/generate — Verify/Retrieve path: /api/v1/tcode/verify-retrieve
creator_nameRequiredstringAllowed: Non-empty
Notes: Core creator identity.
tcode_labelOptionalstringAllowed: Any string
Notes: Optional creator-side label.
addressRequiredobjectAllowed: Must include all address subfields as non-empty strings
Notes: street, house_number, postal_code, city, country are required.
object_typeRequiredstringAllowed: Non-empty
Notes: Usually matches one of form object types.
valid_untilRequiredstringAllowed: YYYY-MM-DD
Default: One year from creation date
Notes: Expiration date for positive verification.
output_image_formatRequiredstringAllowed: png | jpg | jpeg | webp | svg
Default: png
Notes: Selects output image format for generated T-Code.
logoOptionalstringAllowed: data URL only: image/png, image/jpeg, image/webp, image/svg+xml; maximum decoded size 2 MB
Notes: Optional image payload. Use PNG, JPG/JPEG, WebP, or SVG.
custom_fieldsRequiredarrayAllowed: Minimum 4 items; each item needs non-empty label + value
Notes: Rows can also include optional translations.
display_options.tcode_backgroundRequiredstringAllowed: transparent | white
Default: transparent
Notes: Background style of T-Code.
display_options.tcode_colorRequiredstringAllowed: #000000, #30acfd, #1e3a5f, #166534, #7f1d1d, #581c87, #374151, #78350f
Default: #000000
Notes: Only these hex values are accepted.
display_options.scan_text.enabledRequiredbooleanAllowed: true | false
Default: true
Notes: Turns the scan sentence on or off in the generated image.
display_options.scan_text.positionRequiredstringAllowed: above | below
Default: below
Notes: Placement of scan message.
display_options.scan_text.alignmentRequiredstringAllowed: left | center | right
Default: center
Notes: Horizontal alignment of scan message.
display_options.scan_text.use_customRequiredbooleanAllowed: true | false
Default: false
Notes: When false, the platform default sentence is used (see GUI scan text content).
display_options.scan_text.custom_textRequiredstring | nullAllowed: null or custom text
Default: null
Notes: Set to null when use_custom is false.
display_options.scan_text.colorRequiredstringAllowed: #000000, #30acfd, #1e3a5f, #166534, #7f1d1d, #581c87, #374151, #78350f
Default: #000000
Notes: Scan line color in the generated image.
display_options.app_buttons.enabledRequiredbooleanAllowed: true | false
Default: false
Notes: Toggles app buttons in the generated image.
display_options.app_buttons.colorRequiredstringAllowed: #000000, #30acfd, #1e3a5f, #166534, #7f1d1d, #581c87, #374151, #78350f
Default: #000000
Notes: Button color from the fixed palette.
display_options.app_buttons.styleRequiredstringAllowed: filled | outlined
Default: filled
Notes: Button rendering style in generated image.
linked_documentOptionalobjectAllowed: Object with clearly defined fields. Required: file_name (string, must not be empty), mime_type (string, must be one of: application/pdf; application/msword; application/vnd.openxmlformats-officedocument.wordprocessingml.document; application/xml; text/xml; application/vnd.ms-excel; application/vnd.openxmlformats-officedocument.spreadsheetml.sheet; application/vnd.ms-powerpoint; application/vnd.openxmlformats-officedocument.presentationml.presentation; image/png; image/jpeg; image/webp; image/svg+xml), data_base64 (base64-encoded string). Optional: label (string), enable_label_translations (boolean), label_translations (object). label_translations subfields (all optional): en (string), de (string), fr (string).
Notes: Encrypted attachment metadata and content. Strict validation applies: requests are accepted only when required fields are present, mime_type matches one of the allowed values, and the decoded document payload is at most 10MB.
This is the dedicated display_options object used in API requests.
display_options.tcode_backgroundRequiredstringAllowed: transparent | white
Default: transparent
Notes: Background style of generated T-Code.
display_options.tcode_colorRequiredstringAllowed: #000000, #30acfd, #1e3a5f, #166534, #7f1d1d, #581c87, #374151, #78350f
Default: #000000
Notes: Only this fixed color set is accepted.
display_options.scan_text.enabledRequiredbooleanAllowed: true | false
Default: true
Notes: Turns scan sentence on or off.
display_options.scan_text.positionRequiredstringAllowed: above | below
Default: below
Notes: Placement of scan text relative to T-Code.
display_options.scan_text.alignmentRequiredstringAllowed: left | center | right
Default: center
Notes: Text alignment within the image block.
display_options.scan_text.use_customRequiredbooleanAllowed: true | false
Default: false
Notes: Enables custom sentence mode.
display_options.scan_text.custom_textRequiredstring | nullAllowed: null or custom text
Default: null
Notes: When custom mode is off, use null.
display_options.scan_text.colorRequiredstringAllowed: #000000, #30acfd, #1e3a5f, #166534, #7f1d1d, #581c87, #374151, #78350f
Default: #000000
Notes: Uses the same fixed color palette.
display_options.app_buttons.enabledRequiredbooleanAllowed: true | false
Default: false
Notes: Toggles app buttons in generated image.
display_options.app_buttons.colorRequiredstringAllowed: #000000, #30acfd, #1e3a5f, #166534, #7f1d1d, #581c87, #374151, #78350f
Default: #000000
Notes: Button color from fixed palette.
display_options.app_buttons.styleRequiredstringAllowed: filled | outlined
Default: filled
Notes: Rendering style for app buttons.
Use these payloads as copy-ready templates for integration testing. Replace IDs, dates, and sample values with your own creator data.
/api/v1/tcode/generate1) Minimal valid generate request (defaults)
{
"creator_name": "LogiHash GmbH",
"tcode_label": "INV-2026-0001",
"address": {
"street": "Bahnhofstrasse",
"house_number": "1A",
"postal_code": "8001",
"city": "Zurich",
"country": "CH"
},
"object_type": "Invoice",
"valid_until": "2027-04-09",
"output_image_format": "png",
"custom_fields": [
{
"label": "Invoice No",
"value": "INV-2026-0001"
},
{
"label": "Customer",
"value": "ACME Europe"
},
{
"label": "Amount",
"value": "CHF 4,250.00"
},
{
"label": "Currency",
"value": "CHF"
}
],
"display_options": {
"tcode_background": "transparent",
"tcode_color": "#000000",
"scan_text": {
"enabled": true,
"position": "below",
"alignment": "center",
"use_custom": false,
"custom_text": null,
"color": "#000000"
},
"app_buttons": {
"enabled": false,
"color": "#000000",
"style": "filled"
}
}
}2) Generate request with custom scan text and app buttons
{
"creator_name": "LogiHash GmbH",
"address": {
"street": "Bahnhofstrasse",
"house_number": "1A",
"postal_code": "8001",
"city": "Zurich",
"country": "CH"
},
"object_type": "Certificate",
"valid_until": "2028-12-31",
"output_image_format": "webp",
"custom_fields": [
{
"label": "Certificate ID",
"value": "CERT-2026-55"
},
{
"label": "Issued To",
"value": "Jane Doe"
},
{
"label": "Program",
"value": "Advanced Compliance"
},
{
"label": "Hours",
"value": "24"
}
],
"display_options": {
"tcode_background": "white",
"tcode_color": "#1e3a5f",
"scan_text": {
"enabled": true,
"position": "above",
"alignment": "left",
"use_custom": true,
"custom_text": "Scan to verify this certificate",
"color": "#1e3a5f"
},
"app_buttons": {
"enabled": true,
"color": "#30acfd",
"style": "outlined"
}
}
}3) Generate request with linked document + label translations
{
"creator_name": "LogiHash GmbH",
"address": {
"street": "Bahnhofstrasse",
"house_number": "1A",
"postal_code": "8001",
"city": "Zurich",
"country": "CH"
},
"object_type": "Contract",
"valid_until": "2027-10-15",
"output_image_format": "svg",
"custom_fields": [
{
"label": "Contract No",
"value": "CTR-10-2026"
},
{
"label": "Counterparty",
"value": "Northwind AG"
},
{
"label": "Region",
"value": "DACH"
},
{
"label": "Signed At",
"value": "2026-10-15"
}
],
"linked_document": {
"file_name": "contract.pdf",
"mime_type": "application/pdf",
"data_base64": "<base64-encoded-file-content>",
"label": "Original Contract",
"enable_label_translations": true,
"label_translations": {
"en": "Original Contract",
"de": "Originalvertrag",
"fr": "Contrat original"
}
},
"display_options": {
"tcode_background": "transparent",
"tcode_color": "#000000",
"scan_text": {
"enabled": true,
"position": "below",
"alignment": "center",
"use_custom": false,
"custom_text": null,
"color": "#000000"
},
"app_buttons": {
"enabled": false,
"color": "#000000",
"style": "filled"
}
}
}/api/v1/tcode/verify-retrieve1) Verify using compact verification value (recommended)
{
"verification_value": "<134-char header value: version+creator_id+db_entry_id+kid+policy_flags+header_signature>"
}2) Verify a scanned value from printed material
{
"verification_value": "01TRYLH01A12B34C56D78E90F1KIDEXAMPLE00000000010Fh4Z8m8tN8qQ2fQ1fR9...<truncated>"
}Authorization: Bearer <API_KEY> — API credential for the caller.X-Client-ID: <CLIENT_ID> — Client identifier for the caller.Content-Type: application/json — Request body is JSON.Accept: application/json — Response should be JSON.