---
title: "Get a signature"
method: POST
path: "/v1/device/read-signature"
tags: ["DEVICE"]
---

# Get a signature

`POST /v1/device/read-signature`

## Request

- Base URL: `https://deviceIpOrHost:12346/connect`
- URL: `https://deviceIpOrHost:12346/connect/v1/device/read-signature`
- Auth: HTTP bearer

Displays the signature entry screen so the user can acknowledge acceptance with  their signatures. Apps do not need to call this endpoint to get a customer's signature  for a payment. The signature screen will appear automatically if the merchant's settings are configured to require one for a given transaction.

## Headers

- `User-Agent` string, required
- `X-Clover-Device-Id` string, required
- `X-POS-Id` string, required
- `X-Clover-Timeout` integer
- `Idempotency-Key` string

## Request body

- SignatureRequest: Message used to call to the display endpoint sends a text string.
  - `gzip` boolean: A flag that indicates true if the data should be gzipped before performing the base64 encoding
  - `signatureFormat` 'PNG' | 'JPG' | 'BMP' | 'SVG' | 'RAW': * `PNG` - The image data will be a PNG image in base-64 format. Example: "RXhhbXBsZSBpbWFnZQ==" * `JPG` - The image data will be a Jpeg image in base-64 format. Example: "RXhhbXBsZSBpbWFnZQ==" * `BMP` - The image data will be a Bitmap image in base-64 format. Example: "RXhhbXBsZSBpbWFnZQ==" * `SVG` - The image data will be the HTML representation of an SVG element. Example: "<svg>...</svg>" * `RAW` - The image data will be an array of array of points in JSON format. Example: "[[[10,0],[20,20],[0,20],[10,0]],[[20,0],[30,20],[40,0],[20,0]]]"

## Response `200`

Returns the signature image data in the specified format

- SignatureResponse: The response to a request for a signature
  - `signature` Signature: The signature
    - `data` string: base64-encoded, optionally gzipped data
    - `format` 'PNG' | 'JPG' | 'BMP' | 'SVG' | 'RAW': * `PNG` - The image data will be a PNG image in base-64 format. Example: "RXhhbXBsZSBpbWFnZQ==" * `JPG` - The image data will be a Jpeg image in base-64 format. Example: "RXhhbXBsZSBpbWFnZQ==" * `BMP` - The image data will be a Bitmap image in base-64 format. Example: "RXhhbXBsZSBpbWFnZQ==" * `SVG` - The image data will be the HTML representation of an SVG element. Example: "<svg>...</svg>" * `RAW` - The image data will be an array of array of points in JSON format. Example: "[[[10,0],[20,20],[0,20],[10,0]],[[20,0],[30,20],[40,0],[20,0]]]"
    - `gzip` boolean, required: A flag that indicates true if the data was gzipped before performing the base64 encoding

## Other responses

- `209`: Operation was canceled.
- `400`: The request is invalid, and subsequent calls will continue to fail; do not repeat the call.
- `401`: An invalid bearer token has been provided. The call may be repeated if the provided bearer token is updated.
- `415`: The request is invalid, and contains request data in an unsupported format. This call may be repeated if the content is changed to a supported format.
- `500`: The request processing failed with an unknown error, and the processing state of the operation is indeterminate. Do not repeat the call without additional analysis.
- `501`: The device does not have the ability to respond to the requested operation; do not repeat the call.
- `503`: The device is not available because it is currently servicing another call. This can be repeated at a later time, or cancel may be called to end the current operation.
- `504`: The Device did not respond in a timely manner. This can be repeated at a later time.

---

[API](https://skmtc.dev/clover/apis/clover-card-present-rest-api.md) - [All operations](https://skmtc.dev/clover/apis/clover-card-present-rest-api/llms.txt) - [OpenAPI document](https://skmtc.dev/clover/apis/clover-card-present-rest-api/revisions/5f7829c5114f?raw)
