Issue #310 — Balance Not Found for FASTag & NCMC Operators

Display values analysis: MDM config vs operator response vs what we read

Note: FE looks for label "Current Balance" as per fastag_balance_key in PID config. Mapping is case-sensitive exact match. Empty values are not added to displayValues.

CID 207075 | FASTag

All PIDs below share the same 9 MDM display fields and the same key lists in display_values config.

MDM keys reference (FASTag — same for all PIDs below): Balance / Min / Max / Tag Status / Vehicle Class / Vehicle Model keys are read from additionalIinfoArray[parameter_name] (first non-empty match in order).

467017192 — AUBA00000NATOF — AU Small Finance Bank

Sample Operator Validate Response
Source: PPSL validate · 2026-06-25 10:45:11 · Vehicle: RJ13CB9099
{
  "status": "SUCCESS",
  "response": {
    "validationid": "fa43421bc43f4458bba8184d431d0f3c",
    "billerid": "AUBA00000NATOF",
    "biller_name": "AU Bank Fastag",
    "biller_category": "Fastag",
    "billlist": [{
      "billstatus": "UNPAID",
      "net_billamount": "100",
      "customer_name": "NORAT GEHLOT",
      "billamount": "100"
    }],
    "additional_info": [
      { "parameter_name": "Maximum Permissible Recharge Amount", "value": "10000" },
      { "parameter_name": "Tag Status", "value": "Active" },
      { "parameter_name": "Wallet Balance", "value": "480" }
    ],
    "authenticators": [
      { "parameter_name": "Vehicle Registration Number or Wallet ID", "value": "RJ13CB9099" }
    ],
    "valid_until": "25-06-2026 23:59:59"
  }
}
Display Label Config Reads (key/path) Operator Sends We Read Status
Nameresponse.logs.response.billlist[0].customer_namecustomer_name = NORAT GEHLOTNORAT GEHLOT
Current BalanceCurrent Balance, FASTag Balance, FASTAG Balance, Wallet Balance, Fast Tag Balance, Wallet balance, Available BalanceWallet Balance = 480480
Min RechargeMinimum Recharge Amount, MinimumRechargeAmount, Minimum Amount for Top - Up, Minimum Top-up Amount❌ not sent
Max RechargeMaximum Permissible Recharge Amount, Maximum Recharge Amount, Available Recharge LimitMaximum Permissible Recharge Amount = 1000010000
Tag StatusTag Status, statusTag Status = ActiveActive
Vehicle ClassVehicle Class, vehicleClassDesc, vehicleClass❌ not sent
Vehicle ModelModel of the vehicle, Vehicle Model❌ not sent
Account numberAccount No❌ not sent
Tag IDtagId❌ not sent
Expected displayValues: Name, Current Balance, Max Recharge, Tag Status (4 fields)

467017237 — SOUT00000NAT99 — South Indian Bank

