Stripe · Capability

Stripe Disputes API — Disputes

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

Run with Naftiko StripeDisputes

What You Can Do

GET
Getdisputes

Returns a list of your disputes.

/v1/v1/disputes
GET
Getdisputesdispute

Retrieves the dispute with the given ID.

/v1/v1/disputes/{dispute}
POST
Postdisputesdispute

When you get a dispute, contacting your customer is always the best first step. If that doesn’t work, you can submit evidence to help us resolve the dispute in your favor. You can do this in your /v1/v1/disputes/{dispute}

POST
Postdisputesdisputeclose

Closing the dispute for a charge indicates that you do not have any evidence to submit and are essentially dismissing the dispute, acknowledging it as lost.

/v1/v1/disputes/{dispute}/close

MCP Tools

p-returns-list-your-disputes-p

Returns a list of your disputes.

read-only idempotent
p-retrieves-dispute-given-id-p

Retrieves the dispute with the given ID.

read-only idempotent
p-when-you-get-dispute-contacting

When you get a dispute, contacting your customer is always the best first step. If that doesn’t work, you can submit evidence to help us resolve the dispute in your favor. You can do this in your read-only

p-closing-dispute-charge-indicates-that

Closing the dispute for a charge indicates that you do not have any evidence to submit and are essentially dismissing the dispute, acknowledging it as lost.

Capability Spec

naftiko: 1.0.0-alpha2
info:
  label: Stripe Disputes API — Disputes
  description: 'Stripe Disputes API — Disputes. 4 operations. Lead operation: Disputes. Self-contained Naftiko capability
    covering one Stripe business surface.'
  tags:
  - Stripe
  - Disputes
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    STRIPE_API_KEY: STRIPE_API_KEY
capability:
  consumes:
  - type: http
    namespace: disputes-disputes
    baseUri: https://api.stripe.com
    description: Stripe Disputes API — Disputes business capability. Self-contained, no shared references.
    resources:
    - name: v1-disputes
      path: /v1/disputes
      operations:
      - name: getdisputes
        method: GET
        description: <p>Returns a list of your disputes.</p>
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: charge
          in: query
          type: string
          description: Only return disputes associated to the charge specified by this charge ID.
        - name: created
          in: query
          type: string
        - 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_intent
          in: query
          type: string
          description: Only return disputes associated to the PaymentIntent specified by this PaymentIntent ID.
        - 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: v1-disputes-dispute
      path: /v1/disputes/{dispute}
      operations:
      - name: getdisputesdispute
        method: GET
        description: <p>Retrieves the dispute with the given ID.</p>
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: dispute
          in: path
          type: string
          required: true
        - name: expand
          in: query
          type: array
          description: Specifies which fields in the response should be expanded.
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: postdisputesdispute
        method: POST
        description: <p>When you get a dispute, contacting your customer is always the best first step. If that doesn’t work,
          you can submit evidence to help us resolve the dispute in your favor. You can do this in your <a href="https://dashboard.stripe.com/dis
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: dispute
          in: path
          type: string
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: v1-disputes-dispute-close
      path: /v1/disputes/{dispute}/close
      operations:
      - name: postdisputesdisputeclose
        method: POST
        description: <p>Closing the dispute for a charge indicates that you do not have any evidence to submit and are essentially
          dismissing the dispute, acknowledging it as lost.</p>
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: dispute
          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: disputes-disputes-rest
    port: 8080
    description: REST adapter for Stripe Disputes API — Disputes. One Spectral-compliant resource per consumed operation,
      prefixed with /v1.
    resources:
    - path: /v1/v1/disputes
      name: v1-disputes
      description: REST surface for v1-disputes.
      operations:
      - method: GET
        name: getdisputes
        description: <p>Returns a list of your disputes.</p>
        call: disputes-disputes.getdisputes
        with:
          charge: rest.charge
          created: rest.created
          ending_before: rest.ending_before
          expand: rest.expand
          limit: rest.limit
          payment_intent: rest.payment_intent
          starting_after: rest.starting_after
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/disputes/{dispute}
      name: v1-disputes-dispute
      description: REST surface for v1-disputes-dispute.
      operations:
      - method: GET
        name: getdisputesdispute
        description: <p>Retrieves the dispute with the given ID.</p>
        call: disputes-disputes.getdisputesdispute
        with:
          dispute: rest.dispute
          expand: rest.expand
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: postdisputesdispute
        description: <p>When you get a dispute, contacting your customer is always the best first step. If that doesn’t work,
          you can submit evidence to help us resolve the dispute in your favor. You can do this in your <a href="https://dashboard.stripe.com/dis
        call: disputes-disputes.postdisputesdispute
        with:
          dispute: rest.dispute
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v1/disputes/{dispute}/close
      name: v1-disputes-dispute-close
      description: REST surface for v1-disputes-dispute-close.
      operations:
      - method: POST
        name: postdisputesdisputeclose
        description: <p>Closing the dispute for a charge indicates that you do not have any evidence to submit and are essentially
          dismissing the dispute, acknowledging it as lost.</p>
        call: disputes-disputes.postdisputesdisputeclose
        with:
          dispute: rest.dispute
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: disputes-disputes-mcp
    port: 9090
    transport: http
    description: MCP adapter for Stripe Disputes API — Disputes. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: p-returns-list-your-disputes-p
      description: <p>Returns a list of your disputes.</p>
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: disputes-disputes.getdisputes
      with:
        charge: tools.charge
        created: tools.created
        ending_before: tools.ending_before
        expand: tools.expand
        limit: tools.limit
        payment_intent: tools.payment_intent
        starting_after: tools.starting_after
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: p-retrieves-dispute-given-id-p
      description: <p>Retrieves the dispute with the given ID.</p>
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: disputes-disputes.getdisputesdispute
      with:
        dispute: tools.dispute
        expand: tools.expand
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: p-when-you-get-dispute-contacting
      description: <p>When you get a dispute, contacting your customer is always the best first step. If that doesn’t work,
        you can submit evidence to help us resolve the dispute in your favor. You can do this in your <a href="https://dashboard.stripe.com/dis
      hints:
        readOnly: true
        destructive: false
        idempotent: false
      call: disputes-disputes.postdisputesdispute
      with:
        dispute: tools.dispute
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: p-closing-dispute-charge-indicates-that
      description: <p>Closing the dispute for a charge indicates that you do not have any evidence to submit and are essentially
        dismissing the dispute, acknowledging it as lost.</p>
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: disputes-disputes.postdisputesdisputeclose
      with:
        dispute: tools.dispute
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.