PayPal · Capability

Paypal Subscriptions

You can use billing plans and subscriptions to create subscriptions that process recurring PayPal payments for physical or digital goods, or services. A plan includes pricing and billing cycle information that defines the amount and frequency of charge for a subscription. You can also define a fixed plan, such as a $5 basic plan or a volume- or graduated-based plan with pricing tiers based on the quantity purchased. For more information, see Subscriptions Overview.

Run with Naftiko PaypalAPI

What You Can Do

POST
Plans create — Paypal Create plan
/v1/billing/plans
GET
Plans list — Paypal List plans
/v1/billing/plans
GET
Plans get — Paypal Show plan details
/v1/billing/plans/{id}
PATCH
Plans patch — Paypal Update plan
/v1/billing/plans/{id}
POST
Plans activate — Paypal Activate plan
/v1/billing/plans/{id}/activate
POST
Plans deactivate — Paypal Deactivate plan
/v1/billing/plans/{id}/deactivate
POST
Plans update pricing schemes — Paypal Update pricing
/v1/billing/plans/{id}/update-pricing-schemes
POST
Subscriptions create — Paypal Create subscription
/v1/billing/subscriptions
GET
Subscriptions get — Paypal Show subscription details
/v1/billing/subscriptions/{id}
PATCH
Subscriptions patch — Paypal Update subscription
/v1/billing/subscriptions/{id}
POST
Subscriptions revise — Paypal Revise plan or quantity of subscription
/v1/billing/subscriptions/{id}/revise
POST
Subscriptions suspend — Paypal Suspend subscription
/v1/billing/subscriptions/{id}/suspend
POST
Subscriptions cancel — Paypal Cancel subscription
/v1/billing/subscriptions/{id}/cancel
POST
Subscriptions activate — Paypal Activate subscription
/v1/billing/subscriptions/{id}/activate
POST
Subscriptions capture — Paypal Capture authorized payment on subscription
/v1/billing/subscriptions/{id}/capture
GET
Subscriptions transactions — Paypal List transactions for subscription
/v1/billing/subscriptions/{id}/transactions

MCP Tools

plans-create

Paypal Create plan

plans-list

Paypal List plans

read-only idempotent
plans-get

Paypal Show plan details

read-only idempotent
plans-patch

Paypal Update plan

plans-activate

Paypal Activate plan

plans-deactivate

Paypal Deactivate plan

plans-update-pricing-schemes

Paypal Update pricing

subscriptions-create

Paypal Create subscription

subscriptions-get

Paypal Show subscription details

read-only idempotent
subscriptions-patch

Paypal Update subscription

subscriptions-revise

Paypal Revise plan or quantity of subscription

subscriptions-suspend

Paypal Suspend subscription

subscriptions-cancel

Paypal Cancel subscription

subscriptions-activate

Paypal Activate subscription

subscriptions-capture

Paypal Capture authorized payment on subscription

subscriptions-transactions

Paypal List transactions for subscription

read-only idempotent

Capability Spec

paypal-capability.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Paypal Subscriptions
  description: You can use billing plans and subscriptions to create subscriptions that process recurring PayPal payments
    for physical or digital goods, or services. A plan includes pricing and billing cycle information that defines the amount
    and frequency of charge for a subscription. You can also define a fixed plan, such as a $5 basic plan or a volume- or
    graduated-based plan with pricing tiers based on the quantity purchased. For more information, see <a href="/docs/subscriptions/">Subscriptions
    Overview</a>.
  tags:
  - Paypal
  - API
  created: '2026-05-06'
  modified: '2026-05-06'
