Aller au contenu principal

Créer un client

POST

https://api-v2.test.eldowallet.fr/clients

Crée un client et sa carte de fidélité à partir du modèle de carte du wallet. Sans clientType, le client reçoit le type par défaut ; sans barcode, son identifiant sert de code-barres (si la carte en affiche un). Renvoie le client avec les informations de sa carte (passId, passStatus, shortLink).

À retenir
  • source (CRM, INTERNAL ou EXTERNAL) est obligatoire. Avec sendCard: true, la carte de fidélité est émise et envoyée au client. Déclenche le webhook client.created. Un e-mail ou un code-barres déjà utilisé renvoie une erreur 409.

Requête​

header parameters
  • x-lang string
    Langue des messages d'erreur et des textes renvoyés : `fr` ou `en`.
    enum: en, frdefault: "en"
Body application/json required
  • firstName string requiredminLength: 2maxLength: 100
  • lastName string requiredminLength: 2maxLength: 100
  • email string <email> required
  • phoneNumber string
  • barcode string
  • renewalDate string <date-time>
  • birthDate string <date-time>
  • admissionDate string <date-time>
  • clientType string
  • gain number
  • companyName string
  • source string requiredenum: CRM, INTERNAL, EXTERNAL
  • sendCard boolean

Réponses​

