Envoyer des coupons
https://api-v2.test.eldowallet.fr/coupons/:id/passes/send
Envoie un coupon à des clients existants ou à des destinataires qui ne sont pas clients. Avec clientId, les données de la carte de fidélité du client sont utilisées ; sans clientId, firstName, lastName et email sont obligatoires. Accepte multipart/form-data pour remplacer l'image du bandeau. webhookUrl et forceSync sont facultatifs. La réponse est une opération en masse : suivez son statut et ses résultats avec GET /bulk-operations/{operationId}.
- Corps en
multipart/form-data: les objets imbriqués (colors,security,locations…) s'envoient en chaîne JSON, les booléens en"true"/"false". Images : PNG ou JPEG, 1 Ko à 5 Mo. clients[].firstNameest obligatoire siclientIdest absent oufalse.clients[].lastNameest obligatoire siclientIdest absent oufalse.clients[].emailest obligatoire siclientIdest absent oufalse.- Envoie un coupon à des clients existants (
{clientId}) ou à des non-clients ({firstName, lastName, email}), avec des valeurs propres à chaque destinataire :barcode,promoCode,description,value,expirationDate. Un tableauclientsvide cible tous les clients du wallet. S'exécute comme une opération en masse (webhookUrl,forceSync).acceptPartialDeliverygère le cas d'un crédit insuffisant sur certains canaux (409:INSUFFICIENT_CREDIT_PARTIAL). Accepteapplication/jsonou multipart (quandoverrideStripImageest un fichier ; ce peut aussi être une URL).
Requête
idstring requiredIdentifiant du modèle de coupon à envoyer.
x-langstringLangue des messages d'erreur et des textes renvoyés : `fr` ou `en`.enum:en,frdefault:"en"
application/json requiredwebhookUrlstringURL de webhook appelée à la fin de l'opération en masse. En-têtes d'authentification : ajoutez `#headers=Authorization:Bearer%20token` à l'URL.example:https://example.com/webhook#headers=Authorization:Bearer%20tokenforceSyncbooleanExécute l'opération de manière synchrone (moins de 1 000 éléments). Si la valeur est `true` et que la requête contient 1 000 éléments ou plus, elle est rejetée.default:falseoverrideStripImagestring <binary>Image de bandeau de remplacement, facultative. En `multipart/form-data` : envoyez un fichier image (PNG/JPEG). En `application/json` : indiquez l'URL de l'image.clientsobject[] requiredclientIdstringfirstNamestringlastNamestringemailstring <email>phoneNumberstringbarcodestringpromoCodestringdescriptionstringvaluestringexpirationDatestring <date-time>
multipart/form-data requiredwebhookUrlstringURL de webhook appelée à la fin de l'opération en masse. En-têtes d'authentification : ajoutez `#headers=Authorization:Bearer%20token` à l'URL.example:https://example.com/webhook#headers=Authorization:Bearer%20tokenforceSyncbooleanExécute l'opération de manière synchrone (moins de 1 000 éléments). Si la valeur est `true` et que la requête contient 1 000 éléments ou plus, elle est rejetée.default:falseoverrideStripImagestring <binary>Image de bandeau de remplacement, facultative. En `multipart/form-data` : envoyez un fichier image (PNG/JPEG). En `application/json` : indiquez l'URL de l'image.clientsobject[] requiredclientIdstringfirstNamestringlastNamestringemailstring <email>phoneNumberstringbarcodestringpromoCodestringdescriptionstringvaluestringexpirationDatestring <date-time>
Réponses
- 201
- 400
- 401
- 403
- 404
- 409
- 415
- 500
application/jsonoperationIdstring requiredIdentifiant unique de l'opération en masse.example:507f1f77bcf86cd799439011totalItemsnumber requiredNombre total d'éléments de l'opération.example:100successCountnumber requiredNombre d'éléments traités avec succès.example:95failureCountnumber requiredNombre d'éléments en échec.example:5statusstring requiredCurrent status of the operationenum:pending,processing,completed,failedexample:pendingoperationErrorsobject[]Liste des erreurs des éléments en échec.itemIdstring requiredIdentifiant de l'élément en échec.example:507f1f77bcf86cd799439011messagestring requiredMessage d'erreur.example:Client not foundcodestringCode d'erreur, s'il est disponible.example:404:MODEL_NOT_FOUND
resultsobject[]Liste des résultats des éléments traités avec succès.itemIdstring requiredIdentifiant de l'élément.example:507f1f77bcf86cd799439011resultobjectDonnées du résultat.
createdAtstring <date-time> requiredDate et heure de création de l'opération.example:2024-01-01T00:00:00.000ZcompletedAtstring <date-time>Date et heure de fin de l'opération.example:2024-01-01T00:05:00.000Z
VALIDATION_ERROR · INVALID_JSON · INVALID_MULTIPART · MISSING_RECIPIENT_DETAILS_FOR_NON_CLIENT · NO_RECIPIENTS_PROVIDED · NO_CLIENTS_FOUND · NO_CUSTOMERS_FOUND · ALL_CLIENTS_ALREADY_HAVE_COUPON
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 · PASSBUILDER_TOKEN_MISSING
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
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
COUPON_TEMPLATE_NOT_FOUND · MODEL_NOT_FOUND
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
BARCODE_ALREADY_EXISTS
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
UNSUPPORTED_MEDIA_TYPE
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
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