SDKs
Tous les packages Wajub officiels, ce qu'il leur faut pour fonctionner et celui dont votre stack a besoin.
Cette page liste tous les packages Wajub officiels et ce qu'il leur faut pour fonctionner. Choisissez le vôtre selon l'endroit où s'exécute votre code et le langage que vous écrivez déjà.
Où s'exécute votre code
Cette seule question détermine le package à choisir.
| Emplacement de votre code | Solution | Raison |
|---|---|---|
| Sur votre serveur | Un SDK serveur | Il détient la clé secrète et peut donc tout faire |
| Dans un navigateur | Wajub Components | Il affiche et confirme un checkout, rien de plus |
| Dans une application mobile | Un SDK mobile | Il affiche une interface de paiement native |
| Dans un terminal | La CLI | Transfert local des webhooks et événements de test, avec une clé restreinte rk. |
| Sur WordPress | Un plugin | Aucun code d'intégration |
| Nulle part pour le moment | Liens de paiement ou Factures | Un lien payable, sans code ni package |
| Partout ailleurs | L'API REST | Tous les endpoints documentés pour le HTTP brut |
La plupart des intégrations utilisent deux packages : un SDK serveur pour créer le paiement et un package pour navigateur ou mobile afin de l'encaisser. Cette séparation ne relève pas du style, elle dépend de l'endroit où la clé secrète peut être utilisée.
Une règle s'applique à toute la liste
La clé secrète reste sur votre serveur. Les navigateurs et les applications mobiles reçoivent un
jeton de session limité à un seul paiement, généré par un SDK serveur. Aucun package de cette page
ne change cette règle. L'API répond 403 et envoie un e-mail au propriétaire lorsqu'une clé sk.
provient d'un navigateur. Consultez Sessions et sécurité.
SDKs serveur
Sept langages, qui couvrent chacun toute l'API : choisissez celui que vous écrivez déjà.
| Langage | Package | Registre | Version | Environnement d'exécution |
|---|---|---|---|---|
| Node.js | @wajub/node | npm | 2.0.0 | Node 18+ |
| Python | wajub | PyPI | 1.2.1 | Python 3.10+, httpx |
| PHP | wajub/wajub-php | Packagist | 2.0.1 | PHP 8.4+, Guzzle 8.2 |
| Go | github.com/wajubhq/wajub-go | Go modules | v1.2.1 | Go 1.22+ |
| Ruby | wajub | RubyGems | 1.3.0 | Ruby 3.1+, aucune gem d'exécution |
| Java | com.wajub:wajub-java | Maven Central | 1.1.1 | Java 17+, OkHttp |
| C# and .NET | Wajub | NuGet | 1.1.1 | .NET 8+ |
Si votre version est inférieure au minimum, appelez directement l'API REST. Elle utilise HTTPS et JSON. Chaque endpoint de ce site fournit un exemple brut.
Le même appel de sept façons
Créez un paiement, puis recevez un jeton pour le navigateur et une URL de redirection.
curl https://api.wajub.com/payments \
-H "Authorization: sk_test.xxxxxxxxxxxxxxxx…" \
-H "Content-Type: application/json" \
-d '{"amount": 15000, "currency": "XAF", "customer": {"email": "buyer@example.com"}}'Ruby, Java et C# fonctionnent de la même façon selon leurs propres conventions. Chacun dispose de sa page : Ruby, Java, C#.
Fonctionnalités de chaque SDK serveur
Le client est organisé par ressources : un objet par ressource de l'API.
| Groupe | Ressources |
|---|---|
| Entrées d'argent | payments, refunds, disputes, links, invoices |
| Sorties d'argent | transfers, beneficiaries, balance |
| Personnes et comptes | customers, accounts, identity |
| Risque et conformité | shield, tax |
| Infrastructure | events, webhooks, webhookEndpoints, global |
Autour d'elles, chaque SDK serveur vous fournit :
- Votre propre
Idempotency-Keysur tout appel de modification, quand vous en avez besoin. - Une classe d'erreur par type d'échec pour distinguer l'authentification, la validation, la limite de requêtes et le transport avant même de lire le message.
- Des listes que vous parcourez d'une page à l'autre.
- Vérification de signature des webhooks pour sécuriser en un appel l'endpoint qui reçoit les événements.
- Une référence de compte Sync par requête pour les plateformes qui débitent au nom de leurs marchands.
Le nommage suit chaque langage : snake_case en Python et Ruby, camelCase ailleurs (méthodes PHP
comprises, listRefunds). Le format
d'échange reste en snake_case. Consultez les Conventions de nommage des SDKs.
Dans le navigateur
Ces packages affichent un checkout. Ils ne détiennent jamais de clé et ne peuvent ni rembourser, ni effectuer un payout, ni lister quoi que ce soit. Votre serveur crée d'abord la session.
| Package | Framework | Version minimale | Version |
|---|---|---|---|
@wajub/js | Vanilla, bundler ou CDN | Un navigateur compatible ES2020, avec un bundler ESM ou le script CDN | 1.8.1 |
@wajub/react | React 18+, Next.js | React 18, React DOM 18 | 1.8.1 |
@wajub/vue | Vue 3.3+, Nuxt | Vue 3.3 | 1.8.1 |
@wajub/svelte | Svelte, SvelteKit | Svelte 4 ou 5 | 1.8.1 |
@wajub/angular | Angular 17+, Angular SSR | Angular 17, @angular/core et @angular/common | 1.8.1 |
Les quatre packages de framework nécessitent l'installation de @wajub/js à leurs côtés.
Toute la section possède sa propre arborescence : Wajub Components.
Dans une application mobile
Une interface de paiement native utilise une session créée par votre serveur. Le client choisit un opérateur, saisit un numéro et approuve depuis son téléphone sans quitter votre application.
| Package | Plateforme | Version | Version minimale |
|---|---|---|---|
wajub_mobile | Flutter | 1.1.1 | Flutter 3.24, Dart 3.5 |
@wajub/react-native | React Native | 1.1.1 | React Native 0.74, React 18, @react-native-community/netinfo et @react-native-async-storage/async-storage. @stripe/stripe-react-native pour les cartes Stripe uniquement |
com.wajub:wajub-mobile-core | Kotlin, toute JVM | 1.2.1 | Java 17, Kotlin 2.0 |
com.wajub:wajub-mobile-compose | Android | 1.2.1 | Android 7.0, API 24, et Jetpack Compose |
WajubMobileUI, WajubMobile | iOS | 1.0.0 | iOS 15, Swift 5.9, Xcode 15 |
Android fournit deux artefacts, généralement nécessaires ensemble
wajub-mobile-compose contient l'interface de paiement Material 3 et dépend de
wajub-mobile-core, une bibliothèque Kotlin et JVM simple, sans l'interface. Utilisez le package
principal seul uniquement si vous créez vous-même l'interface de paiement.
Une interface de paiement, pas un client marchand
Les SDKs mobiles couvrent uniquement les paiements. Les remboursements, payouts, la Facturation, Sync, Shield et les Taxes restent sur votre serveur, avec la clé secrète. Consultez SDKs mobiles.
iOS est un package Swift
Deux produits d'un même package Swift, ajoutés avec Swift Package Manager. WajubMobileUI contient
l'interface de paiement SwiftUI et apporte WajubMobile avec lui. Utilisez WajubMobile seul si
vous créez vous-même l'interface de paiement. Aucun des deux ne dépend de Stripe : pour les cartes
Stripe, votre application fournit un CardCollector. Consultez iOS.
Ce que couvre chaque package
La couverture dépend de l'endroit où le code s'exécute, pas du langage : chaque SDK serveur couvre tous les produits.
| Produit | SDKs serveur | Navigateur | Mobile |
|---|---|---|---|
| Paiements | payments, refunds, disputes, links | Checkout uniquement | Interface de paiement uniquement |
| Facturation | invoices | Non | Non |
| Transferts | transfers, beneficiaries, balance | Non | Non |
| Sync | accounts, avec une référence de compte par requête | Non | Non |
| Shield | shield | Non | Non |
| Taxes | tax | Non | Non |
Chaque SDK serveur propose également customers, identity, events, webhooks,
webhookEndpoints et global.
Les packages pour navigateur et mobile ne sont pas des clients marchands
Ils affichent un paiement pour une session déjà créée par votre serveur. Ils ne permettent ni remboursement, ni payout, ni facture, ni liste de comptes. Ces opérations nécessitent la clé secrète, qui ne quitte jamais votre serveur. Consultez Sessions et sécurité.
Un label d'aperçu ou de bêta concerne le produit, jamais le SDK. La page du produit indique si
shield ou tax est disponible pour votre compte.
Contraintes à connaître avant de choisir
Un autre point est à connaître. La liste des packages ne permet pas de le deviner.
Le chemin du module Go n'est pas celui qu'il semble être
Le chemin d'importation est github.com/wajubhq/wajub-go. L'organisation s'appelle wajubhq.
github.com/wajub/wajub-go ne correspond à rien.
En ligne de commande
@wajub/cli est le seul package de cette page qui n'est pas destiné au code de production. Il
transfère les webhooks vers votre machine, déclenche des événements de test et lit les ressources
de votre API pendant le développement.
| Package | Registry | Version | Runtime |
|---|---|---|---|
@wajub/cli | npm, Homebrew, Scoop | 1.7.4 | Node 22+ |
L'installation et toutes les commandes figurent dans les pages de la CLI.
Sans SDK
Aucun élément de cette page n'est obligatoire. La référence API documente chaque endpoint avec des exemples de requêtes et de réponses. Utilisez-la pour un langage sans package officiel, un environnement qui n'accepte pas de nouvelle dépendance ou si vous préférez voir directement les échanges.
Deux autres décisions à prendre
Choisir le package ne revient pas à choisir l'intégration. Il reste deux décisions distinctes, chacune présentée sur sa propre page.
| Décision | Documentation |
|---|---|
| Page hébergée, intégration en ligne, superposition ou champs personnalisés | Choisir une intégration |
| Adaptation des noms de champs de l'API à votre langage | Conventions de nommage des SDKs |
Pages associées
- Démarrage rapide des SDKsVotre premier appel d'API dans chaque langage, présenté côte à côte.
- Wajub ComponentsCheckout hébergé et champs de paiement dans le navigateur.
- Conventions de nommage des SDKsL'adaptation des champs API en snake_case à chaque langage.
- Projets d'exempleClonez un projet fonctionnel et configurez-le avec vos clés.
- AuthentificationClés publiques, secrètes et restreintes.
- SDKs mobilesUne interface de paiement native pour Flutter, React Native, Android et iOS.
- Vue d'ensemble de la référence APIAucun package nécessaire, tous les endpoints sont accessibles en HTTP brut.