DocumentacionCrear o actualizar contacto
Crear o actualizar contacto
PUT /contacts con externalId, locale, optIn y atributos.
Usa PUT /contacts para dar de alta o actualizar un contacto de forma idempotente. La clave es externalId: si ya existe en el tenant, se actualiza; si no, se crea.
Scope requerido: contacts:write.
Peticion
curl -X PUT "https://api.mailingcore.com/contacts" \
-H "Authorization: Bearer mc_live_xxxx" \
-H "X-Tenant-Id: clxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{
"email": "[email protected]",
"externalId": "crm-user-48291",
"locale": "es",
"optIn": true,
"consentVersion": "2026-01",
"source": "signup-form",
"projectId": "proyecto-norte",
"attributes": {
"sede": "Madrid"
}
}'
Campos del body
| Campo | Obligatorio | Descripcion |
|---|---|---|
email | Si | Email del contacto |
externalId | Si | Id estable en tu sistema |
locale | No | es, en, it, fr, ca, de |
optIn | No | true para suscripcion activa |
consentVersion | No | Referencia a la version del consentimiento |
source | No | Origen del registro |
projectId | No | Segmento o proyecto del tenant |
attributes | No | Objeto JSON; allowlist por defecto incluye sede |
Errores habituales
| Codigo | Causa |
|---|---|
| 403 | Falta scope contacts:write |
| 400 | Email invalido o atributo fuera del allowlist |
| 401 | API key invalida o tenant incorrecto |
Ver Codigos de error para el formato JSON de respuesta.
Borrado GDPR
Para ejercer el derecho al olvido de un contacto concreto:
curl -X DELETE "https://api.mailingcore.com/contacts/crm-user-48291" \
-H "Authorization: Bearer mc_live_xxxx" \
-H "X-Tenant-Id: clxxxxxxxx"
Detalle del flujo de bajas en Bajas y GDPR.