Fetch Dispute Reason Codes by Network
Retrieves dispute reason codes filtered by a specific card network. Use this endpoint when you know the card network (VISA, RuPay, Mastercard, etc.) and want to show only the applicable reason codes.
Network IDs
| ID | Network |
|---|---|
| 1 | VISA |
| 2 | RuPay |
| 3 | UPI |
| 4 | NETC (FASTag) |
| 5 | NFS (ATM) |
| 6 | Mastercard |
Authorization
bearerAuth tenantId JWT Bearer token from the Authentication API
In: header
Your unique tenant identifier assigned during onboarding
In: header
Path Parameters
Card network identifier. Use: 1=VISA, 2=RuPay, 3=UPI, 4=NETC, 5=NFS, 6=Mastercard
1 | 2 | 3 | 4 | 5 | 6Header Parameters
Your unique tenant identifier
Response Body
application/json
application/json
curl -X GET "https://sandbox-api.m2pprepaid.com/prepaid/corporate/v1/disputes/fetch-reason-codes/network/1" \ -H "X-TENANT-ID: ACME_CORP"{
"result": [
{
"id": 6,
"reasonCode": "10.1",
"reasonCodeDesc": "10.1 - EMV Liability Shift Counterfeit Fraud",
"status": true
},
{
"id": 7,
"reasonCode": "10.2",
"reasonCodeDesc": "10.2 - EMV Liability Shift Non-Counterfeit Fraud",
"status": true
},
{
"id": 8,
"reasonCode": "10.3",
"reasonCodeDesc": "10.3 - Other Fraud: Card Present Environment",
"status": true
},
{
"id": 17,
"reasonCode": "11.2",
"reasonCodeDesc": "11.2 - Declined Authorization",
"status": true
},
{
"id": 25,
"reasonCode": "12.6.1",
"reasonCodeDesc": "12.6.1 - Duplicate Processing",
"status": true
},
{
"id": 40,
"reasonCode": "13.1",
"reasonCodeDesc": "13.1 - Merchandise / Services Not Received",
"status": true
},
{
"id": 45,
"reasonCode": "13.6",
"reasonCodeDesc": "13.6 - Credit Not Processed",
"status": true
}
],
"pagination": null
}{
"type": "https://www.m2pfintech.com/problem/problem-with-message",
"title": "Duplicate Dispute Transaction Registration Attempt!",
"status": 409,
"detail": "Duplicate Dispute Transaction Registration Attempt!",
"message": "error.http.400",
"businessCode": "50009",
"cause": {},
"errorCode": "string",
"errors": [
"string"
],
"languageCode": "string",
"localizedMessage": "string",
"suppressed": [
{}
]
}Fetch All Dispute Reason Codes GET
Retrieves the complete list of dispute reason codes across all card networks. Use this endpoint to populate a reason code dropdown in your dispute filing UI. ### Response Returns a flat list of all active reason codes. Each reason code includes: - `id`: Internal identifier - `reasonCode`: The network-specific reason code (e.g., "13.1" for VISA) - `reasonCodeDesc`: Human-readable description of the dispute reason - `status`: Whether the reason code is currently active ### Tip If you need reason codes for a specific network only, use the `/v1/disputes/fetch-reason-codes/network/{id}` endpoint instead.
Raise a Dispute POST
Raises a formal dispute for a specific transaction on behalf of a cardholder. The dispute is submitted to the card network for investigation and resolution. ### How It Works 1. **Identify the Transaction**: Get the transaction details from the Transaction History API 2. **Select Reason Code**: Use the Fetch Reason Codes API to get applicable codes for the card network 3. **Submit Dispute**: Call this API with the transaction details and reason code 4. **Track Status**: A complaint ID is returned for tracking; use webhooks for status updates ### Key Business Rules - Each transaction can only be disputed once (duplicate disputes are rejected) - The `reasonId` must be valid for the card's network type - The `customerIdentificationId` should be the cardholder's entity ID or unique customer ID - Transaction details (`transactionDtls`) must include the original transaction identifier (`tranId`) - The dispute amount can be equal to or less than the original transaction amount - Disputes must be raised within the network-specific time limit (typically 120 days from transaction) ### Required Fields in Transaction Details The `transactionDtls` object requires at minimum: - `tranId`: Original transaction ID (from transaction history) - `tranAmt`: Original transaction amount - `disputeAmt`: Amount being disputed (≤ transaction amount) - `custMobile`: Cardholder's mobile number - `entityId`: Cardholder's entity ID - `kitNo`: Card kit number
