---
title: "send vCard"
method: POST
path: "/instances/{id}/client/action/send-vcard"
tags: ["message"]
---

# send vCard

`POST /instances/{id}/client/action/send-vcard`

## Request

- Base URL: `https://waapi.app/api/v1`
- URL: `https://waapi.app/api/v1/instances/{id}/client/action/send-vcard`
- Auth: HTTP bearer

Send a vCard to a contact or group.

## Path parameters

- `id` integer, required

## Request body

- object
  - `chatId` string, required: Chat ID <countrycode_short><usernumber>@c.us or @g.us for groups
  - `vCard` object, required: vCard details
    - `waid` string: Optional. ID. Ensures the contact is properly displayed with an image and added to contacts.
    - `internationalnumber` string: Optional. International phone number of the contact.
    - `lastname` string: Optional. Last name of the contact.
    - `firstname` string: Optional. First name of the contact.
    - `displayname` string: Optional. Display name of the contact.
    - `title` string: Optional. Title of the contact (e.g., Mr., Ms.).
    - `secondname` string: Optional. Second name of the contact.
    - `additionalname` string: Optional. Additional name of the contact.
    - `organization` string: Optional. Organization of the contact.
    - `email` string: Optional. Email address of the contact.
    - `street` string: Optional. Street address of the contact.
    - `city` string: Optional. City of the contact.
    - `zip` string: Optional. Zip code of the contact.
    - `state` string: Optional. State of the contact.
    - `country` string: Optional. Country of the contact.
    - `website` string: Optional. Website of the contact.
  - `firedandforget` boolean: Set to true to process the request asynchronously. Returns a reference UUID for polling via GET /instances/{id}/request/{reference}. Alias: faf

## Response `200`

Request reached the instance. `data.status` reports whether the action was carried out; on error `data` carries `message` and `explanation`. Payload: Vcard sent successfully.

- object
  - `data` union: The action's outcome. `status: success` carries the payload; `status: error` is an `actionError`.
    - object
      - `status` 'success', required: Whether the instance carried the action out — the authoritative field. In this branch it is always `success`; when the instance refused the action the whole `data` object is an `actionError` with `status: error`, `message` and `explanation`.
      - `instanceId` union
        - integer
        - string
      - `data` object
        - `sendVcard` boolean
    - ActionError: Shape of `data` when the instance refused the action. HTTP status is still 200 and the outer `status` is still `success`.
      - `status` 'error', required
      - `message` string
      - `explanation` string
      - `instanceId` union
        - integer
        - string
  - `links` object
    - `self` string
  - `status` 'success' | 'error': Whether the request reached the instance. `success` here does **not** mean the action was carried out — that is reported by `data.status`, which is the authoritative one. A malformed input arrives as `status: success` with `data.status: error`.

## Other responses

- `401`: Unauthorized — invalid or missing bearer token
- `403`: Forbidden — insufficient permissions or account blocked
- `404`: Not found — instance does not exist or does not belong to you
- `409`: Conflict — instance is not ready
- `422`: Validation error — invalid or missing request parameters, or the send was refused before it was attempted. A send is refused when the recipient's number is not registered (override with `skipNumberCheck: true`), or when the connected account is under a reach-out restriction and this exact recipient has already been observed being rejected — contacts who replied are unaffected, and retrying counts towards the limit that caused the restriction. The `message` field names which of the two applies.
- `429`: Refused by the instance's send protection. Nothing was sent; retry after the given number of seconds. Integrations that already handle 429 need no change.

---

[API](https://skmtc.dev/waapi/apis/waapi-api-2.md) · [All operations](https://skmtc.dev/waapi/apis/waapi-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/waapi/apis/waapi-api-2/revisions/490302f75576?raw)