Sample Operator Validate Response
Source: PPSL validate · 2026-06-25 10:32:07 · Vehicle: TN07BX0027
{
  "status": "SUCCESS",
  "response": {
    "validationid": "a5144fed8e1644a6a3bc0521edf298ba",
    "billerid": "SOUT00000NAT99",
    "biller_name": "South Indian Bank Fastag",
    "biller_category": "Fastag",
    "billlist": [{
      "billstatus": "UNPAID",
      "billperiod": "MONTHLY",
      "net_billamount": "10000",
      "billamount": "10000"
    }],
    "additional_info": [
      { "parameter_name": "OrderId", "value": "3400006" },
      { "parameter_name": "Account No", "value": "CA2111000059865" },
      { "parameter_name": "Current Balance", "value": "1956.0" },
      { "parameter_name": "Maximum Recharge Amount", "value": "98044.0" },
      { "parameter_name": "Vehicle Class", "value": "VC4" }
    ],
    "authenticators": [
      { "parameter_name": "Vehicle Registration Number ID", "value": "TN07BX0027" }
    ],
    "valid_until": "25-06-2026 23:59:59"
  }
}
Display Label Config Reads (key/path) Operator Sends We Read Status
Nameresponse.logs.response.billlist[0].customer_name— (missing in billlist)❌ not sent
Current BalanceCurrent Balance, FASTag Balance, FASTAG Balance, Wallet Balance, Fast Tag Balance, Wallet balance, Available BalanceCurrent Balance = 1956.01956.0
Min RechargeMinimum Recharge Amount, MinimumRechargeAmount, Minimum Amount for Top - Up, Minimum Top-up Amount❌ not sent
Max RechargeMaximum Permissible Recharge Amount, Maximum Recharge Amount, Available Recharge LimitMaximum Recharge Amount = 98044.098044.0
Tag StatusTag Status, status❌ not sent
Vehicle ClassVehicle Class, vehicleClassDesc, vehicleClassVehicle Class = VC4VC4
Vehicle ModelModel of the vehicle, Vehicle Model❌ not sent
Account numberAccount NoAccount No = CA2111000059865CA2111000059865
Tag IDtagId❌ not sent
Expected displayValues: Current Balance, Max Recharge, Vehicle Class, Account number (4 fields)

Unmapped operator data (no config): OrderId = 3400006

653438531 — BLAC00015NATKL — Blackbuck

Sample Operator Validate Response
Source: PPSL validate · 2026-06-25 10:44:47 · Vehicle: PB03BP8864
{
  "status": "SUCCESS",
  "response": {
    "validationid": "be15b1af5b494281b41a2e6084b44e3b",
    "billerid": "BLAC00015NATKL",
    "biller_name": "BlackBuck FASTag (TZF Logistics)",
    "biller_category": "Fastag",
    "billlist": [{
      "billstatus": "UNPAID",
      "billperiod": "MONTHLY",
      "net_billamount": "10000",
      "customer_name": "AMAN KUMAR",
      "billamount": "10000",
      "billduedate": "2026-06-26",
      "billdate": "2026-06-25"
    }],
    "additional_info": [
      { "parameter_name": "Current Wallet Balance", "value": "INR 3482.44" },
      { "parameter_name": "Maximum Recharge Amount", "value": "INR 148700.0" },
      { "parameter_name": "Minimum Recharge Amount", "value": "INR 200.0" },
      { "parameter_name": "Tag Class", "value": "VC12" },
      { "parameter_name": "Tag Status", "value": "ACTIVE" }
    ],
    "authenticators": [
      { "parameter_name": "Vehicle Number / Mobile Number", "value": "PB03BP8864" }
    ],
    "valid_until": "25-06-2026 23:59:59"
  }
}
Display Label Config Reads (key/path) Operator Sends We Read Status
Nameresponse.logs.response.billlist[0].customer_namecustomer_name = AMAN KUMARAMAN KUMAR
Current BalanceCurrent Balance, FASTag Balance, FASTAG Balance, Wallet Balance, Fast Tag Balance, Wallet balance, Available BalanceCurrent Wallet Balance = INR 3482.44❌ key not in config list
Min RechargeMinimum Recharge Amount, MinimumRechargeAmount, Minimum Amount for Top - Up, Minimum Top-up AmountMinimum Recharge Amount = INR 200.0INR 200.0
Max RechargeMaximum Permissible Recharge Amount, Maximum Recharge Amount, Available Recharge LimitMaximum Recharge Amount = INR 148700.0INR 148700.0
Tag StatusTag Status, statusTag Status = ACTIVEACTIVE
Vehicle ClassVehicle Class, vehicleClassDesc, vehicleClassTag Class = VC12❌ key not in config list
Vehicle ModelModel of the vehicle, Vehicle Model❌ not sent
Account numberAccount No❌ not sent
Tag IDtagId❌ not sent
Expected displayValues: Name, Min Recharge, Max Recharge, Tag Status (4 fields) — Current Balance & Vehicle Class missing
Fix: Add Current Wallet Balance to balance list and Tag Class to Vehicle Class list.

