---
title: "Create Dispute"
method: POST
path: "/v1/disputes"
tags: ["Disputes"]
---

# Create Dispute

`POST /v1/disputes`

Submits a dispute for one or more transactions. Accepts transaction details, customer info, the selected parent dispute reason, and questionnaire answers using question_uuid/answer pairs from GetQuestionnaire. Returns a DisputeSummary including the dispute_uuid, short ID, resolution deadline, and any initial actions (e.g. issue provisional credit, replace card). The dispute_uuid in the response is required to attach supporting files via UploadFile.

## Request body

- V1CreateDisputeRequest
  - `orgUuid` string
  - `transactionDetails` ApiPublicdtoTransactionDetail[]
    - `uuid` string
    - `settledTimestamp` string, int64
    - `authorizedTimestamp` string, int64
    - `amount` ApiPublicdtoAmount
      - `amountInCents` integer
      - `currency` string
    - `merchant` string
    - `status` 'TRANSACTION_STATUS_UNKNOWN' | 'TRANSACTION_STATUS_PENDING' | 'TRANSACTION_STATUS_SETTLED'
    - `type` 'TRANSACTION_TYPE_UNKNOWN' | 'TRANSACTION_TYPE_DEBIT_CARD' | 'TRANSACTION_TYPE_CREDIT_CARD' | 'TRANSACTION_TYPE_ATM' | 'TRANSACTION_TYPE_ACH' | 'TRANSACTION_TYPE_TRANSFER' | 'TRANSACTION_TYPE_CREDIT_ATM' | 'TRANSACTION_TYPE_CREDIT_ACH' | 'TRANSACTION_TYPE_CREDIT_TRANSFER'
    - `network` 'TRANSACTION_NETWORK_UNKNOWN' | 'TRANSACTION_NETWORK_VISA' | 'TRANSACTION_NETWORK_MASTERCARD' | 'TRANSACTION_NETWORK_AMEX'
    - `arn` string
    - `location` string
    - `cardId` string
    - `visaTransactionId` string
    - `transactionSettledAmount` ApiPublicdtoAmount
      - `amountInCents` integer
      - `currency` string
    - `typeCode` string
    - `ica` string
    - `cardType` 'CARD_TYPE_UNKNOWN' | 'CARD_TYPE_PHYSICAL' | 'CARD_TYPE_VIRTUAL'
  - `customer` ApiPublicdtoCustomer
    - `uuid` string
    - `name` string
    - `email` string
    - `phone` string
    - `accountUuid` string
    - `address` DtoAddress
      - `line1` string
      - `line2` string
      - `city` string
      - `state` string
      - `postalCode` string
      - `country` string
    - `externalIds` object
  - `reason` 'DISPUTE_REASON_UNKNOWN' | 'DISPUTE_REASON_UNAUTH' | 'DISPUTE_REASON_MERCHANT_ISSUE' | 'DISPUTE_REASON_ATM_ISSUE' | 'DISPUTE_REASON_ACH_ISSUE' | 'DISPUTE_REASON_TRANSFER_ISSUE' | 'DISPUTE_REASON_ATM_ISSUE_CASH_NOT_DISPENSED' | 'DISPUTE_REASON_MERCHANT_ISSUE_GOODS_OR_SERVICES_NOT_RECEIVED' | 'DISPUTE_REASON_MERCHANT_ISSUE_GOODS_OR_SERVICES_NOT_AS_DESCRIBED' | 'DISPUTE_REASON_MERCHANT_ISSUE_RETURNED' | 'DISPUTE_REASON_MERCHANT_ISSUE_CANCELED_SUBSCRIPTION' | 'DISPUTE_REASON_MERCHANT_ISSUE_REFUND_NOT_RECEIVED' | 'DISPUTE_REASON_MERCHANT_ISSUE_CHARGED_INCORRECT_AMOUNT' | 'DISPUTE_REASON_MERCHANT_ISSUE_PAID_BY_OTHER_MEANS' | 'DISPUTE_REASON_TRANSFER_ISSUE_NOT_RECEIVED' | 'DISPUTE_REASON_TRANSFER_ISSUE_INCORRECT_RECIPIENT' | 'DISPUTE_REASON_TRANSFER_ISSUE_INCORRECT_AMOUNT' | 'DISPUTE_REASON_TRANSFER_ISSUE_DUPLICATE_CHARGE' | 'DISPUTE_REASON_ATM_ISSUE_PARTIAL_CASH' | 'DISPUTE_REASON_MERCHANT_ISSUE_DUPLICATE_CHARGE' | 'DISPUTE_REASON_ATM_ISSUE_CASH_NOT_DEPOSITED' | 'DISPUTE_REASON_TRANSFER_ISSUE_FAILED_CANCELLATION' — - DISPUTE_REASON_MERCHANT_ISSUE: Provisional/parent merchant reason returned by GetDisputeReasons. The specific sub-reason (MERCHANT_ISSUE_*) is resolved server-side from the questionnaire answers at Create time. - DISPUTE_REASON_ATM_ISSUE: Provisional/parent ATM reason returned by GetDisputeReasons. The specific sub-reason (ATM_ISSUE_*) is resolved server-side from the questionnaire answers at Create time. - DISPUTE_REASON_TRANSFER_ISSUE: Provisional/parent transfer reason returned by GetDisputeReasons. The specific sub-reason (TRANSFER_ISSUE_*) is resolved server-side from the questionnaire answers at Create time.
  - `questionnaireAnswers` CreateDisputeRequestQuestionnaireAnswer[]
    - `question` string
    - `answer` string
    - `questionId` string — Deprecated: use question_uuid instead. Retained for backwards compatibility and for the legacy disputed-amount question keys (AMOUNT_EXPECTED/FIRST_AMOUNT/SECOND_AMOUNT) until those are rekeyed onto question_uuid.
    - `questionUuid` string — question_uuid is the stable id returned by GetQuestionnaire (QuestionDefinition.question_uuid). Preferred over the free-text `question` for callers that drive intake from the questionnaire endpoint. Optional for backwards compatibility.

