---
title: "Payouts Run"
method: POST
path: "/billing/payouts/run"
---

# Payouts Run

`POST /billing/payouts/run`

## Request

- Base URL: `https://api-docs.session-exchange.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api-docs.session-exchange.com/billing/payouts/run`
- Auth: none declared

Sweep cleared balances to sellers via Stripe Connect transfers (separate charges + transfers).
Gated: KYC/payouts-enabled + a Connect account + past the reserve window. WP-13: each payout is
recorded as an intent BEFORE Stripe is called and sent with a deterministic Idempotency-Key
(`agent-mdx:payout:<tenant>:<cur>-<seq>`); open intents from an earlier run are retried first
with their stored key. One run at a time (409 `payout_run_in_progress`); per-payout leases on
top. Emits marketplace.seller.payout (deduped on the Stripe transfer id) and ONE self-billing
document per transfer. Body: {dry_run?}. OFF until `AGENT_MDX_PAYOUTS=on`; with
`AGENT_MDX_PAYOUTS=dry` only `{"dry_run": true}` is accepted (#1279 G2).

## Response `200`

Successful Response

- unknown

---

[API](https://skmtc.dev/session-exchange/apis/a4sx.md) · [All operations](https://skmtc.dev/session-exchange/apis/a4sx/llms.txt) · [OpenAPI document](https://skmtc.dev/session-exchange/apis/a4sx/revisions/abaefc33dfc7?raw)
