Moov · Capability

Moov API — Disputes

Moov API — Disputes. 6 operations. Lead operation: List disputes. Self-contained Naftiko capability covering one Moov business surface.

Run with Naftiko MoovDisputes

What You Can Do

GET
Listdisputes — List disputes
/v1/accounts/{accountid}/disputes
GET
Getdispute — Retrieve a dispute
/v1/accounts/{accountid}/disputes/{disputeid}
POST
Acceptdispute — Accept a dispute
/v1/accounts/{accountid}/disputes/{disputeid}/accept
POST
Uploaddisputeevidencefile — Upload evidence file
/v1/accounts/{accountid}/disputes/{disputeid}/evidence-file
POST
Uploaddisputeevidencetext — Upload evidence text
/v1/accounts/{accountid}/disputes/{disputeid}/evidence-text
POST
Submitdisputeevidence — Submit dispute evidence
/v1/accounts/{accountid}/disputes/{disputeid}/evidence/submit

MCP Tools

list-disputes

List disputes

read-only idempotent
retrieve-dispute

Retrieve a dispute

read-only idempotent
accept-dispute

Accept a dispute

upload-evidence-file

Upload evidence file

upload-evidence-text

Upload evidence text

submit-dispute-evidence

Submit dispute evidence

Capability Spec

moov-disputes.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Moov API — Disputes
  description: 'Moov API — Disputes. 6 operations. Lead operation: List disputes. Self-contained Naftiko capability covering
    one Moov business surface.'
  tags:
  - Moov
  - Disputes
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    MOOV_API_KEY: MOOV_API_KEY
capability:
  consumes:
  - type: http
    namespace: moov-disputes
    baseUri: https://api.moov.io
    description: Moov API — Disputes business capability. Self-contained, no shared references.
    resources:
    - name: accounts-accountID-disputes
      path: /accounts/{accountID}/disputes
      operations:
      - name: listdisputes
        method: GET
        description: List disputes
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: accounts-accountID-disputes-disputeID
      path: /accounts/{accountID}/disputes/{disputeID}
      operations:
      - name: getdispute
        method: GET
        description: Retrieve a dispute
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: accounts-accountID-disputes-disputeID-accept
      path: /accounts/{accountID}/disputes/{disputeID}/accept
      operations:
      - name: acceptdispute
        method: POST
        description: Accept a dispute
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    - name: accounts-accountID-disputes-disputeID-evidence-file
      path: /accounts/{accountID}/disputes/{disputeID}/evidence-file
      operations:
      - name: uploaddisputeevidencefile
        method: POST
        description: Upload evidence file
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: accounts-accountID-disputes-disputeID-evidence-text
      path: /accounts/{accountID}/disputes/{disputeID}/evidence-text
      operations:
      - name: uploaddisputeevidencetext
        method: POST
        description: Upload evidence text
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: accounts-accountID-disputes-disputeID-evidence-submit
      path: /accounts/{accountID}/disputes/{disputeID}/evidence/submit
      operations:
      - name: submitdisputeevidence
        method: POST
        description: Submit dispute evidence
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
    authentication:
      type: bearer
      token: '{{env.MOOV_API_KEY}}'
  exposes:
  - type: rest
    namespace: moov-disputes-rest
    port: 8080
    description: REST adapter for Moov API — Disputes. One Spectral-compliant resource per consumed operation, prefixed with
      /v1.
    resources:
    - path: /v1/accounts/{accountid}/disputes
      name: accounts-accountid-disputes
      description: REST surface for accounts-accountID-disputes.
      operations:
      - method: GET
        name: listdisputes
        description: List disputes
        call: moov-disputes.listdisputes
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/accounts/{accountid}/disputes/{disputeid}
      name: accounts-accountid-disputes-disputeid
      description: REST surface for accounts-accountID-disputes-disputeID.
      operations:
      - method: GET
        name: getdispute
        description: Retrieve a dispute
        call: moov-disputes.getdispute
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/accounts/{accountid}/disputes/{disputeid}/accept
      name: accounts-accountid-disputes-disputeid-accept
      description: REST surface for accounts-accountID-disputes-disputeID-accept.
      operations:
      - method: POST
        name: acceptdispute
        description: Accept a dispute
        call: moov-disputes.acceptdispute
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/accounts/{accountid}/disputes/{disputeid}/evidence-file
      name: accounts-accountid-disputes-disputeid-evidence-file
      description: REST surface for accounts-accountID-disputes-disputeID-evidence-file.
      operations:
      - method: POST
        name: uploaddisputeevidencefile
        description: Upload evidence file
        call: moov-disputes.uploaddisputeevidencefile
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/accounts/{accountid}/disputes/{disputeid}/evidence-text
      name: accounts-accountid-disputes-disputeid-evidence-text
      description: REST surface for accounts-accountID-disputes-disputeID-evidence-text.
      operations:
      - method: POST
        name: uploaddisputeevidencetext
        description: Upload evidence text
        call: moov-disputes.uploaddisputeevidencetext
        with:
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/accounts/{accountid}/disputes/{disputeid}/evidence/submit
      name: accounts-accountid-disputes-disputeid-evidence-submit
      description: REST surface for accounts-accountID-disputes-disputeID-evidence-submit.
      operations:
      - method: POST
        name: submitdisputeevidence
        description: Submit dispute evidence
        call: moov-disputes.submitdisputeevidence
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: moov-disputes-mcp
    port: 9090
    transport: http
    description: MCP adapter for Moov API — Disputes. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: list-disputes
      description: List disputes
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: moov-disputes.listdisputes
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-dispute
      description: Retrieve a dispute
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: moov-disputes.getdispute
      outputParameters:
      - type: object
        mapping: $.
    - name: accept-dispute
      description: Accept a dispute
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: moov-disputes.acceptdispute
      outputParameters:
      - type: object
        mapping: $.
    - name: upload-evidence-file
      description: Upload evidence file
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: moov-disputes.uploaddisputeevidencefile
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: upload-evidence-text
      description: Upload evidence text
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: moov-disputes.uploaddisputeevidencetext
      with:
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: submit-dispute-evidence
      description: Submit dispute evidence
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: moov-disputes.submitdisputeevidence
      outputParameters:
      - type: object
        mapping: $.