Update receiver configuration
Store a new version of the outbound receiver configuration for your
provider. Send expectedVersion from your latest read. Use 0 when no
version is stored. A successful call stores the next version and returns
it. Omitted fields keep their stored values. Send null for
credentialReferenceID to clear that reference. Send an empty url to
clear that endpoint.
The financial institution creates and updates a configuration whose
receiver type is fi. The affiliated integrator creates and updates a
configuration whose receiver type is integrator. After the integrator
owns the receiver, only that integrator changes URLs, credential
references, and timeouts. The financial institution can set the receiver
back to fi only when those values stay the same.
Returns 200 with the new version. Returns 400 when the body is malformed,
contains an unknown field, or names a URL, timeout, or receiver the
service rejects. Returns 401 when your API key or bearer token is missing
or invalid. Returns 403 when you cannot act for the provider, or when you
do not own the routing values. Returns 404 when a credential reference is
unknown. Returns a 409 with problem type version-conflict and
currentVersion when expectedVersion is not the latest version.
Returns a 409 when a credential reference is not active, or when the
affiliation cannot accept the write. A rejected write leaves the stored
version unchanged. You can call this while your affiliation with the
provider is still being set up.
There is no idempotency key. After a successful write, send the returned
version as expectedVersion on the next call.
Auth: API key or bearer token. An affiliated integrator needs the
moov-money-config.write scope granted by the FI.
curl -X PATCH https://api.moov.money/providers/{providerID}/configuration \
-u "$MOOV_API_KEY_ID:$MOOV_API_KEY_SECRET" \
-H "X-Moov-Version: v2026.10.00" \
-H "Content-Type: application/json" \
-d '{
"authorize": {
"attemptTimeout": 2000000000,
"credentialReferenceID": "5f0c3b2a-8d4e-4b7a-9c1f-2e6d7a8b9c0d",
"deadline": 8000000000,
"url": "https://fi.example.com/authorize"
},
"capture": {
"attemptTimeout": 2000000000,
"credentialReferenceID": "5f0c3b2a-8d4e-4b7a-9c1f-2e6d7a8b9c0d",
"deadline": 8000000000,
"url": "https://fi.example.com/authorize"
},
"credit": {
"attemptTimeout": 2000000000,
"credentialReferenceID": "5f0c3b2a-8d4e-4b7a-9c1f-2e6d7a8b9c0d",
"deadline": 8000000000,
"url": "https://fi.example.com/authorize"
},
"expectedVersion": 3,
"receiver": {
"accountID": "acc_01HF5J9ZKQT4RXP8M2VYBN3D",
"type": "fi"
},
"release": {
"attemptTimeout": 2000000000,
"credentialReferenceID": "5f0c3b2a-8d4e-4b7a-9c1f-2e6d7a8b9c0d",
"deadline": 8000000000,
"url": "https://fi.example.com/authorize"
}
}'{
"authorize": {
"attemptTimeout": 2000000000,
"credentialReferenceID": "5f0c3b2a-8d4e-4b7a-9c1f-2e6d7a8b9c0d",
"deadline": 8000000000,
"url": "https://fi.example.com/authorize"
},
"capture": {
"attemptTimeout": 2000000000,
"credentialReferenceID": "5f0c3b2a-8d4e-4b7a-9c1f-2e6d7a8b9c0d",
"deadline": 8000000000,
"url": "https://fi.example.com/authorize"
},
"credit": {
"attemptTimeout": 2000000000,
"credentialReferenceID": "5f0c3b2a-8d4e-4b7a-9c1f-2e6d7a8b9c0d",
"deadline": 8000000000,
"url": "https://fi.example.com/authorize"
},
"providerID": "acc_01HF5J9ZKQT4RXP8M2VYBN3D",
"receiver": {
"accountID": "acc_01HF5J9ZKQT4RXP8M2VYBN3D",
"type": "fi"
},
"receiverDeduplicatesAuthorize": false,
"release": {
"attemptTimeout": 2000000000,
"credentialReferenceID": "5f0c3b2a-8d4e-4b7a-9c1f-2e6d7a8b9c0d",
"deadline": 8000000000,
"url": "https://fi.example.com/authorize"
},
"version": 0
}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
requiredexpectedVersion includes currentVersion.
Read the configuration and retry. The stored version stays unchanged.Response body application/problem+json
expectedVersion uses problem type version-conflict
and includes currentVersion. Other conflicts omit currentVersion.detail
stringtype
string
requiredtitle
string
requiredstatus
integer<int32>
requiredcurrentVersion
integer<int64>expectedVersion does not match. Read the
configuration and retry with this value. Absent when the conflict is
not a version mismatch. 0 means no version is stored.Headers
X-Moov-Version
stringv2026.10.00). When omitted, the server applies its default version.Path parameters
providerID
string
requiredRequest
expectedVersion
from your latest read, or 0 when no version is stored. Omitted fields
keep their stored values. On the first write, an omitted authorize,
capture, or release operation receives the service default attempt timeout
and deadline. An omitted credit operation receives that attempt timeout
for both values.expectedVersion
integer<int64>
required0 when no version is stored.receiver
objectShow child attributes
receiver
type
string<enum>
requiredfi is your provider account. integrator is the affiliated integrator.fi,
integratoraccountID
stringfi, omit this field or set it to your
provider account ID. For integrator, set it to the affiliated
integrator account ID.authorize
objectShow child attributes
authorize
url
stringcredentialReferenceID
string | nullnull to clear the stored reference.
Omitted leaves the stored reference unchanged.attemptTimeout
integer<int64>deadline.deadline
integer<int64>attemptTimeout.capture
objectShow child attributes
capture
url
stringcredentialReferenceID
string | nullnull to clear the stored reference.
Omitted leaves the stored reference unchanged.attemptTimeout
integer<int64>deadline.deadline
integer<int64>attemptTimeout.release
objectShow child attributes
release
url
stringcredentialReferenceID
string | nullnull to clear the stored reference.
Omitted leaves the stored reference unchanged.attemptTimeout
integer<int64>deadline.deadline
integer<int64>attemptTimeout.credit
objectShow child attributes
credit
url
stringcredentialReferenceID
string | nullnull to clear the stored reference.
Omitted leaves the stored reference unchanged.attemptTimeout
integer<int64>deadline.deadline
integer<int64>attemptTimeout.receiverDeduplicatesAuthorize
booleanfalse.Response
providerID
string
requiredversion
integer<int64>
required0 means no configuration version is stored. Send this value as expectedVersion on the next update.receiver
object
requiredShow child attributes
receiver
type
string<enum>
requiredfi is your provider account. integrator is the affiliated integrator.fi,
integratoraccountID
string
requiredfi, this is your provider account ID.authorize
object
requiredShow child attributes
authorize
url
string
requiredcredentialReferenceID
string | null
requiredattemptTimeout
integer<int64>
requireddeadline.deadline
integer<int64>
requiredattemptTimeout.capture
object
requiredShow child attributes
capture
url
string
requiredcredentialReferenceID
string | null
requiredattemptTimeout
integer<int64>
requireddeadline.deadline
integer<int64>
requiredattemptTimeout.release
object
requiredShow child attributes
release
url
string
requiredcredentialReferenceID
string | null
requiredattemptTimeout
integer<int64>
requireddeadline.deadline
integer<int64>
requiredattemptTimeout.credit
object
requiredShow child attributes
credit
url
string
requiredcredentialReferenceID
string | null
requiredattemptTimeout
integer<int64>
requireddeadline.deadline
integer<int64>
requiredattemptTimeout.receiverDeduplicatesAuthorize
boolean
required