Wise · Capability

Wise Platform API — disputes

Wise Platform API — disputes. 8 operations. Lead operation: Upload dispute file (v3). Self-contained Naftiko capability covering one Wise business surface.

Run with Naftiko Wisedisputes

What You Can Do

POST
Disputefileuploadv3 — Upload dispute file (v3)
/v1/v3/spend/profiles/{profileid}/dispute-form/file
POST
Disputedynamicflowstep — Dispute dynamic flow entry point
/v1/v3/spend/profiles/{profileid}/dispute-form/flows/step/{scheme}/{reason}
POST
Disputesubmit — Submit dispute
/v1/v3/spend/profiles/{profileid}/dispute-form/flows/{scheme}/{reason}
GET
Disputereasonsget — Retrieve dispute reasons
/v1/v3/spend/profiles/{profileid}/dispute-form/reasons
GET
Disputelist — List disputes
/v1/v3/spend/profiles/{profileid}/disputes
GET
Disputeget — Get dispute
/v1/v3/spend/profiles/{profileid}/disputes/{disputeid}
PUT
Disputewithdraw — Withdraw dispute
/v1/v3/spend/profiles/{profileid}/disputes/{disputeid}/status
POST
Disputefileupload — Upload dispute file
/v1/v4/spend/profiles/{profileid}/dispute-form/file

MCP Tools

upload-dispute-file-v3

Upload dispute file (v3)

dispute-dynamic-flow-entry-point

Dispute dynamic flow entry point

submit-dispute

Submit dispute

retrieve-dispute-reasons

Retrieve dispute reasons

read-only idempotent
list-disputes

List disputes

read-only idempotent
get-dispute

Get dispute

read-only idempotent
withdraw-dispute

Withdraw dispute

idempotent
upload-dispute-file

Upload dispute file

Capability Spec

