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.
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
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: $.