sfec-client-laravel maintained by rubensalban
sfec-client-laravel
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