/api/v4/connected-accounts/create-location-from-listingCréer un établissement depuis la fiche d’un compte connecté
Crée un nouvel établissement Listings API à partir d’une fiche Google Business Profile ou Facebook existante dans un compte connecté.
Paramètres
Corps
| Nom | Type | Obligatoire | Description |
|---|---|---|---|
| input | object | obligatoire | Wrapper object. The entire request body must be nested under `input`. |
| input.connectedAccountId | string | obligatoire | ID of the connected account (Google or Facebook) that owns the listing. Taken from `GET /connected-accounts`. |
| input.connectedAccountListingId | string | obligatoire | ID of the listing to import into a new location. Taken from the `id` of a record returned by `POST /connected-accounts/connected-account-listings`. |
Exemple de requête
Corps prêt à coller. Remplacez les identifiants et valeurs d’exemple par les vôtres.
{ "input": { "connectedAccountId": "4f712c17-4f95-42dd-90f4-97171a2e67b5", "connectedAccountListingId": "R21iQnVsa0RhdGFMYWtlOjU3NzU5MzRiLTUwOTgtNGQwYS04YjQ0LTNjY2ZlZmZkZmUzNw==" }}Réponses
200Request accepted. `success` is `true` and `locationId` holds the new location's database ID; on failure `success` is `false`, `locationId` is `null`, and `errors` carries a structured, coded reason.
{ "data": { "createLocationFromConnectedAccountListing": { "success": true, "locationId": 88277, "errors": null } }}400Bad request, the body was not wrapped in `input`, or a required field was omitted. The field is `connectedAccountListingId`, not `listingId` (the latter is rejected by the schema).
401Unauthenticated, missing or invalid API key.
Crée un nouvel établissement Listings API en récupérant les données de l’entreprise à partir d’une fiche existante dans un compte Google Business Profile ou Facebook connecté. La fiche doit déjà être présente dans le compte (récupérée via POST /connected-accounts/connected-account-listings) et ne doit pas déjà être liée à un autre établissement Listings API.
Structure de la requête. Le corps doit être encapsulé dans un objet input comportant deux champs obligatoires : connectedAccountId (le compte auquel appartient la fiche) et connectedAccountListingId (la fiche à importer). Il n’existe pas de champ listingId ; le schéma le rejette.
Pour les fiches Google, l’API importe le nom, l’adresse, les coordonnées géographiques, le numéro de téléphone, le site web, la description, les horaires habituels et exceptionnels, les catégories principale et supplémentaires, la date d’ouverture, le code du magasin et le fuseau horaire. Les modes de paiement et les liens vers les profils sur les réseaux sociaux sont extraits des attributs Google de la fiche. Les attributs Google autres que les modes de paiement et les liens vers les réseaux sociaux sont lus, mais ne sont pas conservés. Pour Facebook, elle importe le nom, l’établissement, les horaires, les catégories, la description et les coordonnées de contact.
Le nouvel établissement est automatiquement lié au compte connecté dont il provient. Lors d’un import depuis Google, les données ne sont pas soumises à nouveau à Google. Le profil source reste inchangé et sa fiche affiche syncStatus: IN_PROGRESS jusqu’à ce que votre premier POST /api/v4/locations/update y publie des données. Toutes les autres plateformes de publication sont traitées normalement : des éléments de commande sont générés et l’établissement est soumis à chacun des autres sites activés sur le compte.
Ce point de terminaison n’accepte aucune restriction aux sites ciblés ni aucune option permettant de désactiver les soumissions ; l’établissement est donc toujours créé pour l’ensemble des plateformes de publication de votre compte. Pour le limiter à une seule plateforme de publication, définissez enabledSiteIds sur le nouvel établissement via POST /api/v4/locations/update immédiatement après sa création. Envoyez cette mise à jour dès que l’établissement est créé : les éléments de commande destinés aux autres plateformes de publication sont générés peu après la création, et la mise à jour ne retire aucun de ceux qui ont déjà été générés.
Cas d’utilisation : création d’établissements en masse lors de la configuration initiale. Une agence connecte le compte Google d’un client qui gère 40 points de vente que l’agence n’a jamais saisis dans Listings API. Au lieu de créer chaque établissement manuellement, récupérez la liste des fiches du compte et appelez ce point de terminaison une fois par connectedAccountListingId pour créer les 40 établissements Listings API avec les données de Google préremplies, puis facturez-les et gérez-les normalement.
success: true signifie que l’établissement a été créé et locationId est son identifiant dans la base de données. En cas d’échec, success vaut false, locationId vaut null et errors contient un motif structuré assorti d’un code, par exemple { "code": "SY81067", "message": "Invalid connected account listing ID" } lorsque connectedAccountListingId ne correspond à aucun enregistrement. Les autres cas courants sont une fiche déjà liée à un autre établissement ou un compte dont les identifiants ont expiré et qui doit être reconnecté via le point de terminaison connect-google ou connect-facebook. Pour rattacher une fiche à un établissement existant au lieu d’en créer un nouveau, utilisez le point de terminaison connect-listing.
curl -X POST 'https://listingsapi.com/api/v4/connected-accounts/create-location-from-listing' \ -H "Authorization: API $LISTINGSAPI_KEY" \ -H 'Content-Type: application/json' \ -d '{ "input": { "connectedAccountId": "4f712c17-4f95-42dd-90f4-97171a2e67b5", "connectedAccountListingId": "R21iQnVsa0RhdGFMYWtlOjU3NzU5MzRiLTUwOTgtNGQwYS04YjQ0LTNjY2ZlZmZkZmUzNw==" } }'