POST /v1/terminal/readers/<reader_id>/collect_inputs with inputs array; each input object has type (one of signature, selection, text, numeric, email, phone) and required (boolean)
For a selection input, include selection.choices array with display_text strings and the value to be returned when chosen
Poll the reader action via GET /v1/terminal/readers/<reader_id> until action.status=succeeded; the collected values are in action.collect_inputs_result.inputs
collect_inputs can be called independently of a PaymentIntent for workflows like consent capture, loyalty number entry, or tip selection before payment
If collect_inputs is chained with process_payment_intent, the recommended order is collect_inputs first, then process_payment_intent on the same reader
Known gotchas
collect_inputs is only supported on the Stripe Reader S700 and BBPOS WisePOS E; it is not supported on the BBPOS Chipper 2X BT or older reader models
The reader must be connected and idle before calling collect_inputs; any in-progress action must be canceled first
Signature images returned are base64-encoded SVG strings; store them securely as receipt evidence and do not display them in unsanitized HTML contexts
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp