Set participant limit override
PUT
/providers/{providerID}/participants/{participantID}/limits
Create or update the limit override for one participant. An override is the most specific layer: it beats the participant’s groups and your provider default.
A body that changes no field returns 400. An expiresOn in the past
returns 400. An explicit null on expiresOn or on a dimension leaves
that value unchanged, the same as omitting it.
Auth: API key or bearer token. Scoped to the calling provider.
Request
curl -X PUT https://api.moov.money/providers/{providerID}/participants/{participantID}/limits \
-u "$MOOV_API_KEY_ID:$MOOV_API_KEY_SECRET" \
-H "X-Moov-Version: v2026.10.00"Responses
The request completed successfully.
{
"override": {
"createdOn": "2026-08-31T12:00:00Z",
"currency": "USD",
"dailyAmount": {
"currency": {
"code": "USD",
"decimalPlaces": 2
},
"value": "1000.00"
},
"dailySendCount": 10,
"monthlyAmount": {
"currency": {
"code": "USD",
"decimalPlaces": 2
},
"value": "10000.00"
},
"perTransactionAmount": {
"currency": {
"code": "USD",
"decimalPlaces": 2
},
"value": "500.00"
},
"reason": "Support case 12345",
"reference": "case-12345",
"versionID": "ver_01HF5J9ZKQT4RXP8M2VYBN3D",
"weeklyAmount": {
"currency": {
"code": "USD",
"decimalPlaces": 2
},
"value": "2500.00"
}
}
}Malformed request: the body or headers failed validation.
Response body application/problem+json
RFC 9457 Problem Details error body, served as
application/problem+json.
From v2026.10.00, every error response that has a body uses this schema.type
string
requiredURI that tells you which problem occurred. Branch on this value; it never
changes. Moov problem types look like
https://api.moov.money/errors#<code> (for
example invalid-request, idempotency-key-reused, or
idempotency-request-in-progress). Treat the value as
an opaque constant and do not fetch it. about:blank means the HTTP
status code says everything there is to know.title
string
requiredShort human-readable name of the problem type. Fixed per type; defaults to the HTTP status text.
status
integer<int32>
requiredThe HTTP status code of this response.
detail
stringHuman-readable explanation of this specific occurrence.
instance
stringURI reference that identifies this specific occurrence.
errors
array<object>The request-body fields that failed validation. Present on validation errors only.
Show child attributes
errors[]
pointer
string
requiredRFC 6901 JSON Pointer to the field, using the public JSON field names. If the field is missing, the pointer shows where it belongs.
detail
string
requiredWhat is wrong with the field.
Authentication missing, invalid, or insufficient.
Authentication present but the action is forbidden for this principal/claim.
The requested resource was not found.
Returned when a version-producing mutation’s
expectedVersionID is stale or
omitted while a version exists. You re-read the resource and retry with the
current version.Response body application/problem+json
RFC 9457 Problem Details body of the 409 returned when a version-producing
mutation’s
expectedVersionID is stale. currentVersion is an extension
member of the problem detail.detail
stringHuman-readable explanation of this specific occurrence.
type
string<enum>
requiredThe problem type URI, always
https://api.moov.money/errors#version-conflict.Possible values:
https://api.moov.money/errors#version-conflicttitle
string
requiredShort human-readable name of the problem type.
status
integer<int32>
requiredThe HTTP status code of this response, always 409.
currentVersion
string
requiredThe current latest version ID; re-read before retrying.
The request was well-formed but couldn’t be processed (e.g. card declined).
Response body application/problem+json
RFC 9457 Problem Details error body, served as
application/problem+json.
From v2026.10.00, every error response that has a body uses this schema.type
string
requiredURI that tells you which problem occurred. Branch on this value; it never
changes. Moov problem types look like
https://api.moov.money/errors#<code> (for
example invalid-request, idempotency-key-reused, or
idempotency-request-in-progress). Treat the value as
an opaque constant and do not fetch it. about:blank means the HTTP
status code says everything there is to know.title
string
requiredShort human-readable name of the problem type. Fixed per type; defaults to the HTTP status text.
status
integer<int32>
requiredThe HTTP status code of this response.
detail
stringHuman-readable explanation of this specific occurrence.
instance
stringURI reference that identifies this specific occurrence.
errors
array<object>The request-body fields that failed validation. Present on validation errors only.
Show child attributes
errors[]
pointer
string
requiredRFC 6901 JSON Pointer to the field, using the public JSON field names. If the field is missing, the pointer shows where it belongs.
detail
string
requiredWhat is wrong with the field.
Headers
X-Moov-Version
stringSet this header to the API version being targeted (e.g.
v2026.10.00). When omitted, the server applies its default version.Path parameters
providerID
string
requiredYour provider account ID.
participantID
string
requiredThe participant’s
participantID, or your externalID for them. Both
resolve to the same participant.Request
application/json
A create-or-update write for the participant limit override: present
dimensions change, and an omitted dimension or an explicit null leaves
the stored value unchanged. Send
expectedVersionID from your latest
read. Omit it on the first write.expectedVersionID
stringThe
versionID from your latest read; omit on first put. A put over a support-created override replaces its ceilings and expiry from empty.perTransactionAmount
object | nullPer-send amount ceiling. Omit or send
null to leave unchanged.dailyAmount
object | nullTrailing 24h amount ceiling. Omit or send
null to leave unchanged.weeklyAmount
object | nullTrailing 7d amount ceiling. Omit or send
null to leave unchanged.monthlyAmount
object | nullTrailing 30d amount ceiling. Omit or send
null to leave unchanged.dailySendCount
integer<int64> | nullTrailing 24h send-count ceiling. Omit or send
null to leave unchanged.expiresOn
string<date-time> | nullWhen the override lapses. Omit to keep the current expiry. An explicit null means the same. The first put without it is permanent. Must be in the future when set.
Response
Response envelope for the participant limit override; the override is nested under
override.override
object
requiredThe participant limit override.
Show child attributes
override
currency
string
requiredThree-letter ISO 4217 currency the override is denominated in (v1 USD-only).
perTransactionAmount
objectPer-send amount ceiling.
Show child attributes
override.perTransactionAmount
value
string
requiredDecimal amount as a string.
currency
object
requiredISO 4217 currency descriptor.
Show child attributes
override.perTransactionAmount.currency
code
string
requiredUppercase 3-letter ISO 4217 currency code.
decimalPlaces
integer<uint8>
requiredNumber of minor-unit decimal places for
code. Required.numericCode
stringISO 4217 numeric currency code, if known. Informational only.
name
stringHuman-readable currency name, if known. Informational only.
dailyAmount
objectTrailing 24h amount ceiling.
Show child attributes
override.dailyAmount
value
string
requiredDecimal amount as a string.
currency
object
requiredISO 4217 currency descriptor.
Show child attributes
override.dailyAmount.currency
code
string
requiredUppercase 3-letter ISO 4217 currency code.
decimalPlaces
integer<uint8>
requiredNumber of minor-unit decimal places for
code. Required.numericCode
stringISO 4217 numeric currency code, if known. Informational only.
name
stringHuman-readable currency name, if known. Informational only.
weeklyAmount
objectTrailing 7d amount ceiling.
Show child attributes
override.weeklyAmount
value
string
requiredDecimal amount as a string.
currency
object
requiredISO 4217 currency descriptor.
Show child attributes
override.weeklyAmount.currency
code
string
requiredUppercase 3-letter ISO 4217 currency code.
decimalPlaces
integer<uint8>
requiredNumber of minor-unit decimal places for
code. Required.numericCode
stringISO 4217 numeric currency code, if known. Informational only.
name
stringHuman-readable currency name, if known. Informational only.
monthlyAmount
objectTrailing 30d amount ceiling.
Show child attributes
override.monthlyAmount
value
string
requiredDecimal amount as a string.
currency
object
requiredISO 4217 currency descriptor.
Show child attributes
override.monthlyAmount.currency
code
string
requiredUppercase 3-letter ISO 4217 currency code.
decimalPlaces
integer<uint8>
requiredNumber of minor-unit decimal places for
code. Required.numericCode
stringISO 4217 numeric currency code, if known. Informational only.
name
stringHuman-readable currency name, if known. Informational only.
dailySendCount
integer<int64>Trailing 24h send-count ceiling.
expiresOn
string<date-time>When the override lapses.
null = permanent. Required (within 24 hours) for support overrides.reason
stringOverride reason. Required for support overrides.
reference
stringSupport ticket or case reference. Required for support overrides.
versionID
string
requiredLatest version ID; send this back as
expectedVersionID on your next mutation.createdOn
string<date-time>
requiredWhen this version was created.