---
title: "Update or remove a funding source"
method: POST
path: "/funding-sources/{id}"
tags: ["funding sources"]
---

# Update or remove a funding source

`POST /funding-sources/{id}`

Updates a bank or debit card funding source's details, or soft deletes it.

For **bank** funding sources you can change the name (any status), or modify routing/account
numbers and account type (unverified status only).

For **debit card** funding sources you can change the name and any field within `cardDetails`,
including the optional cardholder identity fields `dateOfBirth`, `countryOfBirth`, and
`identification`. This is how you add or update those identity values on a card funding source
that already exists.

You must provide at least one updateable field. Bank funding sources cannot be updated with
card fields, and card funding sources cannot be updated with bank fields.

When removing, the funding source is soft deleted and can still be accessed but marked as removed.

## Path parameters

- `id` string, required

## Headers

- `Accept` 'application/vnd.dwolla.v1.hal+json', required

## Request body

- union
  - UpdateUnverifiedBank — Request body for updating information of an unverified bank funding source
    - `routingNumber` string
    - `accountNumber` string
    - `bankAccountType` string
    - `name` string, required
  - UpdateVerifiedBank — Request body for updating information of a Verified bank funding source
    - `name` string, required
  - UpdateCardFundingSource — Request body for updating a debit card funding source. Every field is optional, but you must provide at least one. Only the fields you send are changed; omitted fields keep their current values. Use this operation to add or update the optional cardholder identity fields - `dateOfBirth`, `countryOfBirth`, and `identification` - on a card funding source that already exists. Card funding sources cannot be updated with bank fields such as `routingNumber`, `accountNumber`, `bankAccountType`, or `bankAccountHolderType`.
    - `name` string — Arbitrary nickname for the debit card funding source. Must be 50 characters or less.
    - `cardDetails` object — Cardholder details to add or update. Provide only the fields you want to change.
      - `firstName` string — Cardholder first name
      - `lastName` string — Cardholder last name
      - `billingAddress` object — The billing address associated with the card. When you include `billingAddress`, `postalCode` is required.
        - `address1` string — First line of the street address. Must be 50 characters or less.
        - `address2` string — Second line of the street address (optional). Must be 100 characters or less.
        - `address3` string — Third line of the street address (optional). Must be 100 characters or less.
        - `city` string — City name. Must be 50 characters or less.
        - `stateProvinceRegion` string — Two-letter state, province, or region code.
        - `country` string — Two-letter country code (ISO 3166-1 alpha-2)
        - `postalCode` string, required — Postal code or ZIP code
      - `dateOfBirth` string, date — Cardholder date of birth in `YYYY-MM-DD` format. Supplying this value reduces the number of sanctions screening alerts raised when the card is processed.
      - `countryOfBirth` string — Cardholder country of birth as a two-letter country code (ISO 3166-1 alpha-2). Must be exactly 2 characters. Supplying this value reduces the number of sanctions screening alerts raised when the card is processed.
      - `identification` object — A government identification document for the cardholder. Supplying this value reduces the number of sanctions screening alerts raised when the card is processed.
        - `type` 'passport' | 'license' | 'idCard' | 'taxId', required — The kind of government identification document provided.
        - `number` string, required — The identification document number.
        - `country` string, required — Country that issued the identification document, as a two-letter country code (ISO 3166-1 alpha-2). Must be exactly 2 characters.
  - RemoveBank — Request body for removing a bank funding source
    - `removed` boolean, required

## Response `200`

successful operation

## Other responses

- `400` — validation error
- `403` — forbidden

## Changes

- **2026-09-15** `7877985e14b4` — 4 info
  - added `#/components/schemas/UpdateCardFundingSource` to the request body `oneOf` list
  - the response property `code` became required for the status `400`
  - the response property `message` became required for the status `400`
  - added the required property `_embedded` to the response with the `400` status
- **2025-06-06** `231d0268586b` — 1 breaking
  - request body became required
- **2025-05-23** `4c8b16e05918` — 1 breaking
  - added the new required `header` request parameter `Accept`

[Change history](https://skmtc.dev/dwolla/apis/dwolla-api/changes/funding-sources/:id/post.md)

---

[API](https://skmtc.dev/dwolla/apis/dwolla-api.md) · [All operations](https://skmtc.dev/dwolla/apis/dwolla-api/llms.txt) · [OpenAPI document](https://skmtc.dev/dwolla/apis/dwolla-api/revisions/7877985e14b4?raw)
