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. AvecsendCard: true, la carte de fidélité est émise et envoyée au client. Déclenche le webhookclient.created. Un e-mail ou un code-barres déjà utilisé renvoie une erreur 409.
Requête
header parameters
x-langstringLangue des messages d'erreur et des textes renvoyés : `fr` ou `en`.enum:en,frdefault:"en"
Body
application/json requiredfirstNamestring requiredminLength: 2maxLength: 100lastNamestring requiredminLength: 2maxLength: 100emailstring <email> requiredphoneNumberstringbarcodestringrenewalDatestring <date-time>birthDatestring <date-time>admissionDatestring <date-time>clientTypestringgainnumbercompanyNamestringsourcestring requiredenum:CRM,INTERNAL,EXTERNALsendCardboolean
Réponses
- 201
- 400
- 401
- 403
- 404
- 409
- 500
Schéma
application/jsonwalletstringclientTypeoneOf- ClientType
storeCardoneOf required- StoreCard
walletoneOf required- Wallet
- option 2
cardTypestring requiredenum:STORE_CARD,MEMBER_CARDdisplayIdentifiantboolean requireddisplayWalletNamebooleanstripstring requiredpassBuilderPassTemplateIdstringprogramNamestringkeysHasChangedstring[]startRowstringenum:CREATION_DATE,EXPIRATION_DATE,BIRTHDATE,GAIN,CLUB,ASSOCIATION,ORGANISATION,ENTREPRISE,N_LICENCE,N_ADHERENT,N_MEMBER,MEMBER,N_IMMATRICULATION,INACTIVE,ADMISSION_DATEmiddleRowstringenum:CREATION_DATE,EXPIRATION_DATE,BIRTHDATE,GAIN,CLUB,ASSOCIATION,ORGANISATION,ENTREPRISE,N_LICENCE,N_ADHERENT,N_MEMBER,MEMBER,N_IMMATRICULATION,INACTIVE,ADMISSION_DATEendRowstringenum:CREATION_DATE,EXPIRATION_DATE,BIRTHDATE,GAIN,CLUB,ASSOCIATION,ORGANISATION,ENTREPRISE,N_LICENCE,N_ADHERENT,N_MEMBER,MEMBER,N_IMMATRICULATION,INACTIVE,ADMISSION_DATEiosHeaderobjectlabelEnumstring requiredenum:TYPE,GAIN,FULLNAME,CUSTOM_TEXT,INACTIVEvalueEnumstring requiredenum:TYPE,GAIN,FULLNAME,CUSTOM_TEXT,INACTIVEcustomLabelstringcustomValuestring
barcodeTypestring requiredenum:AZTEC,CODE_128,PDF_417,QR_CODE,NONEdescriptionsobject[] requiredtitlestring requiredvaluestring required
openingHoursstring requiredcolorsobject requiredlabelColorstring requiredbackgroundColorstring requiredforegroundColorstring required
oneTimeToUseboolean requiredsharingProhibitedboolean requiredsharingProhibitedAndroidboolean requiredvalidityobject requiredexpirationTypestring requiredenum:NO_EXPIRATION,AT_DATETIME,AFTER_PERIODexpirationDatestring <date-time>expirationAfterPeriodstringexpirationPeriodTypestringenum:YEARS,MONTHS,WEEKSexpirationOptionstringenum:AT_CREATION_DATE,END_OF_MONTH
gainLabelstring requiredenum:GAIN,GAINS,CAGNOTE,POINTSgainUnitstring requiredenum:NONE,EURO,USD,MAD,POINTSofferLabelstring requiredenableDisplayIdentifiantboolean requiredgainFormatMigratedboolean requiredIndique 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é._idstring requiredcreatedAtstring <date-time> requiredupdatedAtstring <date-time> required
- option 2
- StoreCard
namestring requiredisDefaultboolean required_idstring requiredcreatedAtstring <date-time> requiredupdatedAtstring <date-time> required
- option 2
- ClientType
passStatusstringStatut du pass de carte de fidélité associé.enum:active,inactive,deleted,canceled,expiredexample:activedeviceTypesstringListe des types d'appareils distincts, séparés par des virgules.example:IOS, ANDROIDshortLinkstringLien court vers la page d'inscription du pass (par exemple pour un QR code).shortIdstringIdentifiant court du pass, de 4 caractères (utilisé dans les liens courts).passBuilderPassIdstringIdentifiant PassBuilder du pass (utilisé dans les liens courts en l'absence de `shortId`).passIdstringIdentifiant du pass.clientTypeNamestringNom du type de client.otherPassStatusesobjectStatut 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.eventstringenum:active,inactive,deleted,canceled,expiredtransitstringenum:active,inactive,deleted,canceled,expiredhotelstringenum:active,inactive,deleted,canceled,expired
sourcestring requiredenum:CRM,INTERNAL,EXTERNALbarcodestringfirstNamestring requiredlastNamestring requiredemailstringcompanyNamestringrenewalDatestring <date-time>phoneNumberstringbirthDatestring <date-time>admissionDatestring <date-time>gainnumbergainHistoryobject[]gainnumber requireddatestring <date-time> required
communicationPreferencesobject[]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.notificationTypestring 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_TICKETsmsboolean requiredemailboolean requirednotificationboolean required
pushInformativeEnabledbooleanDésinscription des campagnes de notifications push « standard » créées par un gestionnaire et classées comme informatives.pushCommercialEnabledbooleanDésinscription des campagnes de notifications push « standard » créées par un gestionnaire et classées comme commerciales._idstring requiredcreatedAtstring <date-time> requiredupdatedAtstring <date-time> required
VALIDATION_ERROR · INVALID_JSON
Schéma
application/jsonmessagestring requiredexample:Promo code already existserrorCodestring requiredexample:400:PROMO_CODE_ALREADY_EXISTSpathstring requiredexample:/couponsdatestring <date-time> requireddetailsobjectvalidationErrorsobject[]fieldstringexample:emailmessagestringexample:email must be an email
UNAUTHORIZED
Schéma
application/jsonmessagestring requiredexample:Promo code already existserrorCodestring requiredexample:400:PROMO_CODE_ALREADY_EXISTSpathstring requiredexample:/couponsdatestring <date-time> requireddetailsobjectvalidationErrorsobject[]fieldstringexample:emailmessagestringexample:email must be an email
FORBIDDEN
Schéma
application/jsonmessagestring requiredexample:Promo code already existserrorCodestring requiredexample:400:PROMO_CODE_ALREADY_EXISTSpathstring requiredexample:/couponsdatestring <date-time> requireddetailsobjectvalidationErrorsobject[]fieldstringexample:emailmessagestringexample:email must be an email
MODEL_NOT_FOUND
Schéma
application/jsonmessagestring requiredexample:Promo code already existserrorCodestring requiredexample:400:PROMO_CODE_ALREADY_EXISTSpathstring requiredexample:/couponsdatestring <date-time> requireddetailsobjectvalidationErrorsobject[]fieldstringexample:emailmessagestringexample:email must be an email
EMAIL_ALREADY_EXISTS · BARCODE_ALREADY_EXISTS
Schéma
application/jsonmessagestring requiredexample:Promo code already existserrorCodestring requiredexample:400:PROMO_CODE_ALREADY_EXISTSpathstring requiredexample:/couponsdatestring <date-time> requireddetailsobjectvalidationErrorsobject[]fieldstringexample:emailmessagestringexample:email must be an email
UNKNOWN_ERROR
Schéma
application/jsonmessagestring requiredexample:Promo code already existserrorCodestring requiredexample:400:PROMO_CODE_ALREADY_EXISTSpathstring requiredexample:/couponsdatestring <date-time> requireddetailsobjectvalidationErrorsobject[]fieldstringexample:emailmessagestringexample:email must be an email