Когда вы делаете успешный запрос, в блоке onResponse анализируйте ответ json и извлекайте CheckoutRequestID. Сохраняйте ссылку на него, тогда при создании запроса статуса вы можете использовать его по мере необходимости.
mApiClient.mpesaService().sendPush(stkPush).enqueue(new Callback<STKPush>() {
@Override
public void onResponse(@NonNull Call<STKPush> call, @NonNull Response<STKPush> response) {
try {
if (response.isSuccessful()) {
//Parse JSON response here to extract CheckoutRequestID
} else {
}
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void onFailure(@NonNull Call<STKPush> call, @NonNull Throwable t) {
//handle error
}
});
Начиная с mpesa api docs пример принятого ответа на запрос выглядит следующим образом
{
"Body":{
"stkCallback":{
"MerchantRequestID":"19465-780693-1",
"CheckoutRequestID":"ws_CO_27072017154747416",
"ResultCode":0,
"ResultDesc":"The service request is processed successfully.",
"CallbackMetadata":{
"Item":[
{
"Name":"Amount",
"Value":1
},
{
"Name":"MpesaReceiptNumber",
"Value":"LGR7OWQX0R"
},
{
"Name":"Balance"
},
{
"Name":"TransactionDate",
"Value":20170727154800
},
{
"Name":"PhoneNumber",
"Value":254721566839
}
]
}
}
}
}