---------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------- MESSAGE TYPES ------------------------------------------------------------------------------ ---------------------------------------------------------------------------------------------------------------------------------------------------- **************************************************************************************************************************************************** Message id: ReservationCreated Route key: {instanceId}.{locationId}.reservation.created Send trigger: When EV user sucessfully posts new reservation Object type: Reservation **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: ReservationCanceled Route key: {instanceId}.{locationId}.reservation.canceled Send trigger: When EV user successfully cancels upcoming reservation Object type: Reservation **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: ChargingSessionStarted Route key: {instanceId}.{locationId}.session.started Send trigger: When system received from charger that sessions has started Object type: ChargingSession **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: ChargingSessionStartedUser Route key: {instanceId}.{locationId}.session.started.user Send trigger: When system received from charger that sessions has started. In this case smaller object is send Object type: ChargingSessionSimple **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: ChargingSessionEnded Route key: {instanceId}.{locationId}.session.ended Send trigger: When system received from charger that sessions has ended Object type: ChargingSession **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: ChargingSessionEndedUser Route key: {instanceId}.{locationId}.session.ended.user Send trigger: When system received from charger that sessions has ended. In this case smaller object is send Object type: ChargingSessionSimple **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: ChargingSessionUserBillingEnded Route key: {instanceId}.{locationId}.session.billing.user.ended Send trigger: After session user billing is successfully executed Object type: ChargingSessionBilling **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: ChargingSessionb2BBillingEnded Route key: {instanceId}.{locationId}.session.billing.b2b.ended Send trigger: After session B2B billing is successfully executed Object type: ChargingSessionBilling **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: UserPrepaymentAccountEmpty Route key: {instanceId}.{locationId}.user.account.empty Send trigger: After session user billing is successfully executed and system detects that user's account is almost empty Object type: UserPrepaymentAccountEmpty **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: ChargingSessionDataManuallyChanged Route key: {instanceId}.{locationId}.session.manuallyChanged Send trigger: After operator manually changes charging session data Object type: ChargingSessionManualUpdate **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: InvoiceDocumentReady Route key: {instanceId}.invoice.user.ready Send trigger: When Ocean generates invice documents or when they are uploaded to Ocean Object type: InvoiceDocument **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: ChargePointConnectorStatusChanged Route key: {instanceId}.{locationId}.connector.statusChanged Send trigger: When connector status changes Object type: ConnectorStatus **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: HelpDeskTicketUserRaised Route key: {instanceId}.helpdesk.ticket.raisedByUser Send trigger: When connector status changes Object type: UserRequest **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: HelpDeskTicketStatusChanged Route key: {instanceId}.helpdesk.ticket.statusChanged Send trigger: When connector status changes Object type: UserRequestTicketStatus **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: HelpDeskTicketOperatorResponded Route key: {instanceId}.helpdesk.ticket.operatorResponded Send trigger: When connector status changes Object type: UserRequestTicketOperatorResponse **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: MaintenanceTaskCreated Route key: {instanceId}..maintenance.taskCreated Send trigger: When new maintenance task is created (2nd level support) Object type: MaintenanceTask **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: MaintenanceTaskStatusChanged Route key: {instanceId}.maintenance.taskStatusChange Send trigger: When maintenance task status changes Object type: MaintenanceTaskStatus **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: ChargingSessionVehicleIsFull Route key: {instanceId}.{locationId}.session.vehicleFull Send trigger: When detected that user vehicle is full (SOC 100% or Power almost 0 for a longer time) Object type: VehicleIsFull **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: UserAccountBlocked Route key: {instanceId}.user.account.blocked Send trigger: When user is blocked Object type: UserStatus **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: UserAccountUnblocked Route key: {instanceId}.user.account.unblocked Send trigger: When user is unblocked Object type: UserStatus **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: UserPayerAccountBlocked Route key: {instanceId}.userPayer.account.blocked Send trigger: When user payer is blocked Object type: UserPayerStatus **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: UserPayerAccountUnblocked Route key: {instanceId}.userPayer.account.unblocked Send trigger: When user payer is unblocked Object type: UserPayerStatus **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: UserPayerAccountPaymentBlocked Route key: {instanceId}.userPayer.account.paymentBlocked Send trigger: When user payer payment is blocked Object type: UserPayerStatus **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: UserPayerAccountPaymentUnblocked Route key: {instanceId}.userPayer.account.paymentUnblocked Send trigger: When user payer payment is unblocked Object type: UserPayerStatus **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: SystemEventRaised Route key: {instanceId}.{locationId}.{eventTypePriorityId}.{eventSourceId}.system.event Send trigger: After session has been started and charging preferences are known or when user changes preferences during charging Object type: SystemEvent **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: UserRegistrationPending Route key: {instanceId}.userRegistration.pending Send trigger: Once customer triggered registration which requres further confirmation by operator. This will be send only in the case of subscribers. Object type: CustomerRegistrationPending **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: ChargingSessionEndedRegulary Route key: {instanceId}.{locationId}.session.ended.regulary Send trigger: When connector status changes from one of the charging status (Charging, PausedByEV, PausedByEVSE) to Available or Finishing and local EMSP user is charging Object type: ChargingSessionStatusChanged **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: ChargingSessionEndedWithFault Route key: {instanceId}.{locationId}.session.ended.fault Send trigger: When connector status changes from one of the charging status (Charging, PausedByEV, PausedByEVSE) to Fault and local EMSP user is charging Object type: ChargingSessionStatusChanged **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: ReservationTimeChanged Route key: {instanceId}.{locationId}.reservation.timeChanged Send trigger: When customer or operator changes reservation time Object type: Reservation **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: ChargingSessionPreferenceChanged Route key: {instanceId}.{locationId}.session.preference.changed Send trigger: When customer or operator changes reservation time Object type: Reservation **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: UserAccountFundsTopup Route key: {instanceId}.user.account.fundstopup Send trigger: When customer from Driver app or API executes on user or payer prepayment account Object type: TopupTransaction **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: UserAccountManualBalance Route key: {instanceId}.user.account.manualbalance Send trigger: When operator executes manual balance on user account. Normally executed as a part of dispute process for postpayers or prepayers Object type: ManualTransaction **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: InvoiceDocumentPendingToBeGenerated Route key: {instanceId}.{invoiceTypeId}.{invoiceTemplateId}.documentGenerationPending Send trigger: When Ad-hoc session payment is executed OR when session is disputed and new dispute invoice needs be be generated OR when duplicate invoice generation is triggered by operator OR when operator manually creates new invoice OR when monthly subscription service is regulary generating subscription invoices Usage description: If you generate invoices from external system, you need to get more details about invoice to generate invoice document. Once you receive this MQ, call urchin API GET Invoice where InvoiceId received by MQ should be used as input parameter. Object type: InvoiceDocumentPendingToBeGenerated **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: NewChargePointRequestBySubCPO Route key: {instanceId}.{locationId}.chargepoint.subcpo.newrequest Send trigger: When Sub CPO operator requests Object type: NewChargePointRequestedBySubCPO **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: MaintenanceTaskNewInternalComment Route key: {instanceId}.{locationId}.maintenance.taskNewInternalComment Send trigger: When operator responses with new comment to the maintenance task. Comments are used for communication between team members or store process steps Object type: MaintenanceTaskComment **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: ChargingSessionVehicleIsFull Route key: {instanceId}.{locationId}.session.vehicleFull Send trigger: When EV battery is 80% full. This messsage is triggered only on connector reporting SOC Object type: ChargingSessionVehicleFull **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: ChargePointInserted Route key: {instanceId}.{locationId}.{chargePointId}.chargepoint.inserted Send trigger: When operator or API inserts new charger Object type: ChargePointChange **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: ChargePointUpdated Route key: {instanceId}.{locationId}.{chargePointId}.chargepoint.updated Send trigger: When operator or API updates data about existing charger Object type: ChargePointChange **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: ChargePointDeleted Route key: {instanceId}.{locationId}.{chargePointId}.chargepoint.deleted Send trigger: When operator or API delete existing charger (MQ not send when whole location is deleted) Object type: ChargePointChange **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: LocationInserted Route key: {instanceId}.{locationId}.location.inserted Send trigger: When operator or API inserts new location Object type: LocationChange **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: LocationUpdated Route key: {instanceId}.{locationId}.location.updated Send trigger: When operator or API updates data about existing location Object type: LocationChange **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: LocationDeleted Route key: {instanceId}.{locationId}.location.deleted Send trigger: When operator or API delete existing location Object type: LocationChange **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: LocationClusterInserted Route key: {instanceId}.{locationId}.{locationClusterId}.locationCluster.inserted Send trigger: When operator or API inserts new location cluster Object type: LocationClusterChange **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: LocationClusterUpdated Route key: {instanceId}.{locationId}.{locationClusterId}.locationCluster.updated Send trigger: When operator or API updates data about existing location cluster Object type: LocationClusterChange **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: LocationClusterDeleted Route key: {instanceId}.{locationId}.{locationClusterId}.locationCluster.deleted Send trigger: When operator or API delete existing location cluster Object type: LocationClusterChange **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: LoadAreaInserted Route key: {instanceId}.{loadAreaId}.loadArea.inserted Send trigger: When operator or API inserts new load area Object type: LoadAreaChange **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: LoadAreaUpdated Route key: {instanceId}.{loadAreaId}.loadArea.updated Send trigger: When operator or API updates data about existing load area Object type: LoadAreaChange **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: LoadAreaDeleted Route key: {instanceId}.{loadAreaId}.loadArea.deleted Send trigger: When operator or API delete existing load area Object type: LoadAreaChange **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: ChargingSessionDisputed Route key: {instanceId}.session.disputed Send trigger: When operator or API disputes charging session. This usually happens when costs are too high, customer was not satisfied with servide or there is a mistake in data. At session dispute sytem deletes old session and creates a new one, referenced to the old one. Object type: ChargingSessionDispute **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: InvoicesPeriodicPublished Route key: {instanceId}.invoicesPeriodic.published Send trigger: When operator triggers publishing monhtly subscriptions or generation of postpayment invoices Object type: InvoicesPeriodicPublished **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: SecurityEvent Route key: {instanceId}.security.event Send trigger: When system detects security event Object type: SecurityEvent **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: TariffSubCPOAccepted Route key: {instanceId}.{locationId}.tariff.subcpo.accepted Send trigger: When operator checks/edit and accepts proposed tariff from Sub CPO Object type: TariffSubCPOApproval **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: TariffSubCPODenied Route key: {instanceId}.{locationId}.tariff.subcpo.denied Send trigger: When operator checks/edit and denies proposed tariff from Sub CPO Object type: TariffSubCPOApproval **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: TariffSubCPOPending Route key: {instanceId}.{locationId}.tariff.subcpo.pending Send trigger: When Sub CPO operator posts new tariff that needs to be reviewed by CPO price administrator Object type: TariffSubCPOPending **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: UserPaymentCardRequiresRevalidation Route key: {instanceId}.user.paymentCard.revalidationRequired Send trigger: When Ocean payment system discoveres that payment card which is used in MIT (merchant initiated payment) needs revalidation. Customer gets notified about it Object type: PaymentCardRevalidation **************************************************************************************************************************************************** **************************************************************************************************************************************************** Message id: UserPaymentCardValidated Route key: {instanceId}.user.paymentCard.validated Send trigger: When Ocean payment system discoveres that payment card which is used in MIT (merchant initiated payment) needs revalidation. Customer gets notified about it Object type: UserPaymentCardValidated **************************************************************************************************************************************************** ---------------------------------------------------------------------------------------------------------------------------------------------------- ------------------------------------------------------- OBJECT TYPES DESCRIPTION ------------------------------------------------------------------- ------------------------------------------------------- ------------------- ------------------------------------------------------------------------ **************************************************************************************************************************************************** ******************************************************* Object type: UserRequest, Object version: 1.0 ********************************************** **************************************************************************************************************************************************** { "UserRequestId":12121, //datatype:int64, description: Ocean uniqe id of user request "Number":"T-2018/20", //datatype:string, description: Ocean friendly id of the user request "UserRequestMessage": "This is user request", //datatype:string, description: Ocean uniqe id of user request "ReportedBy": { "User": { //logic: object properties will have null values if user request will not be posted by user (example would be posted by user payer) "Id":123, //datatype:int32, description: Ocean uniqe id of the user "Email":"john.doe@company.com", //datatype:string, description: User email "ExternalCode":"ADDQW12123232317845", //datatype:string, description: External id of the user (normally ERP id) }, "UserPayer": { //logic: object properties will have null values if user request will not be posted by user payer (example would be posted by user) "Id":128, //datatype:int32, description: Ocean uniqe id of the user payer "Email":"finance@company.com", //datatype:string, description: User payer email "ExternalCode":"CZDQW121232323178564", //datatype:string, description: External id of the user payer (normally ERP id) }, "BusinessPartner": { //logic: object properties will have null values if user request will not be posted by user payer (example would be posted by user) "Id":34342, //datatype:int32, description: Ocean unique id of the business partner "CompanyName":"finance@company.com", //datatype:string, description: Official name of the business partner "ExternalCode":"KBDQW887232323178311", //datatype:string, description: External id of the business partner (normally ERP id) }, "InsertedByOperator": { //logic: object properties will have null values if user request will not be manually inserted by operator (usually operator inserts user request at telephone call) "Id":18, //datatype:int32, description: Ocean unique id of the operator "Email":"operator@cpo.com" //datatype:string, description: Operator email }, "OtherContactName":null, //datatype:string, description: Name of user reported request, if user entity dose not exists in the system (some external/unregistered users reported fault) "OtherContactEmail":null, //datatype:string, description: Email of user reported request, if user entity dose not exists in the system (some external/unregistered users reported fault) "OtherContactPhone":null //datatype:string, description: Phone number of user reported request, if user entity dose not exists in the system (some external/unregistered users reported fault) }, "RequestCategory": { "Id":12, //datatype:int32, description: Ocean uniqe id of the category. You configure categories by your own in instance settings. Please check ID's there "Title":"Charger failure" //datatype:string, description: Title of category. You configure categories by your own in instance settings. Please check titles there }, "RequestCategoryType": { "Id":45, //datatype:int32, description: Ocean uniqe id of the category. You configure categories by your own in instance settings. Please check ID's there "Title":"RFID card reader does not detect my card" //datatype:string, description: Title of category. You configure categories by your own in instance settings. Please check titles there }, "RequestInsertChannel": { //enumeration of channels: 1-Mobile app email,2-Mobile app SMS,3-Web portal - user front end,4-Call center (telephone call),5-Call center (email),6-Information office (personal meeting),7-Prepayment cards reseller "Id":2, //datatype:int16, description: Ocean uniqe id of the channel "Title":"" //datatype:string, description: Title of channel }, "TicketRelatedTo": { //logic:ticket is always related to one or more entities. Entities will have property values null if not linked to ticket. Possible entities are: reservation, session, invoice, user identification, user contract, charging location "ChargingReservation": { "Id":1212, //datatype:int64, description: Ocean uniqe id of the charging reservation "Number":"R-2019/143", //datatype:string, description: Ocean friendly id of the charging reservation "PlannedFrom":"2019-02-01T12:00:00.000Z", //datatype:datetime, description: Reservation planned start "PlannedTo":"2019-02-01T12:00:00.000Z" //datatype:datetime, description: Reservation planned stop }, "ChargingSession": { "Id":34345, //datatype:int64, description: Ocean uniqe id of the charging session "Number":"S-2019/12323", //datatype:string, description: Ocean friendly id of the charging session "ChargingFrom":"2019-02-01T12:00:00.000Z", //datatype:datetime, description: Session start time "ChargingTo":"2019-02-01T12:00:00.000Z" //datatype:datetime, description: Session end time }, "Invoice": { "Id":232, //datatype:int64, description: Ocean uniqe id of the invoice "Number":"I-2018/1222" //datatype:string, description: Ocean friendly id of the invoice }, "UserIdentification": { "Id":12124, //datatype:int32, description: Ocean uniqe id of the identification "Type":{ //enumeration: 1-RFID card standard format,2-RFID card reversed format,3-User account ID by IEC1518,4-Vehicle ID by IEC1518,5-EVCOID Vehicle contract ID by IEC1518,6-ISO7812 Credit Card ID,7-Credit Card Transaction ID,8-Mobile application,9-Web application,10-Local ID generated by charge point,11-Local ID - no format defined,12-Phone number for SMS authentication,13-Backend operator ID,14-PIN code,15-Roaming API,16-RFID card encrypted SHA-1,17-RFID card encrypted SHA-2,18-RFID card encrypted MD5 "Id":1, //datatype:int16, description: Ocean unique id of the identification type "Title":"RFID card standard format" //datatype:string, description: Title of identification type }, "Number":"PASS-12334343", //datatype:string, description: External identification code(Example: number written on identification card) "Code":"C2AA1218" //datatype:string, description: Unique hidden identification code (Example: RFID card code) }, "UserContract": { "Id":12123, //datatype:int32, description: Ocean unique id of the user contract "Type":{ //enumeration: contract types are defined by Ocean administrator. Please check CRM->Contract types to get ID's "Id":6, //datatype:int32, description: Ocean unique id of the user contract type "Title":"Subscriber Green" //datatype:string, description: User contract type title }, "Code":"SG-2017/1212" //datatype:string, description: External code of user contract. Normally is generated by ERP system and stord in Ocean }, "Location": { //logic>ticket can be linked to one of the levels. If linked to connector then all parent objects are send: location, charge point and evse "Id":7875, //datatype:int32, description: Ocean uniqe id of the charging location "FriendlyCode":"SI*ETR00012", //datatype:string, description: Ocean friendly code of the location "CityName":"Grosuplje", //datatype:string, description: Location address: city "PostNumber":"1290", //datatype:string, description: Location address: post number "StreetName":"Pod jelšami", //datatype:string, description: Location address: street name "HouseNumber":"6", //datatype:string, description: Location address: house number "ChargePoint":{ "Id":67675, //datatype:int32, description: Ocean unique id of the charger "SerialNumber":"193400012", //datatype:string, description: Charger serial number. Normally written on charger faceplate "ExternalCode":"243235654", //datatype:string, description: External EVSE code. Normally entered into Ocean from ERP system "Evse":{ "Id":765567, //datatype:int32, description: Ocean unique id of the evse "FriendlyCode":"SI*ETR00012-01-02", //datatype:string, description: Ocean friendly code of the evse "ExternalCode":"243235654-1", //datatype:string, description: External EVSE code. Normally entered into Ocean from ERP system "Connector":{ "Id":765589, //datatype:int32, description: Ocean unique id of the connector "FriendlyCode":"SI*ETR00012-01-02-1", //datatype:string, description: Ocean friendly code of the connector } } } } } } **************************************************************************************************************************************************** ******************************************************* Object type: ChargingSession, Object version: 1.0 ********************************************** **************************************************************************************************************************************************** { "ChargingSessionId":34345, //datatype:int64, description: Ocean unique id of the charging session "ChargingSessionNumber":"S-2019/12323", //datatype:string, description: Ocean friendly id of the charging session "ChargingSessionSourceId":1, //datatype:int16, enumeration: 1-local charge point (CSO), 2-roaming CDR "ParkingFrom":null, //datatype:datetime, description: Parking start time. Normally empty if charger is not able to detect parking time "ParkingTo":"null, //datatype:datetime, description: Parking end time. Normally empty if charger is not able to detect parking time "ConnectedFrom":"2019-02-01T12:00:00.000Z", //datatype:datetime, description: Connected from time. If system is not able to detect when vehicle was connected then connected start time is the same as charging start time "ConnectedTo":"2019-02-01T12:00:00.000Z" //datatype:datetime, description: Connected end time. If system is not able to detect when vehicle was connected then connected end time is the same as charging end time "ChargingFrom":"2019-02-01T12:00:00.000Z", //datatype:datetime, description: Charging start time "ChargingTo":"2019-02-01T12:00:00.000Z", //datatype:datetime, description: Charging end time "MeterStart":12124, //datatype:float, description: Meter value at session start. Depends on the charger if meter values is reset for each charging "MeterEnd":12834, //datatype:float, description: Meter value at session end. Depends on the charger if meter values is reset for each charging "ActiveEnergyConsumption":22.2, //datatype:float, description: Active energy consumption during charging, unit: kWh "MaxActivePower":12.5, //datatype:float, description: Max measured power during charging, unit: kW "RoamingTypeId":0, //datatype:int16, enumeration: 0-Local sessions - Our users on our infrastructure, 1-CPO - others roaming on our infrastructure, 2-EMSP - our users on roaming infractructure, 3-CPO&EMSP - our users roaming or other users roaming on our infrastructure "RoamingSessionId":null, //datatype:string, description: Roaming session id, collected from roaming partner, used as reference when communicating with partner "ChargingSessionStopReasonId":1, //datatype:int16, enumeration:1-Local stop, 2-Remote stop by user,3-Emergency stop, 4-Energy limit reached, 5-EV disconnected, 6-Deauthorized, 7-Immediate reset, 8-Local out of credit, 9-Local reboot, 10-Power loss, 11-Power quality, 12-SOC limit reached, 13-Time limit reached, 14-Unlock command, 15-Other, 16-Finished in back office at next session start, 17-Finished in back office with availability changed event, 18-Remote stop by operator, 19-Error occured during charging, 20-No more funds - charging time expired, 21-No more funds - energy consumption reached "Evse": { "Id":765567, //datatype:int32, description: Ocean unique id of the evse "EvseFriendlyCode":"SI*ETR00012-01-02", //datatype:string, description: Ocean friendly code of the evse "ChargingTypeId":1, //datatype:int16, enumeration: 1-AC,2-DC,3-Wireless "OutMaxPower":11.04 //datatype:float, description:Max EVSE power, unit: kW "NumberOfPhases":3, //datatype:int16, enumeration: null - when DC or undefined,1-Single phase,3-Three phase "ExternalCode": "243235654-1", //datatype:string, description: External EVSE code. Normally entered into Ocean from ERP system "PaymentRequired":1, //datatype:int16, enumeration: 0 - not enabled, 1- enabled "Connector": { "Id":765589, //datatype:int32, description: Ocean unique id of the connector "FriendlyCode":"SI*ETR00012-01-02-1", //datatype:string, description: Ocean friendly code of the connector "ConnectorTypeId":1 //datatype:int16, enumeration: 0-Unknown,1-Type 2 socket,2-Type 2 Mode 2 socket,3-Type 2 plug,4-Type 2 Mode 2 plug,5-CHAdeMO Plug,6-CCS plug,7-Household German type,8-Type1Socket,9-Tesla super charger connector,10-Type 3 socket,11-Type 3 plug,12-IEC60309 Single Phase,13-IEC60309 Three Phase,14-Small Paddle Inductive,15-Large Paddle Inductive,16-Type1Cable } "ChargePoint": { "Id":67675, //datatype:int32, description: Ocean unique id of the charger "FriendlyCode":"SI*ETR00012-01", //datatype:string, description: Ocean friendly code of the evse "ExternalCode":"243235654", //datatype:string, description: External EVSE code. Normally entered into Ocean from ERP system "SerialNumber":"193400012", //datatype:string, description: Charger serial number. Normally written on charger faceplate "Owner": { "Id":12, //datatype:int32, description: Ocean unique id of the charger owner as business partner "Name":"Partner Company inc.", //datatype:string, description: Charger owner business partner name "AccountingSystemCode":"EXT5656SFDFS343" //datatype:string, description: Charger owner business partner external code. Normally this is ERP code } }, "Location": { "LocationId":7875, //datatype:int32, description: Ocean unique id of the charging location "FriendlyName":"City hall parking 1", //datatype:string, description: Ocean friendly code of the location "FriendlyCode":"SI*ETR00012", //datatype:string, description: Ocean friendly code of the location "LocationTypeId":1, //datatype:int16, enumeration: Enumeration is defined by instance operator. Please get list from location editor. "LocationAccessTypeId":1, //datatype:int16, enumeration: 1-Public accessible - Free access,2-Private - only for customers,3-Private - only for employees,4-Public access - payable,5-Private access - home,6-Private access - plug sharing,7-Public access - car sharing,8-Private access - only for residents,9-Public in working hours and only private out of working hours "Address": { "StreetName":"Pod jelšami", //datatype:string, description: Location address: street name "HouseNumber":"6", //datatype:string, description: Location address: house number "CityName":"Grosuplje", //datatype:string, description: Location address: city "PostNumber":"1290", //datatype:string, description: Location address: post number "CountryCode":"SI" //datatype:string, description: Location address: country code } }, "Roaming": { "RoamingPlatform": { "Id":null, //datatype:int32, description: Ocean unique id of the roaming platform "Title":null, //datatype:string, description: Roaming platform title "RoamingActor": { "Id":null, //datatype:int32, description: Ocean unique id of the roaming platform actor/partner "Code":null, //datatype:string, description: Unique code of the roaming actor on a specific platform "Title":null //datatype:string, description: Title of roaming actor on a specific platform } } } }, "ChargingAuthorization": { "Id":34345, //datatype:int64, description: Ocean unique id of the charging authorization "Number":"A-2019/22323", //datatype:string, description: Ocean friendly id of the charging authorization "AuthorizationSourceId":1, //datatype:int16, enumeration: 1-local charge point (CSO),2-roaming live authorization request requested,3-local EMSP user interface (web or mobile),4-manually initiated by CSO operator,5-roaming live authorization request received,6-roaming remote start command send,7-roaming remote start command received,8-api authorization request received,9-api authorization request requested,10-api remote start command received "ServerReceivedTimestamp":"2019-02-01T12:00:00.000Z", //datatype:datetime, description: Authorization request received timestamp "Payable":1, //datatype:int16, enumeration: 0 - not enabled, 1- enabled "Identification": { "Id":12124, //datatype:int32, description: Ocean unique id of the identification "IdentificationType":{ //enumeration: 1-RFID card standard format,2-RFID card reversed format,3-User account ID by IEC1518,4-Vehicle ID by IEC1518,5-EVCOID Vehicle contract ID by IEC1518,6-ISO7812 Credit Card ID,7-Credit Card Transaction ID,8-Mobile application,9-Web application,10-Local ID generated by charge point,11-Local ID - no format defined,12-Phone number for SMS authentication,13-Backend operator ID,14-PIN code,15-Roaming API,16-RFID card encrypted SHA-1,17-RFID card encrypted SHA-2,18-RFID card encrypted MD5 "Id":1, //datatype:int16, description: Ocean unique id of the identification type "Title":"RFID card standard format" //datatype:string, description: Title of identification type }, "CardTypeId":231, //datatype:int32, enumeration: Enumeration is defined by instance operator. Please check catc types under CRM->Identifications "Number":"PASS-12334343", //datatype:string, description: External identification code(Example: number written on identification card) "Code":"C2AA1218", //datatype:string, description: Unique hidden identification code (Example: RFID card code) "User": { "Id":123, //datatype:int32, description: Ocean unique id of the user "FirstName":"John", //datatype:string, description: User first name "LastName":"Doe", //datatype:string, description: User last name "IsCompany":1, //datatype:int16, enumeration: 0-person, 1-company "CompanyName":"Company inc.", //datatype:string, description: User company name if user is company "Email":"john.doe@company.com", //datatype:string, description: User email "GSMNumber":"3423423423", //datatype:string, description: User mobile number "ExternalCode":"ADDQW12123232317845", //datatype:string, description: External id of the user (normally ERP id) "TaxNumber":"SI-1233423423", /datatype:string, description: User tax number "UICulture":"sl-SI" //datatype:string, description: User UI culture based on ISO }, "UserPayer": { "Id":128, //datatype:int32, description: Ocean unique id of the user payer "FirstName":"Fat", //datatype:string, description: Payer first name "LastName":"Owner", //datatype:string, description: Payer last name "IsCompany":1, //datatype:int16, enumeration: 0-person, 1-company "CompanyName":"Company inc.", //datatype:string, description: Payer company name if user is company "Email":"finance@company.com", //datatype:string, description: Payer email "GSMNumber":"3423423423", //datatype:string, description: Payer Mobile number "ExternalCode":"ADDQW12123232317845", //datatype:string, description: External id of the payer (normally ERP id) "TaxNumber":"SI-1233423423", /datatype:string, description: Payer tax number "UICulture":"sl-SI" //datatype:string, description: Payer UI culture based on ISO }, "UserContract": { "Id":12123, //datatype:int32, description: Ocean unique id of the user contract "Number":"C-2019/23", //datatype:int32, description: Ocean friendly id of the user contract "ExternalNumber":"SGASDF-2017-1212" //datatype:string, description: External code of user contract. Normally is generated by ERP system and stord in Ocean "Type": { //enumeration: contract types are defined by Ocean administrator. Please check CRM->Contract types to get ID's "Id":6, //datatype:int32, description: Ocean unique id of the user contract type "Code":"SUBSCR_GREEN", //datatype:string, description: User contract type code "Title":"Subscriber Green", //datatype:string, description: User contract type title "PaymentType": { //enumeration: 1-PERUSAGE,2-PERSESSIONQUANTATIES,3-SUBSCRIPTION,4-PERUSAGE,5-PAYASYOUGO "Id":1, //datatype:int16, description: Ocean unique id of the payment type "Title":"SUBSCRIPTION" //datatype:string, description: Title of payment type } } } }, "Roaming": { "RoamingAuthorizationId":"ASDAER23423423SDF", //datatype:string, description: External id of roaming authorization as a base for charging session "RoamingPlatform": { "Id":null, //datatype:int32, description: Ocean unique id of the roaming platform., current enumeration: "Title":null, //datatype:string, description: Roaming platform title "RoamingActor": { "Id":null, //datatype:int32, description: Ocean unique id of the roaming platform actor/partner "Code":null, //datatype:string, description: Unique code of the roaming actor on a specific platform "Title":null //datatype:string, description: Title of roaming actor on a specific platform } } } }, "Coupon": { "Id":1212, //datatype:int64, description: Ocean unique id of the coupon linked with session "Code":"CUP1212112", //datatype:string, description: Ocean friendy code of the coupon linked with session "Type": { //enumeration: Please check instance definition of coupon types "Id":67, //datatype:int32, description: Coupon type id "Title":"McDonalds CHARGE" //datatype:string, description: Coupon type title } } } **************************************************************************************************************************************************** ******************************************************* Object type: ChargingSessionSimple, Object version: 1.0 ******************************************** **************************************************************************************************************************************************** { "ChargingSessionId":34345, //datatype:int64, description: Ocean unique id of the charging session "LocationId":7875, //datatype:int32, description: Ocean unique id of the charging location "InstanceId":2, //datatype:int32, description: Ocean instance id. Every tennant has uniqe id "UserId":123, //datatype:int32, description: Ocean unique id of the user "RoamingTypeId":0, //datatype:int16, enumeration: 0-Local sessions - Our users on our infrastructure, 1-CPO - others roaming on our infrastructure, 2-EMSP - our users on roaming infractructure, 3-CPO&EMSP - our users roaming or other users roaming on our infrastructure "ChargingFrom":"2019-02-01T12:00:00.000Z", //datatype:datetime, description: Charging start time "ChargingTo":"2019-02-01T12:00:00.000Z", //datatype:datetime, description: Charging end time "MeterStart":12124, //datatype:float, description: Meter value at session start. Depends on the charger if meter values is reset for each charging "MeterEnd":12834, //datatype:float, description: Meter value at session end. Depends on the charger if meter values is reset for each charging "ActiveEnergyConsumption":22.2, //datatype:float, description: Active energy consumption during charging, unit: kWh "MaxActivePower":12.5, //datatype:float, description: Max measured power during charging, unit: kW "ChargingSessionStopReasonId":1 //datatype:int16, enumeration:1-Local stop, 2-Remote stop by user,3-Emergency stop, 4-Energy limit reached, 5-EV disconnected, 6-Deauthorized, 7-Immediate reset, 8-Local out of credit, 9-Local reboot, 10-Power loss, 11-Power quality, 12-SOC limit reached, 13-Time limit reached, 14-Unlock command, 15-Other, 16-Finished in back office at next session start, 17-Finished in back office with availability changed event, 18-Remote stop by operator, 19-Error occured during charging, 20-No more funds - charging time expired, 21-No more funds - energy consumption reached } **************************************************************************************************************************************************** ******************************************************* Object type: ChargingSessionManualUpdate, Object version: 1.0 ************************************* **************************************************************************************************************************************************** { "ChargingSessionId":34345, //datatype:int64, description: Ocean unique id of the charging session "ChargingSessionStatusId":0, //datatype:int16, enumeration: 1-Charging has started,2-Charging in progress,3-Charging finished - error occured during charging,4-Charging paused - power management,5-Charging paused - maintenance,6-Charging finished - ended by operator,7-Charging finished abnormally - ocean has finished session,8-Charging finished normally,9-Charging started with failed authorization,10-Charging finished, based on failed auhorization,11-Session data changed by operator,12-Session totally disputed - costs where disputed "ConnectedFrom":"2019-02-01T12:00:00.000Z", //datatype:datetime, description: Connected from time. If system is not able to detect when vehicle was connected then connected start time is the same as charging start time "ConnectedTo":"2019-02-01T12:00:00.000Z" //datatype:datetime, description: Connected end time. If system is not able to detect when vehicle was connected then connected end time is the same as charging end time "ChargingFrom":"2019-02-01T12:00:00.000Z", //datatype:datetime, description: Charging start time "ChargingTo":"2019-02-01T12:00:00.000Z", //datatype:datetime, description: Charging end time "TimeSpentCharging":1.52, //datatype:float, description: Charging duration, unit: h "MeterStart":12124, //datatype:float, description: Meter value at session start. Depends on the charger if meter values is reset for each charging "MeterEnd":12834, //datatype:float, description: Meter value at session end. Depends on the charger if meter values is reset for each charging "ActiveEnergyConsumption":22.2, //datatype:float, description: Active energy consumption during charging, unit: kWh "ChargingSessionStopReasonId":1 //datatype:int16, enumeration:1-Local stop, 2-Remote stop by user,3-Emergency stop, 4-Energy limit reached, 5-EV disconnected, 6-Deauthorized, 7-Immediate reset, 8-Local out of credit, 9-Local reboot, 10-Power loss, 11-Power quality, 12-SOC limit reached, 13-Time limit reached, 14-Unlock command, 15-Other, 16-Finished in back office at next session start, 17-Finished in back office with availability changed event, 18-Remote stop by operator, 19-Error occured during charging, 20-No more funds - charging time expired, 21-No more funds - energy consumption reached "ChangeReason":"Charger send fault data" //datatype:string, description: Operator description why data was changed "UpdatedByOperatorId":15 //datatype:int32, description: Ocean unique id of the operator that did change } **************************************************************************************************************************************************** ******************************************************* Object type: ChargingSessionBilling, Object version: 1.0 *********************************** **************************************************************************************************************************************************** { "ChargingSessionId":34345, //datatype:int64, description: Ocean unique id of the charging session "ChargingSessionNumber":"S-2019/12323", //datatype:string, description: Ocean friendly id of the charging session "BillingStatusId":1, //datatype:int16, enumeration:1-Not executed yet,2-Successfully executed,3-Failed not enough data: energy consumption data missing,4-Disputed by operator,5-Skipped not enough energy consumption,6-Skipped charging did not last enough,7-Skipped parking did not last enough,8-Cannot finish billing, not enough data: parking time is missing,9-Cannot finish billing, not enough data: max measured charging power is missing,10-Not enough funds or quantaties on account,11-Preauthorized funds smaller than actual,12-No tariff assigned to charge point, user or roaming contract,13-Failed, user contract or roaming contract cannot be resolved,14-Failed, internal error,15-Billing can not be executed for externally authorized users,16-Payment not enabled on charge point connector,17-Skipped fault occured during charging,18-Warning billing cost seems to be too high,19-Billing skipped because charging has no end time or has last suspiciously long,20-Billing skipped because parking has no end time or has last suspiciously long,21-Successfully executed, but spent more then funds on account,22-Local user has free charging "BillingRetries":1, //datatype:int16, description: Number of billing attempts "BillingNextRetry":"2019-02-01T12:00:00.000Z", //datatype:datetime, description: Next billing attempt timestamp "RunnedManuallyByOperatorId":15 //datatype:int32, description: Ocean unique id of the operator that manually executed billing "TotalCost":10.0, //datatype:float, description: Total session costs with tax "TotalCostWithoutTax":8.0, //datatype:float, description: Total session costs without tax "TotalCostTax":2.0, //datatype:float, description: Session tax "TotalDiscount":null, //datatype:float, description: Session discount - other than coupon "TotalCouponDiscount":null, //datatype:float, description: Session cupon discount "MoneyTransactions": [ //logic: single session can have multiple money transaction objects { "PaymentTypeId":1, //enumeration: 1-PERUSAGE,2-PERSESSIONQUANTATIES,3-SUBSCRIPTION,4-PERUSAGE,5-PAYASYOUGO "Timestamp":"2019-02-01T12:00:00.000Z", //datatype:datetime, description: Timestamp of money transaction "Direction":"DOWN", //enumeration: UP- Money refunded or topped up on account,DOWN - money decreased from account "Tariff": { //enumeration: Instance operator defines tariffs. Please check Billing->Tariffs to get tariffs enumeration "Id":11, //datatype:int16, description: Ocean unique id of the tariff "Title":"Subscriber AC", //datatype:string, description: Tariff title }, "TransactionType": { //enumeration: 1-Reservation fee,2-Access fee,3-Parking time fee [hour],4-Max charging power fee,5-Consumed energy fee,6-Charging time fee [hour],7-Parking time fee [min],8-Charging time fee [min],9-Unexecuted reservation fee,10-Monthly subscription,11-RFID card cost,12-Upload funds on user account "Id":2, //datatype:int16, description: Ocean unique id of the transaction type "Title":"Access fee", //datatype:string, description: Transaction type title "Unit":null //datatype:string, description: Transaction type title }, "TariffTransactionTypePrice": { "Id":1227, //datatype:int32, description: Ocean unique id of the tariff pricing "ChargingDurationLimit":12, //datatype:int16, description: Defines if session should automatically stop after defined time , unit: minute "RepeatingAtEveryChargingMinutes":60, //datatype:int16, description: Defines if price should be billed repeated ever x minutes , unit: minute "ValidAfterChargingMinutes":10, //datatype:int16, description: Defines after how many minutes prices is active , unit: minute "PricePerUnit":0.45 //datatype:float, description: Price per unit, unit: instance currency }, "Quantity":11.6, //datatype:float, description: Transaction billing quantity, unit: is defined in object TariffTransactionTypePrice.PricePerUnit "Amount":10.0, //datatype:float, description: Transaction amount with tax "AmountWithoutTax":8.0, //datatype:float, description: Transaction amount without tax "CurrencyCode":"EUR" //datatype:string, description: Instance currency } ] **************************************************************************************************************************************************** ******************************************************* Object type: Reservation, Object version: 1.0 ********************************************** **************************************************************************************************************************************************** { "ReervationId":1212, //datatype:int64, description: Ocean unique id of the charging reservation "Number":"R-2019/143", //datatype:string, description: Ocean friendly id of the charging reservation "User": { "Id":123, //datatype:int32, description: Ocean unique id of the user "Email":"john.doe@company.com", //datatype:string, description: User email "ExternalCode":"ADDQW12123232317845", //datatype:string, description: External id of the user (normally ERP id) }, "PlannedFrom":"2019-02-01T12:00:00.000Z", //datatype:datetime, description: Reservation planned start "PlannedTo":"2019-02-01T12:00:00.000Z" //datatype:datetime, description: Reservation planned stop "ReservationSource": { //enumeration:1-local EMSP mobile app,2-reservation API,3-roaming platform,4-manually entered by CSO operator "Id":1, //datatype:int16, description: reservation source id "Title":"local EMSP mobile app" //datatype:string, description: reservation source title }, "Roaming": { "Type": { //datatype:int16, enumeration: 0-Local sessions - Our users on our infrastructure, 1-CPO - others roaming on our infrastructure, 2-EMSP - our users on roaming infractructure, 3-CPO&EMSP - our users roaming or other users roaming on our infrastructure "Id":0, //datatype:int16, description: roaming type id "Title":"0-Local sessions" //datatype:string, description: reservation type title }, "RoamingActor": { "Id":null, //datatype:int32, description: Ocean unique id of the roaming platform actor/partner "Code":null //datatype:string, description: Unique code of the roaming actor on a specific platform } }, "Location": { "Id":7875, //datatype:int32, description: Ocean unique id of the charging location "FriendlyCode":"SI*ETR00012", //datatype:string, description: Ocean friendly code of the location "CityName":"Grosuplje", //datatype:string, description: Location address: city "PostNumber":"1290", //datatype:string, description: Location address: post number "StreetName":"Pod jelšami", //datatype:string, description: Location address: street name "HouseNumber":"6", //datatype:string, description: Location address: house number "ChargePoint":{ "Id":67675, //datatype:int32, description: Ocean unique id of the charger "SerialNumber":"193400012", //datatype:string, description: Cahrger serial number. Normally written on charger faceplate "FriendlyCode":"SI*ETR00012-01", //datatype:string, description: Ocean friendly code of the charge point "ExternalCode":"243235654", //datatype:string, description: External EVSE code. Normally entered into Ocean from ERP system "Evse":{ "Id":765567, //datatype:int32, description: Ocean unique id of the evse "FriendlyCode":"SI*ETR00012-01-02", //datatype:string, description: Ocean friendly code of the evse "ExternalCode":"243235654-1", //datatype:string, description: External EVSE code. Normally entered into Ocean from ERP system "Connector":{ "Id":765589, //datatype:int32, description: Ocean unique id of the connector "FriendlyCode":"SI*ETR00012-01-02-1", //datatype:string, description: Ocean friendly code of the connector } } } } } **************************************************************************************************************************************************** ******************************************************* Object type: MaintenanceTask, Object version: 1.0 ****************************************** **************************************************************************************************************************************************** { "TaskId":12121, //datatype:int64, description: Ocean unique id of maintenance task "Number":"M-2018/20", //datatype:string, description: Ocean friendly id of the user request "Title":"Broken charger", //datatype:string, description: Maintenance task title "InputDescription":"Socket lid is not closing...", //datatype:string, description: Maintenance task description "InsertedByOperator": { //logic: object properties will have null values if user request will not be manually inserted by operator (usually operator inserts user request at telephone call) "Id":18, //datatype:int32, description: Ocean unique id of the operator "Email":"operator@cpo.com" //datatype:string, description: Operator email }, "ResponsibleOperator": { "Id":18, //datatype:int32, description: Ocean unique id of the operator "Email":"operator@cpo.com" //datatype:string, description: Operator email }, "Watchers":"worker1@cpo.com,worker2@cpo.com" //datatype:string, description: Watchers emails "TaskStatus": { //enumeration:1-In preparation,2-Assigned to new assignee,3-Denied by assignee,4-Accepted by working group waiting for execution,5-Execution in progress,6-Canceled,7-Finished,8-Pending "Id":1, //datatype:int16, description: task status id "Title":"In preparation" //datatype:string, description: task status title }, "TaskPriority": { //enumeration:1-Low,2-Medium,3-High,4-Urgent "Id":1, //datatype:int16, description: task priority id "Title":"Low" //datatype:string, description: task priority title }, "TaskProblemCategory": { "Id":12, //datatype:int32, description: Ocean unique id of the category. You configure categories by your own in instance settings. Please check ID's there "Title":"Charger failure" //datatype:string, description: Title of category. You configure categories by your own in instance settings. Please check titles there }, "TaskProblemCategoryType": { "Id":17, //datatype:int32, description: Ocean unique id of the category type. You configure category types by your own in instance settings. Please check ID's there "Title":"Lid broken" //datatype:string, description: Title of category type. You configure category types by your own in instance settings. Please check titles there }, "PlannedFrom":"2019-02-01T12:00:00.000Z", //datatype:datetime, description: Maintenance planned start "PlannedTo":"2019-02-01T12:00:00.000Z", //datatype:datetime, description: Maintenance planned stop "TicketRelatedTo": { //logic:ticket is always related to one or more entities. Entities will have property values null if not linked to ticket. Possible entities are: reservation, session, invoice, user identification, user contract, charging location "UserRequest": { "Id":12213, //datatype:int64, description: Ocean unique id of the user request/ticket. To link maintenance task with 1st level support "Number":"T-2019/22" //datatype:string, description: Ocean friendly id of the user's request }, "ChargingReservation": { "Id":1212, //datatype:int64, description: Ocean unique id of the charging reservation "Number":"R-2019/143", //datatype:string, description: Ocean friendly id of the charging reservation "PlannedFrom":"2019-02-01T12:00:00.000Z", //datatype:datetime, description: Reservation planned start "PlannedTo":"2019-02-01T12:00:00.000Z" //datatype:datetime, description: Reservation planned stop }, "ChargingSession": { "Id":34345, //datatype:int64, description: Ocean unique id of the charging session "Number":"S-2019/12323", //datatype:string, description: Ocean friendly id of the charging session "ChargingFrom":"2019-02-01T12:00:00.000Z", //datatype:datetime, description: Session start time "ChargingTo":"2019-02-01T12:00:00.000Z" //datatype:datetime, description: Session end time }, "Invoice": { "Id":232, //datatype:int64, description: Ocean unique id of the invoice "Number":"I-2018/1222" //datatype:string, description: Ocean friendly id of the invoice }, "UserIdentification": { "Id":12124, //datatype:int32, description: Ocean unique id of the identification "Type":{ //enumeration: 1-RFID card standard format,2-RFID card reversed format,3-User account ID by IEC1518,4-Vehicle ID by IEC1518,5-EVCOID Vehicle contract ID by IEC1518,6-ISO7812 Credit Card ID,7-Credit Card Transaction ID,8-Mobile application,9-Web application,10-Local ID generated by charge point,11-Local ID - no format defined,12-Phone number for SMS authentication,13-Backend operator ID,14-PIN code,15-Roaming API,16-RFID card encrypted SHA-1,17-RFID card encrypted SHA-2,18-RFID card encrypted MD5 "Id":1, //datatype:int16, description: Ocean unique id of the identification type "Title":"RFID card standard format" //datatype:string, description: Title of identification type }, "Number":"PASS-12334343", //datatype:string, description: External identification code(Example: number written on identification card) "Code":"C2AA1218" //datatype:string, description: Unique hidden identification code (Example: RFID card code) }, "UserContract": { "Id":12123, //datatype:int32, description: Ocean unique id of the user contract "Type":{ //enumeration: contract types are defined by Ocean administrator. Please check CRM->Contract types to get ID's "Id":6, //datatype:int32, description: Ocean unique id of the user contract type "Title":"Subscriber Green" //datatype:string, description: User contract type title }, "Code":"SG-2017/1212" //datatype:string, description: External code of user contract. Normally is generated by ERP system and stord in Ocean }, "Location": { //logic>ticket can be linked to one of the levels. If linke to connector then all parent objects are send: location, charge point and evse "Id":7875, //datatype:int32, description: Ocean unique id of the charging location "FriendlyCode":"SI*ETR00012", //datatype:string, description: Ocean friendly code of the location "CityName":"Grosuplje", //datatype:string, description: Location address: city "PostNumber":"1290", //datatype:string, description: Location address: post number "StreetName":"Pod jelšami", //datatype:string, description: Location address: street name "HouseNumber":"6", //datatype:string, description: Location address: house number "ChargePoint":{ "Id":67675, //datatype:int32, description: Ocean unique id of the charger "SerialNumber":"193400012", //datatype:string, description: Charger serial number. Normally written on charger faceplate "ExternalCode":"243235654", //datatype:string, description: External EVSE code. Normally entered into Ocean from ERP system "Evse":{ "Id":765567, //datatype:int32, description: Ocean unique id of the evse "FriendlyCode":"SI*ETR00012-01-02", //datatype:string, description: Ocean friendly code of the evse "ExternalCode":"243235654-1", //datatype:string, description: External EVSE code. Normally entered into Ocean from ERP system "Connector":{ "Id":765589, //datatype:int32, description: Ocean unique id of the connector "FriendlyCode":"SI*ETR00012-01-02-1", //datatype:string, description: Ocean friendly code of the connector } } } } } } **************************************************************************************************************************************************** ******************************************************* Object type: ConnectorStatus, Object version: 1.0 ****************************************** **************************************************************************************************************************************************** { "Timestamp":"2022-04-15T06:41:25.043Z" //datatype:datetime, description: Charger timestamp of event. If charger does not send timestamp, then Ocean generates timestamp when it receives ocpp status notification message "InstanceId":2, //datatype:int32, description: Ocean instance id. Every tennant has unique id "UserId":123, //datatype:int32, description: Ocean unique id of the user "ChargingSession": { "Id":34345, //datatype:int64, description: Ocean unique id of the charging session }, "Evse": { "Id":765567, //datatype:int32, description: Ocean unique id of the evse "FriendlyCode":"SI*ETR00012-01-02", //datatype:string, description: Ocean friendly code of the evse "ExternalCode": "243235654-1", //datatype:string, description: External EVSE code. Normally entered into Ocean from ERP system "Connector": { "Id":765589, //datatype:int32, description: Ocean unique id of the connector "Code":"SI*ETR00012-01-02-1", //datatype:string, description: Ocean friendly code of the connector "CurrentStatusId":2, //datatype:int16, enumeration: 0-unknown/out of communication,1-unavailable,2-in fault,3-available,4-reserved,5-occupied,6-finishing,7-out of working time,8-newly inserted, not connected yet,9-preparing,10-suspended EVSE,11-suspended EV "PreviousStatusId":1 //datatype:int16, enumeration: 0-unknown/out of communication,1-unavailable,2-in fault,3-available,4-reserved,5-occupied,6-finishing,7-out of working time,8-newly inserted, not connected yet,9-preparing,10-suspended EVSE,11-suspended EV } "ChargePoint": { "Id":67675, //datatype:int32, description: Ocean unique id of the charger "ExternalCode":"243235654", //datatype:string, description: External EVSE code. Normally entered into Ocean from ERP system "SerialNumber":"193400012" //datatype:string, description: Charger serial number. Normally written on charger faceplate }, "Location": { "LocationId":7875 //datatype:int32, description: Ocean unique id of the charging location } } } **************************************************************************************************************************************************** ******************************************************* Object type: InvoiceDocument, Object version: 1.0 ****************************************** **************************************************************************************************************************************************** { "InstanceId":2, //datatype:int32, description: Ocean instance id. Every tennant has unique id "UserId":123, //datatype:int32, description: Ocean unique id of the user "InvoiceTypeId": //datatype:int32, description: 1-Postpayment monthly invoice,2-User account top invoice,3-Single session invoice based on preauthorization,4-Single reservation invoice based on preauthorization,5-Purchase of RFID prepayment cards "InvoicePeriodFrom":"2019-01-01T12:00:00.000Z", //datatype:datetime, description: Invoice period from "InvoicePeriodTo":"2019-02-01T12:00:00.000Z", //datatype:datetime, description: Invoice period to "ChargingSession": { //logic: values are not null only in the case that session is directly linked with invoice- normally for Ad-Hoc charging "Id":34345, //datatype:int64, description: Ocean unique id of the charging session "ChargingFrom":"2019-02-01T12:00:00.000Z" //datatype:datetime, description: Session start time } } **************************************************************************************************************************************************** ******************************************************* Object type: UserRequestStatus, Object version: 1.0 **************************************** **************************************************************************************************************************************************** { "InstanceId":2, //datatype:int32, description: Ocean instance id. Every tennant has unique id "UserRequestId":2, //datatype:int32, description: Ocean instance id. Every tennant has unique id "PreviousUserRequestStatusId":1, //datatype:int16, description: Ticket status before the change , enumeration:1New request,2-Accepted by operator,3-More by operator,4-More by user,5-Finished,6-Seen by operator,7-Seen by user,8-Ignored by operator,9-Released for another operator,10-Reopened by operator,11-Send to 2nd level support,12-Response by 2nd level support "NewUserRequestStatusId":2, //datatype:int16, description: Ticket status after change , enumeration:1New request,2-Accepted by operator,3-More by operator,4-More by user,5-Finished,6-Seen by operator,7-Seen by user,8-Ignored by operator,9-Released for another operator,10-Reopened by operator,11-Send to 2nd level support,12-Response by 2nd level support "ChangedByOperator":{ "Id":15 //datatype:int32, description: Ocean unique id of the operator that did change "Email":"operator1@company.com", //datatype:string, description: Official name of the business partner }, "Message":"Passing this task to expert" //datatype:string, description: Description of new step which changed status } **************************************************************************************************************************************************** ******************************************************* Object type: UserRequestStatusOperatorResponse, Object version: 1.0 ********************************* **************************************************************************************************************************************************** { "InstanceId":2, //datatype:int32, description: Ocean instance id. Every tennant has unique id "UserId":123, //datatype:int32, description: Ocean unique id of the user "UserRequestId":2, //datatype:int32, description: Ocean instance id. Every tennant has unique id "UserRequestStatusId":1, //datatype:int16, description: Ticket status, enumeration:1New request,2-Accepted by operator,3-More by operator,4-More by user,5-Finished,6-Seen by operator,7-Seen by user,8-Ignored by operator,9-Released for another operator,10-Reopened by operator,11-Send to 2nd level support,12-Response by 2nd level support "Message":"It is just fine" //datatype:string, description: Content of operator message to user } **************************************************************************************************************************************************** ******************************************************* Object type: MaintenanceTaskStatus, Object version: 1.0 ************************************ **************************************************************************************************************************************************** { "InstanceId":2, //datatype:int32, description: Ocean instance id. Every tennant has unique id "TaskId":12121, //datatype:int64, description: Ocean unique id of maintenance task "PreviousTaskStatusId":1, //datatype:int16, description: Task status before the change , enumeration:1-In preparation,2-Assigned to new assignee,3-Denied by assignee,4-Accepted by working group waiting for execution,5-Execution in progress,6-Canceled,7-Finished,8-Pending "NewTaskStatusId":2, //datatype:int16, description: Task status after change , enumeration:1-In preparation,2-Assigned to new assignee,3-Denied by assignee,4-Accepted by working group waiting for execution,5-Execution in progress,6-Canceled,7-Finished,8-Pending "ResponsibleOperator": { "Id":18, //datatype:int32, description: Ocean unique id of the operator "Email":"operator@cpo.com" //datatype:string, description: Operator email }, "AssignedOperator": { //logic:will be different when existing operator will change task owner "Id":18, //datatype:int32, description: Ocean unique id of the operator "Email":"operator@cpo.com" //datatype:string, description: Operator email }, "Watchers":"worker1@cpo.com,worker2@cpo.com" //datatype:string, description: Watchers emails } **************************************************************************************************************************************************** ******************************************************* Object type: VehicleIsFull, Object version: 1.0 ******************************************** **************************************************************************************************************************************************** { "InstanceId":2, //datatype:int32, description: Ocean instance id. Every tennant has unique id "UserId":123, //datatype:int32, description: Ocean unique id of the user "ChargingSession": { "Id":34345, //datatype:int64, description: Ocean unique id of the charging session "ActiveEnergyConsumed":122.2, //datatype:float, description: Active energy consumption during charging, unit: kWh "StateOfCharge":86.2 //datatype:float, description: State of charge, unit: % }, "Evse": { "Id":765567, //datatype:int32, description: Ocean unique id of the evse "Connector": { "Id":765589 //datatype:int32, description: Ocean unique id of the connector }, "ChargePoint": { "Id":67675 //datatype:int32, description: Ocean unique id of the charger }, "Location": { "LocationId":7875 //datatype:int32, description: Ocean unique id of the charging location } } } **************************************************************************************************************************************************** ******************************************************* Object type: UserPrepaymentAccountEmpty, Object version: 1.0 ******************************* **************************************************************************************************************************************************** { "InstanceId":2, //datatype:int32, description: Ocean instance id. Every tennant has uniqe id "UserId":123, //datatype:int32, description: Ocean unique id of the user "CurrentAccountStatus":12.3, //datatype:float, description: User current account status(funds on account), unit: instance currency "MinAccountAmountToStartCharging":1.5 //datatype:float, description: System settings - minimum amount to start charging, unit: instance currency } **************************************************************************************************************************************************** ******************************************************* Object type: UserStatus, Object version: 1.0 *********************************************** **************************************************************************************************************************************************** { "InstanceId":2, //datatype:int32, description: Ocean instance id. Every tennant has unique id "UserId":123, //datatype:int32, description: Ocean unique id of the user "Email":"user1@cpo.com", //datatype:string, description: User email "ExternalCode":"ASAS235667FG", //datatype:string, description: User external code (Example from ERP) "ExecutedTime":"2019-02-01T12:00:00.000Z", //datatype:datetime, description: Manipulation timestamp "ExecutedByOperatorId":1 //datatype:int32, description: Ocean unique id of the operator who maniplulated with user status } **************************************************************************************************************************************************** ******************************************************* Object type: UserPayerStatus, Object version: 1.0 ****************************************** **************************************************************************************************************************************************** { "InstanceId":2, //datatype:int32, description: Ocean instance id. Every tennant has unique id "UserPayerId":123, //datatype:int32, description: Ocean unique id of the user payer "Email":"userpayer1@cpo.com", //datatype:string, description: User payer email "ExternalCode":"WWAS235667FG", //datatype:string, description: User payer external code (Example from ERP) "ExecutedTime":"2019-02-01T12:00:00.000Z", //datatype:datetime, description: Manipulation timestamp "ExecutedByOperatorId":1 //datatype:int32, description: Ocean unique id of the operator who maniplulated with user payer status } **************************************************************************************************************************************************** ******************************************************* Object type: ChargingPreference, Object version: 1.0 *************************************** **************************************************************************************************************************************************** { "InstanceId":2, //datatype:int32, description: Ocean instance id. Every tennant has unique id "ChargePointId":67675, //datatype:int32, description: Ocean unique id of the charger "EvseId":123, //datatype:int32, description: Ocean unique id of the evse "ConnectorId":123, //datatype:int32, description: Ocean unique id of the connector "ChargingSessionId":34345, //datatype:int64, description: Ocean unique id of the charging session "Timestamp":"2019-02-01T12:00:00.000Z", //datatype:datetime, description: Timestamp of collected charging preference information "PlannedDepartureTime":"2019-02-01T18:00:00.000Z", //datatype:datetime, description: Timestamp when user is planning to leave "SelectedChargingMode":"Fast", //datatype:string, enumeration: Fast, Smart "NumberOfPhases":3, //datatype:int16, enumeration: null - when DC or undefined,1-Single phase,3-Three phase "MinCurrent":6.0, //datatype:float, description: minimum charging current - based on ev and evse properties "MaxCurrent":32.0, //datatype:float, description: maximum charging current - based on ev and evse properties "RequestedEnergy":6.0, //datatype:float, description: requested energy - by user or vehicle "BatteryCapacity":22.0, //datatype:float, description: vehicle battery capacity - if known "StateOfCharge":12.5, //datatype:float, description: battery status when connected - if known "AllowPowerManagement":null, //datatype:int16, description: null - unknwon, 0-user does not allow power mgm, 1 - user allows power mgm "AllowDischarging":null, //datatype:int16, description: null - unknwon, 0-user does not allow power mgm, 1 - user allows power mgm "PreferenceSource":"Driver", //datatype:string, enumeration: Driver, Calculated, Vehicle. Defines from which source planned departure time has been inserted "PreferenceRequestedEnergySource":"Calculated", //datatype:string, enumeration: Driver, Calculated, Vehicle. Defines from which source requested energy has been inserted "UserId":123, //datatype:int32, description: Ocean unique id of the user "IdentificationId":12124, //datatype:int32, description: Ocean unique id of the identification used by user } **************************************************************************************************************************************************** ******************************************************* Object type: SystemEvent, Object version: 1.0 *************************************** **************************************************************************************************************************************************** { "InstanceId":2 //datatype:int32, description: Ocean instance id. Every tennant has unique id ,"LocationId":7875 //datatype:int32, description: Ocean unique id of the location of charger ,"ChargePointId":67675 //datatype:int32, description: Ocean unique id of the charger ,"EvseId":345666 //datatype:int32, description: Ocean unique id of the evse ,"ConnectorId":765589 //datatype:int32, description: Ocean unique id of the connector ,"ChargingSessionId":124343 //datatype:int64, description: Ocean unique id of the charging session ,"ManipulationOperatorId":1 //datatype:int32, description: Ocean unique id of the operator who triggered event ,"Description":"This is a detail description of the event" //datatype:string, description: Additional description of the event. It can be empty ,"ServerTimestamp":"2019-02-01T18:00:00.000Z" //datatype:datetime, description: Timestamp when server received event ,"ChargerTimestamp":"2019-02-01T18:00:00.000Z" //datatype:datetime, description: Timestamp when event was generated on device/charger ,"ChargerSpecific": { //charger speficic data: send only when charger sends some more information "VendorErrorCode:"0x2ED" //datatype:string, description: Vendor error code - every vendor has it's own set of error codes ,"EventInfo:"Emergency button pressed" //datatype:string, description: Additional description of event reported. Charger reports this in Info field of status notification } ,"Type: { "Id":58 //datatype:int32, description: Ocean unique id of the event type. There is a list of aprox 300 event types in Ocean and new are added constantly ,"Title":"Emergency button pressed" //datatype:string, description: Ocean description of even type ,"Source": { "Id":2 //datatype:int32, description: Ocean unique id of the event source ,"Title":"Charger" //datatype:string, description: Ocean description of even source } ,"Priority": { "Id":1 //datatype:int32, description: Ocean unique id of the event priority ,"Title":"Error" //datatype:string, description: Ocean description of even priority } ,"Category": { "Id":"4" //datatype:int32, description: Ocean unique id of the event category. Event types are divided into several categories ,"Title":"Charger operation" //datatype:string, description: Ocean description of even category } } } **************************************************************************************************************************************************** ******************************************************* Object type: CustomerRegistrationPending, Object version: 1.0 *************************************** **************************************************************************************************************************************************** { "InstanceId":2, //datatype:int32, description: Ocean instance id. Every tennant has unique id ,"UserRegistrationTypeId":2 //datatype:int32, description: Ocean unique id of the registration type. In this case you will always get 2 - which is subscriber registration, which requires some special checking ,"UserFirstName":"John" //datatype:string, description: First name of the user who will use new account ,"UserLastName":"Dear" //datatype:string, description: Last name of the user who will use new account ,"UserEmail":"john.dear@oldies.com" //datatype:string, description: Email of the user who will use new account ,"UserPayerCompanyName":"Oldies co." //datatype:string, description: Company name of the payer (customer). This could also be empty if payer is a physical person ,"UserPayerFirstName":"Mark" //datatype:string, description: First name of the payer (customer) who will be paying for services. In the case of the company, contact person can be here. ,"UserPayerLastName":"Boss" //datatype:string, description: Last name of the payer (customer) who will be paying for services. In the case of the company, contact person can be here. ,"ContractTypeId":22 //datatype:int32, description: Ocean unique id of the user contract type ,"RegistrationTime":"2021-04-15T18:00:00.000Z" //datatype:datetime, description: Timestamp when registration was submited } **************************************************************************************************************************************************** ******************************************************* Object type: ChargingSessionStatusChanged, Object version: 1.0 *************************************** **************************************************************************************************************************************************** { "InstanceId":2 //datatype:int32, description: Ocean instance id. Every tennant has unique id ,"UserId":123 //datatype:int32, description: Ocean unique id of the user ,"ChargingSessionId":34345 //datatype:int64, description: Ocean unique id of the charging session ,"ChargingSessionActiveEnergyConsumed":6.0 //datatype:float, description: Energy consumed by session at the time when session stopped } **************************************************************************************************************************************************** ******************************************************* Object type: TopupTransaction, Object version: 1.0 *************************************** **************************************************************************************************************************************************** { "TransactionId":2 //datatype:int64, description: Payment transaction unique id ,"TransactionNumber":"T-2021/12434" //datatype:string, description: Ocean friendly code of transaction. Number starts from 1 every year ,"ExternalMoneyUploadCode":"AS3243-34234-CCA1" //datatype:string, description: External code of transaction. This is normally used when topup is executed through API, which is normally followed by bank transaction ,"ExternalMoneyUploadDescription":"National payment processor" //datatype:string, description: Details of topup, where operator can add more information about example: bank transaction, etc. ,"User": { "Id":123 //datatype:int32, description: Ocean unique id of the user ,"FirstName":"John" //datatype:string, description: User first name ,"LastName":"Doe" //datatype:string, description: User last name ,"IsCompany":1 //datatype:int16, enumeration: 0-person, 1-company ,"CompanyName":"Company inc." //datatype:string, description: User company name if user is company ,"Email":"john.doe@company.com" //datatype:string, description: User email ,"GSMNumber":"3423423423" //datatype:string, description: User mobile number ,"ExternalCode":"ADDQW12123232317845" //datatype:string, description: External id of the user (normally ERP id) ,"TaxNumber":"SI-1233423423" //datatype:string, description: User tax number ,"UICulture":"sl-SI" //datatype:string, description: User UI culture based on ISO } ,"UserPayer": { "Id":128 //datatype:int32, description: Ocean unique id of the user payer ,"FirstName":"Fat" //datatype:string, description: Payer first name ,"LastName":"Owner" //datatype:string, description: Payer last name ,"IsCompany":1 //datatype:int16, enumeration: 0-person, 1-company ,"CompanyName":"Company inc." //datatype:string, description: Payer company name if user is company ,"Email":"finance@company.com" //datatype:string, description: Payer email ,"ExternalCode":"ADDQW12123232317845" //datatype:string, description: External id of the payer (normally ERP id) ,"TaxNumber":"SI-1233423423" //datatype:string, description: Payer tax number ,"UICulture":"sl-SI" //datatype:string, description: Payer UI culture based on ISO } ,"Purchase": { "PaymentProviderReference":"132345345654" //datatype:string, description: In the case that purchase has been processed through payment provider, we get a reference to payment provider purchase id here } ,"PaymentTypeId":1 //enumeration: 1-PERUSAGE,2-PERSESSIONQUANTATIES,3-SUBSCRIPTION,4-PERUSAGE,5-PAYASYOUGO ,"Timestamp":"2019-02-01T12:00:00.000Z" //datatype:datetime, description: Timestamp of money transaction ,"Direction":"UP" //enumeration: UP- Money refunded or topped up on account,DOWN - money decreased from account ,"TransactionType": { //enumeration: 1-Reservation fee,2-Access fee,3-Parking time fee [hour],4-Max charging power fee,5-Consumed energy fee,6-Charging time fee [hour],7-Parking time fee [min],8-Charging time fee [min],9-Unexecuted reservation fee,10-Monthly subscription,11-RFID card cost,12-Upload funds on user account "Id":2 //datatype:int16, description: Ocean unique id of the transaction type ,"Title":"Access fee" //datatype:string, description: Transaction type title ,"Unit":null //datatype:string, description: Transaction type title } ,"Quantity":11.6 //datatype:float, description: Transaction quantity, unit: is defined in object TariffTransactionTypePrice.PricePerUnit ,"Amount":12.1 //datatype:float, description: Transaction amount with tax ,"AmountWithoutTax":10.0 //datatype:float, description: Transaction amount without tax ,"CurrencyCode":"EUR" //datatype:string, description: Instance currency ,"BalanceMoneyBeforeTransaction":1.21 //datatype:float, description: Prepayment account status (funds on account) with tax before topup transaction ,"BalanceMoneyWithoutTaxBeforeTransaction":1.0 //datatype:float, description: Prepayment account status (funds on account) without tax before topup transaction ,"BalanceMoneyAfterTransaction":13.31 //datatype:float, description: Prepayment account status (funds on account) with tax after topup transaction ,"BalanceMoneyWithoutTaxAfterTransaction":11.0 //datatype:float, description: Prepayment account status (funds on account) without tax after topup transaction } **************************************************************************************************************************************************** ******************************************************* Object type: ManualTransaction, Object version: 1.0 *************************************** **************************************************************************************************************************************************** { "TransactionId":3 //datatype:int64, description: Payment transaction unique id ,"TransactionNumber":"T-2021/12434" //datatype:string, description: Ocean friendly code of transaction. Number starts from 1 every year ,"ExternalMoneyUploadCode":"AS3243-34234-CCA1" //datatype:string, description: External code of transaction. This is normally used when topup is executed through API, which is normally followed by bank transaction ,"ExternalMoneyUploadDescription":"National payment processor" //datatype:string, description: Details of topup, where operator can add more information about example: bank transaction, etc. ,"OperatorDescription":"Returning funds since customer has not executed session S-2020/2323 successfully" //datatype:string, description: Operator description why this manual balance has been executed ,"ManuallyInsertedByOperator":"frenk.operator@mybrand.com" //datatype:string, description: Email (unique identifier) of operator who has executed this manual balance action ,"User": { "Id":123 //datatype:int32, description: Ocean unique id of the user ,"FirstName":"John" //datatype:string, description: User first name ,"LastName":"Doe" //datatype:string, description: User last name ,"IsCompany":1 //datatype:int16, enumeration: 0-person, 1-company ,"CompanyName":"Company inc." //datatype:string, description: User company name if user is company ,"Email":"john.doe@company.com" //datatype:string, description: User email ,"GSMNumber":"3423423423" //datatype:string, description: User mobile number ,"ExternalCode":"ADDQW12123232317845" //datatype:string, description: External id of the user (normally ERP id) ,"TaxNumber":"SI-1233423423" //datatype:string, description: User tax number ,"UICulture":"sl-SI" //datatype:string, description: User UI culture based on ISO } ,"UserPayer": { "Id":128 //datatype:int32, description: Ocean unique id of the user payer ,"FirstName":"Fat" //datatype:string, description: Payer first name ,"LastName":"Owner" //datatype:string, description: Payer last name ,"IsCompany":1 //datatype:int16, enumeration: 0-person, 1-company ,"CompanyName":"Company inc." //datatype:string, description: Payer company name if user is company ,"Email":"finance@company.com" //datatype:string, description: Payer email ,"ExternalCode":"ADDQW12123232317845" //datatype:string, description: External id of the payer (normally ERP id) ,"TaxNumber":"SI-1233423423" //datatype:string, description: Payer tax number ,"UICulture":"sl-SI" //datatype:string, description: Payer UI culture based on ISO } ,"PaymentTypeId":1 //enumeration: 1-PERUSAGE,2-PERSESSIONQUANTATIES,3-SUBSCRIPTION,4-PERUSAGE,5-PAYASYOUGO ,"Timestamp":"2019-02-01T12:00:00.000Z" //datatype:datetime, description: Timestamp of money transaction ,"Direction":"UP" //enumeration: UP- Money refunded or topped up on account,DOWN - money decreased from account ,"TransactionType": { //enumeration: 1-Reservation fee,2-Access fee,3-Parking time fee [hour],4-Max charging power fee,5-Consumed energy fee,6-Charging time fee [hour],7-Parking time fee [min],8-Charging time fee [min],9-Unexecuted reservation fee,10-Monthly subscription,11-RFID card cost,12-Upload funds on user account "Id":2 //datatype:int16, description: Ocean unique id of the transaction type ,"Title":"Access fee" //datatype:string, description: Transaction type title ,"Unit":null //datatype:string, description: Transaction type title } ,"Quantity":11.6 //datatype:float, description: Transaction quantity, unit: is defined in object TariffTransactionTypePrice.PricePerUnit ,"Amount":12.1 //datatype:float, description: Transaction amount with tax ,"AmountWithoutTax":10.0 //datatype:float, description: Transaction amount without tax ,"CurrencyCode":"EUR" //datatype:string, description: Instance currency ,"BalanceMoneyBeforeTransaction":1.21 //datatype:float, description: Prepayment account status (funds on account) with tax before topup transaction ,"BalanceMoneyWithoutTaxBeforeTransaction":1.0 //datatype:float, description: Prepayment account status (funds on account) without tax before topup transaction ,"BalanceMoneyAfterTransaction":13.31 //datatype:float, description: Prepayment account status (funds on account) with tax after topup transaction ,"BalanceMoneyWithoutTaxAfterTransaction":11.0 //datatype:float, description: Prepayment account status (funds on account) without tax after topup transaction } **************************************************************************************************************************************************** ******************************************************* Object type: InvoiceDocumentPendingToBeGenerated, Object version: 1.0 *************************************** **************************************************************************************************************************************************** { "InvoiceId":23428943 //datatype:int64, description: Ocean invoice unique id } **************************************************************************************************************************************************** ******************************************************* Object type: NewChargePointRequestedBySubCPO, Object version: 1.0 *************************************** **************************************************************************************************************************************************** { "Location": { "Id":7875, //datatype:int32, description: Ocean unique id of the charging location "FriendlyName":"City hall parking 1", //datatype:string, description: Ocean friendly name of the location "FriendlyCode":"SI*ETR00012", //datatype:string, description: Ocean friendly code of the location "Address":"Pod jelšami 6, 1290 Grosuplje", //datatype:string, description: Location address: composed full address (street, house number, postal code, city) } ,"LocationCluster": { "Id":null, //datatype:int32, description: Ocean unique id of the charging location cluster. This one normally empty by default } ,"ChargePoint": { "Id":45354, //datatype:int32, description: Ocean unique id of the new charger "FriendlyCode":"SI*ETR00012-01", //datatype:string, description: Ocean friendly code of the new charger (code is assigned automatically) "ModelName":"Etrel INCH DUO", //datatype:string, description: Name of the selected charger model } ,"SubCPO": { "Name":"Lidl d.o.o.", //datatype:string, description: Name (company name) of the partner requesting new charger "OperatorEmail":"Etrel INCH DUO", //datatype:string, description: Email of Sub CPO operator posting new charger request } ,"InstanceId":2, //datatype:int32, description: Ocean instance id. Every tennant has unique id } **************************************************************************************************************************************************** ******************************************************* Object type: MaintenanceTaskComment, Object version: 1.0 *************************************** **************************************************************************************************************************************************** { "InstanceId":2, //datatype:int32, description: Ocean instance id. Every tennant has unique id ,"TaskId":343434 //datatype:int32, description: Payment transaction unique id ,"Number":"M-2021/12434" //datatype:string, description: Ocean friendly code of transaction. Number starts from 1 every year ,"Title":"Broken socket on connector 2" //datatype:string, description: Maintenance task description ,"TaskStatus": { //enumeration:1-In preparation,2-Assigned to new assignee,3-Denied by assignee,4-Accepted by working group waiting for execution,5-Execution in progress,6-Canceled,7-Finished,8-Pending "Id":1, //datatype:int16, description: task status id "Title":"In preparation" //datatype:string, description: task status title } ,"ResponsibleOperator": { "Id":23, //datatype:int32, description: Ocean unique id of the operator who is responsible for the maintenance task "Email":"frenk.operator@mybrand.com", //datatype:string, description: Email of operator who is responsible for the maintenance task } ,"InsertedByOperator": { "Id":26, //datatype:int32, description: Ocean unique id of the operator who inserted task comment "Email":"joe.operator@mybrand.com", //datatype:string, description: Email of operator who inserted task comment } ,"Watchers":"leon.operator@mybrand.com,mark.operator@mybrand.com" //datatype:string, description: Other operators watching this task ,"MessagingRecepients":"leon.operator@mybrand.com,mark.operator@mybrand.com" //datatype:string, description: Other operators who where informed about new comment posted ,"Comment":"Socket has not been broken. Someone has put wooden part into it" //datatype:string, description: Comment content. Currently only plain text is supported (no HTML) } **************************************************************************************************************************************************** ******************************************************* Object type: ChargingSessionVehicleFull, Object version: 1.0 *************************************** **************************************************************************************************************************************************** { "InstanceId":2, //datatype:int32, description: Ocean instance id. Every tennant has unique id ,"UserId":123 //datatype:int32, description: Ocean unique id of the user who is charging at the moment ,"ChargingSession": { "Id":12323 //datatype:int64, description: Ocean unique id of the charging session curently running ,"ActiveEnergyConsumed":12.67 //datatype:float, description: Consumed energy durning charging, up to the time when vehicle 80% full detected ,"StateOfCharge":81 //datatype:float, description: SOC when discovered that vehicle 80% full } ,"Evse": { "Id":6767 //datatype:int32, description: Ocean unique id of evse where charging session is running ,"Connector":{ "Id":5656 //datatype:int32, description: Ocean unique id of connector where charging session is running } ,"ChargePoint":{ "Id":5656 //datatype:int32, description: Ocean unique id of charger where charging session is running } ,"Location":{ "LocationId":5656 //datatype:int32, description: Ocean unique id of location where charging session is running } } } **************************************************************************************************************************************************** ******************************************************* Object type: ChargePointChange, Object version: 1.0 *************************************** **************************************************************************************************************************************************** { "Location": { "Id":7875 //datatype:int32, description: Ocean unique id of the charging location ,"FriendlyCode":"SI*ETR00012" //datatype:string, description: Ocean friendly code of the location ,"ExternalCode":"AST-2323-12" //datatype:string, description: External code of location asset (to connect asset with external system like ERP) } ,"LocationCluster": { "Id":4344 //datatype:int32, description: Ocean unique id of the charging location cluster } "ChargePoint": { "Id":123234 //datatype:int32, description: Ocean unique id of the charger ,"FriendlyCode":"SI*ETR00012-01" //datatype:string, description: Ocean friendly code of the charger ,"ExternalCode":"243235654" //datatype:string, description: External charger code. Normally entered into Ocean from ERP system ,"IsSimulator":1 //datatype:int16, description: 1 if charger has been added as simulator ,"SerialNumber":"193400012" //datatype:string, description: Charger serial number. Normally written on charger faceplate ,"Model": { "Id":12 //datatype:int32, description: Ocean unique id of the charger model } } ,"LoadArea": { "Id":676 //datatype:int32, description: Ocean unique id of the load area ,"Code":"LA-2323" //datatype:string, description: Ocean load area code - normally used for communication with external systems } } **************************************************************************************************************************************************** ******************************************************* Object type: LocationChange, Object version: 1.0 *************************************** **************************************************************************************************************************************************** { "Location": { "Id":7875 //datatype:int32, description: Ocean unique id of the charging location ,"FriendlyCode":"SI*ETR00012" //datatype:string, description: Ocean friendly code of the location ,"Address":"Pod jelšami 6, 1290 Grosuplje", //datatype:string, description: Location address: composed full address (street, house number, postal code, city) } ,"LoadArea": { "Id":676 //datatype:int32, description: Ocean unique id of the load area ,"Code":"LA-2323" //datatype:string, description: Ocean load area code - normally used for communication with external systems } } **************************************************************************************************************************************************** ******************************************************* Object type: LocationClusterChange, Object version: 1.0 *************************************** **************************************************************************************************************************************************** { "Location": { "Id":7875 //datatype:int32, description: Ocean unique id of the charging location ,"FriendlyCode":"SI*ETR00012" //datatype:string, description: Ocean friendly code of the location ,"ExternalCode":"AST-2323-12" //datatype:string, description: External code of location asset (to connect asset with external system like ERP) } ,"LocationCluster": { "Id":4344 //datatype:int32, description: Ocean unique id of the charging location cluster ,"ExternalCode":"AST-2323-12-02" //datatype:string, description: External code of location cluster asset (to connect asset with external system like ERP) } } **************************************************************************************************************************************************** ******************************************************* Object type: LaodAreaChange, Object version: 1.0 *************************************** **************************************************************************************************************************************************** { "LoadArea": { "Id":676 //datatype:int32, description: Ocean unique id of the load area ,"Code":"LA-2323" //datatype:string, description: Ocean load area code - normally used for communication with external systems } } **************************************************************************************************************************************************** ******************************************************* Object type: ChargingSessionDispute, Object version: 1.0 *************************************** **************************************************************************************************************************************************** { "ChargingSessionId":12323 //datatype:int64, description: Ocean unique id of the charging session curently running ,"DisputeType":1 //datatype:int16, description: Enumeration:1-remove session from the system and remove costs, 2-dispute only session costs, 3-rerun billing (this one is no longer called from this SP , but from ChargingSessionManualyUpdate) ,"DisputeInvoice":1 //datatype:int16, description: Defines if session dispute also disputes invoice (it it exist of course) ,"Timestamp":"2019-02-01T12:00:00.000Z" //datatype:datetime, description: Timestamp of dispute action ,"DisputeDescription":"Charging session has stopped without a reason" //datatype:string, description: Operator description of session dispute ,"DisputedByOperatorId":23 //datatype:int32, description: Ocean unique id of the operator who have initiated dispute } **************************************************************************************************************************************************** ******************************************************* Object type: ChargingSessionDispute, Object version: 1.0 *************************************** **************************************************************************************************************************************************** { "InstanceId":2, //datatype:int32, description: Ocean instance id. Every tennant has unique id ,"BillingPeriodId":1 //datatype:int32, description: Ocean billing period unique id ,"BillingPeriodFrom":"2021-03-01T12:00:00.000Z" //datatype:datetime, description: Billing period start time ,"BillingPeriodTo":"2021-04-01T12:00:00.000Z" //datatype:datetime, description: Billing period end time ,"PaymentTypeId":1 //datatype:int16, description: Enumeration: 1-Topup funds and pay per usage,2-Topup quantaties and pay per usage,3-Monthly payment subscription package,4-Monthly payment pay per usage,5-Pay as you go ,"InvoiceTypeId":2 //datatype:int16, description: Enumeration: 1-Postpayment monthly invoice,2-User account top up invoice,3-Ad-Hoc session payment invoice,4-Ad-Hoc reservation payment invoice,5-Purchase of RFID prepayment cards,6-Pay as you Go monthly subscription } **************************************************************************************************************************************************** ******************************************************* Object type: SecurityEvent, Object version: 1.0 *************************************** **************************************************************************************************************************************************** { "InstanceId":2 //datatype:int32, description: Ocean instance id. Every tennant has unique id ,"OceanInterfaceId":2 //datatype:int16, description: Enumeration:1-Starfish - Communication with chargers,2-Orca Backoffice operators access,3-Urchin 3rd party API integration,4-Octopus Roaming platforms interfaces,5-Dusky front end,6-Spinner user payer front end,7-Hubject roaming platform ,"EventTypeId":1 //datatype:int32, description: Enumeration (current list):389-Too many failed login attempts,390-API abuse - to many calls - online API,391-API abuse - to many calls - semionline API,392-API abuse - to many calls - occasional API,393-Payment abuse detected - trying to overcome funds preauthorization,394-XSS injection detected,395-SQL injection detected,396-Charger using wrong OCPP Authentication key,397-API abuse - to many calls - mass API ,"IpAddress":"64.32.121.12" //datatype:string, description: IP address from where traffic comes ,"Agent":"Mozilla/5.0" //datatype:string, description: Agent that triggers this traffic ,"Description":"Inject string 'inline' detected" //datatype:string, description: More detail description of event detected ,"IpAddressBlockTypeId":1 //datatype:int16, description: Enumeration: 1-Allow only,2-Block ,"IpAddressBlockReasonId":1 //datatype:int16, description: Enumeration: 1-Manually,2-Automaticaly - suspicius content posted,3-Automaticaly - enormus traffic,4-Automaticaly - non standard usage patterns ,"Timestamp":"2019-02-01T12:00:00.000Z" //datatype:datetime, description: Timestamp of security event detected ,"User": { "Id":5665 //datatype:int32, description: Ocean unique id of the user who triggered traffic (through driver app) } ,"User": { "Id":null //datatype:int32, description: Ocean unique id of the payer who triggered traffic (through fleet app) } ,"Operator": { "Id":null //datatype:int32, description: Ocean unique id of the operator who triggered traffic (through operator portal or urchin interface) } } **************************************************************************************************************************************************** ******************************************************* Object type: TariffSubCPOApproval, Object version: 1.0 *************************************** **************************************************************************************************************************************************** { "Email":"frenk.operator@mybrand.com", //datatype:string, description: Email of Sub CPO operator who has inserted tariff proposal ,"MessagingRecepients":"frenk.operator@mybrand.com" //datatype:string, description: Email of Sub CPO operator who has inserted tariff proposal - used for messaging purposes- let him know about approval result ,"Tariff": { //enumeration: Instance operator defines tariffs. Please check Billing->Tariffs to get tariffs enumeration "Id":11 //datatype:int32, description: Ocean unique id of the tariff. Check tariffs under Billing and payment, where you can also find tariff id ,"Title":"Subscriber AC" //datatype:string, description: Tariff title } ,"SubCPO":{ "Id":324 //datatype:int32, description: Ocean unique id of the business partner (Sub CPO) who has posted the tariff proposal. Please check business partners under Assets->Charge point owners, to get business partner id ,"Title":"Mercator" //datatype:string, description: Ocean business partner name (Sub CPO) who has posted the tariff proposal. ,"Operator":{ "Id":232 //datatype:int32, description: Ocean unique id of operator who has proposed tariff ,"FirstName":"Favio" //datatype:string, description: Operator first name of operator who has proposed tariff ,"LastName":"Mercatori" //datatype:string, description: Operator last name of operator who has proposed tariff } } ,"Location": { "Id":7875 //datatype:int32, description: Ocean unique id of the charging location ,"FriendlyCode":"SI*ETR00012" //datatype:string, description: Ocean friendly code of the location ,"FriendlyName":"Opera house" //datatype:string, description: Friendly name of the location, known by the customers } ,"Description":"Tariff has been denied since prices are just to high. Please use proposed ones." /datatype:string, description: Operator description why tariff has been accepted or denied } **************************************************************************************************************************************************** ******************************************************* Object type: TariffSubCPOPending, Object version: 1.0 *************************************** **************************************************************************************************************************************************** { "Tariff": { //enumeration: Instance operator defines tariffs. Please check Billing->Tariffs to get tariffs enumeration "Id":11 //datatype:int32, description: Ocean unique id of the tariff. Check tariffs under Billing and payment, where you can also find tariff id ,"Title":"Subscriber AC" //datatype:string, description: Tariff title } ,"SubCPO":{ "Id":324 //datatype:int32, description: Ocean unique id of the business partner (Sub CPO) who has posted the tariff proposal. Please check business partners under Assets->Charge point owners, to get business partner id ,"Title":"Mercator" //datatype:string, description: Ocean business partner name (Sub CPO) who has posted the tariff proposal. ,"Operator":{ "Id":232 //datatype:int32, description: Ocean unique id of operator who has proposed tariff ,"FirstName":"Favio" //datatype:string, description: Operator first name of operator who has proposed tariff ,"LastName":"Mercatori" //datatype:string, description: Operator last name of operator who has proposed tariff ,"Email":"favio.mercatori@mercator.com" //datatype:string, description: Operator email of operator who has proposed tariff } } ,"Location": { "Id":7875 //datatype:int32, description: Ocean unique id of the charging location ,"FriendlyCode":"SI*ETR00012" //datatype:string, description: Ocean friendly code of the location ,"FriendlyName":"Opera house" //datatype:string, description: Friendly name of the location, known by the customers } ,"Description":"" //datatype:string, description: Sub CPO operator description when posting new tariff. This is normally used when custom tariff is posted where we allow operator to add custom description: when price type is 7-Custom complex pricing ,"PriceType":"Simple AC local/host users" //datatype:string, description: Enumeration: 1-Simple AC local/host users,2-Simple DC local/host users,3-Simple AC invited users,4-Simple DC invited users,5-Simple AC public users,6-Simple DC public users,7-Custom complex pricing. This are the basic price types that are proposed to Sub CPO operator } **************************************************************************************************************************************************** ******************************************************* Object type: PaymentCardRevalidation, Object version: 1.0 *************************************** **************************************************************************************************************************************************** { "InstanceId":2, //datatype:int32, description: Ocean instance id. Every tennant has unique id ,"UserPayerId":65765 //datatype:int32, description: Ocean unique id of the payer who is paying for the user services ,"UserId":5665 //datatype:int32, description: Ocean unique id of the user who is the owner of the payment card ,"Issuer":"Visa" //datatype:string, description: Card processor who issued the payment card ,"CardNumber":"23xxxxxx926" //datatype:string, description: Customer masked card number that was blocked ,"ExpirationDate":"2019-02-01T12:00:00.000Z" //datatype:datetime, description: Timestamp when it has been discovered that payment card needs revalidation ,"PayInMethodId":923534 //datatype:int32, description: Ocean unique id payment card (PayInMethod) } **************************************************************************************************************************************************** ******************************************************* Object type: UserPaymentCardValidated, Object version: 1.0 *************************************** **************************************************************************************************************************************************** { "InstanceId":2, //datatype:int32, description: Ocean instance id. Every tennant has unique id ,"UserPayerId":65765 //datatype:int32, description: Ocean unique id of the payer who is paying for the user services ,"PayInMethodId":923534 //datatype:int32, description: Ocean unique id payment card (PayInMethod) }