Shift4 Payments · Capability

Shift4 Payment Processing

End-to-end payment processing on Shift4. Combines charges, refunds, checkout sessions, and disputes for e-commerce and merchant operations workflows.

Run with Naftiko Shift4PaymentsCheckoutRefundsDisputesE-Commerce

What You Can Do

GET
List charges
/charges
POST
Create charge
/charges
POST
Capture charge
/charges/{charge}/capture
POST
Create refund
/refunds
POST
Create checkout session
/checkout/sessions
GET
List disputes
/disputes

MCP Tools

create-charge

Create a Shift4 charge against a card or token.

capture-charge

Capture a previously authorized Shift4 charge.

create-refund

Refund a Shift4 charge.

create-checkout-session

Create a Shift4 hosted checkout session.

list-disputes

List Shift4 disputes.

read-only

Capability Spec

payment-processing.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Shift4 Payment Processing
  description: End-to-end payment processing on Shift4. Combines charges, refunds, checkout sessions, and disputes for e-commerce
    and merchant operations workflows.
  tags:
  - Shift4
  - Payments
  - Checkout
  - Refunds
  - Disputes
  - E-Commerce
  created: '2026-05-05'
  modified: '2026-05-06'
binds:
- namespace: env
  keys:
    SHIFT4_API_KEY: SHIFT4_API_KEY
capability:
  consumes:
  - type: http
    namespace: shift4-charges
    baseUri: https://api.shift4.com
    description: Shift4 Charges API for processing card and payment-method charges.
    authentication:
      type: basic
      username: '{{SHIFT4_API_KEY}}'
      password: ''
    resources:
    - name: charges
      path: /charges
      description: Charges collection.
      operations:
      - name: list-charges
        method: GET
        description: List charges.
        inputParameters:
        - name: limit
          in: query
          type: integer
          required: false
        - name: startingAfter
          in: query
          type: string
          required: false
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: create-charge
        method: POST
        description: Create a new charge.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        body:
          type: json
          data:
            amount: '{{tools.amount}}'
            currency: '{{tools.currency}}'
            card: '{{tools.card}}'
            description: '{{tools.description}}'
    - name: charge
      path: /charges/{charge}
      description: Individual charge resource.
      operations:
      - name: get-charge
        method: GET
        description: Retrieve a charge by ID.
        inputParameters:
        - name: charge
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: update-charge
        method: POST
        description: Update a charge.
        inputParameters:
        - name: charge
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: charge-capture
      path: /charges/{charge}/capture
      description: Capture an authorized charge.
      operations:
      - name: capture-charge
        method: POST
        description: Capture a previously authorized charge.
        inputParameters:
        - name: charge
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  - type: http
    namespace: shift4-refunds
    baseUri: https://api.shift4.com
    authentication:
      type: basic
      username: '{{SHIFT4_API_KEY}}'
      password: ''
    resources:
    - name: refunds
      path: /refunds
      operations:
      - name: list-refunds
        method: GET
        description: List refunds.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: create-refund
        method: POST
        description: Refund a charge.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        body:
          type: json
          data:
            chargeId: '{{tools.chargeId}}'
            amount: '{{tools.amount}}'
            reason: '{{tools.reason}}'
    - name: refund
      path: /refunds/{refund}
      operations:
      - name: get-refund
        method: GET
        description: Retrieve a refund by ID.
        inputParameters:
        - name: refund
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  - type: http
    namespace: shift4-checkout
    baseUri: https://api.shift4.com
    authentication:
      type: basic
      username: '{{SHIFT4_API_KEY}}'
      password: ''
    resources:
    - name: checkout-sessions
      path: /checkout/sessions
      operations:
      - name: create-checkout-session
        method: POST
        description: Create a checkout session.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: checkout-session
      path: /checkout/sessions/{session}
      operations:
      - name: get-checkout-session
        method: GET
        description: Retrieve a checkout session by ID.
        inputParameters:
        - name: session
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: payment-links
      path: /payment-links
      operations:
      - name: create-payment-link
        method: POST
        description: Create a payment link.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: payment-link
      path: /payment-links/{link}
      operations:
      - name: get-payment-link
        method: GET
        description: Retrieve a payment link by ID.
        inputParameters:
        - name: link
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  - type: http
    namespace: shift4-disputes
    baseUri: https://api.shift4.com
    authentication:
      type: basic
      username: '{{SHIFT4_API_KEY}}'
      password: ''
    resources:
    - name: disputes
      path: /disputes
      operations:
      - name: list-disputes
        method: GET
        description: List disputes.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: dispute
      path: /disputes/{dispute}
      operations:
      - name: get-dispute
        method: GET
        description: Retrieve a dispute by ID.
        inputParameters:
        - name: dispute
          in: path
          type: string
          required: true
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: fraud-warnings
      path: /fraud-warnings
      operations:
      - name: list-fraud-warnings
        method: GET
        description: List fraud warnings.
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: shift4-payment-processing-api
    description: Unified REST surface for Shift4 payment workflows.
    resources:
    - path: /charges
      name: charges
      operations:
      - method: GET
        name: list-charges
        call: shift4-charges.list-charges
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: create-charge
        call: shift4-charges.create-charge
        outputParameters:
        - type: object
          mapping: $.
    - path: /charges/{charge}/capture
      name: charge-capture
      operations:
      - method: POST
        name: capture-charge
        call: shift4-charges.capture-charge
        with:
          charge: rest.charge
        outputParameters:
        - type: object
          mapping: $.
    - path: /refunds
      name: refunds
      operations:
      - method: POST
        name: create-refund
        call: shift4-refunds.create-refund
        outputParameters:
        - type: object
          mapping: $.
    - path: /checkout/sessions
      name: checkout-sessions
      operations:
      - method: POST
        name: create-checkout-session
        call: shift4-checkout.create-checkout-session
        outputParameters:
        - type: object
          mapping: $.
    - path: /disputes
      name: disputes
      operations:
      - method: GET
        name: list-disputes
        call: shift4-disputes.list-disputes
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9080
    namespace: shift4-payment-processing-mcp
    transport: http
    description: MCP surface for AI-assisted Shift4 payment workflows.
    tools:
    - name: create-charge
      description: Create a Shift4 charge against a card or token.
      hints:
        readOnly: false
        destructive: false
      call: shift4-charges.create-charge
      outputParameters:
      - type: object
        mapping: $.
    - name: capture-charge
      description: Capture a previously authorized Shift4 charge.
      hints:
        readOnly: false
        destructive: false
      call: shift4-charges.capture-charge
      with:
        charge: tools.charge
      outputParameters:
      - type: object
        mapping: $.
    - name: create-refund
      description: Refund a Shift4 charge.
      hints:
        readOnly: false
        destructive: false
      call: shift4-refunds.create-refund
      outputParameters:
      - type: object
        mapping: $.
    - name: create-checkout-session
      description: Create a Shift4 hosted checkout session.
      hints:
        readOnly: false
        destructive: false
      call: shift4-checkout.create-checkout-session
      outputParameters:
      - type: object
        mapping: $.
    - name: list-disputes
      description: List Shift4 disputes.
      hints:
        readOnly: true
      call: shift4-disputes.list-disputes
      outputParameters:
      - type: object
        mapping: $.