API · v1

Automatice sus campañas

Cuente audiencias, gestione campañas, recupere estadísticas y acceda a facturas desde sus propias herramientas.

URL basehttps://api.dmseurope.com/v1/

Primeros pasos

Cree una clave en Mi cuenta → API, guárdela en el gestor de secretos de su servidor y úsela solo para intercambios de servidor a servidor.

La clave da acceso a los datos y operaciones de su cuenta. Nunca la incluya en JavaScript público, una URL o un repositorio de código.

Autenticación e idioma

Cada solicitud requiere autenticación Bearer. Accept-Language admite fr, en, es o it y determina el idioma de los mensajes de error.

Authorization: Bearer API_KEY
Accept-Language: es

Límites de uso

Los límites son 120 lecturas, 20 mutaciones y 20 recuentos de audiencia por minuto, por cuenta y por IP. Ante HTTP 429, espere los segundos indicados por Retry-After.

Detalle de las rutas

Abra una ruta para consultar todos los parámetros aceptados, una solicitud completa, la estructura exacta de la respuesta correcta y los posibles errores.

POST/audiences/countContar una audienciaDevuelve los volúmenes agregados actuales sin guardar una audiencia.

Parámetros esperados

Encabezados

AuthorizationstringObligatorio

Clave API activa enviada con el esquema Bearer.

Formato y límitesBearer dms_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Accept-LanguageenumOpcional

Idioma preferido de los mensajes de error; se usa inglés por defecto.

Formato y límitesfr | en | es | itEjemplo o valor predeterminadoen
Content-TypestringObligatorio

Tipo de medio JSON obligatorio para el cuerpo de la solicitud.

Formato y límitesapplication/json

Cuerpo JSON

channelenumObligatorio

Producto de campaña utilizado para el recuento.

Formato y límitesemail | sms | email_sms | email_retargeting_smsEjemplo o valor predeterminadoemail
Valores aceptados
  • emailSolo email
  • smsSolo SMS
  • email_smsEmail y SMS en sus fechas programadas
  • email_retargeting_smsEmail seguido de retargeting SMS
targetingobjectObligatorio

Objeto JSON anidado.

Formato y límitesobject
countriesarrayObligatorio

Países seleccionados: FR Francia, GB Reino Unido, ES España, IT Italia.

Formato y límitesarray[1..4]<enum(FR,GB,ES,IT), unique>Ejemplo o valor predeterminado["FR","GB"]
Valores aceptados
  • FRFrancia
  • GBReino Unido
  • ESEspaña
  • ITItalia
geographyobjectObligatorio

Criterios geográficos agrupados por país seleccionado.

Formato y límitesobject<country, geography>Ejemplo o valor predeterminado{"FR":{…}}
{country}objectObligatorio

Objeto JSON anidado.

regionsarrayOpcional

Identificadores de región devueltos por GET /targeting/geography con type=region.

Formato y límitesarray[0..250]<integer≥1, unique>Ejemplo o valor predeterminado[11]
departmentsarrayOpcional

Identificadores de departamento o zona administrativa devueltos por GET /targeting/geography con type=department.

Formato y límitesarray[0..250]<integer≥1, unique>Ejemplo o valor predeterminado[75]
citiesarrayOpcional

Identificadores de ciudad devueltos por GET /targeting/geography con type=city. Cada ciudad incluye su región y departamento para distinguir nombres idénticos.

Formato y límitesarray[0..250]<integer≥1, unique>Ejemplo o valor predeterminado[1234]
postal_codesarrayOpcional

Códigos postales disponibles para el país.

Formato y límitesarray[0..250]<string[1..20], unique>Ejemplo o valor predeterminado["75001"]
profileobjectObligatorio

Criterios demográficos y del hogar; use un objeto vacío sin filtro.

Formato y límitesobjectEjemplo o valor predeterminado{}
age_minintegerOpcional

Edad mínima incluida.

Formato y límitesinteger 18–100Ejemplo o valor predeterminado30
age_maxintegerOpcional

Edad máxima incluida.

Formato y límitesinteger 18–100, ≥ age_minEjemplo o valor predeterminado55
gender_idsarrayOpcional

Elija uno o varios identificadores de género mostrados a continuación. Una matriz vacía incluye todos los géneros.

Formato y límitesarray[0..50]<integer≥1, unique>Ejemplo o valor predeterminado[1]
Valores aceptados
  • 1maleHombre
  • 2femaleMujer
  • 3unknownDesconocido
csp_idsarrayOpcional

Elija uno o varios identificadores de categoría socioprofesional mostrados a continuación. Una matriz vacía incluye todas las categorías.

Formato y límitesarray[0..50]<integer≥1, unique>Ejemplo o valor predeterminado[2,3]
Valores aceptados
  • 6csp_plusNivel socioeconómico alto
  • 7csp_middleNivel socioeconómico medio
  • 8csp_minusNivel socioeconómico bajo
  • 9unknownDesconocido
housing_status_idsarrayOpcional

Elija uno o varios identificadores de régimen de vivienda mostrados a continuación. Una matriz vacía incluye todos los regímenes.

Formato y límitesarray[0..50]<integer≥1, unique>Ejemplo o valor predeterminado[1]
Valores aceptados
  • 10ownerPropietario
  • 11tenantInquilino
  • 12otherOtro régimen
  • 4unknownDesconocido
