---
title: "Create multiple disputes"
method: POST
path: "/disputes/bulk"
tags: ["Disputes"]
---

# Create multiple disputes

`POST /disputes/bulk`

Submit multiple disputes at once. Only dispute reasons that do NOT require cardholder signature are allowed. Maximum 100 disputes per request.

## Headers

- `Accept-Version` string, required — Specifies the API version to use for this request.

## Request body

- object
  - `disputes` object[], required — Array of dispute requests (max 100)
    - `transactionId` string, required — Reap's charge_id for the transaction
    - `cardId` string, required — Reap's card_id for the card
    - `disputeAmount` number, float, required — Amount to dispute
    - `disputeCurrency` '344' | '840', required — ISO 4217 numeric currency code
    - `cardholderName` string, required — Registered cardholder full name
    - `cardholderEmail` string, email, required — Registered cardholder email
    - `contactEmail` string, email, required — Email address to be informed of the dispute outcome
    - `disputeReason` 'FRAUD_EMV_LIABILITY_SHIFT_COUNTERFEIT' | 'FRAUD_EMV_LIABILITY_SHIFT_NON_COUNTERFEIT' | 'FRAUD_OTHER_CARD_PRESENT' | 'FRAUD_OTHER_CARD_ABSENT' | 'FRAUD_VISA_MONITORING_PROGRAM' | 'AUTHORIZATION_CARD_RECOVERY_BULLETIN' | 'AUTHORIZATION_DECLINED' | 'AUTHORIZATION_NO_AUTH_LATE_PRESENTMENT' | 'PROCESSING_ERROR_INCORRECT_TRANSACTION_CODE' | 'PROCESSING_ERROR_INCORRECT_CURRENCY' | 'PROCESSING_ERROR_INCORRECT_ACCOUNT_NUMBER' | 'PROCESSING_ERROR_INCORRECT_AMOUNT' | 'PROCESSING_ERROR_DUPLICATE_PROCESSING' | 'PROCESSING_ERROR_INVALID_DATA' | 'CONSUMER_MERCHANDISE_NOT_RECEIVED' | 'CONSUMER_CANCELLED_RECURRING' | 'CONSUMER_NOT_AS_DESCRIBED' | 'CONSUMER_COUNTERFEIT_MERCHANDISE' | 'CONSUMER_MISREPRESENTATION' | 'CONSUMER_CREDIT_NOT_PROCESSED' | 'CONSUMER_CANCELLED_MERCHANDISE' | 'CONSUMER_ORIGINAL_CREDIT_NOT_ACCEPTED' | 'CONSUMER_NON_RECEIPT_CASH_ATM', required — VisaDisputeType enum value

## Response `200`

Bulk disputes processed (may contain partial failures)

- object
  - `totalCount` integer, required — Total number of disputes in the request
  - `successCount` integer, required — Number of successfully created disputes
  - `failedCount` integer, required — Number of failed disputes
  - `disputes` object[], required — Array of dispute results
    - `id` string, uuid — Dispute ID if successful
    - `transactionId` string, required — The transaction ID from the request
    - `status` string — Dispute status if successful
    - `success` boolean, required — Whether the dispute was created successfully
    - `error` object — Error details if failed
      - `code` string, required — Error code
      - `message` string, required — Error message

## Other responses

- `400` — Validation error

---

[API](https://skmtc.net/reap-global/apis/reap-api.md) · [All operations](https://skmtc.net/reap-global/apis/reap-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/reap-global/reap-api/revisions/525072733e02/schema)
