# daraja-package

You can install the package by entering the following commands to the shell

```
npm i @allan70/daraja-package
```

# Package Usage

The package can be used by using the ``require()`` function

```JS
const daraja = require(`@allan70/daraja-package`);
```

## M-Pesa Paybill 

When making a paybill transaction, you will need to create a JSON body that will be executed by the ``daraja.payBill()`` function.

```JS
//Paybill body
const payBillBody = {
    "phoneNumber": req.body.phone,
    "amountFromUser": req.body.amount,
    "businessNumber": req.body.payBillNumber,
    "mpesaPassword": req.body.mpesaPassword,
    "secret": req.body.secret,
    "consumer": req.body.consumer,
    "callback_URL": req.body.callbackURL,
    "account_reference": req.body.account_reference,
    "transaction_desc": req.body.transaction_desc
};

daraja.payBill(payBillBody);

```

The function will then execute the JSON to return a receipt object.

# Receipts

On making a payment to M-Pesa you will need to receive the transaction information in receipt form. The receipt form will have details such as: the mpesa message number, the amount , status of the transaction , the time the transaction took place and the m-pesa account that made the transaction.

```JS
daraja.receipt('/callback_url', 3000)
```

You will set the endpoint of your callback_url and the port number of the callback url. Ultimately, his is a standalone server function that should start a server that will receive the daraja transactions in the end and produce a JSON object of the transaction as the result.

When running tests you can use an NGROK tuneling tool to provide a url that will be linked to the port number entered ito the ``daraja.receipt()``function.
