Aller au contenu principal

API des entreprises

🚀 Pourquoi utiliser l’API des entreprises?​

Les entreprises sont une entitĂ© fondamentale dans DataDocks, reprĂ©sentant les organisations qui interagissent avec vos entrepĂŽts — qu’il s’agisse de transporteurs qui dĂ©placent les marchandises ou de clients qui les envoient ou les reçoivent. L’API des entreprises vous permet de gĂ©rer ces relations de façon automatisĂ©e, en synchronisant vos donnĂ©es d’entreprises avec vos systĂšmes ERP, CRM ou tout autre systĂšme mĂ©tier.

ProblĂšmes rĂ©els rĂ©solus par cette API​

  • Maintenir une source de vĂ©ritĂ© unique : Synchronisez les donnĂ©es des entreprises entre vos systĂšmes d’entreprise et DataDocks
  • Simplifier l’intĂ©gration de nouveaux partenaires : CrĂ©ez automatiquement des fiches transporteurs et clients lors de leur ajout Ă  vos systĂšmes
  • AmĂ©liorer l’exactitude des donnĂ©es : Gardez Ă  jour les coordonnĂ©es et les prĂ©fĂ©rences d’expĂ©dition
  • Automatiser la gestion des relations : ContrĂŽlez de maniĂšre programmatique quelles entreprises peuvent interagir entre elles

DĂ©marrage rapide en 5 minutes​

Vous voulez voir l’API en action tout de suite? Suivez ces Ă©tapes pour crĂ©er votre premiĂšre entreprise :

  1. Obtenez votre jeton API auprĂšs du support
  2. Trouvez votre sous-domaine d’emplacement (ex. : votre-entrepot.datadocks.com)
  3. Créez une entreprise de base avec cette commande :
Voir un exemple cURL
curl -X POST \
https://your-warehouse.datadocks.com/api/v1/companies \
-H 'Authorization: Token YOUR_API_TOKEN' \
-H 'Content-Type: application/json' \
-d '{
"company": {
"name": "Acme Logistics",
"company_type": "carrier",
"company_number": "ACME-001",
"email": "dispatch@acmelogistics.example.com",
"phone": "+15551234567"
}
}'
  1. Voilà ! Vous venez de crĂ©er votre premiĂšre entreprise. VĂ©rifiez votre tableau de bord DataDocks pour la voir.

Vue d’ensemble de l’architecture de l’API​

┌─────────────────┐       ┌─────────────────┐       ┌─────────────────┐
│ Votre systĂšme │──────▶│ DataDocks API │──────▶│ OpĂ©rations entrepĂŽt │
│ (ERP/CRM/TMS) │◀─────── (REST/JSON) │◀─────── (Entreprises) │
└─────────────────┘ └─────────────────┘ └─────────────────┘
│ â–Č
│ │
â–Œ │
┌─────────────────┐
│ Portails │
│ transporteurs │
│ / clients │
└─────────────────┘

Authentification​

Toutes les requĂȘtes Ă  l’API doivent inclure votre jeton API dans l’en-tĂȘte Authorization :

Authorization: Token YOUR_API_TOKEN

Lister les entreprises​

Objectif​

Obtenir une liste paginĂ©e des entreprises avec filtrage optionnel par type, nom ou numĂ©ro d’entreprise. Utilisez ce point d’accĂšs pour synchroniser les entreprises avec vos systĂšmes ou gĂ©nĂ©rer des rapports.

Cas d’usage mĂ©tier​

  • Synchroniser les entreprises avec votre ERP ou CRM
  • GĂ©nĂ©rer des rapports sur les transporteurs ou clients
  • Afficher les informations d’entreprise dans vos tableaux de bord personnalisĂ©s
  • Filtrer les entreprises par type pour des traitements spĂ©cialisĂ©s

RequĂȘte HTTP​

GET https://[location_subdomain].datadocks.com/api/v1/companies

ParamĂštres de requĂȘte​

ParamĂštreTypeObligatoireDescriptionExemple
pageIntegerNonNuméro de page pour la pagination (par défaut 1)page=2
company_typeStringNonFiltrer par type d’entreprise (insensible à la casse)company_type=carrier
nameStringNonFiltrer par nom d’entreprise (insensible Ă  la casse, dĂ©butant)name=acme
company_numberStringNonFiltrer par numĂ©ro d’entreprise (insensible Ă  la casse, exact)company_number=ACME-001

Format de la rĂ©ponse​

