Money

The running jobjob_7Hq2 · accepted · document.fr-CA.pdf · $49.00 final

How a Service earns and pays. One ledger the buyer, each member and you read, one carrier for every way money goes wrong, and the Stripe object behind every line.

Every Service says how it earns, and check fails one that doesn't. The buyer's money is held at the order, released by the fact the price names, and split by one ledger:

you = charge − tax − processing − AI − pay − pass-through − coverage − placement − nested Services − services.dev's take

A won deal on api.forsale leaves you $3,388.66 and one a closer loses costs $340.00, so it breaks even at 9.1% won. check prints both before your first order.

Every way money can go wrong has one carrier, named before anyone pays. The page each row links proves its cells, and flow of funds proves the Stripe column.

WhenThe buyerA memberYour brandservices.dev
A refusal$0, nothing held—$0, no AInothing
A lost deal on usd: 0$0flat pay stands; a share is $0flat pay, placement and AI: $340 on deal.ts when a closer loses itnothing
A send-back$0 only if the redo is declinedaccrued pay standsthe redothe take on what's kept
A goodwill refundrefundedaccrued and held pay standits own lineits take, refunded pro rata
A chargeback on your chargethe bank refunds thempay standsthe amount and the dispute feeits take returns on a loss
A chargeback on a member's own chargethe bank refunds themnever debitedthe amount, as make_wholeno take on it
The outcome reverses inside its windowrefunded the shareheld share pay reverses; flat pay standsthe shareits take reverses
It reverses after the windowcarries itthe pay is theirsfinalfinal
An outside fee repeatsat cost, unless you caused it—the repeat, with fault: 'brand'none on it
AI runs past its budgetnever billed—at most price.ai, then its thennone on AI
Flat pay comes before any charge$0paid, from money already drawnthe pay, debited from your accountnothing
Your balance stays negative after the draw order—pay standsowes it, and new orders waitcarries it meanwhile

Each carrier is held twice: by a gate check runs before you sell, and by the Stripe object and way back behind it:

WhenHeld byAt Stripe
A refusalact_refusedno PaymentIntent
A lost deal on usd: 0ai_unfunded, effort_chargedthe mandate is never charged; its costs are debits from your account
A send-backthe contesta declined redo is refunded
A goodwill refundheld_pay_exposedrefund from services.dev's account, your transfer reversed, the take returned
A chargeback on your chargeBrand.disputestransfer reversal from your account
A chargeback on a member's own chargemember_chargedrecovered from your account; the member's transfer stands
The outcome reverses inside its windowheld_pay_exposedrefunded from the untransferred hold
It reverses after the windowwindow_too_longnothing moves
An outside fee repeatsprice.linesa pass-through line with its receipt
AI runs past its budgetprice_below_costnothing: AI is never a charge
Flat pay before any chargepay_unfundeda debit from your account, then a transfer to the member
Your balance negative after the draw orderbalance_negativea debit to your bank account; new orders answer 402

You read every row in the owner console, a member reads their own pay in the delivery portal, and the buyer reads a receipt that names each seller.

A trademark response on api.lawyer: its pay and price, the rules row that puts the member's fee on their own rail, and the Pool's cover.

// services/trademark-response.ts
  roles: { attorney: { pool: attorneys, pay: 175 } },
  price: { usd: 349, release: 'file' },
// rules.ts
      respond: { reserved: 'bar admission', where: '*', rail: 'member', position: '…' },
// pools/attorneys.ts
  coverage: { per_act: 1_000_000, by: 'either', usd: 4 },
npx services.dev jobs ledger job_7Hq3
job_7Hq3 · api.lawyer · Trademark Office Action Response · $349.00 released on the USPTO's receipt, rcp_7Hq3
  charge        +$349.00   the client, at one checkout with two sellers
  tax              $0.00   no sales tax on a legal service in US-NY · Brand.tax 'stripe'
  processing     −$10.73   Stripe's, on both charges: $5.35 on yours, $5.38 on the attorney's, which you pay
  pay           −$175.00   the attorney's fee, sold by mbr_7Hq3 on their own account (rail member)
  pass-through     $0.00   no office fee on this response
  coverage        −$4.00   the attorneys Pool's malpractice cover, one attested act
  placement        $0.00   your own Pool
  nested           $0.00   no other Service
  AI              −$2.10   five calls, three review rounds
  take            on $170.00, the value api.lawyer adds, at your plan's rate
  you            $157.17   before the take · final 16 Nov 2026
LineWhat it isRead
Chargewhat the buyer paid, released by its factPrices, Release
Taxcollected on top of your price with Brand.tax: 'stripe', and remittedFlow of funds
ProcessingStripe's fee on each charge, yours and each member'sFlow of funds
Payeach person's fee, posted before anyone claimsPay
Pass-throughan outside fee, at cost, with its receiptLines and rails
Coveragecover per attested act, at costCoverage
Placementper Task another operator's Pool fillsShare a Pool
Nested Servicesanother Service's ledger, counted onceNested
AIat most a fifth of the price, or the ai budgetAI steps
services.dev's takeyour plan's rate on the value your brand addsPlans

check prints each ledger before tax and processing, which depend on how the buyer pays, and the job's ledger prints both. Tax is never yours, so it never enters the take's base. Processing is a cost of yours, like AI, and stays in it. A line leaves the base only with its proof, and a fee a member sells on their own account was never your charge, so it carries no take.

Each line is an entry, le_…, written once. A refund, a reversal or a dispute appends an entry that names the one it reverses, so a job's ledger reads the same next year, and every entry reconciles to a bank deposit:

Call
→ GET /owner/matters/job_7Hq3/ledger   # the owner console: append-only entries
200 · magic values: none
{
  "object": "ledger",
  "job": "job_7Hq3",
  "currency": "usd",
  "released": { "on": "file", "receipt": "rcp_7Hq3", "at": "2026-11-09T15:12:40Z" },
  "final_at": "2026-11-16T15:12:40Z",
  "charges": ["chg_7Hq3", "chg_7Hq4"],
  "entries": [
    { "id": "le_7Hq3a", "line": "charge", "amount": 34900, "brand": 17400, "member": 17500 },
    { "id": "le_7Hq3b", "line": "processing", "amount": -1073, "charges": ["chg_7Hq3", "chg_7Hq4"] },
    { "id": "le_7Hq3c", "line": "pay", "amount": -17500, "role": "attorney", "member": "mbr_7Hq3", "rail": "member", "charge": "chg_7Hq4" },
    { "id": "le_7Hq3d", "line": "coverage", "amount": -400, "to": "attorneys", "acts": 1 },
    { "id": "le_7Hq3e", "line": "ai", "amount": -210, "calls": 5 },
    { "id": "le_7Hq3f", "line": "take", "base": 17000, "charge": "chg_7Hq3" }
  ],
  "you": 15717
}

One deal, walked from the order to Friday's payout, with each branch: the deal's money.