PHPackages                             azmolla/fraud-checker-bd-courier - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. azmolla/fraud-checker-bd-courier

AbandonedLibrary[Utility &amp; Helpers](/categories/utility)

azmolla/fraud-checker-bd-courier
================================

A fraud detection tool for e-commerce platforms to analyze customer order behavior across Steadfast, RedX and Pathao couriers.

v2.0.2(1mo ago)4261GPL-3.0PHPPHP ^8.2.0

Since Mar 2Pushed 1mo agoCompare

[ Source](https://github.com/AbiruzzamanMolla/Fraud-Checker-BD-Courier)[ Packagist](https://packagist.org/packages/azmolla/fraud-checker-bd-courier)[ Docs](https://github.com/AbiruzzamanMolla/Fraud-Checker-BD-Courier)[ RSS](/packages/azmolla-fraud-checker-bd-courier/feed)WikiDiscussions main Synced 1mo ago

READMEChangelogDependencies (8)Versions (13)Used By (0)

🛡️ Fraud Checker BD Courier
===========================

[](#️-fraud-checker-bd-courier)

**A powerful framework-agnostic PHP package to analyze customer delivery behavior across top Bangladeshi courier services. (Fully supports Laravel out-of-the-box!)**

[![Latest Version on Packagist](https://camo.githubusercontent.com/ae8e4a8bff6f1689a4538588c079d65432f98cb84d6482b0360a91196ee2f8e5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f617a6d6f6c6c612f66726175642d636865636b65722d62642d636f75726965722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/azmolla/fraud-checker-bd-courier)[![Total Downloads](https://camo.githubusercontent.com/1ba37fe984212afa8f7f1939b52fdba36718f20582d61c4f51984d5dbffb6884/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f617a6d6f6c6c612f66726175642d636865636b65722d62642d636f75726965722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/azmolla/fraud-checker-bd-courier)[![License](https://camo.githubusercontent.com/8bd52521024085e61f78a436aebae7ce50a900a082c1e417f96e205b93a9f9eb/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f617a6d6f6c6c612f66726175642d636865636b65722d62642d636f75726965722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/azmolla/fraud-checker-bd-courier)[![PHP Version Require](https://camo.githubusercontent.com/10289cef937a455c4def656abf8498017d3209756e57ba0afd0bdfb3971f388f/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f7068702d762f617a6d6f6c6c612f66726175642d636865636b65722d62642d636f75726965723f7374796c653d666c61742d737175617265)](https://packagist.org/packages/azmolla/fraud-checker-bd-courier)

---

📌 Introduction
--------------

[](#-introduction)

E-commerce businesses in Bangladesh often face significant losses due to fraudulent orders and high return rates. **Fraud Checker BD Courier** protects your bottom line by instantly analyzing a customer's track record across major logistics providers (**Steadfast**, **Pathao**, and **RedX**).

By checking a simple phone number, you get immediate insights into a customer's success and cancellation ratios, helping you decide whether to approve, verify, or reject cash-on-delivery (COD) shipments.

🎯 Key Capabilities
------------------

[](#-key-capabilities)

- 🔍 **Multi-Courier Analytics:** Fetch delivery histories simultaneously from Steadfast, Pathao, and RedX.
- 📊 **Aggregated Statistics:** Get a unified view of total deliveries, successes, cancellations, and percentages.
- 📱 **Smart Number Validation:** Built-in strictly enforced validation for standard Bangladeshi mobile numbers (e.g., `017XXXXXXXX`).
- 🏗️ **Framework-Agnostic Core:** Completely decoupled from Laravel. Use it in any native PHP, Symfony, or CodeIgniter project.
- ⚡ **Laravel Friendly:** Simple Facade access and effortless Laravel auto-discovery integration are still included!

---

💻 Requirements
--------------

[](#-requirements)

- **PHP:** `^8.2.0`
- **Guzzle:** `^7.8`

---

📦 Installation
--------------

[](#-installation)

**1. Install via Composer:**

```
composer require azmolla/fraud-checker-bd-courier
```

**2. Laravel Users - Publish Configuration File:**

```
php artisan vendor:publish --tag="config"
```

*(This will create a `config/fraud-checker-bd-courier.php` file in your application directory.)*

*(Note: Laravel Auto-Discovery is fully supported. If you are using Laravel 5.4 or older, you will need to manually register the Service Provider and Facade in `config/app.php`.)*

---

🧩 Setup &amp; Usage
-------------------

[](#-setup--usage)

### Usage in Laravel

[](#usage-in-laravel)

Add credentials to your `.env` file just like before:

```
PATHAO_USER="your_pathao_email@example.com"
PATHAO_PASSWORD="your_pathao_password"
STEADFAST_USER="your_steadfast_email@example.com"
STEADFAST_PASSWORD="your_steadfast_password"
REDX_PHONE="your_redx_login_phone_number"
REDX_PASSWORD="your_redx_password"
```

Checking a customer's fraud probability is a one-liner using the provided Facade.

```
use FraudCheckerBdCourier;

// Input a standard 11-digit Bangladeshi mobile number
$report = FraudCheckerBdCourier::check('01712345678');

dd($report);
```

### Usage in Pure PHP (or Non-Laravel Frameworks)

[](#usage-in-pure-php-or-non-laravel-frameworks)

Since Version 1.2.0, this package is completely decoupled from Laravel. You can instantiate it using the `FraudCheckerConfig` class:

```
require 'vendor/autoload.php';

use Azmolla\FraudCheckerBdCourier\Config\FraudCheckerConfig;
use Azmolla\FraudCheckerBdCourier\Cache\FileTokenCache;
use Azmolla\FraudCheckerBdCourier\Services\SteadfastService;
use Azmolla\FraudCheckerBdCourier\Services\PathaoService;
use Azmolla\FraudCheckerBdCourier\Services\RedxService;
use Azmolla\FraudCheckerBdCourier\FraudCheckerBdCourierManager;

// 1. Setup Configuration
$config = new FraudCheckerConfig([
    'steadfast' => [
        'user' => 'your_steadfast_email@example.com',
        'password' => 'your_steadfast_password'
    ],
    'pathao' => [
        'user' => 'your_pathao_email@example.com',
        'password' => 'your_pathao_password'
    ],
    'redx' => [
        'phone' => 'your_redx_login_phone_number',
        'password' => 'your_redx_password'
    ]
]);

// 2. Setup Cache for RedX tokens (defaults to sys_get_temp_dir()/fraud_checker_cache)
$cache = new FileTokenCache(__DIR__ . '/cache');

// 3. Initialize Services
$steadfastService = new SteadfastService($config);
$pathaoService = new PathaoService($config);
$redxService = new RedxService($config, $cache);

// 4. Initialize Manager
$fraudChecker = new FraudCheckerBdCourierManager($steadfastService, $pathaoService, $redxService, $config);

// 5. Check Number
$report = $fraudChecker->check('01712345678');
print_r($report);
```

### 📈 Structural Response Example

[](#-structural-response-example)

The package returns a highly structured array indicating individual and aggregated network metrics:

```
[
    'steadfast' => ['success' => 3, 'cancel' => 1, 'total' => 4, 'success_ratio' => 75.0],
    'pathao'    => ['success' => 5, 'cancel' => 2, 'total' => 7, 'success_ratio' => 71.43],
    'redx'      => ['success' => 20, 'cancel' => 5, 'total' => 25, 'success_ratio' => 80.0],

    // The summary across all supported couriers
    'aggregate' => [
        'total_success'    => 28,
        'total_cancel'     => 8,
        'total_deliveries' => 36,
        'success_ratio'    => 77.78,
        'cancel_ratio'     => 22.22
    ]
]
```

---

🛠️ Advanced Usage (SOLID Design)
--------------------------------

[](#️-advanced-usage-solid-design)

For granular control, the package is architected using SOLID principles. Every courier class adheres to `Azmolla\FraudCheckerBdCourier\Contracts\CourierServiceInterface`, guaranteeing a uniform `getDeliveryStats(string $phoneNumber): array` signature.

### Instantiating Individual Services

[](#instantiating-individual-services)

If you only need to run analytics against a single courier, avoid the Facade overhead and use the specific service classes directly:

```
use Azmolla\FraudCheckerBdCourier\Services\PathaoService;
use Azmolla\FraudCheckerBdCourier\Services\SteadfastService;
use Azmolla\FraudCheckerBdCourier\Services\RedxService;

$steadfastData = (new SteadfastService())->getDeliveryStats('01712345678');
$redxData      = (new RedxService())->getDeliveryStats('01712345678');
$pathaoData    = (new PathaoService())->getDeliveryStats('01712345678');
```

---

📱 Phone Validation Helper
-------------------------

[](#-phone-validation-helper)

Numbers are strictly validated against `^01[3-9][0-9]{8}$` to prevent unnecessary API failures.

- ✅ **Valid:** `01712345678`, `01876543219`
- ❌ **Invalid:** `+8801712345678`, `1234567890`, `02171234567`

You can manually trigger this validation check:

```
use Azmolla\FraudCheckerBdCourier\Helpers\CourierDataValidator;

CourierDataValidator::checkBdMobile('01712345678');
// Throws InvalidArgumentException if formatting fails
```

---

🧪 Testing
---------

[](#-testing)

The package includes an extensive test suite built with `orchestra/testbench` and `phpunit`. API calls are safely mocked, meaning you do not need live `.env` credentials to confidently run tests locally.

```
composer test
# Or if you don't have scripts defined:
./vendor/bin/phpunit
```

---

🙏 Acknowledgments
-----------------

[](#-acknowledgments)

Special thanks to **[S. Ahmad](https://github.com/ShahariarAhmad)** for the initial inspiration and discovering the API endpoints.

---

‍💻 Created By
-------------

[](#‍-created-by)

**Abiruzzaman Molla**

- 📧 Email:
- 🐙 GitHub: [@AbiruzzamanMolla](https://github.com/AbiruzzamanMolla)

---

☕ Support Me
------------

[](#-support-me)

If you find this project useful, you can buy me a coffee!

[ ![Buy Me A Coffee](https://camo.githubusercontent.com/0cf29a542375e1a46e84d8bf5805a4e5c0a6ee98b6547ccdc0c55eed49d99c69/68747470733a2f2f63646e2e6275796d6561636f666665652e636f6d2f627574746f6e732f76322f64656661756c742d79656c6c6f772e706e67)](https://www.supportkori.com/abiruzzaman)
 *If you find this package helpful in fighting fraudulent orders, please consider starring the repository! ⭐ I hate arguing. If you have something to contribute or improve, please fork the repository, make your edits, and then submit a pull request.*

###  Health Score

44

—

FairBetter than 92% of packages

Maintenance89

Actively maintained with recent releases

Popularity15

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~1 days

Total

12

Last Release

57d ago

Major Versions

v0.0.5 → v1.0.02026-03-02

v1.1.1 → v2.0.02026-03-07

v1.2.0 → v2.0.12026-03-17

PHP version history (4 changes)v0.0.1PHP ^7.3|^8.0

v0.0.2PHP ^8.0.2

v0.0.3PHP ^8.1.0

v0.0.4PHP ^8.2.0

### Community

Maintainers

![](https://www.gravatar.com/avatar/b41cb18525b16c14035754555d6bb1b1a04f4684e00b72ba571e1f0e2f283b61?d=identicon)[AbiruzzamanMolla](/maintainers/AbiruzzamanMolla)

---

Top Contributors

[![AbiruzzamanMolla](https://avatars.githubusercontent.com/u/20683047?v=4)](https://github.com/AbiruzzamanMolla "AbiruzzamanMolla (16 commits)")

---

Tags

laravel-packagephp-packageapi integrationfraud detectionfraud preventionOrder Statusfraud checkerpathaosteadfast couriere-commerce fraudcourier bangladeshredx

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/azmolla-fraud-checker-bd-courier/health.svg)

```
[![Health](https://phpackages.com/badges/azmolla-fraud-checker-bd-courier/health.svg)](https://phpackages.com/packages/azmolla-fraud-checker-bd-courier)
```

###  Alternatives

[glhd/conveyor-belt

14797.0k](/packages/glhd-conveyor-belt)[aedart/athenaeum

Athenaeum is a mono repository; a collection of various PHP packages

255.2k](/packages/aedart-athenaeum)[ashallendesign/favicon-fetcher

A Laravel package for fetching website's favicons.

190272.4k3](/packages/ashallendesign-favicon-fetcher)[beyondcode/laravel-favicon

Create dynamic favicons based on your environment settings.

37345.5k](/packages/beyondcode-laravel-favicon)[ankurk91/laravel-ses-webhooks

Handle AWS SES webhooks in Laravel php framework

2534.2k](/packages/ankurk91-laravel-ses-webhooks)[bjuppa/laravel-blog

Add blog functionality to your Laravel project

483.3k2](/packages/bjuppa-laravel-blog)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
