LanaChat

API : solde, licences, retraits et factures

Lecture de 7 minMis à jour Markdown

LanaChat est payé à partir d’un solde prépayé en dollars US : les licences (une par compte Telegram, 30 jours) et une commission sur les ventes nettes sont déduites de ce solde. Vous le rechargez avec des dépôts en crypto. Les gains d’affiliation peuvent être retirés. Chaque point de terminaison de facturation nécessite un token owner : dans les exemples, $LANACHAT_TOKEN en contient un.

Endpoints #

MethodPathDescriptionPermissionStatus
GET/billing/balanceLe solde, les ventes nettes du mois et le palier de commissionownerPlanned
GET/billing/ledgerTous les mouvements : dépôts, licences, commission, remboursementsownerPlanned
GET/billing/ledger.csvLe même grand livre au format CSV (from=, to=)ownerPlanned
GET/billing/deposit-addressesUne adresse de dépôt par blockchain (avec un mémo sur Solana)ownerPlanned
GET/billing/depositsDépôts et leurs confirmationsownerPlanned
GET/billing/licencesLicences en stock et assignées, avec jours restantsownerPlanned
POST/billing/licences/buyAcheter des licences : une seule ou un pack de 10, 25 ou 50ownerPlanned
POST/billing/licences/assignAttribuer une licence du stock à un compteownerPlanned
POST/billing/licences/unassignReprendre une licence en stock avec ses jours restantsownerPlanned
PATCH/billing/licences/auto-renewActiver ou désactiver le renouvellement automatique pour un compteownerPlanned
GET/billing/withdrawalsRetraits d’affiliés et leur statutownerPlanned
POST/billing/withdrawalsDemander un retrait des gains d’affiliation (à partir de $500)ownerPlanned
GET/billing/invoicesRelevés mensuels (year=)ownerPlanned
GET/billing/invoices/{id}.pdfUn relevé au format PDFownerPlanned
PUT/billing/detailsNom de l’entreprise, adresse et numéro de TVA sur les relevésownerPlanned

Prix en un tableau #

QuoiPrix
Une licence (un compte Telegram, 30 jours)$19
Pack de 10 licences$170
Pack de 25 licences$375
Pack de 50 licences$650
Commission jusqu’à $30k de ventes nettes dans le mois12% des ventes AI, 4% des ventes manuelles
Commission de $30k à $100k10% et 3%
Commission au-delà de $100k8% et 2%

Le compteur correspond aux ventes nettes de tout l’espace de travail dans le mois calendaire ; il se réinitialise le 1er. Les Telegram Stars comptent pour $0.013 chacun dans les ventes nettes.

L’objet solde #

{
  "balance_cents": 48210,
  "month": "2026-10",
  "net_sales_cents": 1870400,
  "tier": { "up_to_cents": 3000000, "ai_rate_bp": 1200, "manual_rate_bp": 300 },
  "licences": { "in_stock": 4, "assigned": 11, "expiring_7d": 2 },
  "low_balance": false
}
ChampTypeDescription
balance_centsentierSolde prépayé, en cents US
monthchaîneMois calendaire comptabilisé, YYYY-MM
net_sales_centsentierVentes nettes de l’espace de travail ce mois
tierobjetPalier actuel : plafond up_to_cents, taux AI et taux manuel en points de base
licencesobjetLicences in_stock, assigned, et celles finissant dans 7 jours (expiring_7d)
low_balancebooléentrue quand le solde ne couvre pas les 7 prochains jours de licences

Les taux sont en points de base : 1200 correspond à 12%.

L’objet ligne du grand livre #

Chaque ligne de Billing › Activity dans la Console.

