lomi.
Payment details

Paiements directs

Initiez des paiements directs avec des prestataires spécifiques comme Wave.

L’API Charges permet d’initier des paiements directs avec des prestataires donnés. Utile pour un tunnel personnalisé ou pour débiter un client sans le rediriger tout de suite vers un tunnel hébergé (certains prestataires comme Wave peuvent tout de même renvoyer une URL de paiement).

Les opérateurs lomi. Network peuvent ajouter Lomi-Account: acct_... pour créer des charges carte, Wave ou MTN pour un compte membre connecté. L’adhésion doit avoir payment.create.

Créer une charge Wave

Initie une demande de paiement spécifiquement pour Wave Mobile Money.

Endpoint

POST /charge/wave

Corps de la requête

ChampTypeObligatoireDescription
amountnumberOuiMontant à débiter (minimum 100).
currencystringOuiCode devise (doit être XOF).
customerobjectOuiObjet détails client.
customer.namestringOuiNom complet du client.
customer.emailstringNonAdresse e-mail du client.
customer.phoneNumberstringNonNuméro de téléphone (ex. +2250102030405).
descriptionstringNonDescription de la charge.
successUrlstringNonURL de redirection après paiement réussi.
errorUrlstringNonURL de redirection après échec du paiement.
environmentstringNonlive ou test (par défaut live).
curl -X POST "https://api.lomi.africa/charge/wave" \
  -H "Content-Type: application/json" \
  -H "X-API-KEY: $LOMI_SECRET_KEY" \
  -d '{
    "amount": 1000,
    "currency": "XOF",
    "customer": {
      "name": "Jane Doe",
      "email": "jane@example.com",
      "phoneNumber": "+2250707070707"
    },
    "description": "Paiement pour le service",
    "successUrl": "https://your-site.com/success",
    "errorUrl": "https://your-site.com/error"
  }'
const response = await fetch('https://api.lomi.africa/charge/wave', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
    'X-API-KEY': process.env.LOMI_SECRET_KEY!,
  },
  body: JSON.stringify({
    amount: 1000,
    currency: 'XOF',
    customer: {
      name: 'Jane Doe',
      email: 'jane@example.com',
      phoneNumber: '+2250707070707',
    },
    description: 'Paiement pour le service',
    successUrl: 'https://your-site.com/success',
    errorUrl: 'https://your-site.com/error',
  }),
});

const data = await response.json();
import requests
import os

url = "https://api.lomi.africa/charge/wave"
headers = {
    "Content-Type": "application/json",
    "X-API-KEY": os.environ["LOMI_SECRET_KEY"]
}
payload = {
    "amount": 1000,
    "currency": "XOF",
    "customer": {
        "name": "Jane Doe",
        "email": "jane@example.com",
        "phoneNumber": "+2250707070707"
    },
    "description": "Paiement pour le service",
    "successUrl": "https://your-site.com/success",
    "errorUrl": "https://your-site.com/error"
}

response = requests.post(url, json=payload, headers=headers)
data = response.json()

Réponse

Renvoie un statut 201 Created avec les détails de la session Wave et l’URL de paiement.

{
  "transactionId": "1a0a4df9-ae73-4776-b955-57522625421c",
  "checkoutUrl": "https://pay.wave.com/c/cos-22txmv4682mee?...",
  "waveSession": {
    "id": "cos-22txmv4682mee",
    "amount": "1000",
    "checkout_status": "open",
    "payment_status": "processing",
    "currency": "XOF",
    "aggregated_merchant_id": "am-1wfm8v3z023p4",
    ...
  }
}

Réponses d’erreur

StatutDescription
400Requête incorrecte (ex. configuration prestataire manquante, montant invalide).
401Non autorisé (clé API invalide).
500Erreur serveur interne (échec du prestataire de paiement).

Charge carte embarquée

Créez un paiement carte et récupérez un client_secret pour votre propre UI de checkout.

Endpoints

MéthodeChemin
POST/charge/card
GET/charge/card/{id}
POST/charge/card/{id}/cancel
const res = await lomi.charges.createCardCharge({
  amount: 10000,
  currency_code: 'XOF',
  customer_email: 'buyer@example.com',
  customer_name: 'Buyer Name',
});
// res.data.client_secret → confirmer côté client avec votre clé publiable

Voir Créer une charge carte et lomi Payment Elements.

Exemple réseau :

curl -X POST "https://api.lomi.africa/charge/card" \
  -H "X-API-KEY: $LOMI_OPERATOR_API_KEY" \
  -H "Lomi-Account: acct_1234567890" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 10000,
    "currency_code": "XOF",
    "customer_email": "buyer@example.com",
    "customer_name": "Buyer Name"
  }'

Implémentation de référence

Démo minimale exécutable (Wave, MTN, carte via Payment Elements @lomi./sdk) dans le monorepo :

Pour les sessions checkout hébergées, voir payment-integration-sdk-reference.

Charge directe MTN

POST /charge/mtn, même schéma que Wave ; voir Créer une charge MTN.

Sur cette page