Create or replace a mint limit
PUT/v1/mint-limits/:asset_id
Create the calling issuer's mint limit for a root asset, or replace it if one exists.
Who may call it. Only the issuer, for its own asset: the limit is always stored under the authenticated bank. A holder bank cannot set another bank's mint limit.
Upsert semantics. The request is a full replacement, not a partial update: the new
amount replaces the previous one, and the first call for a root asset creates the
limit. reason is recorded with the change but is not returned by GET.
Request identity checks (rejected synchronously with 400):
data.idmust be exactlyv1:{your_bank_id}:{asset_id}, whereasset_idis the path parameter, for examplev1:11111111-1111-7111-8111-111111111111:usd(RESOURCE_ID_MISMATCH). Note thatGETreturns anidbuilt from the issued asset id (...:usd.bank-alpha); do not reuse that value here.data.attributes.asset_idmust equal the pathasset_id.
Amount. amount.value is a non-negative integer string in the asset's minor units
("50000000" is 500,000.00 for a 2-decimal asset). amount.scale must be a
non-negative integer; set it to the asset's decimals. The value is not rescaled by
scale. Values above 9223372036854775807 are rejected with 400.
Asynchronous completion. Returns 202 Accepted with an operation. The platform
records the new limit on the ledger and the operation reaches SUCCEEDED once the
ledger confirms it; only then does the new limit apply, and GET shows it shortly
after. If the ledger rejects the change the operation ends FAILED and the previous
limit stays in force. Poll GET /v1/operations/{operation_id} for the outcome.
In-flight changes. Only one change per mint limit can be in progress. A new PUT
for the same root asset while an earlier change has not finished is rejected with
400 and the title an earlier change to this resource is unresolved; retry after
the earlier operation completes. Transfers are checked against the limit in force when
they are processed; lowering the limit does not reverse value already issued.
Retries. Send an Idempotency-Key. Repeating the same key with the same body
returns the original 202 document; the same key with a different body returns 409.
Request
Responses
- 202
- 400
- 401
- 403
- 409
- 422
- 429
- 503
Change accepted for asynchronous processing. data.id is the operation_id;
data.relationships.resource identifies the mint limit being changed.
The request failed a synchronous check: wrong data.id, asset_id mismatch,
malformed amount, blank reason, missing Idempotency-Key, amount too large, or an
earlier change to the same limit still in progress.
The bearer token is missing, malformed, expired, signed by an unknown key, or was not issued by the platform IAM for the Lyriq Connector. Obtain a new token and retry. See the Authentication section.
The token is valid but may not perform this request: it lacks the required scope, has
no bank membership, needs an x-dan-bank-id header to choose between several
memberships, names a bank in x-dan-bank-id it has no membership for, or the caller's
bank is suspended or terminated. A new token with the same configuration fails the same
way. See the Authentication section.
The request conflicts with an earlier request or with the current state of the target:
an Idempotency-Key reused with a different body (IDEMPOTENCY_CONFLICT), a request with
the same key still in progress (IDEMPOTENCY_PENDING), or a target resource in a state
that does not allow the request (STATE_CONFLICT).
The request is well-formed JSON but cannot be processed: the body does not match the
expected shape (a missing or unknown member, a wrong type, or a wrong data.type), or it
breaks a business or cross-field rule. Correct the request before retrying.
The request was refused because a rate limit was reached (code RATE_LIMITED). No
Retry-After header is sent; retry with exponential backoff.
The request could not be served right now. Either the network is not fully operational
(OUTBOUND_HALTED or READ_ONLY: mutations are refused while read endpoints keep
working; OPERATIONAL_STATE_UNKNOWN: the state could not be determined), or a platform
dependency is temporarily unavailable. No Retry-After header is sent; retry later with
backoff. When retrying a mutation, reuse the same Idempotency-Key and body.