0.0.2 • Published 3 years ago
micro-payment v0.0.2
MICRO PAYMENT
Requirements
python --version >= 3.6
on your machine or download.pip install pycrypto
to installpycrypto
or visit.node -v >= 10
on your machine or download
NOTE
For MPESA API's don't forget to add app type on every transaction request object, app can be either sandbox for development environment or openapi for production (live) enviroment.
All transactions runs asynchronus and returns promise so you've to await to get results.
Installation
npm install micro-payment
NPM
Usage
const { MPESA } = require('micro-payment')
1. MPESA.c2b()
2. MPESA.b2c()
3. MPESA.b2b()
4. MPESA.status()
5. MPESA.reverse()
Environment Variables
Add your API_KEY
and PUBLIC_KEY
on enviroment variables .env
file before processing any transaction.
API_KEY = YOUR API KEY
PUBLIC_KEY = YOUR PUBLIC KEY
Customer to Business Transaction (C2B)
- Sample c2b request object
const client = {
input_Amount: '1000',
input_CustomerMSISDN: '000000000001',
input_PurchasedItemsDesc: 'Donation',
input_ServiceProviderCode: '000000',
input_ThirdPartyConversationID: '1e9b774d1da34af78412a498cbc28f5e',
input_TransactionReference: 'T12344C',
app: 'sandbox'
}
- Sample c2b request
setTimeout(async () => {
console.log(await MPESA.c2b(client))
}, 1000)
- Sample c2b success response object
{
output_ResponseCode: 'INS-0',
output_ResponseDesc: 'Request processed successfully',
output_TransactionID: '2ACKKiGq2r0g',
output_ConversationID: 'bc31410c6f4b49c1ba5e1f569415a8cb',
output_ThirdPartyConversationID: '1e9b774d1da34af78412a498cbc28f5e'
}
- Sample c2b failure response
returns false
andlog
theerror message
on theconsole
Business to Customer Transaction (B2C)
- Sample b2c request object
const client = {
input_Amount: '1000',
input_CustomerMSISDN: '000000000001',
input_PaymentItemsDesc: 'Salary payment',
input_ServiceProviderCode: '000000',
input_ThirdPartyConversationID: '1e9b774d1da34af78412a498cbc28f5e',
input_TransactionReference: 'T12344C',
app: 'sandbox'
}
- Sample b2c request
setTimeout(async () => {
console.log(await MPESA.b2c(client))
}, 1000)
- Sample b2c success response object
{
output_ResponseCode: 'INS-0',
output_ResponseDesc: 'Request processed successfully',
output_TransactionID: '3Clqxpxmy94Y',
output_ConversationID: '55b5c84a08774320a80c3943518ab442',
output_ThirdPartyConversationID: '1e9b774d1da34af78412a498cbc28f5e'
}
- Sample b2c failure response
returns false
andlog
theerror message
on theconsole
Business to Business Transaction (B2B)
- Sample b2b request object
const client = {
input_Amount: '100',
input_PrimaryPartyCode: '000000',
input_ReceiverPartyCode: '000001',
input_PurchasedItemsDesc: 'Shoes',
input_ThirdPartyConversationID: '1e9b774d1da34af78412a498cbc28f5e',
input_TransactionReference: 'T12344C',
app: 'sandbox'
}
- Sample b2b request
setTimeout(async () => {
console.log(await MPESA.b2b(client))
}, 1000)
- Sample b2b success response object
{
output_ResponseCode: 'INS-0',
output_ResponseDesc: 'Request processed successfully',
output_TransactionID: '1RDHPRu6Su1H',
output_ConversationID: '09f5de8d76b541288b5291f84e993bc8',
output_ThirdPartyConversationID: '1e9b774d1da34af78412a498cbc28f5e'
}
- Sample b2b failure response
returns false
andlog
theerror message
on theconsole
Transaction Status
- Sample status request object
const client = {
input_QueryReference: '000000000000000000001',
input_ServiceProviderCode: '000000',
input_ThirdPartyConversationID: 'asv02e5958774f7ba228d83d0d689761',
app: 'sandbox'
}
- Sample status request
setTimeout(async () => {
console.log(await MPESA.status(client))
}, 1000)
- Sample status success response object
{
output_ResponseCode: 'INS-0',
output_ResponseDesc: 'Request processed successfully',
output_ResponseTransactionStatus: 'Completed',
output_ConversationID: '4cb66a7c16b44e01831d942f13f398bc',
output_ThirdPartyConversationID: 'asv02e5958774f7ba228d83d0d689761'
}
- Sample status failure response
returns false
andlog
theerror message
on theconsole
Reverse Successfull Transaction
- Sample reverse request object
const client = {
input_ReversalAmount: '25',
input_ServiceProviderCode: '000000',
input_ThirdPartyConversationID: 'asv02e5958774f7ba228d83d0d689762',
input_TransactionID: '0000000000001',
app: 'sandbox'
}
- Sample reverse request
setTimeout(async () => {
console.log(await MPESA.reverse(client))
}, 1000)
- Sample reverse success response object
{
output_ResponseCode: 'INS-0',
output_ResponseDesc: 'Request processed successfully',
output_TransactionID: 'OATXGi21bMhg',
output_ConversationID: '66cbb65bd72a493baed79235f77af4b9',
output_ThirdPartyConversationID: 'asv02e5958774f7ba228d83d0d689762'
}
- Sample reverse failure response
returns false
andlog
theerror message
on theconsole
MPESA API Features
- Customer to Business (C2B)
- Business to Customer (B2C)
- Business to Business (B2B)
- Transaction Status
- Reversal
- Direct Debit Create
- Direct Debit Payment