Passer au contenu principal

Identité

ChampValeur
PaysBurkina Faso
OpérateurOrange Burkina
operator_id11
operator_nameORANGE BURKINA
Indicatif+226
Format du numéro22670XXXXXXX (sans + ni espaces)
EndpointPOST /pay/v01/straight/checkout-invoice/create
Mode de validationOTP USSD

Mode de validation : OTP USSD

Le client génère son OTP en composant le code USSD *144*4*6# sur son téléphone avant de vous le communiquer. Vous soumettez une seule requête avec le numéro et l’OTP. L’opérateur valide la transaction côté réseau — ce traitement peut prendre quelques secondes à plusieurs minutes. Le callback est la source de vérité.
Affichez le code USSD à composer (*144*4*6#) avec des instructions claires avant que le client ne remplisse le formulaire. L’OTP généré a une durée de validité courte — invitez le client à le saisir immédiatement.

UX recommandée

1

Afficher les instructions USSD

Avant tout formulaire, indiquez au client de composer *144*4*6# sur son téléphone Orange. Un code OTP à usage unique s’affiche sur son écran.
2

Collecter le numéro et l'OTP

Votre formulaire recueille en même temps :
  • le numéro de téléphone Orange au format 22670XXXXXXX
  • le code OTP reçu via USSD
3

Soumettre la requête

Une seule requête API avec customer et otp renseignés.
4

Afficher un indicateur d'attente

La validation par l’opérateur peut prendre de quelques secondes à plusieurs minutes. Affichez un état d’attente et attendez le callback.

Exemple de requête

curl -X POST https://app.ligdicash.com/pay/v01/straight/checkout-invoice/create \
  -H "Apikey: {API_KEY}" \
  -H "Authorization: Bearer {API_TOKEN}" \
  -H "Accept: application/json" \
  -H "Content-Type: application/json" \
  -d '{
    "commande": {
      "invoice": {
        "items": [],
        "total_amount": 5000,
        "devise": "XOF",
        "description": "Abonnement Pro — Janvier 2025",
        "customer": "22670000000",
        "customer_firstname": "Amadou",
        "customer_lastname": "Diallo",
        "customer_email": "amadou@exemple.com",
        "external_id": "",
        "otp": "123456"
      },
      "store": {
        "name": "MonApp",
        "website_url": "https://monapp.com"
      },
      "actions": {
        "cancel_url": "",
        "return_url": "",
        "callback_url": "https://monapp.com/api/callback/ligdicash"
      },
      "custom_data": {
        "transaction_id": "ORD-2025-00042"
      }
    }
  }'
const response = await fetch(
  "https://app.ligdicash.com/pay/v01/straight/checkout-invoice/create",
  {
    method: "POST",
    headers: {
      Apikey: process.env.LIGDICASH_API_KEY,
      Authorization: `Bearer ${process.env.LIGDICASH_API_TOKEN}`,
      Accept: "application/json",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
      commande: {
        invoice: {
          items: [],
          total_amount: 5000,
          devise: "XOF",
          description: "Abonnement Pro — Janvier 2025",
          customer: "22670000000",
          customer_firstname: "Amadou",
          customer_lastname: "Diallo",
          customer_email: "amadou@exemple.com",
          external_id: "",
          otp: "123456",
        },
        store: { name: "MonApp", website_url: "https://monapp.com" },
        actions: {
          cancel_url: "",
          return_url: "",
          callback_url: "https://monapp.com/api/callback/ligdicash",
        },
        custom_data: { transaction_id: "ORD-2025-00042" },
      },
    }),
  }
);

const data = await response.json();
$payload = [
  "commande" => [
    "invoice" => [
      "items" => [],
      "total_amount" => 5000,
      "devise" => "XOF",
      "description" => "Abonnement Pro — Janvier 2025",
      "customer" => "22670000000",
      "customer_firstname" => "Amadou",
      "customer_lastname" => "Diallo",
      "customer_email" => "amadou@exemple.com",
      "external_id" => "",
      "otp" => "123456",
    ],
    "store" => ["name" => "MonApp", "website_url" => "https://monapp.com"],
    "actions" => [
      "cancel_url" => "",
      "return_url" => "",
      "callback_url" => "https://monapp.com/api/callback/ligdicash",
    ],
    "custom_data" => ["transaction_id" => "ORD-2025-00042"],
  ],
];

$ch = curl_init("https://app.ligdicash.com/pay/v01/straight/checkout-invoice/create");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
  "Apikey: " . $_ENV["LIGDICASH_API_KEY"],
  "Authorization: Bearer " . $_ENV["LIGDICASH_API_TOKEN"],
  "Accept: application/json",
  "Content-Type: application/json",
]);

$data = json_decode(curl_exec($ch), true);
curl_close($ch);

Réponse attendue

{
  "response_code": "00",
  "token": "eyJ0eXAiOiJKV1Qi...",
  "response_text": "Votre requête est en cours de traitement",
  "wiki": "https://client.ligdicash.com/wiki/createInvoice"
}
{
  "response_code": "01",
  "token": "",
  "response_text": "Echec (Code00)",
  "wiki": "https://client.ligdicash.com/wiki/createInvoice"
}
Stockez le token immédiatement après la création. Utilisez-le pour appeler confirm à la réception du callback — ne vous fiez pas au token présent dans le payload du callback.

Limites

ParamètreValeur
Montant minimum10 XOF
Montant maximum2 000 000 XOF
Limite quotidienne

Pages associées