housing_type_idsarrayOpcional

Elija uno o varios identificadores de tipo de vivienda mostrados a continuación. Una matriz vacía incluye todos los tipos.

Formato y límitesarray[0..50]<integer≥1, unique>Ejemplo o valor predeterminado[2]
Valores aceptados
  • 14houseCasa
  • 15apartmentPiso o apartamento
  • 16otherOtro tipo de vivienda
  • 5unknownDesconocido
car_owner_status_idsarrayOpcional

Elija a continuación el identificador correspondiente a propietarios de coches. Una matriz vacía no aplica ningún filtro de automóvil.

Formato y límitesarray[0..50]<integer≥1, unique>Ejemplo o valor predeterminado[1]
Valores aceptados
  • 18ownerPosee un vehículo
  • 19non_ownerNo posee ningún vehículo
  • 20unknownDesconocido
exclusionsobjectObligatorio

Exclusiones de contactos recientes y campañas anteriores.

Formato y límitesobjectEjemplo o valor predeterminado{}
recent_daysenumOpcional

0 no aplica exclusión reciente; 15, 30 o 60 excluye contactos alcanzados durante ese número de días anteriores.

Formato y límitesenum(0,15,30,60)Ejemplo o valor predeterminadodefault 0
Valores aceptados
  • 0Sin exclusión de contactos recientes
  • 15Excluir contactos alcanzados en los últimos 15 días
  • 30Excluir contactos alcanzados en los últimos 30 días
  • 60Excluir contactos alcanzados en los últimos 60 días
campaign_referencesarrayOpcional

Excluye contactos de campañas enviadas por la cuenta durante los últimos 12 meses.

Formato y límitesarray[0..100]<CMP-YYYY-0000000, unique>Ejemplo o valor predeterminado["CMP-2026-0000123"]
POSThttps://api.dmseurope.com/v1/audiences/count
curl -X POST 'https://api.dmseurope.com/v1/audiences/count' \
  -H 'Authorization: Bearer API_KEY' -H 'Content-Type: application/json' \
  -d '{"channel":"email","targeting":{"countries":["FR"],"geography":{"FR":{"regions":[11],"departments":[75],"cities":[],"postal_codes":["75001"]}},"profile":{"age_min":30,"age_max":55,"gender_ids":[1],"csp_ids":[],"housing_status_ids":[],"housing_type_ids":[],"car_owner_status_ids":[]},"exclusions":{"recent_days":30,"campaign_references":[]}}}'
GET/targeting/geographyBuscar identificadores geográficosDevuelve los identificadores de región, departamento o ciudad aceptados por la segmentación.

Parámetros esperados

Encabezados

AuthorizationstringObligatorio

Clave API activa enviada con el esquema Bearer.

Formato y límitesBearer dms_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Accept-LanguageenumOpcional

Idioma preferido de los mensajes de error; se usa inglés por defecto.

Formato y límitesfr | en | es | itEjemplo o valor predeterminadoen

Parámetros de consulta

countryenumObligatorio

País cuyo catálogo geográfico se consulta.

Formato y límitesFR | GB | ES | ITEjemplo o valor predeterminadoFR
Valores aceptados
  • FRFrancia
  • GBReino Unido
  • ESEspaña
  • ITItalia
typeenumObligatorio

Nivel del catálogo devuelto: regiones, departamentos o ciudades.

Formato y límitesregion | department | cityEjemplo o valor predeterminadocity
Valores aceptados
  • regionRegión
  • departmentDepartamento o zona administrativa
  • cityCiudad
querystringCondicional

Opcional para regiones y departamentos. Obligatorio para ciudades, con al menos 2 caracteres.

Formato y límitesstring[0..80]Ejemplo o valor predeterminadoParis
GEThttps://api.dmseurope.com/v1/targeting/geography

Éxito — Todas las respuestas HTTP incluyen X-Request-Id; las respuestas JSON también incluyen request_id.

GET/campaignsListar campañasDevuelve las campañas de la cuenta con paginación y filtros.

Parámetros esperados

Encabezados

AuthorizationstringObligatorio

Clave API activa enviada con el esquema Bearer.

Formato y límitesBearer dms_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Accept-LanguageenumOpcional

Idioma preferido de los mensajes de error; se usa inglés por defecto.

Formato y límitesfr | en | es | itEjemplo o valor predeterminadoen

Parámetros de consulta

pageintegerOpcional

Número de página solicitado.

Formato y límitesinteger[1..1000000]Ejemplo o valor predeterminadodefault 1
per_pageintegerOpcional

Número de resultados por página.

Formato y límitesinteger[1..100]Ejemplo o valor predeterminadodefault 20
statusenumOpcional

Estado exacto de la campaña.

Formato y límitesdraft | pending_validation | needs_changes | scheduled | sending | sent | cancelled
Valores aceptados
  • draftBorrador
  • pending_validationPendiente de validación
  • needs_changesRequiere cambios
  • scheduledProgramada
  • sendingEnviándose
  • sentEnviada
  • cancelledCancelada
productenumOpcional

Filtro por producto de campaña.