{
  "id": "led_90211",
  "at": "2026-10-06T14:40:00Z",
  "kind": "licences",
  "label": "Licences · pack of 10",
  "amount_cents": -17000,
  "balance_after_cents": 31210
}
ChampTypeDescription
idchaîneLa ligne
atchaîneISO 8601, UTC
kindchaînedeposit, licences, commission, refund, affiliate ou other
labelchaîneTexte de la ligne, comme dans la Console
amount_centsentierPositif quand de l’argent entre, négatif quand il sort
balance_after_centsentierSolde après cette ligne

Une ligne commission correspond à une vente : la Console affiche le fan, le palier, qui a envoyé l’offre (AI ou manuel), comment le net a été calculé ("12,500 ★ × $0.013") et le taux.

L’objet dépôt #

{
  "id": "dep_4",
  "at": "2026-10-06T13:52:00Z",
  "chain": "usdt-tron",
  "sent_cents": 100000,
  "fee_cents": 1000,
  "credited_cents": 99000,
  "status": "pending",
  "confirmations": "12/19"
}
ChampTypeDescription
idchaîneLe dépôt
atchaîneDate de réception, ISO 8601
chainchaîneusdc-eth, usdc-sol, usdt-sol, usdt-tron ou usdt-eth
sent_cents, fee_cents, credited_centsentierMontant envoyé, frais, montant crédité au solde
statuschaînepending puis confirmed
confirmationschaîneConfirmations réseau comptées, pendant le statut pending

USDC sur Ethereum est crédité 1:1 sans frais. Chaque autre blockchain applique 1% de frais : le dépôt est converti en USDC (ERC20) à l’arrivée. Le minimum est $25 par recharge.

L’objet licence #

{
  "account_id": "acc_1001",
  "creator_id": "cr_lea",
  "days_left": 18,
  "expires_at": "2026-10-24T09:00:00Z",
  "auto_renew": true
}
ChampTypeDescription
account_idchaîneLe compte Telegram sur lequel la licence est active
creator_idchaîneSa créatrice
days_leftentierJours restants avant expiration, sur 30
expires_atchaîneDate d’expiration
auto_renewbooléenRenouvellement automatique depuis le stock (ou achat d’une licence simple) à l’expiration

Les licences en stock sont comptées, non listées individuellement : chacune garde ses jours restants (30 pour une neuve).

L’objet retrait #

{ "id": "wd_118", "status": "pending_review", "amount_cents": 50000, "requested_at": "2026-10-06T15:00:00Z", "tx_hash": null }
ChampTypeDescription
idchaîneLe retrait
statuschaînepending_review, sent (avec tx_hash) ou rejected avec une raison
amount_centsentierMontant demandé, au moins 50000 ($500)
requested_atchaîneISO 8601, UTC
tx_hashchaîne ou nullLa transaction, une fois envoyée

L’objet facture #

{
  "id": "LC-2026-09",
  "month": "2026-09",
  "licences_cents": 22800,
  "commission_cents": 930000,
  "total_cents": 952800,
  "status": "paid",
  "pdf_url": "https://api.lanachat.ai/v1/billing/invoices/LC-2026-09.pdf"
}
ChampTypeDescription
idchaîneNuméro du relevé, LC-YYYY-MM
monthchaîneMois couvert
licences_cents, commission_cents, total_centsentierLicences, commission et total du mois
statuschaînePayé, en cours (mois actuel) ou échoué
pdf_urlchaînePDF du relevé

Solde et grand livre #

Obtenir le solde #

GET /billing/balance · owner

curl https://api.lanachat.ai/v1/billing/balance \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

La réponse est l’objet solde.

Lister le grand livre #

GET /billing/ledger · owner

