---
title: "Consolidate Accounts"
method: POST
path: "/accounts/{account-id}/consolidate"
tags: ["accounts"]
---

# Consolidate Accounts

`POST /accounts/{account-id}/consolidate`

## Request

- Base URL: `https://api.withpersona.com/api/v1`
- URL: `https://api.withpersona.com/api/v1/accounts/{account-id}/consolidate`
- Auth: HTTP bearer

Consolidates several source Accounts' information into one target Account. Any Persona resource associated with the source Account will be transferred over to the destination Account. However, the Account's attributes will **not** be transferred. After consolidation, you can update the destination Account's attributes using the [Account update endpoint](https://docs.withpersona.com/api-reference/accounts/update-an-account).

This endpoint can be used to clean up duplicate Accounts.

Note: A source account can only be consolidated once. Afterwards, the source account will be archived and unable to be used moving forward - any attempts to create an inquiry attached to the source account will fail.

## Path parameters

- `account-id` string, required

## Query parameters

- `include` string
- `fields` object

## Headers

- `Key-Inflection` 'camel' | 'kebab' | 'snake'
- `Idempotency-Key` string
- `Persona-Version` '2026-09-29' | '2025-12-08' | '2025-10-27' | '2023-01-05' | '2022-09-01' | '2021-08-18' | '2021-07-05' | '2021-02-21' | '2020-05-18': Server API version. More info on versioning can be found [here](https://docs.withpersona.com/versioning).

## Request body

- object
  - `meta` AccountsAccountIdConsolidatePostRequestBodyContentApplicationJsonSchemaMeta, required
    - `source-account-ids` string[], required: A list of Account IDs that need to be consolidated into the destination Account.

## Response `202`

This endpoint returns an Account object and (optionally) its related objects in `included`.

- AccountsConsolidateIntoAnAccountResponse202
  - `data` Account, required: An Account object. Note that `fields` is **not** key inflected.
    - `id` string
    - `attributes` VerificationIncludedObjectsItemsDiscriminatorMappingAccountAttributes
      - `reference-id` string, nullable
      - `account-type-name` string
      - `created-at` string, date-time
      - `updated-at` string, date-time
      - `redacted-at` string, date-time, nullable
      - `fields` VerificationIncludedObjectsItemsDiscriminatorMappingAccountAttributesFields: JSON key-value pairs of field name to field value. Exact schema depends on the configuration of the Account Type for this Account. Keys in `fields` are **not** key inflected.
        - `name` VerificationIncludedObjectsItemsDiscriminatorMappingAccountAttributesFieldsName
          - `type` string
          - `value` VerificationIncludedObjectsItemsDiscriminatorMappingAccountAttributesFieldsNameValue
            - `first` VerificationIncludedObjectsItemsDiscriminatorMappingAccountAttributesFieldsNameValueFirst
              - …
            - `middle` VerificationIncludedObjectsItemsDiscriminatorMappingAccountAttributesFieldsNameValueMiddle
              - …
            - `last` VerificationIncludedObjectsItemsDiscriminatorMappingAccountAttributesFieldsNameValueLast
              - …
        - `address` VerificationIncludedObjectsItemsDiscriminatorMappingAccountAttributesFieldsAddress
          - `type` string
          - `value` VerificationIncludedObjectsItemsDiscriminatorMappingAccountAttributesFieldsAddressValue
            - `street_1` VerificationIncludedObjectsItemsDiscriminatorMappingAccountAttributesFieldsAddressValueStreet1
              - …
            - `street_2` VerificationIncludedObjectsItemsDiscriminatorMappingAccountAttributesFieldsAddressValueStreet2
              - …
            - `subdivision` VerificationIncludedObjectsItemsDiscriminatorMappingAccountAttributesFieldsAddressValueSubdivision
              - …
            - `city` VerificationIncludedObjectsItemsDiscriminatorMappingAccountAttributesFieldsAddressValueCity
              - …
            - `postal_code` VerificationIncludedObjectsItemsDiscriminatorMappingAccountAttributesFieldsAddressValuePostalCode
              - …
            - `country_code` VerificationIncludedObjectsItemsDiscriminatorMappingAccountAttributesFieldsAddressValueCountryCode
              - …
        - `identification_numbers` VerificationIncludedObjectsItemsDiscriminatorMappingAccountAttributesFieldsIdentificationNumbers
          - `type` string
          - `value` VerificationIncludedObjectsItemsDiscriminatorMappingAccountAttributesFieldsIdentificationNumbersValueItems[]
            - `type` string
            - `value` VerificationIncludedObjectsItemsDiscriminatorMappingAccountAttributesFieldsIdentificationNumbersValueItemsValue
              - …
        - `birthdate` VerificationIncludedObjectsItemsDiscriminatorMappingAccountAttributesFieldsBirthdate
          - `type` string
          - `value` string, nullable
        - `phone_number` VerificationIncludedObjectsItemsDiscriminatorMappingAccountAttributesFieldsPhoneNumber
          - `type` string
          - `value` string, nullable
        - `email_address` VerificationIncludedObjectsItemsDiscriminatorMappingAccountAttributesFieldsEmailAddress
          - `type` string
          - `value` string, nullable
        - `selfie_photo` VerificationIncludedObjectsItemsDiscriminatorMappingAccountAttributesFieldsSelfiePhoto
          - `type` 'file'
          - `value` File
            - `filename` string
            - `url` string
            - `byte-size` integer
      - `tags` string[]
      - `account-status` string
      - `birthdate` string, date, nullable: Birthdate, must be in the format "YYYY-MM-DD".
      - `name-first` string, nullable: Given or first name.
      - `name-middle` string, nullable: Middle name.
      - `name-last` string, nullable: Family or last name.
      - `phone-number` string, nullable: Phone number.
      - `email-address` string, nullable: Email address.
      - `address-street-1` string, nullable: Street name of residence address.
      - `address-street-2` string, nullable: Extension of residence address, usually apartment or suite number.
      - `address-city` string, nullable: City of residence address. Not all international addresses use this attribute.
      - `address-subdivision` string, nullable: State or subdivision of residence address. In the US, this should be the unabbreviated name. Not all international addresses use this attribute.
      - `address-postal-code` string, nullable: ZIP or postal code of residence address. Not all international addresses use this attribute.
      - `country-code` string, nullable: ISO 3166-1 alpha 2 country code.
      - `identification-numbers` object: Keys will be the identification class
      - `social-security-number` string, nullable: Social security number.
    - `relationships` VerificationIncludedObjectsItemsDiscriminatorMappingAccountRelationships
      - `account-type` VerificationIncludedObjectsItemsDiscriminatorMappingAccountRelationshipsAccountType
        - `data` VerificationIncludedObjectsItemsDiscriminatorMappingAccountRelationshipsAccountTypeData
          - `id` string
          - `type` 'account-type'
  - `included` AccountsIncludedObjectsItems[]
    - `type` 'account-type', required: Discriminator value: account-type
    - `id` string
    - `attributes` AccountsIncludedObjectsItemsDiscriminatorMappingAccountTypeAttributes
      - `name` string
      - `created-at` string, date-time
      - `updated-at` string, date-time, nullable
      - `field-schemas` FieldSchema[]
        - union
          - object: array variant
            - `type` 'array', required
            - `key` string
            - `label` string, nullable
            - `config` FieldSchemaArrayConfig
              - …
          - object: boolean variant
            - `type` 'boolean', required
            - `key` string
            - `label` string, nullable
            - `default-value` boolean, nullable
            - `config` FieldSchemaBooleanConfig
              - …
          - object: choices variant
            - `type` 'choices', required
            - `key` string
            - `label` string, nullable
            - `default-value` string, nullable: Must be one of the values in `config.options`, or null.
            - `config` FieldSchemaChoicesConfig
              - …
          - object: date variant
            - `type` 'date', required
            - `key` string
            - `label` string, nullable
            - `default-value` string, date, nullable
            - `config` FieldSchemaDateConfig
              - …
          - object: datetime variant
            - `type` 'datetime', required
            - `key` string
            - `label` string, nullable
            - `default-value` string, date-time, nullable
            - `config` FieldSchemaDatetimeConfig
              - …
          - object: email-address variant
            - `type` 'email-address', required
            - `key` string
            - `label` string, nullable
            - `default-value` string, nullable
            - `config` FieldSchemaEmailAddressConfig
              - …
          - object: file variant
            - `type` 'file', required
            - `key` string
            - `label` string, nullable
            - `config` FieldSchemaFileConfig
              - …
          - object: hash variant
            - `type` 'hash', required
            - `key` string
            - `label` string, nullable
            - `config` FieldSchemaHashConfig
              - …
          - object: integer variant
            - `type` 'integer', required
            - `key` string
            - `label` string, nullable
            - `default-value` integer, nullable
            - `config` FieldSchemaIntegerConfig
              - …
          - object: json variant
            - `type` 'json', required
            - `key` string
            - `label` string, nullable
            - `default-value` unknown
            - `config` FieldSchemaJsonConfig
              - …
          - object: multi-choices variant
            - `type` 'multi-choices', required
            - `key` string
            - `label` string, nullable
            - `default-value` string[], nullable: Each entry must be one of the values in `config.options`.
            - `config` FieldSchemaMultiChoicesConfig
              - …
          - object: number variant
            - `type` 'number', required
            - `key` string
            - `label` string, nullable
            - `default-value` number, double, nullable
            - `config` FieldSchemaNumberConfig
              - …
          - object: platform-file variant
            - `type` 'platform-file', required
            - `key` string
            - `label` string, nullable
            - `config` FieldSchemaPlatformFileConfig
              - …
          - object: string variant
            - `type` 'string', required
            - `key` string
            - `label` string, nullable
            - `default-value` string, nullable
            - `config` FieldSchemaStringConfig
              - …
          - object: relation-schema variant
            - `type` 'relation-schema', required
            - `key` string
            - `label` string, nullable
            - `config` FieldSchemaRelationConfig
              - …
    - `relationships` AccountsIncludedObjectsItemsDiscriminatorMappingAccountTypeRelationships
      - `account-statuses` AccountsIncludedObjectsItemsDiscriminatorMappingAccountTypeRelationshipsAccountStatuses
        - `data` AccountsIncludedObjectsItemsDiscriminatorMappingAccountTypeRelationshipsAccountStatusesDataItems[]
          - `type` 'account-status'
          - `id` string
      - `default-account-status` AccountsIncludedObjectsItemsDiscriminatorMappingAccountTypeRelationshipsDefaultAccountStatus
        - `data` AccountsIncludedObjectsItemsDiscriminatorMappingAccountTypeRelationshipsDefaultAccountStatusData
          - `type` 'account-status'
          - `id` string

## Other responses

- `400`: The request was unacceptable, often due to invalid parameters.
- `401`: An invalid API key was provided.
- `403`: The given API key doesn’t have permissions to perform the request or a quota has been exceeded.
- `404`: The requested resource doesn’t exist.
- `409`: The request conflicts with another request, often due to attempting to create a duplicate resource.
- `422`: The request modifies the resource in an unacceptable way, often due to an invalid action or parameter.
- `429`: Your organization’s rate limit has been exceeded. We recommend an exponential backoff on requests.

---

[API](https://skmtc.dev/withpersona/apis/withpersona-4.md) - [All operations](https://skmtc.dev/withpersona/apis/withpersona-4/llms.txt) - [OpenAPI document](https://skmtc.dev/withpersona/apis/withpersona-4/revisions/2eddd7dae374?raw)