Formato y límitesemail | sms | email_sms | email_retargeting_sms
Valores aceptados
  • emailSolo email
  • smsSolo SMS
  • email_smsEmail y SMS en sus fechas programadas
  • email_retargeting_smsEmail seguido de retargeting SMS
countryenumOpcional

Filtro por país.

Formato y límitesFR | GB | ES | ITEjemplo o valor predeterminadoFR
Valores aceptados
  • FRFrancia
  • GBReino Unido
  • ESEspaña
  • ITItalia
created_fromstringOpcional

Fecha mínima de creación incluida.

Formato y límitesdate YYYY-MM-DDEjemplo o valor predeterminado2026-08-01
created_tostringOpcional

Fecha máxima de creación incluida.

Formato y límitesdate YYYY-MM-DDEjemplo o valor predeterminado2026-08-31
scheduled_fromstringOpcional

Fecha mínima programada incluida.

Formato y límitesdate YYYY-MM-DDEjemplo o valor predeterminado2026-09-01
scheduled_tostringOpcional

Fecha máxima programada incluida.

Formato y límitesdate YYYY-MM-DDEjemplo o valor predeterminado2026-09-30
searchstringOpcional

Búsqueda por nombre o referencia pública.

Formato y límitesstring ≤ 180Ejemplo o valor predeterminadoCMP-2026-0000123 | Summer launch
GEThttps://api.dmseurope.com/v1/campaigns

Éxito — Todas las respuestas HTTP incluyen X-Request-Id; las respuestas JSON también incluyen request_id.

POST/campaignsCrear una campañaCuenta la audiencia, calcula el precio, reserva el crédito y envía una campaña completa.

Parámetros esperados

Encabezados

AuthorizationstringObligatorio

Clave API activa enviada con el esquema Bearer.

Formato y límitesBearer dms_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Accept-LanguageenumOpcional

Idioma preferido de los mensajes de error; se usa inglés por defecto.

Formato y límitesfr | en | es | itEjemplo o valor predeterminadoen
Content-TypestringObligatorio

Tipo de medio JSON obligatorio para el cuerpo de la solicitud.

Formato y límitesapplication/json
Client-ReferencestringObligatorio

Referencia de negocio permanente y exclusiva para esta creación. Se rechaza una segunda creación con el mismo valor.

Formato y límitesASCII string[8..128] [A-Za-z0-9._:-]Ejemplo o valor predeterminadocrm-campaign-20260829-001

Cuerpo JSON

namestringObligatorio

Nombre de la campaña.

Formato y límitesstring[1..180]Ejemplo o valor predeterminadoSummer launch 2026
productenumObligatorio

email: solo email; sms: solo SMS; email_sms: ambos canales; email_retargeting_sms: email seguido de retargeting SMS.

Formato y límitesemail | sms | email_sms | email_retargeting_sms
Valores aceptados
  • emailSolo email
  • smsSolo SMS
  • email_smsEmail y SMS en sus fechas programadas
  • email_retargeting_smsEmail seguido de retargeting SMS
targetingobjectObligatorio

Objeto JSON anidado.

Formato y límitesobject
countriesarrayObligatorio

Países seleccionados: FR Francia, GB Reino Unido, ES España, IT Italia.

Formato y límitesarray[1..4]<enum(FR,GB,ES,IT), unique>Ejemplo o valor predeterminado["FR","GB"]
Valores aceptados
  • FRFrancia
  • GBReino Unido
  • ESEspaña
  • ITItalia
geographyobjectObligatorio

Criterios geográficos agrupados por país seleccionado.

Formato y límitesobject<country, geography>Ejemplo o valor predeterminado{"FR":{…}}
{country}objectObligatorio

Objeto JSON anidado.

regionsarrayOpcional

Identificadores de región devueltos por GET /targeting/geography con type=region.

Formato y límitesarray[0..250]<integer≥1, unique>Ejemplo o valor predeterminado[11]
departmentsarrayOpcional

Identificadores de departamento o zona administrativa devueltos por GET /targeting/geography con type=department.

Formato y límitesarray[0..250]<integer≥1, unique>Ejemplo o valor predeterminado[75]
citiesarrayOpcional

Identificadores de ciudad devueltos por GET /targeting/geography con type=city. Cada ciudad incluye su región y departamento para distinguir nombres idénticos.

Formato y límitesarray[0..250]<integer≥1, unique>Ejemplo o valor predeterminado[1234]
postal_codesarrayOpcional

Códigos postales disponibles para el país.

Formato y límitesarray[0..250]<string[1..20], unique>Ejemplo o valor predeterminado["75001"]
profileobjectObligatorio

Criterios demográficos y del hogar; use un objeto vacío sin filtro.

Formato y límitesobjectEjemplo o valor predeterminado{}
age_minintegerOpcional

Edad mínima incluida.

Formato y límitesinteger 18–100Ejemplo o valor predeterminado30
age_maxintegerOpcional

Edad máxima incluida.

Formato y límitesinteger 18–100, ≥ age_minEjemplo o valor predeterminado55
gender_idsarrayOpcional

Elija uno o varios identificadores de género mostrados a continuación. Una matriz vacía incluye todos los géneros.

Formato y límitesarray[0..50]<integer≥1, unique>Ejemplo o valor predeterminado[1]
Valores aceptados
  • 1maleHombre
  • 2femaleMujer
  • 3unknownDesconocido
