Skip to main content
POST
https://api.whaapy.com
/
messages
/
v1
curl -X POST https://api.whaapy.com/messages/v1 \
  -H "Authorization: Bearer wha_TU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+5215512345678",
    "type": "location",
    "location": {
      "latitude": 19.4326,
      "longitude": -99.1332,
      "name": "Oficina Central Whaapy",
      "address": "Av. Paseo de la Reforma 123, Col. Centro, CDMX"
    }
  }'
{
  "messaging_product": "whatsapp",
  "contacts": [
    { "input": "+5215512345678", "wa_id": "5215512345678" }
  ],
  "messages": [
    { "id": "550e8400-e29b-41d4-a716-446655440000", "wamid": "wamid.HBgLNTIxNTUx..." }
  ],
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "conversationId": "660e8400-e29b-41d4-a716-446655440001",
    "messageType": "location",
    "direction": "outbound",
    "status": "sent",
    "createdAt": "2026-01-22T10:30:00Z"
  }
}
Comparte ubicaciones con coordenadas GPS, nombre del lugar y dirección. El usuario verá un mapa interactivo que puede abrir en su app de mapas preferida.
Las ubicaciones solo pueden enviarse dentro de la ventana de 24 horas. Fuera de la ventana, usa templates.

Ejemplo Básico

curl -X POST https://api.whaapy.com/messages/v1 \
  -H "Authorization: Bearer wha_TU_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "to": "+5215512345678",
    "type": "location",
    "location": {
      "latitude": 19.4326,
      "longitude": -99.1332,
      "name": "Oficina Central Whaapy",
      "address": "Av. Paseo de la Reforma 123, Col. Centro, CDMX"
    }
  }'

Solo Coordenadas

Si solo tienes las coordenadas, puedes omitir name y address:
{
  "to": "+5215512345678",
  "type": "location",
  "location": {
    "latitude": 19.4326,
    "longitude": -99.1332
  }
}
Siempre incluye name y address para una mejor experiencia de usuario. Sin estos campos, el usuario solo verá un pin en el mapa.

Campos

location.latitude
number
required
Latitud de la ubicación. Valor entre -90 y 90.
location.longitude
number
required
Longitud de la ubicación. Valor entre -180 y 180.
location.name
string
Nombre del lugar (ej: “Oficina Central”, “Restaurante La Parrilla”). Máximo 1000 caracteres.
location.address
string
Dirección completa. Máximo 1000 caracteres.

Respuesta Exitosa

{
  "messaging_product": "whatsapp",
  "contacts": [
    { "input": "+5215512345678", "wa_id": "5215512345678" }
  ],
  "messages": [
    { "id": "550e8400-e29b-41d4-a716-446655440000", "wamid": "wamid.HBgLNTIxNTUx..." }
  ],
  "data": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "conversationId": "660e8400-e29b-41d4-a716-446655440001",
    "messageType": "location",
    "direction": "outbound",
    "status": "sent",
    "createdAt": "2026-01-22T10:30:00Z"
  }
}

Casos de Uso

{
  "to": "+5215512345678",
  "type": "location",
  "location": {
    "latitude": 19.4326,
    "longitude": -99.1332,
    "name": "Whaapy Store - Sucursal Centro",
    "address": "Av. Reforma 123, Piso 5, Col. Centro, CDMX, CP 06600"
  }
}
{
  "to": "+5215512345678",
  "type": "location",
  "location": {
    "latitude": 19.4126,
    "longitude": -99.1632,
    "name": "Punto de Entrega - Pedido #12345",
    "address": "Tu pedido será entregado aquí"
  }
}
{
  "to": "+5215512345678",
  "type": "location",
  "location": {
    "latitude": 19.4226,
    "longitude": -99.1432,
    "name": "Tu repartidor está aquí",
    "address": "A 5 minutos de tu ubicación"
  }
}

Obtener Coordenadas

Puedes obtener coordenadas de varias formas:
  1. Google Maps: Click derecho en el mapa → “¿Qué hay aquí?” → Copia las coordenadas
  2. API de Geocoding: Convierte direcciones a coordenadas con Google Maps API, Mapbox, etc.
  3. GPS del dispositivo: Si tu app tiene acceso a la ubicación del usuario

Ejemplo con Google Geocoding API

// Convertir dirección a coordenadas
async function getCoordinates(address) {
  const response = await fetch(
    `https://maps.googleapis.com/maps/api/geocode/json?address=${encodeURIComponent(address)}&key=TU_API_KEY`
  );
  const data = await response.json();
  
  if (data.results[0]) {
    const { lat, lng } = data.results[0].geometry.location;
    return { latitude: lat, longitude: lng };
  }
  throw new Error('Dirección no encontrada');
}

Próximos Pasos