Stripe · Capability

Stripe Payment Processing

Unified capability for end-to-end payment processing workflows. Combines Stripe Payment Intents and Checkout APIs to support payment creation, confirmation, capture, refunds, and dispute management. Used by e-commerce platforms, SaaS billing teams, and payment operations engineers.

Run with Naftiko StripePaymentsCheckoutRefundsDisputesE-Commerce

What You Can Do

GET
List payment intents — List payment intents
/v1/payment-intents
POST
Create payment intent — Create a payment intent
/v1/payment-intents
GET
Get payment intent — Get a payment intent
/v1/payment-intents/{intent}
POST
Confirm payment intent — Confirm payment intent
/v1/payment-intents/{intent}/confirm
POST
Capture payment intent — Capture authorized payment
/v1/payment-intents/{intent}/capture
GET
List checkout sessions — List checkout sessions
/v1/checkout-sessions
POST
Create checkout session — Create a hosted checkout session
/v1/checkout-sessions
GET
List refunds — List refunds
/v1/refunds
POST
Create refund — Create a refund
/v1/refunds
GET
List disputes — List disputes
/v1/disputes
GET
Get dispute — Get a dispute
/v1/disputes/{dispute}

MCP Tools

list-payment-intents

List Stripe payment intents with optional filters

read-only
create-payment-intent

Create a new Stripe payment intent for collecting payment

get-payment-intent

Retrieve a Stripe payment intent by ID

read-only
confirm-payment-intent

Confirm a Stripe payment intent to execute the payment

capture-payment-intent

Capture authorized funds for a Stripe payment intent

cancel-payment-intent

Cancel an uncaptured Stripe payment intent

create-checkout-session

Create a Stripe hosted checkout page for payment collection

get-checkout-session

Retrieve details of a Stripe checkout session

read-only
create-refund

Create a refund on a Stripe charge or payment intent

list-refunds

List Stripe refunds

read-only
list-disputes

List Stripe payment disputes (chargebacks)

read-only
get-dispute

Get details of a specific Stripe dispute

read-only
update-dispute

Update evidence for a Stripe dispute to contest a chargeback

APIs Used

stripe-payment-intents stripe-checkout stripe-refunds stripe-disputes

Capability Spec

payment-processing.yaml Raw ↑
naftiko: "1.0.0-alpha1"

info:
  label: "Stripe Payment Processing"
  description: >-
    Unified capability for end-to-end payment processing workflows. Combines Stripe Payment Intents
    and Checkout APIs to support payment creation, confirmation, capture, refunds, and dispute management.
    Used by e-commerce platforms, SaaS billing teams, and payment operations engineers.
  tags:
    - Stripe
    - Payments
    - Checkout
    - Refunds
    - Disputes
    - E-Commerce
  created: "2026-05-02"
  modified: "2026-05-02"

binds:
  - namespace: env
    keys:
      STRIPE_API_KEY: STRIPE_API_KEY

