deadangroup/mpesa — Safaricom DARAJA API
Namespace: DGL\Mpesa
Base URLs: sandbox.safaricom.co.ke (sandbox) / api.safaricom.co.ke (production)
// config/mpesa.php
return [
'is_sandbox' => true,
'apps' => [
'default' => [
'consumer_key' => '...',
'consumer_secret' => '...',
],
],
'lnmo' => [
'short_code' => 174379,
'passkey' => '...',
'callback' => '...',
],
];
$client->STKPush([
'Amount' => 1000,
'PhoneNumber' => '254712345678',
'AccountReference' => 'INV001',
'TransactionDesc' => 'Payment for invoice',
]);
$client->STKStatus([
'CheckoutRequestID' => 'ws_CO_...',
]);
$client->B2C([
'Amount' => 500,
'PartyB' => '254712345678',
'Remarks' => 'Salary payment',
'ResultURL' => 'https://...',
'QueueTimeOutURL' => 'https://...',
]);
$client->B2B([
'Amount' => 10000,
'PartyB' => '600000',
'AccountReference' => 'INV001',
'ResultURL' => 'https://...',
'QueueTimeOutURL' => 'https://...',
]);
$client->C2BRegister([
'ShortCode' => '600000',
'ResponseType' => 'Completed',
'ConfirmationURL' => 'https://...',
'ValidationURL' => 'https://...',
]);
$client->accountBalance([
'ResultURL' => 'https://...',
'QueueTimeOutURL' => 'https://...',
]);
$client->transactionStatus([
'TransactionID' => 'OEI2AK4Q16',
'ResultURL' => 'https://...',
'QueueTimeOutURL' => 'https://...',
]);
$client->reversal([
'TransactionID' => 'OEI2AK4Q16',
'ResultURL' => 'https://...',
'QueueTimeOutURL' => 'https://...',
'Remarks' => 'Wrong transaction',
]);