Intro
This article gives a definition of the Charge Detail Record (CDR), a fundamental feature of the GreenFlux Billing Engine, and sketches out how CDRs are created and embedded in the billing and invoicing process.
What is a Charge Detail Record (CDR)?
GreenFlux generates a CDR each time it can successfully calculate a cost based on the received transaction data from an online Charge Station after a charging session.
The CDR is a record of the final transaction's information, including first and foremost billing data that customers need for invoicing.
A CDR is not an invoice. Customers can create a CDR data export or use an API connection to their own system (CPO or EMSP) for their invoicing.
You can think of a CDR as a recorded summary of the relevant important transaction data captured during a successful charging session.
CDR example (.json format from Platform API)
{
"data": {
"id": "750466ACFB534ECFB8CE24EE338EC4B9",
"start_date_time": "2023-05-31T08:52:26.0000000+00:00",
"stop_date_time": "2023-05-31T10:02:15.0000000+00:00",
"auth_id": "PT-EDP-CVA052345-1",
"auth_method": "WHITELIST",
"location": {
"id": "39c53572-6c24-437e-953a-6646836c3f9f",
"type": "OTHER",
"publish": true,
"name": "Teste Jorge Ansiao",
"address": "Avenida Dr Vitor Faveiro 2",
"city": "Ansiao",
"postal_code": "3240",
"country": "PRT",
"coordinates": {
"latitude": "39.913401",
"longitude": "-8.438951"
},
"evses": [
{
"uid": "PT-EDP-ETest-Charger-GFXOffi-1",
"evse_id": "PT*EDP*ETest*Charger*GFXOffi*1",
"status": "CHARGING",
"status_schedule": [],
"capabilities": ["REMOTE_START_STOP_CAPABLE", "RFID_READER"],
"connectors": [
{
"id": "1",
"standard": "IEC_62196_T2",
"format": "SOCKET",
"power_type": "AC_1_PHASE",
"voltage": 230,
"amperage": 16,
"max_electric_power": 7400,
"tariff_id": "Test-ToU-EDP-17Apr",
"last_updated": "2023-05-26T12:27:38.0000000+00:00"
}
],
"directions": [],
"parking_restrictions": [],
"last_updated": "2023-05-31T08:52:37.0000000+00:00"
}
],
"directions": [],
"operator": {
"name": "EDP Comercial"
},
"suboperator": {
"name": "EDP Comercial"
},
"auth_rules": [],
"owner": {
"name": "EDP Comercial"
},
"facilities": [
"RESTAURANT",
"CAFE",
"SUPERMARKET",
"NATURE",
"BUS_STOP",
"WIFI"
],
"time_zone": "Europe/Lisbon",
"opening_times": {
"regular_hours": [
{
"weekday": 7,
"period_begin": "2024-07-22T09:00:00.0000000+02:00",
"period_end": "2024-07-22T10:00:00.0000000+02:00"
},
{
"weekday": 6,
"period_begin": "2024-07-22T08:00:00.0000000+02:00",
"period_end": "2024-07-22T09:00:00.0000000+02:00"
},
{
"weekday": 5,
"period_begin": "2024-07-22",
"period_end": "2024-07-22T23:59:00.0000000+02:00"
},
{
"weekday": 4,
"period_begin": "2024-07-22",
"period_end": "2024-07-22T23:59:00.0000000+02:00"
},
{
"weekday": 3,
"period_begin": "2024-07-22",
"period_end": "2024-07-22T23:59:00.0000000+02:00"
},
{
"weekday": 2,
"period_begin": "2024-07-22T12:00:00.0000000+02:00",
"period_end": "2024-07-22T13:59:00.0000000+02:00"
},
{
"weekday": 1,
"period_begin": "2024-07-22T10:00:00.0000000+02:00",
"period_end": "2024-07-22T11:59:00.0000000+02:00"
}
],
"twentyfourseven": false
},
"last_updated": "2023-05-31T08:52:37.0000000+00:00"
},
"currency": "EUR",
"charging_periods": [
{
"start_date_time": "2023-05-31T09:30:01.0000000+00:00",
"dimensions": [
{
"type": "ENERGY",
"volume": 0.194
},
{
"type": "TIME",
"volume": 14.9833
},
{
"type": "ENERGY",
"volume": 0.194
},
{
"type": "TIME",
"volume": 14.9833
}
]
},
{
"start_date_time": "2023-05-31T09:45:00.0000000+00:00",
"dimensions": [
{
"type": "ENERGY",
"volume": 0.261
},
{
"type": "TIME",
"volume": 15.0167
},
{
"type": "ENERGY",
"volume": 0.261
},
{
"type": "TIME",
"volume": 15.0167
}
]
},
{
"start_date_time": "2023-05-31T10:00:01.0000000+00:00",
"dimensions": [
{
"type": "ENERGY",
"volume": 0.058
},
{
"type": "TIME",
"volume": 2.2333
},
{
"type": "ENERGY",
"volume": 0.058
},
{
"type": "TIME",
"volume": 2.2333
}
]
},
{
"start_date_time": "2023-05-31T08:52:26.0000000+00:00",
"dimensions": [
{
"type": "PARKING_TIME",
"volume": 7.5833
},
{
"type": "PARKING_TIME",
"volume": 7.5833
}
]
},
{
"start_date_time": "2023-05-31T09:00:01.0000000+00:00",
"dimensions": [
{
"type": "PARKING_TIME",
"volume": 15
},
{
"type": "PARKING_TIME",
"volume": 15
}
]
},
{
"start_date_time": "2023-05-31T09:15:01.0000000+00:00",
"dimensions": [
{
"type": "PARKING_TIME",
"volume": 15
},
{
"type": "PARKING_TIME",
"volume": 15
}
]
}
],
"total_cost": 14.23,
"total_cost_incl_vat": 17.5,
"total_vat": 3.27,
"total_energy": 0.529,
"total_time": 1.1636,
"total_parking_time": 0.6264,
"last_updated": "2023-05-31T10:02:25.0000000+00:00",
"total_retail_cost": 14.23,
"total_retail_cost_incl_vat": 17.5,
"total_retail_vat": 3.27,
"retail_package_id": "CT_4KBRPNH0BFEV7LB7DMB9AB3KLE",
"customer_external_id": "PT-EDP-199965854",
"driver_external_id": "PT-EDP-199965854",
"emsp_party_id": "EDP",
"emsp_country_code": "PT",
"emsp_external_id": "ptedp",
"vat": 23,
"retail_vat": 23,
"charger_type": "Business"
},
"status_code": 1000,
"status_message": "Success",
"timestamp": "2021-07-15T14:44:31.0000000+00:00"
}View CDRs in EV Portal
You can keep track of your CDRs in EV Portal.
Go to either:
- CPO → Billing → Wholesale CDRs.
- eMSP → Billing → Retail CDRs.

In the Charge Detail Records for dropdown, select the CPO you want to see CDRs of.

See what columns are available and add/remove them from your CDR view by clicking the downward arrow at the top right of the screen to open the Columns menu (as illustrated above):
You can create a CDR .csv file by clicking the Export CDRs button. Read the article Exporting CDRs to learn more.
From Charge Session to a CDR
A CDR is, in essence, the output of GreenFlux's Billing Engine. For in-depth information, read Wholesale Billing Engine and wholesale tariff configuration and Retail Billing Engine and Retail tariff configuration articles.
CDRs play a crucial role in customers' ability to create invoices based on the transaction information included in the CDR.
How GreenFlux makes a CDR from a Charging Session

Additional details
- Meter values are in-session energy measurements (usually in Watt hour).
- The energy volume used in a session is based on the Start and Stop meter values GreenFlux receives.
- The duration of the session is based on the Start and Stop timestamps.