ParamètreTypeObligatoireDescription
from, tochaîneNonJours YYYY-MM-DD, UTC, inclus
limit, cursornombre, chaîneNonPagination
curl "https://api.lanachat.ai/v1/billing/ledger?from=2026-10-01&to=2026-10-06" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
{
  "data": [
    { "id": "led_90211", "at": "2026-10-06T14:40:00Z", "kind": "licences", "label": "Licences · pack of 10", "amount_cents": -17000, "balance_after_cents": 31210 },
    { "id": "led_90207", "at": "2026-10-06T13:20:00Z", "kind": "commission", "label": "Lea · Marco", "amount_cents": -468, "balance_after_cents": 48210 },
    { "id": "led_90150", "at": "2026-10-05T09:02:00Z", "kind": "deposit", "label": "Deposit · USDC on Ethereum", "amount_cents": 300000, "balance_after_cents": 48678 }
  ],
  "next_cursor": "eyJpZCI6ImxlZF85MDE0OSJ9"
}

Exporter le grand livre en CSV #

GET /billing/ledger.csv · owner

ParamètreTypeObligatoireDescription
from, tochaîneNonJours YYYY-MM-DD, UTC
curl "https://api.lanachat.ai/v1/billing/ledger.csv?from=2026-09-01&to=2026-09-30" \
  -H "Authorization: Bearer $LANACHAT_TOKEN" -o ledger-2026-09.csv

Les mêmes lignes que Export CSV dans Billing › Activity, prêtes pour votre comptable.

Dépôts #

Obtenir les adresses de dépôt #

GET /billing/deposit-addresses · owner

curl https://api.lanachat.ai/v1/billing/deposit-addresses \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

La réponse donne une adresse par blockchain (Ethereum, Solana, Tron) et, pour Solana, le mémo.

Attention Sur Solana, un dépôt envoyé sans mémo ne peut pas être rattaché à votre espace de travail. Envoyez toujours l’adresse et le mémo.

Vous pouvez envoyer des USDC sur Ethereum (ERC20), USDC sur Solana, USDT sur Solana, USDT sur Tron (TRC20) ou USDT sur Ethereum (ERC20). Les frais réseau de votre transfert sont à votre charge.

Lister les dépôts #

GET /billing/deposits · owner

curl https://api.lanachat.ai/v1/billing/deposits \
  -H "Authorization: Bearer $LANACHAT_TOKEN"
{
  "data": [
    { "id": "dep_4", "at": "2026-10-06T13:52:00Z", "chain": "usdt-tron", "sent_cents": 100000, "fee_cents": 1000, "credited_cents": 99000, "status": "pending", "confirmations": "12/19" },
    { "id": "dep_3", "at": "2026-10-05T09:02:00Z", "chain": "usdc-eth", "sent_cents": 300000, "fee_cents": 0, "credited_cents": 300000, "status": "confirmed", "confirmations": null }
  ],
  "next_cursor": null
}

Le solde est crédité automatiquement quand un dépôt est confirmed ; il apparaît alors aussi comme une ligne deposit dans le grand livre.

Licences #

Lister les licences #

GET /billing/licences · owner

curl https://api.lanachat.ai/v1/billing/licences \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

La réponse donne les licences en stock et un objet licence par compte assigné, avec ses jours restants.

Acheter des licences #

POST /billing/licences/buy · owner

ParamètreTypeObligatoireDescription
packentierOui1 (simple, $19), 10 ($170), 25 ($375) ou 50 ($650)
qtyentierOuiNombre de packs
curl -X POST https://api.lanachat.ai/v1/billing/licences/buy \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"pack": 10, "qty": 1}'
{ "licences_added": 10, "amount_cents": 17000, "balance_cents": 31210, "ledger_id": "led_90211" }

Les licences vont immédiatement dans votre stock. Un solde insuffisant répond 402 (insufficient_balance). Les licences en stock n’expirent jamais, et les licences achetées ne sont pas remboursables.

Assigner une licence #

POST /billing/licences/assign · owner

ParamètreTypeObligatoireDescription
account_idchaîneOuiLe compte Telegram qui reçoit une licence
curl -X POST https://api.lanachat.ai/v1/billing/licences/assign \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"account_id": "acc_1001"}'

