Update funding source

PATCH
/providers/{providerID}/participants/{participantID}/funding-sources/{fundingSourceID}

Update a funding source’s display name and last four digits. The fundingSourceID does not change, so payouts that reference the source keep resolving.

Auth: API key or bearer token. Scoped to the calling provider. Returns 404 when no participant matches within your provider. Returns 422 when the body fails validation.

Request
cURL
curl -X PATCH https://api.moov.money/providers/{providerID}/participants/{participantID}/funding-sources/{fundingSourceID} \
  -u "$MOOV_API_KEY_ID:$MOOV_API_KEY_SECRET" \
  -H "X-Moov-Version: v2026.10.00" \
  -H "Content-Type: application/json" \
  -d '{
  "displayName": "First National Savings",
  "last4": "4321"
}'
Responses
200 400 401 403 404 422
The request completed successfully.
{
  "fundingSource": {
    "createdOn": "2026-08-31T12:00:00Z",
    "displayName": "First National Checking",
    "fundingSourceID": "01HF5J9ZKQT4RXP8M2VYBN3D_fsrc",
    "fundingType": "bank_account",
    "last4": "4321",
    "providerSourceID": "src_01HP5J9ZKQT4RXP8M2VYBN3D",
    "updatedOn": "2026-08-31T12:00:00Z"
  }
}
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 required
URI 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 required
Short human-readable name of the problem type. Fixed per type; defaults to the HTTP status text.

status

integer<int32> required
The HTTP status code of this response.

detail

string
Human-readable explanation of this specific occurrence.

instance

string
URI 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 required
RFC 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 required
What 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.
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 required
URI 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 required
Short human-readable name of the problem type. Fixed per type; defaults to the HTTP status text.

status

integer<int32> required
The HTTP status code of this response.

detail

string
Human-readable explanation of this specific occurrence.

instance

string
URI 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 required
RFC 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 required
What is wrong with the field.

Headers

X-Moov-Version

string
Set 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 required
Your provider account ID.

participantID

string required
The participant’s participantID, or your externalID for them. Both resolve to the same participant.

fundingSourceID

string required
Identifier of the funding source.

Request

application/json
Display metadata to update. providerSourceID and fundingType are immutable.

displayName

string [1 to 256] characters
Human-readable display label. When present, must be 1–256 characters.

last4

string [1 to 4] characters
Last four digits of the funding source number: the card number for card, or the bank account number for bank_account. When present, must be 1–4 characters.

Response

The updated funding source, nested under fundingSource.

fundingSource

object required
The updated funding source.
Show child attributes

fundingSource

fundingSourceID

string required
Stable server-owned identifier a payout references.

fundingType

string<enum> required
Funding source discriminator.
Possible values: card, bank_account

providerSourceID

string [1 to 256] characters required
Your identifier for the underlying funding source. Must be 1–256 characters.

displayName

string [1 to 256] characters required
Human-readable display label (e.g. the account nickname). Must be 1–256 characters.

last4

string required
Last four digits of the funding source number: the card number for card, or the bank account number for bank_account. Rendered with displayName in the UI. At most 4 characters.

createdOn

string<date-time> required
When this funding source was created.

updatedOn

string<date-time> required
When this funding source was last updated.

disabledOn

string<date-time>
When this funding source was removed. Omitted while active.