Zuora · Capability
API Reference — Subscriptions
API Reference — Subscriptions. 12 operations. Lead operation: Create a subscription. Self-contained Naftiko capability covering one Zuora business surface.
What You Can Do
POST
Postsubscription
— Create a subscription
/v1/v1/subscriptions
GET
Getsubscriptionsbyaccount
— List subscriptions by account key
/v1/v1/subscriptions/accounts/{account-key}
POST
Postpreviewsubscription
— Preview a subscription
/v1/v1/subscriptions/preview
PUT
Putsubscription
— Update a subscription
/v1/v1/subscriptions/{subscription-key}
GET
Getsubscriptionsbykey
— Retrieve a subscription by key
/v1/v1/subscriptions/{subscription-key}
PUT
Putcancelsubscription
— Cancel a subscription
/v1/v1/subscriptions/{subscription-key}/cancel
PUT
Putdeletesubscription
— Delete a subscription by number
/v1/v1/subscriptions/{subscription-key}/delete
PUT
Putrenewsubscription
— Renew a subscription
/v1/v1/subscriptions/{subscription-key}/renew
PUT
Putresumesubscription
— Resume a subscription
/v1/v1/subscriptions/{subscription-key}/resume
PUT
Putsuspendsubscription
— Suspend a subscription
/v1/v1/subscriptions/{subscription-key}/suspend
GET
Getsubscriptionsbykeyandversion
— Retrieve a subscription by key and version
/v1/v1/subscriptions/{subscription-key}/versions/{version}
PUT
Putupdatesubscriptioncustomfieldsofaspecifiedversion
— Update subscription custom fields of a subscription version
/v1/v1/subscriptions/{subscriptionnumber}/versions/{version}/customfields
MCP Tools
create-subscription
Create a subscription
list-subscriptions-account-key
List subscriptions by account key
read-only
idempotent
preview-subscription
Preview a subscription
update-subscription
Update a subscription
idempotent
retrieve-subscription-key
Retrieve a subscription by key
read-only
idempotent
cancel-subscription
Cancel a subscription
idempotent
delete-subscription-number
Delete a subscription by number
idempotent
renew-subscription
Renew a subscription
idempotent
resume-subscription
Resume a subscription
idempotent
suspend-subscription
Suspend a subscription
idempotent
retrieve-subscription-key-and-version
Retrieve a subscription by key and version
read-only
idempotent
update-subscription-custom-fields-subscription
Update subscription custom fields of a subscription version
idempotent
Capability Spec
naftiko: 1.0.0-alpha2
info:
label: API Reference — Subscriptions
description: 'API Reference — Subscriptions. 12 operations. Lead operation: Create a subscription. Self-contained Naftiko
capability covering one Zuora business surface.'
tags:
- Zuora
- Subscriptions
created: '2026-05-19'
modified: '2026-05-19'
binds:
- namespace: env
keys:
ZUORA_API_KEY: ZUORA_API_KEY
capability:
consumes:
- type: http
namespace: v1-subscriptions
baseUri: https://rest.zuora.com
description: API Reference — Subscriptions business capability. Self-contained, no shared references.
resources:
- name: v1-subscriptions
path: /v1/subscriptions
operations:
- name: postsubscription
method: POST
description: Create a subscription
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: zuora-version
in: header
type: string
description: 'The minor version of the Zuora REST API. '
- name: Request
in: body
type: string
required: true
- name: v1-subscriptions-accounts-account-key
path: /v1/subscriptions/accounts/{account-key}
operations:
- name: getsubscriptionsbyaccount
method: GET
description: List subscriptions by account key
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: account-key
in: path
type: string
description: 'Possible values are:'
required: true
- name: charge-detail
in: query
type: string
description: The segmented rate plan charges.
- name: exclude-rate-plans-with-no-charges
in: query
type: boolean
description: If the `exclude-rate-plans-with-no-charges` is `true`, only the active charges and rate plans will
be in the response. The default value is `false`.
- name: v1-subscriptions-preview
path: /v1/subscriptions/preview
operations:
- name: postpreviewsubscription
method: POST
description: Preview a subscription
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: zuora-version
in: header
type: string
description: 'The minor version of the Zuora REST API. '
- name: Request
in: body
type: string
required: true
- name: v1-subscriptions-subscription-key
path: /v1/subscriptions/{subscription-key}
operations:
- name: putsubscription
method: PUT
description: Update a subscription
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: zuora-version
in: header
type: string
description: 'The minor version of the Zuora REST API. '
- name: subscription-key
in: path
type: string
description: 'Subscription number or ID. '
required: true
- name: Request
in: body
type: string
required: true
- name: getsubscriptionsbykey
method: GET
description: Retrieve a subscription by key
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: subscription-key
in: path
type: string
description: 'Possible values are:'
required: true
- name: charge-detail
in: query
type: string
description: 'The segmented rate plan charges. When an amendment results in a change to a charge, Zuora creates
a segmented rate plan charge. Use this field to track segment '
- name: exclude-rate-plans-with-no-charges
in: query
type: boolean
description: If the `exclude-rate-plans-with-no-charges` is `true`, only the active charges and rate plans will
be in the response. The default value is `false`.
- name: v1-subscriptions-subscription-key-cancel
path: /v1/subscriptions/{subscription-key}/cancel
operations:
- name: putcancelsubscription
method: PUT
description: Cancel a subscription
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: zuora-version
in: header
type: string
description: 'The minor version of the Zuora REST API. '
- name: subscription-key
in: path
type: string
description: Subscription number or ID. Subscription status must be `Active`.
required: true
- name: Request
in: body
type: string
required: true
- name: v1-subscriptions-subscription-key-delete
path: /v1/subscriptions/{subscription-key}/delete
operations:
- name: putdeletesubscription
method: PUT
description: Delete a subscription by number
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: subscription-key
in: path
type: string
description: Subscription number
required: true
- name: v1-subscriptions-subscription-key-renew
path: /v1/subscriptions/{subscription-key}/renew
operations:
- name: putrenewsubscription
method: PUT
description: Renew a subscription
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: zuora-version
in: header
type: string
description: 'The minor version of the Zuora REST API. '
- name: subscription-key
in: path
type: string
description: Subscription number or ID
required: true
- name: Request
in: body
type: string
required: true
- name: v1-subscriptions-subscription-key-resume
path: /v1/subscriptions/{subscription-key}/resume
operations:
- name: putresumesubscription
method: PUT
description: Resume a subscription
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: zuora-version
in: header
type: string
description: 'The minor version of the Zuora REST API. '
- name: subscription-key
in: path
type: string
description: Subscription number or ID. Subscription status must be Suspended.
required: true
- name: Request
in: body
type: string
required: true
- name: v1-subscriptions-subscription-key-suspend
path: /v1/subscriptions/{subscription-key}/suspend
operations:
- name: putsuspendsubscription
method: PUT
description: Suspend a subscription
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: zuora-version
in: header
type: string
description: 'The minor version of the Zuora REST API. '
- name: subscription-key
in: path
type: string
description: Subscription number or ID. Subscription status must be Active.
required: true
- name: Request
in: body
type: string
required: true
- name: v1-subscriptions-subscription-key-versions-version
path: /v1/subscriptions/{subscription-key}/versions/{version}
operations:
- name: getsubscriptionsbykeyandversion
method: GET
description: Retrieve a subscription by key and version
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: subscription-key
in: path
type: string
description: Subscription number. For example, A-S00000135.
required: true
- name: version
in: path
type: string
description: Subscription version. For example, 1.
required: true
- name: charge-detail
in: query
type: string
description: 'The segmented rate plan charges. When an amendment results in a change to a charge, Zuora creates
a segmented rate plan charge. Use this field to track segment '
- name: exclude-rate-plans-with-no-charges
in: query
type: boolean
description: If the `exclude-rate-plans-with-no-charges` is `true`, only the active charges and rate plans will
be in the response. The default value is `false`.
- name: v1-subscriptions-subscriptionNumber-versions-version-customFields
path: /v1/subscriptions/{subscriptionNumber}/versions/{version}/customFields
operations:
- name: putupdatesubscriptioncustomfieldsofaspecifiedversion
method: PUT
description: Update subscription custom fields of a subscription version
outputRawFormat: json
outputParameters:
- name: result
type: object
value: $.
inputParameters:
- name: subscriptionNumber
in: path
type: string
description: The subscription number to be updated.
required: true
- name: version
in: path
type: string
description: The subscription version to be updated.
required: true
- name: body
in: body
type: string
required: true
exposes:
- type: rest
namespace: v1-subscriptions-rest
port: 8080
description: REST adapter for API Reference — Subscriptions. One Spectral-compliant resource per consumed operation, prefixed
with /v1.
resources:
- path: /v1/v1/subscriptions
name: v1-subscriptions
description: REST surface for v1-subscriptions.
operations:
- method: POST
name: postsubscription
description: Create a subscription
call: v1-subscriptions.postsubscription
with:
zuora-version: rest.zuora-version
Request: rest.Request
outputParameters:
- type: object
mapping: $.
- path: /v1/v1/subscriptions/accounts/{account-key}
name: v1-subscriptions-accounts-account-key
description: REST surface for v1-subscriptions-accounts-account-key.
operations:
- method: GET
name: getsubscriptionsbyaccount
description: List subscriptions by account key
call: v1-subscriptions.getsubscriptionsbyaccount
with:
account-key: rest.account-key
charge-detail: rest.charge-detail
exclude-rate-plans-with-no-charges: rest.exclude-rate-plans-with-no-charges
outputParameters:
- type: object
mapping: $.
- path: /v1/v1/subscriptions/preview
name: v1-subscriptions-preview
description: REST surface for v1-subscriptions-preview.
operations:
- method: POST
name: postpreviewsubscription
description: Preview a subscription
call: v1-subscriptions.postpreviewsubscription
with:
zuora-version: rest.zuora-version
Request: rest.Request
outputParameters:
- type: object
mapping: $.
- path: /v1/v1/subscriptions/{subscription-key}
name: v1-subscriptions-subscription-key
description: REST surface for v1-subscriptions-subscription-key.
operations:
- method: PUT
name: putsubscription
description: Update a subscription
call: v1-subscriptions.putsubscription
with:
zuora-version: rest.zuora-version
subscription-key: rest.subscription-key
Request: rest.Request
outputParameters:
- type: object
mapping: $.
- method: GET
name: getsubscriptionsbykey
description: Retrieve a subscription by key
call: v1-subscriptions.getsubscriptionsbykey
with:
subscription-key: rest.subscription-key
charge-detail: rest.charge-detail
exclude-rate-plans-with-no-charges: rest.exclude-rate-plans-with-no-charges
outputParameters:
- type: object
mapping: $.
- path: /v1/v1/subscriptions/{subscription-key}/cancel
name: v1-subscriptions-subscription-key-cancel
description: REST surface for v1-subscriptions-subscription-key-cancel.
operations:
- method: PUT
name: putcancelsubscription
description: Cancel a subscription
call: v1-subscriptions.putcancelsubscription
with:
zuora-version: rest.zuora-version
subscription-key: rest.subscription-key
Request: rest.Request
outputParameters:
- type: object
mapping: $.
- path: /v1/v1/subscriptions/{subscription-key}/delete
name: v1-subscriptions-subscription-key-delete
description: REST surface for v1-subscriptions-subscription-key-delete.
operations:
- method: PUT
name: putdeletesubscription
description: Delete a subscription by number
call: v1-subscriptions.putdeletesubscription
with:
subscription-key: rest.subscription-key
outputParameters:
- type: object
mapping: $.
- path: /v1/v1/subscriptions/{subscription-key}/renew
name: v1-subscriptions-subscription-key-renew
description: REST surface for v1-subscriptions-subscription-key-renew.
operations:
- method: PUT
name: putrenewsubscription
description: Renew a subscription
call: v1-subscriptions.putrenewsubscription
with:
zuora-version: rest.zuora-version
subscription-key: rest.subscription-key
Request: rest.Request
outputParameters:
- type: object
mapping: $.
- path: /v1/v1/subscriptions/{subscription-key}/resume
name: v1-subscriptions-subscription-key-resume
description: REST surface for v1-subscriptions-subscription-key-resume.
operations:
- method: PUT
name: putresumesubscription
description: Resume a subscription
call: v1-subscriptions.putresumesubscription
with:
zuora-version: rest.zuora-version
subscription-key: rest.subscription-key
Request: rest.Request
outputParameters:
- type: object
mapping: $.
- path: /v1/v1/subscriptions/{subscription-key}/suspend
name: v1-subscriptions-subscription-key-suspend
description: REST surface for v1-subscriptions-subscription-key-suspend.
operations:
- method: PUT
name: putsuspendsubscription
description: Suspend a subscription
call: v1-subscriptions.putsuspendsubscription
with:
zuora-version: rest.zuora-version
subscription-key: rest.subscription-key
Request: rest.Request
outputParameters:
- type: object
mapping: $.
- path: /v1/v1/subscriptions/{subscription-key}/versions/{version}
name: v1-subscriptions-subscription-key-versions-version
description: REST surface for v1-subscriptions-subscription-key-versions-version.
operations:
- method: GET
name: getsubscriptionsbykeyandversion
description: Retrieve a subscription by key and version
call: v1-subscriptions.getsubscriptionsbykeyandversion
with:
subscription-key: rest.subscription-key
version: rest.version
charge-detail: rest.charge-detail
exclude-rate-plans-with-no-charges: rest.exclude-rate-plans-with-no-charges
outputParameters:
- type: object
mapping: $.
- path: /v1/v1/subscriptions/{subscriptionnumber}/versions/{version}/customfields
name: v1-subscriptions-subscriptionnumber-versions-version-customfields
description: REST surface for v1-subscriptions-subscriptionNumber-versions-version-customFields.
operations:
- method: PUT
name: putupdatesubscriptioncustomfieldsofaspecifiedversion
description: Update subscription custom fields of a subscription version
call: v1-subscriptions.putupdatesubscriptioncustomfieldsofaspecifiedversion
with:
subscriptionNumber: rest.subscriptionNumber
version: rest.version
body: rest.body
outputParameters:
- type: object
mapping: $.
- type: mcp
namespace: v1-subscriptions-mcp
port: 9090
transport: http
description: MCP adapter for API Reference — Subscriptions. One tool per consumed operation, routed inline through this
capability's consumes block.
tools:
- name: create-subscription
description: Create a subscription
hints:
readOnly: false
destructive: false
idempotent: false
call: v1-subscriptions.postsubscription
with:
zuora-version: tools.zuora-version
Request: tools.Request
outputParameters:
- type: object
mapping: $.
- name: list-subscriptions-account-key
description: List subscriptions by account key
hints:
readOnly: true
destructive: false
idempotent: true
call: v1-subscriptions.getsubscriptionsbyaccount
with:
account-key: tools.account-key
charge-detail: tools.charge-detail
exclude-rate-plans-with-no-charges: tools.exclude-rate-plans-with-no-charges
outputParameters:
- type: object
mapping: $.
- name: preview-subscription
description: Preview a subscription
hints:
readOnly: false
destructive: false
idempotent: false
call: v1-subscriptions.postpreviewsubscription
with:
zuora-version: tools.zuora-version
Request: tools.Request
outputParameters:
- type: object
mapping: $.
- name: update-subscription
description: Update a subscription
hints:
readOnly: false
destructive: false
idempotent: true
call: v1-subscriptions.putsubscription
with:
zuora-version: tools.zuora-version
subscription-key: tools.subscription-key
Request: tools.Request
outputParameters:
- type: object
mapping: $.
- name: retrieve-subscription-key
description: Retrieve a subscription by key
hints:
readOnly: true
destructive: false
idempotent: true
call: v1-subscriptions.getsubscriptionsbykey
with:
subscription-key: tools.subscription-key
charge-detail: tools.charge-detail
exclude-rate-plans-with-no-charges: tools.exclude-rate-plans-with-no-charges
outputParameters:
- type: object
mapping: $.
- name: cancel-subscription
description: Cancel a subscription
hints:
readOnly: false
destructive: false
idempotent: true
call: v1-subscriptions.putcancelsubscription
with:
zuora-version: tools.zuora-version
subscription-key: tools.subscription-key
Request: tools.Request
outputParameters:
- type: object
mapping: $.
- name: delete-subscription-number
description: Delete a subscription by number
hints:
readOnly: false
destructive: false
idempotent: true
call: v1-subscriptions.putdeletesubscription
with:
subscription-key: tools.subscription-key
outputParameters:
- type: object
mapping: $.
- name: renew-subscription
description: Renew a subscription
hints:
readOnly: false
destructive: false
idempotent: true
call: v1-subscriptions.putrenewsubscription
with:
zuora-version: tools.zuora-version
subscription-key: tools.subscription-key
Request: tools.Request
outputParameters:
- type: object
mapping: $.
- name: resume-subscription
description: Resume a subscription
hints:
readOnly: false
destructive: false
idempotent: true
call: v1-subscriptions.putresumesubscription
with:
zuora-version: tools.zuora-version
subscription-key: tools.subscription-key
Request: tools.Request
outputParameters:
- type: object
mapping: $.
- name: suspend-subscription
description: Suspend a subscription
hints:
readOnly: false
destructive: false
idempotent: true
call: v1-subscriptions.putsuspendsubscription
with:
zuora-version: tools.zuora-version
subscription-key: tools.subscription-key
Request: tools.Request
outputParameters:
- type: object
mapping: $.
- name: retrieve-subscription-key-and-version
description: Retrieve a subscription by key and version
hints:
readOnly: true
destructive: false
idempotent: true
call: v1-subscriptions.getsubscriptionsbykeyandversion
with:
subscription-key: tools.subscription-key
version: tools.version
charge-detail: tools.charge-detail
exclude-rate-plans-with-no-charges: tools.exclude-rate-plans-with-no-charges
outputParameters:
- type: object
mapping: $.
- name: update-subscription-custom-fields-subscription
description: Update subscription custom fields of a subscription version
hints:
readOnly: false
destructive: false
idempotent: true
call: v1-subscriptions.putupdatesubscriptioncustomfieldsofaspecifiedversion
with:
subscriptionNumber: tools.subscriptionNumber
version: tools.version
body: tools.body
outputParameters:
- type: object
mapping: $.