Stripe · Capability

Stripe Payouts API — Payouts

Stripe Payouts API — Payouts. 6 operations. Lead operation: Payouts. Self-contained Naftiko capability covering one Stripe business surface.

Run with Naftiko StripePayouts

What You Can Do

GET
Getpayouts

Returns a list of existing payouts sent to third-party bank accounts or payouts that Stripe sent to you. The payouts return in sorted order, with the most recently created payouts appearing first.

/v1/v1/payouts
POST
Postpayouts

To send funds to your own bank account, create a new payout object. Your Stripe balance must cover the payout amount. If it doesn’t, you receive an “Insufficient Funds” error.

/v1/v1/payouts
GET
Getpayoutspayout

Retrieves the details of an existing payout. Supply the unique payout ID from either a payout creation request or the payout list. Stripe returns the corresponding payout information.

/v1/v1/payouts/{payout}
POST
Postpayoutspayout

Updates the specified payout by setting the values of the parameters you pass. We don’t change parameters that you don’t provide. This request only accepts the metadata as arguments.

/v1/v1/payouts/{payout}
POST
Postpayoutspayoutcancel

You can cancel a previously created payout if it hasn’t been paid out yet. Stripe refunds the funds to your available balance. You can’t cancel automatic Stripe payouts.

/v1/v1/payouts/{payout}/cancel
POST
Postpayoutspayoutreverse

Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts for connected accounts to US bank accounts. If the payout is in the pending status, use /v1/payouts/:id/cancel

/v1/v1/payouts/{payout}/reverse

MCP Tools

p-returns-list-existing-payouts-sent

Returns a list of existing payouts sent to third-party bank accounts or payouts that Stripe sent to you. The payouts return in sorted order, with the most recently created payouts appearing first.

read-only idempotent
p-to-send-funds-your-own

To send funds to your own bank account, create a new payout object. Your Stripe balance must cover the payout amount. If it doesn’t, you receive an “Insufficient Funds” error.

p-retrieves-details-existing-payout-supply

Retrieves the details of an existing payout. Supply the unique payout ID from either a payout creation request or the payout list. Stripe returns the corresponding payout information.

read-only idempotent
p-updates-specified-payout-setting-values

Updates the specified payout by setting the values of the parameters you pass. We don’t change parameters that you don’t provide. This request only accepts the metadata as arguments.

p-you-can-cancel-previously-created

You can cancel a previously created payout if it hasn’t been paid out yet. Stripe refunds the funds to your available balance. You can’t cancel automatic Stripe payouts.

p-reverses-payout-debiting-destination-bank

Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts for connected accounts to US bank accounts. If the payout is in the pending status, use /v1/payouts/:id/cancel

Capability Spec

