rubensalban / sfec-client-laravel
Integration Laravel du client SFEC (rubensalban/sfec-client-php). ServiceProvider + Facade + config publiable.
Package info
github.com/Rubensalban/sfec-client-laravel
pkg:composer/rubensalban/sfec-client-laravel
Requires
- php: ^8.0
- guzzlehttp/guzzle: ^7.5
- illuminate/contracts: ^9.0 || ^10.0 || ^11.0 || ^12.0
- illuminate/support: ^9.0 || ^10.0 || ^11.0 || ^12.0
- nyholm/psr7: ^1.8
- rubensalban/sfec-client-php: ^0.1.1
Requires (Dev)
- orchestra/testbench: ^7.0 || ^8.0 || ^9.0 || ^10.0
- phpunit/phpunit: ^9.6 || ^10.5
README
Bridge Laravel pour rubensalban/sfec-client-php — client communautaire pour l'API SFEC (Système de Facturation Électronique Certifiée, République du Congo).
Package indépendant, non affilié à l'administration congolaise ni aux éditeurs de SFEC.
Installation
composer require rubensalban/sfec-client-laravel
Auto-discovery activé : aucune action manuelle requise. Le ServiceProvider et la façade Sfec sont enregistrés automatiquement.
Configuration
Variables d'environnement
SFEC_CLIENT_BASE_URL=https://api.sfec.gouv.cg SFEC_CLIENT_API_KEY=sk_votre_cle_api SFEC_CLIENT_ENV=production
Publier le fichier de configuration (optionnel)
php artisan vendor:publish --tag=sfec-config
Génère config/sfec.php.
Usage
use Sfec\Client\Laravel\Facades\Sfec; // Soumission ERP $result = Sfec::erp()->submit([ 'taxpayer_niu' => 'M987654321', 'recipient' => [ 'type' => 'business', 'name' => 'ACME SARL', 'niu' => 'P123456789', ], 'items' => [[ 'designation' => 'Service A', 'type' => 'service', 'unit_price' => 50000, 'quantity' => 2, 'tax_rate' => '18', ]], 'payment' => ['method' => 'mobile_money', 'currency' => 'XAF'], ]); // Liste paginée $page = Sfec::erp()->list(['page' => 1, 'pageSize' => 20]); // Bootstrap mTLS $credentials = Sfec::claim(['token' => '...', 'niu' => '...']);
Via injection de dépendance (recommandé)
use Sfec\Client\SfecClient; class InvoiceController extends Controller { public function store(Request $request, SfecClient $sfec) { return $sfec->erp()->submit($request->validated()); } }
Mode TCC / TFC (mTLS)
Ajouter à .env :
SFEC_CLIENT_MTLS_CERT_PEM="-----BEGIN CERTIFICATE-----\n..." SFEC_CLIENT_MTLS_KEY_PEM="-----BEGIN PRIVATE KEY-----\n..."
Le bridge configure automatiquement Guzzle pour mTLS (fichiers temporaires en chmod 0600, nettoyés en fin d'exécution).
Sfec::tcc()->submit($input); Sfec::tfc()->submit($input);
Documentation complète
Voir le README du core pour :
- Le schéma complet d'input d'une facture
- La gestion d'erreurs (exceptions typées)
- Les recettes (idempotence, avoirs, hooks)
- Les garanties de sécurité
Tests
composer test
Licence
MIT