{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/stripe/main/json-schema/stripe-terminal-reader-schema.json", "title": "TerminalReaderReader", "description": "A Reader represents a physical device for accepting payment details.\n\nRelated guide: [Connecting to a reader](https://stripe.com/docs/terminal/payments/connect-reader)", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/stripe-terminal-api-openapi.yml#/components/schemas/terminal.reader", "properties": { "action": { "anyOf": [ { "$ref": "#/$defs/terminal_reader_reader_resource_reader_action" } ], "description": "The most recent action performed by the reader." }, "device_sw_version": { "description": "The current software version of the reader.", "maxLength": 5000, "type": [ "string", "null" ] }, "device_type": { "description": "Type of reader, one of `bbpos_wisepad3`, `stripe_m2`, `bbpos_chipper2x`, `bbpos_wisepos_e`, `verifone_P400`, or `simulated_wisepos_e`.", "enum": [ "bbpos_chipper2x", "bbpos_wisepad3", "bbpos_wisepos_e", "simulated_wisepos_e", "stripe_m2", "verifone_P400" ], "type": "string" }, "id": { "description": "Unique identifier for the object.", "maxLength": 5000, "type": "string" }, "ip_address": { "description": "The local IP address of the reader.", "maxLength": 5000, "type": [ "string", "null" ] }, "label": { "description": "Custom label given to the reader for easier identification.", "maxLength": 5000, "type": "string" }, "livemode": { "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", "type": "boolean" }, "location": { "anyOf": [ { "maxLength": 5000, "type": "string" }, { "$ref": "#/$defs/terminal.location" } ], "description": "The location identifier of the reader.", "x-expansionResources": { "oneOf": [ { "$ref": "#/$defs/terminal.location" } ] } }, "metadata": { "additionalProperties": { "maxLength": 500, "type": "string" }, "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", "type": "object" }, "object": { "description": "String representing the object's type. Objects of the same type share the same value.", "enum": [ "terminal.reader" ], "type": "string" }, "serial_number": { "description": "Serial number of the reader.", "maxLength": 5000, "type": "string" }, "status": { "description": "The networking status of the reader.", "maxLength": 5000, "type": [ "string", "null" ] } }, "required": [ "device_type", "id", "label", "livemode", "metadata", "object", "serial_number" ], "type": "object", "x-expandableFields": [ "action", "location" ], "x-resourceId": "terminal.reader", "$defs": { "address": { "type": "object", "description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.", "x-ae-placeholder": true }, "terminal.location": { "description": "A Location represents a grouping of readers.\n\nRelated guide: [Fleet management](https://stripe.com/docs/terminal/fleet/locations)", "properties": { "address": { "$ref": "#/$defs/address" }, "configuration_overrides": { "description": "The ID of a configuration that will be used to customize all readers in this location.", "maxLength": 5000, "type": "string" }, "display_name": { "description": "The display name of the location.", "maxLength": 5000, "type": "string" }, "id": { "description": "Unique identifier for the object.", "maxLength": 5000, "type": "string" }, "livemode": { "description": "Has the value `true` if the object exists in live mode or the value `false` if the object exists in test mode.", "type": "boolean" }, "metadata": { "additionalProperties": { "maxLength": 500, "type": "string" }, "description": "Set of [key-value pairs](https://stripe.com/docs/api/metadata) that you can attach to an object. This can be useful for storing additional information about the object in a structured format.", "type": "object" }, "object": { "description": "String representing the object's type. Objects of the same type share the same value.", "enum": [ "terminal.location" ], "type": "string" } }, "required": [ "address", "display_name", "id", "livemode", "metadata", "object" ], "title": "TerminalLocationLocation", "type": "object", "x-expandableFields": [ "address" ], "x-resourceId": "terminal.location" }, "terminal_reader_reader_resource_reader_action": { "type": "object", "description": "Referenced by this document but never defined in it. API Evangelist added this empty placeholder so the document resolves; the shape is unknown and is NOT a claim about the API.", "x-ae-placeholder": true } } }