Factures et grand livre
Où dans l'admin : Finance › Billing (
/billing) avec les onglets Overview, Transactions (/billing/ledger), Invoices (/billing/invoices), Top-ups (/billing/deposits), Payouts (/billing/payouts), Vouchers (/billing/vouchers) et Reports (/billing/reports). Où dans le portail : Billing (/billing).
Description
Chaque montant dans NexCMP est stocké en centimes USD et enregistré une seule fois. L'idée clé : le grand livre du portefeuille est la source de vérité pour les soldes ; les factures, les paiements de rechargement et les rapports sont des vues construites à partir de celui-ci. Le grand livre est en mode ajout uniquement (append-only) — une erreur se corrige en ajoutant une écriture d'annulation, jamais en modifiant l'historique.
Prérequis
| Élément | Prérequis |
|---|---|
| Rôle | Un administrateur. |
| Détails du vendeur | Définissez le nom légal, le numéro de TVA, l'adresse, l'e-mail de contact et le préfixe de numéro de facture dans System › Settings › General, onglet Seller & invoicing (/settings?tab=seller), carte Seller details (printed on invoices). |
| Dépendances | Payment channels pour les entrées d'argent. |
Les éléments
| Onglet admin | Ce qu'il liste | Usage type |
|---|---|---|
| Overview | Recettes du jour et du mois, totaux du grand livre par type (dépôt, débit, remboursement, ajustement, bon d'achat), factures par statut, remboursements en attente, raccourcis, dépenses par service sur les 30 derniers jours | Vérification quotidienne |
| Transactions | Le grand livre du portefeuille, une ligne par mouvement | Expliquer le solde d'un client |
| Invoices | Factures et deuxième vue Orders avec chaque achat de chaque service | Trouver un document, renvoyer, marquer comme payé |
| Top-ups | Paiements reçus via les passerelles | Vérifier un paiement, le rembourser |
| Payouts | Remboursements de cartes, commissions d'affiliation, retraits de revendeurs | Approuver les sorties d'argent |
| Vouchers | Codes de rechargement | Voir Promotions |
| Reports | Chiffre d'affaires par service, par revendeur | Comptabilité |
Transactions (grand livre)
Colonnes : heure, client, type, service, montant (signé), VM, référence, acteur, note. Filtres : type, service, ID client, site (si vous avez des revendeurs), plage de dates et lien vers une VM.
| Type | Description |
|---|---|
deposit | Recharge depuis une passerelle |
charge | Montant prélevé pour un service (commande, renouvellement, consommation horaire...) |
refund | Argent reversé dans le portefeuille |
adjust | Crédit ou débit administrateur, ainsi que codes de rechargement (référence commençant par vch:) — la vue d'ensemble affiche les bons d'achat sur leur propre ligne |
Chaque ligne possède une référence telle que dep:stripe:<payment-id> ; la même référence ne peut jamais être écrite deux fois, ce qui empêche un webhook répété de créditer deux fois. Utilisez Customers › List › customer › Credit / debit pour ajouter un ajustement manuel : un motif est obligatoire, un montant positif tente également de déverrouiller les VMs bloquées par manque de fonds, et l'action est confirmée en deux étapes.

Factures
Une facture est créée automatiquement lorsqu'un client achète ou renouvelle un service payé depuis le portefeuille, ou pour une recharge. Les numéros ressemblent à <prefix><YYYYMM>-<000001> (par exemple NX202610-000042) ; les sites revendeurs utilisent leur propre préfixe et séquence. Les numéros existants ne changent jamais lorsque vous modifiez le préfixe.
| Champ | Valeurs |
|---|---|
| Type | Reçu, Renouvellement, Recharge, Manuel, Remboursement |
| Statut | Impayée, Payée, En retard, Annulée, Remboursée |
Actions sur une ligne :
| Action | Effet |
|---|---|
| View / Print | Ouvre la facture ; le portail permet également de l'imprimer ou de l'enregistrer en PDF. |
| Mark paid (impayée ou en retard uniquement) | Marque la facture comme payée sans mouvement d'argent dans le portefeuille — à utiliser lorsque le client vous a payé en dehors de NexCMP. Un motif est requis. Pour une facture de renouvellement, cela prolonge et déverrouille également la VM. |
| Cancel (impayée ou en retard uniquement) | Annule la facture. Un motif est requis. |
| Resend | Envoie à nouveau la facture par e-mail. |
Create manual invoice (bouton en haut de l'onglet) : identifiant client, 1 à 50 lignes (description, quantité, prix unitaire), ID de VM facultatif, jours d'échéance facultatifs (0 à 365, par défaut 7), note facultative. Il est créé comme impayé ; le client le voit dans Billing › Invoice History.
réglées automatiquement depuis le portefeuille dès qu'il y a de l'argent, de sorte que l'action du client se résume à recharger.
Rechargements (paiements)
Une ligne par tentative : heure, client, passerelle et méthode, type (rechargement ou rechargement automatique), statut (en attente, complété, échec, remboursé, contesté, annulé), montant payé par le client, frais, montant versé au portefeuille, référence de la passerelle et heure de fin. Les paiements Stripe et PayPal complétés disposent d'une action Refund. Utilisez les pages d'événements de passerelle pour voir les webhooks (Payment channels).
Versements
Trois sous-onglets : Card refunds (approuver ou rejeter les demandes de remboursement ; la demande est créée à partir d'un paiement complété), Affiliate payouts (retraits de commissions) et Reseller withdrawals. Chaque décision fait l'objet d'un audit.
Rapports
Revenue (tendance sur 30 jours, mois par mois, meilleurs clients), By service et By reseller.

Ce que voit le client
Dans Billing, le client dispose de Balance, Deposit, Redeem code, Settings (rechargement automatique) et d'un historique comprenant les onglets Invoice History, Payment Order, Ledger et Orders (chaque service dans une liste unique avec des filtres par service et par type). Chaque facture propose View, Print et Save as PDF ; les montants sont en USD, affichés éventuellement dans la devise d'affichage.
Vérification
- Effectuez un petit rechargement en tant que client test.
- Transactions affiche une ligne
deposit, Top-ups indique le paiement comme Completed et les revenus de Overview augmentent. - Achetez un article : une ligne
chargeapparaît et Invoices affiche une facture de type Receipt ou Renewal comportant les coordonnées du vendeur que vous avez configurées.
Limites et notes
- Ajout seul. Impossible de modifier ou de supprimer une ligne de grand livre ; ajoutez un redressement avec un motif.
- Devise. Les montants sont en USD ; la devise d'affichage est purement cosmétique (voir Currency and exchange rates).
- Le remboursement sur carte s'effectue en deux étapes (demande, puis validation sous Payouts) ; les transferts USDT et bancaires ne sont pas remboursés à la source.
- Tout est audité sous System › Logs › Admin actions avec le motif saisi.
- Commandes vs factures. L'utilisation horaire n'est pas facturée par heure ; la vue Orders la groupe par jour pour en conserver la visibilité.
Dépannage
| Symptôme | Cause | Solution |
|---|---|---|
| Le solde du client semble incorrect | Un débit, un redressement ou un bon d'achat inattendu | Filtrez Transactions par l'identifiant client et consultez les références et notes. |
| "La facture est déjà payée" (409) | Marquer comme payée une facture déjà réglée | Aucune action requise. |
| Impossible d'annuler une facture | Seules les factures impayées ou en retard peuvent être annulées | Pour les factures payées, utilisez un remboursement ou un redressement. |
| Coordonnées du vendeur manquantes sur les factures | Non renseigné | Renseignez Seller details dans System › Settings › General › Seller & invoicing. |
| Carte de crédit/débit refusée | Le montant est nul ou supérieur à $100,000 | Utilisez un montant compris entre 1 cent et $100,000. |
| Un paiement reste Pending longtemps | Webhook manquant | Consultez Gateway events et relancez. |