m2pfintech

Track Card Delivery Status

Retrieves the current delivery status and tracking details for a physical card. Provide the kit number to get real-time delivery information including courier details, expected delivery date, and current status.

How It Works

  1. After card issuance, the physical card enters the fulfillment pipeline
  2. Use this API with the kit number to check delivery progress
  3. The response includes delivery method (home delivery or branch pickup), current status, and courier/tracking information when available

Response Includes

  • Delivery Mode: Home Delivery (HD) or Branch Pickup (BP)
  • Current Status: Where the card is in the delivery pipeline
  • Courier Details: AWB number, courier name (for home delivery)
  • Branch Details: Branch name, address (for branch pickup)
  • Timestamps: When the card was dispatched, expected delivery date
  • Recipient Details: Name and contact of the person who received the card

Tip

Poll this API periodically (e.g., every 6 hours) to update the delivery status in your app, or use webhooks for real-time delivery notifications.

POST
/v1/card/live-tracking/search

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

Search criteria for card tracking (primarily kit number)

kitNo?string

Kit number of the card to track. This is the primary card identifier assigned during issuance and printed on the physical card.

applicationNumber?string

Application number from the issuance request. Useful when the kit number is not yet known (e.g., bulk issuance tracking).

awbNumber?string
branchCode?string
courierCode?string
customerMobileNumber?string
erodNumber?string
fromCreatedDate?string
Formatdate
fromDate?string
Formatdate
mode?string
productName?string
toCreatedDate?string
Formatdate
toDate?string
Formatdate

Response Body

application/json

application/json

application/json

curl -X POST "https://sandbox-api.m2pprepaid.com/prepaid/corporate/v1/card/live-tracking/search" \  -H "X-TENANT-ID: ACME_CORP" \  -H "Content-Type: application/json" \  -d '{    "kitNo": "910000031"  }'

Card shipped via courier and currently in transit

{
  "result": {
    "kitNo": "910000031",
    "deliveryMode": "HOME_DELIVERY",
    "status": "IN_TRANSIT",
    "courierName": "Blue Dart Express",
    "awbNumber": "AWB7892345678",
    "dispatchDate": "2025-01-20",
    "expectedDeliveryDate": "2025-01-25",
    "deliveryAddress": "123, MG Road, Bangalore, Karnataka - 560001",
    "cardHolderName": "Rajesh Kumar"
  },
  "pagination": null
}

No card record found for the given kit number

{
  "type": "https://www.m2pfintech.com/problem/problem-with-message",
  "title": "No data found for the kit provided",
  "status": 409,
  "detail": "No tracking information available for kit: 910000031",
  "message": "error.business",
  "businessCode": "PP_CORP_010"
}
{
  "type": "https://www.m2pfintech.com/problem/problem-with-message",
  "title": "Internal Server Error",
  "status": 500,
  "detail": "Unable to fetch tracking information. Please try again later.",
  "message": "error.http.500"
}

Set Card PIN (First Time) POST

Sets the PIN for a card for the first time, or resets it. This is the secure version that requires **RSA-encrypted PIN** in the request body. ### PIN Encryption The `newPin` field must be RSA-encrypted using the public key provided during onboarding. Example encrypted value: `u3uPnpCuaht7B3WsfY6SjXVqG0/laW7Kq5zlSR0zpZ0BY3Ge+JJNJpvfe4NVqSqN` ### OTP Verification This endpoint requires OTP verification. You must: 1. Call Generate OTP API first 2. Get the `traceNumber` from the OTP response 3. Include both the OTP and traceNumber in this request ### When to Use - First-time PIN setup after card issuance - PIN reset (forgotten PIN) — customer verifies via OTP

Update Card Transaction Preferences POST

Configures transaction preferences for a prepaid card. Allows enabling/disabling specific transaction channels and setting daily limits for both **domestic** and **international** usage. ### Preference Types Each of the following can be independently configured: - `ATM` — Cash withdrawal from ATMs - `E-com` — Online/e-commerce purchases - `POS` — Point-of-sale merchant purchases - `ContactLess` — NFC tap-and-pay transactions - `Cash-PoS` — Cash withdrawal at POS terminals - `Tokenization` — Digital wallet tokens (Apple Pay, Google Pay, Samsung Pay) - `Recurring Transactions` — Standing instructions, subscriptions, auto-debits ### Limit Configuration For each preference type, you can set: - `enabled` — Toggle on/off - `maxTransaction` — Maximum number of transactions per day - `maxTransactionAmountPerDay` — Maximum total amount per day - `perTransactionLimit` — Maximum amount per single transaction - `upperLimitMaxTransaction` / `upperLimitMaxTransactionAmountPerDay` — Product-level upper bounds (read-only reference) ### Important Notes - Card must be in **ACTIVE** status to update preferences - Only send the preferences you want to change — others remain unchanged - `upperLimit*` fields are read-only max bounds set at product level - Setting a value higher than the upper limit will be rejected