La rĂ©ponse contient un tableau paginĂ© d’objets entreprise, avec les champs suivants :

ChampTypeDescription
idIntegerIdentifiant unique de l’entreprise
parent_idIntegerID de la société parente (null si aucune)
company_typeStringType d’entreprise ("carrier", "customer" ou "both")
nameStringNom de l’entreprise
company_numberStringIdentifiant externe unique de l’entreprise
emailStringAdresse courriel principale de l’entreprise
phoneStringNuméro de téléphone principal
streetStringAdresse civique
unitStringN° de suite/unité
cityStringVille
provinceStringProvince ou État
countryStringCode pays (ISO 2 lettres)
postalStringCode postal ou ZIP
categoryStringCatégorie ou classe
auto_approve_appointmentsBooleanLes rendez-vous sont-ils automatiquement approuvĂ©s ?
can_create_carriersBooleanPeut-elle crĂ©er d’autres transporteurs ?
notificationsBooleanReçoit-elle des notifications ?
custom_valuesObjectPaires clé-valeur de champs personnalisés
usersArrayListe des utilisateurs liés à cette entreprise

Exemples de code​

cURL​

Voir un exemple cURL
# Liste de base
curl -H "Authorization: Token YOUR_API_TOKEN" \
https://YOUR_LOCATION.datadocks.com/api/v1/companies

# Filtrer par type d’entreprise et nom
curl -H "Authorization: Token YOUR_API_TOKEN" \
"https://YOUR_LOCATION.datadocks.com/api/v1/companies?company_type=carrier&name=logistic"

JavaScript​

Voir un exemple JavaScript
// Utiliser fetch API avec des filtres
const getCompanies = async (companyType, nameFilter, companyNumber) => {
const params = new URLSearchParams();
if (companyType) params.append("company_type", companyType);
if (nameFilter) params.append("name", nameFilter);
if (companyNumber) params.append("company_number", companyNumber);

const response = await fetch(
`https://YOUR_LOCATION.datadocks.com/api/v1/companies?${params.toString()}`,
{
method: "GET",
headers: {
Authorization: "Token YOUR_API_TOKEN",
"Content-Type": "application/json",
},
}
);

// Gérer les erreurs potentielles
if (!response.ok) {
const errorData = await response.json();
throw new Error(`Échec lors de la rĂ©cupĂ©ration des entreprises : ${JSON.stringify(errorData)}`);
}

return response.json();
};

Exemple de rĂ©ponse​

Voir un exemple de réponse
[
{
"id": 1,
"parent_id": null,
"company_type": "carrier",
"name": "Joe's Shipping",
"company_number": "A17727959343",
"email": "info@joesshipping.com",
"phone": "+14161231234",
"street": "1 Yonge St.",
"unit": null,
"city": "Toronto",
"province": "ON",
"country": "CA",
"postal": "M8H 1G1",
"category": null,
"auto_approve_appointments": true,
"can_create_carriers": false,
"notifications": true,
"custom_values": {
"ap_contact": "Sue Brown",
"sales_contact": "Tim Jones",
"facility_contact": "John Green"
},
"users": [
{
"email": "driver@joesshipping.com",
"name": "Joe Driver"
}
]
},
{
"id": 2,
"parent_id": null,
"company_type": "customer",
"name": "Spatula City",
"company_number": "B83582616848",
"email": "info@spatulacity.com",
"phone": "+14161231234",
"street": "1 Yonge St.",
"unit": "4",
"city": "Toronto",
"province": "ON",
"country": "CA",
"postal": "M8H 1G1",
"category": null,
"auto_approve_appointments": false,
"can_create_carriers": true,
"notifications": false,
"custom_values": {
"ap_contact": "",
"sales_contact": "Al Yankovic",
"facility_contact": ""
},
"users": []
}
]

Pagination​

La rĂ©ponse est paginĂ©e pour gĂ©rer le volume de donnĂ©es. Pour plus d’informations sur les en-tĂȘtes de pagination et la navigation, consultez la documentation sur la pagination.

Obtenir une entreprise spĂ©cifique​

Objectif​

Obtenir les dĂ©tails d’une entreprise donnĂ©e par son ID. Utilisez ce point d’accĂšs quand vous avez besoin de toutes les informations disponibles pour une entreprise particuliĂšre.

Cas d’usage mĂ©tier​

  • Afficher le dĂ©tail d’une entreprise dans votre application
  • VĂ©rifier les coordonnĂ©es avant de traiter une transaction
  • RĂ©cupĂ©rer les infos de contact pour des communications
  • AccĂ©der aux paramĂštres spĂ©cifiques de l’entreprise

