Aller au contenu

Ventes

22 routes. Chemins relatifs à https://api.nexus-engine.eu/api/v1.

GET /ventes/compte

Le compte Stripe Connect de l'espace (état calculé : non relié, à compléter, en vérification, prêt), si la vente est active, le mode test, et la commission de Nexus (20 %).

Requêterelire=1 (administrateur : relit les drapeaux chez Stripe)
RéponseVenteCompteDto
POST /ventes/compte/relier Owner et Admin session de l’application seulement

Identifie le vendeur professionnel, recueille son accord aux conditions, crée le compte Stripe de l'espace (une fois) et rend le lien d'accueil chez Stripe. Aucune donnée bancaire ne passe par Nexus.

CorpsaccepteConditions (true), conditionsVersion, professionnel (true), raisonSociale, adresse, pays (code à deux lettres), identifiant (SIREN ou SIRET vérifié en France), tvaIntracom. Vide : reprend l’accueil chez Stripe si l’accord est à jour, sinon 409 VENDEUR_A_IDENTIFIER.
Réponse{ url, compte: VenteCompteDto }
GET /ventes/produits Owner et Admin

Ce que l'espace peut vendre : ses applications (et jeux), créations et modules diffusés, chacun avec son nom et si son projet est en mode aveugle (qui ne se vend pas).

GET /ventes/applications Owner et Admin

TOUTES les applications que l'espace a diffusées, vendues ou gratuites (les originaux) : prix ouvert ou gratuite, achats au grand livre (null si jamais en vente), installations encore posées (original et copies, tous espaces), téléchargements, revenus nets par devise, date et canal de diffusion. Les nombres du suivi, aucun neuf.

RéponseApplicationsDiffuseesDto { applications, tronquee, sources }
GET /ventes/applications/:id Owner et Admin

Une application diffusée de l'espace et ce qui la raconte dans le temps : achats et installations par mois (douze mois), usage des 30 derniers jours. D'un autre espace : 404.

RéponseApplicationDiffuseeDetailDto
GET /ventes/offres Owner et Admin

Les offres de l'espace (brouillons et publiées) : produit, forme, prix, textes et visuels, commission et part du vendeur, proposition d'un agent en attente. `ouverte` : faux pour un abonnement d'avant le 5 novembre 2026, servi à ses abonnés et fermé aux nouveaux.

Réponse{ offres: VenteOffreDto[] }
POST /ventes/offres Owner et Admin

Crée une offre en BROUILLON sur un produit de l'espace (application, jeu, création, module) : un PRIX UNIQUE, payé une fois. Rien ne part chez Stripe, personne ne peut acheter. Un agent peut le faire ; la personne la met ensuite en vente d'un clic par « Vendre… » sur la carte du produit, le prix du brouillon déjà posé (et, s'il n'est pas encore diffusé, la diffusion dans la même fenêtre).

CorpsproduitType (APPLICATION | CREATION | MODULE), produitId, montantCentimes (100 à 500000, centimes entiers), devise (eur, usd, gbp, chf, cad), taxeAutomatique, titre, accroche, description, avantages (liste), visuels (adresses https, 8 au plus), couleur (#RRVVBB), libelleBouton. `forme` vaut UNE_FOIS : ABONNEMENT est refusé (400), la vente par abonnement n’est plus proposée. Aucun champ de commission : le taux est celui de la plateforme.
RéponseVenteOffreDto
PATCH /ventes/offres/:id Owner et Admin

Modifie une offre. Textes et visuels : libres (le produit chez Stripe suit). Montant et taxe d'une offre PUBLIÉE : une personne les change ; un agent les PROPOSE (rendus dans `proposition`), une personne les applique. Les conditions d'un abonnement d'avant ne changent plus (409 ABONNEMENT_RETIRE).

Corpstitre, accroche, description, avantages, visuels, couleur, libelleBouton, montantCentimes, essaiJours, taxeAutomatique — jamais forme, période ni devise (créer une autre offre)
RéponseVenteOffreDto
POST /ventes/offres/:id/publier Owner et Admin session de l’application seulement

Publie une offre : le compte Stripe est relu et doit être prêt, le produit doit être diffusé ; le produit et le prix sont créés sur le compte du vendeur.

RéponseVenteOffreDto
POST /ventes/offres/:id/retirer Owner et Admin session de l’application seulement

Retire une offre : plus achetable ; qui a payé garde son droit. Sans plus aucune offre publiée, le produit redevient gratuit.

RéponseVenteOffreDto
POST /ventes/offres/:id/appliquer Owner et Admin session de l’application seulement

Applique les conditions qu'un agent a proposées sur une offre publiée (un prix neuf est créé chez Stripe, l'ancien reste aux abonnements en cours).

