Paystack · Capability

Paystack Refunds and Disputes API — Dispute

Paystack Refunds and Disputes API. 11 operations. Lead operation: Paystack Create Refund. Self-contained Naftiko capability covering one Paystack business surface.

Paystack Refunds and Disputes API — Dispute 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 GET, POST, and PUT methods.

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

Tagged areas include Paystack, Dispute, and Refund.

Run with Naftiko PaystackDisputeRefund

What You Can Do

POST
Refundcreate — Paystack Create Refund
/v1/refund
GET
Refundlist — Paystack List Refunds
/v1/refund
GET
Refundfetch — Paystack Fetch Refund
/v1/refund/{id}
GET
Disputelist — Paystack List Disputes
/v1/dispute
GET
Disputefetch — Paystack Fetch Dispute
/v1/dispute/{id}
PUT
Disputeupdate — Paystack Update Dispute
/v1/dispute/{id}
GET
Disputeuploadurl — Paystack Get Upload URL
/v1/dispute/{id}/upload_url
GET
Disputedownload — Paystack Export Disputes
/v1/dispute/export
GET
Disputetransaction — Paystack List Transaction Disputes
/v1/dispute/transaction/{id}
PUT
Disputeresolve — Paystack Resolve a Dispute
/v1/dispute/{id}/resolve
POST
Disputeevidence — Paystack Add Evidence
/v1/dispute/{id}/evidence

MCP Tools

paystack-create-refund

Paystack Create Refund

paystack-list-refunds

Paystack List Refunds

read-only idempotent
paystack-fetch-refund

Paystack Fetch Refund

read-only idempotent
paystack-list-disputes

Paystack List Disputes

read-only idempotent
paystack-fetch-dispute

Paystack Fetch Dispute

read-only idempotent
paystack-update-dispute

Paystack Update Dispute

idempotent
paystack-get-upload-url

Paystack Get Upload URL

read-only idempotent
paystack-export-disputes

Paystack Export Disputes

read-only idempotent
paystack-list-transaction-disputes

Paystack List Transaction Disputes

read-only idempotent
paystack-resolve-a-dispute

Paystack Resolve a Dispute

idempotent
paystack-add-evidence

Paystack Add Evidence

Capability Spec

refunds-disputes.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: "Paystack Refunds and Disputes API \u2014 Dispute"
  description: 'Paystack Refunds and Disputes API. 11 operations. Lead operation: Paystack Create Refund. Self-contained Naftiko
    capability covering one Paystack business surface.'
  tags:
  - Paystack
  - Dispute
  - Refund
  created: '2026-05-24'
  modified: '2026-05-24'
binds:
- namespace: env
  keys:
    PAYSTACK_SECRET_KEY: PAYSTACK_SECRET_KEY