467017242 — UCOB00000NATEH — UCO Bank

Sample Operator Validate Response
Source: PPSL validate · 2026-06-25 08:19:08 · Vehicle: UP42AA1608
{
  "status": "SUCCESS",
  "response": {
    "validationid": "e5723373e22b4984be8f97b2f991b491",
    "billerid": "UCOB00000NATEH",
    "biller_name": "UCO Bank FASTag",
    "biller_category": "Fastag",
    "billlist": [{
      "billstatus": "UNPAID",
      "net_billamount": "10000",
      "customer_name": "Manoj kumar Verma",
      "billamount": "10000"
    }],
    "additional_info": [
      { "parameter_name": "Minimum Recharge Amount", "value": "100.0" },
      { "parameter_name": "FASTAG Balance", "value": "690.0" },
      { "parameter_name": "Maximum Permissible Recharge Amount", "value": "9310.0" }
    ],
    "authenticators": [
      { "parameter_name": "Vehicle Registration Number/Wallet Number", "value": "UP42AA1608" }
    ],
    "valid_until": "25-06-2026 23:59:59"
  }
}
Display Label Config Reads (key/path) Operator Sends We Read Status
Nameresponse.logs.response.billlist[0].customer_namecustomer_name = Manoj kumar VermaManoj kumar Verma
Current BalanceCurrent Balance, FASTag Balance, FASTAG Balance, Wallet Balance, Fast Tag Balance, Wallet balance, Available BalanceFASTAG Balance = 690.0690.0
Min RechargeMinimum Recharge Amount, MinimumRechargeAmount, Minimum Amount for Top - Up, Minimum Top-up AmountMinimum Recharge Amount = 100.0100.0
Max RechargeMaximum Permissible Recharge Amount, Maximum Recharge Amount, Available Recharge LimitMaximum Permissible Recharge Amount = 9310.09310.0
Tag StatusTag Status, status❌ not sent
Vehicle ClassVehicle Class, vehicleClassDesc, vehicleClass❌ not sent
Vehicle ModelModel of the vehicle, Vehicle Model❌ not sent
Account numberAccount No❌ not sent
Tag IDtagId❌ not sent
Expected displayValues: Name, Current Balance, Min Recharge, Max Recharge (4 fields)

467017230 — JAMM00000NATWB — Jammu & Kashmir Bank

Sample Operator Validate Response
Source: PPSL validate · 2026-06-25 09:50:22 · Vehicle: JK02CT3967
{
  "status": "SUCCESS",
  "response": {
    "validationid": "1a9185046f1e479fb8a477a980fcd360",
    "billerid": "JAMM00000NATWB",
    "biller_name": "Jammu and Kashmir Bank FASTag",
    "biller_category": "Fastag",
    "billlist": [{
      "billstatus": "UNPAID",
      "net_billamount": "10000",
      "customer_name": "VIJAY KUMAR SEHGAL",
      "billamount": "10000"
    }],
    "additional_info": [
      { "parameter_name": "Tag status", "value": "Active" },
      { "parameter_name": "Maximum permissible recharge amount", "value": "2000.0" },
      { "parameter_name": "Wallet balance", "value": "675.0" }
    ],
    "authenticators": [
      { "parameter_name": "Vehicle Registration Number/Wallet Number", "value": "JK02CT3967" }
    ],
    "valid_until": "25-06-2026 23:59:59"
  }
}
Display Label Config Reads (key/path) Operator Sends We Read Status
Nameresponse.logs.response.billlist[0].customer_namecustomer_name = VIJAY KUMAR SEHGALVIJAY KUMAR SEHGAL
Current BalanceCurrent Balance, FASTag Balance, FASTAG Balance, Wallet Balance, Fast Tag Balance, Wallet balance, Available BalanceWallet balance = 675.0675.0
Min RechargeMinimum Recharge Amount, MinimumRechargeAmount, Minimum Amount for Top - Up, Minimum Top-up Amount❌ not sent
Max RechargeMaximum Permissible Recharge Amount, Maximum Recharge Amount, Available Recharge LimitMaximum permissible recharge amount = 2000.0❌ case mismatch
Tag StatusTag Status, statusTag status = Active❌ case mismatch
Vehicle ClassVehicle Class, vehicleClassDesc, vehicleClass❌ not sent
Vehicle ModelModel of the vehicle, Vehicle Model❌ not sent
Account numberAccount No❌ not sent
Tag IDtagId❌ not sent
Expected displayValues: Name, Current Balance (2 fields) — Max Recharge & Tag Status lost due to case mismatch
Fix: Add Maximum permissible recharge amount and Tag status to respective config lists.

