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

# Conferir identificadores de contato

> Só leitura. Diz o que o `POST /v1/contacts` faria com esses identificadores, para o formulário avisar antes de salvar.

- **Ordem de procura:** e-mail, LinkedIn e telefone.
- **`new`:** nenhum contato da empresa tem os identificadores.
- **`existing`:** o contato em `contact` seria reaproveitado; `matches_count` diz quantos contatos casaram pela chave `matched_by`.
- **`conflict`:** identificadores diferentes apontam para contatos diferentes; `conflicts` traz cada um.
- **`exclude_contact_id`:** ignora esse contato (a edição manda o próprio contato).



## OpenAPI

````yaml https://api.nuvia.ai/api/docs/user-json post /v1/contacts/identity-check
openapi: 3.0.0
info:
  title: Nuvia API - Empresa
  description: Documentação da API para empresas
  version: '1.0'
  contact: {}
servers:
  - url: https://api.nuvia.ai
security: []
tags:
  - name: messages
    x-group: Mensagens
  - name: contacts
    x-group: Contatos
  - name: campaigns
    x-group: Campanhas
  - name: tables
    x-group: Tabelas e Listas
  - name: agents
    x-group: Agentes
  - name: conversations
    x-group: Conversas
  - name: inboxes
    x-group: Caixas de Entrada
  - name: knowledge
    x-group: Base de Conhecimento
  - name: Webhooks
    x-group: Webhooks
  - name: campaign-enrollments
    x-group: Inscrições em Campanha
  - name: custom-fields
    x-group: Campos Customizados
  - name: resources
    x-group: Arquivos e Anexos
  - name: hubspot
    x-group: HubSpot
paths:
  /v1/contacts/identity-check:
    post:
      tags:
        - contacts
      summary: Conferir identificadores de contato
      description: >-
        Só leitura. Diz o que o `POST /v1/contacts` faria com esses
        identificadores, para o formulário avisar antes de salvar.


        - **Ordem de procura:** e-mail, LinkedIn e telefone.

        - **`new`:** nenhum contato da empresa tem os identificadores.

        - **`existing`:** o contato em `contact` seria reaproveitado;
        `matches_count` diz quantos contatos casaram pela chave `matched_by`.

        - **`conflict`:** identificadores diferentes apontam para contatos
        diferentes; `conflicts` traz cada um.

        - **`exclude_contact_id`:** ignora esse contato (a edição manda o
        próprio contato).
      operationId: ContactController_checkContactIdentity
      parameters:
        - name: x-company-id
          in: header
          description: >-
            Identificador da empresa-alvo. Obrigatório apenas para API Keys
            globais (type=global). Ignorado para API Keys de empresa e usuários
            humanos.
          required: false
          schema:
            type: string
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ContactIdentityCheckDto'
      responses:
        '200':
          description: Resultado da conferência
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ContactIdentityCheckResponseDto'
      security:
        - JWT-auth: []
components:
  schemas:
    ContactIdentityCheckDto:
      type: object
      properties:
        email:
          type: string
          description: E-mail a conferir. Só conta como identificador se tiver "@".
        linkedin_identifier:
          type: string
          description: URL do perfil do LinkedIn ou só o nome do perfil.
        phone_number:
          type: string
          description: >-
            Telefone (DDD + número, sem o DDI). Telefone que não forma número
            válido é ignorado na conferência.
        country_code:
          type: string
          description: 'DDI do telefone. Exemplo: 55.'
        exclude_contact_id:
          type: string
          description: >-
            Contato a ignorar na conferência. A edição manda o próprio contato:
            valor igual ao dele não é conflito.
          pattern: ^[0-9a-fA-F]{24}$
    ContactIdentityCheckResponseDto:
      type: object
      properties:
        status:
          type: string
          enum:
            - new
            - existing
            - conflict
          description: >-
            `new`: nenhum contato tem os identificadores. `existing`: o POST
            reaproveitaria `contact`. `conflict`: identificadores diferentes
            apontam para contatos diferentes.
        matched_by:
          description: Identificador que casou
          type: string
          enum:
            - email
            - linkedin
            - phone
          nullable: true
        matches_count:
          type: number
          description: Quantos contatos da empresa casaram pela chave `matched_by`.
        contact:
          description: Contato que seria reaproveitado. null em `new` e `conflict`.
          type: object
          properties:
            _id:
              description: ID do contato
              type: string
            name:
              type: string
              description: Nome do contato
            email:
              description: E-mail do contato
              type: string
            phone_number:
              description: Telefone do contato
              type: string
            country_code:
              description: DDI do telefone
              type: string
            linkedin_identifier:
              description: Identificador do LinkedIn do contato
              type: string
          required:
            - _id
          nullable: true
        conflicts:
          type: array
          items:
            type: object
            properties:
              field:
                type: string
                enum:
                  - email
                  - linkedin
                  - phone
                description: Identificador que casou
              contact:
                type: object
                properties:
                  _id:
                    description: ID do contato
                    type: string
                  name:
                    type: string
                    description: Nome do contato
                  email:
                    description: E-mail do contato
                    type: string
                  phone_number:
                    description: Telefone do contato
                    type: string
                  country_code:
                    description: DDI do telefone
                    type: string
                  linkedin_identifier:
                    description: Identificador do LinkedIn do contato
                    type: string
                required:
                  - _id
            required:
              - field
              - contact
          description: >-
            Em `conflict`, o contato de cada identificador. Vazio nos outros
            casos.
      required:
        - status
        - matched_by
        - matches_count
        - contact
        - conflicts
  securitySchemes:
    JWT-auth:
      scheme: bearer
      bearerFormat: JWT
      type: http
      description: Token JWT de autenticação

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.