---
title: "Get Reader Settings"
description: "Returns the menu lock settings for a Solo reader.\n\nFor an online reader, returns the current settings. For an offline reader,\nreturns the last saved settings, which may differ from its current configuration.\nReturns `404` if the reader is offline and no saved settings are available.\n\nThe response may include the menu lock PIN.\n\n\n**OAuth scopes:** Requires one of: `readers.read`.\n\n**Required permissions:**\n\n- `readers.checkouts.view`"
image: "https://developer.sumup.com/og/index.png"
---

> Documentation Index
> Fetch the complete documentation index at: https://developer.sumup.com/llms.txt
> Use this file to discover all available pages before exploring further.

Path: SumUp REST API › Readers

`GET /v0.1/merchants/{merchant_code}/readers/{reader_id}/settings`

Returns the menu lock settings for a Solo reader.

For an online reader, returns the current settings. For an offline reader,
returns the last saved settings, which may differ from its current configuration.
Returns `404` if the reader is offline and no saved settings are available.

The response may include the menu lock PIN.

**OAuth scopes:** Requires one of: `readers.read`.

**Required permissions:**

- `readers.checkouts.view`

## Authentication

Requires one of the following:

- `apiKey`, http, header `Authorization`
- `oauth2`, oauth2, scopes: `readers.read`

## Path parameters

- `merchant_code` (`GetReaderSettings.path.merchant_code`; string, required) — The merchant code of the account that owns the reader.
- `reader_id` (`GetReaderSettings.path.reader_id`; string, required) — The unique identifier of the reader.

## Code samples

### CLI

```bash
sumup readers settings get "rdr_3MSAFM23CK82VSTT4BN6RWSQ65" \
  --merchant-code "MC0X0ABC"

```

### JavaScript

```typescript
import SumUp from "@sumup/sdk";

async function main() {
  const client = new SumUp({ apiKey: "sup_sk_your_api_key" });

  const result = await client.readers.getReaderSettings(
    "MC0X0ABC",
    "rdr_3MSAFM23CK82VSTT4BN6RWSQ65"
  );
  console.log(result);
}

main().catch(console.error);

```

### .NET

```csharp
using System;
using System.Collections.Generic;
using System.Threading.Tasks;
using SumUp;

public static class Program
{
    public static async Task Main()
    {
        using var client = new SumUpClient();
        var response = await client.Readers.GetReaderSettingsAsync(
            "your-merchant-code",
            "your-reader-id");

        Console.WriteLine(response.StatusCode);
    }
}

```

### Java

```java
import com.sumup.sdk.SumUpClient;

public final class GetReaderSettingsSample {
  public static void main(String[] args) throws Exception {
    var client = new SumUpClient();

    var result = client.readers().getReaderSettings(
            "MC0X0ABC",
            "rdr_3MSAFM23CK82VSTT4BN6RWSQ65"
        );
    System.out.println(result);
  }
}

```

### Python

```python
import os

import sumup

client = sumup.Sumup(api_key=os.environ["SUMUP_API_KEY"])
result = client.readers.get_reader_settings(
    "MC0X0ABC",
    "rdr_3MSAFM23CK82VSTT4BN6RWSQ65",
)
print(result)

```

### PHP

```php
<?php

declare(strict_types=1);

require __DIR__ . '/vendor/autoload.php';

$sumup = new \SumUp\SumUp('sup_sk_your_api_key');

$result = $sumup->readers()->getReaderSettings(
    'MC0X0ABC',
    'rdr_3MSAFM23CK82VSTT4BN6RWSQ65',
);

var_dump($result);

```

### Go

```go
package main

import (
	"context"
	"fmt"

	"github.com/sumup/sumup-go"
)

func main() {
	client := sumup.NewClient()
	result, err := client.Readers.GetReaderSettings(context.TODO(), "MC0X0ABC", "rdr_3MSAFM23CK82VSTT4BN6RWSQ65")
	if err != nil {
		panic(err.Error())
	}

	fmt.Printf("%+v\n", result)
}

```

### Rust

```rust
use sumup::{Authorization, Client};
#[tokio::main]
async fn main() {
    let client = Client::default()
        .with_authorization(Authorization::api_key("sup_sk_test_..."));
    let response = client
        .readers()
        .get_reader_settings("MERCHANT_CODE", "READER_ID")
        .await
        .expect("get_reader_settings request failed");
    println!("{response:#?}");
}

```

### cURL

```bash
curl --request GET \
  --url https://api.sumup.com/v0.1/merchants/MC0X0ABC/readers/rdr_3MSAFM23CK82VSTT4BN6RWSQ65/settings \
  --header 'Authorization: Bearer <token>'
```

## Responses

### 200

Reader settings retrieved successfully.

#### Example

```json
{
  "data": {
    "menu_lock": {
      "enabled": true,
      "passcode": "1234"
    }
  }
}
```

