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

# Enviar contato

> Envie um ou mais cartões de contato.

Envia um ou mais cartões de contato para um cliente com a [janela de 24 horas](https://developers.datafyapi.com.br/api-reference/whatsapp/mensagens/introducao.md#janela-de-24-horas) aberta. É útil para passar o contato de um vendedor, do suporte ou de outra unidade.

> [!NOTE]
>
> O destinatário pode ser informado pelo **número de telefone** (`to`) ou pelo **ID do usuário** (`recipient`). Se os dois forem enviados, vale o `to`; para enviar pelo ID do usuário, deixe o `to` em branco. Veja a diferença em [Destinatário](https://developers.datafyapi.com.br/api-reference/whatsapp/mensagens/introducao.md#destinatário).

## Dados do contato

Cada item de `contacts` é um cartão. O único campo obrigatório é **`name.formatted_name`**, o nome exibido no cartão. Os demais são opcionais:

| Campo | O que contém |
| - | - |
| `name` | Nome completo e suas partes: `first_name`, `last_name`, `middle_name`, `prefix` e `suffix`. |
| `phones` | Telefones, com `phone`, `type` e `wa_id`. |
| `emails` | E-mails, com `email` e `type`. |
| `org` | Empresa, com `company`, `department` e `title` (cargo). |
| `urls` | Sites, com `url` e `type`. |
| `addresses` | Endereços, com rua, cidade, estado, CEP, país e tipo. |
| `birthday` | Aniversário, no formato `AAAA-MM-DD`. |

Uma mensagem aceita até **257 contatos**, mas o recomendado é enviar poucos, para facilitar a leitura do cliente.

## Botões do cartão

O `wa_id` do telefone define os botões que o cliente vê:

| Com `phones[].wa_id` | Sem `phones[].wa_id` |
| - | - |
| Botões **Mensagem** e **Salvar contato**. | Apenas o botão **Convidar para o WhatsApp**. |

Informe no `wa_id` o número do contato no WhatsApp, com código do país e DDD, como `5511988887777`.

> [!WARNING]
>
> Alguns dados, como endereço, aniversário e e-mail, podem não aparecer em todos os aparelhos do cliente.

No **Testar**, o cartão já vem preenchido com um contato de exemplo. Troque pelos dados do contato que você quer enviar.

Veja mais detalhes na [documentação de mensagens de contato da Meta](https://developers.facebook.com/documentation/business-messaging/whatsapp/messages/contacts-messages).


## OpenAPI

````yaml api-reference/whatsapp/specs/contato.json POST /v1/{phone_number_id}/messages
openapi: 3.1.0
info:
  title: Datafy API — Enviar contato
  version: 1.0.0
servers:
  - url: https://cloud.datafyapi.com.br
    description: Produção
security:
  - bearerAuth: []
paths:
  /v1/{phone_number_id}/messages:
    post:
      summary: Enviar contato
      operationId: enviarContato
      parameters:
        - name: phone_number_id
          in: path
          required: true
          schema:
            type: string
          description: ID do número que envia a mensagem. Descubra com `GET /me`.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MensagemContato'
            example:
              messaging_product: whatsapp
              recipient_type: individual
              to: '5511999999999'
              type: contacts
              contacts:
                - name:
                    formatted_name: Rafael Lima
                    first_name: Rafael
                    last_name: Lima
                  phones:
                    - phone: +55 11 98888-7777
                      type: WORK
                      wa_id: '5511988887777'
                  emails:
                    - email: rafael@exemplo.com.br
                      type: WORK
                  org:
                    company: Loja Exemplo
                    title: Consultor de vendas
      responses:
        '200':
          description: Envio aceito pela Meta. Não confirma a entrega.
          content:
            application/json:
              example:
                messaging_product: whatsapp
                contacts:
                  - input: '5511999999999'
                    wa_id: '5511999999999'
                messages:
                  - id: wamid.HBgNNTUxMTk5OTk5OTk5ORUCABIYFjNFQjA=
        '400':
          description: Erro retornado pela Meta.
          content:
            application/json:
              example:
                error:
                  message: (#100) Invalid parameter
                  type: OAuthException
                  code: 100
                  fbtrace_id: AbCdEfGhIjK
        '401':
          description: Token ausente ou inválido.
          content:
            application/json:
              example:
                statusCode: 401
                message: Token inválido ou não encontrado.
components:
  schemas:
    MensagemContato:
      type: object
      required:
        - messaging_product
        - to
        - type
        - contacts
      properties:
        messaging_product:
          type: string
          enum:
            - whatsapp
          default: whatsapp
          example: whatsapp
          description: Sempre `whatsapp`.
        recipient_type:
          type: string
          enum:
            - individual
          default: individual
          example: individual
          description: Sempre `individual`.
        to:
          type: string
          example: '5511999999999'
          description: >-
            Número do destinatário com código do país e DDD, como
            `5511999999999`. Tem prioridade sobre `recipient`: para enviar pelo
            ID do usuário, deixe em branco.
        recipient:
          type: string
          description: >-
            ID do usuário no WhatsApp (BSUID), recebido nos webhooks em
            `from_user_id` e `contacts[].user_id`, como
            `BR.13491208655302741918`. Usado quando `to` não é informado.
        type:
          type: string
          enum:
            - contacts
          default: contacts
          example: contacts
          description: Sempre `contacts`.
        contacts:
          type: array
          description: >-
            Cartões de contato enviados na mensagem. Aceita até 257 contatos,
            mas o recomendado é enviar poucos.
          items:
            $ref: '#/components/schemas/Contato'
        context:
          type: object
          description: Responde citando uma mensagem anterior da conversa.
          properties:
            message_id:
              type: string
              description: ID (`wamid`) da mensagem que será citada.
    Contato:
      type: object
      required:
        - name
      properties:
        name:
          type: object
          required:
            - formatted_name
          description: Nome do contato.
          properties:
            formatted_name:
              type: string
              example: Rafael Lima
              description: Nome exibido no cartão de contato. Obrigatório.
            first_name:
              type: string
              example: Rafael
              description: Primeiro nome.
            last_name:
              type: string
              example: Lima
              description: Sobrenome.
            middle_name:
              type: string
              description: Nome do meio.
            prefix:
              type: string
              description: Prefixo, como `Dr.` ou `Sra.`.
            suffix:
              type: string
              description: Sufixo, como `Jr.`.
        phones:
          type: array
          description: Telefones do contato.
          items:
            type: object
            properties:
              phone:
                type: string
                example: +55 11 98888-7777
                description: Número de telefone.
              type:
                type: string
                example: WORK
                description: Tipo do telefone, como `CELL`, `HOME` ou `WORK`.
              wa_id:
                type: string
                example: '5511988887777'
                description: >-
                  Número do contato no WhatsApp, com código do país e DDD. Com
                  ele, o cartão mostra os botões **Mensagem** e **Salvar
                  contato**.
        emails:
          type: array
          description: E-mails do contato.
          items:
            type: object
            properties:
              email:
                type: string
                example: rafael@exemplo.com.br
                description: Endereço de e-mail.
              type:
                type: string
                example: WORK
                description: Tipo do e-mail, como `HOME` ou `WORK`.
        org:
          type: object
          description: Empresa do contato.
          properties:
            company:
              type: string
              example: Loja Exemplo
              description: Nome da empresa.
            department:
              type: string
              description: Departamento.
            title:
              type: string
              example: Consultor de vendas
              description: Cargo.
        urls:
          type: array
          description: Sites do contato.
          items:
            type: object
            properties:
              url:
                type: string
                description: Endereço do site.
              type:
                type: string
                description: Tipo do site, como `WORK` ou `HOME`.
        addresses:
          type: array
          description: Endereços do contato.
          items:
            type: object
            properties:
              street:
                type: string
                description: Rua e número.
              city:
                type: string
                description: Cidade.
              state:
                type: string
                description: Estado, com a sigla de duas letras.
              zip:
                type: string
                description: CEP.
              country:
                type: string
                description: País.
              country_code:
                type: string
                description: Código do país com duas letras, como `BR`.
              type:
                type: string
                description: Tipo do endereço, como `HOME` ou `WORK`.
        birthday:
          type: string
          description: Data de aniversário no formato `AAAA-MM-DD`.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      description: >-
        Token gerado no painel da Datafy ao criar o canal. Formato:
        `sk_live_xxx`.

````

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