Skip to main content
Use the /cases endpoint to manage transaction disputes on the Visa network. For specific details on how to integrate with the Visa network, see Managing Visa Disputes. For general information on disputes, chargebacks, and best practices, see About Disputes.

Create dispute case

Action: POST
Endpoint: /cases
Create a new dispute case by specifying the type and including the type-specific details object.

Body field details

The dispute_details object

Include this object in your request if the case type is DISPUTE.

The dispute_details.dispute_reason field

The following table describes the possible values for the dispute_details.dispute_reason field.

The processing_error_type_dispute_details object

The late_presentment_details object
The incorrect_transaction_code_details object
The incorrect_currency_details object
The incorrect_account_number_details object
The incorrect_transaction_amount_details object

The consumer_dispute_type_dispute_details object

The service_not_provided_merchandise_not_received_details object
The cancelled_recurring_transaction_details object
The not_as_described_or_defective_merchandise_details object
The credit_not_processed_details object
The cancelled_merchandise_or_services_details object

The duplicate_processing_or_paid_by_other_means_details object

The additional_dispute_details object

The fraud_category_type_dispute_details object

Note
Do not use the FRAUDULENT_APPLICATION type when the dispute reason is either NOT_AUTHORIZED_CARD_PRESENT (10.3) or NOT_AUTHORIZED_CARD_ABSENT (10.4). The Visa card network will reject such disputes.

The fraud_classification_type_dispute_details object

The fraud_dispute_type_details object

An object providing additional information for cases with a fraud dispute reason.

The general_fraud_type_dispute_details object

Response body

Sample request body

JSON

Sample response body

JSON

Sample request body (FRAUD)

The following shows a sample request body for submitting a fraud report.
JSON

Sample response body (FRAUD)

The following shows a sample response body for submitting a fraud report.
JSON

Submit a batch of possibly associated transactions

Action: POST
Endpoint: /cases/{token}/associated_transactions/selections
Submit a batch of possibly associated transactions to the VISA Network. If the dispute case has any associated transactions, these are updated in the associated_transactions field for each transaction. If the submission is successful, the network_submission_status field is set to SUBMITTED. You can globally set credit_change_reason and auth_change_reason values for all transactions included in the post. These values can be overridden for each associated transaction. Each associated transaction is validated before submitting the batch to the network. If one associated transaction fails validation, the entire request fails. The failure occurs at the first violation, and the validation of the remaining payload is not validated. The response includes the list of affected associated transactions. If one of the potentially associated transactions has already been submitted to the network, an error is returned. The response provides a list of transactions. Those with the associated field set to true are associated with the dispute case.
Warning
Once an associated transaction selection form has been submitted, it cannot be resubmitted. The form can be updated.

URL path parameters

Body field details

The associated_transactions object

Associated transactions response

A response is generated when all transactions included in the request have been submitted to the network. A 200 response code is generated with the following fields:

The network_selection_form object

Submission errors

Sample request body

JSON

Sample response body

JSON

Update submitted associated transactions

Action: PUT
Endpoint: /cases/{token}/associated_transactions/selections
Update a list of selection forms that have already been submitted for a given dispute case. You can globally set credit_change_reason and auth_change_reason values for all transactions included in the post. These values can be overridden for each associated transaction. Each associated transaction is validated before submitting the batch to the network. If one associated transaction fails validation, the entire request fails. The failure occurs at the first violation and the remaining payload is not validated. The response includes the list of affected associated transactions. If one of the potentially associated transactions has already been submitted to the network, an error is returned. The response provides a list of transactions. Those with the associated field set to true are associated with the case.

URL path parameters

Body field details

For a description of the body field details and the fields in the associated_transactions object, see The associated_transactions object.

Update associated transactions response

For a description of the fields in the response, see Associated transactions response. When all associated forms have been updated, a 200 response code is generated with the fields in the response.

Submission errors

Sample request body

JSON

Sample response body

JSON

List associated transactions

Action: GET
Endpoint: /cases/{token}/associated_transactions
Get a list of transactions associated with a given dispute case. Use the network_phase query field to help distinguish associated transactions between the different phases in the network.

