1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
//!# MPESA Services
//! Using the builder pattern in this to procedurally build Mpesa service specific payloads which are
//! ultimately consumed and the request sent by calling the `send` method.
//! Some of the builder methods for certain services are optional with default values standing in
//! their place when the builder gets consumed
//!
//! Here are the currently available services:
//! 1. [Account Balance](https://developer.safaricom.co.ke/docs#account-balance-api)
//! 2. [B2B](https://developer.safaricom.co.ke/docs#b2b-api)
//! 3. [B2C](https://developer.safaricom.co.ke/docs?shell#b2c-api)
//! 4. [C2B Register](https://developer.safaricom.co.ke/docs?shell#c2b-api)
//! 5. [C2B Simulate](https://developer.safaricom.co.ke/docs#account-balance-api)
//! 6. [Mpesa Express/ STK Push](https://developer.safaricom.co.ke/docs#lipa-na-m-pesa-online-payment)
//! 7. [Transaction Reversal](https://developer.safaricom.co.ke/docs#reversal)
//! 8. [Bill Manager](https://developer.safaricom.co.ke/APIs/BillManager)
//! 9. [Transaction Status](https://developer.safaricom.co.ke/docs#transaction-status)
//! 10. [Dynamic QR](https://developer.safaricom.co.ke/APIs/DynamicQRCode)

mod account_balance;
mod b2b;
mod b2c;
mod bill_manager;
mod c2b_register;
mod c2b_simulate;
mod dynamic_qr;
mod express_request;
mod transaction_reversal;
mod transaction_status;

#[cfg(feature = "account_balance")]
pub use account_balance::{AccountBalanceBuilder, AccountBalanceResponse};
#[cfg(feature = "b2b")]
pub use b2b::{B2bBuilder, B2bResponse};
#[cfg(feature = "b2c")]
pub use b2c::{B2cBuilder, B2cResponse};
#[cfg(feature = "bill_manager")]
pub use bill_manager::*;
#[cfg(feature = "c2b_register")]
pub use c2b_register::{C2bRegisterBuilder, C2bRegisterResponse};
#[cfg(feature = "c2b_simulate")]
pub use c2b_simulate::{C2bSimulateBuilder, C2bSimulateResponse};
#[cfg(feature = "dynamic_qr")]
pub use dynamic_qr::{DynamicQR, DynamicQRBuilder, DynamicQRRequest, DynamicQRResponse};
#[cfg(feature = "express_request")]
pub use express_request::{MpesaExpressRequestBuilder, MpesaExpressRequestResponse};
#[cfg(feature = "transaction_reversal")]
pub use transaction_reversal::{TransactionReversalBuilder, TransactionReversalResponse};
#[cfg(feature = "transaction_status")]
pub use transaction_status::{TransactionStatusBuilder, TransactionStatusResponse};