platform-disputes.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Wise Platform API — disputes
  description: 'Wise Platform API — disputes. 8 operations. Lead operation: Upload dispute file (v3). Self-contained Naftiko
    capability covering one Wise business surface.'
  tags:
  - Wise
  - disputes
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    WISE_API_KEY: WISE_API_KEY
capability:
  consumes:
  - type: http
    namespace: platform-disputes
    baseUri: https://api.wise.com
    description: Wise Platform API — disputes business capability. Self-contained, no shared references.
    resources:
    - name: v3-spend-profiles-profileId-dispute-form-file
      path: /v3/spend/profiles/{profileId}/dispute-form/file
      operations:
      - name: disputefileuploadv3
        method: POST
        description: Upload dispute file (v3)
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: profileId
          in: path
          type: integer
          description: Your profile ID.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v3-spend-profiles-profileId-dispute-form-flows-step-scheme-reason
      path: /v3/spend/profiles/{profileId}/dispute-form/flows/step/{scheme}/{reason}
      operations:
      - name: disputedynamicflowstep
        method: POST
        description: Dispute dynamic flow entry point
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: profileId
          in: path
          type: integer
          description: Your profile ID.
          required: true
        - name: scheme
          in: path
          type: string
          description: The network of the card that was used to make this transaction.
          required: true
        - name: reason
          in: path
          type: string
          description: Dispute reason code supplied by the [dispute reasons endpoint](/api-reference/disputes/disputereasonsget).
          required: true
        - name: transactionId
          in: query
          type: string
          description: The ID of the transaction being disputed. Can be a comma-separated list of IDs if the reason code has
            the `supportsMultipleTransactions` flag.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v3-spend-profiles-profileId-dispute-form-flows-scheme-reason
      path: /v3/spend/profiles/{profileId}/dispute-form/flows/{scheme}/{reason}
      operations:
      - name: disputesubmit
        method: POST
        description: Submit dispute
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: profileId
          in: path
          type: integer
          description: Your profile ID.
          required: true
        - name: scheme
          in: path
          type: string
          description: The network of the card that was used to make this transaction.
          required: true
        - name: reason
          in: path
          type: string
          description: Dispute reason code supplied by the [dispute reasons endpoint](/api-reference/disputes/disputereasonsget).
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v3-spend-profiles-profileId-dispute-form-reasons
      path: /v3/spend/profiles/{profileId}/dispute-form/reasons
      operations:
      - name: disputereasonsget
        method: GET
        description: Retrieve dispute reasons
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: profileId
          in: path
          type: integer
          description: Your profile ID.
          required: true
    - name: v3-spend-profiles-profileId-disputes
      path: /v3/spend/profiles/{profileId}/disputes
      operations:
      - name: disputelist
        method: GET
        description: List disputes
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: profileId
          in: path
          type: integer
          description: Your profile ID.
          required: true
        - name: status
          in: query
          type: string
          description: Filter by dispute status.
        - name: transactionId
          in: query
          type: integer
          description: Filter by card transaction ID.
        - name: pageSize
          in: query
          type: integer
          description: The maximum number of disputes to return per page. Between 10 and 100, defaults to 10.
        - name: pageNumber
          in: query
          type: integer
          description: The page number to retrieve. Must be at least 1, defaults to 1.
    - name: v3-spend-profiles-profileId-disputes-disputeId
      path: /v3/spend/profiles/{profileId}/disputes/{disputeId}
      operations:
      - name: disputeget
        method: GET
        description: Get dispute
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: profileId
          in: path
          type: integer
          description: Your profile ID.
          required: true
        - name: disputeId
          in: path
          type: string
          description: The dispute ID.
          required: true
    - name: v3-spend-profiles-profileId-disputes-disputeId-status
      path: /v3/spend/profiles/{profileId}/disputes/{disputeId}/status
      operations:
      - name: disputewithdraw
        method: PUT
        description: Withdraw dispute
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: profileId
          in: path
          type: integer
          description: Your profile ID.
          required: true
        - name: disputeId
          in: path
          type: string
          description: The dispute ID.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    - name: v4-spend-profiles-profileId-dispute-form-file
      path: /v4/spend/profiles/{profileId}/dispute-form/file
      operations:
      - name: disputefileupload
        method: POST
        description: Upload dispute file
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: profileId
          in: path
          type: integer
          description: Your profile ID.
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: true
    authentication:
      type: bearer
      token: '{{env.WISE_API_KEY}}'
  exposes:
  - type: rest
    namespace: platform-disputes-rest
    port: 8080
    description: REST adapter for Wise Platform API — disputes. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/v3/spend/profiles/{profileid}/dispute-form/file
      name: v3-spend-profiles-profileid-dispute-form-file
      description: REST surface for v3-spend-profiles-profileId-dispute-form-file.
      operations:
      - method: POST
        name: disputefileuploadv3
        description: Upload dispute file (v3)
        call: platform-disputes.disputefileuploadv3
        with:
          profileId: rest.profileId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v3/spend/profiles/{profileid}/dispute-form/flows/step/{scheme}/{reason}
      name: v3-spend-profiles-profileid-dispute-form-flows-step-scheme-reason
      description: REST surface for v3-spend-profiles-profileId-dispute-form-flows-step-scheme-reason.
      operations:
      - method: POST
        name: disputedynamicflowstep
        description: Dispute dynamic flow entry point
        call: platform-disputes.disputedynamicflowstep
        with:
          profileId: rest.profileId
          scheme: rest.scheme
          reason: rest.reason
          transactionId: rest.transactionId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v3/spend/profiles/{profileid}/dispute-form/flows/{scheme}/{reason}
      name: v3-spend-profiles-profileid-dispute-form-flows-scheme-reason
      description: REST surface for v3-spend-profiles-profileId-dispute-form-flows-scheme-reason.
      operations:
      - method: POST
        name: disputesubmit
        description: Submit dispute
        call: platform-disputes.disputesubmit
        with:
          profileId: rest.profileId
          scheme: rest.scheme
          reason: rest.reason
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v3/spend/profiles/{profileid}/dispute-form/reasons
      name: v3-spend-profiles-profileid-dispute-form-reasons
      description: REST surface for v3-spend-profiles-profileId-dispute-form-reasons.
      operations:
      - method: GET
        name: disputereasonsget
        description: Retrieve dispute reasons
        call: platform-disputes.disputereasonsget
        with:
          profileId: rest.profileId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v3/spend/profiles/{profileid}/disputes
      name: v3-spend-profiles-profileid-disputes
      description: REST surface for v3-spend-profiles-profileId-disputes.
      operations:
      - method: GET
        name: disputelist
        description: List disputes
        call: platform-disputes.disputelist
        with:
          profileId: rest.profileId
          status: rest.status
          transactionId: rest.transactionId
          pageSize: rest.pageSize
          pageNumber: rest.pageNumber
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v3/spend/profiles/{profileid}/disputes/{disputeid}
      name: v3-spend-profiles-profileid-disputes-disputeid
      description: REST surface for v3-spend-profiles-profileId-disputes-disputeId.
      operations:
      - method: GET
        name: disputeget
        description: Get dispute
        call: platform-disputes.disputeget
        with:
          profileId: rest.profileId
          disputeId: rest.disputeId
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v3/spend/profiles/{profileid}/disputes/{disputeid}/status
      name: v3-spend-profiles-profileid-disputes-disputeid-status
      description: REST surface for v3-spend-profiles-profileId-disputes-disputeId-status.
      operations:
      - method: PUT
        name: disputewithdraw
        description: Withdraw dispute
        call: platform-disputes.disputewithdraw
        with:
          profileId: rest.profileId
          disputeId: rest.disputeId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/v4/spend/profiles/{profileid}/dispute-form/file
      name: v4-spend-profiles-profileid-dispute-form-file
      description: REST surface for v4-spend-profiles-profileId-dispute-form-file.
      operations:
      - method: POST
        name: disputefileupload
        description: Upload dispute file
        call: platform-disputes.disputefileupload
        with:
          profileId: rest.profileId
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: platform-disputes-mcp
    port: 9090
    transport: http
    description: MCP adapter for Wise Platform API — disputes. One tool per consumed operation, routed inline through this
      capability's consumes block.
    tools:
    - name: upload-dispute-file-v3
      description: Upload dispute file (v3)
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-disputes.disputefileuploadv3
      with:
        profileId: tools.profileId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: dispute-dynamic-flow-entry-point
      description: Dispute dynamic flow entry point
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-disputes.disputedynamicflowstep
      with:
        profileId: tools.profileId
        scheme: tools.scheme
        reason: tools.reason
        transactionId: tools.transactionId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: submit-dispute
      description: Submit dispute
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-disputes.disputesubmit
      with:
        profileId: tools.profileId
        scheme: tools.scheme
        reason: tools.reason
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: retrieve-dispute-reasons
      description: Retrieve dispute reasons
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platform-disputes.disputereasonsget
      with:
        profileId: tools.profileId
      outputParameters:
      - type: object
        mapping: $.
    - name: list-disputes
      description: List disputes
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platform-disputes.disputelist
      with:
        profileId: tools.profileId
        status: tools.status
        transactionId: tools.transactionId
        pageSize: tools.pageSize
        pageNumber: tools.pageNumber
      outputParameters:
      - type: object
        mapping: $.
    - name: get-dispute
      description: Get dispute
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: platform-disputes.disputeget
      with:
        profileId: tools.profileId
        disputeId: tools.disputeId
      outputParameters:
      - type: object
        mapping: $.
    - name: withdraw-dispute
      description: Withdraw dispute
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: platform-disputes.disputewithdraw
      with:
        profileId: tools.profileId
        disputeId: tools.disputeId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: upload-dispute-file
      description: Upload dispute file
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: platform-disputes.disputefileupload
      with:
        profileId: tools.profileId
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.