Paystack · Capability

Paystack Subscriptions API — Plan

Paystack Subscriptions API. 11 operations. Lead operation: Paystack Create Plan. Self-contained Naftiko capability covering one Paystack business surface.

Paystack Subscriptions API — Plan is a Naftiko capability published by Paystack, one of 13 capabilities the APIs.io network indexes for this provider. It bundles 11 operations across the POST, GET, and PUT methods.

The capability includes 4 read-only operations and 7 state-changing operations. Lead operation: Paystack Create Plan. Can be deployed as a REST endpoint, MCP tool, or Agent Skill via Naftiko.

Tagged areas include Paystack, Plan, and Subscription.

Run with Naftiko PaystackPlanSubscription

What You Can Do

POST
Plancreate — Paystack Create Plan
/v1/plan
GET
Planlist — Paystack List Plans
/v1/plan
GET
Planfetch — Paystack Fetch Plan
/v1/plan/{code}
PUT
Planupdate — Paystack Update Plan
/v1/plan/{code}
POST
Subscriptioncreate — Paystack Create Subscription
/v1/subscription
GET
Subscriptionlist — Paystack List Subscriptions
/v1/subscription
GET
Subscriptionfetch — Paystack Fetch Subscription
/v1/subscription/{code}
POST
Subscriptiondisable — Paystack Disable Subscription
/v1/subscription/disable
POST
Subscriptionenable — Paystack Enable Subscription
/v1/subscription/enable
POST
Subscriptionmanagelink — Paystack Generate Update Subscription Link
/v1/subscription/{code}/manage/link
POST
Subscriptionmanageemail — Paystack Send Update Subscription Link
/v1/subscription/{code}/manage/email

MCP Tools

paystack-create-plan

Paystack Create Plan

paystack-list-plans

Paystack List Plans

read-only idempotent
paystack-fetch-plan

Paystack Fetch Plan

read-only idempotent
paystack-update-plan

Paystack Update Plan

idempotent
paystack-create-subscription

Paystack Create Subscription

paystack-list-subscriptions

Paystack List Subscriptions

read-only idempotent
paystack-fetch-subscription

Paystack Fetch Subscription

read-only idempotent
paystack-disable-subscription

Paystack Disable Subscription

paystack-enable-subscription

Paystack Enable Subscription

paystack-generate-update-subscription-link

Paystack Generate Update Subscription Link

paystack-send-update-subscription-link

Paystack Send Update Subscription Link

Capability Spec

subscriptions.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: "Paystack Subscriptions API \u2014 Plan"
  description: 'Paystack Subscriptions API. 11 operations. Lead operation: Paystack Create Plan. Self-contained Naftiko capability
    covering one Paystack business surface.'
  tags:
  - Paystack
  - Plan
  - Subscription
  created: '2026-05-24'
  modified: '2026-05-24'
binds:
- namespace: env
  keys:
    PAYSTACK_SECRET_KEY: PAYSTACK_SECRET_KEY