capability:
  consumes:
  - type: http
    namespace: refunds-disputes-refund
    baseUri: https://api.paystack.co
    description: Paystack Refunds and Disputes API business capability. Self-contained, no shared references.
    resources:
    - name: refund
      path: /refund
      operations:
      - name: refundcreate
        method: POST
        description: Paystack Create Refund
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body.
          required: true
      - name: refundlist
        method: GET
        description: Paystack List Refunds
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: refund
      path: /refund/{id}
      operations:
      - name: refundfetch
        method: GET
        description: Paystack Fetch Refund
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: dispute
      path: /dispute
      operations:
      - name: disputelist
        method: GET
        description: Paystack List Disputes
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: dispute
      path: /dispute/{id}
      operations:
      - name: disputefetch
        method: GET
        description: Paystack Fetch Dispute
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
      - name: disputeupdate
        method: PUT
        description: Paystack Update Dispute
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body.
          required: true
    - name: dispute-upload-url
      path: /dispute/{id}/upload_url
      operations:
      - name: disputeuploadurl
        method: GET
        description: Paystack Get Upload URL
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: dispute-export
      path: /dispute/export
      operations:
      - name: disputedownload
        method: GET
        description: Paystack Export Disputes
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: dispute-transaction
      path: /dispute/transaction/{id}
      operations:
      - name: disputetransaction
        method: GET
        description: Paystack List Transaction Disputes
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: dispute-resolve
      path: /dispute/{id}/resolve
      operations:
      - name: disputeresolve
        method: PUT
        description: Paystack Resolve a Dispute
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body.
          required: true
    - name: dispute-evidence
      path: /dispute/{id}/evidence
      operations:
      - name: disputeevidence
        method: POST
        description: Paystack Add Evidence
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body.
          required: true
    authentication:
      type: bearer
      value: '{{env.PAYSTACK_SECRET_KEY}}'
      placement: header
  exposes:
  - type: rest
    namespace: refunds-disputes-refund-rest
    port: 8080
    description: REST adapter for Paystack Refunds and Disputes API. One resource per consumed operation, prefixed with /v1.
    resources:
    - path: /v1/refund
      name: refund
      description: REST surface for refund.
      operations:
      - method: POST
        name: refundcreate
        description: Paystack Create Refund
        call: refunds-disputes-refund.refundcreate
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
      - method: GET
        name: refundlist
        description: Paystack List Refunds
        call: refunds-disputes-refund.refundlist
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/refund/{id}
      name: refund
      description: REST surface for refund.
      operations:
      - method: GET
        name: refundfetch
        description: Paystack Fetch Refund
        call: refunds-disputes-refund.refundfetch
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/dispute
      name: dispute
      description: REST surface for dispute.
      operations:
      - method: GET
        name: disputelist
        description: Paystack List Disputes
        call: refunds-disputes-refund.disputelist
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/dispute/{id}
      name: dispute
      description: REST surface for dispute.
      operations:
      - method: GET
        name: disputefetch
        description: Paystack Fetch Dispute
        call: refunds-disputes-refund.disputefetch
        outputParameters:
        - type: object
          mapping: $.
      - method: PUT
        name: disputeupdate
        description: Paystack Update Dispute
        call: refunds-disputes-refund.disputeupdate
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/dispute/{id}/upload_url
      name: dispute-upload-url
      description: REST surface for dispute-upload-url.
      operations:
      - method: GET
        name: disputeuploadurl
        description: Paystack Get Upload URL
        call: refunds-disputes-refund.disputeuploadurl
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/dispute/export
      name: dispute-export
      description: REST surface for dispute-export.
      operations:
      - method: GET
        name: disputedownload
        description: Paystack Export Disputes
        call: refunds-disputes-refund.disputedownload
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/dispute/transaction/{id}
      name: dispute-transaction
      description: REST surface for dispute-transaction.
      operations:
      - method: GET
        name: disputetransaction
        description: Paystack List Transaction Disputes
        call: refunds-disputes-refund.disputetransaction
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/dispute/{id}/resolve
      name: dispute-resolve
      description: REST surface for dispute-resolve.
      operations:
      - method: PUT
        name: disputeresolve
        description: Paystack Resolve a Dispute
        call: refunds-disputes-refund.disputeresolve
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
    - path: /v1/dispute/{id}/evidence
      name: dispute-evidence
      description: REST surface for dispute-evidence.
      operations:
      - method: POST
        name: disputeevidence
        description: Paystack Add Evidence
        call: refunds-disputes-refund.disputeevidence
        outputParameters:
        - type: object
          mapping: $.
        with:
          body: rest.body
  - type: mcp
    namespace: refunds-disputes-refund-mcp
    port: 9090
    transport: http
    description: MCP adapter for Paystack Refunds and Disputes API. One tool per consumed operation, routed inline through
      this capability's consumes block.
    tools:
    - name: paystack-create-refund
      description: Paystack Create Refund
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: refunds-disputes-refund.refundcreate
      outputParameters:
      - type: object
        mapping: $.
      with:
        body: tools.body
    - name: paystack-list-refunds
      description: Paystack List Refunds
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: refunds-disputes-refund.refundlist
      outputParameters:
      - type: object
        mapping: $.
    - name: paystack-fetch-refund
      description: Paystack Fetch Refund
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: refunds-disputes-refund.refundfetch
      outputParameters:
      - type: object
        mapping: $.
    - name: paystack-list-disputes
      description: Paystack List Disputes
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: refunds-disputes-refund.disputelist
      outputParameters:
      - type: object
        mapping: $.
    - name: paystack-fetch-dispute
      description: Paystack Fetch Dispute
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: refunds-disputes-refund.disputefetch
      outputParameters:
      - type: object
        mapping: $.
    - name: paystack-update-dispute
      description: Paystack Update Dispute
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: refunds-disputes-refund.disputeupdate
      outputParameters:
      - type: object
        mapping: $.
      with:
        body: tools.body
    - name: paystack-get-upload-url
      description: Paystack Get Upload URL
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: refunds-disputes-refund.disputeuploadurl
      outputParameters:
      - type: object
        mapping: $.
    - name: paystack-export-disputes
      description: Paystack Export Disputes
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: refunds-disputes-refund.disputedownload
      outputParameters:
      - type: object
        mapping: $.
    - name: paystack-list-transaction-disputes
      description: Paystack List Transaction Disputes
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: refunds-disputes-refund.disputetransaction
      outputParameters:
      - type: object
        mapping: $.
    - name: paystack-resolve-a-dispute
      description: Paystack Resolve a Dispute
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: refunds-disputes-refund.disputeresolve
      outputParameters:
      - type: object
        mapping: $.
      with:
        body: tools.body
    - name: paystack-add-evidence
      description: Paystack Add Evidence
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: refunds-disputes-refund.disputeevidence
      outputParameters:
      - type: object
        mapping: $.
      with:
        body: tools.body