# Options
# Lister les options
Permet de récupérer la liste des options d'un programme.
# Requête HTTP
GET https://api.adlead.immo/v1/{tenantKey}/programs/{programId}/options
# Paramètres d'URL
| Nom de la clé | Description |
|---|---|
| {tenantKey} | Clé de l'espace client - Détails |
| {programId} | ID du programme |
# Paramètres de requête
| Nom du paramètre | Description | Exemple | Format des données | Valeur par défaut |
|---|---|---|---|---|
| page | Numéro de la page à afficher | 1 | 1 | |
| per_page | Nombre d'enregistrements par page | 20 50 | Entre 1 et 100 | 50 |
# curl
curl --location --request GET 'https://api.adlead.immo/v1/{tenantKey}/programs/{programId}/options?page=1&per_page=50' \
--header 'Accept: application/json' \
--header 'X-API-Key: VOTRE_CLE_API'
# Body de réponse
DETAILS
{
"success": true,
"message": null,
"data": [
{
"id": 2363,
"lead_id": 72923,
"owner": {
"id": 1,
"fullname": "Jean Dupont",
"shortname": "J. Dupont",
"email": "jean.dupont@promoteur.fr"
},
"status": "option",
"option_lifespan": null,
"estimated_availability": null,
"expires_at": "2024-02-12T16:15:48.000000Z",
"canceled_at": null,
"vat_rate": 20,
"price_including_vat": 221000,
"contacts": [
{
"id": 74895,
"lead_id": 72923,
"name": "Gilbert",
"firstname": "André",
"display_name": "André Gilbert",
"email1": null,
"email2": null,
"phone1": "+33600000000",
"phone2": null,
"legal_entity": false,
"company_name": null,
"legal_status": null,
"city": null,
"zipcode": null,
"created_at": "2024-02-12T15:48:53.000000Z",
"updated_at": "2024-02-12T15:48:53.000000Z",
"last_interaction_at": "2024-02-12T15:48:53.000000Z"
}
],
"lots": [
{
"id": 872,
"reference": "10",
"type": "apartment",
"typology": "T2",
"subtype": null,
"vat_rate": 20,
"discount_including_vat": null,
"price_excluding_vat": 184166.67,
"price_including_vat": 221000,
"discounted_price_including_vat": 221000,
"status": "available",
"updated_at": "2024-02-12T16:12:43.000000Z"
},
{
"id": 1276,
"reference": "P46",
"type": "parking",
"typology": "underground",
"subtype": null,
"vat_rate": 20,
"discount_including_vat": 0,
"price_excluding_vat": 0,
"price_including_vat": 0,
"discounted_price_including_vat": 0,
"status": "available",
"updated_at": "2024-02-12T16:12:43.000000Z"
}
]
}
],
"links": {
"first": "https://api.adlead.immo/v1/client-a/programs/1/options?page=1",
"last": "https://api.adlead.immo/v1/client-a/programs/1/options?page=1",
"prev": null,
"next": null
},
"meta": {
"current_page": 1,
"from": 1,
"last_page": 1,
"links": [
{
"url": null,
"label": "« Previous",
"active": false
},
{
"url": "https://api.adlead.immo/v1/client-a/programs/1/options?page=1",
"label": "1",
"active": true
},
{
"url": null,
"label": "Next »",
"active": false
}
],
"path": "https://api.adlead.immo/v1/client-a/programs/1/options",
"per_page": 50,
"to": 1,
"total": 1
}
}
# Consulter la fiche d'une option
Permet de récupérer la fiche d'une option
# Requête HTTP
GET https://api.adlead.immo/v1/{tenantKey}/programs/{programId}/options/{optionId}
# Paramètres d'URL
| Nom de la clé | Description |
|---|---|
| {tenantKey} | Clé de l'espace client - Détails |
| {programId} | ID du programme |
| {optionId} | ID de l'option |
# curl
curl --location --request GET 'https://api.adlead.immo/v1/{tenantKey}/programs/{programId}/options/{optionId}' \
--header 'Accept: application/json' \
--header 'X-API-Key: VOTRE_CLE_API'
# Body de réponse
DETAILS
{
"success": true,
"message": null,
"data": {
"id": 2363,
"lead_id": 72923,
"owner": {
"id": 1,
"fullname": "Jean Dupont",
"shortname": "J. Dupont",
"email": "jean.dupont@promoteur.fr"
},
"status": "option",
"option_lifespan": null,
"estimated_availability": null,
"expires_at": "2024-02-12T16:15:48.000000Z",
"canceled_at": null,
"vat_rate": 20,
"price_including_vat": 221000,
"contacts": [
{
"id": 74895,
"lead_id": 72923,
"name": "Gilbert",
"firstname": "André",
"display_name": "André Gilbert",
"email1": null,
"email2": null,
"phone1": "+33600000000",
"phone2": null,
"legal_entity": false,
"company_name": null,
"legal_status": null,
"city": null,
"zipcode": null,
"created_at": "2024-02-12T15:48:53.000000Z",
"updated_at": "2024-02-12T15:48:53.000000Z",
"last_interaction_at": "2024-02-12T15:48:53.000000Z"
}
],
"lots": [
{
"id": 872,
"reference": "10",
"type": "apartment",
"typology": "T2",
"subtype": null,
"vat_rate": 20,
"discount_including_vat": null,
"price_excluding_vat": 184166.67,
"price_including_vat": 221000,
"discounted_price_including_vat": 221000,
"status": "available",
"updated_at": "2024-02-12T16:12:43.000000Z"
},
{
"id": 1276,
"reference": "P46",
"type": "parking",
"typology": "underground",
"subtype": null,
"vat_rate": 20,
"discount_including_vat": 0,
"price_excluding_vat": 0,
"price_including_vat": 0,
"discounted_price_including_vat": 0,
"status": "available",
"updated_at": "2024-02-12T16:12:43.000000Z"
}
]
}
}
# Créer une option
Permet de récupérer la fiche d'une option
# Requête HTTP
POST https://api.adlead.immo/v1/{tenantKey}/programs/{programId}/options
# Paramètres d'URL
| Nom de la clé | Description |
|---|---|
| {tenantKey} | Clé de l'espace client - Détails |
| {programId} | ID du programme |
# curl
curl --location --request POST 'https://api.adlead.immo/v1/{tenantKey}/programs/{programId}/options' \
--header 'Accept: application/json' \
--header 'X-API-Key: VOTRE_CLE_API'
# Paramètres de Body
# Schéma
| Champ | Type | Description | Requis | Exemple | Format des données |
|---|---|---|---|---|---|
| lead_id | int | ID du lead associé | Oui | 406 | |
| owner_id | int | ID du propriétaire | Parfois1 | 100 | |
| lots | array | Liste des lots à optionner | Oui | [{"id": 864}, {"id": 1232}] | Un lot principal doit être présent |
| vat_rate | float | Taux de TVA appliquée (en %) | Oui | 20 | 5.5 20 0 |
| comment | string | Commentaire |
(1) Requis uniquement si votre accès API n'est pas associé à un utilisateur
IMPORTANT
Votre option doit obligatoirement comporter un lot principal.
Un seul lot principal est autorisé par option, si vous souhaitez optionner plusieurs lots principaux, vous devez créer autant d'option que de lots principaux.
# Exemple
{
"lead_id": 72923,
"owner_id": 100,
"lots": [
{
"id": 864
},
{
"id": 1232
}
],
"vat_rate": 20,
"comment": "Option posée via API"
}
# Body de réponse
# Option créée avec succès
DETAILS
{
"success": true,
"message": "Option créée",
"body": "L'option #2365 a été créée.",
"data": {
"id": 2365,
"lead_id": 72923,
"owner": {
"id": 1,
"fullname": "Jean Dupont",
"shortname": "J. Dupont",
"email": "jean.dupont@promoteur.fr"
},
"status": "option-pending",
"option_lifespan": 96,
"estimated_availability": {
"available_at": "2024-02-20T16:45:00.000000Z",
"expires_at": "2024-02-24T16:45:00.000000Z",
"rank": 2
},
"expires_at": null,
"canceled_at": null,
"vat_rate": 20,
"price_including_vat": 288416,
"contacts": [
{
"id": 74895,
"lead_id": 72923,
"name": "Gilbert",
"firstname": "André",
"display_name": "André Gilbert",
"email1": null,
"email2": null,
"phone1": "+33600000000",
"phone2": null,
"legal_entity": false,
"company_name": null,
"legal_status": null,
"city": null,
"zipcode": null,
"created_at": "2024-02-12T15:48:53.000000Z",
"updated_at": "2024-02-12T15:48:53.000000Z",
"last_interaction_at": "2024-02-12T15:48:53.000000Z"
}
],
"lots": [
{
"id": 864,
"reference": "2",
"type": "apartment",
"typology": "T2",
"subtype": null,
"vat_rate": 20,
"discount_including_vat": null,
"price_excluding_vat": 216180,
"price_including_vat": 259416,
"discounted_price_including_vat": 259416,
"status": "option",
"updated_at": "2024-02-12T16:45:36.000000Z"
},
{
"id": 1232,
"reference": "P2",
"type": "parking",
"typology": "underground",
"subtype": null,
"vat_rate": 20,
"discount_including_vat": null,
"price_excluding_vat": 24166.67,
"price_including_vat": 29000,
"discounted_price_including_vat": 29000,
"status": "option",
"updated_at": "2024-02-12T16:45:36.000000Z"
}
]
}
}
# Lot indisponible
DETAILS
{
"success": false,
"message": "Lot indisponible",
"body": "Le lot 2 ne peut pas être optionné.",
"data": {
"optionable_at": "2024-02-16T16:45:00.000000Z",
"estimated_availablity": "2024-02-20T16:45:00.000000Z",
"options_in_queue": 2
},
"errors": null
}
| Champ | Type | Description | Exemple | Format des données |
|---|---|---|---|---|
| optionable_at | string | Date estimée à laquelle le lot sera optionable | 2020-09-04T10:20:04.000000Z | ISO 8601 |
| estimated_availablity | string | Date estimée à laquelle l'option prendra effet (en cas de création) | 2020-09-04T10:20:04.000000Z | ISO 8601 |
| options_in_queue | int | Options de rangs existantes | 2 |
# Jumelage des lots non-respecté
DETAILS
{
"success": false,
"message": "Lot jumelé manquant",
"body": "Le respect de le jumelage est obligatoire pour ce programme, le lot P2 (#1232) jumelé à l'un des lots est manquant.",
"data": null,
"errors": null
}
# Lot principal manquant
DETAILS
{
"success": false,
"message": "Erreur : Lot principal manquant",
"body": "Il est obligatoire de renseigner un lot principal.",
"data": null,
"errors": null
}
# Plusieurs lots principaux spécifiés
DETAILS
{
"success": false,
"message": "Erreur : Plusieurs lots principaux spécifiés",
"body": "Un seul lot principal est autorisé.",
"data": null,
"errors": null
}
# Modifier une option
Permet de modifier une option
# Requête HTTP
POST https://api.adlead.immo/v1/{tenantKey}/programs/{programId}/options/{optionId}
# Paramètres d'URL
| Nom de la clé | Description |
|---|---|
| {tenantKey} | Clé de l'espace client - Détails |
| {programId} | ID du programme |
| {optionId} | ID de l'option |
# curl
curl --location --request PUT 'https://api.adlead.immo/v1/{tenantKey}/programs/{programId}/options/{optionId}' \
--header 'Accept: application/json' \
--header 'X-API-Key: VOTRE_CLE_API'
# Paramètres de Body
# Schéma
| Champ | Type | Description | Requis | Exemple | Format des données |
|---|---|---|---|---|---|
| owner_id | int | ID du propriétaire | Parfois1 | 100 | |
| prolongation_hours | int | Durée en heures de la prolongation | Oui | 72 |
(1) Requis uniquement si votre accès API n'est pas associé à un utilisateur
# Exemple
{
"prolongation_hours" : 72
}
# Body de réponse
# Option modifiée avec succès
DETAILS
{
"success": true,
"message": "Option mise à jour",
"body": "L'option #2365 a été mise à jour.",
"data": {
"id": 2365,
"lead_id": 72923,
"owner": {
"id": 1,
"fullname": "Jean Dupont",
"shortname": "J. Dupont",
"email": "jean.dupont@promoteur.fr"
},
"status": "option",
"option_lifespan": 168,
"estimated_availability": null,
"expires_at": "2024-02-27T16:45:00.000000Z",
"canceled_at": null,
"vat_rate": 20,
"price_including_vat": 288416,
"contacts": [
{
"id": 74895,
"lead_id": 72923,
"name": "Gilbert",
"firstname": "André",
"display_name": "André Gilbert",
"email1": null,
"email2": null,
"phone1": "+33600000000",
"phone2": null,
"legal_entity": false,
"company_name": null,
"legal_status": null,
"city": null,
"zipcode": null,
"created_at": "2024-02-12T15:48:53.000000Z",
"updated_at": "2024-02-12T15:48:53.000000Z",
"last_interaction_at": "2024-02-12T15:48:53.000000Z"
}
],
"lots": [
{
"id": 864,
"reference": "2",
"type": "apartment",
"typology": "T2",
"subtype": null,
"vat_rate": 20,
"discount_including_vat": null,
"price_excluding_vat": 216180,
"price_including_vat": 259416,
"discounted_price_including_vat": 259416,
"status": "option",
"updated_at": "2024-02-12T16:45:36.000000Z"
},
{
"id": 1232,
"reference": "P2",
"type": "parking",
"typology": "underground",
"subtype": null,
"vat_rate": 20,
"discount_including_vat": null,
"price_excluding_vat": 24166.67,
"price_including_vat": 29000,
"discounted_price_including_vat": 29000,
"status": "option",
"updated_at": "2024-02-12T16:45:36.000000Z"
}
]
}
}
# Option annulée ou expirée
DETAILS
{
"success": false,
"message": "Option annulée ou expirée",
"body": "Cette option a été annulée ou a déjà expiré.",
"data": null,
"errors": null
}
# Options en attente
DETAILS
{
"success": false,
"message": "Options en attente",
"body": "Impossible de prolonger l'option car d'autres options de rang sont en attente.",
"data": null,
"errors": null
}
# Durée de prolongation trop élevée
DETAILS
{
"success": false,
"message": "Durée de prolongation trop élevée",
"body": "Impossible de prolonger l'option au-delà de la limite autorisée (X heures).",
"data": null,
"errors": null
}
# Option déjà prolongée
DETAILS
{
"success": false,
"message": "Option déjà prolongée",
"body": "Impossible de prolonger l'option car cette dernière a déjà fait l'objet d'une prolongation.",
"data": null,
"errors": null
}
# Annuler une option
Permet d'annuler une option active.
# Requête HTTP
DELETE https://api.adlead.immo/v1/{tenantKey}/programs/{programId}/options/{optionId}
# Paramètres d'URL
| Nom de la clé | Description |
|---|---|
| {tenantKey} | Clé de l'espace client - Détails |
| {programId} | ID du programme |
| {optionId} | ID de l'option |
# curl
curl --location --request DELETE 'https://api.adlead.immo/v1/{tenantKey}/programs/{programId}/options/{optionId}' \
--header 'Accept: application/json' \
--header 'Content-Type: application/json' \
--header 'Content-Length: ###' \
--header 'X-API-Key: VOTRE_CLE_API' \
# Paramètres de Body
# Schéma
| Champ | Type | Description | Requis | Exemple | Format des données |
|---|---|---|---|---|---|
| owner_id | int | ID du propriétaire | Parfois1 | 100 |
(1) Requis uniquement si votre accès API n'est pas associé à un utilisateur
# Body de réponse
# Option annulée avec succès
DETAILS
{
"success": true,
"message": "Option annulée",
"body": "L'option #2365 a été annulée.",
"data": {
"id": 2365,
"lead_id": 72923,
"owner": {
"id": 1,
"fullname": "Jean Dupont",
"shortname": "J. Dupont",
"email": "jean.dupont@promoteur.fr"
},
"status": "option-canceled",
"option_lifespan": 96,
"estimated_availability": null,
"expires_at": null,
"canceled_at": "2024-02-18T10:18:23.000000Z",
"vat_rate": 20,
"price_including_vat": 288416,
"contacts": [
{
"id": 74895,
"lead_id": 72923,
"name": "Gilbert",
"firstname": "André",
"display_name": "André Gilbert",
"email1": null,
"email2": null,
"phone1": "+33600000000",
"phone2": null,
"legal_entity": false,
"company_name": null,
"legal_status": null,
"city": null,
"zipcode": null,
"created_at": "2024-02-12T15:48:53.000000Z",
"updated_at": "2024-02-12T15:48:53.000000Z",
"last_interaction_at": "2024-02-12T15:48:53.000000Z"
}
],
"lots": [
{
"id": 864,
"reference": "2",
"type": "apartment",
"typology": "T2",
"subtype": null,
"vat_rate": 20,
"discount_including_vat": null,
"price_excluding_vat": 216180,
"price_including_vat": 259416,
"discounted_price_including_vat": 259416,
"status": "available",
"updated_at": "2024-02-12T16:45:36.000000Z"
},
{
"id": 1232,
"reference": "P2",
"type": "parking",
"typology": "underground",
"subtype": null,
"vat_rate": 20,
"discount_including_vat": null,
"price_excluding_vat": 24166.67,
"price_including_vat": 29000,
"discounted_price_including_vat": 29000,
"status": "available",
"updated_at": "2024-02-12T16:45:36.000000Z"
}
]
}
}
# Modèle
# Option
| Champ | Type | Description | Exemple | Format des données |
|---|---|---|---|---|
| id | int | ID de l'option | 1 | |
| lead_id | int | ID du lead associé | 406 | |
deprecated | int | ID du propriétaire ⚠️ déprécié | Déprécié : Utiliser le champ owner | |
| owner | object | Utilisateur propriétaire | ||
| status | string | Statut de l'option | option-pending | Accéder au tableau |
| option_lifespan | int | Durée de validité de l'option (en heure) | 96 | |
| estimated_availability | object | Dans le cas d'une option en attente, date estimée à laquelle l'option devient active | Accéder au tableau | |
| expires_at | string | Date d'expiration de l'option | 2020-09-04T10:20:04.000000Z | ISO 8601 |
| canceled_at | string | Date d'annulation de l'option | 2020-09-04T10:20:04.000000Z | ISO 8601 |
| vat_rate | float | Taux de TVA appliquée (en %) | 20 | 5.5 20 0 |
| price_including_vat | float | Prix de vente total (TVA et remise incluses) | 188882.23 | |
| contacts | array | Liste du ou des acquéreurs | Accéder au tableau | |
| lots | array | Liste du ou des lots optionnés | Accéder au tableau |
# Disponibilité estimée
Uniquement dans le cas d'une option en attente
| Champ | Type | Description | Exemple | Format des données |
|---|---|---|---|---|
| available_at | string | Date estimée à laquelle l'option deviendra active | 2020-09-04T10:20:04.000000Z | ISO 8601 |
| expires_at | string | Date estimée à laquelle l'option expirera | 2020-09-04T10:20:04.000000Z | ISO 8601 |
| rank | int | Rang de l'option | 2 |
# Lot optionné
| Champ | Type | Description | Exemple | Format des données |
|---|---|---|---|---|
| id | int | ID du lot | 1 | |
| reference | string | Référence unique du lot | A01 | |
| type | string | Type de bien | apartment | Accéder au tableau |
| typology | string | Typologie du bien | T2 | Accéder au tableau |
| subtype | string | Sous-type du bien | Accéder au tableau | |
| vat_rate | string | Taux de TVA (si mixte) | 20 | |
| discount_including_vat | float | Remise TTC | 2000 | |
| price_excluding_vat | float | Prix de vente HT | 166666.67 | |
| price_including_vat | float | Prix de vente TTC | 200000 | |
| discounted_price_including_vat | float | Prix de vente TTC (remise incluse) | 198000 | |
| status | string | Statut du lot | option | Accéder au tableau |
| updated_at | string | Dernière mise à jour | 2020-09-04T10:20:04.000000Z | ISO 8601 |
# Annexes
# Statuts
Liste des statuts des options
DETAILS
[
{
"key": "option",
"name": "Option active"
},
{
"key": "option-pending",
"name": "Option en attente (option de rang)"
},
{
"key": "option-expired",
"name": "Option expirée"
},
{
"key": "option-canceled",
"name": "Option annulée"
}
]