## Response `200`

A successful response.

- V1CreateDisputeResponse
  - `dispute` DtoDisputeSummary
    - `uuid` string
    - `customer` ApiPublicdtoCustomer
      - `uuid` string
      - `name` string
      - `email` string
      - `phone` string
      - `accountUuid` string
      - `address` DtoAddress
        - `line1` string
        - `line2` string
        - `city` string
        - `state` string
        - `postalCode` string
        - `country` string
      - `externalIds` object
    - `resolutionDeadline` string, int64
    - `agent` DtoAgent
      - `uuid` string
      - `name` string
      - `email` string
      - `phone` string
    - `status` 'DISPUTE_STATUS_UNKNOWN' | 'DISPUTE_STATUS_OPEN' | 'DISPUTE_STATUS_CLOSED'
    - `transactions` DtoDisputedTransaction[]
      - `uuid` string
      - `settledTimestamp` string, int64
      - `amount` ApiPublicdtoAmount
        - `amountInCents` integer
        - `currency` string
      - `merchant` string
      - `status` 'DISPUTED_TRANSACTION_STATUS_UNKNOWN' | 'DISPUTED_TRANSACTION_STATUS_OPEN' | 'DISPUTED_TRANSACTION_STATUS_INVESTIGATING' | 'DISPUTED_TRANSACTION_STATUS_CHARGEBACK' | 'DISPUTED_TRANSACTION_STATUS_FINAL_DECISION' | 'DISPUTED_TRANSACTION_STATUS_CLOSED'
      - `auditLog` DtoTransactionAuditLog[]
        - `timestamp` string, int64
        - `eventType` 'TRANSACTION_EVENT_TYPE_UNKNOWN' | 'TRANSACTION_EVENT_TYPE_ISSUE_PROVISIONAL_CREDIT' | 'TRANSACTION_EVENT_TYPE_START_CHARGEBACK' | 'TRANSACTION_EVENT_TYPE_RECORD_REPRESENTMENT' | 'TRANSACTION_EVENT_TYPE_CHALLENGE_REPRESENTMENT' | 'TRANSACTION_EVENT_TYPE_FILE_PRE_ARB' | 'TRANSACTION_EVENT_TYPE_RECORD_PRE_ARB_RESPONSE' | 'TRANSACTION_EVENT_TYPE_CHALLENGE_PRE_ARB_RESPONSE' | 'TRANSACTION_EVENT_TYPE_FILE_ARB' | 'TRANSACTION_EVENT_TYPE_RECORD_ARB_RESPONSE' | 'TRANSACTION_EVENT_TYPE_CLOSE_CHARGEBACK' | 'TRANSACTION_EVENT_TYPE_RECORD_FINAL_DECISION' | 'TRANSACTION_EVENT_TYPE_REVERSE_PROVISIONAL_CREDIT' | 'TRANSACTION_EVENT_TYPE_SUBMIT_PC_FORM' | 'TRANSACTION_EVENT_TYPE_APPROVE_WSUD_REVIEW' | 'TRANSACTION_EVENT_TYPE_CLOSE_CHARGBACK' | 'TRANSACTION_EVENT_TYPE_SUBMIT_WSUD' | 'TRANSACTION_EVENT_TYPE_UPLOAD_WSUD_FILE' | 'TRANSACTION_EVENT_TYPE_RECORD_ODFI_RESPONSE' | 'TRANSACTION_EVENT_TYPE_CHECK_CHARGEBACK' | 'TRANSACTION_EVENT_TYPE_SUBMIT_FRAUD_REPORT'
        - `agentEmail` string
        - `issueProvisionalCredit` DtoTransactionAuditLogIssueProvisionalCredit
          - `amount` ApiPublicdtoAmount
            - `amountInCents` integer
            - `currency` string
          - `actions` ApiPublicdtoAction[]
        - `recordFinalDecision` DtoTransactionAuditLogRecordFinalDecision
          - `type` 'RECORD_FINAL_DECISION_TYPE_UNKNOWN' | 'RECORD_FINAL_DECISION_TYPE_ACCEPTED' | 'RECORD_FINAL_DECISION_TYPE_DENIED' | 'RECORD_FINAL_DECISION_TYPE_CANCELED'
          - `actions` ApiPublicdtoAction[]
          - `accepted` TransactionAuditLogRecordFinalDecisionAccepted
            - `type` 'ACCEPTED_TYPE_UNKNOWN' | 'ACCEPTED_TYPE_ACCOUNT_TAKEOVER' | 'ACCEPTED_TYPE_CHARGEBACK_WON' | 'ACCEPTED_TYPE_MERCHANT_CREDITED' | 'ACCEPTED_TYPE_WRITE_OFF' | 'ACCEPTED_TYPE_WSUD_ACCEPTED' | 'ACCEPTED_TYPE_OTHER'
            - `merchantCredited` TransactionAuditLogRecordFinalDecisionAcceptedMerchantCredited
              - …
          - `denied` TransactionAuditLogRecordFinalDecisionDenied
            - `type` 'DENIED_TYPE_UNKNOWN' | 'DENIED_TYPE_CHARGEBACK_LOST' | 'DENIED_TYPE_FRIENDLY_FRAUD' | 'DENIED_TYPE_INSUFFICIENT_EVIDENCE' | 'DENIED_TYPE_WSUD_REJECTED' | 'DENIED_TYPE_OTHER' | 'DENIED_TYPE_FIRST_PARTY_FRAUD'
          - `canceled` TransactionAuditLogRecordFinalDecisionCanceled
            - `type` 'CANCELED_TYPE_UNKNOWN' | 'CANCELED_TYPE_CUSTOMER_REQUESTED' | 'CANCELED_TYPE_MERCHANT_CREDITED' | 'CANCELED_TYPE_AGENT_ERROR' | 'CANCELED_TYPE_OTHER'
      - `transactionStatus` 'TRANSACTION_STATUS_UNKNOWN' | 'TRANSACTION_STATUS_PENDING' | 'TRANSACTION_STATUS_SETTLED'
      - `provisionalCreditAmount` ApiPublicdtoAmount
        - `amountInCents` integer
        - `currency` string
      - `finalCreditAmount` ApiPublicdtoAmount
        - `amountInCents` integer
        - `currency` string
      - `reverseCreditAmount` ApiPublicdtoAmount
        - `amountInCents` integer
        - `currency` string
      - `transactionFinalStatus` 'RECORD_FINAL_DECISION_TYPE_UNKNOWN' | 'RECORD_FINAL_DECISION_TYPE_ACCEPTED' | 'RECORD_FINAL_DECISION_TYPE_DENIED' | 'RECORD_FINAL_DECISION_TYPE_CANCELED'
    - `auditLog` DtoDisputeAuditLog[]
      - `timestamp` string, int64
      - `eventType` 'DISPUTE_EVENT_TYPE_UNKNOWN' | 'DISPUTE_EVENT_TYPE_CREATE' | 'DISPUTE_EVENT_TYPE_ASSIGN_AGENT' | 'DISPUTE_EVENT_TYPE_ADD_COMMENT' | 'DISPUTE_EVENT_TYPE_UNASSIGN_AGENT' | 'DISPUTE_EVENT_TYPE_UPLOAD_PAN_TOKEN' | 'DISPUTE_EVENT_TYPE_UPDATE_PRIORITY' | 'DISPUTE_EVENT_TYPE_REOPEN' | 'DISPUTE_EVENT_TYPE_REPLACE_CARD' | 'DISPUTE_EVENT_TYPE_UPLOAD_WSUD' | 'DISPUTE_EVENT_TYPE_RECORD_ODFI_RESPONSE' | 'DISPUTE_EVENT_TYPE_UPDATE_DISPUTE_REASON' | 'DISPUTE_EVENT_TYPE_UPLOAD_FILE' | 'DISPUTE_EVENT_TYPE_COMMUNICATION'
      - `agentEmail` string
      - `createDispute` DtoDisputeAuditLogCreateDispute
        - `actions` ApiPublicdtoAction[]
    - `shortId` string
    - `reason` 'DISPUTE_REASON_UNKNOWN' | 'DISPUTE_REASON_UNAUTH' | 'DISPUTE_REASON_MERCHANT_ISSUE' | 'DISPUTE_REASON_ATM_ISSUE' | 'DISPUTE_REASON_ACH_ISSUE' | 'DISPUTE_REASON_TRANSFER_ISSUE' | 'DISPUTE_REASON_ATM_ISSUE_CASH_NOT_DISPENSED' | 'DISPUTE_REASON_MERCHANT_ISSUE_GOODS_OR_SERVICES_NOT_RECEIVED' | 'DISPUTE_REASON_MERCHANT_ISSUE_GOODS_OR_SERVICES_NOT_AS_DESCRIBED' | 'DISPUTE_REASON_MERCHANT_ISSUE_RETURNED' | 'DISPUTE_REASON_MERCHANT_ISSUE_CANCELED_SUBSCRIPTION' | 'DISPUTE_REASON_MERCHANT_ISSUE_REFUND_NOT_RECEIVED' | 'DISPUTE_REASON_MERCHANT_ISSUE_CHARGED_INCORRECT_AMOUNT' | 'DISPUTE_REASON_MERCHANT_ISSUE_PAID_BY_OTHER_MEANS' | 'DISPUTE_REASON_TRANSFER_ISSUE_NOT_RECEIVED' | 'DISPUTE_REASON_TRANSFER_ISSUE_INCORRECT_RECIPIENT' | 'DISPUTE_REASON_TRANSFER_ISSUE_INCORRECT_AMOUNT' | 'DISPUTE_REASON_TRANSFER_ISSUE_DUPLICATE_CHARGE' | 'DISPUTE_REASON_ATM_ISSUE_PARTIAL_CASH' | 'DISPUTE_REASON_MERCHANT_ISSUE_DUPLICATE_CHARGE' | 'DISPUTE_REASON_ATM_ISSUE_CASH_NOT_DEPOSITED' | 'DISPUTE_REASON_TRANSFER_ISSUE_FAILED_CANCELLATION' — - DISPUTE_REASON_MERCHANT_ISSUE: Provisional/parent merchant reason returned by GetDisputeReasons. The specific sub-reason (MERCHANT_ISSUE_*) is resolved server-side from the questionnaire answers at Create time. - DISPUTE_REASON_ATM_ISSUE: Provisional/parent ATM reason returned by GetDisputeReasons. The specific sub-reason (ATM_ISSUE_*) is resolved server-side from the questionnaire answers at Create time. - DISPUTE_REASON_TRANSFER_ISSUE: Provisional/parent transfer reason returned by GetDisputeReasons. The specific sub-reason (TRANSFER_ISSUE_*) is resolved server-side from the questionnaire answers at Create time.
    - `actions` ApiPublicdtoAction[]

## Other responses

- `default` — An unexpected error response.

---

[API](https://skmtc.net/casaphq/apis/casap-api.md) · [All operations](https://skmtc.net/casaphq/apis/casap-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/casaphq/casap-api/versions/301b634ab50b/schema)
