Opens in a new tab
Credit Card Processing

Fleet and Fuel CEDP Error Codes

|
Published: October 3, 2026
SHARE
Visa CEDP Fleet and Fuel Error Codes Explained

Fleet and fuel transactions have more CEDP validation checks than anything else in Visa’s enhanced data program. As a result, roughly half of the entire CEDP error code list exists for this category.

Extra checks mean there are more ways for these transactions to fail validation, and none of it is visible at the pump. Sales still get processed cleanly, and it’s not until weeks later when your statement arrives that you realize the reduced interchange rates weren’t applied. 

And those aren’t the only validation checks in play here. 

Factors like line item math, descriptions, and tax fields still apply to every commercial transaction (fleet included). All of those codes are covered in our main CEDP error code guide. 

Everything below is tied to transactions submitted with Visa’s fleet record and related fleet or fuel data. Which checks apply depends primarily on the Purchase Type and whether the appropriate records were submitted. 

Purchase Type Decides Which Fields Visa Validates

Before diving into the error codes, it’s worth understanding that fleet cards are context for all of this (not fuel specifically).

While fuel is what’s typically on fleet card tickets, it doesn’t have to be. It’s just one category within fleet. For example, if you sell tires to a fleet customer but there’s no fuel associated with the sale, the transaction still has a fleet record and still needs to pass through everything below.

What changes is which validation checks get applied, and that comes down to the Purchase Type: a single digit on every fleet transaction.

Error code CS-0014 fires when Purchase Type isn’t 1, 2, 3, or 4. 

  • Type 1: Fuel purchase with a single fuel code
  • Type 2: Non-fuel only
  • Type 3: Fuel and non-fuel on the same transaction
  • Type 4: Fuel purchase carrying multiple fuel codes

Type 4 is the newest one. Visa added it when they split multi-fuel purchases out of what had previously been a catch-all Type 1. So if your system predates that change and still tags every fuel sale as Type 1, rule that out early. Because the wrong purchase type throws errors across several fuel fields that look unrelated.

Everything from here is organized by type, since the same field can be required on one type and forbidden on another. 

Fuel Fields Required on Types 1, 3, and 4

If you send a transaction with fuel on it, Visa requires the fuel detail to be on there, or you’ll get error codes like:

  • CS-0016: Service Type isn’t F, S, or H
  • CS-0017: Unit of Measure isn’t one of L, G, I, K, P, C, or W
  • CS-0027: Expanded Fuel Type doesn’t match a valid Visa Fuel Type Code
  • CS-0034: Fuel Quantity isn’t greater than zero
  • CS-0037: Fuel Unit Cost isn’t greater than zero
  • CS-0015: Odometer contains something other than numbers

The odometer is a common one that stands out from the rest of this group because it’s the one value that comes from a driver. Visa wants digits in it and nothing else.

Fuel Fields That Must Be Empty on Type 2

Type 2 is the reverse situation. No fuel is sold on these transactions, so Visa wants the fuel fields to either be blank or zeroed out. If you’re doing anything else, you’ll get one of these errors:

  • CS-0029: Expanded Fuel Type has a value in it
  • CS-0031: Service Type has a value in it
  • CS-0033: Unit of Measure has a value in it
  • CS-0036: Fuel Quantity isn’t zero
  • CS-0039: Fuel Unit Cost isn’t zero
  • CS-0042: Gross Fuel Price isn’t zero

If you’re getting a batch of these codes it means that fuel data reached Visa on a sale marked as non-fuel.

You should check the purchase type first before looking at the actual fields. Because if the type is wrong, then the data may not be the problem. 

Fuel and Non-Fuel Price Math

  • CS-0040: Gross Fuel Price doesn’t equal quantity times unit cost
  • CS-0018: On Type 1, the gross amounts don’t add up to the total charged
  • CS-0043: On Types 2 and 3, Gross Non-Fuel Price isn’t greater than zero
  • CS-0045: On Types 1 and 4, Gross Non-Fuel Price isn’t zero
  • CS-0046: Gross Non-Fuel Price doesn’t match the line item detail behind it