RequĂȘte HTTP​

GET https://[location_subdomain].datadocks.com/api/v1/companies/:id

Paramùtres de chemin​

ParamĂštreTypeObligatoireDescription
idIntegerOuiID unique de l’entreprise

RĂ©ponse​

Une requĂȘte rĂ©ussie retourne un code 200 OK avec l’objet entreprise complet, au mĂȘme format que pour la liste.

Exemples de code​

cURL​

Voir un exemple cURL
curl -H "Authorization: Token YOUR_API_TOKEN" \
https://YOUR_LOCATION.datadocks.com/api/v1/companies/123

JavaScript​

Voir un exemple JavaScript
const getCompany = async (companyId) => {
try {
const response = await fetch(
`https://YOUR_LOCATION.datadocks.com/api/v1/companies/${companyId}`,
{
method: "GET",
headers: {
Authorization: "Token YOUR_API_TOKEN",
"Content-Type": "application/json",
},
}
);

if (!response.ok) {
if (response.status === 404) {
throw new Error(`Entreprise #${companyId} introuvable`);
}

const errorData = await response.json();
throw new Error(
`Échec lors de la rĂ©cupĂ©ration de l’entreprise : ${JSON.stringify(errorData)}`
);
}

return await response.json();
} catch (error) {
console.error("Erreur lors de la rĂ©cupĂ©ration de l’entreprise :", error);
throw error;
}
};

CrĂ©er une entreprise​

Objectif​

CrĂ©er un nouvel enregistrement d’entreprise dans DataDocks. Cet endpoint vous permet d’ajouter de nouveaux transporteurs ou clients de façon automatisĂ©e.

Arbre de dĂ©cision : Quand crĂ©er une entreprise via l’API ?​

┌─────────────────┐
│ Faut-il ajouter │
│ une entreprise?│
└────────┬────────┘
│
▌
┌─────────────────┐ Oui ┌─────────────────┐
│ Plusieurs Ă  │─────────────▶│ Utilisez le │
│ ajouter en mĂȘme │ │ chargement en │
│ temps? │ │ vrac │
└────────┬────────┘ └─────────────────┘
│ Non
▌
┌─────────────────┐ Oui ┌─────────────────┐
│ Un ajout unique │─────────────▶│ Passez par │
│ / occasionnel?│ │ l’interface web │
└────────┬────────┘ └─────────────────┘
│ Non
▌
┌─────────────────┐
│ Parfait pour │
│ l’API ! │
└─────────────────┘

Cas d’usage mĂ©tier​

  • IntĂ©gration systĂšme : CrĂ©ez des entreprises directement depuis votre ERP ou CRM
  • Automatiser l’intĂ©gration : Ajoutez de nouveaux transporteurs/clients automatiquement
  • Migration de donnĂ©es : TransfĂ©rez des fiches depuis vos anciens systĂšmes
  • IntĂ©gration partenaires : Permettez Ă  vos partenaires d’inscrire leur entreprise via vos systĂšmes

RequĂȘte HTTP​

POST https://[location_subdomain].datadocks.com/api/v1/companies

Corps de la requĂȘte​

ParamÚtreTypeObligatoireDescriptionContraintesPar défautExemple
nameStringOuiNom de l’entreprise2-164 caractùres, unique dans l’org (casse insens.)Aucune"Acme Logistics"
company_typeStringOuiType d’entreprise"carrier", "customer" ou "both"Aucune"carrier"
company_numberStringNonIdentifiant externeUnique dans orgNuméro 11 chiffres auto"ACME-001"
emailStringNonAdresse courriel principaleFormat courriel valide, 4-128 caractĂšresAucune"info@example.com"
phoneStringNonNuméro de téléphone principalAucuneAucune"+15551234567"
streetStringNonAdresse civique4-64 caractÚres si présentAucune"123 Main St"
unitStringNonN° de suite/unité1-64 caractÚres si présentAucune"Suite 400"
cityStringNonVille2-64 caractÚres si présentAucune"Chicago"
provinceStringNonProvince ou ÉtatAucuneAucune"IL"
countryStringNonCode pays2 lettres si fourni (code ISO)Aucune"US"
postalStringNonCode postal ou ZIP4-10 caractÚres si présentAucune"60601"
categoryStringNonCatégorie ou classeAucuneAucune"Premium"
auto_approve_appointmentsBooleanNonApprouve-t-elle auto. les rendez-vousAucunefalsetrue
can_create_carriersBooleanNonPeut-elle créer des transporteursAucunefalsefalse
notificationsBooleanNonReçoit-elle des notificationsAucunefalsetrue
can_book_drop_trailersBooleanNonPeut réserver des remorques à déposerAucunetruetrue
send_appointment_no_show_notificationsBooleanNonEnvoie des notifs «no show»Aucunetruetrue
send_appointment_late_notificationsBooleanNonEnvoie des notifs de retardAucunetruetrue
custom_valuesObjectNonValeurs champs personnalisĂ©sSelon les paramĂštres de l’emplacement{}{"reference": "ABC123"}
invite_userStringNonInviter un utilisateur liéSi "true", utilise le champ courrielfalse"true"
parent_idIntegerNonID entreprise parenteDoit existerAucune123

