LanaChat

API: saldo, licenze, prelievi e fatture

7 min di letturaAggiornato Markdown

LanaChat si paga da un unico saldo prepagato in dollari USA: da questo vengono scalate le licenze (una per account Telegram, 30 giorni) e una commissione sulle vendite nette. Lo ricarichi con depositi in crypto. I guadagni da affiliato possono essere prelevati. Ogni endpoint di fatturazione richiede un token owner: negli esempi, $LANACHAT_TOKEN ne contiene uno.

Endpoints #

MethodPathDescriptionPermissionStatus
GET/billing/balanceIl saldo, le vendite nette del mese e la fascia di commissioneownerPlanned
GET/billing/ledgerOgni movimento: depositi, licenze, commissioni, rimborsiownerPlanned
GET/billing/ledger.csvLo stesso registro in CSV (from=, to=)ownerPlanned
GET/billing/deposit-addressesUn indirizzo di deposito per ogni chain (con memo su Solana)ownerPlanned
GET/billing/depositsDepositi e loro confermeownerPlanned
GET/billing/licencesLicenze in stock e assegnate, con giorni residuiownerPlanned
POST/billing/licences/buyAcquista licenze: singola o pacchetti da 10, 25 o 50ownerPlanned
POST/billing/licences/assignAssegna una licenza dallo stock a un accountownerPlanned
POST/billing/licences/unassignRitorna allo stock con i giorni residuiownerPlanned
PATCH/billing/licences/auto-renewAttiva o disattiva il rinnovo automatico per un accountownerPlanned
GET/billing/withdrawalsPrelievi affiliati e loro statoownerPlanned
POST/billing/withdrawalsRichiedi un prelievo dei guadagni affiliati (da $500)ownerPlanned
GET/billing/invoicesEstratti conto mensili (year=)ownerPlanned
GET/billing/invoices/{id}.pdfUn estratto conto in PDFownerPlanned
PUT/billing/detailsNome azienda, indirizzo e partita IVA sugli estratti contoownerPlanned

Prezzi in una tabella #

CosaPrezzo
Una licenza (un account Telegram, 30 giorni)$19
Pacchetto da 10 licenze$170
Pacchetto da 25 licenze$375
Pacchetto da 50 licenze$650
Commissione fino a $30k di vendite nette nel mese12% sulle vendite AI, 4% su vendite manuali
Commissione da $30k a $100k10% e 3%
Commissione sopra $100k8% e 2%

Il contatore è sulle vendite nette di tutto lo workspace nel mese solare; si azzera il 1°. I Telegram Stars valgono $0.013 ciascuno nelle vendite nette.

L’oggetto balance #

{
  "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
}
CampoTipoDescrizione
balance_centsintegerSaldo prepagato, in centesimi di dollaro
monthstringMese solare considerato, YYYY-MM
net_sales_centsintegerVendite nette dello workspace in questo mese
tierobjectFascia attuale: limite up_to_cents, tasso AI e tasso manuale in basis points
licencesobjectLicenze in_stock, assigned e assegnate che scadono entro 7 giorni (expiring_7d)
low_balancebooleantrue se il saldo non copre i prossimi 7 giorni di licenze

I tassi sono in basis points: 1200 significa 12%.

L’oggetto ledger entry #

Ogni riga di Billing › Activity nella Console.

{
  "id": "led_90211",
  "at": "2026-10-06T14:40:00Z",
  "kind": "licences",
  "label": "Licences · pack of 10",
  "amount_cents": -17000,
  "balance_after_cents": 31210
}
CampoTipoDescrizione
idstringLa riga
atstringISO 8601, UTC
kindstringdeposit, licences, commission, refund, affiliate o other
labelstringTesto della riga, come in Console
amount_centsintegerPositivo se entrano soldi, negativo se escono
balance_after_centsintegerSaldo dopo questa riga

Una riga commission appartiene a una vendita: la Console mostra il fan, la fascia, chi ha inviato l’offerta (AI o manuale), come è stato calcolato il netto ("12,500 ★ × $0.013") e il tasso.

L’oggetto deposit #

{
  "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"
}
CampoTipoDescrizione
idstringIl deposito
atstringQuando è stato visto, ISO 8601
chainstringusdc-eth, usdc-sol, usdt-sol, usdt-tron o usdt-eth
sent_cents, fee_cents, credited_centsintegerQuanto hai inviato, la fee, quanto arriva sul saldo
statusstringpending poi confirmed
confirmationsstringConferme di rete contate, mentre è pending

USDC su Ethereum è accreditato 1:1 senza fee. Ogni altra chain ha una fee dell’1%: il deposito viene convertito in USDC (ERC20) all’arrivo. Il minimo è $25 per ricarica.

L’oggetto licence #

{
  "account_id": "acc_1001",
  "creator_id": "cr_lea",
  "days_left": 18,
  "expires_at": "2026-10-24T09:00:00Z",
  "auto_renew": true
}
CampoTipoDescrizione
account_idstringL’account Telegram su cui gira la licenza
creator_idstringLa sua creator
days_leftintegerGiorni prima della scadenza, su 30
expires_atstringQuando scade
auto_renewbooleanRinnova dallo stock (o compra singola) alla scadenza

Le licenze in stock sono contate, non elencate singolarmente: ognuna mantiene i propri giorni residui (30 per una nuova).

L’oggetto withdrawal #

