Moov Disputes API

Card disputes, chargebacks, and evidence.

Documentation

Specifications

Other Resources

OpenAPI Specification

moov-io-disputes-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Moov Accounts Disputes API
  description: The Moov API lets software platforms accept, store, send, and spend money through a single REST API. It is organized around Moov accounts, funding sources (bank accounts, cards, wallets, payment methods), and money movement (transfers, refunds, disputes, sweeps, card issuing). The API is based on REST principles, returns JSON, and uses standard HTTP response codes. Requests are authenticated with an OAuth 2.0 access token (Bearer). Event notifications are delivered via webhooks (HTTPS POST with an HMAC SHA-512 signature); Moov does not expose a public WebSocket API. This document models a representative subset of the commercial hosted API at api.moov.io - the canonical, machine-generated OpenAPI spec is published by Moov (see externalDocs). Separately, Moov maintains open-source Go libraries for banking file formats at github.com/moov-io, which are not part of this API.
  version: v2026.04.00
  contact:
    name: Moov
    url: https://moov.io
  termsOfService: https://moov.io/legal/platform-agreement/
servers:
- url: https://api.moov.io
  description: Moov production
security:
- bearerAuth: []
tags:
- name: Disputes
  description: Card disputes, chargebacks, and evidence.
paths:
  /accounts/{accountID}/disputes:
    parameters:
    - $ref: '#/components/parameters/accountID'
    get:
      operationId: listDisputes
      tags:
      - Disputes
      summary: List disputes.
      responses:
        '200':
          description: A list of disputes.
  /accounts/{accountID}/disputes/{disputeID}:
    parameters:
    - $ref: '#/components/parameters/accountID'
    - $ref: '#/components/parameters/disputeID'
    get:
      operationId: getDispute
      tags:
      - Disputes
      summary: Retrieve a dispute.
      responses:
        '200':
          description: The dispute.
  /accounts/{accountID}/disputes/{disputeID}/accept:
    parameters:
    - $ref: '#/components/parameters/accountID'
    - $ref: '#/components/parameters/disputeID'
    post:
      operationId: acceptDispute
      tags:
      - Disputes
      summary: Accept a dispute.
      responses:
        '200':
          description: The accepted dispute.
  /accounts/{accountID}/disputes/{disputeID}/evidence-file:
    parameters:
    - $ref: '#/components/parameters/accountID'
    - $ref: '#/components/parameters/disputeID'
    post:
      operationId: uploadDisputeEvidenceFile
      tags:
      - Disputes
      summary: Upload dispute evidence file.
      responses:
        '200':
          description: The uploaded evidence.
  /accounts/{accountID}/disputes/{disputeID}/evidence-text:
    parameters:
    - $ref: '#/components/parameters/accountID'
    - $ref: '#/components/parameters/disputeID'
    post:
      operationId: uploadDisputeEvidenceText
      tags:
      - Disputes
      summary: Upload dispute evidence text.
      responses:
        '200':
          description: The uploaded evidence.
  /accounts/{accountID}/disputes/{disputeID}/evidence/submit:
    parameters:
    - $ref: '#/components/parameters/accountID'
    - $ref: '#/components/parameters/disputeID'
    post:
      operationId: submitDisputeEvidence
      tags:
      - Disputes
      summary: Submit dispute evidence.
      responses:
        '200':
          description: Evidence submitted.
  /accounts/{accountID}/disputes/{disputeID}/evidence:
    parameters:
    - $ref: '#/components/parameters/accountID'
    - $ref: '#/components/parameters/disputeID'
    get:
      operationId: listDisputeEvidence
      tags:
      - Disputes
      summary: List dispute evidence.
      responses:
        '200':
          description: A list of evidence.
  /accounts/{accountID}/disputes/{disputeID}/evidence/{evidenceID}:
    parameters:
    - $ref: '#/components/parameters/accountID'
    - $ref: '#/components/parameters/disputeID'
    - $ref: '#/components/parameters/evidenceID'
    get:
      operationId: getDisputeEvidence
      tags:
      - Disputes
      summary: Retrieve dispute evidence.
      responses:
        '200':
          description: The evidence.
    patch:
      operationId: updateDisputeEvidence
      tags:
      - Disputes
      summary: Update dispute evidence.
      responses:
        '200':
          description: The updated evidence.
    delete:
      operationId: deleteDisputeEvidence
      tags:
      - Disputes
      summary: Delete dispute evidence.
      responses:
        '204':
          description: Evidence deleted.
  /accounts/{accountID}/disputes/{disputeID}/evidence/{evidenceID}/data:
    parameters:
    - $ref: '#/components/parameters/accountID'
    - $ref: '#/components/parameters/disputeID'
    - $ref: '#/components/parameters/evidenceID'
    get:
      operationId: getDisputeEvidenceData
      tags:
      - Disputes
      summary: Retrieve dispute evidence data.
      responses:
        '200':
          description: The evidence file data.
components:
  parameters:
    accountID:
      name: accountID
      in: path
      required: true
      schema:
        type: string
        format: uuid
      description: The Moov account identifier.
    disputeID:
      name: disputeID
      in: path
      required: true
      schema:
        type: string
        format: uuid
    evidenceID:
      name: evidenceID
      in: path
      required: true
      schema:
        type: string
        format: uuid
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: OAuth 2.0 access token passed as a Bearer token.
externalDocs:
  description: Moov API reference and canonical OpenAPI spec
  url: https://docs.moov.io/api/