capability:
  consumes:
  - type: http
    namespace: paypal
    baseUri: https://api-m.sandbox.paypal.com
    description: Paypal Subscriptions HTTP API.
    authentication:
      type: bearer
      token: '{{PAYPAL_TOKEN}}'
    resources:
    - name: v1-billing-plans
      path: /v1/billing/plans
      operations:
      - name: plans-create
        method: POST
        description: Paypal Create plan
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: plans-list
        method: GET
        description: Paypal List plans
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-billing-plans-id
      path: /v1/billing/plans/{id}
      operations:
      - name: plans-get
        method: GET
        description: Paypal Show plan details
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: plans-patch
        method: PATCH
        description: Paypal Update plan
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-billing-plans-id-activate
      path: /v1/billing/plans/{id}/activate
      operations:
      - name: plans-activate
        method: POST
        description: Paypal Activate plan
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-billing-plans-id-deactivate
      path: /v1/billing/plans/{id}/deactivate
      operations:
      - name: plans-deactivate
        method: POST
        description: Paypal Deactivate plan
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-billing-plans-id-update-pricing-schemes
      path: /v1/billing/plans/{id}/update-pricing-schemes
      operations:
      - name: plans-update-pricing-schemes
        method: POST
        description: Paypal Update pricing
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-billing-subscriptions
      path: /v1/billing/subscriptions
      operations:
      - name: subscriptions-create
        method: POST
        description: Paypal Create subscription
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-billing-subscriptions-id
      path: /v1/billing/subscriptions/{id}
      operations:
      - name: subscriptions-get
        method: GET
        description: Paypal Show subscription details
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: subscriptions-patch
        method: PATCH
        description: Paypal Update subscription
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-billing-subscriptions-id-revise
      path: /v1/billing/subscriptions/{id}/revise
      operations:
      - name: subscriptions-revise
        method: POST
        description: Paypal Revise plan or quantity of subscription
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-billing-subscriptions-id-suspend
      path: /v1/billing/subscriptions/{id}/suspend
      operations:
      - name: subscriptions-suspend
        method: POST
        description: Paypal Suspend subscription
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-billing-subscriptions-id-cancel
      path: /v1/billing/subscriptions/{id}/cancel
      operations:
      - name: subscriptions-cancel
        method: POST
        description: Paypal Cancel subscription
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-billing-subscriptions-id-activate
      path: /v1/billing/subscriptions/{id}/activate
      operations:
      - name: subscriptions-activate
        method: POST
        description: Paypal Activate subscription
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-billing-subscriptions-id-capture
      path: /v1/billing/subscriptions/{id}/capture
      operations:
      - name: subscriptions-capture
        method: POST
        description: Paypal Capture authorized payment on subscription
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: v1-billing-subscriptions-id-transactions
      path: /v1/billing/subscriptions/{id}/transactions
      operations:
      - name: subscriptions-transactions
        method: GET
        description: Paypal List transactions for subscription
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
  exposes:
  - type: rest
    port: 8080
    namespace: paypal-rest
    description: REST adapter for Paypal Subscriptions.
    resources:
    - path: /v1/billing/plans
      name: plans-create
      operations:
      - method: POST
        name: plans-create
        description: Paypal Create plan
        call: paypal.plans-create
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/billing/plans
      name: plans-list
      operations:
      - method: GET
        name: plans-list
        description: Paypal List plans
        call: paypal.plans-list
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/billing/plans/{id}
      name: plans-get
      operations:
      - method: GET
        name: plans-get
        description: Paypal Show plan details
        call: paypal.plans-get
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/billing/plans/{id}
      name: plans-patch
      operations:
      - method: PATCH
        name: plans-patch
        description: Paypal Update plan
        call: paypal.plans-patch
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/billing/plans/{id}/activate
      name: plans-activate
      operations:
      - method: POST
        name: plans-activate
        description: Paypal Activate plan
        call: paypal.plans-activate
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/billing/plans/{id}/deactivate
      name: plans-deactivate
      operations:
      - method: POST
        name: plans-deactivate
        description: Paypal Deactivate plan
        call: paypal.plans-deactivate
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/billing/plans/{id}/update-pricing-schemes
      name: plans-update-pricing-schemes
      operations:
      - method: POST
        name: plans-update-pricing-schemes
        description: Paypal Update pricing
        call: paypal.plans-update-pricing-schemes
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/billing/subscriptions
      name: subscriptions-create
      operations:
      - method: POST
        name: subscriptions-create
        description: Paypal Create subscription
        call: paypal.subscriptions-create
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/billing/subscriptions/{id}
      name: subscriptions-get
      operations:
      - method: GET
        name: subscriptions-get
        description: Paypal Show subscription details
        call: paypal.subscriptions-get
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/billing/subscriptions/{id}
      name: subscriptions-patch
      operations:
      - method: PATCH
        name: subscriptions-patch
        description: Paypal Update subscription
        call: paypal.subscriptions-patch
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/billing/subscriptions/{id}/revise
      name: subscriptions-revise
      operations:
      - method: POST
        name: subscriptions-revise
        description: Paypal Revise plan or quantity of subscription
        call: paypal.subscriptions-revise
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/billing/subscriptions/{id}/suspend
      name: subscriptions-suspend
      operations:
      - method: POST
        name: subscriptions-suspend
        description: Paypal Suspend subscription
        call: paypal.subscriptions-suspend
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/billing/subscriptions/{id}/cancel
      name: subscriptions-cancel
      operations:
      - method: POST
        name: subscriptions-cancel
        description: Paypal Cancel subscription
        call: paypal.subscriptions-cancel
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/billing/subscriptions/{id}/activate
      name: subscriptions-activate
      operations:
      - method: POST
        name: subscriptions-activate
        description: Paypal Activate subscription
        call: paypal.subscriptions-activate
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/billing/subscriptions/{id}/capture
      name: subscriptions-capture
      operations:
      - method: POST
        name: subscriptions-capture
        description: Paypal Capture authorized payment on subscription
        call: paypal.subscriptions-capture
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/billing/subscriptions/{id}/transactions
      name: subscriptions-transactions
      operations:
      - method: GET
        name: subscriptions-transactions
        description: Paypal List transactions for subscription
        call: paypal.subscriptions-transactions
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    port: 9090
    namespace: paypal-mcp
    transport: http
    description: MCP adapter for Paypal Subscriptions for AI agent use.
    tools:
    - name: plans-create
      description: Paypal Create plan
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: paypal.plans-create
      outputParameters:
      - type: object
        mapping: $.
    - name: plans-list
      description: Paypal List plans
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: paypal.plans-list
      outputParameters:
      - type: object
        mapping: $.
    - name: plans-get
      description: Paypal Show plan details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: paypal.plans-get
      outputParameters:
      - type: object
        mapping: $.
    - name: plans-patch
      description: Paypal Update plan
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: paypal.plans-patch
      outputParameters:
      - type: object
        mapping: $.
    - name: plans-activate
      description: Paypal Activate plan
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: paypal.plans-activate
      outputParameters:
      - type: object
        mapping: $.
    - name: plans-deactivate
      description: Paypal Deactivate plan
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: paypal.plans-deactivate
      outputParameters:
      - type: object
        mapping: $.
    - name: plans-update-pricing-schemes
      description: Paypal Update pricing
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: paypal.plans-update-pricing-schemes
      outputParameters:
      - type: object
        mapping: $.
    - name: subscriptions-create
      description: Paypal Create subscription
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: paypal.subscriptions-create
      outputParameters:
      - type: object
        mapping: $.
    - name: subscriptions-get
      description: Paypal Show subscription details
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: paypal.subscriptions-get
      outputParameters:
      - type: object
        mapping: $.
    - name: subscriptions-patch
      description: Paypal Update subscription
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: paypal.subscriptions-patch
      outputParameters:
      - type: object
        mapping: $.
    - name: subscriptions-revise
      description: Paypal Revise plan or quantity of subscription
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: paypal.subscriptions-revise
      outputParameters:
      - type: object
        mapping: $.
    - name: subscriptions-suspend
      description: Paypal Suspend subscription
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: paypal.subscriptions-suspend
      outputParameters:
      - type: object
        mapping: $.
    - name: subscriptions-cancel
      description: Paypal Cancel subscription
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: paypal.subscriptions-cancel
      outputParameters:
      - type: object
        mapping: $.
    - name: subscriptions-activate
      description: Paypal Activate subscription
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: paypal.subscriptions-activate
      outputParameters:
      - type: object
        mapping: $.
    - name: subscriptions-capture
      description: Paypal Capture authorized payment on subscription
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: paypal.subscriptions-capture
      outputParameters:
      - type: object
        mapping: $.
    - name: subscriptions-transactions
      description: Paypal List transactions for subscription
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: paypal.subscriptions-transactions
      outputParameters:
      - type: object
        mapping: $.
binds:
- namespace: env
  keys:
    PAYPAL_TOKEN: PAYPAL_TOKEN