RĂ©ponse​

Un succĂšs retourne 200 OK avec l’objet entreprise complet, incluant son id et autres valeurs gĂ©nĂ©rĂ©es par le systĂšme.

Exemples de code​

cURL​

Voir un exemple cURL
curl -H "Authorization: Token YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-X POST \
-d '{
"company": {
"name": "Quick Transport Inc",
"company_type": "carrier",
"company_number": "QT-2023-001",
"email": "dispatch@quicktransport.example.com",
"phone": "+15551234567",
"street": "123 Logistics Way",
"city": "Chicago",
"province": "IL",
"country": "US",
"postal": "60601",
"auto_approve_appointments": true,
"notifications": true,
"custom_values": {
"insurance_policy": "INS-567890",
"preferred_dock": "Dock 3"
},
"invite_user": "true",
"parent_id": 123
}
}' \
https://YOUR_LOCATION.datadocks.com/api/v1/companies

JavaScript​

Voir un exemple JavaScript
const createCompany = async (companyData) => {
try {
const response = await fetch(
`https://YOUR_LOCATION.datadocks.com/api/v1/companies`,
{
method: "POST",
headers: {
Authorization: "Token YOUR_API_TOKEN",
"Content-Type": "application/json",
},
body: JSON.stringify({ company: companyData }),
}
);

if (!response.ok) {
const errorData = await response.json();
const errorMessages = Object.entries(errorData.errors || {})
.map(([field, messages]) => `${field}: ${messages.join(", ")}`)
.join("\n");

throw new Error(`Échec de la crĂ©ation de l’entreprise :\n${errorMessages}`);
}

return await response.json();
} catch (error) {
console.error("Erreur API :", error);
throw error;
}
};

Mettre à jour une entreprise​

Objectif​

Mettre à jour les informations d’une entreprise existante. Cet endpoint vous permet de modifier tout aspect d’une fiche entreprise.

Cas d’usage mĂ©tier​

  • Garder les donnĂ©es Ă  jour : Modifiez coordonnĂ©es ou prĂ©fĂ©rences logistiques
  • Changer l’état de l’entreprise : Modifiez les paramĂštres de notification ou d’approbation automatique des rendez-vous
  • GĂ©rer les permissions : Ajustez ce que l’entreprise peut faire dans le systĂšme
  • Synchroniser les systĂšmes : Gardez DataDocks alignĂ© avec votre ERP/CRM

RequĂȘte HTTP​

PUT https://[location_subdomain].datadocks.com/api/v1/companies/:id

Paramùtres de chemin​

ParamĂštreTypeObligatoireDescription
idIntegerOuiID unique de l’entreprise

Corps de la requĂȘte​

Le corps accepte les mĂȘmes paramĂštres que pour la crĂ©ation. Seuls les champs Ă  modifier doivent ĂȘtre inclus.

ScĂ©narios courants de mise Ă  jour​

Mettre Ă  jour les coordonnĂ©es​

{
"company": {
"email": "new-contact@example.com",
"phone": "+15559876543"
}
}

Modifier les notifications​

{
"company": {
"notifications": true,
"auto_approve_appointments": false
}
}

Mettre à jour l’adresse​

{
"company": {
"street": "456 New Street",
"city": "New City",
"province": "NC",
"postal": "90210"
}
}

Exemples de code​

cURL​

Voir un exemple cURL
curl -H "Authorization: Token YOUR_API_TOKEN" \
-H "Content-Type: application/json" \
-X PUT \
-d '{
"company": {
"name": "Updated Company Name",
"email": "newemail@example.com",
"custom_values": {
"account_manager": "Jane Smith"
}
}
}' \
https://YOUR_LOCATION.datadocks.com/api/v1/companies/123

