Aller au contenu

Personnalisation

Ce que chaque lien hérite de votre compte, et ce que chacun contrôle de son côté.

Deux choses différentes façonnent la page d'un lien, et c'est en les confondant que le sujet paraît plus compliqué qu'il ne l'est.

Votre marque se règle une seule fois pour tout le compte et s'applique à toutes les pages de paiement que vous servirez : logo, couleurs, police, arrondi. Votre lien contrôle son propre contenu : les images, le texte, le bouton, les questions posées, les langues proposées, les personnes autorisées à l'ouvrir.

Alors, à la question « puis-je donner à ce lien une autre apparence que celui-là », la réponse est : pas pour les couleurs, oui pour presque tout le reste.

Ce qui vient du compte, une fois pour toutes

Le logo, la palette, la police, l'arrondi des angles et le mode d'apparence se trouvent dans Settings → Branding. Modifiez-les là et tous vos liens sont mis à jour d'un coup, en même temps que votre checkout hébergé et vos factures. Le tableau complet est sur Checkout hébergé, puisque c'est le même réglage qui sert les trois.

L'image de marque nécessite un plan payant

Settings → Branding dépend de la fonctionnalité Branding, incluse à partir de Growth. Avec Pay as you go, chaque lien garde l'apparence par défaut. Servir vos liens depuis votre propre domaine plutôt que wajub.link est une fonctionnalité distincte, Custom domain, incluse à partir de Scale.

Tout ce qui suit se règle lien par lien, et deux liens d'un même compte peuvent différer sur chacun de ces points.

Images

Le poster est la bannière en haut de la page, et gallery en contient jusqu'à dix autres, affichées en dessous. Pour un produit, c'est la différence entre une page qui vend et une page qui annonce un prix.

Les deux voies n'acceptent pas la même chose. Le Dashboard téléverse des fichiers, JPEG, PNG, GIF ou WebP jusqu'à 10 Mo chacun, et les héberge pour vous. L'API prend des URLs que vous hébergez déjà, jusqu'à 2 048 caractères chacune, et ne téléverse jamais rien. Faites-les pointer vers des images que vous servez vous-même.

Le bouton, et ce qui suit le paiement

cta_type fixe le texte du bouton parmi buy_now, pay, donate, register, ou custom associé à votre propre custom_cta_text de 50 caractères maximum.

thank_you_message remplace la confirmation par défaut une fois le paiement réussi. C'est la dernière chose que lit le payeur, c'est donc le bon endroit pour un délai de livraison ou une prochaine étape.

Questions au payeur

extra_fields ajoute des champs à la page : un numéro de table, une taille, une note pour la cuisine.

Un champ a un name, en lettres minuscules, chiffres et tirets bas, un label, un type parmi text, email, tel, textarea, select et checkbox, un indicateur required, un placeholder facultatif, et pour un select ses options. Un lien accepte jusqu'à dix champs. La page demande en plus l'e-mail du payeur, toujours : un paiement sur un lien ne peut pas se faire sans.

Deux questions sur la page
{
"extra_fields": [
{
"name": "size",
"label": "Size",
"type": "select",
"required": true,
"options": [
"S",
"M",
"L"
]
},
{
"name": "note",
"label": "Note to the seller",
"type": "textarea",
"required": false
}
]
}

Le Dashboard vérifie cette forme. POST /links enregistre extra_fields tel que vous l'envoyez, sans vérification : un champ sans name ni type ne s'affichera donc pas comme prévu. Les réponses accompagnent le paiement, imbriquées et non aplaties : lisez metadata.extra_fields.size dans votre handler de webhook, pas metadata.size.

Codes promo

Un lien porte jusqu'à vingt codes promo, réglés dans le Dashboard. Chacun a un code, de 3 à 32 lettres majuscules, chiffres, tirets ou tirets bas, unique parmi vos liens, une remise en pourcentage ou en montant fixe, et en option un nombre maximal d'utilisations et une date d'expiration. Le payeur saisit le code sur la page et voit la remise avant de payer.

Produits numériques

Un produit digital est livré par e-mail une fois le paiement réussi : le payeur doit donc donner une adresse e-mail. Dans le Dashboard, vous téléversez le fichier, à partir du plan Growth, ou vous donnez une URL https vers lui, sur tous les plans.