csp_idsarrayOpcional

Elija uno o varios identificadores de categoría socioprofesional mostrados a continuación. Una matriz vacía incluye todas las categorías.

Formato y límitesarray[0..50]<integer≥1, unique>Ejemplo o valor predeterminado[2,3]
Valores aceptados
  • 6csp_plusNivel socioeconómico alto
  • 7csp_middleNivel socioeconómico medio
  • 8csp_minusNivel socioeconómico bajo
  • 9unknownDesconocido
housing_status_idsarrayOpcional

Elija uno o varios identificadores de régimen de vivienda mostrados a continuación. Una matriz vacía incluye todos los regímenes.

Formato y límitesarray[0..50]<integer≥1, unique>Ejemplo o valor predeterminado[1]
Valores aceptados
  • 10ownerPropietario
  • 11tenantInquilino
  • 12otherOtro régimen
  • 4unknownDesconocido
housing_type_idsarrayOpcional

Elija uno o varios identificadores de tipo de vivienda mostrados a continuación. Una matriz vacía incluye todos los tipos.

Formato y límitesarray[0..50]<integer≥1, unique>Ejemplo o valor predeterminado[2]
Valores aceptados
  • 14houseCasa
  • 15apartmentPiso o apartamento
  • 16otherOtro tipo de vivienda
  • 5unknownDesconocido
car_owner_status_idsarrayOpcional

Elija a continuación el identificador correspondiente a propietarios de coches. Una matriz vacía no aplica ningún filtro de automóvil.

Formato y límitesarray[0..50]<integer≥1, unique>Ejemplo o valor predeterminado[1]
Valores aceptados
  • 18ownerPosee un vehículo
  • 19non_ownerNo posee ningún vehículo
  • 20unknownDesconocido
exclusionsobjectObligatorio

Exclusiones de contactos recientes y campañas anteriores.

Formato y límitesobjectEjemplo o valor predeterminado{}
recent_daysenumOpcional

0 no aplica exclusión reciente; 15, 30 o 60 excluye contactos alcanzados durante ese número de días anteriores.

Formato y límitesenum(0,15,30,60)Ejemplo o valor predeterminadodefault 0
Valores aceptados
  • 0Sin exclusión de contactos recientes
  • 15Excluir contactos alcanzados en los últimos 15 días
  • 30Excluir contactos alcanzados en los últimos 30 días
  • 60Excluir contactos alcanzados en los últimos 60 días
campaign_referencesarrayOpcional

Excluye contactos de campañas enviadas por la cuenta durante los últimos 12 meses.

Formato y límitesarray[0..100]<CMP-YYYY-0000000, unique>Ejemplo o valor predeterminado["CMP-2026-0000123"]
volumesobjectObligatorio

Volúmenes solicitados por país; las claves deben coincidir exactamente con targeting.countries.

Formato y límitesobject<country, integer[1..1000000]>Ejemplo o valor predeterminado{"FR":4000,"GB":1500}
{country}integerObligatorio

Volumen de contactos solicitado para este país.

Formato y límitesinteger 1–1 000 000Ejemplo o valor predeterminado4000
contentsobjectObligatorio

Contenidos por país; las claves deben coincidir exactamente con targeting.countries.

Formato y límitesobject<country, content>
{country}objectObligatorio

Objeto de contenido para cada país seleccionado; sus claves exactas dependen del producto.

Formato y límitesobject<email | sms | email+sms>
emailobjectCondicional

Obligatorio para cada país cuando el producto incluye email.

Formato y límitesobject<email>
sender_namestringCondicional

Nombre del remitente del email.

Formato y límitesstring[1..120]Ejemplo o valor predeterminadoMy brand
subjectstringCondicional

Asunto del email.

Formato y límitesstring[1..255]Ejemplo o valor predeterminadoSummer offer
preheaderstringOpcional

Preheader opcional del email.

Formato y límitesstring[0..255]Ejemplo o valor predeterminadoDiscover our offer
htmlstringCondicional

HTML completo del email.

Formato y límitesHTML string[1..5242880]Ejemplo o valor predeterminado<p>Hello</p>
smsobjectCondicional

Obligatorio para cada país cuando el producto incluye SMS.

Formato y límitesobject<sms>
sender_namestringCondicional

Entre 1 y 11 letras ASCII o dígitos, con al menos una letra; se rechazan los valores que parecen números de teléfono.

Formato y límitesASCII alphanumeric string[1..11]Ejemplo o valor predeterminadoMyBrand
messagestringCondicional

Cuerpo sin el sufijo STOP automático. Máximo 4 segmentos SMS, incluido el sufijo STOP del país, las reservas de personalización y el enlace corto de 20 caracteres.

Formato y límitesstringEjemplo o valor predeterminadomaximum 4 SMS segments · Discover the offer: {{short_url}}
destination_urlstringOpcional

URL HTTP(S) pública opcional de hasta 2.048 caracteres. Es obligatoria exactamente cuando el mensaje contiene una etiqueta {{short_url}}; se rechazan las URL escritas directamente en el mensaje.

Formato y límitespublic HTTP(S) URL[1..2048] | nullEjemplo o valor predeterminadohttps://example.com/offer
scheduleobjectObligatorio

