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: {}