Thiqaty
Plateforme de séquestre et de dépôt : transactions protégées entre acheteurs et vendeurs, commissions configurables et paiement par carte CIB / Edahabia.
- Mon rôle
- Ingénieur Full Stack
- Période
- avr. 2026 — juin 2026
- Statut
- Livré

Thiqaty est une place de marché sous séquestre entre acheteurs et vendeurs : plutôt que de payer directement le vendeur, l'acheteur confie ses fonds à la plateforme le temps de la transaction, et la plateforme prélève des commissions configurables par les administrateurs — une commission de séquestre et une commission de dépôt distinctes. Les paiements passent par Chargily, qui accepte les cartes CIB et Edahabia.
Le backend est un service Fastify + TypeScript sur PostgreSQL avec Drizzle comme ORM ; les migrations de schéma s'appliquent automatiquement au démarrage du conteneur, ce qui évite tout décalage entre le code déployé et la base. L'authentification est exclusivement par cookie, sur le modèle Sanctum pour SPA, et un tableau de bord d'administration séparé, construit avec Vite, reprend l'architecture du client.
Le problème à résoudre
Le commerce en ligne entre inconnus repose sur une confiance qui fait souvent défaut : l'acheteur paie en espérant recevoir, le vendeur expédie en espérant être payé. La plateforme devait se placer au milieu — conserver les fonds de l'acheteur jusqu'à la conclusion de la transaction, facturer cette garantie via deux commissions distinctes réglables par les administrateurs, et accepter les paiements par carte CIB et Edahabia. Elle devait aussi amener la contrepartie sur la plateforme sans friction, une transaction n'existant que lorsque les deux parties ont un compte.

Comment cela a été construit
Le cœur du système retient les fonds et applique un double modèle de commission — commission de séquestre et commission de dépôt — toutes deux configurables par les administrateurs plutôt que codées en dur, ce qui permet d'ajuster la tarification sans redéploiement. L'intégration Chargily tourne en clés de production et traite les paiements CIB et Edahabia. Pour faire entrer la seconde partie dans la transaction, les invitations par e-mail contiennent un lien d'acceptation qui rattache automatiquement l'invité dès son inscription — aucun rapprochement manuel.
La pile technique : Fastify + TypeScript sur PostgreSQL avec Drizzle ; les migrations s'appliquent d'elles-mêmes au démarrage du conteneur, supprimant le cas d'échec « code déployé en avance sur le schéma ». L'authentification est exclusivement par cookie, au format Sanctum pour SPA, sans jeton exposé au JavaScript côté client. L'administration se fait dans un tableau de bord Vite séparé qui reflète l'architecture du client.
Ce que ça fait
Fonds sous séquestre
La plateforme conserve les fonds de l'acheteur pendant toute la transaction : aucune des deux parties n'a besoin de faire aveuglément confiance à l'autre.
Double commission configurable
Deux frais distincts — commission de séquestre et commission de dépôt — ajustables par les administrateurs, sans modification du code.
Paiements CIB et Edahabia
Intégration Chargily en clés de production, acceptant les paiements CIB et Edahabia.
Invitations auto-rattachées
Les invitations par e-mail portent un lien d'acceptation ; l'invité est rattaché automatiquement à la transaction dès son inscription.
Auth SPA par cookie
Sessions au format Sanctum portées exclusivement par cookie : aucun jeton stocké dans le JavaScript client.
Tableau de bord miroir
Une application Vite séparée pour les opérateurs, qui réutilise l'architecture et les conventions du client.
Construit avec
Frontend
Les flux d'argent et le calcul des commissions ne tolèrent aucune ambiguïté de types ; TypeScript impose les contrats de bout en bout, des requêtes Drizzle aux handlers de routes.
Le client et le tableau de bord d'administration Vite sont tous deux des applications React : un seul jeu de conventions de composants sert les deux surfaces.
Le client destiné aux acheteurs et vendeurs tourne sur Next.js, dont le routage et l'outillage s'accordent avec le modèle de sessions par cookie au format Sanctum.
Backend
Fastify apporte à l'API de séquestre un routage piloté par schémas et une validation explicite des requêtes avec une faible surcharge — les bons réglages pour une API qui déplace de l'argent.
Données
Les soldes sous séquestre et les commissions exigent une intégrité relationnelle et transactionnelle — PostgreSQL la fournit, avec des migrations Drizzle appliquées automatiquement au démarrage du conteneur.
Infrastructure
Le déploiement en conteneurs rend possible l'application des migrations au démarrage : chaque conteneur met le schéma à jour avant de servir la moindre requête.