Register: creates or replaces a single register on the merchant.
POST
/api/merchants/{id}/registers
deprecated
Requires: Merchants.Merchants.Update, merchant scope.
Example: `POST /api/merchants/3fa85f64-5717-4562-b3fc-2c963f66afa6/registers` with body ``` { "friendlyId": "LANE1", "name": "Front lane", "enabled": true } ``` Every other register and merchant setting is left untouched. A validation failure is reported under an indexed member name (`Registers[0].friendlyId`), matching the full-document save. POST rather than PUT, deliberately: the path names the collection, and `PUT` there reads as "replace the collection", which is the one thing this endpoint promises not to do. It shares the path with the existing `GET /api/merchants/{id}/registers` list read.
Example request
Every block below sends the same request. Replace {{BASE_URL}} with the address of the API you are calling and {{API_KEY}} with your own key.
The request body is a MerchantRegisterDto. See the Request body section below for its fields.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
id
required |
path | string (uuid) | The merchant id. |
If-Match
required |
header | string | The merchant's concurrency stamp, read from the `If-Match` header. When supplied and stale the write is rejected with 409; when omitted, no concurrency check is performed. |
suppressNulls
required |
query | boolean | If true, omit properties with null values. |
Request body
application/json
, required
| Field | Type | Description |
|---|---|---|
id
required |
string (uuid) | |
friendlyId
required |
string | A user-friendly identifier for this register. Required. nullablemin length 3max length 20 |
name
required |
string | A unique name for this register. Optional. nullable |
description
required |
string | A brief description of this register and/or its purpose. Optional. nullablemax length 40 |
enabled
required |
boolean | |
terminal1
required |
RegisterTerminal | A terminal slot on a `MerchantRegister`. |
terminal2
required |
RegisterTerminal | A terminal slot on a `MerchantRegister`. |
terminal3
required |
RegisterTerminal | A terminal slot on a `MerchantRegister`. |
terminal4
required |
RegisterTerminal | A terminal slot on a `MerchantRegister`. |
terminal5
required |
RegisterTerminal | A terminal slot on a `MerchantRegister`. |
legacyNumber
required |
integer (int64) | The integer key the v1 API addresses this register by (its `RegisterKey`). Server-owned: allocated once, when the register is first saved, and never reassigned. nullable |
This request body has no documented fields.
Responses
200 OK
Body: MerchantRegisterWriteResultDto
Each item has these fields.
| Field | Type | Description |
|---|---|---|
merchantId
required |
string (uuid) | The merchant that owns the register. |
register
required |
all of MerchantRegisterDto | The register as persisted, including the server-owned `id` and `legacyNumber`. |
created
required |
boolean | `true` when the write added a register, `false` when it replaced an existing one. Lets a caller that publishes distinct create and update verbs report the right one without comparing collections before and after. |
merchantConcurrencyStamp
required |
string | The owning merchant's concurrency stamp after the write. nullable |
This response has no documented body fields.
403 Forbidden
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
401 Unauthorized
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
400 Bad Request
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
404 Not Found
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
501 Not Implemented
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
500 Internal Server Error
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
default The request failed. The body carries the standard error envelope: a machine-readable `error.code`, a human-readable `error.message`, and `error.validationErrors` when the failure was a validation rejection. See the error-code reference in this document's description for the values `error.code` can take.
Body: RemoteServiceErrorResponse
Each item has these fields.
| Field | Type | Description |
|---|---|---|
error
required |
RemoteServiceErrorInfo |
This response has no documented body fields.
429 The request was refused because a rate limit was exceeded. Wait at least the interval `Retry-After` names before retrying, then back off. Limits are tuned per deployment, so read the allowance from the response headers rather than assuming a fixed ceiling.
Body: RateLimitProblemDetails
Each item has these fields.
| Field | Type | Description |
|---|---|---|
type
required |
string | The problem type identifier. Always the same value: the failure is the status code itself, so there is no sub-type for a caller to branch on. nullable |
title
required |
string | A short, human-readable summary of the problem type. nullable |
status
required |
integer (int32) | The HTTP status code, repeated in the body as the problem-details format defines. |
detail
required |
string | A human-readable explanation of this occurrence of the problem. nullable |
retryAfterSeconds
required |
integer (int32) | How long to wait before retrying, in whole seconds, carrying the same figure as the `Retry-After` header. Always at least one: a value of zero would invite an immediate retry that is certain to be rejected again. |
This response has no documented body fields.
Errors
A failed request returns the platform error envelope. The
error reference lists every value
error.code can carry and shows the four response shapes.