Zona IANA y fechas de envío requeridas. Cada envío debe programarse con al menos 48 horas laborables de antelación.

Formato y límitesobject
timezonestringObligatorio

Zona IANA utilizada para validar los desfases de fecha.

Formato y límitesIANA timezone string[1..64]Ejemplo o valor predeterminadoEurope/Paris
email_atstringCondicional

Obligatorio si el producto incluye email; prohibido para sms. Para email_sms, la diferencia con sms_at no puede superar 48 horas.

Formato y límitesRFC 3339 date-timeEjemplo o valor predeterminado2026-09-15T10:00:00+02:00
sms_atstringCondicional

Obligatorio para sms y email_sms; prohibido para email y email_retargeting_sms. La hora local debe estar entre las 08:00 y las 19:45 y, para email_sms, a no más de 48 horas de email_at.

Formato y límitesRFC 3339 date-timeEjemplo o valor predeterminado2026-09-15T12:00:00+02:00
retargeting_delay_hoursintegerOpcional

Solo para email_retargeting_sms: entero de 6 a 72 horas después del email; 24 por defecto.

Formato y límitesinteger[6..72]Ejemplo o valor predeterminadodefault 24
promo_codestringOpcional

Código promocional opcional: entre 1 y 64 letras mayúsculas, dígitos, guiones bajos o guiones; el primer carácter debe ser una letra o un dígito.

Formato y límitesstring[0..64] | nullEjemplo o valor predeterminadoWELCOME10
POSThttps://api.dmseurope.com/v1/campaigns
curl -X POST 'https://api.dmseurope.com/v1/campaigns' \
  -H 'Authorization: Bearer API_KEY' \
  -H 'Client-Reference: crm-campaign-20260829-001' \
  -H 'Content-Type: application/json' \
  -d '{
    "name":"Summer launch 2026",
    "product":"email_sms",
    "targeting":{
      "countries":["FR"],
      "geography":{"FR":{"regions":[11],"departments":[75],"cities":[],"postal_codes":["75001"]}},
      "profile":{"age_min":30,"age_max":55,"gender_ids":[1],"csp_ids":[2],"housing_status_ids":[],"housing_type_ids":[],"car_owner_status_ids":[]},
      "exclusions":{"recent_days":30,"campaign_references":[]}
    },
    "volumes":{"FR":4000},
    "contents":{"FR":{
      "email":{"sender_name":"My brand","subject":"Summer offer","preheader":"Discover our offer","html":"<p>Hello</p>"},
      "sms":{"sender_name":"MyBrand","message":"Discover the offer: {{short_url}}","destination_url":"https://example.com/offer"}
    }},
    "schedule":{"timezone":"Europe/Paris","email_at":"2026-09-15T10:00:00+02:00","sms_at":"2026-09-15T12:00:00+02:00"},
    "promo_code":null
  }'
GET/campaigns/{reference}Consultar una campañaDevuelve segmentación, contenidos, programación, precio, moderación y producción.

Parámetros esperados

Encabezados

AuthorizationstringObligatorio

Clave API activa enviada con el esquema Bearer.

Formato y límitesBearer dms_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Accept-LanguageenumOpcional

Idioma preferido de los mensajes de error; se usa inglés por defecto.

Formato y límitesfr | en | es | itEjemplo o valor predeterminadoen

Parámetros de ruta

referencestringObligatorio

Referencia pública de campaña.

Formato y límitesCMP-AAAA-0000000Ejemplo o valor predeterminadoCMP-2026-0000123
GEThttps://api.dmseurope.com/v1/campaigns/{reference}

Éxito — Todas las respuestas HTTP incluyen X-Request-Id; las respuestas JSON también incluyen request_id.

PUT/campaigns/{reference}Modificar una campañaSustituye por completo una campaña modificable. La misma Client-Reference puede reutilizarse con contenido nuevo.

Parámetros esperados

Encabezados

AuthorizationstringObligatorio

Clave API activa enviada con el esquema Bearer.

Formato y límitesBearer dms_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Accept-LanguageenumOpcional

Idioma preferido de los mensajes de error; se usa inglés por defecto.

Formato y límitesfr | en | es | itEjemplo o valor predeterminadoen
Content-TypestringObligatorio

Tipo de medio JSON obligatorio para el cuerpo de la solicitud.

Formato y límitesapplication/json
Client-ReferencestringObligatorio

Referencia de negocio de la modificación. Puede reutilizarse en modificaciones posteriores, con JSON idéntico o diferente.

Formato y límitesASCII string[8..128] [A-Za-z0-9._:-]Ejemplo o valor predeterminadocrm-campaign-20260829-001

Parámetros de ruta

referencestringObligatorio

Referencia pública de campaña.

Formato y límitesCMP-AAAA-0000000Ejemplo o valor predeterminadoCMP-2026-0000123

Cuerpo JSON

namestringObligatorio

Nombre de la campaña.

Formato y límitesstring[1..180]Ejemplo o valor predeterminadoSummer launch 2026
productenumObligatorio

email: solo email; sms: solo SMS; email_sms: ambos canales; email_retargeting_sms: email seguido de retargeting SMS.

