Skip to main content

Commissions

Endpoint reference: ✅ Verified live against production on 10 May 2026. Commissions are the holder’s earnings from sold orders. Each delivered order generates a commission record tied to that holder’s NFT. Dr Green pays commissions in either USD (fiat) or ETH (on-chain), so amounts are tracked in both currencies on every record.

Endpoints


Status enum

(Other states may exist — PROCESSING, FAILED — but only PENDING and PAID were observed live.)

GET /dapp/commissions — list records

Each record represents one order’s commission. Paginated.

Query parameters

Canonical payload

urlencode(query) if any present, else "{}".

Response shape (verified)

🪲 amountInEth is null on PAID records in observed data — even though the field exists. Either ETH wasn’t the payout rail for those, or it’s a backend gap. Defensively handle null. Display amountInDollar as the primary figure.
🪲 order.currency and order.agentProfitInUSD are both null in observed records. They’re declared in the response but populated inconsistently. Don’t rely on either for display — use order.totalAmount (USD) and order.agentProfit.
🪲 order.orderLogs[] is an audit trail with activity strings like "Delivered", "Approved", "Created". Useful for showing a per-order timeline if you surface order history.
🪲 isPayable appears to gate whether the holder can claim — true after the order is delivered, false while in earlier states. Confirm with Dr Green for full state machine. 🔒

GET /dapp/commissions/summary — aggregate by status

The headline numbers for a holder’s earnings dashboard.

Canonical payload

{}

Response shape (verified)

⚠️ The wrapper field is commissionSummary, not summary. Other endpoints use summary. Mind the inconsistency.
🪲 totalInDollar is just PENDING.amountInDollar + PAID.amountInDollar. No equivalent totalInEth. If you need it, sum yourself.

Display patterns


GET /dapp/commissions/managers — sub-manager commissions

For holders who run a team. Returns commissions earned by managers under this holder. Paginated.

Canonical payload

urlencode(query) if pagination params, else "{}".

Response shape

🔒 The shape of an individual manager record is not yet captured live — the test holder for verification has no managers (itemCount: 0). Backend code suggests fields include userId, firstName, lastName, email, plus per-manager commission stats.

GET /dapp/commissions/managers/summary — manager-team aggregate

Canonical payload

{}

Response shape (verified)

🪲 inActiveAgents (camelCase split inconsistently — usual would be inactiveAgents). Document the field name as-is.
🪲 All totalCommission figures are USD only here — no ETH equivalent at the manager-summary level.

Common patterns

Render a “what am I owed” widget

Reconcile against orders

Polling for commission accrual

Commissions appear after Dr Green marks an order DELIVERED. Poll /dapp/commissions/summary every 15 minutes when an order has been recently approved; switch to longer intervals once delivery confirmed.

Caching guidance


See also

  • Orders — every commission references an order
  • Sales — commissions accrue from won sales
  • Dashboard — top-line numbers including commissions