AuthorizationstringObbligatorioChiave API attiva inviata con lo schema Bearer.
Conta le audience, gestisci le campagne, recupera le statistiche e accedi alle fatture dai tuoi strumenti.
https://api.dmseurope.com/v1/Crea una chiave in Il mio account → API, conservala nel gestore dei segreti del server e usala solo per scambi server-to-server.
Ogni richiesta richiede l’autenticazione Bearer. Accept-Language accetta fr, en, es o it e determina la lingua dei messaggi di errore.
Authorization: Bearer API_KEY
Accept-Language: itI limiti sono 120 letture, 20 mutazioni e 20 conteggi audience al minuto, per account e per IP. In caso di HTTP 429, attendi i secondi indicati da Retry-After.
Apri una rotta per consultare tutti i parametri accettati, una richiesta completa, la struttura esatta della risposta corretta e i possibili errori.
/audiences/countContare un’audienceRestituisce i volumi aggregati attuali senza salvare un’audience.AuthorizationstringObbligatorioChiave API attiva inviata con lo schema Bearer.
Accept-LanguageenumFacoltativoLingua preferita dei messaggi di errore; viene usato l’inglese per impostazione predefinita.
Content-TypestringObbligatorioTipo di contenuto JSON obbligatorio per il corpo della richiesta.
channelenumObbligatorioProdotto della campagna usato per il conteggio.
emailSolo emailsmsSolo SMSemail_smsEmail e SMS alle rispettive date programmateemail_retargeting_smsEmail seguito da retargeting SMStargetingobjectObbligatorioOggetto JSON annidato.
countriesarrayObbligatorioPaesi selezionati: FR Francia, GB Regno Unito, ES Spagna, IT Italia.
FRFranciaGBRegno UnitoESSpagnaITItaliageographyobjectObbligatorioCriteri geografici raggruppati per paese selezionato.
{country}objectObbligatorioOggetto JSON annidato.
regionsarrayFacoltativoID di regione restituiti da GET /targeting/geography con type=region.
departmentsarrayFacoltativoID di dipartimento o area amministrativa restituiti da GET /targeting/geography con type=department.
citiesarrayFacoltativoID di città restituiti da GET /targeting/geography con type=city. Ogni città include regione e dipartimento per distinguere i nomi identici.
postal_codesarrayFacoltativoCodici postali disponibili per il paese.
profileobjectObbligatorioCriteri demografici e familiari; usa un oggetto vuoto senza filtro.
age_minintegerFacoltativoEtà minima inclusa.
age_maxintegerFacoltativoEtà massima inclusa.
gender_idsarrayFacoltativoScegli uno o più ID di genere mostrati qui sotto. Un array vuoto include tutti i generi.
1maleUomo2femaleDonna3unknownSconosciutocsp_idsarrayFacoltativoScegli uno o più ID di categoria socioprofessionale mostrati qui sotto. Un array vuoto include tutte le categorie.
6csp_plusFascia socioeconomica alta7csp_middleFascia socioeconomica media8csp_minusFascia socioeconomica bassa9unknownSconosciutohousing_status_idsarrayFacoltativoScegli uno o più ID dello stato abitativo mostrati qui sotto. Un array vuoto include tutti gli stati.
10ownerProprietario11tenantInquilino12otherAltro titolo4unknownSconosciutohousing_type_idsarrayFacoltativoScegli uno o più ID del tipo di abitazione mostrati qui sotto. Un array vuoto include tutti i tipi.
14houseCasa15apartmentAppartamento16otherAltro tipo di abitazione5unknownSconosciutocar_owner_status_idsarrayFacoltativoScegli qui sotto l’ID corrispondente ai proprietari di auto. Un array vuoto non applica alcun filtro automobile.
18ownerPossiede un veicolo19non_ownerNon possiede alcun veicolo20unknownSconosciutoexclusionsobjectObbligatorioEsclusioni di contatti recenti e campagne precedenti.
recent_daysenumFacoltativo0 non applica alcuna esclusione recente; 15, 30 o 60 esclude i contatti raggiunti nel corrispondente numero di giorni precedenti.
0Nessuna esclusione di contatti recenti15Escludere i contatti raggiunti negli ultimi 15 giorni30Escludere i contatti raggiunti negli ultimi 30 giorni60Escludere i contatti raggiunti negli ultimi 60 giornicampaign_referencesarrayFacoltativoEsclude i contatti di campagne inviate dall’account negli ultimi 12 mesi.
https://api.dmseurope.com/v1/audiences/countcurl -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":[]}}}'<?php
$url = 'https://api.dmseurope.com/v1/audiences/count';
$payload = <<<'JSON'
{
"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": []
}
}
}
JSON;
$curl = curl_init($url);
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer API_KEY',
'Content-Type: application/json'
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_RESPONSE_CODE);
curl_close($curl);
var_dump($status, json_decode((string) $response, true));// Run this code server-side with Node.js 18 or later.
const response = await fetch('https://api.dmseurope.com/v1/audiences/count', {
method: 'POST',
headers: {
"Authorization": "Bearer API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
"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": []
}
}
})
});
const data = await response.json();
if (!response.ok) throw new Error(JSON.stringify(data));
console.log(data);import json
import requests
url = "https:\/\/api.dmseurope.com\/v1\/audiences\/count"
headers = {
"Authorization": "Bearer API_KEY",
"Content-Type": "application/json"
}
payload = json.loads(r'''
{
"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": []
}
}
}
''')
response = requests.request("POST", url, headers=headers, json=payload)
response.raise_for_status()
print(response.json())Successo — Tutte le risposte HTTP includono X-Request-Id; le risposte JSON includono anche request_id.
L’API è temporaneamente disattivata.
La configurazione del server è incompleta.
Manca l’intestazione Bearer.
La chiave API non è valida o è revocata.
L’account non è attivo.
L’account non può usare l’ambiente attivo.
Il limite di richieste è stato superato.
Si è verificato un errore imprevisto del server.
Un parametro o campo JSON non è valido.
Il corpo JSON non può essere decodificato.
Un valore di targeting è sconosciuto o non disponibile.
Il corpo JSON supera la dimensione consentita.
Content-Type deve essere application/json.
/targeting/geographyCercare identificatori geograficiRestituisce gli identificatori di regione, dipartimento o città accettati dal targeting.AuthorizationstringObbligatorioChiave API attiva inviata con lo schema Bearer.
Accept-LanguageenumFacoltativoLingua preferita dei messaggi di errore; viene usato l’inglese per impostazione predefinita.
countryenumObbligatorioPaese di cui viene consultato il catalogo geografico.
FRFranciaGBRegno UnitoESSpagnaITItaliatypeenumObbligatorioLivello del catalogo restituito: regioni, dipartimenti o città.
regionRegionedepartmentDipartimento o area amministrativacityCittàquerystringCondizionaleFacoltativo per regioni e dipartimenti. Obbligatorio per le città, con almeno 2 caratteri.
https://api.dmseurope.com/v1/targeting/geographycurl 'https://api.dmseurope.com/v1/targeting/geography?country=FR&type=city&query=Paris' \
-H 'Authorization: Bearer API_KEY'<?php
$url = 'https://api.dmseurope.com/v1/targeting/geography?country=FR&type=city&query=Paris';
$curl = curl_init($url);
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer API_KEY'
],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_RESPONSE_CODE);
curl_close($curl);
var_dump($status, json_decode((string) $response, true));// Run this code server-side with Node.js 18 or later.
const response = await fetch('https://api.dmseurope.com/v1/targeting/geography?country=FR&type=city&query=Paris', {
method: 'GET',
headers: {
"Authorization": "Bearer API_KEY"
}
});
const data = await response.json();
if (!response.ok) throw new Error(JSON.stringify(data));
console.log(data);import json
import requests
url = "https:\/\/api.dmseurope.com\/v1\/targeting\/geography?country=FR&type=city&query=Paris"
headers = {
"Authorization": "Bearer API_KEY"
}
response = requests.request("GET", url, headers=headers)
response.raise_for_status()
print(response.json())Successo — Tutte le risposte HTTP includono X-Request-Id; le risposte JSON includono anche request_id.
L’API è temporaneamente disattivata.
La configurazione del server è incompleta.
Manca l’intestazione Bearer.
La chiave API non è valida o è revocata.
L’account non è attivo.
L’account non può usare l’ambiente attivo.
Il limite di richieste è stato superato.
Si è verificato un errore imprevisto del server.
Un parametro o campo JSON non è valido.
/campaignsElencare le campagneRestituisce le campagne dell’account con paginazione e filtri.AuthorizationstringObbligatorioChiave API attiva inviata con lo schema Bearer.
Accept-LanguageenumFacoltativoLingua preferita dei messaggi di errore; viene usato l’inglese per impostazione predefinita.
pageintegerFacoltativoNumero di pagina richiesto.
per_pageintegerFacoltativoNumero di risultati per pagina.
statusenumFacoltativoStato esatto della campagna.
draftBozzapending_validationIn attesa di convalidaneeds_changesModifiche richiestescheduledProgrammatasendingIn inviosentInviatacancelledAnnullataproductenumFacoltativoFiltro per prodotto della campagna.
emailSolo emailsmsSolo SMSemail_smsEmail e SMS alle rispettive date programmateemail_retargeting_smsEmail seguito da retargeting SMScountryenumFacoltativoFiltro per paese.
FRFranciaGBRegno UnitoESSpagnaITItaliacreated_fromstringFacoltativoData minima di creazione inclusa.
created_tostringFacoltativoData massima di creazione inclusa.
scheduled_fromstringFacoltativoData minima programmata inclusa.
scheduled_tostringFacoltativoData massima programmata inclusa.
searchstringFacoltativoRicerca per nome o riferimento pubblico.
https://api.dmseurope.com/v1/campaignscurl 'https://api.dmseurope.com/v1/campaigns?page=1&per_page=20&status=scheduled&country=FR' \
-H 'Authorization: Bearer API_KEY'<?php
$url = 'https://api.dmseurope.com/v1/campaigns?page=1&per_page=20&status=scheduled&country=FR';
$curl = curl_init($url);
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer API_KEY'
],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_RESPONSE_CODE);
curl_close($curl);
var_dump($status, json_decode((string) $response, true));// Run this code server-side with Node.js 18 or later.
const response = await fetch('https://api.dmseurope.com/v1/campaigns?page=1&per_page=20&status=scheduled&country=FR', {
method: 'GET',
headers: {
"Authorization": "Bearer API_KEY"
}
});
const data = await response.json();
if (!response.ok) throw new Error(JSON.stringify(data));
console.log(data);import json
import requests
url = "https:\/\/api.dmseurope.com\/v1\/campaigns?page=1&per_page=20&status=scheduled&country=FR"
headers = {
"Authorization": "Bearer API_KEY"
}
response = requests.request("GET", url, headers=headers)
response.raise_for_status()
print(response.json())Successo — Tutte le risposte HTTP includono X-Request-Id; le risposte JSON includono anche request_id.
L’API è temporaneamente disattivata.
La configurazione del server è incompleta.
Manca l’intestazione Bearer.
La chiave API non è valida o è revocata.
L’account non è attivo.
L’account non può usare l’ambiente attivo.
Il limite di richieste è stato superato.
Si è verificato un errore imprevisto del server.
Un parametro o campo JSON non è valido.
/campaignsCreare una campagnaConta l’audience, calcola il prezzo, riserva il credito e invia una campagna completa.AuthorizationstringObbligatorioChiave API attiva inviata con lo schema Bearer.
Accept-LanguageenumFacoltativoLingua preferita dei messaggi di errore; viene usato l’inglese per impostazione predefinita.
Content-TypestringObbligatorioTipo di contenuto JSON obbligatorio per il corpo della richiesta.
Client-ReferencestringObbligatorioRiferimento aziendale permanente e univoco per questa creazione. Una seconda creazione con lo stesso valore viene rifiutata.
namestringObbligatorioNome della campagna.
productenumObbligatorioemail: solo email; sms: solo SMS; email_sms: entrambi i canali; email_retargeting_sms: email seguito da retargeting SMS.
emailSolo emailsmsSolo SMSemail_smsEmail e SMS alle rispettive date programmateemail_retargeting_smsEmail seguito da retargeting SMStargetingobjectObbligatorioOggetto JSON annidato.
countriesarrayObbligatorioPaesi selezionati: FR Francia, GB Regno Unito, ES Spagna, IT Italia.
FRFranciaGBRegno UnitoESSpagnaITItaliageographyobjectObbligatorioCriteri geografici raggruppati per paese selezionato.
{country}objectObbligatorioOggetto JSON annidato.
regionsarrayFacoltativoID di regione restituiti da GET /targeting/geography con type=region.
departmentsarrayFacoltativoID di dipartimento o area amministrativa restituiti da GET /targeting/geography con type=department.
citiesarrayFacoltativoID di città restituiti da GET /targeting/geography con type=city. Ogni città include regione e dipartimento per distinguere i nomi identici.
postal_codesarrayFacoltativoCodici postali disponibili per il paese.
profileobjectObbligatorioCriteri demografici e familiari; usa un oggetto vuoto senza filtro.
age_minintegerFacoltativoEtà minima inclusa.
age_maxintegerFacoltativoEtà massima inclusa.
gender_idsarrayFacoltativoScegli uno o più ID di genere mostrati qui sotto. Un array vuoto include tutti i generi.
1maleUomo2femaleDonna3unknownSconosciutocsp_idsarrayFacoltativoScegli uno o più ID di categoria socioprofessionale mostrati qui sotto. Un array vuoto include tutte le categorie.
6csp_plusFascia socioeconomica alta7csp_middleFascia socioeconomica media8csp_minusFascia socioeconomica bassa9unknownSconosciutohousing_status_idsarrayFacoltativoScegli uno o più ID dello stato abitativo mostrati qui sotto. Un array vuoto include tutti gli stati.
10ownerProprietario11tenantInquilino12otherAltro titolo4unknownSconosciutohousing_type_idsarrayFacoltativoScegli uno o più ID del tipo di abitazione mostrati qui sotto. Un array vuoto include tutti i tipi.
14houseCasa15apartmentAppartamento16otherAltro tipo di abitazione5unknownSconosciutocar_owner_status_idsarrayFacoltativoScegli qui sotto l’ID corrispondente ai proprietari di auto. Un array vuoto non applica alcun filtro automobile.
18ownerPossiede un veicolo19non_ownerNon possiede alcun veicolo20unknownSconosciutoexclusionsobjectObbligatorioEsclusioni di contatti recenti e campagne precedenti.
recent_daysenumFacoltativo0 non applica alcuna esclusione recente; 15, 30 o 60 esclude i contatti raggiunti nel corrispondente numero di giorni precedenti.
0Nessuna esclusione di contatti recenti15Escludere i contatti raggiunti negli ultimi 15 giorni30Escludere i contatti raggiunti negli ultimi 30 giorni60Escludere i contatti raggiunti negli ultimi 60 giornicampaign_referencesarrayFacoltativoEsclude i contatti di campagne inviate dall’account negli ultimi 12 mesi.
volumesobjectObbligatorioVolumi richiesti per paese; le chiavi devono corrispondere esattamente a targeting.countries.
{country}integerObbligatorioVolume di contatti richiesto per questo paese.
contentsobjectObbligatorioContenuti per paese; le chiavi devono corrispondere esattamente a targeting.countries.
{country}objectObbligatorioOggetto di contenuto per ogni paese selezionato; le chiavi esatte dipendono dal prodotto.
emailobjectCondizionaleObbligatorio per ogni paese quando il prodotto include email.
sender_namestringCondizionaleNome del mittente email.
subjectstringCondizionaleOggetto dell’email.
preheaderstringFacoltativoPreheader email facoltativo.
htmlstringCondizionaleHTML completo dell’email.
smsobjectCondizionaleObbligatorio per ogni paese quando il prodotto include SMS.
sender_namestringCondizionaleDa 1 a 11 lettere ASCII o cifre, con almeno una lettera; i valori simili a numeri di telefono vengono rifiutati.
messagestringCondizionaleCorpo senza il suffisso STOP automatico. Massimo 4 segmenti SMS, compresi suffisso STOP del paese, riserve di personalizzazione e link breve di 20 caratteri.
destination_urlstringFacoltativoURL HTTP(S) pubblico facoltativo, massimo 2.048 caratteri. È richiesto esattamente quando il messaggio contiene un tag {{short_url}}; gli URL scritti direttamente nel messaggio vengono rifiutati.
scheduleobjectObbligatorioFuso IANA e date di invio richieste. Ogni invio deve essere programmato con almeno 48 ore lavorative di anticipo.
timezonestringObbligatorioFuso IANA usato per convalidare gli offset delle date.
email_atstringCondizionaleRichiesto se il prodotto include email; vietato per sms. Per email_sms, la distanza da sms_at non può superare 48 ore.
sms_atstringCondizionaleRichiesto per sms ed email_sms; vietato per email ed email_retargeting_sms. L’ora locale deve essere tra le 08:00 e le 19:45 e, per email_sms, entro 48 ore da email_at.
retargeting_delay_hoursintegerFacoltativoSolo per email_retargeting_sms: intero da 6 a 72 ore dopo l’email; valore predefinito 24.
promo_codestringFacoltativoCodice promozionale facoltativo: da 1 a 64 lettere maiuscole, cifre, trattini bassi o trattini; il primo carattere deve essere una lettera o una cifra.
https://api.dmseurope.com/v1/campaignscurl -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
}'<?php
$url = 'https://api.dmseurope.com/v1/campaigns';
$payload = <<<'JSON'
{
"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
}
JSON;
$curl = curl_init($url);
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer API_KEY',
'Client-Reference: crm-campaign-20260829-001',
'Content-Type: application/json'
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_RESPONSE_CODE);
curl_close($curl);
var_dump($status, json_decode((string) $response, true));// Run this code server-side with Node.js 18 or later.
const response = await fetch('https://api.dmseurope.com/v1/campaigns', {
method: 'POST',
headers: {
"Authorization": "Bearer API_KEY",
"Client-Reference": "crm-campaign-20260829-001",
"Content-Type": "application/json"
},
body: JSON.stringify({
"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
})
});
const data = await response.json();
if (!response.ok) throw new Error(JSON.stringify(data));
console.log(data);import json
import requests
url = "https:\/\/api.dmseurope.com\/v1\/campaigns"
headers = {
"Authorization": "Bearer API_KEY",
"Client-Reference": "crm-campaign-20260829-001",
"Content-Type": "application/json"
}
payload = json.loads(r'''
{
"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
}
''')
response = requests.request("POST", url, headers=headers, json=payload)
response.raise_for_status()
print(response.json())Successo — Tutte le risposte HTTP includono X-Request-Id; le risposte JSON includono anche request_id.
L’API è temporaneamente disattivata.
La configurazione del server è incompleta.
Manca l’intestazione Bearer.
La chiave API non è valida o è revocata.
L’account non è attivo.
L’account non può usare l’ambiente attivo.
È richiesto un account postpagato attivo con limite positivo.
Il limite di richieste è stato superato.
Si è verificato un errore imprevisto del server.
Un parametro o campo JSON non è valido.
Il corpo JSON non può essere decodificato.
Client-Reference è assente.
Client-Reference non rispetta il formato richiesto.
Un valore di targeting è sconosciuto o non disponibile.
Il corpo JSON supera la dimensione consentita.
Content-Type deve essere application/json.
Il riferimento identifica già una creazione di campagna.
Il credito disponibile è insufficiente.
La campagna completa viola una regola aziendale.
/campaigns/{reference}Consultare una campagnaRestituisce targeting, contenuti, programmazione, prezzo, moderazione e produzione.AuthorizationstringObbligatorioChiave API attiva inviata con lo schema Bearer.
Accept-LanguageenumFacoltativoLingua preferita dei messaggi di errore; viene usato l’inglese per impostazione predefinita.
referencestringObbligatorioRiferimento pubblico della campagna.
https://api.dmseurope.com/v1/campaigns/{reference}curl 'https://api.dmseurope.com/v1/campaigns/CMP-2026-0000123' \
-H 'Authorization: Bearer API_KEY'<?php
$url = 'https://api.dmseurope.com/v1/campaigns/CMP-2026-0000123';
$curl = curl_init($url);
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer API_KEY'
],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_RESPONSE_CODE);
curl_close($curl);
var_dump($status, json_decode((string) $response, true));// Run this code server-side with Node.js 18 or later.
const response = await fetch('https://api.dmseurope.com/v1/campaigns/CMP-2026-0000123', {
method: 'GET',
headers: {
"Authorization": "Bearer API_KEY"
}
});
const data = await response.json();
if (!response.ok) throw new Error(JSON.stringify(data));
console.log(data);import json
import requests
url = "https:\/\/api.dmseurope.com\/v1\/campaigns\/CMP-2026-0000123"
headers = {
"Authorization": "Bearer API_KEY"
}
response = requests.request("GET", url, headers=headers)
response.raise_for_status()
print(response.json())Successo — Tutte le risposte HTTP includono X-Request-Id; le risposte JSON includono anche request_id.
L’API è temporaneamente disattivata.
La configurazione del server è incompleta.
Manca l’intestazione Bearer.
La chiave API non è valida o è revocata.
L’account non è attivo.
L’account non può usare l’ambiente attivo.
Il limite di richieste è stato superato.
Si è verificato un errore imprevisto del server.
Un parametro o campo JSON non è valido.
La campagna non esiste o appartiene a un altro account.
/campaigns/{reference}Modificare una campagnaSostituisce completamente una campagna modificabile. Lo stesso Client-Reference può essere riutilizzato con nuovi contenuti.AuthorizationstringObbligatorioChiave API attiva inviata con lo schema Bearer.
Accept-LanguageenumFacoltativoLingua preferita dei messaggi di errore; viene usato l’inglese per impostazione predefinita.
Content-TypestringObbligatorioTipo di contenuto JSON obbligatorio per il corpo della richiesta.
Client-ReferencestringObbligatorioRiferimento aziendale della modifica. Può essere riutilizzato per modifiche successive, con JSON identico o diverso.
referencestringObbligatorioRiferimento pubblico della campagna.
namestringObbligatorioNome della campagna.
productenumObbligatorioemail: solo email; sms: solo SMS; email_sms: entrambi i canali; email_retargeting_sms: email seguito da retargeting SMS.
emailSolo emailsmsSolo SMSemail_smsEmail e SMS alle rispettive date programmateemail_retargeting_smsEmail seguito da retargeting SMStargetingobjectObbligatorioOggetto JSON annidato.
countriesarrayObbligatorioPaesi selezionati: FR Francia, GB Regno Unito, ES Spagna, IT Italia.
FRFranciaGBRegno UnitoESSpagnaITItaliageographyobjectObbligatorioCriteri geografici raggruppati per paese selezionato.
{country}objectObbligatorioOggetto JSON annidato.
regionsarrayFacoltativoID di regione restituiti da GET /targeting/geography con type=region.
departmentsarrayFacoltativoID di dipartimento o area amministrativa restituiti da GET /targeting/geography con type=department.
citiesarrayFacoltativoID di città restituiti da GET /targeting/geography con type=city. Ogni città include regione e dipartimento per distinguere i nomi identici.
postal_codesarrayFacoltativoCodici postali disponibili per il paese.
profileobjectObbligatorioCriteri demografici e familiari; usa un oggetto vuoto senza filtro.
age_minintegerFacoltativoEtà minima inclusa.
age_maxintegerFacoltativoEtà massima inclusa.
gender_idsarrayFacoltativoScegli uno o più ID di genere mostrati qui sotto. Un array vuoto include tutti i generi.
1maleUomo2femaleDonna3unknownSconosciutocsp_idsarrayFacoltativoScegli uno o più ID di categoria socioprofessionale mostrati qui sotto. Un array vuoto include tutte le categorie.
6csp_plusFascia socioeconomica alta7csp_middleFascia socioeconomica media8csp_minusFascia socioeconomica bassa9unknownSconosciutohousing_status_idsarrayFacoltativoScegli uno o più ID dello stato abitativo mostrati qui sotto. Un array vuoto include tutti gli stati.
10ownerProprietario11tenantInquilino12otherAltro titolo4unknownSconosciutohousing_type_idsarrayFacoltativoScegli uno o più ID del tipo di abitazione mostrati qui sotto. Un array vuoto include tutti i tipi.
14houseCasa15apartmentAppartamento16otherAltro tipo di abitazione5unknownSconosciutocar_owner_status_idsarrayFacoltativoScegli qui sotto l’ID corrispondente ai proprietari di auto. Un array vuoto non applica alcun filtro automobile.
18ownerPossiede un veicolo19non_ownerNon possiede alcun veicolo20unknownSconosciutoexclusionsobjectObbligatorioEsclusioni di contatti recenti e campagne precedenti.
recent_daysenumFacoltativo0 non applica alcuna esclusione recente; 15, 30 o 60 esclude i contatti raggiunti nel corrispondente numero di giorni precedenti.
0Nessuna esclusione di contatti recenti15Escludere i contatti raggiunti negli ultimi 15 giorni30Escludere i contatti raggiunti negli ultimi 30 giorni60Escludere i contatti raggiunti negli ultimi 60 giornicampaign_referencesarrayFacoltativoEsclude i contatti di campagne inviate dall’account negli ultimi 12 mesi.
volumesobjectObbligatorioVolumi richiesti per paese; le chiavi devono corrispondere esattamente a targeting.countries.
{country}integerObbligatorioVolume di contatti richiesto per questo paese.
contentsobjectObbligatorioContenuti per paese; le chiavi devono corrispondere esattamente a targeting.countries.
{country}objectObbligatorioOggetto di contenuto per ogni paese selezionato; le chiavi esatte dipendono dal prodotto.
emailobjectCondizionaleObbligatorio per ogni paese quando il prodotto include email.
sender_namestringCondizionaleNome del mittente email.
subjectstringCondizionaleOggetto dell’email.
preheaderstringFacoltativoPreheader email facoltativo.
htmlstringCondizionaleHTML completo dell’email.
smsobjectCondizionaleObbligatorio per ogni paese quando il prodotto include SMS.
sender_namestringCondizionaleDa 1 a 11 lettere ASCII o cifre, con almeno una lettera; i valori simili a numeri di telefono vengono rifiutati.
messagestringCondizionaleCorpo senza il suffisso STOP automatico. Massimo 4 segmenti SMS, compresi suffisso STOP del paese, riserve di personalizzazione e link breve di 20 caratteri.
destination_urlstringFacoltativoURL HTTP(S) pubblico facoltativo, massimo 2.048 caratteri. È richiesto esattamente quando il messaggio contiene un tag {{short_url}}; gli URL scritti direttamente nel messaggio vengono rifiutati.
scheduleobjectObbligatorioFuso IANA e date di invio richieste. Ogni invio deve essere programmato con almeno 48 ore lavorative di anticipo.
timezonestringObbligatorioFuso IANA usato per convalidare gli offset delle date.
email_atstringCondizionaleRichiesto se il prodotto include email; vietato per sms. Per email_sms, la distanza da sms_at non può superare 48 ore.
sms_atstringCondizionaleRichiesto per sms ed email_sms; vietato per email ed email_retargeting_sms. L’ora locale deve essere tra le 08:00 e le 19:45 e, per email_sms, entro 48 ore da email_at.
retargeting_delay_hoursintegerFacoltativoSolo per email_retargeting_sms: intero da 6 a 72 ore dopo l’email; valore predefinito 24.
promo_codestringFacoltativoCodice promozionale facoltativo: da 1 a 64 lettere maiuscole, cifre, trattini bassi o trattini; il primo carattere deve essere una lettera o una cifra.
https://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
}'<?php
$url = 'https://api.dmseurope.com/v1/campaigns/CMP-2026-0000123';
$payload = <<<'JSON'
{
"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
}
JSON;
$curl = curl_init($url);
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'PUT',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer API_KEY',
'Client-Reference: crm-update-20260829-001',
'Content-Type: application/json'
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_RESPONSE_CODE);
curl_close($curl);
var_dump($status, json_decode((string) $response, true));// Run this code server-side with Node.js 18 or later.
const response = await fetch('https://api.dmseurope.com/v1/campaigns/CMP-2026-0000123', {
method: 'PUT',
headers: {
"Authorization": "Bearer API_KEY",
"Client-Reference": "crm-update-20260829-001",
"Content-Type": "application/json"
},
body: JSON.stringify({
"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
})
});
const data = await response.json();
if (!response.ok) throw new Error(JSON.stringify(data));
console.log(data);import json
import requests
url = "https:\/\/api.dmseurope.com\/v1\/campaigns\/CMP-2026-0000123"
headers = {
"Authorization": "Bearer API_KEY",
"Client-Reference": "crm-update-20260829-001",
"Content-Type": "application/json"
}
payload = json.loads(r'''
{
"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
}
''')
response = requests.request("PUT", url, headers=headers, json=payload)
response.raise_for_status()
print(response.json())Successo — Tutte le risposte HTTP includono X-Request-Id; le risposte JSON includono anche request_id.
L’API è temporaneamente disattivata.
La configurazione del server è incompleta.
Manca l’intestazione Bearer.
La chiave API non è valida o è revocata.
L’account non è attivo.
L’account non può usare l’ambiente attivo.
È richiesto un account postpagato attivo con limite positivo.
Il limite di richieste è stato superato.
Si è verificato un errore imprevisto del server.
Un parametro o campo JSON non è valido.
Il corpo JSON non può essere decodificato.
Client-Reference è assente.
Client-Reference non rispetta il formato richiesto.
Un valore di targeting è sconosciuto o non disponibile.
Il corpo JSON supera la dimensione consentita.
Content-Type deve essere application/json.
La campagna non esiste o appartiene a un altro account.
Lo stato della campagna non consente la modifica.
Il credito disponibile è insufficiente.
La campagna completa viola una regola aziendale.
/campaigns/{reference}/cancelAnnullare una campagnaAnnulla una campagna idonea e libera il credito riservato quando necessario. Client-Reference non è richiesto.AuthorizationstringObbligatorioChiave API attiva inviata con lo schema Bearer.
Accept-LanguageenumFacoltativoLingua preferita dei messaggi di errore; viene usato l’inglese per impostazione predefinita.
Content-TypestringCondizionaleObbligatorio solo quando viene inviato un corpo JSON di annullamento.
referencestringObbligatorioRiferimento pubblico della campagna.
reasonstringFacoltativoMotivo di annullamento facoltativo.
https://api.dmseurope.com/v1/campaigns/{reference}/cancelcurl -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"}'<?php
$url = 'https://api.dmseurope.com/v1/campaigns/CMP-2026-0000123/cancel';
$payload = <<<'JSON'
{
"reason": "Cancelled by CRM operator"
}
JSON;
$curl = curl_init($url);
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer API_KEY',
'Content-Type: application/json'
],
CURLOPT_POSTFIELDS => $payload,
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_RESPONSE_CODE);
curl_close($curl);
var_dump($status, json_decode((string) $response, true));// Run this code server-side with Node.js 18 or later.
const response = await fetch('https://api.dmseurope.com/v1/campaigns/CMP-2026-0000123/cancel', {
method: 'POST',
headers: {
"Authorization": "Bearer API_KEY",
"Content-Type": "application/json"
},
body: JSON.stringify({
"reason": "Cancelled by CRM operator"
})
});
const data = await response.json();
if (!response.ok) throw new Error(JSON.stringify(data));
console.log(data);import json
import requests
url = "https:\/\/api.dmseurope.com\/v1\/campaigns\/CMP-2026-0000123\/cancel"
headers = {
"Authorization": "Bearer API_KEY",
"Content-Type": "application/json"
}
payload = json.loads(r'''
{
"reason": "Cancelled by CRM operator"
}
''')
response = requests.request("POST", url, headers=headers, json=payload)
response.raise_for_status()
print(response.json())Successo — Tutte le risposte HTTP includono X-Request-Id; le risposte JSON includono anche request_id.
L’API è temporaneamente disattivata.
La configurazione del server è incompleta.
Manca l’intestazione Bearer.
La chiave API non è valida o è revocata.
L’account non è attivo.
L’account non può usare l’ambiente attivo.
Il limite di richieste è stato superato.
Si è verificato un errore imprevisto del server.
Un parametro o campo JSON non è valido.
Il corpo JSON non può essere decodificato.
Il corpo JSON supera la dimensione consentita.
Content-Type deve essere application/json.
La campagna non esiste o appartiene a un altro account.
Lo stato della campagna non consente l’annullamento.
/campaigns/{reference}/statisticsConsultare le statisticheRestituisce i totali attuali e i dettagli per paese, lingua e canale.AuthorizationstringObbligatorioChiave API attiva inviata con lo schema Bearer.
Accept-LanguageenumFacoltativoLingua preferita dei messaggi di errore; viene usato l’inglese per impostazione predefinita.
referencestringObbligatorioRiferimento pubblico della campagna.
https://api.dmseurope.com/v1/campaigns/{reference}/statisticscurl 'https://api.dmseurope.com/v1/campaigns/CMP-2026-0000123/statistics' \
-H 'Authorization: Bearer API_KEY'<?php
$url = 'https://api.dmseurope.com/v1/campaigns/CMP-2026-0000123/statistics';
$curl = curl_init($url);
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer API_KEY'
],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_RESPONSE_CODE);
curl_close($curl);
var_dump($status, json_decode((string) $response, true));// Run this code server-side with Node.js 18 or later.
const response = await fetch('https://api.dmseurope.com/v1/campaigns/CMP-2026-0000123/statistics', {
method: 'GET',
headers: {
"Authorization": "Bearer API_KEY"
}
});
const data = await response.json();
if (!response.ok) throw new Error(JSON.stringify(data));
console.log(data);import json
import requests
url = "https:\/\/api.dmseurope.com\/v1\/campaigns\/CMP-2026-0000123\/statistics"
headers = {
"Authorization": "Bearer API_KEY"
}
response = requests.request("GET", url, headers=headers)
response.raise_for_status()
print(response.json())Successo — Tutte le risposte HTTP includono X-Request-Id; le risposte JSON includono anche request_id.
L’API è temporaneamente disattivata.
La configurazione del server è incompleta.
Manca l’intestazione Bearer.
La chiave API non è valida o è revocata.
L’account non è attivo.
L’account non può usare l’ambiente attivo.
Il limite di richieste è stato superato.
Si è verificato un errore imprevisto del server.
Un parametro o campo JSON non è valido.
La campagna non esiste o appartiene a un altro account.
/invoicesElencare le fattureRestituisce fatture e note di credito. Ogni elemento contiene pdf_url, il cui percorso include opaque_reference.AuthorizationstringObbligatorioChiave API attiva inviata con lo schema Bearer.
Accept-LanguageenumFacoltativoLingua preferita dei messaggi di errore; viene usato l’inglese per impostazione predefinita.
pageintegerFacoltativoNumero di pagina richiesto.
per_pageintegerFacoltativoNumero di risultati per pagina.
typeenumFacoltativoFiltro per tipo di documento.
invoiceFatturacredit_noteNota di creditostatusstringFacoltativoStato esatto del ciclo di vita della fattura.
payment_statusstringFacoltativoStato esatto del pagamento.
issued_fromstringFacoltativoData minima di emissione inclusa.
issued_tostringFacoltativoData massima di emissione inclusa.
campaign_referencestringFacoltativoFiltro per riferimento pubblico della campagna.
https://api.dmseurope.com/v1/invoicescurl 'https://api.dmseurope.com/v1/invoices?page=1&per_page=20&type=invoice&payment_status=paid' \
-H 'Authorization: Bearer API_KEY'<?php
$url = 'https://api.dmseurope.com/v1/invoices?page=1&per_page=20&type=invoice&payment_status=paid';
$curl = curl_init($url);
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer API_KEY'
],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_RESPONSE_CODE);
curl_close($curl);
var_dump($status, json_decode((string) $response, true));// Run this code server-side with Node.js 18 or later.
const response = await fetch('https://api.dmseurope.com/v1/invoices?page=1&per_page=20&type=invoice&payment_status=paid', {
method: 'GET',
headers: {
"Authorization": "Bearer API_KEY"
}
});
const data = await response.json();
if (!response.ok) throw new Error(JSON.stringify(data));
console.log(data);import json
import requests
url = "https:\/\/api.dmseurope.com\/v1\/invoices?page=1&per_page=20&type=invoice&payment_status=paid"
headers = {
"Authorization": "Bearer API_KEY"
}
response = requests.request("GET", url, headers=headers)
response.raise_for_status()
print(response.json())Successo — Tutte le risposte HTTP includono X-Request-Id; le risposte JSON includono anche request_id.
L’API è temporaneamente disattivata.
La configurazione del server è incompleta.
Manca l’intestazione Bearer.
La chiave API non è valida o è revocata.
L’account non è attivo.
L’account non può usare l’ambiente attivo.
Il limite di richieste è stato superato.
Si è verificato un errore imprevisto del server.
Un parametro o campo JSON non è valido.
/invoices/{number}Consultare una fatturaRestituisce il documento legale strutturato e pdf_url contenente opaque_reference.AuthorizationstringObbligatorioChiave API attiva inviata con lo schema Bearer.
Accept-LanguageenumFacoltativoLingua preferita dei messaggi di errore; viene usato l’inglese per impostazione predefinita.
numberstringObbligatorioNumero legale della fattura o nota di credito.
https://api.dmseurope.com/v1/invoices/{number}curl 'https://api.dmseurope.com/v1/invoices/INV-2026-000123' \
-H 'Authorization: Bearer API_KEY'<?php
$url = 'https://api.dmseurope.com/v1/invoices/INV-2026-000123';
$curl = curl_init($url);
curl_setopt_array($curl, [
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [
'Authorization: Bearer API_KEY'
],
]);
$response = curl_exec($curl);
$status = curl_getinfo($curl, CURLINFO_RESPONSE_CODE);
curl_close($curl);
var_dump($status, json_decode((string) $response, true));// Run this code server-side with Node.js 18 or later.
const response = await fetch('https://api.dmseurope.com/v1/invoices/INV-2026-000123', {
method: 'GET',
headers: {
"Authorization": "Bearer API_KEY"
}
});
const data = await response.json();
if (!response.ok) throw new Error(JSON.stringify(data));
console.log(data);import json
import requests
url = "https:\/\/api.dmseurope.com\/v1\/invoices\/INV-2026-000123"
headers = {
"Authorization": "Bearer API_KEY"
}
response = requests.request("GET", url, headers=headers)
response.raise_for_status()
print(response.json())Successo — Tutte le risposte HTTP includono X-Request-Id; le risposte JSON includono anche request_id.
L’API è temporaneamente disattivata.
La configurazione del server è incompleta.
Manca l’intestazione Bearer.
La chiave API non è valida o è revocata.
L’account non è attivo.
L’account non può usare l’ambiente attivo.
Il limite di richieste è stato superato.
Si è verificato un errore imprevisto del server.
Un parametro o campo JSON non è valido.
Il documento non esiste o appartiene a un altro account.