API REST
Plano, moeda e faturamento
O plano da empresa, a moeda em que ela vê os preços e os dados de faturamento.
- Plano e moeda (a tela Empresa → Plano; só admin e dono, para os outros 403). Durante o beta nada é cobrado. Cada empresa tem uma moeda (
BRL,USD,EUR,GBP,MXN,ARS,CLPouCOP), que nasce pelo país de onde ela foi criada (sem ele, BRL), e cada plano tem um preço definido em cada moeda, mensal e anual, sem conversão. Os valores vêm emamount_minor, inteiro na unidade mínima da moeda (4990 é R$ 49,90; o peso chileno não tem casas), comamounteformatted(como a tela mostra) ao lado. GET /billing(tracker:read):currency,currency_locked(com a cobrança ligada, só a equipe da Aquarela troca a moeda),currencies,plan(key,name,description,ai_credits_per_cycle,nullpara o padrão do servidor,features, o que o plano inclui, epricesna moeda da empresa),plan_source(subscription, oudefaultquando vale o plano padrão),price(o de agora),subscription(status:trialing,active,past_dueoucanceled;interval:monthouyear;current_period_start,current_period_end,trial_ends_atebilling_provider,nullenquanto não há cobrança),plans(os que a empresa pode ter, com o preço na moeda dela),billing_detailseplan_request(o pedido de plano pago esperando a equipe da Aquarela:plan,interval,requested_byecreated_at;nullsem pedido).PATCH /billing(tracker:write), em JSON:{"currency": "USD"}troca a moeda;{"billing_details": {...}}muda os dados de faturamento, só os campos enviados (nullapaga):kind(companyouindividual),legal_name,email,country(ISO de duas letras),address_line1,address_line2,city,state,postal_code,tax_id_typeetax_id. O documento segue o país, com os tipos do Stripe:br_cnpj(empresa) ebr_cpf(pessoa física), com os dígitos conferidos,us_ein,eu_vat,gb_vat,mx_rfc,ar_cuit,cl_tineco_nit; semtax_id_type, vale o do país. Devolve o mesmo que o GET; regra recusada volta 422.POST /billing/plan(tracker:write), em JSON:{"plan": "pro", "interval": "year"}(plané akeyou oidde um dosplans;interval,monthpor padrão). Plano gratuito na moeda da empresa muda na hora (outcome:changed); plano pago, ou sem preço na moeda, vira um pedido para a equipe da Aquarela (requested), que combina o pagamento e põe a empresa no plano; o de agora devolveunchanged. Pedir outro plano troca o pedido. Devolveoutcome,plan,intervalebilling(o mesmo do GET).DELETE /billing/plan-request(tracker:write) cancela o pedido ({"cancelled": true};falsesem pedido). No MCP:get_billing,update_billing,change_planecancel_plan_request.