Session Contact Card API
1. Overview
The contacts message type sends one or more vCard-style contact cards to a recipient over WhatsApp, in a single message. A contact object can carry name, birthday, address, email, organization, phone, and URL details. Multiple contact objects can be included in a single contacts array to send several cards in one send.
2. Send Contact Message
Endpoint: POST http://apis.rmlconnect.net/wba/v1/messages
2.1 Payload
POST http://apis.rmlconnect.net/wba/v1/messages
Authorization: <TOKEN>
Content-Type: application/json{
"phone": "+919833391195",
"contacts": [
{
"name": {
"formatted_name": "Aristotle",
"first_name": "Aristotle",
"prefix": "Mr."
},
"birthday": "2025-07-22",
"addresses": [
{
"street": "main street",
"city": "LA",
"state": "<STATE_CODE>",
"zip": "12345",
"country": "United States",
"country_code": "US",
"type": "Random"
}
],
"emails": [
{
"email": "[email protected]",
"type": "personal"
}
],
"org": {
"title": "philosopher"
},
"phones": [
{
"phone": "0987654",
"type": "HOME"
},
{
"phone": "765456",
"type": "MOBILE",
"wa_id": "12345678"
}
],
"urls": [
{
"url": "https://www.google.com/",
"type": "google domain"
}
]
}
]
}2.2 Field Reference
| Field | Type | Notes |
|---|---|---|
| phone | string | Recipient number, E.164 format (e.g. +919833391195) |
| contacts | array | One or more contact objects; each renders as a separate contact card |
| contacts[].name.formatted_name | string | Display name shown on the card |
| contacts[].name.first_name | string | First name |
| contacts[].name.prefix | string | Name prefix/title, e.g. "Mr." |
| contacts[].birthday | string | Date, observed format YYYY-MM-DD |
| contacts[].addresses[].street | string | Street line |
| contacts[].addresses[].city | string | City |
| contacts[].addresses[].state | string | State code |
| contacts[].addresses[].zip | string | Postal code |
| contacts[].addresses[].country | string | Full country name |
| contacts[].addresses[].country_code | string | ISO country code, e.g. "US" |
| contacts[].addresses[].type | string | Address label; sample uses a free-text value ("Random") rather than a standard type like HOME/WORK — confirm whether this is validated against an enum |
| contacts[].emails[].email | string | Email address |
| contacts[].emails[].type | string | Email label, e.g. "personal" |
| contacts[].org.title | string | Job title. Sample org object contains no company or department field — unclear if those keys are supported and simply omitted |
| contacts[].phones[].phone | string | Phone number |
| contacts[].phones[].type | string | Phone label, e.g. "HOME", "MOBILE" |
| contacts[].phones[].wa_id | string | WhatsApp ID, only present on the MOBILE entry in the sample — unclear if this is required only for WhatsApp-registered numbers or optional generally |
| contacts[].urls[].url | string | URL |
| contacts[].urls[].type | string | URL label; sample uses a free-text value ("google domain") rather than a standard type |
Updated 11 days ago
Did this page help you?