URL path parameter

Query parameter

Associated transactions list response

For a description of the fields in the associated transactions list response, see Associated transactions response. When all associated transactions have been retrieved, a 200 response code is generated.

Submission errors

Sample response body

JSON

Retrieve dispute case

Action: GET
Endpoint: /cases/{token}
Retrieve a specific dispute case.

URL path parameters

Query parameter

Response body

JSON

List dispute cases

Action: GET
Endpoint: /cases
List existing dispute cases. This endpoint supports sorting and pagination.

Query parameters

Response body

The dispute_details_response object

The network_case_status_details object

The regulation_details object

Sample response body

JSON

Create dispute case transition

Action: POST
Endpoint: /cases/{token}/transitions
Transition a dispute case to another state or initiate a chargeback against the dispute case. A dispute case transition is an event that changes the state of a dispute case and triggers other related events. The new state of the dispute case and which related events are triggered is determined by the action defined in the dispute case transition.

URL path parameters

Body field details

The transition_details object

The chargeback_details object

Dispute case transitions

Dispute case transitions represent the workflow during the creation, information gathering, and submission processes a dispute case. The dispute case transition actions and resulting states are described below.

The transition reason_code field

The transition reason code identifies the standardized reason for the transition.

Dispute transition response

Sample request body (CHARGEBACK_CREDIT)

This sample is only for programs that are not enabled for Regulation E.
JSON

Sample response body (CHARGEBACK_CREDIT)

This sample is only for programs that are not enabled for Regulation E.
JSON

Sample request body (CHARGEBACK_NO_CREDIT)

JSON

Sample response body (CHARGEBACK_NO_CREDIT)

JSON

Response action/reason code changes

There are some cases where the reason code is changed by the system for either of two reasons:
  • An error occurred while processing a transition.
  • The dispute case transition moved the case to a state different from the desired state.

Sample response body (ACTION/REASON CODE CHANGES)

JSON

Transition failure response

An error occurs when attempting to transition a dispute case using CHARGEBACK_SUBMIT when the dispute has no provisional credit granted.

Error response

Sample response body (TRANSITION FAILURE RESPONSE)

JSON

Retrieve dispute case transition

Action: GET
Endpoint: /cases/{token}/transitions/{transition_token}
Retrieve a specific dispute case transition for a specific dispute case. A dispute case transition is an event that changes the state of a dispute case and triggers other related events. The new state of the dispute case and which related events are triggered is determined by the action defined in the dispute case transition.

URL path parameters

Retrieve dispute case transition response

See Dispute transition response.

Sample response body

JSON

List dispute case transitions

Action: GET
Endpoint: /cases/{token}/transitions
List existing dispute case transitions for the specified dispute case. This endpoint supports sorting and pagination.

URL path parameters

Query parameters

List dispute case transition response

See Dispute transition response.

Sample response body

JSON

Create network dispute transition

Action: POST
Endpoint: /cases/{token}/disputetransitions
Create a network dispute transition. A network dispute transition is an event that changes the network state of a dispute and triggers other related events. The new state of the dispute within the network dispute lifecycle and which related events are triggered is determined by the action defined in the network dispute transition.

URL path parameters

Request body

The network_details object

Depending on the transition, contains the prearbitration_details object or the arbitration_details object.

The prearbitration_details object

The details for prearbitration.

The prearbitration_response_details object

The details for prearbitration response.

The arbitration_details object

The details for arbitration.

The representment_details object

The details for representment transition.

The case_close_details object

The details for case close transition details.

Network dispute transition response body

The network_details_response object

Depending on the transition, contains the prearbitration_details object or the arbitration_details object.

Sample request with prearbitration

JSON

Sample response with prearbitration

JSON

Sample request with arbitration

JSON

Sample response with arbitration

JSON

Sample accept and close dispute request

JSON

Sample accept and close dispute response

JSON

Sample close with case won dispute request

JSON

Sample close with case won dispute response

JSON

Create ACCEPT_AND_CLOSE transition

