Aller au contenu

Connecter votre application à Wajub

Obtenir la clé d'un marchand sans lui demander de la copier, par un appairage qu'il approuve dans le Dashboard.

Un plugin, une extension de navigateur ou une application mobile ne devrait pas demander au marchand de copier une clé secrète. Elle peut en demander une, comme le font wajub login et Connexion avec Wajub dans le plugin WordPress : le marchand approuve la demande dans le Dashboard et votre application reçoit une clé, une seule fois.

Commencez par ouvrir une session d'appairage. Tous les champs sont facultatifs.

ChampRôle
client_typemobile, browser_extension, shopify, woocommerce, wordpress ou other (cli s'il est absent). Nomme votre application sur l'écran d'approbation et dans le nom de la clé, présenté comme ce que votre application déclare être
device_nameJusqu'à 120 caractères montrés à la personne qui approuve, comme le nom et le domaine de la boutique
environmentsandbox ou live, celui que vous demandez. La page d'approbation démarre sur Sandbox, quoi que vous envoyiez
permissionsLes scopes dont votre application a besoin, comme payment.write. La page d'approbation démarre alors sur une clé restreinte, avec ces scopes cochés
return_urlUne adresse publique vers laquelle la page d'approbation propose un lien une fois la demande approuvée. Elle n'est jamais suivie automatiquement
client_keyJusqu'à 60 caractères à vous, conservés avec la session
Ouvrir une session d'appairage
curl https://dashboard.wajub.com/api/apps/auth/sessions \
  -H "Content-Type: application/json" \
  -d '{
    "device_name": "Boutique Amina, WooCommerce",
    "client_type": "woocommerce",
    "environment": "sandbox",
    "permissions": ["payment.read", "payment.write", "refund.read", "refund.write"]
  }'

La réponse contient le code que voit le marchand, le jeton que seule votre application détient et la page à ouvrir. La session expire au bout de 15 minutes. Une même adresse peut ouvrir 30 sessions par minute.

Réponse · 201 Created
{
"pairing_code": "K7QD-9XHT",
"polling_token": "xxxxxxxxxxxxxxxx…",
"client_type": "woocommerce",
"confirm_url": "https://dashboard.wajub.com/connect?code=K7QD-9XHT",
"expires_at": "2026-09-29T10:15:00+00:00",
"interval": 2
}

Ouvrez confirm_url dans le navigateur du marchand et montrez-lui le code. Il se connecte, vérifie que la page affiche le même code, choisit l'environnement, accorde toutes les permissions ou un ensemble restreint, choisit la durée de la clé, 90 jours ou Durée indéterminée, puis approuve ou refuse. Seuls le propriétaire, un Administrator ou un Developer du compte peuvent approuver, ou un Sandbox User pour une clé sandbox seulement, après un code de sécurité, et Wajub envoie un e-mail au propriétaire et à chaque Administrator pour chaque clé créée ainsi. Pendant ce temps, interrogez la session toutes les interval secondes avec le jeton de polling, 60 fois par minute au plus.

Interroger jusqu'à la décision du marchand
curl https://dashboard.wajub.com/api/apps/auth/sessions/poll \
  -H "Authorization: Bearer <polling_token>"
RéponseSignification
200 avec status: pendingPas encore de décision, interrogez à nouveau
200 avec status: authorizedLa clé, et ce que le marchand a accordé
403 avec status: deniedLe marchand a refusé
410 avec status: expiredPersonne n'a approuvé dans les 15 minutes, ou la clé n'a pas été récupérée dans les 15 minutes qui ont suivi l'approbation et a été supprimée
410 avec status: consumedLa clé a déjà été remise
404Jeton de polling inconnu
Champ de authorizedContenu
keyLa clé secrète : sk_test. ou sk., rk_test. ou rk. pour une clé restreinte
environmentsandbox ou live : celui que le marchand a choisi, quel que soit celui que vous avez demandé. Rangez la clé à cet endroit
key_type, permissionsprivate avec null pour un accès complet, ou restricted avec ses scopes
expires_atLe moment où la clé cesse de fonctionner, ou null si elle n'expire pas. key_expires_at contient la même valeur
businessLe nom de l'entreprise du marchand
client_type, api_baseVotre type de client, et l'API à appeler

La clé n'est renvoyée qu'une fois, à la première réponse authorized. Conservez-la comme toute clé secrète. Une clé restreinte atteint GET / quoi qu'il lui manque : lisez key_type et permissions plutôt que de sonder l'API. Une clé de wajub login dure toujours 90 jours ; pour tout autre client, le marchand choisit.

Lorsque votre application se reconnecte, supprimez la clé qu'elle remplace : DELETE /keys/current, envoyé avec cette clé, supprime une clé créée par un appairage. Il répond 409 pour une clé créée dans le Dashboard, qu'il ne touche jamais, et 401 pour une clé déjà supprimée. Ne l'envoyez jamais depuis une copie de l'installation qui pourrait encore partager la clé, comme une copie de préproduction d'une boutique.

Supprimer la clé reçue par appairage
curl -X DELETE https://api.wajub.com/keys/current \
  -H "Authorization: sk_test.xxxxxxxxxxxxxxxx…"

Que pensez-vous de ce contenu ?