> ## Documentation Index
> Fetch the complete documentation index at: https://docs.slate-labs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Request On Demand Payout

> PAY-6 (B-004): customer-initiated on-demand payout request.

For a funded journey whose payout cadence is `on_demand`, the scheduled
generator never auto-opens a cycle (it `continue`s on_demand), so without
this endpoint a funded on_demand trader could NEVER withdraw. This opens a
cycle covering [last-cycle-end-or-funded-anchor, now], closes it on demand
through the SAME `_close_cycle_and_create_request` path the scheduled
generator uses (identical cycle math, eval, equity/min-days/consistency
guards, KYC stamp, fee-refund, auto-reject) — no duplicated logic — and
returns the resulting payout_request.

Guards:
  * journey must be active + on the funded phase + account active;
  * cadence must be `on_demand` (a scheduled-cadence journey 409s — it is
    served by the generator);
  * at most one in-flight payout per account (the partial-unique index plus
    an explicit pre-check) — a duplicate concurrent request 409s;
  * the same min-amount / equity-floating / KYC checks the scheduled path
    applies (inside _close_cycle_and_create_request) decide payable vs
    auto-rejected.



## OpenAPI

````yaml /openapi.json post /challenges/me/payouts/request
openapi: 3.1.0
info:
  title: Slate API
  version: 1.0.0
  description: Trading infrastructure API.
servers:
  - url: https://api.{your-broker}.slate-labs.com
    variables:
      your-broker:
        default: broker
security: []
tags:
  - name: Authentication
  - name: API Tokens
  - name: Customers
  - name: Accounts
  - name: Orders
  - name: Instruments & Groups
  - name: Transactions
  - name: Payments
  - name: Transfers
  - name: Risk
  - name: Workflow & CRM
  - name: Messaging
  - name: Integrations
  - name: Webhooks
  - name: Compliance
  - name: Promo codes
  - name: Reporting
  - name: Audit
  - name: Fraud & moderation
  - name: Broker settings
  - name: Users
  - name: Roles & Teams
  - name: Streams (SSE)
  - name: Simulator
  - name: Observability
  - name: Prop trading
paths:
  /challenges/me/payouts/request:
    post:
      tags:
        - Prop trading
      summary: Request On Demand Payout
      description: >-
        PAY-6 (B-004): customer-initiated on-demand payout request.


        For a funded journey whose payout cadence is `on_demand`, the scheduled

        generator never auto-opens a cycle (it `continue`s on_demand), so
        without

        this endpoint a funded on_demand trader could NEVER withdraw. This opens
        a

        cycle covering [last-cycle-end-or-funded-anchor, now], closes it on
        demand

        through the SAME `_close_cycle_and_create_request` path the scheduled

        generator uses (identical cycle math, eval, equity/min-days/consistency

        guards, KYC stamp, fee-refund, auto-reject) — no duplicated logic — and

        returns the resulting payout_request.


        Guards:
          * journey must be active + on the funded phase + account active;
          * cadence must be `on_demand` (a scheduled-cadence journey 409s — it is
            served by the generator);
          * at most one in-flight payout per account (the partial-unique index plus
            an explicit pre-check) — a duplicate concurrent request 409s;
          * the same min-amount / equity-floating / KYC checks the scheduled path
            applies (inside _close_cycle_and_create_request) decide payable vs
            auto-rejected.
      operationId: request_on_demand_payout_challenges_me_payouts_request_post
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                title: >-
                  Response Request On Demand Payout Challenges Me Payouts
                  Request Post

````