---
title: "Add or remove an in-person scanner PIN"
method: POST
path: "/v1/merchants/{id}/scanners"
tags: ["Point of Sale"]
---

# Add or remove an in-person scanner PIN

`POST /v1/merchants/{id}/scanners`

## Request

- Base URL: `https://api.insumermodel.com`
- URL: `https://api.insumermodel.com/v1/merchants/{id}/scanners`
- Auth: API key in header `X-API-Key`

Add or remove a scanner PIN on a merchant you manage, so a partner can run a login-less branded scanner with no account of its own. Only the API key that created the merchant can call this. A merchant can hold a limited number of scanners. PINs are stored salted + hashed and are never returned. Send `{ name?, pin }` to add, or `{ remove: scannerId }` to remove.

## Path parameters

- `id` string, required

## Request body

- union
  - object
    - `name` string: Scanner label (defaults to "Register").
    - `pin` string, required: 4-8 digit PIN.
  - object
    - `remove` string, required: Scanner id to remove.

## Response `200`

Scanner removed

- object
  - `ok` true
  - `data` object
    - `removed` string
    - `totalScanners` integer
    - `changed` boolean
  - `meta` Meta
    - `version` string
    - `timestamp` string, date-time

## Other responses

- `201`: Scanner added
- `400`: PIN not 4-8 digits, or the merchant has reached its limit on scanners
- `401`: Invalid or missing API key
- `403`: API key does not own this merchant
- `404`: Merchant not found
- `429`: Rate limit exceeded. API-key requests count against the key's daily limit; every authenticated response carries X-RateLimit-Limit and X-RateLimit-Remaining headers, and a 429 additionally carries Retry-After (seconds until the window resets).
- `500`: Unexpected server error. Safe to retry; no credits are charged on a 500. Router endpoints return the standard error envelope; standalone endpoints (the ones whose 200 is a flat object) return a flat {"error": "..."} object.

---

[API](https://skmtc.dev/insumermodel/apis/insumerapi.md) · [All operations](https://skmtc.dev/insumermodel/apis/insumerapi/llms.txt) · [OpenAPI document](https://skmtc.dev/insumermodel/apis/insumerapi/revisions/91f56fe9e3d8?raw)
