Casap Disputes API

The Disputes API from Casap — 4 operation(s) for disputes.

OpenAPI Specification

casap-disputes-api-openapi.yml Raw ↑
openapi: 3.1.1
info:
  title: Casap Auth Disputes API
  version: 0.1.0
servers:
- url: http://api.casaphq.com
security:
- api_key: []
  user_uuid: []
tags:
- name: Disputes
paths:
  /v1/dispute/status/{disputeUuid}:
    get:
      summary: Get dispute status
      operationId: Disputes_GetDisputeStatus
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDisputeStatusResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - schema:
          type: string
        name: disputeUuid
        in: path
        required: true
      tags:
      - Disputes
  /v1/disputes:
    get:
      summary: List disputes
      operationId: Disputes_GetDisputes
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetDisputesResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - schema:
          type: integer
          format: int32
        name: size
        in: query
        required: false
      - schema:
          type: integer
          format: int32
        name: page
        in: query
        required: false
      - schema:
          type: string
        name: customerUuid
        in: query
        required: false
      - schema:
          type: string
        name: shortId
        in: query
        required: false
      tags:
      - Disputes
    post:
      summary: Create a dispute
      operationId: Disputes_Create
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateDisputeResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      tags:
      - Disputes
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDisputeRequest'
        required: true
  /v1/disputes/{disputeUuid}/files:
    post:
      summary: Upload a file
      operationId: Disputes_UploadFile
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UploadFileResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - schema:
          type: string
        name: disputeUuid
        description: The dispute UUID from the URL path
        in: path
        required: true
      tags:
      - Disputes
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisputesUploadFileBody'
        required: true
  /v1/disputes/{disputeUuid}/reopen:
    post:
      summary: Reopen a dispute
      operationId: Disputes_ReopenDispute
      responses:
        '200':
          description: A successful response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReopenDisputeResponse'
        default:
          description: An unexpected error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/googlerpcStatus'
      parameters:
      - schema:
          type: string
        name: disputeUuid
        in: path
        required: true
      tags:
      - Disputes
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisputesReopenDisputeBody'
        required: true
