Skip to main content
On an inbound payment, LigdiCash sends two POST requests to your callback_url — one in application/json, one in application/x-www-form-urlencoded. Both contain the same data. This page details the JSON structure.

Full example

Main fields

string
Event timestamp in the format YYYY-MM-DD HH:MM:SS+TZ.
string
Result code. "00" = success. Any other value indicates an error — consult wiki for details.
string
Transaction status: "completed", "pending", or "notcompleted". Base your business logic on this field.
integer
Transaction amount in XOF.
integer
Same as amount. Both fields coexist in all LigdiCash responses.
string
Payer’s phone number, with country code, no + or spaces.
string
Unique request identifier generated by LigdiCash. Use it for deduplication when custom_data is empty or unavailable.
string
Concatenation of the values of all custom_data fields whose key contains "id". Can be reliable if you only have one field with "id" in the name — but parse custom_data directly for a guaranteed result.
string
Always empty (""). This field cannot be used for verification — use the token stored at transaction creation.
string
Identifier of the operator that processed the payment (e.g. "11" for Orange Burkina).
string
Operator name (e.g. "ORANGE BURKINA").
string
Transaction description. Can be empty.
string
Operator reference. Can be empty.
string
Textual label of the result. Can be empty.
string
URL to the documentation of error codes for this endpoint. Consult when response_code !== "00".

The custom_data array

array
Array of custom data associated with the transaction. Contains your merchant fields plus the fields automatically added by LigdiCash.
LigdiCash systematically adds two entries to your custom_data: Always filter on keyof_customdata to extract your own fields. See Parse custom_data.

Customer information

object
Payer information when available.