Formato y límitesemail | sms | email_sms | email_retargeting_sms
Valores aceptados
  • emailSolo email
  • smsSolo SMS
  • email_smsEmail y SMS en sus fechas programadas
  • email_retargeting_smsEmail seguido de retargeting SMS
targetingobjectObligatorio

Objeto JSON anidado.

Formato y límitesobject
countriesarrayObligatorio

Países seleccionados: FR Francia, GB Reino Unido, ES España, IT Italia.

Formato y límitesarray[1..4]<enum(FR,GB,ES,IT), unique>Ejemplo o valor predeterminado["FR","GB"]
Valores aceptados
  • FRFrancia
  • GBReino Unido
  • ESEspaña
  • ITItalia
geographyobjectObligatorio

Criterios geográficos agrupados por país seleccionado.

Formato y límitesobject<country, geography>Ejemplo o valor predeterminado{"FR":{…}}
{country}objectObligatorio

Objeto JSON anidado.

regionsarrayOpcional

Identificadores de región devueltos por GET /targeting/geography con type=region.

Formato y límitesarray[0..250]<integer≥1, unique>Ejemplo o valor predeterminado[11]
departmentsarrayOpcional

Identificadores de departamento o zona administrativa devueltos por GET /targeting/geography con type=department.

Formato y límitesarray[0..250]<integer≥1, unique>Ejemplo o valor predeterminado[75]
citiesarrayOpcional

Identificadores de ciudad devueltos por GET /targeting/geography con type=city. Cada ciudad incluye su región y departamento para distinguir nombres idénticos.

Formato y límitesarray[0..250]<integer≥1, unique>Ejemplo o valor predeterminado[1234]
postal_codesarrayOpcional

Códigos postales disponibles para el país.

Formato y límitesarray[0..250]<string[1..20], unique>Ejemplo o valor predeterminado["75001"]
profileobjectObligatorio

Criterios demográficos y del hogar; use un objeto vacío sin filtro.

Formato y límitesobjectEjemplo o valor predeterminado{}
age_minintegerOpcional

Edad mínima incluida.

Formato y límitesinteger 18–100Ejemplo o valor predeterminado30
age_maxintegerOpcional

Edad máxima incluida.

Formato y límitesinteger 18–100, ≥ age_minEjemplo o valor predeterminado55
gender_idsarrayOpcional

Elija uno o varios identificadores de género mostrados a continuación. Una matriz vacía incluye todos los géneros.

Formato y límitesarray[0..50]<integer≥1, unique>Ejemplo o valor predeterminado[1]
Valores aceptados
  • 1maleHombre
  • 2femaleMujer
  • 3unknownDesconocido
csp_idsarrayOpcional

Elija uno o varios identificadores de categoría socioprofesional mostrados a continuación. Una matriz vacía incluye todas las categorías.

Formato y límitesarray[0..50]<integer≥1, unique>Ejemplo o valor predeterminado[2,3]
Valores aceptados
  • 6csp_plusNivel socioeconómico alto
  • 7csp_middleNivel socioeconómico medio
  • 8csp_minusNivel socioeconómico bajo
  • 9unknownDesconocido
housing_status_idsarrayOpcional

Elija uno o varios identificadores de régimen de vivienda mostrados a continuación. Una matriz vacía incluye todos los regímenes.

Formato y límitesarray[0..50]<integer≥1, unique>Ejemplo o valor predeterminado[1]
Valores aceptados
  • 10ownerPropietario
  • 11tenantInquilino
  • 12otherOtro régimen
  • 4unknownDesconocido
housing_type_idsarrayOpcional

Elija uno o varios identificadores de tipo de vivienda mostrados a continuación. Una matriz vacía incluye todos los tipos.

Formato y límitesarray[0..50]<integer≥1, unique>Ejemplo o valor predeterminado[2]
Valores aceptados
  • 14houseCasa
  • 15apartmentPiso o apartamento
  • 16otherOtro tipo de vivienda
  • 5unknownDesconocido
car_owner_status_idsarrayOpcional

Elija a continuación el identificador correspondiente a propietarios de coches. Una matriz vacía no aplica ningún filtro de automóvil.

Formato y límitesarray[0..50]<integer≥1, unique>Ejemplo o valor predeterminado[1]
Valores aceptados
  • 18ownerPosee un vehículo
  • 19non_ownerNo posee ningún vehículo
  • 20unknownDesconocido
exclusionsobjectObligatorio

Exclusiones de contactos recientes y campañas anteriores.

Formato y límitesobjectEjemplo o valor predeterminado{}
recent_daysenumOpcional

0 no aplica exclusión reciente; 15, 30 o 60 excluye contactos alcanzados durante ese número de días anteriores.

Formato y límitesenum(0,15,30,60)Ejemplo o valor predeterminadodefault 0
Valores aceptados
  • 0Sin exclusión de contactos recientes
  • 15Excluir contactos alcanzados en los últimos 15 días
  • 30Excluir contactos alcanzados en los últimos 30 días
  • 60Excluir contactos alcanzados en los últimos 60 días
campaign_referencesarrayOpcional

Excluye contactos de campañas enviadas por la cuenta durante los últimos 12 meses.

Formato y límitesarray[0..100]<CMP-YYYY-0000000, unique>Ejemplo o valor predeterminado["CMP-2026-0000123"]
volumesobjectObligatorio