CID 291373 | NCMC Recharge

653419561 — PNBN00015NAT9A — PNB Credit Card NCMC

Sample Operator Validate Response
Source: BillDesk validate · 2026-06-24 11:02:23 · Card last 4: 9234 · Mobile: 9971349239
{
  "validationid": "HGE1VP2FDGTOMVPPWU1S",
  "billerid": "PNBN00015NAT9A",
  "biller_name": "PNB NCMC Credit Card",
  "biller_category": "NCMC Recharge",
  "validation_date": "24-06-2026 11:02:22",
  "authenticators": [
    { "parameter_name": "Last 4 digits of Card", "value": "9234" },
    { "parameter_name": "Mobile Number", "value": "9971349239" }
  ],
  "additional_info": [
    { "parameter_name": "Current Card Balance", "value": "1" },
    { "parameter_name": "Maximum Permissible Recharge Amount", "value": "2000" },
    { "parameter_name": "Minimum Permissible Recharge Amount", "value": "100" },
    { "parameter_name": "Biller Platform Fee [Rs.] + GST", "value": "1.18" }
  ],
  "valid_until": "25-06-2026 23:59:59"
}
MDM keys reference (NCMC): All keys read from additionalIinfoArray[parameter_name].
Display Label Config Reads (key/path) Operator Sends We Read Status
Current BalanceCurrent Card balanceCurrent Card Balance = 1❌ case typo (balance vs Balance)
Minimum RechargeMinimum Permissible Recharge AmountMinimum Permissible Recharge Amount = 100100
Maximum RechargeMaximum Permissible Recharge AmountMaximum Permissible Recharge Amount = 20002000
Expected displayValues: Minimum Recharge, Maximum Recharge (2 fields) — Current Balance missing

Unmapped operator data (no config): Biller Platform Fee [Rs.] + GST = 1.18

Fix: Change config key from Current Card balanceCurrent Card Balance

Overall Summary

PID Biller ID Operator Config Fields Successfully Read Failed / Missing
467017192 AUBA00000NATOF AU Bank 9 4 — Name, Balance, Max, Tag Status 5 not sent by operator
467017237 SOUT00000NAT99 South Indian Bank 9 4 — Balance, Max, Vehicle Class, Account Name not sent; 4 fields not sent
653438531 BLAC00015NATKL Blackbuck 9 4 — Name, Min, Max, Tag Status Balance & Vehicle Class — key mismatch
467017242 UCOB00000NATEH UCO Bank 9 4 — Name, Balance, Min, Max 5 not sent by operator
467017230 JAMM00000NATWB J&K Bank 9 2 — Name, Balance Max & Tag Status — case mismatch; 5 not sent
653419561 PNBN00015NAT9A PNB NCMC 3 2 — Min, Max Recharge Balance — case typo in config
Key takeaway: Mapping is case-sensitive exact match. 3 PIDs need MDM config fix — Blackbuck (653438531), J&K Bank (467017230), PNB NCMC (653419561). Remaining PIDs are either fully mapped or operator does not send those fields.