---
title: "Update a customer"
method: POST
path: "/customers/{id}"
tags: ["customers"]
---

# Update a customer

`POST /customers/{id}`

Update Customer information, upgrade an unverified Customer to a verified Customer, suspend a Customer, deactivate a Customer, reactivate a Customer, and update a verified Customer's information to retry verification.

## Path parameters

- `id` string, required

## Headers

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

## Request body

- union
  - DeactivateCustomer — Deactivate a Customer
    - `status` string, required
  - ReactivateCustomer — Reactivate a Customer
    - `status` string, required
  - SuspendCustomer — Suspend a Customer
    - `status` string, required
  - UpdateUnverifiedAndReceiveOnly — Update Unverified Customer or Receive Only User Information
    - `firstName` string
    - `lastName` string
    - `email` string
    - `businessName` string
  - UpdateVerifiedPersonal — Update Verified Personal Customer Information
    - `email` string
    - `ipAddress` string
    - `address1` string
    - `address2` string
    - `city` string
    - `state` string
    - `postalCode` string
    - `phone` string
  - UpdateVerifiedBusiness — Update Verified Personal Customer Information
    - `email` string
    - `ipAddress` string
    - `address1` string
    - `address2` string
    - `city` string
    - `state` string
    - `postalCode` string
    - `phone` string
    - `doingBusinessAs` string
    - `website` string
  - UpgradeToUnverified — Upgrade Receive Only User to Unverified Customer
    - `type` string, required
  - UpgradeToVerifiedPersonal — Upgrade Unverified Customer to Verified Personal Customer
    - `firstName` string, required
    - `lastName` string, required
    - `email` string, required
    - `ipAddress` string
    - `type` string, required
    - `address1` string, required
    - `city` string, required
    - `state` string, required
    - `postalCode` string, required
    - `dateOfBirth` string, required
    - `ssn` string, required
  - UpgradeToVerifiedBusiness — Upgrade Unverified Customer to Verified Business Customer
    - `firstName` string, required
    - `lastName` string, required
    - `email` string, required
    - `ipAddress` string
    - `type` string, required
    - `address1` string, required
    - `city` string, required
    - `state` string, required
    - `postalCode` string, required
    - `controller` object, required
      - `firstName` string, required
      - `lastName` string, required
      - `title` string, required
      - `ssn` string
      - `dateOfBirth` string, required
      - `address` object, required
        - `address1` string, required
        - `address2` string
        - `city` string, required
        - `stateProvinceRegion` string, required
        - `postalCode` string, required
        - `country` string, required
    - `businessClassification` string, required
    - `businessType` string, required
    - `businessName` string, required
    - `ein` string, required
  - UpgradeToVerifiedSoleProp — Upgrade Unverified Customer to Verified Business Customer (Sole Proprietorship)
    - `firstName` string, required
    - `lastName` string, required
    - `email` string, required
    - `ipAddress` string
    - `type` string, required
    - `dateOfBirth` string, required
    - `ssn` string, required
    - `address1` string, required
    - `city` string, required
    - `state` string, required
    - `postalCode` string, required
    - `businessClassification` string, required
    - `businessType` string, required
    - `businessName` string, required
    - `ein` string, required
  - RetryVerifiedPersonal — Retry Verification for Verified Personal Customer
    - `firstName` string, required
    - `lastName` string, required
    - `email` string, required
    - `ipAddress` string
    - `type` string, required
    - `address1` string, required
    - `city` string, required
    - `state` string, required
    - `postalCode` string, required
    - `dateOfBirth` string, required
    - `ssn` string, required
  - RetryVerifiedBusinessNoController — Retry Verification for Verified Business Customer where only Business Details need to be retried
    - `firstName` string, required
    - `lastName` string, required
    - `email` string, required
    - `ipAddress` string
    - `type` string, required
    - `address1` string, required
    - `city` string, required
    - `state` string, required
    - `postalCode` string, required
    - `businessClassification` string, required
    - `businessType` string, required
    - `businessName` string, required
    - `ein` string, required
  - RetryVerifiedBusinessWithController — Retry Verification for Verified Business Customer where Business Details as well as Controller Details need to be retried
    - `firstName` string, required
    - `lastName` string, required
    - `email` string, required
    - `ipAddress` string
    - `type` string, required
    - `address1` string, required
    - `city` string, required
    - `state` string, required
    - `postalCode` string, required
    - `controller` object, required
      - `firstName` string, required
      - `lastName` string, required
      - `title` string, required
      - `ssn` string, required
      - `dateOfBirth` string, required
      - `address` object, required
        - `address1` string, required
        - `address2` string
        - `city` string, required
        - `stateProvinceRegion` string, required
        - `postalCode` string, required
        - `country` string, required
    - `businessClassification` string, required
    - `businessType` string, required
    - `businessName` string, required
    - `ein` string, required
  - RetryVerifiedBusinessWithInternationalController — Retry Verification for Verified Business Customer where Business Details as well as International Controller Details need to be retried
    - `firstName` string, required
    - `lastName` string, required
    - `email` string, required
    - `ipAddress` string
    - `type` string, required
    - `address1` string, required
    - `city` string, required
    - `state` string, required
    - `postalCode` string, required
    - `controller` object, required
      - `firstName` string, required
      - `lastName` string, required
      - `title` string, required
      - `dateOfBirth` string, required
      - `address` object, required
        - `address1` string, required
        - `address2` string
        - `address3` string
        - `city` string, required
        - `postalCode` string
        - `country` string, required
        - `stateProvinceRegion` string, required
      - `passport` object, required
        - `number` string, required
        - `country` string, required
    - `businessClassification` string, required
    - `businessType` string, required
    - `businessName` string, required
    - `ein` string, required
  - RetryVerifiedSoleProp — Retry Verification for Verified Business Customer (Sole Proprietorship)
    - `firstName` string, required
    - `lastName` string, required
    - `email` string, required
    - `ipAddress` string
    - `type` string, required
    - `dateOfBirth` string, required
    - `ssn` string, required
    - `address1` string, required
    - `city` string, required
    - `state` string, required
    - `postalCode` string, required
    - `businessClassification` string, required
    - `businessType` string, required
    - `businessName` string, required
    - `ein` string, required