Langues

Un lien peut être bilingue. supported_locales liste les langues que la page propose parmi fr et en, default_locale indique celle qui s'affiche en premier, et translations contient l'autre version, indexée par langue.

Le même lien, en deux langues
{
"default_locale": "fr",
"supported_locales": [
"fr",
"en"
],
"translations": {
"en": {
"title": "Amina Coffee, 250 g",
"description": "Roasted in Douala, ground to order.",
"custom_cta_text": "Order now",
"thank_you_message": "Thank you, we ship within 48 hours."
}
}
}

Seuls quatre champs se traduisent : title, description, custom_cta_text et thank_you_message. Les champs de base du lien sont ceux qu'affiche la langue par défaut, vous n'écrivez donc jamais que la seconde langue dans translations.

Devises

supported_currencies permet au payeur de changer de devise sur la page. La currency propre au lien est toujours proposée, et les devises que vous ajoutez viennent s'y joindre.

Qui peut entrer

Quatre verrous indépendants, et la page se ferme dès que l'un d'eux se déclenche.

RéglageRéponse de la page
is_public mis à false404, le lien n'est pas publié
access_passwordUne demande de mot de passe avant tout affichage
max_views atteint410, le plafond de vues est épuisé
expiry_date dépassée, ou is_archived410, le lien est terminé

Un lien protégé par mot de passe demande le mot de passe, puis délivre un jeton de courte durée à ce visiteur. Notez qu'une tentative bloquée n'est pas comptée comme une vue : le verrou du mot de passe n'entame donc pas max_views.

Ce que chaque type ajoute

Le type apporte ses propres réglages, qui n'existent que sur ce type.

TypeCe que vous pouvez régler
productproduct_variants, stock, livraison, poids, et pour un service la durée, le lieu et l'URL de réunion
eventTypes de billets avec leur propre nom, prix et quantité, event_capacity, generate_qr_tickets, attendee_info_fields, refund_policy
fundraisingshow_progress, show_contributors, allow_overflow, impact_tiers, campaign_deadline, fundraising_milestones
donationsuggested_amounts, allow_custom_amount, min_amount, max_amount, allow_anonymous, show_donor_wall

Ce que l'API peut régler, et ce qu'elle ne peut pas

C'est ce qu'il faut savoir avant d'automatiser quoi que ce soit. L'API et le Dashboard n'atteignent pas les mêmes champs, et POST /links en atteint davantage que PUT /links/{id}.

ChampCréation via l'APIMise à jour via l'APIDashboard
title, description, priceOuiOuiOui
currencyOuiNonOui
target_amount, min_amount, max_amountOuiOuiOui
callback_urlOuiOuiNon
cta_type, custom_cta_textOuiOuiOui
custom_url, tagsOuiOuiOui
category_idAvant la version d'API 2026-10-12Avant 2026-10-12Oui
is_public, is_archived, expiry_date, sales_limitOuiOuiOui
accept (moyens de paiement proposés)OuiOuiOui
extra_fields, thank_you_messageOuiNonOui
poster, galleryOui, en URLsNonOui, en fichiers téléversés
Champs propres au type, événement et collecte de fondsOuiNonOui
supported_locales, default_locale, translationsNonNonOui
supported_currenciesNonNonOui
access_password, max_viewsNonNonOui
Codes promo, fichier d'un produit numériqueNonNonOui
Domaine personnalisé, types de billetsNonNonOui

À partir de la version d'API 2026-10-12, un lien n'a plus de category_id : aucun endpoint ne liste les catégories qu'il désignerait, l'API ne le prend donc plus sur POST et PUT, ne filtre plus GET /links dessus et ne le renvoie plus. Les versions antérieures le gardent. Gestion des versions

Dans le Dashboard

Links → un lien → Edit réunit tous les réglages, avec un aperçu à côté des champs. C'est le seul endroit qui donne accès aux langues, aux devises, au mot de passe d'accès, au plafond de vues, au domaine personnalisé et aux types de billets d'un événement.

Chaque lien a aussi ses propres endpoints de webhook, distincts de ceux de votre compte, avec leur propre secret, un envoi de test et une nouvelle tentative. Utilisez-les quand une campagne doit prévenir un système que le reste de votre compte ne prévient pas.

Que pensez-vous de ce contenu ?