La réponse est l’objet licence du compte. La licence du stock avec le moins de jours restants est utilisée en premier : ses jours restants, ou 30 jours si elle est neuve. Le renouvellement automatique est activé par défaut.

Reprendre une licence #

POST /billing/licences/unassign · owner

ParamètreTypeObligatoireDescription
account_idchaîneOuiLe compte qui rend sa licence
curl -X POST https://api.lanachat.ai/v1/billing/licences/unassign \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"account_id": "acc_1001"}'

La licence retourne dans votre stock avec ses jours restants. L’IA cesse de répondre sur ce compte immédiatement. Pour déplacer une licence vers un autre compte, reprenez-la puis assignez-la : elle conserve ses jours, gratuitement.

Activer ou désactiver le renouvellement automatique #

PATCH /billing/licences/auto-renew · owner

ParamètreTypeObligatoireDescription
account_idchaîneOuiLe compte
auto_renewbooléenOuitrue pour renouveler à l’expiration
curl -X PATCH https://api.lanachat.ai/v1/billing/licences/auto-renew \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"account_id": "acc_1001", "auto_renew": false}'

À l’expiration, le renouvellement automatique prend d’abord une licence dans votre stock, ou achète une licence simple ($19) si le stock est vide. Il ne peut pas acheter sans solde : surveillez low_balance ou le webhook billing.low_balance webhook.

Retraits d’affiliés #

Lister les retraits #

GET /billing/withdrawals · owner

curl https://api.lanachat.ai/v1/billing/withdrawals \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Une liste d’objets retrait, du plus récent au plus ancien.

Demander un retrait #

POST /billing/withdrawals · owner

ParamètreTypeObligatoireDescription
amount_centsentierOuiAu moins 50000 ($500), au maximum disponible à retirer
curl -X POST https://api.lanachat.ai/v1/billing/withdrawals \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Idempotency-Key: $(uuidgen)" \
  -H "Content-Type: application/json" \
  -d '{"amount_cents": 50000}'
{ "id": "wd_118", "status": "pending_review", "amount_cents": 50000, "requested_at": "2026-10-06T15:00:00Z", "tx_hash": null }

Les gains sont envoyés en USDC au portefeuille enregistré, 7 jours après la fin du mois. Seuls les gains d’affiliation peuvent être retirés, jamais le solde prépayé. Une demande inférieure à $500 est refusée.

Relevés #

Lister les relevés #

GET /billing/invoices · owner

ParamètreTypeObligatoireDescription
yearentierNonPar exemple 2026
curl "https://api.lanachat.ai/v1/billing/invoices?year=2026" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Un objet facture par mois.

Télécharger un relevé #

GET /billing/invoices/{id}.pdf · owner

curl https://api.lanachat.ai/v1/billing/invoices/LC-2026-09.pdf \
  -H "Authorization: Bearer $LANACHAT_TOKEN" -o LC-2026-09.pdf

Attention Vérifiez vos relevés. Une erreur de facturation doit être signalée dans les 60 jours suivant le relevé qui la montre ; passé ce délai, le relevé est définitif.

Définir les détails de facturation #

PUT /billing/details · owner

ParamètreTypeObligatoireDescription
companychaîneNonNom de l’entreprise
emailchaîneNonE-mail de facturation
address, city, postal, countrychaîneNonAdresse postale
vatchaîneNonNuméro de TVA
curl -X PUT https://api.lanachat.ai/v1/billing/details \
  -H "Authorization: Bearer $LANACHAT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"company": "Mia Agency Ltd", "email": "[email protected]", "address": "12 Market Street", "city": "Dublin", "postal": "D02 X285", "country": "IE", "vat": "IE1234567T"}'

Les mêmes champs que dans Billing › Billing details. Les relevés portent ces informations. Le PUT remplace tout : un champ omis est vidé.

Les dernières nouvelles de Lana sur Telegram

Nouveautés et invitations à la bêta, en premier sur le canal.