Stripe · Capability

Stripe Setup API — Setup Intents

Stripe Setup API — Setup Intents. 7 operations. Lead operation: Setup Intents. Self-contained Naftiko capability covering one Stripe business surface.

Run with Naftiko StripeSetup Intents

What You Can Do

GET
Getsetupintents

Returns a list of SetupIntents.

/v1/v1/setup-intents
POST
Postsetupintents

Creates a SetupIntent object.

/v1/v1/setup-intents
GET
Getsetupintentsintent

Retrieves the details of a SetupIntent that has previously been created.

/v1/v1/setup-intents/{intent}
POST
Postsetupintentsintent

Updates a SetupIntent object.

/v1/v1/setup-intents/{intent}
POST
Postsetupintentsintentcancel

You can cancel a SetupIntent object when it’s in one of these statuses: requires_payment_method, requires_confirmation, or requires_action.

/v1/v1/setup-intents/{intent}/cancel
POST
Postsetupintentsintentconfirm

Confirm that your customer intends to set up the current or

/v1/v1/setup-intents/{intent}/confirm
POST
Postsetupintentsintentverifymicrodeposits

Verifies microdeposits on a SetupIntent object.

/v1/v1/setup-intents/{intent}/verify-microdeposits

MCP Tools

p-returns-list-setupintents-p

Returns a list of SetupIntents.

read-only idempotent
p-creates-setupintent-object-p

Creates a SetupIntent object.

p-retrieves-details-setupintent-that-has

Retrieves the details of a SetupIntent that has previously been created.

read-only idempotent
p-updates-setupintent-object-p

Updates a SetupIntent object.

p-you-can-cancel-setupintent-object

You can cancel a SetupIntent object when it’s in one of these statuses: requires_payment_method, requires_confirmation, or requires_action.

p-confirm-that-your-customer-intends

Confirm that your customer intends to set up the current or

p-verifies-microdeposits-setupintent-object-p

Verifies microdeposits on a SetupIntent object.

Capability Spec