- `data` (`GetReaderSettings.response.200.data`; object, required)
  - `menu_lock` (`GetReaderSettings.response.200.data.menu_lock`; object, required) — Menu lock configuration. Fields may be absent if no value is available.
    - `enabled` (`GetReaderSettings.response.200.data.menu_lock.enabled`; boolean, optional) — Whether menu lock is enabled.
      - example `true`
    - `passcode` (`GetReaderSettings.response.200.data.menu_lock.passcode`; string, optional) — Four-digit PIN used to unlock the reader's menu.
      - format `password`; pattern `^[0-9]{4}$`; example `"1234"`

### 401

Unauthorized

#### Body (application/json)

- `errors` (`GetReaderSettings.response.401.errors`; object, required)
  - `detail` (`GetReaderSettings.response.401.errors.detail`; string, required) — Error message
  - `type` (`GetReaderSettings.response.401.errors.type`; string, optional) — Error code

##### Example

```json
{
  "errors": {
    "detail": "string",
    "type": "string"
  }
}
```

#### Body (application/problem+json)

- `type` (`GetReaderSettings.response.401.application-problem-json.type`; string, required) — A URI reference that identifies the problem type.
  - format `uri`; example `"https://developer.sumup.com/problem/not-found"`
- `title` (`GetReaderSettings.response.401.application-problem-json.title`; string, optional) — A short, human-readable summary of the problem type.
  - example `"Requested resource couldn't be found."`
- `status` (`GetReaderSettings.response.401.application-problem-json.status`; integer, optional) — The HTTP status code generated by the origin server for this occurrence of the problem.
  - example `404`
- `detail` (`GetReaderSettings.response.401.application-problem-json.detail`; string, optional) — A human-readable explanation specific to this occurrence of the problem.
  - example `"The requested resource doesn't exist or does not belong to you."`
- `instance` (`GetReaderSettings.response.401.application-problem-json.instance`; string, optional) — A URI reference that identifies the specific occurrence of the problem.
  - format `uri`; example `"https://api.sumup.com/v0.1/checkouts/4e425463-3e1b-431d-83fa-1e51c2925e99"`

##### Example

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

### 404

The reader was not found, or it is offline and has no saved settings.

#### Body (application/json)

- `errors` (`GetReaderSettings.response.404.errors`; object, required)
  - `detail` (`GetReaderSettings.response.404.errors.detail`; string, required) — Fuller message giving context to error

##### Example

```json
{
  "errors": {
    "detail": "Not Found"
  }
}
```

#### Body (application/problem+json)

- `type` (`GetReaderSettings.response.404.application-problem-json.type`; string, required) — A URI reference that identifies the problem type.
  - format `uri`; example `"https://developer.sumup.com/problem/not-found"`
- `title` (`GetReaderSettings.response.404.application-problem-json.title`; string, optional) — A short, human-readable summary of the problem type.
  - example `"Requested resource couldn't be found."`
- `status` (`GetReaderSettings.response.404.application-problem-json.status`; integer, optional) — The HTTP status code generated by the origin server for this occurrence of the problem.
  - example `404`
- `detail` (`GetReaderSettings.response.404.application-problem-json.detail`; string, optional) — A human-readable explanation specific to this occurrence of the problem.
  - example `"The requested resource doesn't exist or does not belong to you."`
- `instance` (`GetReaderSettings.response.404.application-problem-json.instance`; string, optional) — A URI reference that identifies the specific occurrence of the problem.
  - format `uri`; example `"https://api.sumup.com/v0.1/checkouts/4e425463-3e1b-431d-83fa-1e51c2925e99"`

##### Example

```json
{
  "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"
}
```

### 422

The reader model is not supported, or the reader could not return its settings.

#### Body (application/json)

- `errors` (`GetReaderSettings.response.422.errors`; object, required)

##### Example

```json
{
  "errors": {
    "detail": "Reader settings are only supported for Solo readers.",
    "type": "UNSUPPORTED_DEVICE_MODEL"
  }
}
```

#### Body (application/problem+json)

- `type` (`GetReaderSettings.response.422.application-problem-json.type`; string, required) — A URI reference that identifies the problem type.
  - format `uri`; example `"https://developer.sumup.com/problem/not-found"`
- `title` (`GetReaderSettings.response.422.application-problem-json.title`; string, optional) — A short, human-readable summary of the problem type.
  - example `"Requested resource couldn't be found."`
- `status` (`GetReaderSettings.response.422.application-problem-json.status`; integer, optional) — The HTTP status code generated by the origin server for this occurrence of the problem.
  - example `404`
- `detail` (`GetReaderSettings.response.422.application-problem-json.detail`; string, optional) — A human-readable explanation specific to this occurrence of the problem.
  - example `"The requested resource doesn't exist or does not belong to you."`
- `instance` (`GetReaderSettings.response.422.application-problem-json.instance`; string, optional) — A URI reference that identifies the specific occurrence of the problem.
  - format `uri`; example `"https://api.sumup.com/v0.1/checkouts/4e425463-3e1b-431d-83fa-1e51c2925e99"`

##### Example

```json
{
  "detail": "Reader settings are only supported for Solo readers.",
  "status": 422,
  "title": "Unsupported Device Model",
  "type": "https://developer.sumup.com/problem/unsupported-device-model"
}
```


Source: https://developer.sumup.com/api/readers/get-reader-settings/index.md