capability:
  consumes:
    - import: stripe-payment-intents
      location: ./shared/payment-intents.yaml
    - import: stripe-checkout
      location: ./shared/checkout.yaml
    - import: stripe-refunds
      location: ./shared/refunds.yaml
    - import: stripe-disputes
      location: ./shared/disputes.yaml

  exposes:
    - type: rest
      port: 8080
      namespace: stripe-payment-processing-api
      description: "Unified REST API for Stripe payment processing workflows."
      resources:
        - path: /v1/payment-intents
          name: payment-intents
          description: "Manage payment intents for custom payment flows"
          operations:
            - method: GET
              name: list-payment-intents
              description: "List payment intents"
              call: "stripe-payment-intents.list-payment-intents"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: create-payment-intent
              description: "Create a payment intent"
              call: "stripe-payment-intents.create-payment-intent"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/payment-intents/{intent}
          name: payment-intent
          description: "Individual payment intent"
          operations:
            - method: GET
              name: get-payment-intent
              description: "Get a payment intent"
              call: "stripe-payment-intents.get-payment-intent"
              with:
                intent: "rest.intent"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/payment-intents/{intent}/confirm
          name: payment-intent-confirm
          description: "Confirm a payment intent"
          operations:
            - method: POST
              name: confirm-payment-intent
              description: "Confirm payment intent"
              call: "stripe-payment-intents.confirm-payment-intent"
              with:
                intent: "rest.intent"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/payment-intents/{intent}/capture
          name: payment-intent-capture
          description: "Capture payment funds"
          operations:
            - method: POST
              name: capture-payment-intent
              description: "Capture authorized payment"
              call: "stripe-payment-intents.capture-payment-intent"
              with:
                intent: "rest.intent"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/checkout-sessions
          name: checkout-sessions
          description: "Hosted checkout sessions"
          operations:
            - method: GET
              name: list-checkout-sessions
              description: "List checkout sessions"
              call: "stripe-checkout.list-checkout-sessions"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: create-checkout-session
              description: "Create a hosted checkout session"
              call: "stripe-checkout.create-checkout-session"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/refunds
          name: refunds
          description: "Payment refunds"
          operations:
            - method: GET
              name: list-refunds
              description: "List refunds"
              call: "stripe-refunds.list-refunds"
              outputParameters:
                - type: object
                  mapping: "$."
            - method: POST
              name: create-refund
              description: "Create a refund"
              call: "stripe-refunds.create-refund"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/disputes
          name: disputes
          description: "Payment disputes and chargebacks"
          operations:
            - method: GET
              name: list-disputes
              description: "List disputes"
              call: "stripe-disputes.list-disputes"
              outputParameters:
                - type: object
                  mapping: "$."
        - path: /v1/disputes/{dispute}
          name: dispute
          description: "Individual dispute"
          operations:
            - method: GET
              name: get-dispute
              description: "Get a dispute"
              call: "stripe-disputes.get-dispute"
              with:
                dispute: "rest.dispute"
              outputParameters:
                - type: object
                  mapping: "$."

    - type: mcp
      port: 9080
      namespace: stripe-payment-processing-mcp
      transport: http
      description: "MCP server for AI-assisted Stripe payment processing workflows."
      tools:
        - name: list-payment-intents
          description: "List Stripe payment intents with optional filters"
          hints:
            readOnly: true
            openWorld: true
          call: "stripe-payment-intents.list-payment-intents"
          outputParameters:
            - type: object
              mapping: "$."
        - name: create-payment-intent
          description: "Create a new Stripe payment intent for collecting payment"
          hints:
            readOnly: false
            destructive: false
          call: "stripe-payment-intents.create-payment-intent"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-payment-intent
          description: "Retrieve a Stripe payment intent by ID"
          hints:
            readOnly: true
          call: "stripe-payment-intents.get-payment-intent"
          with:
            intent: "tools.intent"
          outputParameters:
            - type: object
              mapping: "$."
        - name: confirm-payment-intent
          description: "Confirm a Stripe payment intent to execute the payment"
          hints:
            readOnly: false
            destructive: false
          call: "stripe-payment-intents.confirm-payment-intent"
          with:
            intent: "tools.intent"
          outputParameters:
            - type: object
              mapping: "$."
        - name: capture-payment-intent
          description: "Capture authorized funds for a Stripe payment intent"
          hints:
            readOnly: false
            destructive: false
          call: "stripe-payment-intents.capture-payment-intent"
          with:
            intent: "tools.intent"
          outputParameters:
            - type: object
              mapping: "$."
        - name: cancel-payment-intent
          description: "Cancel an uncaptured Stripe payment intent"
          hints:
            readOnly: false
            destructive: true
          call: "stripe-payment-intents.cancel-payment-intent"
          with:
            intent: "tools.intent"
          outputParameters:
            - type: object
              mapping: "$."
        - name: create-checkout-session
          description: "Create a Stripe hosted checkout page for payment collection"
          hints:
            readOnly: false
            destructive: false
          call: "stripe-checkout.create-checkout-session"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-checkout-session
          description: "Retrieve details of a Stripe checkout session"
          hints:
            readOnly: true
          call: "stripe-checkout.get-checkout-session"
          with:
            session: "tools.session"
          outputParameters:
            - type: object
              mapping: "$."
        - name: create-refund
          description: "Create a refund on a Stripe charge or payment intent"
          hints:
            readOnly: false
            destructive: false
          call: "stripe-refunds.create-refund"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-refunds
          description: "List Stripe refunds"
          hints:
            readOnly: true
          call: "stripe-refunds.list-refunds"
          outputParameters:
            - type: object
              mapping: "$."
        - name: list-disputes
          description: "List Stripe payment disputes (chargebacks)"
          hints:
            readOnly: true
          call: "stripe-disputes.list-disputes"
          outputParameters:
            - type: object
              mapping: "$."
        - name: get-dispute
          description: "Get details of a specific Stripe dispute"
          hints:
            readOnly: true
          call: "stripe-disputes.get-dispute"
          with:
            dispute: "tools.dispute"
          outputParameters:
            - type: object
              mapping: "$."
        - name: update-dispute
          description: "Update evidence for a Stripe dispute to contest a chargeback"
          hints:
            readOnly: false
            destructive: false
          call: "stripe-disputes.update-dispute"
          with:
            dispute: "tools.dispute"
          outputParameters:
            - type: object
              mapping: "$."