---
title: "Upload Disputes"
method: POST
path: "/api/v3/disputes/upload"
tags: ["Sync Data"]
---

# Upload Disputes

`POST /api/v3/disputes/upload`

## Request

- Base URL: `https://api.chargeblast.com`
- URL: `https://api.chargeblast.com/api/v3/disputes/upload`
- Auth: none declared. Required headers: `X-API-Key`

Upload disputes with per-dispute validation. Each dispute must reference an existing order via chargeId or include an order object to create it, so every dispute is linked to a charge. Valid disputes are saved even when others in the batch fail. Returns succeeded and failed dispute ids with reasons. Maximum of 100 disputes per request.

## Headers

- `X-API-Key` string, required

## Request body

- DisputeUploadBody
  - `disputes` DisputeUploadBodyDispute[], required
    - `id` string, required: The internal id of the dispute in your CRM. Re-uploading the same id updates the existing dispute.
    - `disputeDate` string, required: The date the dispute was opened, either in yyyy-MM-dd'T'HH:mm:ssZ format or yyyy-MM-dd format.
    - `chargeId` string: The id of an order previously uploaded via /api/v3/orders/upload. Provide exactly one of chargeId or order.
    - `order` OrderUploadBodyOrder
      - `ip` string, nullable: The ip address of the customer.
      - `authCode` string, nullable: The authorization code of the charge. Used for matching purposes.
      - `amount` integer, required: The amount, in cents, of the order. For example, $19.99 would be 1999.
      - `bin` string, nullable: First 6 digits of the card.
      - `descriptor` string, nullable: The billing descriptor of the charge.
      - `id` string, required: The internal id of the order in your CRM.
      - `currency` string, required: The 3 character currency (case insensitive). E.g. 'usd'.
      - `transactionDate` string, required: The date of the charge either in yyyy-MM-dd'T'HH:mm:ssZ format or yyyy-MM-dd format.
      - `brand` string, nullable: The brand of the card (case insensitive). visa, mastercard, amex, discover. Other values will default to unknown
      - `gateway` string, nullable: If multiple gateways are used, the gateway of the transaction. Used for analytics only.
      - `arn` string, nullable: The acquirer reference number of the charge, if available.
      - `status` string, nullable: The status of the transaction. Should be either 'succeeded' or 'failed'
      - `last4` string, nullable: Last 4 digits of the card.
      - `refunded` boolean, nullable: Whether the transaction has already been refunded.
      - `receipt` Receipt
        - `merchantInfo` MerchantInfo
          - `merchantReceiptContact` MerchantContact
            - `phoneForReceipt` string, nullable: The phone number to appear on the digital receipt, for the merchant's contact.
            - `emailForReceipt` string, nullable: The email address to appear on the digital receipt, for the merchant's contact.
            - `websiteForReceipt` string, nullable: The website URL to appear on the digital receipt, for the merchant's contact.
            - `receiptAddress` Address
              - …
          - `name` string, nullable: The name of the merchant to appear on the digital receipt, e.g. 'Netflix'
          - `description` string, nullable: A brief description of the business, e.g. 'Media Streaming Business'
          - `refundPolicyLink` string, nullable: A url linking to a refund policy. Include https://, e.g. 'https://netflix.com/refund-policy'
          - `cancellationPolicyLink` string, nullable: A url linking to a cancel policy. Include https://, e.g. 'https://netflix.com/cancel-policy'
          - `termsAndConditionsLink` string, nullable: A url linking to a terms of service. Include https://, e.g. 'https://netflix.com/terms-of-service'
          - `logoUrl` string, nullable: A url linking to a logo of the business. For best results use square pngs (ideally 256x256, though other resolutions are supported).
        - `lineItems` LineItem[]: Line items for the receipt.
          - `productName` string: The name of the product.
          - `productDescription` string, nullable: A more detailed description of the product.
          - `currency` string, nullable: 3 character ISO currency code. If nil, defaults to USD.
          - `quantity` integer, nullable: The quantity of the line item (defaults to 1).
          - `price` integer: The total price (in cents) of the line item. For if you bought 5 socks at $2 each, this field would be 1000.
        - `customerEmail` string, nullable
        - `customerPhone` string, nullable: Phone number if applicable, e.g. +14016993099. String in any ISO format is acceptable.
        - `shippingAddress` Address
          - `line1` string, nullable
          - `line2` string, nullable
          - `city` string, nullable
          - `countrySubdivision` string, nullable: For US addresses, the state - two letter coded. E.g. CA
          - `postalCode` string, nullable
          - `country` string, nullable: The country spelled out, e.g. 'United States of America' or abbreviated 'USA'.
          - `latitude` string, nullable
          - `longitude` string, nullable
        - `billingAddress` Address
          - `line1` string, nullable
          - `line2` string, nullable
          - `city` string, nullable
          - `countrySubdivision` string, nullable: For US addresses, the state - two letter coded. E.g. CA
          - `postalCode` string, nullable
          - `country` string, nullable: The country spelled out, e.g. 'United States of America' or abbreviated 'USA'.
          - `latitude` string, nullable
          - `longitude` string, nullable
        - `name` Name
          - `givenName` string, nullable: First name, e.g. 'Elon'
          - `familyName` string, nullable: Last name, e.g. 'Musk'
      - `network_id` string, nullable: The network transaction identifier. Sometimes known as network_transaction_identifier. Example values: 'MAHAQMP03' (Mastercard), '306054697896273' (Visa).
    - `status` 'needs_response' | 'under_review' | 'charge_refunded' | 'won' | 'lost' | 'protected' | 'prevented': The dispute status. Defaults to 'needs_response'.
    - `reason` 'bank_cannot_process' | 'check_returned' | 'credit_not_processed' | 'customer_initiated' | 'debit_not_authorized' | 'duplicate' | 'fraudulent' | 'general' | 'incorrect_account_details' | 'insufficient_funds' | 'product_not_received' | 'product_unacceptable' | 'subscription_canceled' | 'unrecognized' | 'unknown': The dispute reason. Defaults to 'general'.
    - `isRDR` boolean: Whether the dispute was deflected via RDR. Defaults to false.
    - `submittedEvidence` boolean: Whether evidence has already been submitted for this dispute. Defaults to false.

## Response `200`

OK

- DisputeUploadV3Response
  - `message` string, required
  - `succeeded` string[], required
  - `failed` DisputeUploadFailure[], required
    - `id` string, required
    - `reason` string, required

---

[API](https://skmtc.dev/chargeblast/apis/chargeblast-api-2.md) · [All operations](https://skmtc.dev/chargeblast/apis/chargeblast-api-2/llms.txt) · [OpenAPI document](https://skmtc.dev/chargeblast/apis/chargeblast-api-2/revisions/882dd27a5692?raw)
