Base URL https://api.afer.pro aferapp.com
CRM y marketing

Crear contacto

POST https://api.afer.pro/crearContacto

Da de alta un contacto en el CRM, o lo actualiza si ya existe uno con el mismo email o móvil.

Es el endpoint típico para conectar formularios web con el CRM de Afer. La deduplicación es automática: si en tu cuenta ya existe un contacto con el mismo email_contacto o el mismo movil_contacto, se actualizan sus datos en lugar de duplicarlo.

Los campos persona_contacto, empresa_contacto y nif_contacto se normalizan a mayúsculas.

Además de los campos estándar, puedes enviar campos personalizados con el prefijo campos_personalizados-: se agrupan en el JSON de campos personalizados del contacto. Por ejemplo, campos_personalizados-talla se guarda como el campo personalizado talla.

Autenticación

Envía tus claves API en las cabeceras X-API-KEY y X-API-SECRET. La cuenta sobre la que se opera se resuelve automáticamente a partir de la clave. Cómo obtener tus claves →

Parámetros del cuerpo

El cuerpo de la petición es un objeto JSON con Content-Type: application/json.

contactoobject
obligatorio
Datos del contacto. Debe incluir al menos email_contacto o movil_contacto; sin uno de los dos no se crea nada.
email_contactostring
opcional
Email del contacto. Clave de deduplicación.
movil_contactostring
opcional
Móvil del contacto. Clave de deduplicación.
persona_contactostring
opcional
Nombre de la persona. Se guarda en mayúsculas.
empresa_contactostring
opcional
Empresa. Se guarda en mayúsculas.
nif_contactostring
opcional
NIF. Se guarda en mayúsculas.
campos_personalizados-*string
opcional
Cualquier campo con este prefijo se guarda como campo personalizado del contacto (p. ej. campos_personalizados-origen → campo origen).

Ejemplo de petición

curl -X POST 'https://api.afer.pro/crearContacto' \
  -H 'Content-Type: application/json' \
  -H 'X-API-KEY: afer_tk_TU_TOKEN' \
  -H 'X-API-SECRET: afer_sk_TU_SECRET' \
  -d '{
    "contacto": {
        "persona_contacto": "Maria Ferrer",
        "empresa_contacto": "Ferrer Interiors",
        "email_contacto": "maria@ejemplo.com",
        "movil_contacto": "+34600111222",
        "campos_personalizados-origen": "Formulario web"
    }
}'
<?php

$data = [
  'contacto' => [
    'persona_contacto' => 'Maria Ferrer',
    'empresa_contacto' => 'Ferrer Interiors',
    'email_contacto' => 'maria@ejemplo.com',
    'movil_contacto' => '+34600111222',
    'campos_personalizados-origen' => 'Formulario web',
  ],
];

$ch = curl_init('https://api.afer.pro/crearContacto');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Content-Type: application/json',
    'X-API-KEY: afer_tk_TU_TOKEN',
    'X-API-SECRET: afer_sk_TU_SECRET',
]);

$respuesta = json_decode(curl_exec($ch), true);
curl_close($ch);
const respuesta = await fetch('https://api.afer.pro/crearContacto', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-KEY': 'afer_tk_TU_TOKEN',
    'X-API-SECRET': 'afer_sk_TU_SECRET'
  },
  body: JSON.stringify({
      "contacto": {
          "persona_contacto": "Maria Ferrer",
          "empresa_contacto": "Ferrer Interiors",
          "email_contacto": "maria@ejemplo.com",
          "movil_contacto": "+34600111222",
          "campos_personalizados-origen": "Formulario web"
      }
  })
});

const resultado = await respuesta.json();

Respuesta

Devuelve el identificador cifrado del contacto creado o actualizado.

200 · application/json
{
    "errorCode": 200,
    "errorMsg": "",
    "data": "aBc123XyZ456…"
}

Errores

CasoResultado
Sin email_contacto ni movil_contacto {"msg": "Error desconocido", "error": "error"}