# Merge two Contacts

The remaining contact will contain all conversations that the removed
contact did. If both contacts had conversations within the same App,
messages from the removed contact will be merged into corresponding active
conversations in the destination contact. Channel
identities will be moved from the source contact to the destination contact
only for channels that weren't present there before. Moved channel
identities will be placed at the bottom of the channel priority list.
Optional fields from the source contact will be copied only if
corresponding fields in the destination contact are empty. The contact being
removed cannot be referenced after this call.

Endpoint: POST /v1/projects/{project_id}/contacts/{destination_id}:merge
Version: 1.0
Security: Basic, oAuth2

## Path parameters:

  - `project_id` (string, required)
    The unique ID of the project. You can find this on the Sinch Dashboard.

  - `destination_id` (string, required)
    The unique ID of the contact that should be kept when merging two contacts.

## Request fields (application/json):

  - `source_id` (string, required)
    Required. The ID of the contact that should be removed.

  - `strategy` (string)
    Enum: "MERGE"

## Response 200 fields (application/json):

  - `channel_identities` (array)
    List of channel identities.

  - `channel_identities.identity` (string, required)
    The channel identity. This will differ from channel to channel. For example, a phone number for SMS, WhatsApp, and Viber Business.

  - `channel_identities.channel` (string, required)
    The identifier of the channel you want to include. Must be one of the enum values.
    Enum: "WHATSAPP", "RCS", "SMS", "MESSENGER", "VIBERBM", "MMS", "INSTAGRAM", "TELEGRAM", "KAKAOTALK", "KAKAOTALKCHAT", "LINE", "WECHAT", "APPLEBC"

  - `channel_identities.app_id` (string)
    Required if using a channel that uses app-scoped channel identities. Currently, FB Messenger, Instagram, LINE, and WeChat use app-scoped channel identities, which means contacts will have different channel identities on different Conversation API apps. These can be thought of as virtual identities that are app-specific and, therefore, the app_id must be included in the API call.

  - `channel_priority` (array)
    List of channels defining the channel priority.
    Enum: same as `channel_identities.channel` (13 values)

  - `display_name` (string)
    The display name. A default 'Unknown' will be assigned if left empty.

  - `email` (string)
    Email of the contact.

  - `external_id` (string)
    Contact identifier in an external system.

  - `id` (string)
    The ID of the contact.
    Example: "{CONTACT_ID}"

  - `language` (string)
    Enum: "AF", "SQ", "AR", "AZ", "BN", "BG", "CA", "ZH", "ZH_CN", "ZH_HK", "ZH_TW", "HR", "CS", "DA", "NL", "EN", "EN_GB", "EN_US", "ET", "FIL", "FI", "FR", "DE", "EL", "GU", "HA", "HE", "HI", "HU", "ID", "GA", "IT", "JA", "KN", "KK", "KO", "LO", "LV", "LT", "MK", "MS", "ML", "MR", "NB", "FA", "PL", "PT", "PT_BR", "PT_PT", "PA", "RO", "RU", "SR", "SK", "SL", "ES", "ES_AR", "ES_ES", "ES_MX", "SW", "SV", "TA", "TE", "TH", "TR", "UK", "UR", "UZ", "VI", "ZU"

  - `metadata` (string)
    Metadata associated with the contact. Up to 1024 characters long.

## Response 400 fields (application/json):

  - `error` (object)

  - `error.code` (integer)

  - `error.details` (array)

  - `error.details.type_url` (string)

  - `error.details.value` (string)

  - `error.message` (string)

  - `error.status` (string)


