---
title: "Update beneficial owner"
method: POST
path: "/beneficial-owners/{id}"
tags: ["beneficial owners"]
---

# Update beneficial owner

`POST /beneficial-owners/{id}`

Updates a beneficial owner's information to retry verification when their status is "incomplete". Only beneficial owners with incomplete verification status can be updated. Used to correct information that caused initial verification to fail.

## Path parameters

- `id` string, required

## Headers

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

## Request body

- union
  - CreateUSBeneficialOwner — Create a US Beneficial Owner (identified by SSN). For US-based beneficial owners only. Use SSN for identity verification instead of passport.
    - `firstName` string, required
    - `lastName` string, required
    - `dateOfBirth` string, required
    - `address` InternationalAddress, required
      - `address1` string, required
      - `address2` string
      - `address3` string
      - `city` string, required
      - `postalCode` string
      - `country` string, required
      - `stateProvinceRegion` string, required
    - `ssn` string, required
  - CreateInternationalBeneficialOwner — Create an International Beneficial Owner (identified by Passport). For non-US beneficial owners who don't have a US SSN. Requires passport information for identity verification.
    - `firstName` string, required
    - `lastName` string, required
    - `dateOfBirth` string, required
    - `address` InternationalAddress, required
      - `address1` string, required
      - `address2` string
      - `address3` string
      - `city` string, required
      - `postalCode` string
      - `country` string, required
      - `stateProvinceRegion` string, required
    - `passport` Passport, required
      - `number` string, required
      - `country` string, required

## Response `200`

successful operation

## Other responses

- `400` — ValidationError
- `403` — forbidden
- `404` — not found

## Changes

- **2025-11-19** `e44b6a6d5724` — 3 warning, 7 info
  - added the new `document` enum value to the `verificationStatus` response property for the response status `200`
  - added the new `incomplete` enum value to the `verificationStatus` response property for the response status `200`
  - added the new `verified` enum value to the `verificationStatus` response property for the response status `200`
  - the response property `_links` became required for the status `200`
  - …6 more
- **2025-07-01** `8a20e7000645` — 1 breaking, 1 info
  - removed `#/components/schemas/BeneficialOwnerWithSsn, #/components/schemas/BeneficialOwnerWithPassport` from the request body `oneOf` list
  - added `#/components/schemas/CreateUSBeneficialOwner, #/components/schemas/CreateInternationalBeneficialOwner` to the request body `oneOf` list
- **2025-06-06** `231d0268586b` — 1 breaking, 2 info
  - request body became required
  - the response property `code` became required for the status `400`
  - the response property `message` became required for the status `400`
- **2025-05-23** `4c8b16e05918` — 1 breaking
  - added the new required `header` request parameter `Accept`

[Change history](https://skmtc.dev/dwolla/apis/dwolla-api/changes/beneficial-owners/: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)