JavaScript​

Voir un exemple JavaScript
const updateCompany = async (companyId, updateData) => {
try {
const response = await fetch(
`https://YOUR_LOCATION.datadocks.com/api/v1/companies/${companyId}`,
{
method: "PUT",
headers: {
Authorization: "Token YOUR_API_TOKEN",
"Content-Type": "application/json",
},
body: JSON.stringify({ company: updateData }),
}
);

if (!response.ok) {
const errorData = await response.json();
throw new Error(`Échec de la mise à jour de l’entreprise : ${JSON.stringify(errorData)}`);
}

return await response.json();
} catch (error) {
console.error("Erreur lors de la mise à jour de l’entreprise :", error);
throw error;
}
};

// Exemple d’utilisation
const updateCompanyEmail = async (companyId, newEmail) => {
try {
const updatedCompany = await updateCompany(companyId, {
email: newEmail,
});

console.log(`Mise Ă  jour du courriel pour l’entreprise #${updatedCompany.id} rĂ©ussie`);
return updatedCompany;
} catch (error) {
console.error(`Échec de la mise à jour de l’entreprise #${companyId} :`, error);
throw error;
}
};

Gestion des erreurs​

Code erreurDescriptionCause possible
400RequĂȘte invalideValeurs ou format incorrects
404IntrouvableL’ID entreprise n’existe pas
422EntitĂ© non traitableValidation Ă©chouĂ©e (ex : nom en doublon)
401Non autoriséJeton API manquant ou invalide
403InterditPermissions insuffisantes

Supprimer une entreprise​

Objectif​

Supprimer une entreprise du systùme. Ce point d’accùs permet d’effacer les entreprises devenues inutiles.

Points importants Ă  considĂ©rer​

Avant de supprimer une entreprise :

  • L’entreprise ne doit pas avoir de rendez-vous actifs
  • L’entreprise ne doit pas ĂȘtre liĂ©e Ă  des listes d’emballage actives
  • La suppression est dĂ©finitive et irrĂ©versible

Cas d’usage mĂ©tier​

  • Nettoyer les donnĂ©es de test : Supprimez les entreprises de tests
  • Respecter les demandes de confidentialitĂ© : Effacez les infos sur demande
  • Effacer les doublons : Nettoyez aprĂšs dĂ©duplication des donnĂ©es
  • Entretien systĂšme : Retirez les entreprises inactives

RequĂȘte HTTP​

DELETE https://[location_subdomain].datadocks.com/api/v1/companies/:id

Paramùtres de chemin​

ParamĂštreTypeObligatoireDescription
idIntegerOuiID unique de l’entreprise

RĂ©ponse​

Le succĂšs retourne une rĂ©ponse 204 No Content, indiquant que l’entreprise a bien Ă©tĂ© supprimĂ©e.

Exemples de code​

cURL​

Voir un exemple cURL
curl -H "Authorization: Token YOUR_API_TOKEN" \
-X DELETE \
https://YOUR_LOCATION.datadocks.com/api/v1/companies/123

JavaScript​

Voir un exemple JavaScript
const deleteCompany = async (companyId) => {
try {
const response = await fetch(
`https://YOUR_LOCATION.datadocks.com/api/v1/companies/${companyId}`,
{
method: "DELETE",
headers: {
Authorization: "Token YOUR_API_TOKEN",
},
}
);

if (!response.ok) {
if (response.status === 404) {
throw new Error(`Entreprise #${companyId} introuvable`);
}

const errorData = await response.json();
throw new Error(`Échec lors de la suppression : ${JSON.stringify(errorData)}`);
}

return true; // Suppression réussie
} catch (error) {
console.error("Erreur de suppression :", error);
throw error;
}
};

Gestion des erreurs​

Code erreurDescriptionCause possible
404IntrouvableL’ID entreprise n’existe pas
401Non autoriséJeton API manquant ou invalide
403InterditPermissions insuffisantes pour la suppression
422EntitĂ© non traitableImpossible de supprimer (ex : associĂ©s Ă  des rendez-vous ou listes)

Rùgles de validation des champs​

Pour la crĂ©ation/mise Ă  jour d’entreprises, ces rĂšgles s’appliquent :

