Crear contacto
POST/contacts
Crea un contacto a partir de un teléfono o de un BSUID. El teléfono se normaliza a E.164
y se guarda sin el +; sin código de país, indica defaultCountry.
Con ?upsert=true, un contacto que ya existe se actualiza en lugar de responder 409
— y entonces la respuesta es 200, optIn se ignora y tagIds reemplaza las
etiquetas. Envía optIn con la evidencia del consentimiento para crear el contacto ya
apto para recibir marketing.
Una API key restringida a algunos números recibe 403: esta operación es de toda la base.
Request
Responses
- 200
- 201
- 401
- 402
- 403
- 409
- 422
- 429
Contacto existente actualizado (solo con upsert=true).
Contacto creado.
Token ausente, mal formado, desconocido o revocado (authentication), o cuenta
suspendida (tenant_inactive).
Sin derecho de uso (payment_required). El cuerpo trae el motivo en reason y la
salida en action: qué hacer (kind) y la página del panel donde se hace (url).
El recurso no pertenece a tu cuenta (forbidden), o la ruta está en la lista de
bloqueo del espejo (forbidden_endpoint), o tu API key está restringida a algunos
números y la operación es de toda la cuenta (forbidden).
contact_exists (el teléfono o BSUID ya es de otro contacto, con contactId) o contact_limit_reached (el plan llegó a su techo de contactos, con limit y plan).
El payload no pasó la validación (invalid_request, detallado en issues) o fue
rechazado por Meta (meta_error, con el cuerpo original en meta).
Límite de peticiones superado (rate_limit).
Response Headers
Segundos a esperar antes de reintentar.
Categoría de límite aplicada — send, media o default.
Qué cubo describen las otras cabeceras — key (la API key), session (el panel) o account (el techo de la cuenta).
Techo de peticiones de la categoría en la ventana actual.
Peticiones restantes en la ventana actual.