{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/billdesk/main/json-schema/billdesk-device-schema.json", "title": "Device", "x-generated": "2026-10-14", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/billdesk-payments-openapi.yml#/components/schemas/Device", "type": "object", "x-stoplight": { "id": "1dup8vlut7f5l" }, "properties": { "init_channel": { "type": "string", "description": "Initiating channel,accepted values are internet,app or kiosk", "enum": [ "internet", "app", "kiosk" ] }, "ip": { "type": "string", "description": "Actual end customer IP address is required to be passed", "maxLength": 15 }, "user_agent": { "type": "string", "description": "Exact content of the HTTP user-agent header\n\nNote: If the total length of the User-Agent sent by the browser exceeds 2048 characters, truncate the excess portion", "pattern": "=^[A-Za-z0-9\\\\_\\\\:\\\\-\\\\,\\\\;\\\\/\\\\)\\\\(\\\\.\\\\s\\\\+\\\\[\\\\]\\\\=@]{10,255}$" }, "accept_header": { "type": "string", "description": "Customer browser accept header values", "maxLength": 255, "pattern": "^[0-9A-Za-z\\\\.\\\\+\\\\-\\\\/\\\\=\\\\*\\\\,\\\\;]{10,255}$" }, "browser_language": { "type": "string", "description": "Value representing the browser language, returned from navigator.language property, for eg. en-US", "maxLength": 5, "pattern": "^[A-Za-z\\\\-]{2,5}$" }, "browser_javascript_enabled": { "type": "string", "enum": [ "true", "false" ], "description": "Boolean (true or false) that represents the ability of the cardholder browser to execute JavaScript.\nNote – if true, additional attributes of browser_tz, browser_color_depth, browser_java_enabled, browser_screen_height, browser_screen_width are mandatory" }, "browser_tz": { "type": "string", "description": "Time-zone offset in minutes between UTC and the Cardholder browser local time.\n\nNote that the offset is positive if the local time zone is behind UTC and negative if it is ahead. For eg. if UTC -5 hours then browser_tz = 300 and if UTC +5 hours then browser_tz = -300’", "pattern": "^[0-9\\\\+\\\\-]{2,6}$", "maxLength": 6 }, "browser_color_depth": { "type": "string", "description": "Value representing the bit depth of the colour palette for displaying images, in bits per pixel.\n\nObtained from Cardholder browser using the screen.Color.Depth property. In case the actual vaue does not exist in the allowed values, use the closest lower value,for eg. 32", "maxLength": 5, "pattern": "^[0-9]{2,5}$" }, "browser_java_enabled": { "type": "string", "description": "Boolean (true or false) that represents the ability of the cardholder browser to execute Java. Value is returned from the navigator.javaEnabled property", "enum": [ "true", "false" ] }, "browser_screen_height": { "type": "string", "description": "Total height of the Cardholder’s screen in pixels. Value is returned from the screen.height property for eg. 601", "pattern": "^[0-9]{2,5}$", "maxLength": 5 }, "browser_screen_width": { "type": "string", "description": "Total width of the cardholder’s screen in pixels. Value is returned from the screen.width property, for eg. 657", "pattern": "^[0-9]{2,5}$", "maxLength": 5 } }, "required": [ "init_channel", "ip", "user_agent", "accept_header", "browser_language", "browser_javascript_enabled" ] }