payouts-payouts.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Stripe Payouts API — Payouts
  description: 'Stripe Payouts API — Payouts. 6 operations. Lead operation: Payouts. Self-contained Naftiko capability covering
    one Stripe business surface.'
  tags:
  - Stripe
  - Payouts
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    STRIPE_API_KEY: STRIPE_API_KEY
capability:
  consumes:
  - type: http
    namespace: payouts-payouts
    baseUri: https://api.stripe.com
    description: Stripe Payouts API — Payouts business capability. Self-contained, no shared references.
    resources:
    - name: v1-payouts
      path: /v1/payouts
      operations:
      - name: getpayouts
        method: GET
        description: <p>Returns a list of existing payouts sent to third-party bank accounts or payouts that Stripe sent to
          you. The payouts return in sorted order, with the most recently created payouts appearing first.</p>
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: arrival_date
          in: query
          type: string
        - name: created
          in: query
          type: string
        - name: destination
          in: query
          type: string
          description: The ID of an external account - only return payouts sent to this external account.
        - name: ending_before
          in: query
          type: string
          description: A cursor for use in pagination. `ending_before` is an object ID that defines your place in the list.
            For instance, if you make a list request and receive 100 ob
        - name: expand
          in: query
          type: array
          description: Specifies which fields in the response should be expanded.
        - name: limit
          in: query
          type: integer
          description: A limit on the number of objects to be returned. Limit can range between 1 and 100, and the default
            is 10.
        - name: starting_after
          in: query
          type: string
          description: A cursor for use in pagination. `starting_after` is an object ID that defines your place in the list.
            For instance, if you make a list request and receive 100 o
        - name: status
          in: query
          type: string
          description: 'Only return payouts that have the given status: `pending`, `paid`, `failed`, or `canceled`.'
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: postpayouts
        method: POST
        description: <p>To send funds to your own bank account, create a new payout object. Your <a href="#balance">Stripe
          balance</a> must cover the payout amount. If it doesn’t, you receive an “Insufficient Funds” error.</p>
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v1-payouts-payout
      path: /v1/payouts/{payout}
      operations:
      - name: getpayoutspayout
        method: GET
        description: <p>Retrieves the details of an existing payout. Supply the unique payout ID from either a payout creation
          request or the payout list. Stripe returns the corresponding payout information.</p>
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: expand
          in: query
          type: array
          description: Specifies which fields in the response should be expanded.
        - name: payout
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: postpayoutspayout
        method: POST
        description: <p>Updates the specified payout by setting the values of the parameters you pass. We don’t change parameters
          that you don’t provide. This request only accepts the metadata as arguments.</p>
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: payout
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1-payouts-payout-cancel
      path: /v1/payouts/{payout}/cancel
      operations:
      - name: postpayoutspayoutcancel
        method: POST
        description: <p>You can cancel a previously created payout if it hasn’t been paid out yet. Stripe refunds the funds
          to your available balance. You can’t cancel automatic Stripe payouts.</p>
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: payout
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1-payouts-payout-reverse
      path: /v1/payouts/{payout}/reverse
      operations:
      - name: postpayoutspayoutreverse
        method: POST
        description: <p>Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts
          for connected accounts to US bank accounts. If the payout is in the <code>pending</code> status, use <code>/v1/payouts/:id/cancel</cod
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: payout
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    authentication:
      type: bearer
      token: '{{env.STRIPE_API_KEY}}'
  exposes:
  - type: rest
    namespace: payouts-payouts-rest
    port: 8080
    description: REST adapter for Stripe Payouts API — Payouts. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/v1/payouts
      name: v1-payouts
      description: REST surface for v1-payouts.
      operations:
      - method: GET
        name: getpayouts
        description: <p>Returns a list of existing payouts sent to third-party bank accounts or payouts that Stripe sent to
          you. The payouts return in sorted order, with the most recently created payouts appearing first.</p>
        call: payouts-payouts.getpayouts
        with:
          arrival_date: rest.arrival_date
          created: rest.created
          destination: rest.destination
          ending_before: rest.ending_before
          expand: rest.expand
          limit: rest.limit
          starting_after: rest.starting_after
          status: rest.status
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: postpayouts
        description: <p>To send funds to your own bank account, create a new payout object. Your <a href="#balance">Stripe
          balance</a> must cover the payout amount. If it doesn’t, you receive an “Insufficient Funds” error.</p>
        call: payouts-payouts.postpayouts
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/payouts/{payout}
      name: v1-payouts-payout
      description: REST surface for v1-payouts-payout.
      operations:
      - method: GET
        name: getpayoutspayout
        description: <p>Retrieves the details of an existing payout. Supply the unique payout ID from either a payout creation
          request or the payout list. Stripe returns the corresponding payout information.</p>
        call: payouts-payouts.getpayoutspayout
        with:
          expand: rest.expand
          payout: rest.payout
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: postpayoutspayout
        description: <p>Updates the specified payout by setting the values of the parameters you pass. We don’t change parameters
          that you don’t provide. This request only accepts the metadata as arguments.</p>
        call: payouts-payouts.postpayoutspayout
        with:
          payout: rest.payout
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/payouts/{payout}/cancel
      name: v1-payouts-payout-cancel
      description: REST surface for v1-payouts-payout-cancel.
      operations:
      - method: POST
        name: postpayoutspayoutcancel
        description: <p>You can cancel a previously created payout if it hasn’t been paid out yet. Stripe refunds the funds
          to your available balance. You can’t cancel automatic Stripe payouts.</p>
        call: payouts-payouts.postpayoutspayoutcancel
        with:
          payout: rest.payout
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/payouts/{payout}/reverse
      name: v1-payouts-payout-reverse
      description: REST surface for v1-payouts-payout-reverse.
      operations:
      - method: POST
        name: postpayoutspayoutreverse
        description: <p>Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts
          for connected accounts to US bank accounts. If the payout is in the <code>pending</code> status, use <code>/v1/payouts/:id/cancel</cod
        call: payouts-payouts.postpayoutspayoutreverse
        with:
          payout: rest.payout
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: payouts-payouts-mcp
    port: 9090
    transport: http
    description: MCP adapter for Stripe Payouts API — Payouts. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: p-returns-list-existing-payouts-sent
      description: <p>Returns a list of existing payouts sent to third-party bank accounts or payouts that Stripe sent to
        you. The payouts return in sorted order, with the most recently created payouts appearing first.</p>
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: payouts-payouts.getpayouts
      with:
        arrival_date: tools.arrival_date
        created: tools.created
        destination: tools.destination
        ending_before: tools.ending_before
        expand: tools.expand
        limit: tools.limit
        starting_after: tools.starting_after
        status: tools.status
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: p-to-send-funds-your-own
      description: <p>To send funds to your own bank account, create a new payout object. Your <a href="#balance">Stripe balance</a>
        must cover the payout amount. If it doesn’t, you receive an “Insufficient Funds” error.</p>
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: payouts-payouts.postpayouts
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: p-retrieves-details-existing-payout-supply
      description: <p>Retrieves the details of an existing payout. Supply the unique payout ID from either a payout creation
        request or the payout list. Stripe returns the corresponding payout information.</p>
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: payouts-payouts.getpayoutspayout
      with:
        expand: tools.expand
        payout: tools.payout
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: p-updates-specified-payout-setting-values
      description: <p>Updates the specified payout by setting the values of the parameters you pass. We don’t change parameters
        that you don’t provide. This request only accepts the metadata as arguments.</p>
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: payouts-payouts.postpayoutspayout
      with:
        payout: tools.payout
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: p-you-can-cancel-previously-created
      description: <p>You can cancel a previously created payout if it hasn’t been paid out yet. Stripe refunds the funds
        to your available balance. You can’t cancel automatic Stripe payouts.</p>
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: payouts-payouts.postpayoutspayoutcancel
      with:
        payout: tools.payout
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: p-reverses-payout-debiting-destination-bank
      description: <p>Reverses a payout by debiting the destination bank account. At this time, you can only reverse payouts
        for connected accounts to US bank accounts. If the payout is in the <code>pending</code> status, use <code>/v1/payouts/:id/cancel</cod
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: payouts-payouts.postpayoutspayoutreverse
      with:
        payout: tools.payout
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.