API Avis-Locataire
Documentation indisponible pour l'instant
API Collecte
Documentation indisponible pour l'instant
API Communication
Envoyer un Email
# Envoi d'un email individuel
curl -X POST \
"https://communication.avis-locataire.com/v1/send_email" \
--data "auth_key=mykey" \
--data "auth_secret=mysecret" \
--data "recipient=exemple@mail.com" \
--data "subject=Email exemple" \
--data "identifier1=001" \
--data "force_sending=false" \
--data "unsubscribe_link=true" \
--data "message=Ceci est un exemple%0ATest"\
--data "test_mode=false"
# Envoi de plusieurs emails
curl -X POST \
"https://communication.avis-locataire.com/v1/send_email?auth_key=mykey&auth_secret=mysecret" \
--header 'Content-Type: application/json' \
--data-raw '[
{
"recipient": "exemple@mail.com",
"subject": "Email exemple",
"identifier1": "001",
"force_sending": true,
"message": "Ceci est un exemple%0ATest"
}, {
"recipient": "exemple2@mail.com",
"subject": "Email exemple2",
"identifier1": "002",
"force_sending": false,
"unsubscribe_link": true,
"message": "Ceci est un exemple2%0ATest"
}
]'
require 'uri'
require 'net/http'
params = {
auth_key: 'mykey',
auth_secret: 'mysecret',
recipient: 'exemple@mail.com',
subject: 'Email exemple',
identifier1: '001',
force_sending: false,
unsubscribe_link: true,
message: 'Ceci est un exemple%0ATest'
}
url = URI('https://communication.avis-locataire.com/v1/send_email')
url.query = params.map { |key, value| "#{key}=#{value}" }.join('&')
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_body
var endpoint = 'https://communication.avis-locataire.com/v1/send_email'
var requestOptions = {
method: 'POST',
redirect: 'follow'
}
params = {
auth_key: 'mykey',
auth_secret: 'mysecret',
recipient: 'exemple@mail.com',
subject: 'Email exemple',
identifier1: "001",
force_sending: false,
unsubscribe_link: true,
message: 'Ceci est un exemple%0ATest'
}
queryParams = []
for (const [key, value] of Object.entries(params)) {
queryParams.push(`${key}=${value}`)
}
fetch(`${endpoint}?${queryParams.join('&')}`, requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error))
Les commandes ci-dessus renvoient un JSON structuré comme ceci
// Exemple de réussite pour un envoi unique
{
"status": 200,
"message": "Message successfully queued"
}
// Exemple d'échec pour un envoi unique (destinataire invalide)
{
"status": 400,
"message": "invalid recipient"
}
// Exemple pour un envoi multiple
{
"status": 200,
"messages": [
{
"error": false,
"recipient": "0602030405",
"message": "Message successfully queued"
},
{
"error": true,
"recipient": null,
"message": "message can't be blank"
}
]
}
Cette requête permet d'envoyer un ou plusieurs emails simplement.
Requête HTTP
POST https://communication.avis-locataire.com/v1/send_email
Paramètres URL de la requête pour un envoi unique
Nom | Description |
---|---|
auth_key | Clé d'authentification |
auth_secret | Secret d'authentification correspondant à la clé ci-dessus |
recipient | Email du destinataire |
subject | Sujet de l'email |
identifier(1-2) | Paramètres optionel pour identifier en interne le message/envoi |
email_originator | Paramètre pour changer le nom de l'expediteur dans l'email |
logo_url | Paramètre pour changer le logo afficher dans l'entête de l'email |
force_sending | Forcer l'envoie même si le destinataire est désinscrit (optionnel) |
unsubscribe_link | Paramètre optionel qui détermine si le liens de désincription doit être visible |
message | Contenu du message |
test_mode | Mode test, n'envoi pas réellement le message (optionnel) |
Paramètres URL de la requête pour un envoi multiple
Nom | Description |
---|---|
auth_key | Clé d'authentification |
auth_secret | Secret d'authentification correspondant à la clé ci-dessus |
Dans le cas d'un envoi multiple, le corps de la requête HTTP doit contenir un tableau JSON contenant des objets structurés comme ci-dessous.
Valeur | Description |
---|---|
recipient | Email du destinataire |
subject | Sujet de l'email |
identifier(1-2) | Paramètres optionel pour identifier en interne le message/envoi |
email_originator | Paramètre pour changer le nom de l'expediteur dans l'email |
logo_url | Paramètre pour changer le logo afficher dans l'entête de l'email |
force_sending | Forcer l'envoie même si le destinataire est désinscrit (optionnel) |
unsubscribe_link | Paramètre optionel qui détermine si le liens de désincription doit être visible |
message | Contenu du message |
test_mode | Mode test, n'envoi pas réellement le message (optionnel) |
Envoyer un SMS
# Envoi d'un SMS individuel
curl -X POST \
"https://communication.avis-locataire.com/v1/send_sms" \
--data "auth_key=mykey" \
--data "auth_secret=mysecret" \
--data "recipient=0602030405" \
--data "identifier1=001" \
--data "force_sending=false" \
--data "message=Ceci est un example%0ATest"
# Envoi de plusieurs SMS
curl -X POST \
"https://communication.avis-locataire.com/v1/send_sms?auth_key=mykey&auth_secret=mysecret" \
--header 'Content-Type: application/json' \
--data-raw '[
{
"recipient": "0602030405",
"identifier1": "001",
"force_sending": true,
"message": "Ceci est un exemple%0ATest"
}, {
"recipient": "0702030405",
"identifier1": "002",
"force_sending": false,
"message": "Ceci est un exemple2%0ATest"
}
]'
require 'uri'
require 'net/http'
params = {
auth_key: 'mykey',
auth_secret: 'mysecret',
recipient: '0602030405',
identifier1: '001',
force_sending: false,
message: 'Ceci est un exemple%0ATest'
}
url = URI('https://communication.avis-locataire.com/v1/send_sms')
url.query = params.map { |key, value| "#{key}=#{value}" }.join('&')
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
response = http.request(request)
puts response.read_body
var endpoint = 'https://communication.avis-locataire.com/v1/send_sms'
var requestOptions = {
method: 'POST',
redirect: 'follow'
}
params = {
auth_key: 'mykey',
auth_secret: 'mysecret',
recipient: '0602030405',
identifier1: "001",
force_sending: false,
message: 'Ceci est un exemple%0ATest'
}
queryParams = []
for (const [key, value] of Object.entries(params)) {
queryParams.push(`${key}=${value}`)
}
fetch(`${endpoint}?${queryParams.join('&')}`, requestOptions)
.then(response => response.text())
.then(result => console.log(result))
.catch(error => console.log('error', error))
Les commandes ci-dessus renvoient un JSON structuré comme ceci
// Exemple de réussite pour un envoi unique
{
"status": 200,
"message": "Message successfully queued"
}
// Exemple d'échec pour un envoi unique (destinataire invalide)
{
"status": 400,
"message": "invalid recipient"
}
// Exemple pour un envoi multiple
{
"status": 200,
"messages": [
{
"error": false,
"recipient": "0602030405",
"message": "Message successfully queued"
},
{
"error": true,
"recipient": null,
"message": "message can't be blank"
}
]
}
Cette requête permet d'envoyer un SMS simplement.
Requête HTTP
POST https://communication.avis-locataire.com/v1/send_sms
Paramètres de la requête pour un envoi unique
Nom | Description |
---|---|
auth_key | Clé d'authentification |
auth_secret | Secret d'authentification correspondant à la clé ci-dessus |
recipient | Numéro de téléphone du destinataire |
identifier(1-2) | Paramètres optionel pour identifier en interne le message/envoi |
sms_originator | Paramètre pour changer le nom de l'expediteur dans le SMS |
force_sending | Forcer l'envoie même si le destinataire est désinscrit (optionnel) |
message | Contenu du message |
test_mode | Mode test, n'envoi pas réellement le message (optionnel) |
Paramètres URL de la requête pour un envoi multiple
Nom | Description |
---|---|
auth_key | Clé d'authentification. |
auth_secret | Secret d'authentification correspondant à la clé ci-dessus. |
Dans le cas d'un envoi multiple, le corps de la requête HTTP doit contenir un tableau JSON contenant des objets structurés comme ci-dessous.
Valeur | Description |
---|---|
recipient | Numéro de téléphone du destinataire |
identifier(1-2) | Paramètres optionel pour identifier en interne le message/envoi |
sms_originator | Paramètre pour changer le nom de l'expediteur dans le SMS |
force_sending | Forcer l'envoie même si le destinataire est désinscrit (optionnel) |
message | Contenu du message |
test_mode | Mode test, n'envoi pas réellement le message (optionnel) |
Envoyer un message
# Envoi d'un message individuel
curl -X POST \
"https://communication.avis-locataire.com/v1/messages" \
--data "auth_key=mykey" \
--data "auth_secret=mysecret" \
--data "email=exemple@email.com"
--data "phone=0602030405" \
--data "email_subject=Email exemple" \
--data "email_content=Ceci est un example%0ATest" \
--data "sms_content=Ceci est un example%0ATest" \
--data "identifier1=001" \
--data "force_sending=false" \
--data "unsubscribe_link=true" \
--data "channel=both"
# Envoi de plusieurs messages
curl -X POST \
"https://communication.avis-locataire.com/v1/messages?auth_key=mykey&auth_secret=mysecret" \
--header 'Content-Type: application/json' \
--data-raw '[
{
"email": "exemple@email.com",
"phone": "0602030405",
"email_subject": "Email exemple",
"email_content": "Ceci est un exemple%0ATest"
"sms_content": "Ceci est un example%0ATest",
"identifier1": "001",
"force_sending": true,
"channel": "both"
}, {
"email": "exemple2@email.com",
"phone": "0702030405",
"email_subject": "Email exemple2",
"email_content": "Ceci est un exemple2%0ATest"
"sms_content": "Ceci est un example2%0ATest",
"identifier1": "002",
"force_sending": false,
"unsubscribe_link": true,
"channel": "both"
}
]'
La commande ci-dessus renvoie un JSON structuré comme ceci
// Exemple de réussite pour un envoi unique
{
"status": 200,
"message": "Message successfully queued"
}
// Exemple d'échec pour un envoi unique (destinataire invalide)
{
"status": 400,
"message": "invalid recipient"
}
// Exemple pour un envoi multiple
{
"status": 200,
"messages": [
{
"error": false,
"email": "exemple@email.com",
"phone": "0602030405",
"message": "Message successfully queued"
},
{
"error": true,
"email": null,
"phone": null,
"message": "message can't be blank"
}
]
}
Cette requête permet d'envoyer un message par SMS/Email ou les deux en même temps.
Requête HTTP
POST https://communication.avis-locataire.com/v1/messages
Paramètres de la requête pour un envoi unique
Nom | Description |
---|---|
auth_key | Clé d'authentification |
auth_secret | Secret d'authentification correspondant à la clé ci-dessus |
Email du destinataire | |
phone | Numéro de téléphone du destinataire |
email_subject | Sujet de l'email |
email_content | Contenu du message Email |
sms_content | Contenu du message SMS |
identifier(1-2) | Paramètres optionel pour identifier en interne le message/envoi |
email_originator | Paramètre pour changer le nom de l'expediteur dans l'email |
sms_originator | Paramètre pour changer le nom de l'expediteur dans le SMS |
logo_url | Paramètre pour changer le logo afficher dans l'entête de l'email |
force_sending | Forcer l'envoie même si le destinataire est désinscrit (optionnel) |
unsubscribe_link | Paramètre optionel qui détermine si le liens de désincription doit être visible |
channel | Canal utilisé, peut être sms , email , both , sms_first ou email_first |
test_mode | Mode test, n'envoi pas réellement le message (optionnel) |
Paramètres URL de la requête pour un envoi multiple
Nom | Description |
---|---|
auth_key | Clé d'authentification |
auth_secret | Secret d'authentification correspondant à la clé ci-dessus |
Dans le cas d'un envoi multiple, le corps de la requête HTTP doit contenir un tableau JSON contenant des objets structurés comme ci-dessous.
Valeur | Description |
---|---|
Email du destinataire | |
phone | Numéro de téléphone du destinataire |
email_subject | Sujet de l'email |
email_content | Contenu du message Email |
sms_content | Contenu du message SMS |
identifier(1-2) | Paramètres optionels pour identifier en interne le message/envoi |
force_sending | Forcer l'envoie même si le destinataire est désinscrit (optionnel) |
unsubscribe_link | Paramètre optionel qui détermine si le liens de désincription doit être visible |
channel | Canal utilisé, peut être sms , email , both , sms_first ou email_first |
test_mode | Mode test, n'envoi pas réellement le message (optionnel) |
Liste des messages
curl -X GET \
"https://communication.avis-locataire.com/v1/messages" \
--data "auth_key=mykey" \
--data "auth_secret=mysecret" \
--data "with_error=true" \
--data "limit=1" \
--data "offset=0" \
--data "identifier1=001" \
--data "identifier2=test" \
--data "from=2020-01-01T14:00:00Z" \
--data "until=2020-01-31T14:00:00Z"
La commande ci-dessus renvoie un JSON structuré comme ceci
{
"status": 200,
"messages": [
{
"id": 1,
"channel": "both",
"phone": "0602030405",
"email": "exemple@email.com",
"email_subject": "Email exemple",
"email_content": "Ceci est un example%0ATest",
"sms_content": "Ceci est un example%0ATest",
"custom_identifier1": "001",
"custom_identifier2": "test",
"email_originator": null,
"sms_originator": null,
"force_sending": false,
"unsubscribe_link": true,
"has_error": false,
"error_message": null,
"created_at": "2020-01-18T15:31:12Z",
"test_mode": false
}
]
}
Cette requête permet de récupérer une liste de messages.
Requête HTTP
GET https://communication.avis-locataire.com/v1/messages
Paramètres de la requête
Nom | Description |
---|---|
auth_key | Clé d'authentification. |
auth_secret | Secret d'authentification correspondant à la clé ci-dessus. |
with_error | Récupérer uniquement les messages avec true ou sans false erreurs |
limit | Nombre maximum de messages retourné. |
offset | Ignore les N premiers messages. |
identifier(1-2) | Limite aux messages avec les mêmes identitfiants |
from | Retourne les messages après la date spécifié au format ISO8601 |
until | Retourne les messages avant la date spécifié au format ISO8601 |
test_mode | Filtre les messages selon leur mode (test ou non) |
Statut globale des messages
# Récupération du statut
curl -X POST \
"https://communication.avis-locataire.com/v1/messages_status" \
--data "auth_key=mykey" \
--data "auth_secret=mysecret" \
--data "identifier1=001" \
--data "identifier2=test"
La commande ci-dessus renvoie un JSON structuré comme ceci
// Exemple de réussite
{
"status": 200,
"all_sent": true
}
// Exemple d'échec
{
"status": 400,
"message": "invalid identifier"
}
Cette requête permet de récupérer le statut global des messages filtré par l'identifier
.
Requête HTTP
GET https://communication.avis-locataire.com/v1/messages_status
Paramètres de la requête pour un envoi unique
Nom | Description |
---|---|
auth_key | Clé d'authentification |
auth_secret | Secret d'authentification correspondant à la clé ci-dessus |
identifier(1-2) | Paramètres pour filtrer en interne le message/envoi |
Informations supplémentaires
Détail sur le champ channel
:
Valeur | Action |
---|---|
sms | Envoi le message uniquement par SMS (numéro valide requis) |
Envoi le message uniquement par email (adresse email valide requis) | |
both | Envoi le message par SMS et email |
sms_first | Envoi le message par SMS si le numéro est présent sinon envoi par email |
email_first | Envoi le message par email si l'adresse email est présente sinon envoi par SMS |
Liste des désinscrits
curl -X GET \
"https://communication.avis-locataire.com/v1/unsubscribes" \
--data "auth_key=mykey" \
--data "auth_secret=mysecret" \
--data "limit=1" \
--data "offset=0" \
--data "from=2020-01-01T14:00:00Z" \
--data "until=2020-01-31T14:00:00Z"
La commande ci-dessus renvoie un JSON structuré comme ceci
{
"status": 200,
"unsubscribes": [
{
"id": 1,
"email": "exemple@email.com",
"created_at": "2020-01-18T15:31:12Z"
}
]
}
Cette requête permet de récupérer une liste des désinscrits.
Requête HTTP
GET https://communication.avis-locataire.com/v1/unsubscribes
Paramètres de la requête
Nom | Description |
---|---|
auth_key | Clé d'authentification. |
auth_secret | Secret d'authentification correspondant à la clé ci-dessus. |
limit | Nombre maximum de désinscrits retourné. |
offset | Ignore les N premiers désinscrits. |
from | Retourne les désinscrits après la date spécifié au format ISO8601 |
until | Retourne les désinscrits avant la date spécifié au format ISO8601 |
API Rendez-vous
Webhook des flux
Exemple de retour JSON du webhook
{
"status": "preset",
"channel": "email",
"start_at": "2020-06-12T12:00:00+02:00",
"end_at": "2020-06-12T12:45:00+02:00",
"duration": 45,
"location": "6 rue de la Place, Paris 75001",
"reminder_delay": 0,
"reminder_status": false,
"reminder_channel": "disabled",
"recipient": {
"first_name": "Jean",
"last_name": "DUPONT",
"email": "jean.dupont@email.com",
"phone": null,
"variables":[
{ name: "Bâtiment", content: "B" },
{ name: "Porte", content: "845" }
]
}
}
Liste des attributs du rendez-vous :
Nom | Description |
---|---|
status | Statut du rendez-vous (preset = prédéfini par le bailleur, approved = approuvé par le bailleur) |
channel | Canal de communication (SMS ou Email ou les deux) |
start_at | Date et heure de début du rendez-vous au format ISO8601 |
end_at | Date et heure de fin du rendez-vous au format ISO8601 |
duration | Durée du rendez-vous en minutes |
location | Lieux du rendez-vous |
reminder_delay | Délai avant le rendez-vous pour le rappel en heures |
reminder_status | Statut du rappel (true = envoyé, false = pas encore envoyé) |
reminder_channel | Canal de communication du rappel (SMS ou Email ou les deux) |
recipient | Objet JSON contenant les informations du destinataire (cf. tableau ci-dessous) |
Liste des attributs de l'objet JSON du destinataire :
Nom | Description |
---|---|
first_name | Prénom du destinataire |
last_name | Nom de famille du destinataire |
L'Email du destinataire | |
phone | Le numéro de téléphone du destinataire |
variables | Tableau d'objet JSON contenant les informations des variables du destinataire (cf. tableau ci-dessous) |
Liste des attributs de l'objet JSON des variables :
Nom | Description |
---|---|
name | Nom de la variable |
content | Valeur pour la variable |
Codes d'erreurs
Exemple d'une erreur interne du serveur
{
"status": 500,
"message": "internal server error"
}
Les API utilisent les codes d'erreurs suivants:
Code | Signification |
---|---|
400 | Mauvaise Requête -- La requête est invalide. |
401 | Non Autorisé -- Les information d'authentificaton sont invalides. |
404 | Page Introuvable -- La page spécifié est introuvable. |
429 | Trop de requêtes -- Le client a émis trop de requêtes dans un délai donné. |
500 | Erreur Interne du Serveur -- Nous avons eu un problème avec notre serveur. Réessayez plus tard. |