rubensalban/sfec-client-laravel

Integration Laravel du client SFEC (rubensalban/sfec-client-php). ServiceProvider + Facade + config publiable.

Maintainers

Package info

github.com/Rubensalban/sfec-client-laravel

pkg:composer/rubensalban/sfec-client-laravel

Statistics

Installs: 3

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.1.1 2026-06-16 19:45 UTC

This package is auto-updated.

Last update: 2026-06-16 19:48:03 UTC


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