capability:
  consumes:
  - type: http
    namespace: subscriptions-plan
    baseUri: https://api.paystack.co
    description: Paystack Subscriptions API business capability. Self-contained, no shared references.
    resources:
    - name: plan
      path: /plan
      operations:
      - name: plancreate
        method: POST
        description: Paystack Create Plan
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body.
          required: true
      - name: planlist
        method: GET
        description: Paystack List Plans
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: plan
      path: /plan/{code}
      operations:
      - name: planfetch
        method: GET
        description: Paystack Fetch Plan
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: planupdate
        method: PUT
        description: Paystack Update Plan
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body.
          required: true
    - name: subscription
      path: /subscription
      operations:
      - name: subscriptioncreate
        method: POST
        description: Paystack Create Subscription
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body.
          required: true
      - name: subscriptionlist
        method: GET
        description: Paystack List Subscriptions
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: subscription
      path: /subscription/{code}
      operations:
      - name: subscriptionfetch
        method: GET
        description: Paystack Fetch Subscription
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: subscription-disable
      path: /subscription/disable
      operations:
      - name: subscriptiondisable
        method: POST
        description: Paystack Disable Subscription
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body.
          required: true
    - name: subscription-enable
      path: /subscription/enable
      operations:
      - name: subscriptionenable
        method: POST
        description: Paystack Enable Subscription
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body.
          required: true
    - name: subscription-manage-link
      path: /subscription/{code}/manage/link
      operations:
      - name: subscriptionmanagelink
        method: POST
        description: Paystack Generate Update Subscription Link
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: subscription-manage-email
      path: /subscription/{code}/manage/email
      operations:
      - name: subscriptionmanageemail
        method: POST
        description: Paystack Send Update Subscription Link
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    authentication:
      type: bearer
      value: '{{env.PAYSTACK_SECRET_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: subscriptions-plan-rest
    port: 8080
    description: REST adapter for Paystack Subscriptions API. One resource per consumed operation, prefixed with /v1.
    resources:
    - path: /v1/plan
      name: plan
      description: REST surface for plan.
      operations:
      - method: POST
        name: plancreate
        description: Paystack Create Plan
        call: subscriptions-plan.plancreate
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
      - method: GET
        name: planlist
        description: Paystack List Plans
        call: subscriptions-plan.planlist
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/plan/{code}
      name: plan
      description: REST surface for plan.
      operations:
      - method: GET
        name: planfetch
        description: Paystack Fetch Plan
        call: subscriptions-plan.planfetch
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: planupdate
        description: Paystack Update Plan
        call: subscriptions-plan.planupdate
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/subscription
      name: subscription
      description: REST surface for subscription.
      operations:
      - method: POST
        name: subscriptioncreate
        description: Paystack Create Subscription
        call: subscriptions-plan.subscriptioncreate
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
      - method: GET
        name: subscriptionlist
        description: Paystack List Subscriptions
        call: subscriptions-plan.subscriptionlist
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscription/{code}
      name: subscription
      description: REST surface for subscription.
      operations:
      - method: GET
        name: subscriptionfetch
        description: Paystack Fetch Subscription
        call: subscriptions-plan.subscriptionfetch
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscription/disable
      name: subscription-disable
      description: REST surface for subscription-disable.
      operations:
      - method: POST
        name: subscriptiondisable
        description: Paystack Disable Subscription
        call: subscriptions-plan.subscriptiondisable
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/subscription/enable
      name: subscription-enable
      description: REST surface for subscription-enable.
      operations:
      - method: POST
        name: subscriptionenable
        description: Paystack Enable Subscription
        call: subscriptions-plan.subscriptionenable
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/subscription/{code}/manage/link
      name: subscription-manage-link
      description: REST surface for subscription-manage-link.
      operations:
      - method: POST
        name: subscriptionmanagelink
        description: Paystack Generate Update Subscription Link
        call: subscriptions-plan.subscriptionmanagelink
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/subscription/{code}/manage/email
      name: subscription-manage-email
      description: REST surface for subscription-manage-email.
      operations:
      - method: POST
        name: subscriptionmanageemail
        description: Paystack Send Update Subscription Link
        call: subscriptions-plan.subscriptionmanageemail
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: subscriptions-plan-mcp
    port: 9090
    transport: http
    description: MCP adapter for Paystack Subscriptions API. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: paystack-create-plan
      description: Paystack Create Plan
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: subscriptions-plan.plancreate
      outputParameters:
      - type: object
        mapping: $.
      with:
        body: tools.body
    - name: paystack-list-plans
      description: Paystack List Plans
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: subscriptions-plan.planlist
      outputParameters:
      - type: object
        mapping: $.
    - name: paystack-fetch-plan
      description: Paystack Fetch Plan
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: subscriptions-plan.planfetch
      outputParameters:
      - type: object
        mapping: $.
    - name: paystack-update-plan
      description: Paystack Update Plan
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: subscriptions-plan.planupdate
      outputParameters:
      - type: object
        mapping: $.
      with:
        body: tools.body
    - name: paystack-create-subscription
      description: Paystack Create Subscription
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: subscriptions-plan.subscriptioncreate
      outputParameters:
      - type: object
        mapping: $.
      with:
        body: tools.body
    - name: paystack-list-subscriptions
      description: Paystack List Subscriptions
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: subscriptions-plan.subscriptionlist
      outputParameters:
      - type: object
        mapping: $.
    - name: paystack-fetch-subscription
      description: Paystack Fetch Subscription
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: subscriptions-plan.subscriptionfetch
      outputParameters:
      - type: object
        mapping: $.
    - name: paystack-disable-subscription
      description: Paystack Disable Subscription
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: subscriptions-plan.subscriptiondisable
      outputParameters:
      - type: object
        mapping: $.
      with:
        body: tools.body
    - name: paystack-enable-subscription
      description: Paystack Enable Subscription
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: subscriptions-plan.subscriptionenable
      outputParameters:
      - type: object
        mapping: $.
      with:
        body: tools.body
    - name: paystack-generate-update-subscription-link
      description: Paystack Generate Update Subscription Link
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: subscriptions-plan.subscriptionmanagelink
      outputParameters:
      - type: object
        mapping: $.
    - name: paystack-send-update-subscription-link
      description: Paystack Send Update Subscription Link
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: subscriptions-plan.subscriptionmanageemail
      outputParameters:
      - type: object
        mapping: $.