RéponseVenteOffreDto
GET /ventes/conseil Owner et Admin

Le prix que Nexus conseille pour un produit de l'espace : la médiane des prix comparables du catalogue et ses bornes, sinon un repère dit comme tel, sinon rien, avec la justification. Un conseil, jamais une borne.

RequêteproduitType (APPLICATION | CREATION | MODULE), produitId, devise (défaut : eur)
RéponseConseilDePrix
GET /ventes/suivi Owner et Admin

Tout ce que l'espace vend, cumulé depuis le début : net par devise, et par produit les offres, ventes, remboursements, téléchargements, espaces acheteurs et utilisateurs actifs sur 30 jours (un agrégat ; NON_MESURE avec sa raison là où on ne sait pas mesurer ; jamais le chiffre exact sous 3).

RéponseSuiviDesVentesDto
GET /ventes/pilotage-marketplace

Le pilotage de la Marketplace sur une fenêtre de temps : une phrase, les totaux (comparés à la fenêtre d'avant), la série, et par produit vendu ou diffusé le prix, les ventes, le net, les installations, les actifs et les retours ; les acheteurs (espace, personne, date) et les paiements avec leurs liens Stripe. L'argent est réservé aux propriétaires et administrateurs : les autres membres ne voient que l'usage des applications qu'ils maintiennent.

Requêteperiode (30j | 90j | 12m | tout, défaut 30j), decalage (0 à 36 fenêtres en arrière), fuseau
RéponsePilotageMarketplaceDto
Note« null » = non mesuré ou hors des droits, jamais zéro. Une facture Stripe absente porte sa raison (`sansFacture`).
GET /ventes/tableau Owner et Admin

Le tableau de bord du vendeur sur une période : ventes, brut, remboursements, litiges, commission de Nexus, frais de Stripe relevés, net (par devise, jamais additionnées), abonnés actifs, nouveaux, résiliations, achats uniques, téléchargements, série par jour ou par mois, détail par produit, et d'où vient chaque chiffre.

Requêtedu, au (ISO 8601, défaut : les 30 derniers jours), granularite (jour | mois), produitType, produitId, fuseau (défaut : celui du membre)
RéponseTableauDeBordVentesDto
GET /ventes/releve Owner et Admin

Le relevé de commissions du vendeur, par mois et par devise : transactions, brut, commission retenue, hors taxes et TVA selon son régime. Calculé depuis le grand livre.

Requêtedu, au (ISO 8601 avec fuseau)
Réponse{ lignes: LigneDeReleve[], regimeTva, fuseau }
NoteUn relevé, pas une facture : Nexus n’émet pas la facture de commission. `commissionsInconnues` non nul : le total est un minimum. `regimeTva` nul : le vendeur n’est pas identifié, la ventilation ne vaut rien.
GET /ventes/lignes Owner et Admin

Le grand livre : chaque vente, remboursement et litige (500 plus récents), avec commission et frais relevés.

POST /ventes/lignes/:id/rembourser Owner et Admin session de l’application seulement

Rembourse une vente en entier, commission de Nexus comprise, et reprend l'accès (un abonnement est arrêté).

GET /ventes/catalogue

Les offres publiées que cet espace peut voir (produit au catalogue), avec le droit de l'espace sur chacune (SANS_OBJET, ACTIF, JAMAIS_ACHETEE, ARRETE).

Réponse{ offres: VenteOffrePubliqueDto[], ventesActives }
POST /ventes/offres/:id/acheter Owner et Admin session de l’application seulement

Ouvre la page de paiement Stripe du vendeur pour cet espace ; le droit ne s'ouvre qu'à la notification signée d'un encaissement. Une offre par abonnement ne se souscrit plus (409 ABONNEMENT_RETIRE).

Corpsrenonciation (true : renonciation expresse au droit de rétractation, recueillie avant le paiement), conditionsVersion. Absente : 400 RENONCIATION_REQUISE.
Réponse{ url, droitId }
GET /ventes/achats

Ce que l'espace a acheté, avec l'état du droit calculé.

Réponse{ achats: VenteDroitDto[] }
POST /ventes/achats/:id/resilier Owner et Admin session de l’application seulement

Résilie un abonnement acheté au terme payé (servi jusque-là).

RéponseVenteDroitDto