Ocean - Release notes 1.222.4
New Features
New Feature: Pay Now for Monthly Post Paid Users (available on native apps)
We’re excited to introduce the new »Pay Now« feature for your Monthly Post Paid users. This feature allows users to conveniently pay their invoices directly from the app. Here’s what you need to know:
Integrated Payment: Users can now pay for their charging sessions performed in the last month using the integrated Payment Service Provider (PSP) functionality. Payment uses the deposit funds functionality, which was previously used for top-up contract types.
Invoice Generation: At the end of each month, an Ocean-auto-generated invoice will be issued to EV drivers for all of their charging sessions performed in the past month. This invoice can be paid by the EV driver using the Pay Now functionality in the native app.
Notifications: Users will be notified both in-app push notifications and via email about the new invoice. Additionally in the app, an exclamation point will be displayed in the menu to draw attention to the unpaid invoice.
Payment Status: Unpaid invoices will be marked with the status “Not Paid”. Users can easily settle these invoices by clicking on the “Pay Now” button.
Additional options for you:
Several partners wanted to introduce Post Payment option to enable EV drivers to pay their invoices from the app;
By consolidating multiple credit card transactions into a single monthly payment, you’re reducing PSP fees. This means cost savings for you, and potentially for your EV drivers too.
Simplified User Experience: by reducing the frequency of payments to just once a month, you’re simplifying the payment & charging process. This means less time spent on managing payments and more time for our EV drivers to enjoy their charging journey.
Charging for Apartment buildings is often desired to be offered on Post-paid basis
Previously Pay Now functionality was limited to only several payment providers and is now available for all payment providers integrated with the Ocean. Meaning that the functionality can also be utilized by your adhoc user.
Operator Portal - Roaming - OCPI 2.2 CPO role: Integration with Deftpower EMSP customers is now available for all partners. Deftpower EMSP is one of the freshest new EMSP system providers on the market & we have completed interoperability OCPI 2.2. tests with them to enable our CPO partner's infrastructure to connect with Deftpower EMSP customers enabling charging of their EV drivers on your Ocean CPO infrastructure. OC-9048
UrchinAPI - Urchin API for adding/removing locations from the tariff's conditions was created. Two new APIs were added:
POST [Route("api/{version}/billing/tariffs/{tariffId}/conditions/location/{locationId}")]
DELETE [Route("api/{version}/billing/tariffs/{tariffId}/conditions/location/{locationId}")]
OC-9126 - Urchin API - New group of UrchinAPIs were developed that allow operators to manage contract types in the similar wave you are able to do this via Ocean UI. Newly created APIs are in the list below:
GET: api/{version}/crm/user-contract-types
GET: api/{version}/crm/user-contract-type/id
POST: api/{version}/crm/user-contract-type
PUT: api/{version}/crm/user-contract-type/id
DELETE: api/{version}/crm/user-contract-type/id
PUT: api/{version}/crm/user-contract-type/{userContractTypeId}/invoicing/invoicingId
GET: api/{version}/crm/user-contract-type/{userContractTypeId}/fixed-monthly-costs
POST: api/{version}/crm/user-contract-type/{userContractTypeId}/fixed-monthly-costs
PUT: api/{version}/crm/user-contract-type/{userContractTypeId}/fixed-monthly-costs
DELETE: api/{version}/crm/user-contract-type/{userContractTypeId}/fixed-monthly-costs/fixedMonthlyCostsId
Improvements
OC-6704 - Operator portal - Billing and payment - Tariffs - "Manually update prices" to process tariffs defined in the future. Before this release when the operator pressed Manually update prices only prices that were already valid became active on the charging station. Now operator will be able to press "Manually update prices" as soon as the price is set even if it is not valid yet. It will automatically become active once the validity time is reached.
OC-6758 - Operator portal - CRM - Users: The operator now has ability to search for users based on their telephone/GSM number using the "Phone number" filter
OC-9123 UrchinAPI - Urchin API GetTariffs (GET [Route("api/{version}/billing/detailed-tariffs")]) now includes detailed information on each tariff
OC-9128 - MQ - MQ includes asset status changes in existing routes: location.inserted, location.updated, chargepoint.inserted and chargepoint.updated
Send MQ message when the Location changes its asset status. It is also sent when a new Location is created for the initial status.
Send MQ message when the Charge point changes its asset status. It is also sent when a new Charge point is created for the initial status.
OC-9181 - MQ - Extend MQ object ChargingSession by new property ChargingSessionStopReasonId
OC-9215 - MQ - Added MQ message for changes to User and Payer data. MQ message is sent whenever user/payer changes its data including when user/payer is created and deleted.
OC-9372 - Operator portal - Support - Firmware versions - Added Search/Filter feature
OC-9351 - Operator portal - Date picker: Improvement in the date picker throughout the Ocean
OC-9408 - Operator portal - CRM - Users - Contract: Added the ability for EMP to authorize users who don't have a payer and a contract assigned. This functionality is useful for EMSPs that are using external EMP systems. There will be no need in the Ocean anymore for users to have a payer and contract to start the session.
OC-9436 - UrchinAPI - New Urchin api was created that allows moving a charger to another location. POST {{URL}}/api/v1.0/assets/charging-stations/{{ChargePointId}}/change-location/{{Locationid}}
Fixed Bugs
OC-6276 - Operator portal - Roaming - Setting: Upload certificate to roaming connection does not work
OC-6377 - SubCPO portal - Support module menu is always expanded
OC-7084 - Driver portal - Payment - My Payment Cards - Can not remove the expired card
OC-7769 - Operator portal - Settings - Email templates - When a new internal comment is posted into the 2nd level support task, the operator with a template for this event doesn't receive an email
OC-9144 - Operator portal - CRM - Identifications: Issue where RFID is doubled when API for adding RFIDs to the system is called multiple times in the span of a few ms. This was fixed by adding a rate limit, which allows one request per second.
OC-9159 - Operator and Fleet portal - Group invoice functionality was not working properly when the Payer/Fleet operator had users with different contract types
OC-9182 - Driver portal - Limits applied before the session don't stop the active session for subscribers type users
OC-9187 - Operator portal - Authorization: End of working time approaching error is triggered wrongly. The system is checking UTC time instead of local time
OC-9206 - UrchinAPI - GET user list:"showBlocked" field doesn't work on the User List endpoint
OC-9245 - Operator portal - CRM - User - Contract: Discount limits table is badly formatted
OC-9251 - Operator portal - Settings - Translations: When searching for a translation by a keyword that doesn`t exist wrong error is displayed
OC-9269 - Operator portal - Roaming module - Hubject 2.3: Unsuccessful authorization, but the session was still started. Resulting in failed CDRs
OC-9275 - Operator Portal - Billing and payment - Purchase: The user was charged twice for one session due to a communication problem between Ocean and the payment provider (Eservice).
OC-9374 - Operator portal - Security - Security logs: Operators with role BO Accountant have their password exposed to Operator Admins in the Security logs
OC-9478 - Operator portal - Roaming - OCPI 2.2: CDR module incorrectly implemented cdr_token object.
OC-9493 - Operator portal - CRM - Contract: Disable adding discounts in the past date
OC-9532 - Operator portal - Charging sessions table: Unable to select date/time in filters