m2pfintech
API LibraryCustomer

De-Duplicate Check (PAN & Mobile)

Checks if a customer with the given PAN and/or mobile number already exists. This is a pre-issuance validation step to prevent duplicate forex card issuance.

Response Interpretation

MobilePANMeaning
nullnull✅ No duplicate — safe to proceed
Masked mobilenull⚠️ Mobile match found, no PAN match
nullMasked PAN⚠️ PAN match found, no mobile match
Masked mobileMasked PAN⚠️ Both match — same customer exists

Masked Values

Returned PAN/mobile values are partially masked for privacy:

  • Mobile: 709****999
  • PAN: BMX****23B
POST
/v1/customers/de-dupe/mobile-pan-details

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

mobile?
pan*string

Required. PAN number (format: ABCDE1234F)

Length1 <= length
dob?string

Date of birth

Response Body

application/json

application/json

curl -X POST "https://sandbox-api.m2pprepaid.com/prepaid/customer/v1/customers/de-dupe/mobile-pan-details" \  -H "X-TENANT-ID: ACME_CORP" \  -H "Content-Type: application/json" \  -d '{    "mobile": {      "value": "7099101999",      "countryCode": 91    },    "pan": "ARXPB1111Q"  }'

{
  "result": {
    "mobile": null,
    "pan": null,
    "dob": null
  },
  "pagination": null
}

{
  "type": "https://www.m2pfintech.com/problem/constraint-violation",
  "title": "Method argument not valid",
  "status": 400,
  "message": "error.validation",
  "fieldErrors": [
    {
      "field": "pan",
      "message": "PAN is not valid"
    }
  ]
}