{"openapi": "3.1.0", "info": {"title": "Triple Disputes API", "version": "1.0.0", "description": "Public API for submitting disputes and retrieving evaluation results."}, "paths": {"/api/evaluations/": {"post": {"operationId": "disputes_rest_external_evaluations_create_evaluation", "summary": "Create an evaluation", "parameters": [], "responses": {"200": {"description": "OK"}}, "description": "Submit dispute input data for the new evaluation flow.", "tags": ["Evaluations"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateEvaluationIn"}}}, "required": true}, "security": [{"BearerAuthentication": []}]}}, "/api/evaluations/{evaluation_id}/result": {"get": {"operationId": "disputes_rest_external_evaluations_get_evaluation_result", "summary": "Get evaluation result", "parameters": [{"in": "path", "name": "evaluation_id", "schema": {"format": "uuid", "title": "Evaluation Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/GetEvaluationResultOut"}}}}}, "description": "Retrieve the finished result for a singular evaluation.", "tags": ["Evaluations"], "security": [{"BearerAuthentication": []}]}}, "/api/evaluations/{evaluation_id}/dispute_resolution_document": {"get": {"operationId": "disputes_rest_external_evaluations_get_dispute_resolution_document", "summary": "Get dispute resolution document", "parameters": [{"in": "path", "name": "evaluation_id", "schema": {"format": "uuid", "title": "Evaluation Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DisputeResolutionDocumentResponseOut"}}}}, "404": {"description": "Not Found"}}, "tags": ["Evaluations"], "security": [{"BearerAuthentication": []}]}, "post": {"operationId": "disputes_rest_external_evaluations_create_dispute_resolution_document", "summary": "Get or generate dispute resolution document", "parameters": [{"in": "path", "name": "evaluation_id", "schema": {"format": "uuid", "title": "Evaluation Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DisputeResolutionDocumentResponseOut"}}}}}, "tags": ["Evaluations"], "security": [{"BearerAuthentication": []}]}}, "/api/disputes/": {"post": {"operationId": "disputes_rest_external_disputes_create_dispute", "summary": "Create a dispute", "parameters": [], "responses": {"201": {"description": "Created", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DisputeOut"}}}}}, "tags": ["Disputes"], "requestBody": {"content": {"application/json": {"schema": {"$ref": "#/components/schemas/CreateDisputeIn"}}}, "required": true}, "security": [{"BearerAuthentication": []}]}}, "/api/disputes/{dispute_id}": {"get": {"operationId": "disputes_rest_external_disputes_get_dispute", "summary": "Get dispute", "parameters": [{"in": "path", "name": "dispute_id", "schema": {"format": "uuid", "title": "Dispute Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DisputeDetailOut"}}}}}, "tags": ["Disputes"], "security": [{"BearerAuthentication": []}]}}, "/api/disputes/{dispute_id}/resolution-document": {"get": {"operationId": "disputes_rest_external_disputes_get_dispute_resolution_document", "summary": "Get dispute resolution document", "parameters": [{"in": "path", "name": "dispute_id", "schema": {"format": "uuid", "title": "Dispute Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DisputeDocumentOut"}}}}, "404": {"description": "Not Found"}}, "tags": ["Disputes"], "security": [{"BearerAuthentication": []}]}, "post": {"operationId": "disputes_rest_external_disputes_create_dispute_resolution_document", "summary": "Get or generate dispute resolution document", "parameters": [{"in": "path", "name": "dispute_id", "schema": {"format": "uuid", "title": "Dispute Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/DisputeDocumentOut"}}}}}, "tags": ["Disputes"], "security": [{"BearerAuthentication": []}]}}, "/api/files/evidence_files/": {"post": {"operationId": "disputes_rest_external_files_upload_evidence_file", "summary": "Upload an evidence file", "parameters": [], "responses": {"201": {"description": "Created", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FileOut"}}}}}, "description": "Upload an evidence file and receive its id for use in evaluations.", "tags": ["Files"], "requestBody": {"content": {"multipart/form-data": {"schema": {"properties": {"file": {"format": "binary", "title": "File", "type": "string"}}, "required": ["file"], "title": "FileParams", "type": "object"}}}, "required": true}, "security": [{"BearerAuthentication": []}]}}, "/api/files/evidence_files/{file_id}": {"get": {"operationId": "disputes_rest_external_files_get_file", "summary": "Get file metadata and signed URL", "parameters": [{"in": "path", "name": "file_id", "schema": {"format": "uuid", "title": "File Id", "type": "string"}, "required": true}], "responses": {"200": {"description": "OK", "content": {"application/json": {"schema": {"$ref": "#/components/schemas/FileOut"}}}}}, "description": "Retrieve metadata and a signed URL for an evidence file.", "tags": ["Files"], "security": [{"BearerAuthentication": []}]}}}, "components": {"schemas": {"AVSResult": {"description": "Address Verification Service (AVS) result.\n\nCompares only numeric portions (house number, ZIP code) of the billing address.", "enum": ["MATCH", "NO_MATCH", "PARTIAL_MATCH", "NOT_PROVIDED"], "title": "AVSResult", "type": "string", "x-enum-descriptions": {"MATCH": "House number and ZIP code matched the issuer's records.", "NO_MATCH": "Address did not match issuer's records. Fraud indicator.", "PARTIAL_MATCH": "Partial match (e.g., ZIP matched but house number didn't).", "NOT_PROVIDED": "AVS not performed. Card may be foreign or merchant didn't request it."}}, "AuthorizationMode": {"description": "How payment authorization was performed.", "enum": ["ONLINE", "OFFLINE", "NO_AUTH", "UNKNOWN"], "title": "AuthorizationMode", "type": "string", "x-enum-descriptions": {"ONLINE": "The transaction was authorized online with the issuer/network.", "OFFLINE": "The transaction followed an EMV offline authorization path.", "NO_AUTH": "No authorization step was performed.", "UNKNOWN": "The authorization path is unavailable or could not be mapped."}}, "CardScheme": {"description": "The card network (payment scheme) that processed the transaction.\n\nDifferent networks have different dispute rules and timeframes.", "enum": ["VISA", "MASTERCARD"], "title": "CardScheme", "type": "string", "x-enum-descriptions": {"VISA": "Visa card network. Disputes follow Visa's Claims Resolution process with specific reason codes and documentation requirements.", "MASTERCARD": "Mastercard network. Disputes follow Mastercard's chargeback process with its own reason codes and evidence requirements."}}, "ChannelType": {"description": "The channel through which the transaction was conducted.\n\nThis affects what evidence is available and applicable for the dispute.", "enum": ["ATM", "POS", "ECOMMERCE"], "title": "ChannelType", "type": "string", "x-enum-descriptions": {"ATM": "Automated Teller Machine transaction. Cash withdrawal or balance inquiry at an ATM terminal.", "POS": "Point of Sale transaction. An in-person, card-present purchase at a physical retail location where the card was swiped, inserted, or tapped.", "ECOMMERCE": "E-commerce or card-not-present transaction. An online or remote purchase where the card details were entered manually without the physical card being present."}}, "CreateEvaluationIn": {"additionalProperties": false, "properties": {"dispute": {"$ref": "#/components/schemas/Dispute", "description": "Dispute details including the description, disputed amount and currency."}, "transaction": {"$ref": "#/components/schemas/Transaction", "description": "Transaction being disputed."}, "evidences": {"$ref": "#/components/schemas/Evidences", "description": "Evidences supporting the dispute."}}, "required": ["dispute", "transaction", "evidences"], "title": "CreateEvaluationIn", "type": "object"}, "Dispute": {"additionalProperties": false, "properties": {"disputed_amount": {"anyOf": [{"type": "number"}, {"pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,10}|(?=[\\d.]{1,13}0*$)\\d{0,10}\\.\\d{0,2}0*$)", "type": "string"}], "description": "The amount being disputed, in major currency units (e.g., dollars, not cents). This may match the full transaction amount or be a partial amount when only some items or services are being disputed.", "examples": [149.99], "title": "Disputed Amount"}, "disputed_currency": {"description": "The ISO 4217 three-letter currency code for the disputed amount (e.g., 'USD', 'EUR', 'GBP').", "examples": ["USD"], "maxLength": 3, "minLength": 3, "title": "Disputed Currency", "type": "string"}, "description": {"description": "A written statement from the cardholder describing the dispute in their own words.", "examples": ["I did not make this purchase and my card details were stolen."], "minLength": 35, "title": "Description", "type": "string", "x-multiline": true}}, "required": ["disputed_amount", "disputed_currency", "description"], "title": "Dispute", "type": "object"}, "Evidences": {"additionalProperties": false, "properties": {"additional_documentation": {"anyOf": [{"description": "Optional list of uploaded file IDs for the `additional_documentation` evidence field (for example police reports, merchant communications, receipts, or policy documents). Maximum 5 files.", "examples": [["550e8400-e29b-41d4-a716-446655440000"]], "items": {"format": "uuid", "type": "string"}, "maxItems": 5, "type": "array"}, {"type": "null"}], "title": "Additional Documentation"}, "intended_transaction": {"anyOf": [{"$ref": "#/components/schemas/Transaction", "description": "The details of the original, legitimate transaction that the cardholder intended to make and wishes to keep. This transaction will NOT be disputed. By providing this, you are identifying which of the multiple charges should remain on the cardholder's account while the duplicates are reversed. The system uses this to compare against the disputed transaction and identify the duplicate processing. It is essential to include the acquirer reference number (ARN) to correctly identify the original charge. The intended transaction card data is required.", "related_attribute_skip_nested": true}, {"type": "null"}]}, "oldest_matching_transaction_timestamps": {"anyOf": [{"description": "An array containing the two oldest non-disputed transaction timestamps (up to 365 days) that match both the merchant ID and the device fingerprint or device location of the disputed transaction. Provide timestamps in ISO 8601 format (UTC).", "examples": [["2023-06-15T10:30:00Z", "2023-08-20T14:00:00Z"]], "items": {"format": "date-time", "type": "string"}, "maxItems": 2, "type": "array"}, {"type": "null"}], "title": "Oldest Matching Transaction Timestamps"}, "oldest_merchant_purchase_at": {"anyOf": [{"description": "The timestamp of the cardholder's oldest purchase at the same merchant, including the disputed transaction. Provide in ISO 8601 format (UTC).", "examples": ["2023-06-15T14:30:00Z"], "format": "date-time", "type": "string"}, {"type": "null"}], "title": "Oldest Merchant Purchase At"}, "emv_tlv_hex": {"anyOf": [{"description": "Hex-encoded EMV TLV payload for the disputed transaction. Provide the DE55 field from the authorization message where available, or from the clearing message if not captured at authorization.", "examples": ["9F2608A1B2C3D4E5F607089F2701809F3303E0F8C8"], "type": "string"}, {"type": "null"}], "title": "Emv Tlv Hex"}}, "title": "Evidences", "type": "object"}, "PosEntryType": {"description": "How the card data was captured for the disputed transaction.", "enum": ["MANUAL", "CHIP", "CONTACTLESS", "MAGSTRIPE", "FALLBACK", "UNKNOWN"], "title": "PosEntryType", "type": "string", "x-enum-descriptions": {"MANUAL": "Card details were entered manually.", "CHIP": "Card data was captured through a contact EMV chip read.", "CONTACTLESS": "Card data was captured through an EMV contactless read.", "MAGSTRIPE": "Card data was captured from a magnetic stripe read.", "FALLBACK": "The transaction completed through a fallback flow after the preferred path failed.", "UNKNOWN": "The entry mode is unavailable, ambiguous, or could not be mapped."}}, "Transaction": {"additionalProperties": false, "description": "Transaction details for the disputed charge.", "properties": {"transaction_id": {"description": "Your unique identifier for this transaction. Used to correlate the dispute with your internal records.", "examples": ["txn_12345"], "maxLength": 255, "minLength": 1, "title": "Transaction Id", "type": "string"}, "channel_type": {"$ref": "#/components/schemas/ChannelType", "description": "Channel where the transaction occurred. Options: ECOMMERCE (online/card-not-present purchase), POS (in-person card-present purchase), ATM (cash withdrawal at ATM).", "examples": ["ECOMMERCE"]}, "merchant_name": {"description": "Merchant name exactly as it appears on the cardholder's statement. This is how the cardholder identifies the charge.", "examples": ["ACME Store"], "maxLength": 255, "minLength": 1, "title": "Merchant Name", "type": "string"}, "merchant_country": {"description": "ISO 3166-1 alpha-3 country code where the merchant is located (e.g., 'USA', 'GBR', 'DEU').", "examples": ["USA"], "maxLength": 3, "minLength": 3, "title": "Merchant Country", "type": "string"}, "transaction_amount": {"description": "Transaction amount in major currency units (e.g., dollars, not cents). This is the full amount that was charged to the card.", "examples": [299.99], "title": "Transaction Amount", "type": "number"}, "transaction_currency": {"description": "Three-letter ISO 4217 currency code for the transaction amount (e.g., USD, EUR, GBP).", "examples": ["USD"], "maxLength": 3, "minLength": 3, "title": "Transaction Currency", "type": "string"}, "merchant_id": {"description": "Unique identifier assigned to the merchant by the acquirer. Used to identify the business across multiple transactions and terminals.", "examples": ["mid_123"], "maxLength": 100, "minLength": 1, "title": "Merchant Id", "type": "string"}, "transaction_timestamp": {"description": "Date and time when the transaction was authorized, in ISO 8601 format (UTC). This is when the cardholder initiated the purchase.", "examples": ["2024-01-20T00:00:00Z"], "format": "date-time", "title": "Transaction Timestamp", "type": "string"}, "settlement_timestamp": {"anyOf": [{"description": "Date and time when the transaction was settled, in ISO 8601 format (UTC). Settlement occurs when funds are transferred from issuer to acquirer.", "examples": ["2024-01-22T00:00:00Z"], "format": "date-time", "type": "string"}, {"type": "null"}], "title": "Settlement Timestamp"}, "merchant_category_code": {"description": "Merchant Category Code (MCC). A four-digit code classifying the merchant's business type (e.g., 5411 for grocery stores, 5812 for restaurants).", "examples": ["5311"], "maxLength": 4, "minLength": 4, "title": "Merchant Category Code", "type": "string"}, "arn": {"description": "Acquirer Reference Number. A unique 23-digit identifier assigned by the acquirer to trace the transaction through the card network.", "examples": ["12345678901234567890123"], "maxLength": 50, "minLength": 1, "title": "Arn", "type": "string"}, "rrn": {"anyOf": [{"description": "Retrieval Reference Number. A 12-digit identifier used to locate and retrieve the original transaction record.", "examples": ["123456789012"], "maxLength": 50, "type": "string"}, {"type": "null"}], "title": "Rrn"}, "device_fingerprint": {"anyOf": [{"description": "A unique identifier derived from the device used to initiate the transaction (e.g., browser fingerprint, device ID). Used to match transactions originating from the same device.", "examples": ["dfp_abc123xyz"], "maxLength": 255, "type": "string"}, {"type": "null"}], "title": "Device Fingerprint"}, "device_location": {"anyOf": [{"description": "IP address of the device at transaction time, if available", "examples": ["203.0.113.42"], "maxLength": 255, "type": "string"}, {"type": "null"}], "title": "Device Location"}, "avs_result": {"anyOf": [{"$ref": "#/components/schemas/AVSResult", "description": "Address Verification Service result. Compares only numeric portions of the billing address (house number, ZIP code) against the issuer's records. Options include MATCH, NO_MATCH, PARTIAL_MATCH, and NOT_PROVIDED."}, {"type": "null"}]}, "cvv_match": {"anyOf": [{"description": "Whether the CVV2/CVC2 (3-4 digit security code on the card) matched during the transaction.", "examples": [true], "title": "CVV Match", "type": "boolean"}, {"type": "null"}], "title": "Cvv Match"}, "eci_code": {"anyOf": [{"description": "The final Electronic Commerce Indicator (ECI) code for the transaction. Indicates the level of authentication achieved (e.g., '05' for fully authenticated 3DS on Visa, '02' for Mastercard).", "examples": ["05"], "maxLength": 2, "title": "ECI Code", "type": "string"}, {"type": "null"}], "title": "Eci Code"}, "pos_entry_type": {"anyOf": [{"$ref": "#/components/schemas/PosEntryType", "description": "How card data was captured at POS. Options include MANUAL, CHIP, CONTACTLESS, MAGSTRIPE, FALLBACK, and UNKNOWN.", "examples": ["CHIP"]}, {"type": "null"}]}, "authorization_mode": {"anyOf": [{"$ref": "#/components/schemas/AuthorizationMode", "description": "How authorization was performed. ONLINE means issuer/network auth; OFFLINE means EMV offline path; NO_AUTH indicates no authorization step; UNKNOWN means the authorization path is unavailable or could not be mapped.", "examples": ["ONLINE"]}, {"type": "null"}]}, "is_network_tokenized": {"anyOf": [{"description": "Whether the disputed transaction was processed using a network token (for example, wallet/device tokenization) instead of only PAN details.", "examples": [true], "type": "boolean"}, {"type": "null"}], "title": "Is Network Tokenized"}, "card_scheme": {"$ref": "#/components/schemas/CardScheme", "description": "Card network that processed the transaction. Options: VISA (Visa network), MC (Mastercard network). Each network has different dispute rules and timeframes.", "examples": ["MASTERCARD"]}, "card_bin": {"anyOf": [{"description": "Card BIN (Issuer Identification Number), 6 to 8 digits. Use the identifier associated with the card details used in this transaction.", "examples": ["54133388"], "maxLength": 8, "minLength": 6, "pattern": "^\\d{6,8}$", "type": "string"}, {"type": "null"}], "title": "Card Bin"}, "card_last_4": {"anyOf": [{"description": "Last 4 digits associated with the card details used in this transaction. For network-tokenized payments, these may correspond to tokenized card details.", "examples": ["1234"], "maxLength": 4, "minLength": 4, "pattern": "^\\d{4}$", "type": "string"}, {"type": "null"}], "title": "Card Last 4"}, "card_token": {"anyOf": [{"maxLength": 255, "type": "string"}, {"type": "null"}], "title": "Card Token"}, "card_emv_chip_enabled": {"anyOf": [{"description": "Whether the card profile supports EMV chip functionality for in-person payments.", "examples": [true], "type": "boolean"}, {"type": "null"}], "title": "Card Emv Chip Enabled"}, "card_emv_pin_preferring": {"anyOf": [{"description": "Whether the card is configured to prefer PIN verification in EMV chip flows.", "examples": [false], "type": "boolean"}, {"type": "null"}], "title": "Card Emv Pin Preferring"}}, "required": ["transaction_id", "channel_type", "merchant_name", "merchant_country", "transaction_amount", "transaction_currency", "merchant_id", "transaction_timestamp", "merchant_category_code", "arn", "card_scheme"], "title": "Transaction", "type": "object"}, "FailedRuleOut": {"additionalProperties": false, "properties": {"message": {"description": "Human-readable description of the failure.", "examples": ["Cardholder statement is too short."], "title": "Message", "type": "string"}, "type": {"$ref": "#/components/schemas/FailureType", "description": "Type of validation failure.", "examples": ["missing_info"]}, "related_attributes": {"items": {"type": "string"}, "title": "Related Attributes", "type": "array"}}, "required": ["message", "type", "related_attributes"], "title": "FailedRuleOut", "type": "object"}, "FailureType": {"enum": ["error", "missing_info"], "title": "FailureType", "type": "string"}, "GetEvaluationResultOut": {"additionalProperties": false, "properties": {"evaluation_id": {"description": "Evaluation identifier.", "examples": ["eval_a1b2c3"], "title": "Evaluation Id", "type": "string"}, "confidence": {"description": "Confidence level for the evaluation.", "examples": ["high"], "title": "Confidence", "type": "string"}, "reason_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Resolved card-network reason code (for example, '10.4' for VISA or '4837' for Mastercard) when mapping exists; otherwise null.", "examples": ["10.4", "4837", null], "title": "Reason Code"}, "failed_rules": {"description": "List of failed rules requiring attention.", "items": {"$ref": "#/components/schemas/FailedRuleOut"}, "title": "Failed Rules", "type": "array"}, "failed_custom_rules": {"description": "List of failed custom rules requiring attention.", "items": {"$ref": "#/components/schemas/FailedRuleOut"}, "title": "Failed Custom Rules", "type": "array"}}, "required": ["evaluation_id", "confidence", "failed_rules", "failed_custom_rules"], "title": "GetEvaluationResultOut", "type": "object"}, "DisputeResolutionDocumentFileOut": {"properties": {"url": {"description": "Absolute URL to the generated dispute resolution PDF.", "examples": ["http://testserver/media/dispute.pdf"], "title": "Url", "type": "string"}, "mime_type": {"default": "application/pdf", "description": "MIME type for the generated dispute resolution document.", "examples": ["application/pdf"], "title": "Mime Type", "type": "string"}}, "required": ["url"], "title": "DisputeResolutionDocumentFileOut", "type": "object"}, "DisputeResolutionDocumentOut": {"properties": {"id": {"description": "Generated dispute resolution document identifier.", "format": "uuid", "title": "Id", "type": "string"}, "card_scheme": {"description": "Card network scheme associated with the generated dispute resolution document.", "examples": ["MASTERCARD"], "title": "Card Scheme", "type": "string"}, "file": {"$ref": "#/components/schemas/DisputeResolutionDocumentFileOut"}, "created_at": {"description": "Timestamp when the dispute resolution document record was created.", "format": "date-time", "title": "Created At", "type": "string"}, "generated_at": {"description": "Timestamp when the dispute resolution document was generated.", "format": "date-time", "title": "Generated At", "type": "string"}}, "required": ["id", "card_scheme", "file", "created_at", "generated_at"], "title": "DisputeResolutionDocumentOut", "type": "object"}, "DisputeResolutionDocumentResponseOut": {"properties": {"evaluation_id": {"description": "Evaluation identifier for the dispute resolution document.", "format": "uuid", "title": "Evaluation Id", "type": "string"}, "document": {"$ref": "#/components/schemas/DisputeResolutionDocumentOut"}}, "required": ["evaluation_id", "document"], "title": "DisputeResolutionDocumentResponseOut", "type": "object"}, "DisputeDocumentOut": {"properties": {"id": {"format": "uuid", "title": "Id", "type": "string"}, "card_scheme": {"title": "Card Scheme", "type": "string"}, "file": {"$ref": "#/components/schemas/DocumentFileOut"}, "created_at": {"format": "date-time", "title": "Created At", "type": "string"}}, "required": ["id", "card_scheme", "file", "created_at"], "title": "DisputeDocumentOut", "type": "object"}, "DisputeIn": {"additionalProperties": false, "properties": {"disputed_amount": {"description": "The amount being disputed, in major currency units (e.g., dollars, not cents). This may match the full transaction amount or be a partial amount when only some items or services are being disputed.", "examples": [149.99], "title": "Disputed Amount", "type": "number"}, "disputed_currency": {"description": "The ISO 4217 three-letter currency code for the disputed amount (e.g., 'USD', 'EUR', 'GBP').", "examples": ["USD"], "maxLength": 3, "minLength": 3, "title": "Disputed Currency", "type": "string"}, "description": {"description": "A written statement from the cardholder describing the dispute in their own words.", "examples": ["I did not make this purchase and my card details were stolen."], "minLength": 35, "title": "Description", "type": "string", "x-multiline": true}, "reason_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Optional bank-provided reason code known at intake time.", "examples": ["10.4", "4837", null], "title": "Reason Code"}}, "required": ["disputed_amount", "disputed_currency", "description"], "title": "DisputeIn", "type": "object"}, "DisputeOut": {"properties": {"id": {"format": "uuid", "title": "Id", "type": "string"}, "status": {"$ref": "#/components/schemas/DisputeStatus"}, "confidence": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Confidence"}, "reason_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Reason Code"}, "workflow_version": {"$ref": "#/components/schemas/WorkflowVersionRefOut"}, "current_node": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Current Node"}, "latest_run_id": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "title": "Latest Run Id"}, "created": {"format": "date-time", "title": "Created", "type": "string"}, "dispute": {"$ref": "#/components/schemas/DisputeIn"}, "transaction": {"$ref": "#/components/schemas/Transaction"}, "evidences": {"$ref": "#/components/schemas/Evidences"}, "document": {"anyOf": [{"$ref": "#/components/schemas/DisputeDocumentOut"}, {"type": "null"}]}}, "required": ["id", "status", "workflow_version", "created", "dispute", "transaction", "evidences"], "title": "DisputeOut", "type": "object"}, "DisputeStatus": {"enum": ["running", "human_review", "approved", "rejected", "scheme_management", "failed"], "title": "DisputeStatus", "type": "string"}, "DocumentFileOut": {"properties": {"url": {"title": "Url", "type": "string"}, "mime_type": {"default": "application/pdf", "title": "Mime Type", "type": "string"}}, "required": ["url"], "title": "DocumentFileOut", "type": "object"}, "WorkflowVersionRefOut": {"properties": {"id": {"format": "uuid", "title": "Id", "type": "string"}, "version": {"title": "Version", "type": "integer"}, "state": {"$ref": "#/components/schemas/WorkflowVersionState"}}, "required": ["id", "version", "state"], "title": "WorkflowVersionRefOut", "type": "object"}, "WorkflowVersionState": {"enum": ["active", "superseded"], "title": "WorkflowVersionState", "type": "string"}, "CreateDisputeIn": {"additionalProperties": false, "properties": {"dispute": {"$ref": "#/components/schemas/DisputeIn"}, "transaction": {"$ref": "#/components/schemas/Transaction"}, "evidences": {"$ref": "#/components/schemas/Evidences"}}, "required": ["dispute", "transaction", "evidences"], "title": "CreateDisputeIn", "type": "object"}, "DisputeDetailOut": {"properties": {"id": {"format": "uuid", "title": "Id", "type": "string"}, "status": {"$ref": "#/components/schemas/DisputeStatus"}, "confidence": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Confidence"}, "reason_code": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Reason Code"}, "workflow_version": {"$ref": "#/components/schemas/WorkflowVersionRefOut"}, "current_node": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Current Node"}, "latest_run_id": {"anyOf": [{"format": "uuid", "type": "string"}, {"type": "null"}], "title": "Latest Run Id"}, "created": {"format": "date-time", "title": "Created", "type": "string"}, "dispute": {"$ref": "#/components/schemas/DisputeIn"}, "transaction": {"$ref": "#/components/schemas/Transaction"}, "evidences": {"$ref": "#/components/schemas/Evidences"}, "document": {"anyOf": [{"$ref": "#/components/schemas/DisputeDocumentOut"}, {"type": "null"}]}, "runs": {"default": [], "items": {"$ref": "#/components/schemas/WorkflowRunSummaryOut"}, "title": "Runs", "type": "array"}}, "required": ["id", "status", "workflow_version", "created", "dispute", "transaction", "evidences"], "title": "DisputeDetailOut", "type": "object"}, "WorkflowRunStatus": {"enum": ["pending", "running", "human_review", "approved", "rejected", "scheme_management", "failed", "superseded"], "title": "WorkflowRunStatus", "type": "string"}, "WorkflowRunSummaryOut": {"properties": {"id": {"format": "uuid", "title": "Id", "type": "string"}, "status": {"$ref": "#/components/schemas/WorkflowRunStatus"}, "current_node_id": {"anyOf": [{"type": "string"}, {"type": "null"}], "title": "Current Node Id"}, "created": {"format": "date-time", "title": "Created", "type": "string"}, "completed_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Completed At"}, "failed_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Failed At"}, "superseded_at": {"anyOf": [{"format": "date-time", "type": "string"}, {"type": "null"}], "title": "Superseded At"}}, "required": ["id", "status", "created"], "title": "WorkflowRunSummaryOut", "type": "object"}, "FileOut": {"description": "Metadata for an uploaded evidence file.", "properties": {"id": {"description": "Evidence file identifier.", "examples": ["550e8400-e29b-41d4-a716-446655440000"], "format": "uuid", "title": "Id", "type": "string"}, "url": {"description": "Signed URL to access the file.", "examples": ["https://files.example.com/evidence/550e8400-e29b-41d4-a716-446655440000"], "title": "Url", "type": "string"}, "original_name": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "Original filename provided by the client.", "examples": ["receipt.pdf"], "title": "Original Name"}, "mime_type": {"anyOf": [{"type": "string"}, {"type": "null"}], "description": "MIME type detected for the file.", "examples": ["application/pdf"], "title": "Mime Type"}, "size": {"anyOf": [{"type": "integer"}, {"type": "null"}], "description": "File size in bytes.", "examples": [123456], "title": "Size"}}, "required": ["id", "url"], "title": "FileOut", "type": "object"}}, "securitySchemes": {"BearerAuthentication": {"type": "http", "scheme": "bearer"}}}, "servers": [{"url": "https://api.disputes.play.tripledev.app"}]}