Disputes

As a card issuer, you can dispute transactions that the cardholder does not recognize, suspects to be fraudulent, or has other issues with.

Related guide: Issuing disputes

The Dispute object

Attributes

  • idstring

    Unique identifier for the object.

  • amountinteger

    Disputed amount in the card’s currency and in the smallest currency unit. Usually the amount of the transaction, but can differ (usually because of currency fluctuation).

  • balance_transactionsnullable array of objectsExpandable

    List of balance transactions associated with the dispute.

  • currencyenum

    The currency the transaction was made in.

  • evidenceobject

    Evidence for the dispute. Evidence contains exactly two non-null fields: the reason for the dispute and the associated evidence field for the selected reason.

  • metadataobject

    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format.

  • statusenum

    Current status of the dispute.

    Possible enum values
    expired

    The dispute has expired.

    lost

    The dispute is lost.

    submitted

    The dispute has been submitted to Stripe.

    unsubmitted

    The dispute is pending submission to Stripe.

    won

    The dispute is won.

  • transactionstringExpandable

    The transaction being disputed.

More attributes

  • objectstring

  • createdtimestamp

  • livemodeboolean

The Dispute object
{
"id": "idp_1MykdxFtDWhhyHE1BFAV3osZ",
"object": "issuing.dispute",
"amount": 100,
"created": 1681947753,
"currency": "usd",
"evidence": {
"fraudulent": {
"additional_documentation": null,
"dispute_explanation": null,
"explanation": "This transaction is fraudulent.",
"uncategorized_file": null
},
"reason": "fraudulent"
},
"livemode": false,
"metadata": {},
"status": "unsubmitted",
"transaction": "ipi_1MykXhFtDWhhyHE1UjsZZ3xQ"
}

Create a dispute

Creates an Issuing Dispute object. Individual pieces of evidence within the evidence object are optional at this point. Stripe only validates that required evidence is present during submission. Refer to Dispute reasons and evidence for more details about evidence requirements.

Parameters

  • evidenceobject

    Evidence provided for the dispute.

  • metadataobject

    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata.

  • transactionstring

    The ID of the issuing transaction to create a dispute for. For transaction on Treasury FinancialAccounts, use treasury.received_debit.

More parameters

  • amountinteger

Returns

Returns an Issuing Dispute object in unsubmitted status if creation succeeds.

POST /v1/issuing/disputes
curl https://api.stripe.com/v1/issuing/disputes \
-u "sk_test_4eC39Hq...arjtT1zdp7dcsk_test_4eC39HqLyjWDarjtT1zdp7dc:" \
-d transaction=ipi_1MykXhFtDWhhyHE1UjsZZ3xQ \
-d "evidence[reason]"=fraudulent \
-d "evidence[fraudulent][explanation]"="This transaction is fraudulent."
Response
{
"id": "idp_1MykdxFtDWhhyHE1BFAV3osZ",
"object": "issuing.dispute",
"amount": 100,
"created": 1681947753,
"currency": "usd",
"evidence": {
"fraudulent": {
"additional_documentation": null,
"dispute_explanation": null,
"explanation": "This transaction is fraudulent.",
"uncategorized_file": null
},
"reason": "fraudulent"
},
"livemode": false,
"metadata": {},
"status": "unsubmitted",
"transaction": "ipi_1MykXhFtDWhhyHE1UjsZZ3xQ"
}

Update a dispute

Updates the specified Issuing Dispute object by setting the values of the parameters passed. Any parameters not provided will be left unchanged. Properties on the evidence object can be unset by passing in an empty string.

Parameters

  • evidenceobject

    Evidence provided for the dispute.

  • metadataobject

    Set of key-value pairs that you can attach to an object. This can be useful for storing additional information about the object in a structured format. Individual keys can be unset by posting an empty value to them. All keys can be unset by posting an empty value to metadata.

More parameters

  • amountinteger

Returns

Returns an updated Issuing Dispute object if a valid identifier was provided.

POST /v1/issuing/disputes/:id
curl https://api.stripe.com/v1/issuing/disputes/idp_1MykdxFtDWhhyHE1BFAV3osZ \
-u "sk_test_4eC39Hq...arjtT1zdp7dcsk_test_4eC39HqLyjWDarjtT1zdp7dc:" \
-d "evidence[reason]"=not_received \
-d "evidence[not_received][expected_at]"=1590000000 \
-d "evidence[not_received][explanation]"= \
-d "evidence[not_received][product_description]"="Baseball cap" \
-d "evidence[not_received][product_type]"=merchandise
Response
{
"id": "idp_1MykdxFtDWhhyHE1BFAV3osZ",
"object": "issuing.dispute",
"amount": 100,
"created": 1681947753,
"currency": "usd",
"evidence": {
"reason": "not_received",
"not_received": {
"expected_at": 1590000000,
"explanation": "",
"product_description": "Baseball cap",
"product_type": "merchandise"
}
},
"livemode": false,
"metadata": {},
"status": "unsubmitted",
"transaction": "ipi_1MykXhFtDWhhyHE1UjsZZ3xQ"
}

Retrieve a dispute

Retrieves an Issuing Dispute object.

Parameters

No parameters.

Returns

Returns an Issuing Dispute object if a valid identifier was provided.

GET /v1/issuing/disputes/:id
curl https://api.stripe.com/v1/issuing/disputes/idp_1MykdxFtDWhhyHE1BFAV3osZ \
-u "sk_test_4eC39Hq...arjtT1zdp7dcsk_test_4eC39HqLyjWDarjtT1zdp7dc:"
Response
{
"id": "idp_1MykdxFtDWhhyHE1BFAV3osZ",
"object": "issuing.dispute",
"amount": 100,
"created": 1681947753,
"currency": "usd",
"evidence": {
"fraudulent": {
"additional_documentation": null,
"dispute_explanation": null,
"explanation": "This transaction is fraudulent.",
"uncategorized_file": null
},
"reason": "fraudulent"
},
"livemode": false,
"metadata": {},
"status": "unsubmitted",
"transaction": "ipi_1MykXhFtDWhhyHE1UjsZZ3xQ"
}
Stripe Shell
Test mode
Welcome to the Stripe Shell! Stripe Shell is a browser-based shell with the Stripe CLI pre-installed. Log in to your Stripe account and press Control + Backtick (`) on your keyboard to start managing your Stripe resources in test mode. - View supported Stripe commands: - Find webhook events: - Listen for webhook events: - Call Stripe APIs: stripe [api resource] [operation] (e.g., )
The Stripe Shell is best experienced on desktop.
$