> ## Documentation Index
> Fetch the complete documentation index at: https://developers.dwolla.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Update or remove a funding source

> Updates a bank funding source's details or soft deletes it. When updating, you can change the name (any status) or modify routing/account numbers and account type (unverified status only). When removing, the funding source is soft deleted and can still be accessed but marked as removed.



## OpenAPI

````yaml post /funding-sources/{id}
openapi: 3.1.0
info:
  title: Dwolla API
  description: Dwolla API Documentation
  contact:
    name: Dwolla Developer Relations Team
    url: https://developers.dwolla.com
    email: api@dwolla.com
  version: '2.0'
  termsOfService: https://www.dwolla.com/legal/tos/
  license:
    name: MIT
    url: https://github.com/Dwolla/dwolla-openapi/blob/master/LICENSE
servers:
  - url: https://api.dwolla.com
    description: Production server
  - url: https://api-sandbox.dwolla.com
    description: Sandbox server
security:
  - clientCredentials: []
tags:
  - name: tokens
    description: Operations related to Application Access Tokens
  - name: root
    description: Root API operations
  - name: accounts
    description: Operations related to Accounts
  - name: customers
    description: Operations related to Customers
  - name: kba
    description: Operations related to Knowledge-Based Authentication
  - name: beneficial owners
    description: Operations related to Beneficial Owners
  - name: documents
    description: Operations related to Documents
  - name: exchanges
    description: Operations related to Exchanges
  - name: exchange sessions
    description: Operations related to Exchange Sessions
  - name: funding sources
    description: Operations related to Funding Sources
  - name: transfers
    description: Operations related to Transfers
  - name: labels
    description: Operations related to Labels
  - name: mass payments
    description: Operations related to Mass Payments
  - name: events
    description: Operations related to Events
  - name: webhook subscriptions
    description: Operations related to Webhook Subscriptions
  - name: webhooks
    description: Operations related to Webhooks
  - name: client tokens
    description: Operations related to Client Tokens
  - name: sandbox simulations
    description: Sandbox-only operations for simulating processing of bank transfers
paths:
  /funding-sources/{id}:
    post:
      tags:
        - funding sources
      summary: Update or remove a funding source
      description: >-
        Updates a bank funding source's details or soft deletes it. When
        updating, you can change the name (any status) or modify routing/account
        numbers and account type (unverified status only). When removing, the
        funding source is soft deleted and can still be accessed but marked as
        removed.
      operationId: updateOrRemoveFundingSource
      parameters:
        - name: id
          in: path
          description: Funding source unique identifier
          required: true
          schema:
            type: string
        - $ref: '#/components/parameters/Accept'
      requestBody:
        required: true
        description: Parameters to update a customer funding source
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/UpdateUnverifiedBank'
                - $ref: '#/components/schemas/UpdateVerifiedBank'
                - $ref: '#/components/schemas/RemoveBank'
      responses:
        '200':
          description: successful operation
          headers: {}
          content:
            application/vnd.dwolla.v1.hal+json:
              schema:
                type: object
        '400':
          description: validation error
          headers: {}
          content:
            application/vnd.dwolla.v1.hal+json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: validationError
                  message:
                    type: string
                    example: Only funding sources of type='bank' can be updated.
        '403':
          description: forbidden
          headers: {}
          content:
            application/vnd.dwolla.v1.hal+json:
              schema:
                type: object
                properties:
                  code:
                    type: string
                    example: InvalidResourceState
                  message:
                    type: string
                    example: A removed bank cannot be updated.
      x-codeSamples:
        - lang: bash
          source: >
            POST
            https://api-sandbox.dwolla.com/funding-sources/692486f8-29f6-4516-a6a5-c69fd2ce854c

            Accept: application/vnd.dwolla.v1.hal+json

            Content-Type: application/vnd.dwolla.v1.hal+json

            Authorization: Bearer
            pBA9fVDBEyYZCEsLf/wKehyh1RTpzjUj5KzIRfDi0wKTii7DqY


            {
              "name": "Test Checking - 1234"
            }
        - lang: javascript
          source: >
            // Using dwolla-v2 - https://github.com/Dwolla/dwolla-v2-node

            var fundingSourceUrl =
              "https://api-sandbox.dwolla.com/funding-sources/692486f8-29f6-4516-a6a5-c69fd2ce854c";
            var requestBody = {
              name: "Test Checking - 1234",
            };


            dwolla.post(fundingSourceUrl, requestBody).then((res) =>
            res.body.name); // => "Test Checking - 1234"
        - lang: python
          source: >
            # Using dwollav2 - https://github.com/Dwolla/dwolla-v2-python

            funding_source_url =
            'https://api-sandbox.dwolla.com/funding-sources/692486f8-29f6-4516-a6a5-c69fd2ce854c'

            request_body = {
              'name': 'Test Checking - 1234'
            }


            funding_source = app_token.post(funding_source_url, request_body)

            funding_source.body['name'] # => 'Test Checking - 1234'
        - lang: php
          source: |
            /**
             *  No example for this language yet. Coming soon.
             **/
        - lang: ruby
          source: >
            # Using dwolla_v2 - https://github.com/Dwolla/dwolla-v2-ruby

            funding_source_url =
            'https://api-sandbox.dwolla.com/funding-sources/692486f8-29f6-4516-a6a5-c69fd2ce854c'

            request_body = {
                  "name" => "Test Checking - 1234",
            }


            funding_source = app_token.post "#{funding_source_url}",
            request_body

            funding_source.name # => "Test Checking - 1234"
components:
  parameters:
    Accept:
      name: Accept
      in: header
      required: true
      description: >-
        The media type of the response. Must be
        application/vnd.dwolla.v1.hal+json
      schema:
        type: string
        enum:
          - application/vnd.dwolla.v1.hal+json
        default: application/vnd.dwolla.v1.hal+json
  schemas:
    UpdateUnverifiedBank:
      title: UpdateUnverifiedBank
      description: >-
        Request body for updating information of an unverified bank funding
        source
      type: object
      required:
        - name
      properties:
        routingNumber:
          type: string
          example: '222222226'
        accountNumber:
          type: string
          example: '123456789'
        bankAccountType:
          type: string
          example: checking
        name:
          type: string
          example: Jane Doe’s Checking
    UpdateVerifiedBank:
      title: UpdateVerifiedBank
      description: Request body for updating information of a Verified bank funding source
      type: object
      required:
        - name
      properties:
        name:
          type: string
          example: Jane Doe’s Checking
    RemoveBank:
      title: RemoveBank
      description: Request body for removing a bank funding source
      type: object
      required:
        - removed
      properties:
        removed:
          type: boolean
          example: true
  securitySchemes:
    clientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: /token
          x-speakeasy-token-endpoint-authentication: client_secret_basic
          scopes: {}

````