Reactivate participant
Reactivate a participant that you suspended. Reactivation removes only
your provider’s suspension. It does not change a disabled or denied
global participant status, and it does not remove other restrictions on
sending. Reactivation does not remove earlier actions from the
relationship action history.
Send the relationship.versionID from your latest participant read as
expectedVersionID. Returns a 409 version-conflict problem when the
value is stale. Read the participant again before you retry. Returns a
409 state-conflict problem when the participant is not suspended.
Both 409 problems use the same status code, so check type to tell them
apart.
Returns 201 with the committed relationship state and a new
versionID. That state omits the suspension details. The relationship
action history records who reactivated the participant, and the note.
Returns 422 when note or expectedVersionID is missing,
or when note is empty or longer than 512 characters. Returns 404 when
neither key matches a participant within your provider.
Send an X-Idempotency-Key header so a retried reactivation is processed
once. The server echoes that header on the response. Replaying the same
key with the same request body within 24 hours returns the original 201
response. Replaying it with a different body returns a 409 with error
code idempotency-key-reused. Returns a 409 with error code
idempotency-request-in-progress when a request with this key is still
running. Returns 400 when the header is missing or malformed.
Auth: API key or bearer token. Scoped to the calling provider.
curl -X POST https://api.moov.money/providers/{providerID}/participants/{participantID}/reactivations \
-u "$MOOV_API_KEY_ID:$MOOV_API_KEY_SECRET" \
-H "X-Moov-Version: v2026.10.00" \
-H "X-Idempotency-Key: $(uuidgen)" \
-H "Content-Type: application/json" \
-d '{
"expectedVersionID": "relationship-v4",
"note": "Customer identity verified and concern cleared"
}'{
"relationship": {
"actor": {
"applicationKeyID": "5f0c3b2a-8d4e-4b7a-9c1f-2e6d7a8b9c0d",
"callingAccountID": "acc_01HF5J9ZKQT4RXP8M2VYBN3D",
"kind": "user",
"userID": "ec7e1848-dc80-4ab0-8827-dd7fc0737b43"
},
"externalID": "customer-abc-123",
"note": "Unusual activity reported by the customer",
"participantID": "3v2whagmwvbujhwbt7v3nl6ffq_user",
"reasonCode": "suspected-fraud",
"suspended": false,
"suspendedOn": "2026-10-06T16:00:00Z",
"versionID": "relationship-v3"
}
}Response body application/problem+json
application/problem+json.
From v2026.10.00, every error response that has a body uses this schema.type
string
requiredhttps://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
requiredstatus
integer<int32>
requireddetail
stringinstance
stringerrors
array<object>Show child attributes
errors[]
pointer
string
requireddetail
string
requiredResponse body application/problem+json
application/problem+json.
From v2026.10.00, every error response that has a body uses this schema.type
string
requiredhttps://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
requiredstatus
integer<int32>
requireddetail
stringinstance
stringerrors
array<object>Show child attributes
errors[]
pointer
string
requireddetail
string
requiredHeaders
X-Moov-Version
stringv2026.10.00). When omitted, the server applies its default version.X-Idempotency-Key
string
requiredPath parameters
providerID
string
requiredparticipantID
string
requiredparticipantID, or your externalID for them. Both
resolve to the same participant.Request
note
string
[1 to 512] characters
requiredexpectedVersionID
string
requiredrelationship.versionID from your latest participant read. A stale value returns a 409 version-conflict problem.Response
relationship.relationship
object
requiredShow child attributes
relationship
participantID
string
requiredexternalID
string
requiredsuspended
boolean
requiredversionID
string
requiredexpectedVersionID
on your next suspension or reactivation. It is not a relationship ID.suspendedOn
string<date-time>reasonCode
string<enum>suspended is true.suspected-fraud,
account-compromise,
customer-request,
compliance-review,
legal-hold,
policy-violation,
othernote
stringactor
objectShow child attributes
relationship.actor
kind
string<enum>
requireduser,
application,
systemuserID
stringkind is user. Omitted when kind is application or system.applicationKeyID
stringkind is application. Omitted when kind is user or system.callingAccountID
stringkind is user or application. Omitted when kind is system.