Volúmenes solicitados por país; las claves deben coincidir exactamente con targeting.countries.

Formato y límitesobject<country, integer[1..1000000]>Ejemplo o valor predeterminado{"FR":4000,"GB":1500}
{country}integerObligatorio

Volumen de contactos solicitado para este país.

Formato y límitesinteger 1–1 000 000Ejemplo o valor predeterminado4000
contentsobjectObligatorio

Contenidos por país; las claves deben coincidir exactamente con targeting.countries.

Formato y límitesobject<country, content>
{country}objectObligatorio

Objeto de contenido para cada país seleccionado; sus claves exactas dependen del producto.

Formato y límitesobject<email | sms | email+sms>
emailobjectCondicional

Obligatorio para cada país cuando el producto incluye email.

Formato y límitesobject<email>
sender_namestringCondicional

Nombre del remitente del email.

Formato y límitesstring[1..120]Ejemplo o valor predeterminadoMy brand
subjectstringCondicional

Asunto del email.

Formato y límitesstring[1..255]Ejemplo o valor predeterminadoSummer offer
preheaderstringOpcional

Preheader opcional del email.

Formato y límitesstring[0..255]Ejemplo o valor predeterminadoDiscover our offer
htmlstringCondicional

HTML completo del email.

Formato y límitesHTML string[1..5242880]Ejemplo o valor predeterminado<p>Hello</p>
smsobjectCondicional

Obligatorio para cada país cuando el producto incluye SMS.

Formato y límitesobject<sms>
sender_namestringCondicional

Entre 1 y 11 letras ASCII o dígitos, con al menos una letra; se rechazan los valores que parecen números de teléfono.

Formato y límitesASCII alphanumeric string[1..11]Ejemplo o valor predeterminadoMyBrand
messagestringCondicional

Cuerpo sin el sufijo STOP automático. Máximo 4 segmentos SMS, incluido el sufijo STOP del país, las reservas de personalización y el enlace corto de 20 caracteres.

Formato y límitesstringEjemplo o valor predeterminadomaximum 4 SMS segments · Discover the offer: {{short_url}}
destination_urlstringOpcional

URL HTTP(S) pública opcional de hasta 2.048 caracteres. Es obligatoria exactamente cuando el mensaje contiene una etiqueta {{short_url}}; se rechazan las URL escritas directamente en el mensaje.

Formato y límitespublic HTTP(S) URL[1..2048] | nullEjemplo o valor predeterminadohttps://example.com/offer
scheduleobjectObligatorio

Zona IANA y fechas de envío requeridas. Cada envío debe programarse con al menos 48 horas laborables de antelación.

Formato y límitesobject
timezonestringObligatorio

Zona IANA utilizada para validar los desfases de fecha.

Formato y límitesIANA timezone string[1..64]Ejemplo o valor predeterminadoEurope/Paris
email_atstringCondicional

Obligatorio si el producto incluye email; prohibido para sms. Para email_sms, la diferencia con sms_at no puede superar 48 horas.

Formato y límitesRFC 3339 date-timeEjemplo o valor predeterminado2026-09-15T10:00:00+02:00
sms_atstringCondicional

Obligatorio para sms y email_sms; prohibido para email y email_retargeting_sms. La hora local debe estar entre las 08:00 y las 19:45 y, para email_sms, a no más de 48 horas de email_at.

Formato y límitesRFC 3339 date-timeEjemplo o valor predeterminado2026-09-15T12:00:00+02:00
retargeting_delay_hoursintegerOpcional

Solo para email_retargeting_sms: entero de 6 a 72 horas después del email; 24 por defecto.

Formato y límitesinteger[6..72]Ejemplo o valor predeterminadodefault 24
promo_codestringOpcional

Código promocional opcional: entre 1 y 64 letras mayúsculas, dígitos, guiones bajos o guiones; el primer carácter debe ser una letra o un dígito.

Formato y límitesstring[0..64] | nullEjemplo o valor predeterminadoWELCOME10
PUThttps://api.dmseurope.com/v1/campaigns/{reference}
curl -X PUT 'https://api.dmseurope.com/v1/campaigns/CMP-2026-0000123' \
  -H 'Authorization: Bearer API_KEY' \
  -H 'Client-Reference: crm-update-20260829-001' \
  -H 'Content-Type: application/json' \
  -d '{
    "name":"Summer launch 2026",
    "product":"email_sms",
    "targeting":{
      "countries":["FR"],
      "geography":{"FR":{"regions":[11],"departments":[75],"cities":[],"postal_codes":["75001"]}},
      "profile":{"age_min":30,"age_max":55,"gender_ids":[1],"csp_ids":[2],"housing_status_ids":[],"housing_type_ids":[],"car_owner_status_ids":[]},
      "exclusions":{"recent_days":30,"campaign_references":[]}
    },
    "volumes":{"FR":4000},
    "contents":{"FR":{
      "email":{"sender_name":"My brand","subject":"Summer offer","preheader":"Discover our offer","html":"<p>Hello</p>"},
      "sms":{"sender_name":"MyBrand","message":"Discover the offer: {{short_url}}","destination_url":"https://example.com/offer"}
    }},
    "schedule":{"timezone":"Europe/Paris","email_at":"2026-09-15T10:00:00+02:00","sms_at":"2026-09-15T12:00:00+02:00"},
    "promo_code":null
  }'