components:
  schemas:
    TransactionAuditLogRecordFinalDecisionDenied:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/TransactionAuditLogRecordFinalDecisionDeniedType'
    TransactionAuditLogIssueProvisionalCredit:
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/Amount'
        actions:
          type: array
          items:
            $ref: '#/components/schemas/Action'
    TransactionStatus:
      type: string
      enum:
      - TRANSACTION_STATUS_UNKNOWN
      - TRANSACTION_STATUS_PENDING
      - TRANSACTION_STATUS_SETTLED
      default: TRANSACTION_STATUS_UNKNOWN
    DisputeEventType:
      type: string
      enum:
      - 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
      default: DISPUTE_EVENT_TYPE_UNKNOWN
    protobufAny:
      type: object
      properties:
        '@type':
          type: string
      additionalProperties: {}
    TransactionNetwork:
      type: string
      enum:
      - TRANSACTION_NETWORK_UNKNOWN
      - TRANSACTION_NETWORK_VISA
      - TRANSACTION_NETWORK_MASTERCARD
      - TRANSACTION_NETWORK_AMEX
      default: TRANSACTION_NETWORK_UNKNOWN
    DisputeAuditLogCreateDispute:
      type: object
      properties:
        actions:
          type: array
          items:
            $ref: '#/components/schemas/Action'
    TransactionAuditLogRecordFinalDecisionAcceptedMerchantCredited:
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/Amount'
        date:
          type: string
          format: int64
    TransactionAuditLogRecordFinalDecisionCanceled:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/TransactionAuditLogRecordFinalDecisionCanceledType'
    TransactionAuditLog:
      type: object
      properties:
        timestamp:
          type: string
          format: int64
        eventType:
          $ref: '#/components/schemas/TransactionEventType'
        agentEmail:
          type: string
        issueProvisionalCredit:
          $ref: '#/components/schemas/TransactionAuditLogIssueProvisionalCredit'
        recordFinalDecision:
          $ref: '#/components/schemas/TransactionAuditLogRecordFinalDecision'
    TransactionAuditLogRecordFinalDecisionDeniedType:
      type: string
      enum:
      - 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
      default: DENIED_TYPE_UNKNOWN
    TransactionAuditLogRecordFinalDecisionAcceptedType:
      type: string
      enum:
      - 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
      default: ACCEPTED_TYPE_UNKNOWN
    TransactionType:
      type: string
      enum:
      - 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
      default: TRANSACTION_TYPE_UNKNOWN
    TransactionAuditLogRecordFinalDecisionAccepted:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/TransactionAuditLogRecordFinalDecisionAcceptedType'
        merchantCredited:
          $ref: '#/components/schemas/TransactionAuditLogRecordFinalDecisionAcceptedMerchantCredited'
    Customer:
      type: object
      properties:
        uuid:
          type: string
        name:
          type: string
        email:
          type: string
        phone:
          type: string
        accountUuid:
          type: string
        address:
          $ref: '#/components/schemas/Address'
        externalIds:
          type: object
          additionalProperties:
            type: string
    CreateDisputeRequest:
      type: object
      properties:
        orgUuid:
          type: string
        transactionDetails:
          type: array
          items:
            $ref: '#/components/schemas/TransactionDetail'
        customer:
          $ref: '#/components/schemas/Customer'
        reason:
          $ref: '#/components/schemas/DisputeReason'
        questionnaireAnswers:
          type: array
          items:
            $ref: '#/components/schemas/CreateDisputeRequestQuestionnaireAnswer'
    TransactionEventType:
      type: string
      enum:
      - 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
      default: TRANSACTION_EVENT_TYPE_UNKNOWN
    GetDisputesResponse:
      type: object
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/DisputeSummary'
        totalItems:
          type: integer
          format: int32
        totalPages:
          type: integer
          format: int32
        totalInPage:
          type: integer
          format: int32
        currentPage:
          type: integer
          format: int32
    DisputeStatus:
      type: string
      enum:
      - DISPUTE_STATUS_UNKNOWN
      - DISPUTE_STATUS_OPEN
      - DISPUTE_STATUS_CLOSED
      default: DISPUTE_STATUS_UNKNOWN
    DisputeAuditLog:
      type: object
      properties:
        timestamp:
          type: string
          format: int64
        eventType:
          $ref: '#/components/schemas/DisputeEventType'
        agentEmail:
          type: string
        createDispute:
          $ref: '#/components/schemas/DisputeAuditLogCreateDispute'
    googlerpcStatus:
      type: object
      properties:
        code:
          type: integer
          format: int32
        message:
          type: string
        details:
          type: array
          items:
            $ref: '#/components/schemas/protobufAny'
    Action:
      type: string
      enum:
      - ACTION_NONE
      - ACTION_ISSUE_PROVISIONAL_CREDIT
      - ACTION_ISSUE_FINAL_CREDIT
      - ACTION_REVERSE_PROVISIONAL_CREDIT
      - ACTION_REPLACE_CARD
      default: ACTION_NONE
    ReopenDisputeResponse:
      type: object
      properties:
        dispute:
          $ref: '#/components/schemas/DisputeSummary'
    Amount:
      type: object
      properties:
        amountInCents:
          type: integer
          format: int32
        currency:
          type: string
    TransactionAuditLogRecordFinalDecision:
      type: object
      properties:
        type:
          $ref: '#/components/schemas/TransactionAuditLogRecordFinalDecisionType'
        actions:
          type: array
          items:
            $ref: '#/components/schemas/Action'
        accepted:
          $ref: '#/components/schemas/TransactionAuditLogRecordFinalDecisionAccepted'
        denied:
          $ref: '#/components/schemas/TransactionAuditLogRecordFinalDecisionDenied'
        canceled:
          $ref: '#/components/schemas/TransactionAuditLogRecordFinalDecisionCanceled'
    GetDisputeStatusResponse:
      type: object
      properties:
        dispute:
          $ref: '#/components/schemas/DisputeSummary'
    UploadFileResponse:
      type: object
    FinalDecisionType:
      type: string
      enum:
      - RECORD_FINAL_DECISION_TYPE_UNKNOWN
      - RECORD_FINAL_DECISION_TYPE_ACCEPTED
      - RECORD_FINAL_DECISION_TYPE_DENIED
      - RECORD_FINAL_DECISION_TYPE_CANCELED
      default: RECORD_FINAL_DECISION_TYPE_UNKNOWN
    TransactionDetail:
      type: object
      properties:
        uuid:
          type: string
        settledTimestamp:
          type: string
          format: int64
        authorizedTimestamp:
          type: string
          format: int64
        amount:
          $ref: '#/components/schemas/Amount'
        merchant:
          type: string
        status:
          $ref: '#/components/schemas/TransactionStatus'
        type:
          $ref: '#/components/schemas/TransactionType'
        network:
          $ref: '#/components/schemas/TransactionNetwork'
        arn:
          type: string
        location:
          type: string
        cardId:
          type: string
        visaTransactionId:
          type: string
        transactionSettledAmount:
          $ref: '#/components/schemas/Amount'
        typeCode:
          type: string
        ica:
          type: string
        cardType:
          $ref: '#/components/schemas/CardType'
    CreateDisputeResponse:
      type: object
      properties:
        dispute:
          $ref: '#/components/schemas/DisputeSummary'
    TransactionAuditLogRecordFinalDecisionCanceledType:
      type: string
      enum:
      - CANCELED_TYPE_UNKNOWN
      - CANCELED_TYPE_CUSTOMER_REQUESTED
      - CANCELED_TYPE_MERCHANT_CREDITED
      - CANCELED_TYPE_AGENT_ERROR
      - CANCELED_TYPE_OTHER
      default: CANCELED_TYPE_UNKNOWN
    TransactionAuditLogRecordFinalDecisionType:
      type: string
      enum:
      - RECORD_FINAL_DECISION_TYPE_UNKNOWN
      - RECORD_FINAL_DECISION_TYPE_ACCEPTED
      - RECORD_FINAL_DECISION_TYPE_DENIED
      - RECORD_FINAL_DECISION_TYPE_CANCELED
      default: RECORD_FINAL_DECISION_TYPE_UNKNOWN
    DisputedTransactionStatus:
      type: string
      enum:
      - 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
      default: DISPUTED_TRANSACTION_STATUS_UNKNOWN
    DisputeSummary:
      type: object
      properties:
        uuid:
          type: string
        customer:
          $ref: '#/components/schemas/Customer'
        resolutionDeadline:
          type: string
          format: int64
        agent:
          $ref: '#/components/schemas/Agent'
        status:
          $ref: '#/components/schemas/DisputeStatus'
        transactions:
          type: array
          items:
            $ref: '#/components/schemas/DisputedTransaction'
        auditLog:
          type: array
          items:
            $ref: '#/components/schemas/DisputeAuditLog'
        shortId:
          type: string
        reason:
          $ref: '#/components/schemas/DisputeReason'
    DisputesUploadFileBody:
      type: object
      properties:
        fileContent:
          type: string
          title: The file content as raw bytes
          contentEncoding: base64
        filename:
          type: string
          title: 'Optional: original filename'
        contentType:
          type: string
          title: 'Optional: MIME type of the file'
    DisputeReason:
      type: string
      enum:
      - 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
      default: DISPUTE_REASON_UNKNOWN
      title: "- DISPUTE_REASON_MERCHANT_ISSUE: deprecated\n - DISPUTE_REASON_ATM_ISSUE: deprecated\n - DISPUTE_REASON_TRANSFER_ISSUE: deprecated"
    DisputedTransaction:
      type: object
      properties:
        uuid:
          type: string
        settledTimestamp:
          type: string
          format: int64
        amount:
          $ref: '#/components/schemas/Amount'
        merchant:
          type: string
        status:
          $ref: '#/components/schemas/DisputedTransactionStatus'
        auditLog:
          type: array
          items:
            $ref: '#/components/schemas/TransactionAuditLog'
        transactionStatus:
          $ref: '#/components/schemas/TransactionStatus'
        provisionalCreditAmount:
          $ref: '#/components/schemas/Amount'
        finalCreditAmount:
          $ref: '#/components/schemas/Amount'
        reverseCreditAmount:
          $ref: '#/components/schemas/Amount'
        transactionFinalStatus:
          $ref: '#/components/schemas/FinalDecisionType'
    CreateDisputeRequestQuestionnaireAnswer:
      type: object
      properties:
        question:
          type: string
        answer:
          type: string
        questionId:
          type: string
    DisputesReopenDisputeBody:
      type: object
      properties:
        transactionUuids:
          type: array
          items:
            type: string
    CardType:
      type: string
      enum:
      - CARD_TYPE_UNKNOWN
      - CARD_TYPE_PHYSICAL
      - CARD_TYPE_VIRTUAL
      default: CARD_TYPE_UNKNOWN
    Address:
      type: object
      properties:
        line1:
          type: string
        line2:
          type: string
        city:
          type: string
        state:
          type: string
        postalCode:
          type: string
        country:
          type: string
    Agent:
      type: object
      properties:
        uuid:
          type: string
        name:
          type: string
        email:
          type: string
        phone:
          type: string
  securitySchemes:
    api_key:
      type: apiKey
      name: Authorization
      in: header
    user_uuid:
      type: apiKey
      name: x-user-uuid
      in: header
x-ext-urls: {}