LanaChat

API: saldo, licenças, saques e faturas

Leitura de 7 minAtualizado Markdown

LanaChat é pago a partir de um saldo pré-pago em dólares americanos: licenças (uma por conta do Telegram, 30 dias) e uma comissão sobre vendas líquidas são descontadas dele. Você o recarrega com depósitos em criptomoedas. Ganhos de afiliados podem ser sacados. Todo endpoint de cobrança precisa de um token de owner: nos exemplos, $LANACHAT_TOKEN contém um.

Endpoints #

MethodPathDescriptionPermissionStatus
GET/billing/balanceO saldo, vendas líquidas do mês e nível de comissãoownerPlanned
GET/billing/ledgerTodos os movimentos: depósitos, licenças, comissão, reembolsosownerPlanned
GET/billing/ledger.csvO mesmo extrato em CSV (from=, to=)ownerPlanned
GET/billing/deposit-addressesUm endereço de depósito por blockchain (com memo na Solana)ownerPlanned
GET/billing/depositsDepósitos e suas confirmaçõesownerPlanned
GET/billing/licencesLicenças em estoque e atribuídas, com dias restantesownerPlanned
POST/billing/licences/buyComprar licenças: única ou pacote de 10, 25 ou 50ownerPlanned
POST/billing/licences/assignAtribuir uma licença do estoque a uma contaownerPlanned
POST/billing/licences/unassignRetirar para o estoque com seus dias restantesownerPlanned
PATCH/billing/licences/auto-renewAtivar ou desativar renovação automática para uma contaownerPlanned
GET/billing/withdrawalsSaques de afiliados e seus statusownerPlanned
POST/billing/withdrawalsSolicitar saque de ganhos de afiliado (a partir de $500)ownerPlanned
GET/billing/invoicesExtratos mensais (year=)ownerPlanned
GET/billing/invoices/{id}.pdfUm extrato em PDFownerPlanned
PUT/billing/detailsNome da empresa, endereço e número de VAT nos extratosownerPlanned

Preços em uma tabela #

WhatPrice
Uma licença (uma conta Telegram, 30 dias)$19
Pacote de 10 licenças$170
Pacote de 25 licenças$375
Pacote de 50 licenças$650
Comissão até $30k de vendas líquidas no mês12% das vendas AI, 4% das vendas manuais
Comissão de $30k a $100k10% e 3%
Comissão acima de $100k8% e 2%

O contador é o total de vendas líquidas de todo o workspace no mês calendário; ele zera no dia 1º. Telegram Stars contam como $0.013 cada nas vendas líquidas.

The balance object #

{
  "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
}
FieldTypeDescription
balance_centsintegerSaldo pré-pago, em centavos de dólar
monthstringMês calendário contado, YYYY-MM
net_sales_centsintegerVendas líquidas do workspace neste mês
tierobjectNível atual: seu teto up_to_cents, taxa AI e taxa manual em pontos base
licencesobjectLicenças in_stock, assigned e as atribuídas que vencem em até 7 dias (expiring_7d)
low_balancebooleantrue quando o saldo não cobre os próximos 7 dias de licenças

As taxas estão em pontos base: 1200 é 12%.

The ledger entry object #

Cada linha de Billing › Activity no Console.

{
  "id": "led_90211",
  "at": "2026-10-06T14:40:00Z",
  "kind": "licences",
  "label": "Licences · pack of 10",
  "amount_cents": -17000,
  "balance_after_cents": 31210
}
FieldTypeDescription
idstringA linha
atstringISO 8601, UTC
kindstringdeposit, licences, commission, refund, affiliate ou other
labelstringTexto da linha, como no Console
amount_centsintegerPositivo quando entra dinheiro, negativo quando sai
balance_after_centsintegerSaldo após esta linha

Uma linha commission pertence a uma venda: o Console mostra o fã, o nível, quem enviou a oferta (AI ou manual), como o líquido foi contado ("12,500 ★ × $0.013") e a taxa.

The deposit object #

{
  "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"
}
FieldTypeDescription
idstringO depósito
atstringQuando foi visto, ISO 8601
chainstringusdc-eth, usdc-sol, usdt-sol, usdt-tron ou usdt-eth
sent_cents, fee_cents, credited_centsintegerO que você enviou, a taxa, o que cai no saldo
statusstringpending e depois confirmed
confirmationsstringConfirmações na rede enquanto pendente

USDC na Ethereum é creditado 1:1 sem taxa. Todas as outras blockchains têm 1% de taxa: o depósito é convertido para USDC (ERC20) ao chegar. O mínimo é $25 por recarga.

The licence object #

{
  "account_id": "acc_1001",
  "creator_id": "cr_lea",
  "days_left": 18,
  "expires_at": "2026-10-24T09:00:00Z",
  "auto_renew": true
}
FieldTypeDescription
account_idstringA conta Telegram em que a licença está ativa
creator_idstringA criadora dela
days_leftintegerDias restantes, de 30
expires_atstringQuando termina
auto_renewbooleanRenova do estoque (ou compra uma única) quando terminar

Licenças em estoque são contadas, não listadas uma a uma: cada uma mantém seus próprios dias restantes (30 para uma nova).

The withdrawal object #

