This document contains the REQUIRED and RECOMMENDED standard functionality that must be implemented by any Energy Producer Platform a.k.a BPPs and Energy Consumer Platforms a.k.a BAPs.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in RFC2119 from IETF.
The following recommendations need to be considered when implementing discovery functionality for an Energy Provider BPP
- REQUIRED. The BPP MUST implement the
search
endpoint to receive anIntent
object sent by BAPs - REQUIRED. The BPP MUST return a catalog of energy sources on the
on_search
callback endpoint specified in thecontext.bpp_uri
field of thesearch
request body. - REQUIRED. The BPP MUST map its energy source to the
Item
schema. - REQUIRED. Any energy provider-related information like name, logo, short description must be mapped to the
Provider.descriptor
schema - REQUIRED. If the BPP wants to group its energy sources under a specific category, it must map each category to the
Category
schema - REQUIRED. Any energy transfer related information MUST be mapped to the
Fulfillment
schema. - REQUIRED. If the BPP does not want to respond to a search request, it MUST return a
ack.status
value equal toNACK
- RECOMMENDED. Upon receiving a
search
request, the BPP SHOULD return a catalog that best matches the intent. This can be done by indexing the catalog against the various probable paths in theIntent
schema relevant to typical financial service use cases
- REQUIRED. The BAP MUST call the
search
endpoint of the BG to discover multiple BPPs on a network - REQUIRED. The BAP MUST implement the
on_search
endpoint to consume theCatalog
objects containing Energy Sources sent by BPPs. - REQUIRED. The BAP MUST expect multiple catalogs sent by the respective Energy Providers on the network
- REQUIRED. The energy sources can be found in the
Catalog.providers[].items[]
array in theon_search
request - REQUIRED. If the
catalog.providers[].items[].xinput
object is present, then the BAP MUST redirect the user to, or natively render the form present on the link specified on theitems[].xinput.form.url
field. - REQUIRED. If the
catalog.providers[].items[].xinput.required
field is set to"true"
, then the BAP MUST NOT fire aselect
,init
orconfirm
call until the form is submitted and a successful response is received - RECOMMENDED. If the
catalog.providers[].items[].xinput.required
field is set to"false"
, then the BAP SHOULD allow the user to skip filling the form
The search is broadcast to all providers on the network, there will be many providers. The providers could be EV chargers, Discoms or Energy Aggregators. The search request can look something like this.
{
"context": {
"domain": "dent:0.1.0",
"action": "search",
"location": {
"country": {
"code": "IND"
}
},
"city": "std:080",
"version": "1.1.0",
"bap_id": "example-bap.com",
"bap_uri": "https://api.example-bap.com/pilot/bap/energy/v1",
"transaction_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"message_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"timestamp": "2023-07-16T04:41:16Z"
},
"message": {
"intent": {
"item": {
"descriptor": {
"code": "energy"
},
"quantity": {
"required": {
"value": "4.0",
"unit": "kWH"
}
}
},
"location": {
"gps": "12.423423,77.325647",
"radius": {
"value": "5",
"unit": "km"
}
}
}
}
}
The on_search comes from all the providers, The providers have to be mapped to the provider schema. The on_search
would look like this.
{
"context": {
"domain": "dent:0.1.0",
"action": "on_search",
"location": {
"country": {
"name": "India",
"code": "IND"
}
},
"city": "std:080",
"version": "1.1.0",
"bap_id": "example-bap.com",
"bap_uri": "https://api.example-bap.com/pilot/bap/energy/v1",
"bpp_id": "example-bpp.com",
"bpp_uri": "https://api.example-bpp.com/pilot/bpp/",
"transaction_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"message_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"timestamp": "2023-07-16T04:41:16Z"
},
"message": {
"catalog": {
"providers": [
{
"id": "chargezone.in",
"descriptor": {
"name": "Chargezone",
"short_desc": "Chargezone Technologies Pvt Ltd",
"images": [
{
"url": "https://chargezone.in/images/logo.png"
}
]
},
"categories": [
{
"id": "1",
"descriptor": {
"code": "green-tariff",
"name": "green tariff"
}
}
],
"locations": [
{
"id": "1",
"gps": "12.345345,77.389754"
},
{
"id": "2",
"gps": "12.247934,77.876987"
}
],
"items": [
{
"id": "pe-charging-01",
"descriptor": {
"code": "energy"
},
"price": {
"value": "8",
"currency": "INR / kWH"
},
"quantity": {
"available": {
"measure": {
"value": "100",
"unit": "kWH"
}
}
},
"category_ids": ["1"],
"location_ids": ["1", "2"],
"fulfillment_ids": ["1", "2"],
"add_ons": [
{
"id": "pe-charging-01-addon-1",
"descriptor": {
"name": "Free car wash"
},
"price": {
"value": "0",
"currency": "INR"
}
}
]
}
],
"fulfillments": [
{
"id": "1",
"type": "CHARGING",
"stops": [
{
"type": "start",
"time": {
"timestamp": "01-06-2023 10:00:00"
}
},
{
"type": "end",
"time": {
"timestamp": "01-06-2023 10:30:00"
}
}
],
"tags": [
{
"descriptor": {
"name": "Charging Point Specifications"
},
"list": [
{
"descriptor": {
"name": "Charger type",
"code": "charger-type"
},
"value": "AC"
},
{
"descriptor": {
"name": "Connector type",
"code": "connector-type"
},
"value": "CCS2"
},
{
"descriptor": {
"name": "Power Rating"
},
"value": "greater than 50kW"
},
{
"descriptor": {
"name": "Availability"
},
"value": "Available"
}
],
"display": true
}
]
},
{
"id": "2",
"type": "CHARGING",
"stops": [
{
"type": "start",
"time": {
"timestamp": "01-06-2023 10:00:00"
}
},
{
"type": "end",
"time": {
"timestamp": "01-06-2023 10:30:00"
}
}
],
"tags": [
{
"descriptor": {
"name": "Charging Point"
},
"list": [
{
"descriptor": {
"name": "Charger type"
},
"value": "AC"
},
{
"descriptor": {
"name": "Connector type"
},
"value": "CCS2"
},
{
"descriptor": {
"name": "Power Rating"
},
"value": "greater than 50kW"
},
{
"descriptor": {
"name": "Availability"
},
"value": "Available"
}
],
"display": true
}
]
}
]
},
{
"id": "log9.in",
"descriptor": {
"name": "Log9 Inc"
},
"categories": [
{
"id": "1",
"descriptor": {
"code": "green-tariff",
"name": "green tariff"
}
}
],
"items": [
{
"id": "pe-charging-01",
"descriptor": {
"code": "energy"
},
"price": {
"value": "10",
"currency": "INR / kWH"
},
"quantity": {
"available": "1000"
},
"category_ids": ["1"],
"fulfillment_ids": ["3", "4"],
"add_ons": [
{
"id": "pe-charging-01-addon-1",
"descriptor": {
"name": "Free tyre pressure check"
},
"price": {
"value": "0",
"currency": "INR"
}
}
]
}
],
"fulfillments": [
{
"id": "3",
"type": "BATTERY-SWAP",
"stops": [
{
"location": {
"gps": "12.745675, 77.987393"
}
}
]
},
{
"id": "4",
"type": "MOBILE-BATTERY-SWAP",
"stops": [
{
"location": {
"url": "https://log9.in/track/bswap/3234242"
}
}
]
}
]
}
]
}
}
}
This section provides recommendations for implementing the APIs related to creating an order for energy.
- REQUIRED. The BPP MUST implement the
select
endpoint on the url specified in URL specified in thecontext.bpp_uri
field sent duringon_search
. In case of permissioned networks, this URL MUST match theSubscriber.url
present on the respective entry in the Network Registry - REQUIRED. The BPP MUST check for a form submission at the URL specified on the
xinput.form.url
before acknowledging aselect
request. - REQUIRED. If the energy service provider has successfully received the information submitted by the energy service consumer, the BPP must return an acknowledgement with
ack.status
set toACK
in response to theselect
request - REQUIRED. If the energy service provider has returned a successful acknowledgement to a
select
request, it MUST send the offer encapsulated in anOrder
object
- REQUIRED. The BPP MUST implement the
init
endpoint on the url specified in URL specified in thecontext.bpp_uri
field sent duringon_search
. In case of permissioned networks, this URL MUST match theSubscriber.url
present on the respective entry in the Network Registry
- REQUIRED. The BPP MUST implement the
confirm
endpoint on the url specified in URL specified in thecontext.bpp_uri
field sent duringon_search
. In case of permissioned networks, this URL MUST match theSubscriber.url
present on the respective entry in the Network Registry
An example of select
request
{
"context": {
"domain": "dent:0.1.0",
"action": "select",
"location": {
"country": {
"name": "India",
"code": "IND"
}
},
"city": "std:080",
"version": "1.1.0",
"bap_id": "example-bap.com",
"bap_uri": "https://api.example-bap.com/pilot/bap/energy/v1",
"bpp_id": "chargezone-energy-bpp.com",
"bpp_uri": "https://api.example-bpp.com/pilot/bpp/",
"transaction_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"message_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"timestamp": "2023-07-16T04:41:16Z"
},
"message": {
"order": {
"provider": {
"id": "chargezone.in"
},
"items": [
{
"id": "pe-charging-01",
"quantity": {
"selected": {
"measure": {
"value": "4",
"unit": "kWh"
}
}
}
}
]
}
}
}
An example of on_select
request
{
"context": {
"domain": "dent:0.1.0",
"action": "on_select",
"location": {
"country": {
"name": "India",
"code": "IND"
}
},
"city": "std:080",
"version": "1.1.0",
"bap_id": "example-bap.com",
"bap_uri": "https://api.example-bap.com/pilot/bap/energy/v1",
"bpp_id": "example-bpp.com",
"bpp_uri": "https://api.example-bpp.com/pilot/bpp/",
"transaction_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"message_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"timestamp": "2023-07-16T04:41:16Z"
},
"message": {
"order": {
"providers": {
"id": "chargezone.in",
"descriptor": {
"name": "Chargezone",
"short_desc": "Chargezone Technologies Pvt Ltd",
"images": [
{
"url": "https://chargezone.in/images/logo.png"
}
]
}
},
"items": [
{
"id": "pe-charging-01",
"descriptor": {
"code": "energy"
},
"price": {
"value": "8",
"currency": "INR/kWH"
},
"quantity": {
"available": {
"measure": {
"value": "100",
"unit": "kWh"
}
},
"selected": {
"measure": {
"value": "4",
"unit": "kWh"
}
}
}
},
{
"id": "pe-charging-01-addon-1",
"descriptor": {
"code": "add-on-item",
"name": "Free car wash"
},
"price": {
"value": "0",
"currency": "INR"
}
}
],
"fulfillments": [
{
"id": "1",
"type": "CHARGING",
"stops": [
{
"type": "start",
"time": {
"timestamp": "01-06-2023 10:00:00"
}
},
{
"type": "end",
"time": {
"timestamp": "01-06-2023 10:30:00"
}
}
],
"tags": [
{
"descriptor": {
"name": "Charging Point Specifications"
},
"list": [
{
"descriptor": {
"name": "Charger type",
"code": "charger-type"
},
"value": "AC"
},
{
"descriptor": {
"name": "Connector type",
"code": "connector-type"
},
"value": "CCS2"
},
{
"descriptor": {
"name": "Power Rating"
},
"value": "greater than 50kW"
},
{
"descriptor": {
"name": "Availability"
},
"value": "Available"
}
],
"display": true
}
]
}
],
"quote": {
"price": {
"value": "32",
"currency": "INR"
},
"breakup": [
{
"item": {
"descriptor": {
"name": "Estimated units consumed"
},
"quantity": {
"selected": {
"measure": {
"value": "4",
"unit": "kWh"
}
}
}
},
"price": {
"value": "32",
"currency": "INR"
}
},
{
"item": {
"descriptor": {
"name": "Free car wash"
}
},
"price": {
"value": "0",
"currency": "INR"
}
}
]
}
}
}
}
An example of init
request
{
"context": {
"domain": "dent:0.1.0",
"action": "init",
"location": {
"country": {
"name": "India",
"code": "IND"
}
},
"city": "std:080",
"version": "1.1.0",
"bap_id": "example-bap.com",
"bap_uri": "https://api.example-bap.com/pilot/bap/energy/v1",
"bpp_id": "chargezone-energy-bpp.com",
"bpp_uri": "https://api.example-bpp.com/pilot/bpp/",
"transaction_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"message_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"timestamp": "2023-07-16T04:41:16Z"
},
"message": {
"order": {
"provider": {
"id": "chargezone.in"
},
"items": [
{
"id": "pe-charging-01"
}
],
"billing": {
"name": "John Doe",
"email": "[email protected]",
"phone": "+91-9876522222"
},
"fulfillments": [
{
"id": "1",
"customer": {
"person": {
"name": "John Doe"
},
"contact": {
"phone": "+91-9887766554"
}
}
}
]
}
}
}
An example of on_init
request
{
"context": {
"domain": "dent:0.1.0",
"action": "on_init",
"location": {
"country": {
"name": "India",
"code": "IND"
}
},
"city": "std:080",
"version": "1.1.0",
"bap_id": "example-bap.com",
"bap_uri": "https://api.example-bap.com/pilot/bap/energy/v1",
"bpp_id": "example-bpp.com",
"bpp_uri": "https://api.example-bpp.com/pilot/bpp/",
"transaction_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"message_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"timestamp": "2023-07-16T04:41:16Z"
},
"message": {
"order": {
"providers": {
"id": "chargezone.in",
"descriptor": {
"name": "Chargezone",
"short_desc": "Chargezone Technologies Pvt Ltd",
"images": [
{
"url": "https://chargezone.in/images/logo.png"
}
]
}
},
"items": [
{
"id": "pe-charging-01",
"descriptor": {
"code": "energy"
},
"price": {
"value": "8",
"currency": "INR/kWH"
},
"quantity": {
"available": {
"measure": {
"value": "100",
"unit": "kWh"
}
},
"selected": {
"measure": {
"value": "4",
"unit": "kWh"
}
}
},
"fulfillments": ["1"]
}
],
"fulfillments": [
{
"id": "1",
"customer": {
"person": {
"name": "John Doe"
},
"contact": {
"phone": "+91-9887766554"
}
},
"type": "CHARGING",
"state": {
"descriptor": {
"code": "order-initiated"
}
},
"stops": [
{
"type": "start",
"time": {
"timestamp": "01-06-2023 10:00:00"
}
},
{
"type": "end",
"time": {
"timestamp": "01-06-2023 10:30:00"
}
}
],
"tags": [
{
"descriptor": {
"name": "Charging Point"
},
"list": [
{
"descriptor": {
"name": "Charger type"
},
"value": "AC"
},
{
"descriptor": {
"name": "Connector type"
},
"value": "CCS2"
},
{
"descriptor": {
"name": "Power Rating"
},
"value": "greater than 50kW"
},
{
"descriptor": {
"name": "Availability"
},
"value": "Available"
}
],
"display": true
}
]
}
],
"billing": {
"email": "[email protected]",
"number": "+91-9876522222"
},
"quote": {
"price": {
"value": "32",
"currency": "INR"
},
"breakup": [
{
"item": {
"descriptor": {
"name": "Estimated units consumed"
},
"quantity": {
"selected": {
"measure": {
"value": "4",
"unit": "kWh"
}
}
}
},
"price": {
"value": "32",
"currency": "INR"
}
}
]
},
"payments": [
{
"url": "https://payment.gateway.in",
"type": "PRE-ORDER",
"status": "NOT-PAID",
"params": {
"amount": "40",
"currency": "INR"
},
"time": {
"range": {
"start": "2023-08-10T10:00:00Z",
"end": "2023-08-10T10:30:00Z"
}
}
}
],
"cancellation_terms": [
{
"fulfillment_state": {
"descriptor": {
"code": "charging-start"
}
},
"cancellation_fee": {
"percentage": "30%"
},
"external_ref": {
"mimetype": "text/html",
"url": "https://chargezone.in/charge/tnc.html"
}
}
]
}
}
}
An example of confirm
request
{
"context": {
"domain": "dent:0.1.0",
"action": "confirm",
"location": {
"country": {
"name": "India",
"code": "IND"
}
},
"city": "std:080",
"version": "1.1.0",
"bap_id": "example-bap.com",
"bap_uri": "https://api.example-bap.com/pilot/bap/energy/v1",
"bpp_id": "chargezone-energy-bpp.com",
"bpp_uri": "https://api.example-bpp.com/pilot/bpp/",
"transaction_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"message_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"timestamp": "2023-07-16T04:41:16Z"
},
"message": {
"order": {
"providers": {
"id": "chargezone.in"
},
"items": [
{
"id": "pe-charging-01"
}
],
"billing": {
"name": "John Doe",
"email": "[email protected]",
"number": "+91-9876522222"
},
"fulfillments": [
{
"id": "1",
"customer": {
"person": {
"name": "John Doe"
},
"contact": {
"phone": "+91-9887766554"
}
}
}
],
"payments": [
{
"collected_by": "BPP",
"params": {
"amount": "40",
"currency": "INR"
},
"status": "PAID",
"type": "PRE-ORDER"
}
],
"quote": {
"price": {
"value": "40",
"currency": "INR"
},
"breakup": [
{
"item": {
"descriptor": {
"name": "Estimated units consumed"
},
"quantity": {
"selected": {
"measure": {
"value": "4",
"unit": "kWh"
}
}
}
},
"price": {
"value": "32",
"currency": "INR"
}
}
]
}
}
}
}
An example of on_confirm
request
{
"context": {
"domain": "dent:0.1.0",
"action": "on_confirm",
"location": {
"country": {
"name": "India",
"code": "IND"
}
},
"city": "std:080",
"version": "1.1.0",
"bap_id": "example-bap.com",
"bap_uri": "https://api.example-bap.com/pilot/bap/energy/v1",
"bpp_id": "example-bpp.com",
"bpp_uri": "https://api.example-bpp.com/pilot/bpp/",
"transaction_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"message_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"timestamp": "2023-07-16T04:41:16Z"
},
"message": {
"order": {
"id": "6743e9e2-4fb5-487c-92b7",
"providers": {
"id": "chargezone.in",
"descriptor": {
"name": "Chargezone",
"short_desc": "Chargezone Technologies Pvt Ltd",
"images": [
{
"url": "https://chargezone.in/images/logo.png"
}
]
}
},
"items": [
{
"id": "pe-charging-01",
"descriptor": {
"code": "energy"
},
"price": {
"value": "8",
"currency": "INR/kWH"
},
"quantity": {
"available": {
"measure": {
"value": "100",
"unit": "kWh"
}
},
"selected": {
"measure": {
"value": "4",
"unit": "kWh"
}
}
},
"fulfillments": ["1"]
}
],
"fulfillments": [
{
"id": "1",
"customer": {
"person": {
"name": "John Doe"
},
"contact": {
"phone": "+91-9887766554"
}
},
"type": "CHARGING",
"state": {
"descriptor": {
"code": "payment-completed"
}
},
"stops": [
{
"type": "start",
"location": {
"gps": "12.423423,77.325647"
},
"time": {
"timestamp": "01-06-2023 10:00:00",
"range": {
"start": "01-06-2023 10:00:00",
"end": "01-06-2023 10:10:00"
}
},
"instructions": {
"name": "Charging instructions",
"short_desc": "To start your charging, go to charger number 987, and click on 'start' on your app"
}
},
{
"type": "end",
"time": {
"timestamp": "01-06-2023 10:30:00",
"range": {
"start": "01-06-2023 10:30:00",
"end": "01-06-2023 10:40:00"
}
}
}
],
"tags": [
{
"descriptor": {
"name": "Charging Point"
},
"list": [
{
"descriptor": {
"name": "Charger type"
},
"value": "AC"
},
{
"descriptor": {
"name": "Connector type"
},
"value": "CCS2"
},
{
"descriptor": {
"name": "Power Rating"
},
"value": "greater than 50kW"
},
{
"descriptor": {
"name": "Availability"
},
"value": "Available"
}
],
"display": true
}
]
}
],
"billing": {
"email": "[email protected]",
"number": "+91-9876522222"
},
"quote": {
"price": {
"value": "40",
"currency": "INR"
},
"breakup": [
{
"item": {
"descriptor": {
"name": "Estimated units consumed"
},
"quantity": {
"selected": {
"measure": {
"value": "4",
"unit": "kWh"
}
}
}
},
"price": {
"value": "32",
"currency": "INR"
}
}
]
},
"payments": [
{
"type": "PRE-ORDER",
"status": "PAID",
"params": {
"amount": "40",
"currency": "INR"
},
"time": {
"range": {
"start": "2023-08-10T10:00:00Z",
"end": "2023-08-10T10:30:00Z"
}
}
}
],
"cancellation_terms": [
{
"fulfillment_state": {
"descriptor": {
"code": "charging-start"
}
},
"cancellation_fee": {
"percentage": "30%"
},
"external_ref": {
"mimetype": "text/html",
"url": "https://chargezone.in/charge/tnc.html"
}
}
]
}
}
}
This section contains recommendations for implementing the APIs related to fulfilling a energy service order
- REQUIRED. The BPP MUST implement the
status
endpoint on the url specified in URL specified in thecontext.bpp_uri
field sent duringon_search
. In case of permissioned networks, this URL MUST match theSubscriber.url
present on the respective entry in the Network Registry
- REQUIRED. The BPP MUST implement the
update
endpoint on the url specified in URL specified in thecontext.bpp_uri
field sent duringon_search
. In case of permissioned networks, this URL MUST match theSubscriber.url
present on the respective entry in the Network Registry
- REQUIRED. The BPP MUST implement the
cancel
endpoint on the url specified in URL specified in thecontext.bpp_uri
field sent duringon_search
. In case of permissioned networks, this URL MUST match theSubscriber.url
present on the respective entry in the Network Registry - REQUIRED. The BPP MUST implement the
get_cancellation_reasons
endpoint on the url specified in URL specified in thecontext.bpp_uri
field sent duringon_search
. In case of permissioned networks, this URL MUST match theSubscriber.url
present on the respective entry in the Network Registry
An example of status
request
{
"context": {
"domain": "dent:0.1.0",
"action": "status",
"location": {
"country": {
"name": "India",
"code": "IND"
}
},
"city": "std:080",
"version": "1.1.0",
"bap_id": "example-bap.com",
"bap_uri": "https://api.example-bap.com/pilot/bap/energy/v1",
"bpp_id": "chargezone-energy-bpp.com",
"bpp_uri": "https://api.example-bpp.com/pilot/bpp/",
"transaction_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"message_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"timestamp": "2023-07-16T04:41:16Z"
},
"message": {
"order_id": "6743e9e2-4fb5-487c-92b7"
}
}
An example of on_status
request
{
"context": {
"domain": "dent:0.1.0",
"action": "on_status",
"location": {
"country": {
"name": "India",
"code": "IND"
}
},
"city": "std:080",
"version": "1.1.0",
"bap_id": "example-bap.com",
"bap_uri": "https://api.example-bap.com/pilot/bap/energy/v1",
"bpp_id": "example-bpp.com",
"bpp_uri": "https://api.example-bpp.com/pilot/bpp/",
"transaction_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"message_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"timestamp": "2023-07-16T04:41:16Z"
},
"message": {
"order": {
"id": "6743e9e2-4fb5-487c-92b7",
"providers": {
"id": "chargezone.in",
"descriptor": {
"name": "Chargezone",
"short_desc": "Chargezone Technologies Pvt Ltd",
"images": [
{
"url": "https://chargezone.in/images/logo.png"
}
]
}
},
"items": [
{
"id": "pe-charging-01",
"descriptor": {
"code": "energy"
},
"price": {
"value": "8",
"currency": "INR/kWH"
},
"quantity": {
"available": {
"measure": {
"value": "100",
"unit": "kWh"
}
},
"selected": {
"measure": {
"value": "4",
"unit": "kWh"
}
}
},
"fulfillments": ["1"]
}
],
"fulfillments": [
{
"id": "1",
"customer": {
"person": {
"name": "John Doe"
},
"contact": {
"phone": "+91-9887766554"
}
},
"type": "CHARGING",
"state": {
"descriptor": {
"name": "vehicle 65% charged"
}
},
"stops": [
{
"type": "start",
"location": {
"gps": "12.423423,77.325647"
},
"time": {
"timestamp": "01-06-2023 10:00:00",
"range": {
"start": "01-06-2023 10:00:00",
"end": "01-06-2023 10:10:00"
}
}
},
{
"type": "end",
"time": {
"timestamp": "01-06-2023 10:30:00",
"range": {
"start": "01-06-2023 10:30:00",
"end": "01-06-2023 10:40:00"
}
}
}
],
"tags": [
{
"descriptor": {
"name": "Charging Point"
},
"list": [
{
"descriptor": {
"name": "Charger type"
},
"value": "AC"
},
{
"descriptor": {
"name": "Connector type"
},
"value": "CCS2"
},
{
"descriptor": {
"name": "Power Rating"
},
"value": "greater than 50kW"
},
{
"descriptor": {
"name": "Availability"
},
"value": "Available"
}
],
"display": true
}
]
}
],
"billing": {
"email": "[email protected]",
"number": "+91-9876522222"
},
"quote": {
"price": {
"value": "32",
"currency": "INR"
},
"breakup": [
{
"item": {
"descriptor": {
"name": "Estimated units consumed"
},
"quantity": {
"selected": {
"measure": {
"value": "4",
"unit": "kWh"
}
}
}
},
"price": {
"value": "32",
"currency": "INR"
}
}
]
},
"payments": [
{
"type": "PRE-ORDER",
"status": "PAID",
"params": {
"amount": "40",
"currency": "INR"
},
"time": {
"range": {
"start": "2023-08-10T10:00:00Z",
"end": "2023-08-10T10:30:00Z"
}
}
}
],
"cancellation_terms": [
{
"fulfillment_state": {
"descriptor": {
"code": "charging-start"
}
},
"cancellation_fee": {
"percentage": "30%"
},
"external_ref": {
"mimetype": "text/html",
"url": "https://chargezone.in/charge/tnc.html"
}
}
]
}
}
}
An example of cancel
request
{
"context": {
"domain": "dent:0.1.0",
"action": "cancel",
"location": {
"country": {
"name": "India",
"code": "IND"
}
},
"city": "std:080",
"version": "1.1.0",
"bap_id": "example-bap.com",
"bap_uri": "https://api.example-bap.com/pilot/bap/energy/v1",
"bpp_id": "chargezone-energy-bpp.com",
"bpp_uri": "https://api.example-bpp.com/pilot/bpp/",
"transaction_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"message_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"timestamp": "2023-07-16T04:41:16Z"
},
"message": {
"order": {
"cancellation_reason_id": "5",
"descriptor": {
"short_desc": "can't attend booking"
},
"order_id": "6743e9e2-4fb5-487c-92b7"
}
}
}
An example of on_cancel
request
{
"context": {
"domain": "dent:0.1.0",
"action": "on_cancel",
"location": {
"country": {
"name": "India",
"code": "IND"
}
},
"city": "std:080",
"version": "1.1.0",
"bap_id": "example-bap.com",
"bap_uri": "https://api.example-bap.com/pilot/bap/energy/v1",
"bpp_id": "example-bpp.com",
"bpp_uri": "https://api.example-bpp.com/pilot/bpp/",
"transaction_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"message_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"timestamp": "2023-07-16T04:41:16Z"
},
"message": {
"order": {
"id": "6743e9e2-4fb5-487c-92b7",
"status": "CANCELLED",
"providers": {
"id": "chargezone.in",
"descriptor": {
"name": "Chargezone",
"short_desc": "Chargezone Technologies Pvt Ltd",
"images": [
{
"url": "https://chargezone.in/images/logo.png"
}
]
}
},
"items": [
{
"id": "pe-charging-01",
"descriptor": {
"code": "energy"
},
"price": {
"value": "8",
"currency": "INR/kWH"
},
"quantity": {
"available": {
"measure": {
"value": "100",
"unit": "kWh"
}
},
"selected": {
"measure": {
"value": "4",
"unit": "kWh"
}
}
},
"fulfillments": ["1"]
}
],
"fulfillments": [
{
"id": "1",
"customer": {
"person": {
"name": "John Doe"
},
"contact": {
"phone": "+91-9887766554"
}
},
"type": "CHARGING",
"state": {
"descriptor": {
"code": "order-cancelled"
}
},
"stops": [
{
"time": {
"range": {
"start": "10:00",
"end": "10:30"
}
}
}
],
"tags": [
{
"descriptor": {
"name": "Charging Point"
},
"list": [
{
"descriptor": {
"name": "Charger type"
},
"value": "AC"
},
{
"descriptor": {
"name": "Connector type"
},
"value": "CCS2"
},
{
"descriptor": {
"name": "Power Rating"
},
"value": "greater than 50kW"
},
{
"descriptor": {
"name": "Availability"
},
"value": "Available"
}
],
"display": true
}
]
}
],
"billing": {
"email": "[email protected]",
"number": "+91-9876522222"
},
"quote": {
"price": {
"value": "-32",
"currency": "INR"
},
"breakup": [
{
"item": {
"descriptor": {
"name": "payment refund"
},
"quantity": {
"selected": {
"measure": {
"value": "4",
"unit": "kWh"
}
}
}
},
"price": {
"value": "-32",
"currency": "INR"
}
}
]
},
"payments": [
{
"type": "PRE-ORDER",
"status": "PAID",
"params": {
"amount": "40",
"currency": "INR"
},
"time": {
"range": {
"start": "2023-08-10T10:00:00Z",
"end": "2023-08-10T10:30:00Z"
}
}
}
],
"cancellation_terms": [
{
"fulfillment_state": {
"descriptor": {
"code": "charging-start"
}
},
"cancellation_fee": {
"percentage": "30%"
},
"external_ref": {
"mimetype": "text/html",
"url": "https://chargezone.in/charge/tnc.html"
}
}
]
}
}
}
An example of update
request
{
"context": {
"domain": "dent:0.1.0",
"action": "update",
"location": {
"country": {
"name": "India",
"code": "IND"
}
},
"city": "std:080",
"version": "1.1.0",
"bap_id": "example-bap.com",
"bap_uri": "https://api.example-bap.com/pilot/bap/energy/v1",
"bpp_id": "chargezone-energy-bpp.com",
"bpp_uri": "https://api.example-bpp.com/pilot/bpp/",
"transaction_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"message_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"timestamp": "2023-07-16T04:41:16Z"
},
"message": {
"update_target": "order.fulfillments[0].state",
"order": {
"fulfillments": [
{
"id": "1",
"type": "CHARGING",
"state": {
"descriptor": {
"code": "start-charging"
}
}
}
]
}
}
}
An example of on_update
request
{
"context": {
"domain": "dent:0.1.0",
"action": "on_update",
"location": {
"country": {
"name": "India",
"code": "IND"
}
},
"city": "std:080",
"version": "1.1.0",
"bap_id": "example-bap.com",
"bap_uri": "https://api.example-bap.com/pilot/bap/energy/v1",
"bpp_id": "example-bpp.com",
"bpp_uri": "https://api.example-bpp.com/pilot/bpp/",
"transaction_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"message_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"timestamp": "2023-07-16T04:41:16Z"
},
"message": {
"order": {
"id": "6743e9e2-4fb5-487c-92b7",
"providers": {
"id": "chargezone.in",
"descriptor": {
"name": "Chargezone",
"short_desc": "Chargezone Technologies Pvt Ltd",
"images": [
{
"url": "https://chargezone.in/images/logo.png"
}
]
}
},
"items": [
{
"id": "pe-charging-01",
"descriptor": {
"code": "energy"
},
"price": {
"value": "8",
"currency": "INR/kWH"
},
"quantity": {
"available": {
"measure": {
"value": "100",
"unit": "kWh"
}
},
"selected": {
"measure": {
"value": "4",
"unit": "kWh"
}
}
},
"fulfillments": ["1"]
}
],
"fulfillments": [
{
"id": "1",
"customer": {
"person": {
"name": "John Doe"
},
"contact": {
"phone": "+91-9887766554"
}
},
"type": "CHARGING",
"state": {
"descriptor": {
"code": "charging-started"
}
},
"stops": [
{
"type": "start",
"location": {
"gps": "12.423423,77.325647"
},
"time": {
"timestamp": "01-06-2023 10:00:00",
"range": {
"start": "01-06-2023 10:00:00",
"end": "01-06-2023 10:10:00"
}
}
},
{
"type": "end",
"time": {
"timestamp": "01-06-2023 10:30:00",
"range": {
"start": "01-06-2023 10:30:00",
"end": "01-06-2023 10:40:00"
}
}
}
],
"tags": [
{
"descriptor": {
"name": "Charging Point"
},
"list": [
{
"descriptor": {
"name": "Charger type"
},
"value": "AC"
},
{
"descriptor": {
"name": "Connector type"
},
"value": "CCS2"
},
{
"descriptor": {
"name": "Power Rating"
},
"value": "greater than 50kW"
},
{
"descriptor": {
"name": "Availability"
},
"value": "Available"
}
],
"display": true
}
]
}
],
"billing": {
"email": "[email protected]",
"number": "+91-9876522222"
},
"quote": {
"price": {
"value": "40",
"currency": "INR"
},
"breakup": [
{
"item": {
"descriptor": {
"name": "Estimated units consumed"
},
"quantity": {
"selected": {
"measure": {
"value": "4",
"unit": "kWh"
}
}
}
},
"price": {
"value": "32",
"currency": "INR"
}
}
]
},
"payments": [
{
"type": "PRE-ORDER",
"status": "PAID",
"params": {
"amount": "40",
"currency": "INR"
},
"time": {
"range": {
"start": "2023-08-10T10:00:00Z",
"end": "2023-08-10T10:30:00Z"
}
}
}
],
"cancellation_terms": [
{
"fulfillment_state": {
"descriptor": {
"code": "charging-start"
}
},
"cancellation_fee": {
"percentage": "30%"
},
"external_ref": {
"mimetype": "text/html",
"url": "https://chargezone.in/charge/tnc.html"
}
}
]
}
}
}
This section contains recommendations for implementing the APIs after fulfilling a energy service
- REQUIRED. The BPP MUST implement the
rating
endpoint on the url specified in URL specified in thecontext.bpp_uri
field sent duringon_search
. In case of permissioned networks, this URL MUST match theSubscriber.url
present on the respective entry in the Network Registry - REQUIRED. The BPP MUST implement the
get_rating_categories
endpoint on the url specified in URL specified in thecontext.bpp_uri
field sent duringon_search
. In case of permissioned networks, this URL MUST match theSubscriber.url
present on the respective entry in the Network Registry
- REQUIRED. The BPP MUST implement the
support
endpoint on the url specified in URL specified in thecontext.bpp_uri
field sent duringon_search
. In case of permissioned networks, this URL MUST match theSubscriber.url
present on the respective entry in the Network Registry
An example of rating
request
{
"context": {
"domain": "dent:0.1.0",
"action": "rating",
"location": {
"country": {
"name": "India",
"code": "IND"
}
},
"city": "std:080",
"version": "1.1.0",
"bap_id": "example-bap.com",
"bap_uri": "https://api.example-bap.com/pilot/bap/energy/v1",
"bpp_id": "chargezone-energy-bpp.com",
"bpp_uri": "https://api.example-bpp.com/pilot/bpp/",
"transaction_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"message_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"timestamp": "2023-07-16T04:41:16Z"
},
"message": {
"ratings": [
{
"id": "6743e9e2-4fb5-487c-92b7",
"rating_category": "charger",
"value": "5"
}
]
}
}
An example of on_rating
request
{
"context": {
"domain": "dent:0.1.0",
"action": "on_rating",
"location": {
"country": {
"name": "India",
"code": "IND"
}
},
"city": "std:080",
"version": "1.1.0",
"bap_id": "example-bap.com",
"bap_uri": "https://api.example-bap.com/pilot/bap/energy/v1",
"bpp_id": "chargezone-energy-bpp.com",
"bpp_uri": "https://api.example-bpp.com/pilot/bpp/",
"transaction_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"message_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"timestamp": "2023-07-16T04:41:16Z"
},
"message": {
"feedback_form": {
"xinput": {
"form": {
"url": "https://api.example-bpp.com/pilot/bpp/feedback/portal"
},
"required": "false"
}
}
}
}
An example of support
request
{
"context": {
"domain": "dent:0.1.0",
"action": "support",
"location": {
"country": {
"name": "India",
"code": "IND"
}
},
"city": "std:080",
"version": "1.1.0",
"bap_id": "example-bap.com",
"bap_uri": "https://api.example-bap.com/pilot/bap/energy/v1",
"bpp_id": "chargezone-energy-bpp.com",
"bpp_uri": "https://api.example-bpp.com/pilot/bpp/",
"transaction_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"message_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"timestamp": "2023-07-16T04:41:16Z"
},
"message": {
"support": {
"order_id": "6743e9e2-4fb5-487c-92b7",
"phone": "+919876543210",
"email": "[email protected]"
}
}
}
An example of on_support
request
{
"context": {
"domain": "dent:0.1.0",
"action": "on_support",
"location": {
"country": {
"name": "India",
"code": "IND"
}
},
"city": "std:080",
"version": "1.1.0",
"bap_id": "example-bap.com",
"bap_uri": "https://api.example-bap.com/pilot/bap/energy/v1",
"bpp_id": "chargezone-energy-bpp.com",
"bpp_uri": "https://api.example-bpp.com/pilot/bpp/",
"transaction_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"message_id": "6743e9e2-4fb5-487c-92b7-13ba8018f176",
"timestamp": "2023-07-16T04:41:16Z"
},
"message": {
"support": {
"order_id": "6743e9e2-4fb5-487c-92b7",
"phone": "1800 1080",
"email": "[email protected]",
"url": "https://www.chargezone.com/helpdesk"
}
}
}