ChampRĂšgles de validation
nameObligatoire, 2-164 caractùres, unique dans l’org (insensible casse)
company_typeObligatoire, "carrier", "customer" ou "both"
company_numberFacultatif, unique dans org
emailFacultatif, format courriel valide, 4-128 caractĂšres
streetFacultatif, 4-64 caractĂšres si fourni
unitFacultatif, 1-64 caractĂšres si fourni
cityFacultatif, 2-64 caractĂšres si fourni
countryFacultatif, exactement 2 lettres si fourni (code ISO)
postalFacultatif, 4-10 caractĂšres si fourni

Invitation automatique d’un utilisateur​

Lors de la crĂ©ation/mise Ă  jour d’une entreprise, vous pouvez automatiquement inviter un utilisateur associĂ© en passant le paramĂštre invite_user Ă  "true", "yes", "y" ou "t" (casse insensible).

Le systùme :

  1. CrĂ©e un utilisateur associĂ© Ă  l’entreprise avec l’adresse courriel de l’entreprise
  2. Envoie une invitation par courriel Ă  cette adresse
  3. L’utilisateur pourra alors crĂ©er son compte et accĂ©der Ă  l’entreprise dans DataDocks

Exemple :

{
"company": {
"name": "New Carrier Inc",
"company_type": "carrier",
"email": "dispatch@newcarrier.example.com",
"invite_user": "true"
}
}

Bonnes pratiques​

Gestion des donnĂ©es​

  • Utilisez des identifiants cohĂ©rents : Gardez le numĂ©ro d’entreprise alignĂ© dans tous vos systĂšmes
  • Validez cĂŽtĂ© client : VĂ©rifiez les donnĂ©es avant l’envoi pour respecter les validations
  • GĂ©rez bien les champs personnalisĂ©s : Utilisez seulement ceux prĂ©vus par votre emplacement
  • Attention Ă  la suppression : PrĂ©fĂ©rez la mise Ă  jour quand pertinent
  • Invitez uniquement les bons utilisateurs : L’accĂšs systĂšme doit ĂȘtre justifiĂ©

Optimisation des performances​

  • Effectuez des mises Ă  jour en lot : Groupez les modifications similaires
  • Utilisez la pagination : Ne demandez que les entreprises dont vous avez besoin
  • Filtrez efficacement : Utilisez les filtres existants pour limiter le volume de donnĂ©es
  • Mettez en cache les recherches frĂ©quentes : Stockez localement ce qui est souvent consultĂ©

PiĂšges courants et dĂ©pannage​

  • Nom unique : Les noms doivent ĂȘtre uniques dans l’organisation (insensible Ă  la casse)
  • Format courriel : Les adresses doivent respecter le format et la longueur
  • Valeurs personnalisĂ©es : Seuls les champs autorisĂ©s pour l’emplacement sont acceptĂ©s
  • Types d’entreprise : Seules "carrier", "customer" ou "both" sont valides
  • NumĂ©ro d’entreprise automatique : Il est gĂ©nĂ©rĂ© si non fourni (jusqu’à 11 chiffres)
  • Code pays : Obligatoire au format ISO 2 lettres (ex : "US", "CA", "MX")
  • Entreprises parentes : Le parent doit exister; les permissions sont créées automatiquement
  • Casse : Les filtres sont insensibles Ă  la casse, tout comme la validation interne

Aide et support​

Si vous rencontrez un problùme non couvert par cette documentation :

  1. VĂ©rifiez la rĂ©ponse d’erreur : la majoritĂ© des dĂ©fauts comporte des infos explicites
  2. VĂ©rifiez vos permissions : assurez-vous que votre jeton API a les droits requis
  3. Avancez par Ă©tapes : dĂ©composez vos opĂ©rations pour isoler le souci

Relation parent-enfant entre entreprises​

Quand vous crĂ©ez une entreprise avec une sociĂ©tĂ© parente (parent_id), le lien parent-enfant est automatiquement créé. Cela signifie :

  1. L’entreprise “enfant” est liĂ©e Ă  la parente via le champ parent_id
  2. Les permissions de réservation sont générées automatiquement dans les deux sens
    • La sociĂ©tĂ© parente peut effectuer des rĂ©servations pour l’enfant
    • L’enfant peut rĂ©server pour la parente

Cela simplifie la gestion des groupes d’entreprises : elles peuvent interagir immĂ©diatement, sans autre configuration.

Exemple de crĂ©ation d’une filiale :

{
"company": {
"name": "Northeast Branch",
"company_type": "carrier",
"parent_id": 123,
"email": "northeast@example.com"
}
}