
Le 15 octobre, j'ai relu le code des paiements d'Orochia, notre plateforme vidéo pour créateurs. Je suis tombé sur une fonction de soixante lignes qui faisait tout en même temps : valider, verrouiller, appliquer les règles, bouger les crédits, écrire dans le registre. Elle marchait. Elle me faisait quand même peur, et j'ai ouvert un ticket pour la réécrire.
En lisant ce code, je me suis rendu compte que la vraie question n'était pas dedans. Le code sait déjà parler à quatre passerelles de paiement. Mais aucune d'elles n'a encore accepté de travailler avec nous. Et pour une partie de nos produits, ce n'est pas gagné d'avance.
Comment c'est fait
- Modèle
- Stable Diffusion 3.5 Large · Stability AI Community Licence
- Moteur
- hosted: DigitalOcean serverless inference (steps and guidance not exposed)
- Machine
- hébergé par le fournisseur (pas notre machine)
- Via
- Orazaka Studio run on dev.orazaka.com
- Studio
image-generation- Prompt
Minimalist flat vector illustration, editorial style: a single card payment terminal standing on a plain deep navy background, beside it a closed ledger notebook, a few thin cobalt-blue lines with small round nodes connect them like a network diagram. Clean geometric shapes, two-tone navy and cobalt blue with soft white highlights, lots of empty space, centered composition, matte, calm. No people, no hands, no text, no letters, no numbers, no logos.
- Graine (seed)
721081288- Taille
- 1024×1024
- Durée
- 7.5 s, telles qu'enregistrées par le run
- Coût
- 0.08 US$ (le prix du fournisseur)
- Run Orazaka
87694bea-beb7-48c4-8baf-979f7d01422a- Note
- The cover of this post; a first run of the same Studio (0fdc980b-1ba6-4ff8-8a8e-b9093b465030, 512×512, a busier prompt) was not kept.
La question
Quand on construit un logiciel qui encaisse de l'argent, on pense d'abord à l'écran de paiement. Le bouton, le montant, le reçu. En réalité, la première question est ailleurs : quelle entreprise acceptera de faire passer cet argent pour vous ?
Un processeur de paiement, c'est un peu comme un propriétaire qui loue un local. Il ne loue pas à n'importe qui. Il regarde votre activité, il se demande ce que ça lui coûtera si ça tourne mal, et il fixe ses conditions. Certaines activités, il les refuse. D'autres, il les accepte avec un gros dépôt de garantie.
C'est ce qu'on appelle les « industries à haut risque ».
Ce que disent les grands
J'ai lu les listes des trois noms que tout le monde connaît. Elles sont publiques, et je vous conseille de les lire avant d'écrire une ligne de code.
Stripe interdit, dans sa liste des activités restreintes, la pornographie et les autres contenus pour public adulte, y compris quand ils sont générés par une IA. Il interdit aussi les jeux de hasard, et sa ligne sur le sujet couvre les concours et les ligues de sport fantastique.
PayPal interdit dans sa politique d'utilisation « certains contenus ou services à caractère sexuel ». Pour les jeux, les paris sportifs et le sport fantastique, il demande une approbation préalable.
Square, dans sa page canadienne, range parmi les industries non prises en charge le divertissement pour adultes « sur tout support » et les paris.
Ce ne sont pas des jugements moraux. Ce sont des calculs de risque. Quand un client conteste un paiement auprès de sa banque, c'est une rétrofacturation : l'argent repart, et des frais s'ajoutent. Dans certaines catégories, ces contestations sont plus fréquentes. Le processeur se protège.
Ceux qui disent oui, et à quel prix
Il existe des processeurs spécialisés. CCBill se présente par exemple comme un service de paiement « pour les plateformes de contenu grand public et adulte ». Je ne connais pas encore leurs tarifs : ils ne sont pas publiés en grille, ils se négocient au dossier. Je ne vais donc pas inventer de chiffre ici.
Ce que je sais, c'est le mécanisme qui revient partout : la réserve. Le processeur garde une partie de chaque paiement pendant un certain temps, au cas où des contestations arriveraient. Stripe lui-même l'explique : en général 5 à 15 % de chaque transaction, retenus sur une période glissante, par exemple 180 jours. Et c'est souvent imposé aux entreprises sans historique. Une entreprise neuve dans une catégorie surveillée, c'est exactement nous.
Concrètement, si vous encaissez 1 000 $ un lundi avec une réserve de 10 %, 100 $ restent bloqués six mois. Pour une petite entreprise, ce n'est pas un détail : c'est de la trésorerie qui dort.
Au-dessus des processeurs, les réseaux de cartes
Le processeur n'a pas le dernier mot. Au-dessus de lui, il y a Visa et Mastercard.
En avril 2021, Mastercard a renforcé ses règles pour les sites de contenu adulte. Les banques qui raccordent ces sites à son réseau doivent certifier qu'ils ont des contrôles pour surveiller, bloquer et retirer le contenu illégal. Il faut aussi une vérification documentée de l'âge et de l'identité des personnes qui apparaissent et de celles qui téléversent, et un consentement clair et documenté.
Quelques mois plus tard, en août 2021, OnlyFans a annoncé l'interdiction du contenu sexuellement explicite en citant la pression de ses partenaires bancaires, puis a fait marche arrière en moins d'une semaine, après avoir obtenu des « assurances » de ces mêmes partenaires. Je retiens une chose de cette histoire : même une plateforme énorme dépend de la bonne volonté de quelques banques.
Ce que ça change dans notre code
Orochia est une plateforme vidéo pour créateurs, et une partie de ce qu'elle permettra est réservée aux adultes. Elle est donc dans cette zone, et je l'ai su dès le départ. Le ticket des comptes marchands le dit sans détour : le contenu adulte exclut Stripe. Le code parle donc à CCBill, à Segpay, à une passerelle crypto, et à Stripe seulement pour les tests et les déploiements sans contenu adulte (orochia#7).
Ça a changé la conception de plusieurs façons.
Les enchères se paient en crédits bloqués. Quand vous enchérissez, vos crédits sont mis de côté. Si quelqu'un vous dépasse, ils vous reviennent. Si vous gagnez, ils sont dépensés. La documentation des enchères le résume en une ligne : le gagnant a toujours déjà payé, sans course contre une rétrofacturation à la fin.
L'argent ne bouge qu'une fois. Chaque mouvement porte une référence unique, et un paiement n'est réglé qu'à la réception du message signé de la passerelle. Si le message arrive deux fois, la deuxième fois ne fait rien.
Les rétrofacturations doivent descendre jusqu'au solde. Un audit a trouvé un trou (orochia#167) : le solde d'un créateur ne retirait pas les paiements contestés. Quelqu'un pouvait donc demander un versement avant que la contestation n'arrive, et la plateforme aurait payé deux fois. Ce n'est pas encore corrigé, et ça doit l'être avant le premier vrai dollar. Les règles de versement, comme le montant minimum, sortent aussi du code pour devenir des données versionnées, qu'on peut ajuster sans redéployer (orochia#205).
Et la vérification d'âge et d'identité n'est pas une option qu'on ajoutera plus tard. Avec les règles de Mastercard, c'est une condition pour exister.
Pour Kachizaka, notre jeu de pronostics entre amis, j'ai pris la décision inverse : des points, jamais d'argent. Dès qu'on met une mise et un prix, on entre dans la ligne « jeux de hasard » de Stripe et dans la case « approbation préalable » de PayPal. Je préfère que ce produit n'y entre jamais.
Ce qui n'est pas décidé
Beaucoup de choses, et je préfère le dire.
Aucun compte marchand n'est ouvert. Pour en demander un, l'entreprise doit d'abord avoir ses numéros d'enregistrement et un compte bancaire, et c'est encore en cours. Je ne sais pas quel processeur dira oui, ni avec quelle réserve, ni à quel taux.
Je ne sais pas non plus combien de temps il faudra garder les preuves d'âge et d'identité, ni sous quelle forme. Ce sont des questions juridiques. Je vais les poser à un avocat avant de lancer quoi que ce soit, et ce billet n'est pas un conseil juridique : c'est ma façon de réfléchir à voix haute.
Ce que vous pouvez en retenir
Si votre produit touche de près ou de loin à une de ces catégories, lisez les listes des processeurs avant d'écrire le code de paiement. Prévoyez que de l'argent restera bloqué des mois. Faites en sorte qu'aucun versement ne parte avant que les contestations aient eu le temps d'arriver. Et gardez vos règles d'argent dans des données, parce que vous allez les changer.
Ce billet ouvre une nouvelle série, « Construire Krizaka », sur ce qui entoure le code, l'argent et le droit d'abord. Les billets techniques sur le moteur continuent dans « Construire Orazaka ».