PHPackages                             laraditz/courier-sfexpress - 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. laraditz/courier-sfexpress

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

laraditz/courier-sfexpress
==========================

SF Express driver for laraditz/courier.

v1.0.0(yesterday)00MITPHPPHP ^8.1

Since Jun 18Pushed yesterdayCompare

[ Source](https://github.com/laraditz/courier-sfexpress)[ Packagist](https://packagist.org/packages/laraditz/courier-sfexpress)[ RSS](/packages/laraditz-courier-sfexpress/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (4)Versions (2)Used By (0)

laraditz/courier-sfexpress
==========================

[](#laraditzcourier-sfexpress)

SF Express driver for [laraditz/courier](https://github.com/laraditz/courier).

Requirements
------------

[](#requirements)

- PHP 8.1+
- Laravel 10, 11, 12, or 13
- `laraditz/courier` ^1.0

Installation
------------

[](#installation)

```
composer require laraditz/courier-sfexpress
```

Both service providers are auto-discovered. Publish the config:

```
php artisan vendor:publish --tag=courier-config
php artisan vendor:publish --tag=courier-sfexpress-config
```

Configuration
-------------

[](#configuration)

Add to your `.env`:

```
COURIER_DRIVER=sfexpress

SFEXPRESS_ACCOUNT=your-account-number
SFEXPRESS_KEY=your-client-id
SFEXPRESS_SECRET=your-client-secret
SFEXPRESS_SANDBOX=true
```

`config/sfexpress.php` (published separately):

```
return [
    'account'     => env('SFEXPRESS_ACCOUNT'),
    'key'         => env('SFEXPRESS_KEY'),
    'secret'      => env('SFEXPRESS_SECRET'),
    'sandbox'     => env('SFEXPRESS_SANDBOX', false),
    'base_url'    => 'https://bsp-oisp.sf-express.com/bsp-oisp/sfexpressService',
    'sandbox_url' => 'https://sfapi-sandbox.sf-express.com/std/service',
    'token_url'   => '/oauth2/accessToken',
    'timeout'     => 30,
];
```

Available Methods
-----------------

[](#available-methods)

All six `CourierDriver` operations are supported:

MethodParametersReturnsSF Express Endpoint`createShipment``ShipmentPayload $payload``ShipmentResult``POST /shipment/create``track``string $trackingNumber``TrackingResult``POST /shipment/route``getRates``RatePayload $payload``RateCollection``POST /shipment/queryFreight``cancelShipment``string $waybillNumber``CancelResult``POST /shipment/cancel``getLabel``string $waybillNumber``LabelResult``POST /shipment/label``getAvailability``AvailabilityPayload $payload``ServiceCollection``POST /service/queryByAddress`Refer to the [laraditz/courier README](https://github.com/laraditz/courier) for payload/result DTO definitions and full usage examples.

Usage
-----

[](#usage)

```
use Laraditz\Courier\Facades\Courier;

Courier::createShipment($payload);   // ShipmentResult
Courier::track($waybillNumber);      // TrackingResult
Courier::getRates($payload);         // RateCollection
Courier::cancelShipment($waybill);   // CancelResult
Courier::getLabel($waybill);         // LabelResult (PDF, base64)
Courier::getAvailability($payload);  // ServiceCollection
```

SF Express API Notes
--------------------

[](#sf-express-api-notes)

- Authentication uses OAuth2 `client_credentials` grant. Tokens are fetched automatically before each request.
- Success responses carry `apiResultCode: 'A2000'`. Any other code is treated as an error and throws a `CourierException`.
- `track()` throws `ShipmentNotFoundException` when the API returns error code `A2002` (waybill not found).
- Labels are returned as base64-encoded PDF content.

Status Mapping
--------------

[](#status-mapping)

SF Express `opCode` values are mapped to the [normalized status vocabulary](https://github.com/laraditz/courier#normalized-status-vocabulary):

opCodeStatus`50``picked_up``30``in_transit``70``out_for_delivery``80``delivered``90``failed_delivery``35``returned`other`unknown`License
-------

[](#license)

MIT

###  Health Score

39

—

LowBetter than 85% of packages

Maintenance100

Actively maintained with recent releases

Popularity0

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity42

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

Unknown

Total

1

Last Release

1d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1203676?v=4)[Raditz Farhan](/maintainers/raditzfarhan)[@raditzfarhan](https://github.com/raditzfarhan)

---

Top Contributors

[![raditzfarhan](https://avatars.githubusercontent.com/u/1203676?v=4)](https://github.com/raditzfarhan "raditzfarhan (10 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/laraditz-courier-sfexpress/health.svg)

```
[![Health](https://phpackages.com/badges/laraditz-courier-sfexpress/health.svg)](https://phpackages.com/packages/laraditz-courier-sfexpress)
```

###  Alternatives

[yajra/laravel-datatables-oracle

jQuery DataTables API for Laravel

4.9k35.3M364](/packages/yajra-laravel-datatables-oracle)[psalm/plugin-laravel

Psalm plugin for Laravel

3325.1M337](/packages/psalm-plugin-laravel)[spatie/laravel-export

Create a static site bundle from a Laravel app

672139.5k6](/packages/spatie-laravel-export)[zidbih/laravel-deadlock

Make temporary Laravel workarounds expire and fail CI when ignored.

954.0k](/packages/zidbih-laravel-deadlock)[erlandmuchasaj/laravel-gzip

Gzip your responses.

40140.4k2](/packages/erlandmuchasaj-laravel-gzip)[aedart/athenaeum

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

245.2k](/packages/aedart-athenaeum)

PHPackages © 2026

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