This transition moves the network dispute state to CASE_LOST sets the case transition to CLOSE with reason code 42 (Case Lost). For Regulation E dispute cases, if the case is past 45 days, the callee must specify both write_off and write_off_actor. When this occurs, the dispute state is set to WRITE_OFF_PROGRAM and sets the case transition to CLOSE with reason code 45 (Write off Program).

Query parameters

Response fields

See the Network dispute transition response table.

Error codes

Sample ACCEPT_AND_CLOSE transition request

JSON

Sample ACCEPT_AND_CLOSE transition response

JSON

Create CLOSE_WITH_CASE_WON transition

For Regulation E and non-Regulation E network dispute cases, the dispute state is set to CASE_WON and a CLOSE case transition with reason code 41 (Case Won) is created.

Sample CLOSE_WITH_CASE_WON transition request

JSON

Sample CLOSE_WITH_CASE_WON transition response

JSON

Retrieve network dispute transition

Action: GET
Endpoint: /cases/{token}/disputetransitions/{transition_token}
Retrieve a specific network dispute transition for a specific dispute. A network dispute transition is an event that changes the state of a dispute and triggers other related events. The new state of the dispute and which related events are triggered is determined by the action defined in the transition.

URL path parameters

Response fields

See the Network dispute transition response table.

Sample response body

JSON

List network dispute transitions

Action: GET
Endpoint: /cases/{token}/disputetransitions
List existing network dispute transitions for the specified dispute, including details of the merchant/acquirer responses during the backend resolution process. This endpoint supports sorting and pagination.

URL path parameters

List network dispute transitions response fields

See the Network dispute transition response table.

Sample response body

JSON

Create dispute case content

Action: POST
Endpoint: /cases/{token}/contents
Upload and store documents related to a dispute, such as evidence for dispute or KYC verification documents. The supported document formats are pdf, tiff, and jpeg. Each uploaded file is restricted to 2 MB.

URL path parameter

Request body

Create content response body

Sample request body

JSON

Sample response body

JSON

List contents uploaded against a dispute case

Action: GET
Endpoint: /cases/{token}/contents
Get a list of uploaded contents for the specified dispute case.

URL path parameter

List contents response

For response details, see Create content response body.

Sample response body

JSON

Get content and status

Action: GET
Endpoint: /cases/{case_token}/contents/{token}
Get a specific document and its status, and optionally start returning a temporary link to download the file. If you include the download_link=true query parameter, a temporary link is returned in the response that you can use to download the document. The link is active for 15 minutes; after that time, you must call this endpoint again to generate a new link.

URL path parameters

Response body

For response details, see Create content response body.

Sample response body

JSON

Update document

Action: PUT
Endpoint: /cases/{token}/contents/{content_token}
Change the name of a document or category. If the content has already been processed and is currently SUBMITTED or RECEIVED, an error is returned.

URL path parameter

Body field details

Update document response body

For response details, see Create content response body.

Sample request body

JSON

Sample response body

JSON

Delete a document

Action: DELETE
Endpoint: /cases/{token}/contents/{content_token}
Delete a dispute case document. If the document has already been processed with the network_processing_type set to SUBMITTED or RECEIVED, an error is returned.

URL path parameter

Delete content response

This endpoint returns a 200 response code and success in the response body.

Sample response body

JSON

Create dispute case action

Action: POST
Endpoint: /cases/{token}/actions
Create a dispute case action.

Path parameter

Body field details

Response body

Sample request

JSON

Sample response

JSON

Create event

Action: POST
Endpoint: /cases/{token}/events
Create a dispute case event. If you are a Managed by Marqeta (MxM) customer or a hybrid card program and you are submitting a dispute that falls under Regulation E, you must create a case event with evidence. For instructions on creating a case event with evidence, see Disputes Evidence Collection.

Path parameter

Body field details

Response body

Sample request

JSON

Sample response

JSON

List events

Action: GET
Endpoint: /cases/{token}/events
List events.

Path parameter

Response body

Sample response

JSON

List dispute case milestones

Action: GET
Endpoint: /cases/{token}/milestones
List dispute case milestones.

Path parameter

Body field details

Response body

Sample response

JSON