Cas d’usage
Avoir lié à une facture (1 avoir = 1 facture, BR-CO actuelle)
Émettre un avoir total ou partiel sur une facture émise
Dans la version actuelle de Scell.io, un avoir (credit note) est strictement lié à UNE facture émise. Endpoint `POST /api/v1/invoices/{invoice_id}/credit-notes` : vous précisez les lignes à avoir (subset des lignes de la facture parent) ou le montant total. L'avoir hérite des données de la facture parent (buyer, seller, références) et reçoit son propre numéro fiscal dans la série des avoirs. Le PDF avoir et la chaîne fiscale sont générés. La règle métier multi-factures (1 avoir → N factures) n'est PAS encore supportée — utiliser N avoirs distincts si nécessaire. Les avoirs respectent l'autocertification ISCA : pas de delete, immutabilité après statut `issued`.
À retenir
- 1 avoir = 1 facture parent (limite actuelle)
- Avoir total (montant facture) ou partiel (lignes choisies)
- Numérotation indépendante (série avoirs)
- PDF Factur-X généré automatiquement
- Immuable après statut `issued` (autocertification ISCA)
- INTERDIT de delete : seule l'émission d'un nouvel avoir corrige une erreur
Exemple de code
use Scell\Sdk\ScellClient;
$scell = new ScellClient(getenv('SCELL_SECRET_KEY'));
// Avoir partiel : annuler la ligne 2 de la facture INV-2026-042
$creditNote = $scell->invoices()->createCreditNote('inv_42', [
'reason' => 'Erreur de tarification ligne 2',
'lines' => [
['parent_line_id' => 'line_2', 'quantity' => 1, 'unit_price' => 250.00, 'vat_rate' => 20],
],
'issue_date' => '2026-05-03',
]);
echo "Avoir émis : {$creditNote->number} (PDF: {$creditNote->pdf_url})\n";