Aller au contenu principal

Portefeuille commun et modèles de financement

YODI facture chaque opération selon son tarif unitaire actif. Le modèle de financement indique de quel solde le débit provient; il ne rend pas les prix des différentes opérations identiques.

Lire le modèle de financement courant​

GET https://api.yodi.tg/v1/credits/me/funding

L'endpoint utilise le cookie de session HTTP-only établi lors de la connexion YODI (JwtCookieAuthGuard), et non un bearer API key. L'API dérive le propriétaire de la session authentifiée; l'appelant ne peut pas choisir un utilisateur ou un portefeuille. Le navigateur envoie le cookie automatiquement. Ne l'exposez et ne le consignez jamais. Les exemples JSON ci-dessous montrent l'objet data dans l'enveloppe YODI standard; ils ne représentent pas la réponse HTTP complète. Toutes les valeurs numériques sont illustratives. L'objet data suit l'une des variantes strictes suivantes.

service_bucket​

{
"fundingModel": "service_bucket",
"services": {
"translation": { "quota": 100, "used": 20, "reserved": 5 },
"audio": { "quota": 0, "used": 0, "reserved": 0 },
"sms": { "quota": 0, "used": 0, "reserved": 0 },
"voice_call": { "quota": 0, "used": 0, "reserved": 0 }
},
"expiresAt": null
}

Ce modèle de compatibilité garde les crédits séparés par service. Le solde d'un service ne peut pas payer une autre catégorie. reserved correspond aux fonds bloqués pour des opérations en cours; ils ne peuvent pas financer une nouvelle opération. expiresAt est une date d'expiration UTC ou null si aucune date n'est définie.

shared_wallet​

{
"fundingModel": "shared_wallet",
"availableCredits": 75,
"reservedCredits": 10
}

Ce modèle utilise un solde unique pour les opérations compatibles. availableCredits est le montant dépensable et exclut déjà les réservations en cours. reservedCredits représente ces réservations; ne l'ajoutez pas au solde disponible et ne le dépensez pas une seconde fois. Le portefeuille ne crée pas d'allocations par module.

Tarifs, réservations et limites​

  • Consultez les prix et unités actifs dans le catalogue public GET /v1/billing/pricing. La traduction, l'audio généré, la transcription, les SMS, WhatsApp et les appels peuvent avoir des prix et unités différents.
  • Un parcours peut effectuer plusieurs opérations facturables. Une réservation est un blocage temporaire; l'API règle la quantité validée avec succès et libère le montant inutilisé selon le résultat de l'opération.
  • Les catégories de reporting expliquent les débits; en mode portefeuille commun, elles ne représentent pas des soldes indépendants.
  • Les quotas de requêtes par forfait et les limites de requêtes par minute sont distincts des crédits. Un solde ne relève pas ces limites et n'autorise pas l'accès à un module.

Compatibilité et disponibilité​

GET /v1/credits/me et /v1/services/{name}/quota exposent les anciennes vues par service. Elles ne prouvent pas que le portefeuille commun est actif. Utilisez le fundingModel retourné par /v1/credits/me/funding; ne le déduisez pas d'un forfait, d'un tarif ou de la réussite d'un autre endpoint.

L'endpoint peut retourner l'un ou l'autre modèle selon la politique active du backend. Si cette politique est indisponible ou échoue à ses contrôles de préparation, l'API échoue de manière fermée avec son enveloppe d'erreur standard. Ne supposez pas qu'un cutover du portefeuille commun est actif dans un environnement sans preuve de déploiement vérifiée séparément.

Guides associés​