Schéma application/json
  • wallet string
  • clientType oneOf
    • ClientType
      • storeCard oneOf required
        • StoreCard
          • wallet oneOf required
            • Wallet
            • option 2
          • cardType string requiredenum: STORE_CARD, MEMBER_CARD
          • displayIdentifiant boolean required
          • displayWalletName boolean
          • strip string required
          • passBuilderPassTemplateId string
          • programName string
          • keysHasChanged string[]
          • startRow stringenum: CREATION_DATE, EXPIRATION_DATE, BIRTHDATE, GAIN, CLUB, ASSOCIATION, ORGANISATION, ENTREPRISE, N_LICENCE, N_ADHERENT, N_MEMBER, MEMBER, N_IMMATRICULATION, INACTIVE, ADMISSION_DATE
          • middleRow stringenum: CREATION_DATE, EXPIRATION_DATE, BIRTHDATE, GAIN, CLUB, ASSOCIATION, ORGANISATION, ENTREPRISE, N_LICENCE, N_ADHERENT, N_MEMBER, MEMBER, N_IMMATRICULATION, INACTIVE, ADMISSION_DATE
          • endRow stringenum: CREATION_DATE, EXPIRATION_DATE, BIRTHDATE, GAIN, CLUB, ASSOCIATION, ORGANISATION, ENTREPRISE, N_LICENCE, N_ADHERENT, N_MEMBER, MEMBER, N_IMMATRICULATION, INACTIVE, ADMISSION_DATE
          • iosHeader object
            • labelEnum string requiredenum: TYPE, GAIN, FULLNAME, CUSTOM_TEXT, INACTIVE
            • valueEnum string requiredenum: TYPE, GAIN, FULLNAME, CUSTOM_TEXT, INACTIVE
            • customLabel string
            • customValue string
          • barcodeType string requiredenum: AZTEC, CODE_128, PDF_417, QR_CODE, NONE
          • descriptions object[] required
            • title string required
            • value string required
          • openingHours string required
          • colors object required
            • labelColor string required
            • backgroundColor string required
            • foregroundColor string required
          • oneTimeToUse boolean required
          • sharingProhibited boolean required
          • sharingProhibitedAndroid boolean required
          • validity object required
            • expirationType string requiredenum: NO_EXPIRATION, AT_DATETIME, AFTER_PERIOD
            • expirationDate string <date-time>
            • expirationAfterPeriod string
            • expirationPeriodType stringenum: YEARS, MONTHS, WEEKS
            • expirationOption stringenum: AT_CREATION_DATE, END_OF_MONTH
          • gainLabel string requiredenum: GAIN, GAINS, CAGNOTE, POINTS
          • gainUnit string requiredenum: NONE, EURO, USD, MAD, POINTS
          • offerLabel string required
          • enableDisplayIdentifiant boolean required
          • gainFormatMigrated boolean required
            Indique si le modèle PassBuilder et tous les passes existants ont été migrés vers le nouveau format de gain, où le symbole de l'unité est intégré à la valeur de l'attribut du pass (par exemple « 50 Pts ») plutôt qu'au champ du modèle. `false` (ou absent) signifie que l'ancien format est toujours utilisé.
          • _id string required
          • createdAt string <date-time> required
          • updatedAt string <date-time> required
        • option 2
      • name string required
      • isDefault boolean required
      • _id string required
      • createdAt string <date-time> required
      • updatedAt string <date-time> required
    • option 2
  • passStatus string
    Statut du pass de carte de fidélité associé.
    enum: active, inactive, deleted, canceled, expiredexample: active
  • deviceTypes string
    Liste des types d'appareils distincts, séparés par des virgules.
    example: IOS, ANDROID
  • shortLink string
    Lien court vers la page d'inscription du pass (par exemple pour un QR code).
  • shortId string
    Identifiant court du pass, de 4 caractères (utilisé dans les liens courts).
  • passBuilderPassId string
    Identifiant PassBuilder du pass (utilisé dans les liens courts en l'absence de `shortId`).
  • passId string
    Identifiant du pass.
  • clientTypeName string
    Nom du type de client.
  • otherPassStatuses object
    Statut actuel des passes de ce client autres que la carte de fidélité (événement, transport, hôtel), indexé par catégorie de pass. Une catégorie non définie signifie que le client n'a pas encore de pass de ce type. Sert à conditionner les préférences de communication liées à un « nouveau pass » : un client ne peut pas utilement accepter ou refuser les notifications d'un pass qu'il n'a pas encore.
    • event stringenum: active, inactive, deleted, canceled, expired
    • transit stringenum: active, inactive, deleted, canceled, expired
    • hotel stringenum: active, inactive, deleted, canceled, expired
  • source string requiredenum: CRM, INTERNAL, EXTERNAL
  • barcode string
  • firstName string required
  • lastName string required
  • email string
  • companyName string
  • renewalDate string <date-time>
  • phoneNumber string
  • birthDate string <date-time>
  • admissionDate string <date-time>
  • gain number
  • gainHistory object[]
    • gain number required
    • date string <date-time> required
  • communicationPreferences object[]
    Préférences de communication de ce client, par événement et par canal, qui priment sur les règles du wallet (gestion des consentements RGPD). Même structure que `WalletSetting.communicationRules`. L'absence d'entrée pour un `notificationType` donné signifie que la communication est activée, comme pour `isCommunicationRuleEnabled`. L'historique des modifications n'est volontairement pas inclus ici (voir `CommunicationPreferenceLog`), afin de garder ce document, très souvent lu, léger.
    • notificationType string requiredenum: NEW_LOYALTY, UPDATE_LOYALTY, REMINDER_LOYALTY, EARNINGS_UPDATE, NEW_COMMUNICATION, EXPIRED_COMMUNICATION, NEW_EVENT, UPDATE_EVENT, NEW_COUPON, UPDATE_COUPON, WELCOME_INTERNAL_CLIENTS, WELCOME_CRM_CLIENTS, WELCOME_EXTERNAL_CLIENTS, WELCOME_COUPON, EXPIRED_COUPON, TRANSIT_TICKET, UPDATE_TRANSIT, HOTEL_RESERVATION, UPDATE_HOTEL_RESERVATION, CINEMA_TICKET
    • sms boolean required
    • email boolean required
    • notification boolean required
  • pushInformativeEnabled boolean
    Désinscription des campagnes de notifications push « standard » créées par un gestionnaire et classées comme informatives.
  • pushCommercialEnabled boolean
    Désinscription des campagnes de notifications push « standard » créées par un gestionnaire et classées comme commerciales.
  • _id string required
  • createdAt string <date-time> required
  • updatedAt string <date-time> required

Les nouveautés de l'API, une fois par mois

Nouveaux endpoints, changements à prévoir, guides et cas d'usage. Pas de spam, désinscription en un clic.

Signaler un problème technique

Une erreur de l’API, un pass qui ne se met pas à jour, un e-mail qui n’arrive pas ? Décrivez le problème : notre équipe technique vous répond.

Pour une réponse rapide, indiquez :

  • La méthode et l’endpoint (ex. POST /clients)
  • Le code d’erreur renvoyé (errorCode) et le corps envoyé
  • La date et l’heure de l’appel
  • Les identifiants concernés (client, modèle, pass)

N’y mettez jamais de jeton d’API ni de mot de passe.

Assistant IA

Beta

Chargement…

Réponses générées par IA (Claude) : vérifiez les points importants.

Connectez-vous pour utiliser l'assistant