{ "id": "wd_118", "status": "pending_review", "amount_cents": 50000, "requested_at": "2026-10-06T15:00:00Z", "tx_hash": null }
CampoTipoDescrizione
idstringIl prelievo
statusstringpending_review, sent (con tx_hash) o rejected con motivo
amount_centsintegerImporto richiesto, almeno 50000 ($500)
requested_atstringISO 8601, UTC
tx_hashstring o nullLa transazione, una volta inviata

L’oggetto invoice #

{
  "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"
}
CampoTipoDescrizione
idstringNumero estratto conto, LC-YYYY-MM
monthstringMese coperto
licences_cents, commission_cents, total_centsintegerLicenze, commissioni e totale del mese
statusstringPagato, in corso (mese corrente) o fallito
pdf_urlstringPDF dell’estratto conto

Saldo e registro #

Ottieni il saldo #

GET /billing/balance · owner

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

La risposta è l’oggetto balance.

Elenca il registro #

GET /billing/ledger · owner

ParametroTipoObbligatorioDescrizione
from, tostringNoGiorni YYYY-MM-DD, UTC, inclusi entrambi
limit, cursornumber, stringNoPaginazione
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"
}

Esporta il registro in CSV #

GET /billing/ledger.csv · owner

ParametroTipoObbligatorioDescrizione
from, tostringNoGiorni 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

Le stesse righe di Export CSV in Billing › Activity, pronte per il tuo commercialista.

Depositi #

Ottieni gli indirizzi di deposito #

GET /billing/deposit-addresses · owner

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

La risposta fornisce un indirizzo per ogni chain (Ethereum, Solana, Tron) e, per Solana, il memo.

Attenzione Su Solana, un deposito inviato senza memo non può essere associato al tuo workspace. Invia sempre sia l’indirizzo che il memo.

Puoi inviare USDC su Ethereum (ERC20), USDC su Solana, USDT su Solana, USDT su Tron (TRC20) o USDT su Ethereum (ERC20). La fee di rete del trasferimento è a carico del tuo wallet.

Elenca i depositi #

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
}

Il saldo viene accreditato automaticamente quando un deposito è confirmed; è anche una riga deposit nel registro.

Licenze #

Elenca le licenze #

GET /billing/licences · owner

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

La risposta fornisce le licenze in stock e un oggetto licence per ogni account assegnato, con i giorni residui.

Acquista licenze #

POST /billing/licences/buy · owner

ParametroTipoObbligatorioDescrizione
packintegerSì1 (singola, $19), 10 ($170), 25 ($375) o 50 ($650)
qtyintegerSìQuanti di quel pacchetto
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" }

Le licenze vanno subito nel tuo stock. Un saldo troppo basso risponde con 402 (insufficient_balance). Le licenze in stock non scadono mai, e le licenze acquistate non sono rimborsabili.

Assegna una licenza #

POST /billing/licences/assign · owner

ParametroTipoObbligatorioDescrizione
account_idstringSìL’account Telegram che riceve la licenza
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 risposta è l’oggetto licence dell’account. Viene usata prima la licenza in stock con meno giorni residui: i suoi giorni rimanenti, o 30 se nuova. Il rinnovo automatico è attivo di default.

Riprendi una licenza #

POST /billing/licences/unassign · owner

ParametroTipoObbligatorioDescrizione
account_idstringSìL’account che restituisce la licenza
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 licenza torna nel tuo stock con i giorni residui. L’AI smette subito di rispondere su quell’account. Per spostare una licenza a un altro account, riprendila e poi assegnala: mantiene i giorni, gratuitamente.

Attiva o disattiva il rinnovo automatico #

PATCH /billing/licences/auto-renew · owner

ParametroTipoObbligatorioDescrizione
account_idstringSìL’account
auto_renewbooleanSìtrue per rinnovare quando finiscono i giorni
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}'

Quando finiscono i giorni, il rinnovo automatico prende prima una licenza dal tuo stock, o compra una singola ($19) se lo stock è vuoto. Non può comprare senza saldo: controlla low_balance o il webhook billing.low_balance webhook.

Prelievi affiliati #

Elenca i prelievi #

GET /billing/withdrawals · owner

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

Una lista di oggetti withdrawal, dal più recente.

Richiedi un prelievo #

POST /billing/withdrawals · owner

ParametroTipoObbligatorioDescrizione
amount_centsintegerSìAlmeno 50000 ($500), al massimo quanto disponibile
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 }

I guadagni vengono inviati in USDC al wallet registrato, 7 giorni dopo la fine del mese. Possono essere prelevati solo i guadagni da affiliato, mai il saldo prepagato. Una richiesta sotto i $500 viene rifiutata.

Estratti conto #

Elenca gli estratti conto #

GET /billing/invoices · owner

ParametroTipoObbligatorioDescrizione
yearintegerNoPer esempio 2026
curl "https://api.lanachat.ai/v1/billing/invoices?year=2026" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Un oggetto invoice per ogni mese.

Scarica un estratto conto #

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

Attenzione Controlla i tuoi estratti conto. Un errore di fatturazione deve essere segnalato entro 60 giorni dall’estratto che lo mostra; dopo di che l’estratto è definitivo.

Imposta i dettagli di fatturazione #

PUT /billing/details · owner

ParametroTipoObbligatorioDescrizione
companystringNoNome azienda
emailstringNoE-mail di fatturazione
address, city, postal, countrystringNoIndirizzo postale
vatstringNoPartita IVA
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"}'

Gli stessi campi di Billing › Billing details. Gli estratti conto riportano questi dati. PUT li sostituisce tutti: un campo omesso viene svuotato.

Le ultime novità su Lana su Telegram

Novità e inviti alla beta, prima di tutto nel canale.