## Response `200`

successful operation

## Other responses

- `400` — bad request
- `403` — forbidden

## Changes

- **2025-11-19** `e44b6a6d5724` — 2 breaking, 32 warning, 38 info
  - added `#/components/schemas/ReceiveOnlyCustomer` to the response body `oneOf` list for the response status `200`
  - the `oneOf[subschema #1: UnverifiedCustomer]/` response's property type/format changed from `object`/`` to ``/`` for status `200`
  - removed the optional property `oneOf[subschema #1: UnverifiedCustomer]/_links` from the response with the `200` status
  - removed the optional property `oneOf[subschema #1: UnverifiedCustomer]/correlationId` from the response with the `200` status
  - …68 more
- **2025-10-01** `ccf8c4851ae7` — 3 breaking, 4 info
  - removed `#/components/schemas/RetryVerifiedBusiness` from the request body `oneOf` list
  - the `oneOf[subschema #5: UpdateVerifiedPersonal]/` request property type/format changed from ``/`` to `object`/``
  - the `oneOf[subschema #6: UpdateVerifiedBusiness]/allOf[subschema #1: UpdateVerifiedPersonal]/` request property type/format changed from ``/`` to `object`/``
  - added `#/components/schemas/RetryVerifiedBusinessNoController, #/components/schemas/RetryVerifiedBusinessWithController, #/components/schemas/RetryVerifiedBusinessWithInternationalController` to the request body `oneOf` list
  - …3 more
- …earlier changes not shown

[Full history](https://skmtc.dev/dwolla/apis/dwolla-api/changes/customers/: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-service-production.skmtc.workers.dev/v1/apis/dwolla/dwolla-api/revisions/0e13062ae3be/schema)
