m2pfintech

Fetch Dispute Reason Codes by Client and Network

Fetches dispute reason codes filtered by client ID and network.

POST
/v1/disputes/fetch-reason-codes/by-client

Authorization

bearerAuth tenantId
AuthorizationBearer <token>

JWT Bearer token from the Authentication API

In: header

X-TENANT-ID<token>

Your unique tenant identifier assigned during onboarding

In: header

Header Parameters

X-TENANT-ID*string

Your unique tenant identifier

Request Body

application/json

clientId?string

Client identifier

network?string

Payment network (e.g. VISA, MASTERCARD, RUPAY)

Response Body

application/json

application/json

curl -X POST "https://sandbox-api.m2pprepaid.com/prepaid/corporate/v1/disputes/fetch-reason-codes/by-client" \  -H "X-TENANT-ID: ACME_CORP" \  -H "Content-Type: application/json" \  -d '{}'
{
  "result": [
    {
      "id": 40,
      "reasonCode": "13.1",
      "reasonCodeDesc": "Merchandise / Services Not Received",
      "status": true
    }
  ]
}

{
  "type": "https://www.m2pfintech.com/problem/constraint-violation",
  "title": "Method argument not valid",
  "status": 400,
  "message": "error.validation"
}

Fetch Disputes by Mobile Number POST

Retrieves all disputes associated with a customer's mobile number. Supports filtering by dispute network configuration and kit number.

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