{
  "id": 10093394,
  "title": "Missing Level 3 data added 180bps to a B2B card transaction",
  "url": "https://urgent.news/2026/09/27/missing-level-3-data-added-180bps-to-a-b2b-card-transaction",
  "topic": "finance",
  "section": "Finance & Markets",
  "published": "2026-09-27T00:00:14.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/payneteasy/missing-level-3-data-added-180bps-to-a-b2b-card-transaction-1e54"
  },
  "original_language": "en",
  "account": "The discrepancy in the effective rate on a chunk of transactions led to a closer look at the data being used for processing. The transactions in question were for a specific type of card, within a particular MCC range, and with ticket sizes that matched the acquirer contract. However, there was a noticeable split in the fee line. The culprit was found to be the missing Level 3 data.\n\nCommercial and purchasing cards are eligible for lower interchange fees if the merchant provides additional fields: tax amount, PO number, customer code, and for Level 3, line-item detail including SKU, quantity, unit price, and commodity code. The company's integration was only sending Level 1 data, consisting of card number, amount, and date. This was due to the checkout form only collecting this information. As a result, every one of these transactions was auto-downgraded to the standard commercial rate.\n\nA month's worth of transactions was analyzed, revealing a significant difference in the effective rates. Transactions with full Level 3 data settled at approximately 1.8%, while those missing the data settled at around 3.6%. This gap, when multiplied by the company's six-figure monthly volume, was not just a rounding error but a significant line item that finance would need to address.\n\nThe issue was resolved by making tax amount and PO number required fields before authorization, as well as pulling line-item detail from the existing order object in the database. The rate on new transactions dropped within one billing cycle. However, a question remains about how to validate that the L2/L3 fields are actually populated before the authorization request is sent, rather than just present in the schema.",
  "summary": "Reconciling a corporate card processing report for a B2B marketplace and noticed the effective rate on a chunk of transactions was way above what the acquirer contract promised. Same card type, same MCC, same ticket size range, but a visible split in the fee line. Traced it to Level 2/3 data. Commercial and purchasing cards qualify for lower interchange only if the merchant submits the extra…",
  "key_points": [
    "Missing Level 3 data caused 180 basis points increase in effective rate",
    "Transactions with full Level 3 data settled at 1.8%, others at 3.6%",
    "Issue resolved by requiring tax amount, PO number, and line-item detail"
  ],
  "editors_take": "Merchant's failure to provide Level 3 data led to auto-downgrade of transactions to standard commercial rate, resulting in significantly higher interchange fees, a costly discrepancy rectified by integration adjustments.",
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}