{ "id": "wd_118", "status": "pending_review", "amount_cents": 50000, "requested_at": "2026-10-06T15:00:00Z", "tx_hash": null }
FieldTypeDescription
idstringO saque
statusstringpending_review, sent (com tx_hash) ou rejected com motivo
amount_centsintegerValor solicitado, no mínimo 50000 ($500)
requested_atstringISO 8601, UTC
tx_hashstring ou nullA transação, quando enviada

The invoice object #

{
  "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"
}
FieldTypeDescription
idstringNúmero do extrato, LC-YYYY-MM
monthstringMês que cobre
licences_cents, commission_cents, total_centsintegerLicenças, comissão e total do mês
statusstringPago, em andamento (mês atual) ou falhou
pdf_urlstringPDF do extrato

Balance and ledger #

Get the balance #

GET /billing/balance · owner

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

A resposta é o balance object.

List the ledger #

GET /billing/ledger · owner

ParameterTypeRequiredDescription
from, tostringNoDias YYYY-MM-DD, UTC, ambos incluídos
limit, cursornumber, stringNoPaginação
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"
}

Export the ledger as CSV #

GET /billing/ledger.csv · owner

ParameterTypeRequiredDescription
from, tostringNoDias 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

As mesmas linhas de Export CSV em Billing › Activity, prontas para seu contador.

Deposits #

Get the deposit addresses #

GET /billing/deposit-addresses · owner

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

A resposta traz um endereço por blockchain (Ethereum, Solana, Tron) e, para Solana, o memo.

Aviso Na Solana, um depósito enviado sem o memo não pode ser associado ao seu workspace. Sempre envie o endereço e o memo.

Você pode enviar USDC na Ethereum (ERC20), USDC na Solana, USDT na Solana, USDT na Tron (TRC20) ou USDT na Ethereum (ERC20). A taxa de rede da sua transferência é paga da sua carteira.

List deposits #

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
}

O saldo é creditado automaticamente quando um depósito é confirmed; ele também vira uma linha deposit no extrato.

Licences #

List licences #

GET /billing/licences · owner

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

A resposta traz as licenças em estoque e um licence object por conta atribuída, com seus dias restantes.

Buy licences #

POST /billing/licences/buy · owner

ParameterTypeRequiredDescription
packintegerYes1 (única, $19), 10 ($170), 25 ($375) ou 50 ($650)
qtyintegerYesQuantos desse pacote
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" }

As licenças vão para seu estoque imediatamente. Um saldo insuficiente responde 402 (insufficient_balance). Licenças em estoque nunca expiram, e licenças compradas não são reembolsáveis.

Assign a licence #

POST /billing/licences/assign · owner

ParameterTypeRequiredDescription
account_idstringYesA conta Telegram que recebe a licença
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"}'

A resposta é o licence object da conta. A licença do estoque com menos dias restantes é usada primeiro: seus dias restantes, ou 30 se for nova. Auto-renew vem ativado por padrão.

Take a licence back #

POST /billing/licences/unassign · owner

ParameterTypeRequiredDescription
account_idstringYesA conta que devolve a licença
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"}'

A licença volta para seu estoque com seus dias restantes. A AI para de responder nessa conta imediatamente. Para mover uma licença para outra conta, devolva-a e depois atribua: ela mantém seus dias, sem custo.

Turn auto-renew on or off #

PATCH /billing/licences/auto-renew · owner

ParameterTypeRequiredDescription
account_idstringYesA conta
auto_renewbooleanYestrue para renovar quando os dias acabarem
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 os dias acabam, auto-renew usa uma licença do estoque primeiro, ou compra uma única ($19) se o estoque estiver vazio. Não pode comprar sem saldo: fique de olho em low_balance ou no webhook billing.low_balance webhook.

Affiliate withdrawals #

List withdrawals #

GET /billing/withdrawals · owner

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

Uma lista de withdrawal objects, mais recentes primeiro.

Ask for a withdrawal #

POST /billing/withdrawals · owner

ParameterTypeRequiredDescription
amount_centsintegerYesPelo menos 50000 ($500), no máximo o disponível para saque
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 }

Os ganhos são enviados em USDC para a carteira cadastrada, 7 dias após o fim do mês. Só ganhos de afiliados podem ser sacados, nunca o saldo pré-pago. Pedido abaixo de $500 é recusado.

Statements #

List statements #

GET /billing/invoices · owner

ParameterTypeRequiredDescription
yearintegerNoPor exemplo 2026
curl "https://api.lanachat.ai/v1/billing/invoices?year=2026" \
  -H "Authorization: Bearer $LANACHAT_TOKEN"

Um invoice object por mês.

Download a statement #

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

Aviso Verifique seus extratos. Erros de cobrança devem ser reportados em até 60 dias após o extrato que os mostra; depois disso, o extrato é definitivo.

Set the billing details #

PUT /billing/details · owner

ParameterTypeRequiredDescription
companystringNoNome da empresa
emailstringNoE-mail de cobrança
address, city, postal, countrystringNoEndereço postal
vatstringNoNúmero de VAT
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"}'

Os mesmos campos de Billing › Billing details. Os extratos exibem esses dados. PUT substitui todos: um campo omitido é esvaziado.

As últimas novidades da Lana no Telegram

Novidades e convites para o beta, primeiro no canal.