Skip to main content

Documentation Index

Fetch the complete documentation index at: https://developers.ligdicash.com/llms.txt

Use this file to discover all available pages before exploring further.

Identity

FieldValue
CountrySenegal
OperatorWave Senegal
operator_id39
operator_nameWAVE SENEGAL
Country code+221
Number format221XXXXXXXXX (no + or spaces)
EndpointPOST /pay/v01/straight/checkout-invoice/create
Validation modeLigdiCash redirect

Validation mode: LigdiCash redirect

For Wave Senegal, the LigdiCash integration currently goes through a dedicated LigdiCash web page, rather than direct API processing. The flow is:
  1. You call /pay/v01/straight/checkout-invoice/create with the customer’s number in customer and otp: "".
  2. LigdiCash responds with the transaction token and a response_text field containing the URL of a LigdiCash payment page where the number is pre-filled and only Wave Senegal is offered.
  3. You redirect the customer’s browser to that URL.
  4. The customer confirms the payment from the LigdiCash page and the payment proceeds following the operator’s own flow.
  5. LigdiCash notifies you of the final result via your callback_url.
Pre-filling customer with the customer’s number is mandatory. Without customer, the number-based filtering does not work and the payment page will not display Wave Senegal correctly.
This mode does use the /straight/checkout-invoice/create endpoint (direct payin). Do not confuse this with hosted payin, which uses a distinct endpoint and exposes a multi-operator payment page.
1

Collect the customer's number

Your form collects the Wave Senegal phone number.
2

Submit the request

Request to POST /pay/v01/straight/checkout-invoice/create with customer filled and otp: "".
3

Retrieve the LigdiCash page URL

In the response, the response_text field contains the URL of the dedicated LigdiCash payment page.
4

Redirect the customer

Redirect the customer’s browser to that URL. The page shows the pre-filled number and Wave Senegal pre-selected.
5

Wait for the callback

The final result arrives via your callback_url. Show a waiting state — do not rely on the browser-side return.

Request example

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": "Pro Subscription — January 2025",
        "customer": "221770000000",
        "customer_firstname": "Aminata",
        "customer_lastname": "Diop",
        "customer_email": "aminata@example.com",
        "external_id": "",
        "otp": ""
      },
      "store": {
        "name": "MyApp",
        "website_url": "https://myapp.com"
      },
      "actions": {
        "cancel_url": "",
        "return_url": "",
        "callback_url": "https://myapp.com/api/callback/ligdicash"
      },
      "custom_data": {
        "transaction_id": "ORD-2025-00065"
      }
    }
  }'

Expected response

{
  "response_code": "00",
  "token": "eyJ0eXAiOiJKV1Qi...",
  "response_text": "https://app.ligdicash.com/pay/.../checkout/...",
  "description": "",
  "custom_data": {
    "transaction_id": "ORD-2025-00065"
  },
  "wiki": "https://client.ligdicash.com/wiki/createInvoice"
}
Redirect the customer to the URL in response_text. The payment page will only show Wave Senegal with the pre-filled number.
Store the token immediately after creation. Use it to call confirm when the callback is received — never rely on the token in the callback payload.

Limits

ParameterValue
Minimum amount
Maximum amount
Daily limit