Aller au contenu principal

Mettre à jour un client

PATCH

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

Met à jour un client et sa carte de fidélité. Seuls les champs envoyés sont modifiés ; la carte installée sur le téléphone du client est mise à jour en conséquence. Renvoie le client mis à jour.

À retenir
  • Un e-mail ou un code-barres déjà utilisé par un autre client du wallet renvoie 409 (EMAIL_ALREADY_EXISTS, BARCODE_ALREADY_EXISTS). Un changement de gain est traité comme un EARNINGS_UPDATE, tout autre changement comme un UPDATE_LOYALTY : la carte n'est synchronisée que si au moins un canal est actif pour ce type de notification, et la push n'est envoyée que si le modèle de notification l'active et que le client ne l'a pas refusée. Déclenche le webhook client.updated.

Requête​

path parameters
  • id string required
    Identifiant du client (ObjectId de 24 caractères hexadécimaux).
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 stringminLength: 2maxLength: 100
  • lastName stringminLength: 2maxLength: 100
  • email string <email>
  • phoneNumber string
  • barcode string
  • renewalDate string <date-time>
  • birthDate string <date-time>
  • admissionDate string <date-time>
  • clientType string
  • gain number
  • companyName string
  • source stringenum: 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