Shift4 Payments · Capability
Shift4 Subscription Billing
Recurring billing operations on Shift4. Combines plans, subscriptions, and customer/card management to support SaaS and membership-style billing.
MCP Tools
create-customer
Create a Shift4 customer.
create-plan
Create a Shift4 plan.
create-subscription
Create a Shift4 subscription for a customer on a plan.
update-subscription
Update or cancel a Shift4 subscription.
list-plans
List Shift4 plans.
read-only
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: Shift4 Subscription Billing
description: Recurring billing operations on Shift4. Combines plans, subscriptions, and customer/card management to support
SaaS and membership-style billing.
tags:
- Shift4
- Subscriptions
- Plans
- Billing
- Customers
created: '2026-05-05'
modified: '2026-05-06'
binds:
- namespace: env
keys:
SHIFT4_API_KEY: SHIFT4_API_KEY
capability:
consumes:
- type: http
namespace: shift4-customers
baseUri: https://api.shift4.com
authentication:
type: basic
username: '{{SHIFT4_API_KEY}}'
password: ''
resources:
- name: customers
path: /customers
operations:
- name: list-customers
method: GET
description: List customers.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: create-customer
method: POST
description: Create a customer.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
body:
type: json
data:
email: '{{tools.email}}'
description: '{{tools.description}}'
- name: customer
path: /customers/{customer}
operations:
- name: get-customer
method: GET
description: Retrieve a customer by ID.
inputParameters:
- name: customer
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: update-customer
method: POST
description: Update a customer.
inputParameters:
- name: customer
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: delete-customer
method: DELETE
description: Delete a customer.
inputParameters:
- name: customer
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- type: http
namespace: shift4-subscriptions
baseUri: https://api.shift4.com
authentication:
type: basic
username: '{{SHIFT4_API_KEY}}'
password: ''
resources:
- name: plans
path: /plans
operations:
- name: list-plans
method: GET
description: List plans.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: create-plan
method: POST
description: Create a plan.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: plan
path: /plans/{plan}
operations:
- name: get-plan
method: GET
description: Retrieve a plan by ID.
inputParameters:
- name: plan
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: update-plan
method: POST
description: Update a plan.
inputParameters:
- name: plan
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: subscriptions
path: /subscriptions
operations:
- name: create-subscription
method: POST
description: Create a subscription.
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: subscription
path: /subscriptions/{subscription}
operations:
- name: get-subscription
method: GET
description: Retrieve a subscription by ID.
inputParameters:
- name: subscription
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
- name: update-subscription
method: POST
description: Update or cancel a subscription.
inputParameters:
- name: subscription
in: path
type: string
required: true
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
exposes:
- type: mcp
port: 9081
namespace: shift4-subscription-billing-mcp
transport: http
description: MCP surface for managing Shift4 subscription billing.
tools:
- name: create-customer
description: Create a Shift4 customer.
hints:
readOnly: false
destructive: false
call: shift4-customers.create-customer
outputParameters:
- type: object
mapping: $.
- name: create-plan
description: Create a Shift4 plan.
hints:
readOnly: false
destructive: false
call: shift4-subscriptions.create-plan
outputParameters:
- type: object
mapping: $.
- name: create-subscription
description: Create a Shift4 subscription for a customer on a plan.
hints:
readOnly: false
destructive: false
call: shift4-subscriptions.create-subscription
outputParameters:
- type: object
mapping: $.
- name: update-subscription
description: Update or cancel a Shift4 subscription.
hints:
readOnly: false
destructive: false
call: shift4-subscriptions.update-subscription
with:
subscription: tools.subscription
outputParameters:
- type: object
mapping: $.
- name: list-plans
description: List Shift4 plans.
hints:
readOnly: true
call: shift4-subscriptions.list-plans
outputParameters:
- type: object
mapping: $.