Créer un virement
Crée un nouveau virement depuis le portefeuille d'un magasin vers un contact bénéficiaire. **Flux de virement :** 1. Spécifiez le magasin depuis lequel transférer les fonds 2. Spécifiez le contact (bénéficiaire) qui recevra les fonds 3. Spécifiez le montant en centimes 4. Le système déduit automatiquement les frais et traite le virement **Méthodes de virement prises en charge :** - **Mobile Money** : Wave, Orange Money, MTN Mobile Money, Moov Money, DJAMO - **Compte bancaire** : Virements bancaires via RIB **Cas d'usage :** - Paiements de salaires - Paiements aux fournisseurs - Demandes de retrait d'espèces des clients - Virements entre entreprises **Notes importantes :** - Le magasin doit appartenir à l'entreprise authentifiée - Le contact doit appartenir à l'entreprise authentifiée - Un solde suffisant doit être disponible dans le portefeuille du magasin - Les frais de virement sont automatiquement calculés et déduits - Si vous envoyez un champ `reference`, utilisez une valeur unique par tentative de transfert ; une valeur déjà utilisée renvoie `409 Conflict` - La `reference` est renvoyée dans les réponses de l’API Partenaire et dans les payloads webhook de transaction lorsqu’elle a été fournie à la création
Crée un nouveau virement depuis le portefeuille d'un magasin vers un contact bénéficiaire.
Flux de virement :
- Spécifiez le magasin depuis lequel transférer les fonds
- Spécifiez le contact (bénéficiaire) qui recevra les fonds
- Spécifiez le montant en centimes
- Le système déduit automatiquement les frais et traite le virement
Méthodes de virement prises en charge :
- Mobile Money : Wave, Orange Money, MTN Mobile Money, Moov Money, DJAMO
- Compte bancaire : Virements bancaires via RIB
Cas d'usage :
- Paiements de salaires
- Paiements aux fournisseurs
- Demandes de retrait d'espèces des clients
- Virements entre entreprises
Notes importantes :
- Le magasin doit appartenir à l'entreprise authentifiée
- Le contact doit appartenir à l'entreprise authentifiée
- Un solde suffisant doit être disponible dans le portefeuille du magasin
- Les frais de virement sont automatiquement calculés et déduits
- Si vous envoyez un champ
reference, utilisez une valeur unique par tentative de transfert ; une valeur déjà utilisée renvoie409 Conflict - La
referenceest renvoyée dans les réponses de l’API Partenaire et dans les payloads webhook de transaction lorsqu’elle a été fournie à la création
Clé API pour les requêtes de l'API Partenaire
In: header
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/partner_api/transfers" \ -H "Content-Type: application/json" \ -d '{ "storeId": "59ae202a-f583-4a15-970f-9e99bd1e0baa", "contactId": "29f81706-03a6-492f-92ee-5f0b2e9b18e7", "amountCents": 50000, "currency": "XOF", "description": "Monthly salary payment", "reference": "PAYROLL-APR-001" }'{
"id": "wth_abc123def456",
"storeId": "59ae202a-f583-4a15-970f-9e99bd1e0baa",
"contactId": "29f81706-03a6-492f-92ee-5f0b2e9b18e7",
"amount": {
"amount": 50000,
"currency": "XOF"
},
"fees": {
"amount": 500,
"currency": "XOF"
},
"status": "pending",
"paymentMethod": "wave",
"beneficiary": "+2250701234567",
"description": "Monthly salary payment",
"reference": "PAYROLL-APR-001",
"createdAt": "2024-01-15T14:30:25.000Z"
}{
"id": "insufficient_balance",
"message": "Insufficient balance",
"extras": "Wallet balance is not sufficient for this transfer"
}{
"id": "unauthorized",
"message": "Unauthorized",
"extras": "Détails supplémentaires de l'erreur"
}{
"id": "store_not_found",
"message": "Store not found",
"extras": "Store not found"
}{
"id": "transfer_exists_with_reference",
"message": "Un virement avec cette référence existe déjà",
"extras": "Un virement avec cette référence existe déjà"
}{
"id": "validation_error",
"message": "Échec de la validation",
"extras": {
"errors": [
{
"field": "paymentDetails.data.paymentMethod",
"rule": "in",
"message": "The paymentDetails.data.paymentMethod must be one of the following: orange, wave, mtn, moov, djamo"
},
{
"field": "paymentDetails.data.deviceId",
"rule": "required",
"message": "The paymentDetails.data.deviceId field is required when paymentDetails.type is soundbox"
}
]
}
}{
"id": "internal_error",
"message": "Une erreur inattendue s'est produite",
"extras": "Détails supplémentaires de l'erreur"
}Lister les transactions du magasin GET
Retourne une liste paginée de transactions dans une plage de dates. Peut être filtrée par magasin. **Informations sur les transactions :** - Inclut les types de transactions : paiements et virements - Les transactions sont ordonnées par date de création (plus récentes en premier) - Chaque transaction inclut le montant, les frais, le statut et les informations de la contrepartie **Plage de dates :** - Par défaut : 7 derniers jours si startDate et endDate ne sont pas fournis - Plage de dates maximale : 90 jours - La date de fin doit être postérieure ou égale à la date de début - Format de date : YYYY-MM-DD **Pagination :** - Page par défaut : 1 - Limite par défaut : 100 transactions par page - Limite maximale par page : 100 transactions - Utilisez le paramètre page pour naviguer dans les résultats **Cas d'usage :** - Générer des rapports de transactions pour la comptabilité - Réconcilier les paiements et virements - Afficher l'historique des transactions dans votre application - Exporter les données de transaction pour analyse **Authentification :** Nécessite les en-têtes de clé API.
Obtenir un virement par ID GET
Récupère un virement par son ID, incluant le statut actuel et les détails de la transaction. **Authentification :** - Nécessite les en-têtes de clé API `X-API-KEY` et `X-API-KEY-ID` **Contrôle d'accès :** - Ne retourne que les virements qui appartiennent à l'entreprise authentifiée