Tenants

The running jobjob_7Hq2 · waiting · on approval · $49.00 held

An integrator resells your Service as its own offer. It orders for its customer with a tenant key and On-Behalf-Of, sets its own price within your limits, and its markup is its own seller line on the receipt.

A tenant answers one question: who else may sell your Service, under their own name and price?

brand.ts
export default Brand({
  domain: 'api.lawyer',
  tenants: { limits: ['max_fee', 'regions', 'humans_earlier'] },
})

tenants opens the tenant console at /tenants, where an integrator signs up, sets its offers and reads its own jobs. limits names what a tenant's offer may set: a fee cap, the regions it sells in, and a person earlier than your line. A tenant never removes a person your Rules reserve, and never sets the client's merits: an order that tries gets merits_not_yours. Tenants run on Team.

The tenant orders with its tenant key and names its customer in On-Behalf-Of. The job waits on the client's consent before the tenant reads anything of theirs:

Terminal
$ curl -X POST https://api.lawyer/matters \
    -H 'authorization: Bearer tk_live_4Rw8' -H 'On-Behalf-Of: cus_9Lm2' \
    -d '{"service":"contract-review","contract":{"url":"https://deals.example/msa.pdf"},"max_usd":480}'
← 202 · mat_7Hq5 · waiting · on client · consent · $480.00 held
  next    hand https://api.lawyer/a/ask_7Hq5 to cus_9Lm2's signer

The tenant sells at its own price. The difference over yours is the tenant's own seller line, under the tenant's own services.dev plan and its take. Your line and its take are unchanged, and a fee the Rules put on the member's rail is the member's:

LineSellerThe take on it
The tenant's markup, $60.00the tenantthe tenant's plan's
api.lawyer's price, $420.00, less the attorney's feeapi.lawyeryours, on the value you add
The attorney's fee, inside $420.00the attorney, on their own accountnone

A receipt names at most three sellers. The buyer reads one total and one checkout.