CS-0040 has to be exact. 

Gross Fuel Price submitted to Visa must equal the quantity times the unit cost submitted, down the cent. This can be an issue when fuel prices carry three decimals but money fields carry just two. So anywhere a value gets rounded on its way into the record is worth a closer look. Because if they don’t round the same way, a $0.01 difference could be the reason you’re not getting cheaper interchange rates.

Missing Records and Identifiers

Four codes fire before Visa even gets into your fuel data. These codes mean that something should have arrived with the transaction but it was never received:

  • CS-0025: TCR3 fleet record (which is what carries your fleet data) is missing
  • CS-0048: Message identifier is blank on a Type 2, 3, or 4 transaction
  • TC50-0020: PURCHA record holding invoice-level detail is missing on a Type 2, 3, or 4 transaction
  • TC50-0021: PURCHL record holding line items is missing on a Type 2, 3, or 4 transaction

Worth noting that CS-0048 isn’t yours to fix. Your acquirer is the one responsible for assigning the message identifier. That’s on them if you see this code and needs to be addressed.

Non-Fuel Product Codes Positions 1-8

Visa allows up to eight non-fuel product codes on a transaction and runs the same four checks on every position. There are 31 codes here to describe four problems.

Visa Doesn’t Recognize the Code — It has to match Visa’s Non-Fuel Product Code list:

  • CS-0050
  • CS-0055
  • CS-0060
  • CS-0065
  • CS-0070
  • CS-0075
  • CS-0080
  • CS-0085

A Code is There But Shouldn’t Be — Types 1 and 4 have no non-fuel items, so those fields have to be blank:

  • CS-0051 
  • CS-0056
  • CS-0061
  • CS-0066
  • CS-0071
  • CS-0076
  • CS-0081
  • CS-0086

Code Doesn’t Match Its Line Item — Product code in position 3 has to correspond to line item 3:

  • CS-0053
  • CS-0058
  • CS-0063
  • CS-0068
  • CS-0073
  • CS-0078
  • CS-0083
  • CS-0088

Position Skipped — You can’t fill position 3 while position 2 sits empty:

  • CS-0054
  • CS-0059
  • CS-0064
  • CS-0069
  • CS-0074
  • CS-0079
  • CS-0084

Additionally, there are two more codes that apply to fuel in the line item detail rather than those eight positions:

  • TC50-1009: Commodity Code isn’t a valid Visa Fuel Type Code
  • TC50-1010: The fuel code from the fleet record doesn’t appear as the first fuel line item

What Else Fleet Merchants Should Know

It’s worth calling out that Fleet kept a path that everyone else lost.

When Visa retired its Level 2 interchange program, fleet fuel-only transactions were kept on a legacy Level 2 category. The difference is that’s a rate program (not a pass-on validation like CEDP). So your fuel-only tickets still get checked against everything above. 

So your fuel-only tickets still get checked against everything above. But fuel-only volume can qualify on a route that’s closed to other commercial merchants.

Visa also introduced Commercial Fuel Level 2 and Commercial Fuel Level 3 programs for fleet and fuel merchants. And fleet MCCs stopped qualifying for the Corporate Purchasing Credit Non-Travel Service Level 3 programs that they all used to fall into.

There’s also the 0.05% CEDP participation fee that applies whenever you submit enhanced data on a CEDP transaction, regardless of whether that transaction passes or fails validation.

Meaning if you’re submitting data but failing checks, you’re paying 0.05% more but not getting any savings. 

None of these codes are going to show up on your merchant statements. Visa sends validation to your acquirer. So you need to ask them for it by specifically requesting for your Transaction Detail Report. 

Subscribe Today

Our email subscribers hear it first.

  • Industry news and updates
  • Upcoming rate increases
  • Tips to save money on credit card processing

Get a FREE audit and analysis today.

Find out how much you can save on credit card processing fees.
Why MCC?
  • We identify hidden fees and inflated rates.
  • Our team negotiates directly with your processor.
  • You won’t have to switch providers or change operations.
  • We’ll get you refunded for bogus charges and protect your account against rate increases.

Max. file size: 12 MB.