POST/campaigns/{reference}/cancelCancelar una campañaCancela una campaña elegible y libera el crédito reservado cuando corresponda. Client-Reference no es necesario.

Parámetros esperados

Encabezados

AuthorizationstringObligatorio

Clave API activa enviada con el esquema Bearer.

Formato y límitesBearer dms_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Accept-LanguageenumOpcional

Idioma preferido de los mensajes de error; se usa inglés por defecto.

Formato y límitesfr | en | es | itEjemplo o valor predeterminadoen
Content-TypestringCondicional

Obligatorio solo cuando se envía un cuerpo JSON de cancelación.

Formato y límitesapplication/json

Parámetros de ruta

referencestringObligatorio

Referencia pública de campaña.

Formato y límitesCMP-AAAA-0000000Ejemplo o valor predeterminadoCMP-2026-0000123

Cuerpo JSON

reasonstringOpcional

Motivo opcional de cancelación.

Formato y límitesstring[0..1000]Ejemplo o valor predeterminadoCancelled by CRM operator
POSThttps://api.dmseurope.com/v1/campaigns/{reference}/cancel
curl -X POST 'https://api.dmseurope.com/v1/campaigns/CMP-2026-0000123/cancel' \
  -H 'Authorization: Bearer API_KEY' -H 'Content-Type: application/json' \
  -d '{"reason":"Cancelled by CRM operator"}'
GET/campaigns/{reference}/statisticsConsultar estadísticasDevuelve totales actuales y desglose por país, idioma y canal.

Parámetros esperados

Encabezados

AuthorizationstringObligatorio

Clave API activa enviada con el esquema Bearer.

Formato y límitesBearer dms_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Accept-LanguageenumOpcional

Idioma preferido de los mensajes de error; se usa inglés por defecto.

Formato y límitesfr | en | es | itEjemplo o valor predeterminadoen

Parámetros de ruta

referencestringObligatorio

Referencia pública de campaña.

Formato y límitesCMP-AAAA-0000000Ejemplo o valor predeterminadoCMP-2026-0000123
GEThttps://api.dmseurope.com/v1/campaigns/{reference}/statistics

Éxito — Todas las respuestas HTTP incluyen X-Request-Id; las respuestas JSON también incluyen request_id.

GET/invoicesListar facturasDevuelve facturas y abonos. Cada elemento contiene pdf_url, cuya ruta incluye opaque_reference.

Parámetros esperados

Encabezados

AuthorizationstringObligatorio

Clave API activa enviada con el esquema Bearer.

Formato y límitesBearer dms_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Accept-LanguageenumOpcional

Idioma preferido de los mensajes de error; se usa inglés por defecto.

Formato y límitesfr | en | es | itEjemplo o valor predeterminadoen

Parámetros de consulta

pageintegerOpcional

Número de página solicitado.

Formato y límitesinteger[1..1000000]Ejemplo o valor predeterminadodefault 1
per_pageintegerOpcional

Número de resultados por página.

Formato y límitesinteger[1..100]Ejemplo o valor predeterminadodefault 20
typeenumOpcional

Filtro por tipo de documento.

Formato y límitesinvoice | credit_noteEjemplo o valor predeterminadoinvoice
Valores aceptados
  • invoiceFactura
  • credit_noteAbono
statusstringOpcional

Estado exacto del ciclo de vida de la factura.

Formato y límitesstring [A-Za-z0-9._:-] ≤ 40Ejemplo o valor predeterminadoissued
payment_statusstringOpcional

Estado exacto del pago.

Formato y límitesstring [A-Za-z0-9._:-] ≤ 40Ejemplo o valor predeterminadopaid
issued_fromstringOpcional

Fecha mínima de emisión incluida.

Formato y límitesdate YYYY-MM-DDEjemplo o valor predeterminado2026-08-01
issued_tostringOpcional

Fecha máxima de emisión incluida.

Formato y límitesdate YYYY-MM-DDEjemplo o valor predeterminado2026-08-31
campaign_referencestringOpcional

Filtro por referencia pública de campaña.

Formato y límitesCMP-AAAA-0000000Ejemplo o valor predeterminadoCMP-2026-0000123
GEThttps://api.dmseurope.com/v1/invoices

Éxito — Todas las respuestas HTTP incluyen X-Request-Id; las respuestas JSON también incluyen request_id.

GET/invoices/{number}Consultar una facturaDevuelve el documento legal estructurado y pdf_url que contiene opaque_reference.

Parámetros esperados

Encabezados

AuthorizationstringObligatorio

Clave API activa enviada con el esquema Bearer.

Formato y límitesBearer dms_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Accept-LanguageenumOpcional

Idioma preferido de los mensajes de error; se usa inglés por defecto.

Formato y límitesfr | en | es | itEjemplo o valor predeterminadoen

Parámetros de ruta

numberstringObligatorio

Número legal de factura o abono.

Formato y límitesstring[1..80]Ejemplo o valor predeterminadoINV-2026-000123
GEThttps://api.dmseurope.com/v1/invoices/{number}

Éxito — Todas las respuestas HTTP incluyen X-Request-Id; las respuestas JSON también incluyen request_id.