setup-setup-intents.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Stripe Setup API — Setup Intents
  description: 'Stripe Setup API — Setup Intents. 7 operations. Lead operation: Setup Intents. Self-contained Naftiko capability
    covering one Stripe business surface.'
  tags:
  - Stripe
  - Setup Intents
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    STRIPE_API_KEY: STRIPE_API_KEY
capability:
  consumes:
  - type: http
    namespace: setup-setup-intents
    baseUri: https://api.stripe.com
    description: Stripe Setup API — Setup Intents business capability. Self-contained, no shared references.
    resources:
    - name: v1-setup_intents
      path: /v1/setup_intents
      operations:
      - name: getsetupintents
        method: GET
        description: <p>Returns a list of SetupIntents.</p>
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: attach_to_self
          in: query
          type: boolean
          description: If present, the SetupIntent's payment method will be attached to the in-context Stripe Account.
        - name: created
          in: query
          type: string
          description: 'A filter on the list, based on the object `created` field. The value can be a string with an integer
            Unix timestamp, or it can be a dictionary with a number of '
        - name: customer
          in: query
          type: string
          description: Only return SetupIntents for the customer specified by this customer ID.
        - 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: payment_method
          in: query
          type: string
          description: Only return SetupIntents that associate with the specified payment method.
        - 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: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: postsetupintents
        method: POST
        description: <p>Creates a SetupIntent object.</p>
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1-setup_intents-intent
      path: /v1/setup_intents/{intent}
      operations:
      - name: getsetupintentsintent
        method: GET
        description: <p>Retrieves the details of a SetupIntent that has previously been created. </p>
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: client_secret
          in: query
          type: string
          description: The client secret of the SetupIntent. We require this string if you use a publishable key to retrieve
            the SetupIntent.
        - name: expand
          in: query
          type: array
          description: Specifies which fields in the response should be expanded.
        - name: intent
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: postsetupintentsintent
        method: POST
        description: <p>Updates a SetupIntent object.</p>
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: intent
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1-setup_intents-intent-cancel
      path: /v1/setup_intents/{intent}/cancel
      operations:
      - name: postsetupintentsintentcancel
        method: POST
        description: '<p>You can cancel a SetupIntent object when it’s in one of these statuses: <code>requires_payment_method</code>,
          <code>requires_confirmation</code>, or <code>requires_action</code>. </p>'
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: intent
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1-setup_intents-intent-confirm
      path: /v1/setup_intents/{intent}/confirm
      operations:
      - name: postsetupintentsintentconfirm
        method: POST
        description: <p>Confirm that your customer intends to set up the current or
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: intent
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1-setup_intents-intent-verify_microdeposits
      path: /v1/setup_intents/{intent}/verify_microdeposits
      operations:
      - name: postsetupintentsintentverifymicrodeposits
        method: POST
        description: <p>Verifies microdeposits on a SetupIntent object.</p>
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: intent
          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: setup-setup-intents-rest
    port: 8080
    description: REST adapter for Stripe Setup API — Setup Intents. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/v1/setup-intents
      name: v1-setup-intents
      description: REST surface for v1-setup_intents.
      operations:
      - method: GET
        name: getsetupintents
        description: <p>Returns a list of SetupIntents.</p>
        call: setup-setup-intents.getsetupintents
        with:
          attach_to_self: rest.attach_to_self
          created: rest.created
          customer: rest.customer
          ending_before: rest.ending_before
          expand: rest.expand
          limit: rest.limit
          payment_method: rest.payment_method
          starting_after: rest.starting_after
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: postsetupintents
        description: <p>Creates a SetupIntent object.</p>
        call: setup-setup-intents.postsetupintents
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/setup-intents/{intent}
      name: v1-setup-intents-intent
      description: REST surface for v1-setup_intents-intent.
      operations:
      - method: GET
        name: getsetupintentsintent
        description: <p>Retrieves the details of a SetupIntent that has previously been created. </p>
        call: setup-setup-intents.getsetupintentsintent
        with:
          client_secret: rest.client_secret
          expand: rest.expand
          intent: rest.intent
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: postsetupintentsintent
        description: <p>Updates a SetupIntent object.</p>
        call: setup-setup-intents.postsetupintentsintent
        with:
          intent: rest.intent
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/setup-intents/{intent}/cancel
      name: v1-setup-intents-intent-cancel
      description: REST surface for v1-setup_intents-intent-cancel.
      operations:
      - method: POST
        name: postsetupintentsintentcancel
        description: '<p>You can cancel a SetupIntent object when it’s in one of these statuses: <code>requires_payment_method</code>,
          <code>requires_confirmation</code>, or <code>requires_action</code>. </p>'
        call: setup-setup-intents.postsetupintentsintentcancel
        with:
          intent: rest.intent
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/setup-intents/{intent}/confirm
      name: v1-setup-intents-intent-confirm
      description: REST surface for v1-setup_intents-intent-confirm.
      operations:
      - method: POST
        name: postsetupintentsintentconfirm
        description: <p>Confirm that your customer intends to set up the current or
        call: setup-setup-intents.postsetupintentsintentconfirm
        with:
          intent: rest.intent
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/setup-intents/{intent}/verify-microdeposits
      name: v1-setup-intents-intent-verify-microdeposits
      description: REST surface for v1-setup_intents-intent-verify_microdeposits.
      operations:
      - method: POST
        name: postsetupintentsintentverifymicrodeposits
        description: <p>Verifies microdeposits on a SetupIntent object.</p>
        call: setup-setup-intents.postsetupintentsintentverifymicrodeposits
        with:
          intent: rest.intent
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: setup-setup-intents-mcp
    port: 9090
    transport: http
    description: MCP adapter for Stripe Setup API — Setup Intents. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: p-returns-list-setupintents-p
      description: <p>Returns a list of SetupIntents.</p>
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: setup-setup-intents.getsetupintents
      with:
        attach_to_self: tools.attach_to_self
        created: tools.created
        customer: tools.customer
        ending_before: tools.ending_before
        expand: tools.expand
        limit: tools.limit
        payment_method: tools.payment_method
        starting_after: tools.starting_after
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: p-creates-setupintent-object-p
      description: <p>Creates a SetupIntent object.</p>
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: setup-setup-intents.postsetupintents
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: p-retrieves-details-setupintent-that-has
      description: <p>Retrieves the details of a SetupIntent that has previously been created. </p>
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: setup-setup-intents.getsetupintentsintent
      with:
        client_secret: tools.client_secret
        expand: tools.expand
        intent: tools.intent
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: p-updates-setupintent-object-p
      description: <p>Updates a SetupIntent object.</p>
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: setup-setup-intents.postsetupintentsintent
      with:
        intent: tools.intent
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: p-you-can-cancel-setupintent-object
      description: '<p>You can cancel a SetupIntent object when it’s in one of these statuses: <code>requires_payment_method</code>,
        <code>requires_confirmation</code>, or <code>requires_action</code>. </p>'
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: setup-setup-intents.postsetupintentsintentcancel
      with:
        intent: tools.intent
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: p-confirm-that-your-customer-intends
      description: <p>Confirm that your customer intends to set up the current or
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: setup-setup-intents.postsetupintentsintentconfirm
      with:
        intent: tools.intent
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: p-verifies-microdeposits-setupintent-object-p
      description: <p>Verifies microdeposits on a SetupIntent object.</p>
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: setup-setup-intents.postsetupintentsintentverifymicrodeposits
      with:
        intent: tools.intent
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.