Skip to content
PALM SOUQ

For AI agencies and SIs

Bill every client for exactly the tokens they used.

Give each client its own workspace, budget and markup rule. PALM SOUQ isolates their spend at the gateway and turns it into an invoice line, so month end stops being a week of spreadsheets.

workspace / agency-ledger / 2026-10billing sync: Stripe
35%
$250 platform fee
Client workspaceModelToken costBudget usedInvoice line
meridian-bankGPT-4.1$3,60090%$5,110
orchid-retailClaude Haiku 4.5$1,20080%$1,870
kestrel-healthClaude Sonnet 4.5$2,31096%$3,369
polaris-eduGemini 2.5 Flash$40050%$790
Month total$7,510$11,139

gross profit on AI usage: $11,139 - $7,510 = $3,629 (33% of billings)

Month end today

Five days to send an invoice nobody can explain.

  1. Day 1

    Download provider invoices

    One OpenAI invoice, one Anthropic invoice, one cloud bill. None of them mention clients.

  2. Day 2

    Split by API key or by guesswork

    Clients that share a key are split by request logs, if anyone kept them, or by an agreed ratio.

  3. Day 3

    Apply markup in a spreadsheet

    Different clients have different terms. Errors here go straight onto an invoice.

  4. Day 5

    Answer the client's questions

    The client asks why the bill doubled. The answer is somewhere in a log nobody kept.

Isolation

Shared keys, a key per client, or a workspace per client.

Keys per client fix attribution and create a secrets problem. Workspaces fix both.

Shared provider keyKey per clientPALM SOUQ workspace per client
Cost per clientEstimated from logsExact, but keys multiplyExact, per workspace and per feature
Budget cap per clientNoProvider project limits, where offeredSoft and hard caps, fallbacks
One runaway agent affectsEvery client on the keyThat client's keyThat client's workspace only
Markup and invoice lineSpreadsheetSpreadsheetCalculated and synced to billing
Key handlingOne shared secretDozens of secretsProvider keys held in KMS; clients see none

Worked margin example

The same client, on a fixed fee and on cost plus.

A health-sector client ran $1,870 of Claude tokens last month. Here is what the agency kept under each contract.

Fixed fee
($2,000 - $1,870) / $2,000 = 6.5%
Cost plus invoice
$1,870 x 1.35 + $250 = $2,774.50
Cost plus margin
($2,774.50 - $1,870) / $2,774.50 = 32.6%

On the fixed fee, one busy month away from a loss. On cost plus, the margin holds whatever the client's usage does, and the soft cap warns both sides before the budget runs out.

workspaces/kestrel-health.tg
workspace "kestrel-health" {
  billing     = { model = "cost_plus", markup = 0.35, platform_fee_usd = 250 }
  budget_usd  = 2400
  soft_cap    = 0.80          # email the client lead and your account manager
  hard_cap    = 1.00          # pause non-critical features
  providers   = ["anthropic"] # client contract allows one provider
  region      = "eu"          # data residency per client
  sync        = { platform = "stripe", customer = "cus_Kestrel" }
}

One block per client: billing model, budget, caps, allowed providers, region and the billing customer to sync to.

Questions, answered

Can each client use different providers or regions?

Yes. Each client workspace has its own provider list, region and policies, so a health client can stay on one provider in the EU while a retail client uses several.

Can I give clients their own dashboard?

Yes. Invite client users to their workspace with a read-only role, so they see their own usage, budget and invoice lines and nothing else.

Do I need a separate provider key per client?

No. PALM SOUQ attributes by workspace and tenant header, not by key, so one provider key can serve many clients with exact attribution. Clients that insist on their own key can bring it.

How is markup billed?

Choose cost plus a percentage, a fixed rate per million tokens, or pass-through with a platform fee. PALM SOUQ calculates the line and syncs it to Stripe, Metronome, Orb or Lago.

Close the month in an afternoon.

Create a workspace per client, route their agents through PALM SOUQ, and the invoice lines write themselves.

14-day free production trial · 100k requests included · no card required