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

# Get a signature

`POST /v1/device/read-signature`

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.net/clover/apis/platform-api.md) · [All operations](https://skmtc.net/clover/apis/platform-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/clover/platform-api/versions/08da265101a3/schema)
