Get a Reader Status

GET/v0.1/merchants/{merchant_code}/readers/{reader_id}/status

Provides the last known status for a Reader.

This endpoint allows you to retrieve updates from the connected card reader, including the current screen being displayed during the payment process and the device status (battery level, connectivity, and update state).

Supported States

  • IDLE – Reader ready for next transaction
  • SELECTING_TIP – Waiting for tip input
  • WAITING_FOR_CARD – Awaiting card insert/tap
  • WAITING_FOR_PIN – Waiting for PIN entry
  • WAITING_FOR_SIGNATURE – Waiting for customer signature
  • UPDATING_FIRMWARE – Firmware update in progress

Device Status

  • ONLINE – Device connected and operational
  • OFFLINE – Device disconnected (last state persisted)

Note: If the target device is a Solo, it must be in version 3.3.39.0 or higher.

OAuth scopes: Requires one of: readers.read.

Required permissions:

  • readers.view

Authorization

Use one of the following alternatives:

  • apiKey
  • oauth2 with scopes readers.read
Authorization guide

Path parameters

Responses

200application/json

Response with the device status.

  • dataobjectrequired
    Show 7 properties
    • statusstringrequired
      Options:"ONLINE""OFFLINE"

      Status of a device

      Example: "ONLINE"

    • format: floatminimum: 0maximum: 100

      Battery level percentage

      Example: 10.5

    • Battery temperature in Celsius

      Example: 35

    • Options:"btle""edge""gprs""lte""umts""usb""Wi-Fi"

      Type of connection used by the device

      Example: "Wi-Fi"

    • Firmware version of the device

      Example: "3.3.3.21"

    • format: date-time

      Timestamp of the last activity from the device

      Example: "2025-09-25T15:20:00Z"

    • statestring
      Options:"IDLE""SELECTING_TIP""WAITING_FOR_CARD""WAITING_FOR_PIN""WAITING_FOR_SIGNATURE""UPDATING_FIRMWARE"

      Latest state of the device

      Example: "IDLE"

400application/json

Response when given params (or one of them) are invalid

  • errorsobjectrequired
    Show 2 properties
    • typestringrequired
      Options:"INVALID_AFFILIATE_KEY""APP_OUTDATED""INVALID_BEARER_TOKEN""INVALID_USER_AGENT""NOT_ENOUGH_UNPAID_PAYOUTS""DUPLICATE_HEADERS"

      Key indicating type of error

    • detailstring

      Fuller message giving context to error

application/problem+json

  • typestringrequired
    format: uri

    A URI reference that identifies the problem type.

    Example: "https://developer.sumup.com/problem/not-found"

  • titlestring

    A short, human-readable summary of the problem type.

    Example: "Requested resource couldn't be found."

  • statusinteger

    The HTTP status code generated by the origin server for this occurrence of the problem.

    Example: 404

  • detailstring

    A human-readable explanation specific to this occurrence of the problem.

    Example: "The requested resource doesn't exist or does not belong to you."

  • instancestring
    format: uri

    A URI reference that identifies the specific occurrence of the problem.

{
  "detail": "Bad Request",
  "status": 400,
  "title": "Bad Request",
  "type": "https://developer.sumup.com/problem/bad-request"
}
401application/json

Response when given merchant's token is invalid

  • errorsobjectrequired
    Show 2 properties
    • detailstringrequired

      Fuller message giving context to error

    • typestring
      Options:"INVALID_ACCESS_TOKEN""INVALID_PASSWORD"

      Key indicating type of error. Present only for typed 401 responses (e.g. invalid token, invalid password). Absent for generic unauthorized responses.

application/problem+json

  • typestringrequired
    format: uri

    A URI reference that identifies the problem type.

    Example: "https://developer.sumup.com/problem/not-found"

  • titlestring

    A short, human-readable summary of the problem type.

    Example: "Requested resource couldn't be found."

  • statusinteger

    The HTTP status code generated by the origin server for this occurrence of the problem.

    Example: 404

  • detailstring

    A human-readable explanation specific to this occurrence of the problem.

    Example: "The requested resource doesn't exist or does not belong to you."

  • instancestring
    format: uri

    A URI reference that identifies the specific occurrence of the problem.

{
  "detail": "Unauthorized",
  "status": 401,
  "title": "Unauthorized",
  "type": "https://developer.sumup.com/problem/unauthorized"
}
404application/json

Response when given reader is not found

  • errorsobjectrequired
    Show 1 property
    • detailstringrequired

      Fuller message giving context to error

application/problem+json

  • typestringrequired
    format: uri

    A URI reference that identifies the problem type.

    Example: "https://developer.sumup.com/problem/not-found"

  • titlestring

    A short, human-readable summary of the problem type.

    Example: "Requested resource couldn't be found."

  • statusinteger

    The HTTP status code generated by the origin server for this occurrence of the problem.

    Example: 404

  • detailstring

    A human-readable explanation specific to this occurrence of the problem.

    Example: "The requested resource doesn't exist or does not belong to you."

  • instancestring
    format: uri

    A URI reference that identifies the specific occurrence of the problem.

{
  "detail": "The requested resource doesn't exist or does not belong to you.",
  "status": 404,
  "title": "Requested resource couldn't be found.",
  "type": "https://developer.sumup.com/problem/not-found"
}

Type to search…