---
title: "Dispute"
method: POST
path: "/v2/claims"
tags: ["Disputes"]
---

# Dispute

`POST /v2/claims`

Inform of a dispute initiated by a customer. This endpoint should be used to report any disputes not already reported via webhook from the payment processor. While no decision is provided on this request, it is a required input that both improves the decision model and enables chargeback recovery.

## Headers

- `api-version` string, required
- `x-forter-siteid` string, required
- `Authorization` string, required

## Request body

- ClaimRequest — Inform of a dispute initiated by a customer. This endpoint should be used to report any disputes not already reported via webhook from the payment processor. While no decision is provided on this request, it is a required input that both improves the decision model and enables chargeback recovery.
  - `additionalCost` Amount, required — A monetary amount in USD or local currenncy.
    - `amountLocalCurrency` string, nullable — Transaction amount in currency chosen by the buyer
    - `amountUSD` string, nullable — Transaction amount in USD
    - `currency` string, nullable — Transaction currency chosen by the buyer, 3-letter ISO-4217 format currency code
  - `amount` Amount, required — A monetary amount in USD or local currenncy.
    - `amountLocalCurrency` string, nullable — Transaction amount in currency chosen by the buyer
    - `amountUSD` string, nullable — Transaction amount in USD
    - `currency` string, nullable — Transaction currency chosen by the buyer, 3-letter ISO-4217 format currency code
  - `chargeId` string, nullable — The unique identifier of the payment, such as Acquirer Reference Number (ARN).
  - `chargebackShippingInfo` object, nullable — Chargeback Shipping Info
    - `additionalShippingInfo` string, nullable — Aditional identification document details and verification
    - `carrier` string, nullable — Shipping carrier name
    - `proofOfShippingURL` string, nullable — URL to the proof of shipping in the merchant's system
    - `signedProofOfShipping` boolean, nullable — Whether the user has signed a proof of shipping
    - `trackingNumber` string, nullable — Order tracking number
  - `comments` string, nullable — Additional comments by the merchant
  - `dueDate` string, date, required — Due date for disputing the claim which was stated by the processor in case of a chargeback. Otherwise, the issue date. Use YYYY-MM-DD format. The expected date timezone is UTC.
  - `externalClaimStatus` string, nullable — Detailed claim status in the claim source system
  - `goodsRecovered` boolean, nullable — Relevant only for the prechargeback claim type, in case the goods were not sent or delivered yet. Indication of whether or not the goods were recovered
  - `invoiceURL` string, nullable — url to a copy of the invoice sent to the customer
  - `issueDate` string, date, required — Date the chargeback was issued / the prechargeback notification was sent. Use YYYY-MM-DD format. The expected date timezone is UTC.
  - `orderId` string, nullable — Unique order/transaction identifier. Should match the order id sent to Forter at checkout. Note that Forter treats this ID as case-insensitive; Order123 and ORDER123 will be identified as the same order.
  - `originalPayload` object, nullable — General payload object
  - `processorChargebackCaseId` string, nullable — The case number from the payment processor. (for BrainTree, please map the disputeId instead of caseNumber)
  - `processorName` 'Adyen' | 'Airwallex' | 'AmazonPay' | 'AMEX' | 'AuthorizeNet' | 'Be2bill' | 'BlueSnap' | 'Braintree' | 'BusinessTrack' | 'Chase' | 'Checkout' | 'Citcon' | 'Citibank' | 'ConcoraCredit' | 'Credorax' | 'Cybersource' | 'Dalenys' | 'Discover' | 'Dlocal' | 'Ebanx' | 'Elavon' | 'Fidelity' | 'FirstData' | 'Fiserv' | 'Fortis' | 'Globalpay' | 'Ingenico' | 'IQ' | 'Klarna' | 'MCP' | 'MerchantConnect' | 'Merlink' | 'MidTrans' | 'NCR' | 'Nuvei' | 'OceanPay' | 'OmniPayGroup' | 'Paymentech' | 'Paymenttech' | 'PayPal' | 'PayPlus' | 'PaySafe' | 'PayU' | 'PayUEastEurope' | 'PayULatam' | 'Privvy' | 'Przelewy' | 'Revolut' | 'Safecharge' | 'Shift4' | 'Shopify' | 'Sofort' | 'Sprint' | 'Square' | 'Stripe' | 'Vantiv' | 'Wirecard' | 'Worldline' | 'Worldnet' | 'WorldpayAccertify' | 'WorldpayDisputes' | 'WorldpayMAI' | 'WorldpayWDP' | 'Xendit' | 'Zen', nullable — Payment processor name.
  - `reason` string, nullable — The claim reason as supplied by the claim source. For example, the chargeback reason provided in the chargeback notification.
  - `reasonCode` string, nullable — The claim code as supplied by the claim source. For example, the chargeback reason provided in the chargeback notification.
  - `reasonType` 'FRAUD' | 'SERVICE' | 'OTHER' | 'AUTHORIZATION' | 'PROCESSING_ERROR', required — The claim reason category type.
  - `sourceDetails` string, nullable — Specifics about the source of the claim such as the processor name / 3rd party name, etc.
  - `sourceType` 'PROCESSOR_CB' | 'AMEX' | 'DISCOVER' | 'PAYPAL' | 'PROCESSOR_INQUIRY' | 'CUSTOMER_SUPPORT' | 'SHIPPING_CARRIER' | 'THIRD_PARTY' | 'FORTER' | 'OTHER', required — The category of the source of the claim.
  - `status` 'OPEN' | 'IN_DISPUTE' | 'WON' | 'LOST' | 'CANCELED', required — Claim status mapping from the current status of the claim. For example, a mapping of the processor chargeback dispute status.
  - `type` 'CHARGEBACK' | 'PRE_CHARGEBACK' | 'DEBIT_MEMO' | 'REQUEST_FOR_INFORMATION' | 'FRAUD_ALERT', required — Type of claim.
  - `wasRefunded` boolean, nullable — Relevant only for the prechargeback claim type. Indication of whether or not the buyer was refunded

## Response `200`

Example claimResponse

- ClaimResponse — The response object following claims request to the system
  - `message` string, required — The message containing status response text
  - `status` string, required — Status of the request processing

## Other responses

- `400` — Bad Request (Often missing a required parameter)
- `401` — Unauthorized (No valid API key provided)
- `404` — Not Found (The requested item doesn't exist)
- `429` — Too Many Requests (The client exceeded a rate limit). Honor Retry-After before retrying.
- `500` — Server Error (Something went wrong on Forter's end)
- `default` — Typed error envelope for any undeclared 4xx / 5xx status.

---

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