Backend Changes and Updates
+ +Why We Made These Changes
++ We have upgraded the PowerOffice Go API backend from .NET Framework 4.7.2 to .NET 8. + This upgrade was necessary to keep our platform up to date with current technology standards and ensure we can continue + to deliver the best possible experience. +
+ +Benefits of the Upgrade
+-
+
- Performance Gains: .NET 8 offers significant performance improvements, resulting in faster response times and better scalability. +
- Enhanced Logging and Tracking: Improved observability tools allow us to better monitor, diagnose, and resolve issues quickly. +
- Modern Technology Stack: Staying current with the latest .NET platform ensures long-term support, security updates, and access to modern features. +
What This Means for You
++ While we have worked to minimize disruption, you may need to make some adjustments to your integration code + to ensure compatibility with the upgraded backend. The changes required are typically minor, but they are important + to review and implement. +
+ +SDK
++ A new version of the PowerOffice Go SDK is being prepared to support these backend changes. While the upgrade should be backward compatible, we recommend using the latest SDK version to take full advantage of the improvements and ensure compatibility with the updated backend. +
+ +⚠️ Important: Temporary Exclusion Available
++ If you need more time to adapt your integration, we have tools available to temporarily exclude your application + from this upgrade. However, please note that this is a temporary measure only. +
++ Everyone MUST eventually migrate to the new backend. Failure to do so will result in your integration + ceasing to function when the old backend is decommissioned. We strongly encourage you to plan your migration as soon + as possible to avoid any service interruptions. +
+ +TL;DR
+ Access token has changed to JWT format, refresh tokens are obsolete, and request headers must be form-data or x-www-form-urlencoded. + +Breaking Changes
+Below are the key changes that may affect your integration:
+ +Authentication
+- Request header must be form-data or x-www-form-urlencoded
+Example Request
+POST /OAuth/Token HTTP/1.1
+ Host: localhost:7239
+ Content-Type: application/x-www-form-urlencoded
+ Authorization: ••••••
+ Content-Length: 29
+
+ grant_type=client_credentials
+
+ - Access token format is updated to be JSON Web Token compatible.
The new access token contains information about the client. JWT is documented in RFC7519
+ +eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJnb0FjdGl2ZUNsaWVudFN1YnNjcmlwdGlvbnMiOlsiQWNjb3VudGluZyIsIlRpbWVUcmFja2luZyIsIlBheXJvbGwiLCJUcmF2ZWxFeHBlbnNlIiwiUXVhbGl0eSIsIkhvbGlkYXlBbmRMZWF2ZSJdLCJnb0NsaWVudElkIjoiYWEwYWU1YWEtY2NjZS00ZTMwLWFhNjMtMDY1ZTgyY2FkZWE0IiwiZ29DbGllbnROYW1lIjoiV0lERVLDmEUgQVMiLCJnb1VzZXJJZCI6IjU1ZDUxMGM3LWJkNWUtNDQ2OS04ODhlLTc2NDViMDg0ZGMzNiIsInJvbGUiOlsiQmFua0pvdXJuYWxWb3VjaGVyX0Z1bGwiLCJCYW5rVHJhbnNmZXJfRnVsbCIsIkJsb2JfRnVsbCIsIkJ1ZGdldF9GdWxsIiwiQ2FzaEpvdXJuYWxWb3VjaGVyX0Z1bGwiLCJDbGllbnRCYW5rQWNjb3VudF9GdWxsIiwiQ29tbW9uU2VydmljZXNfRnVsbCIsIkNvbnRhY3RHcm91cF9GdWxsIiwiQ3VzdG9tRGltZW5zaW9uRGVmaW5pdGlvbl9GdWxsIiwiQ3VzdG9tRGltZW5zaW9uVmFsdWVfRnVsbCIsIkN1c3RvbWVyX0Z1bGwiLCJEZWJ0Q29sbGVjdGlvbl9GdWxsIiwiRGVwYXJ0bWVudF9GdWxsIiwiRG9jdW1lbnRzX0Z1bGwiLCJFbXBsb3llZV9GdWxsIiwiRXhwZW5zZVZvdWNoZXJfRnVsbCIsIkV4dGVybmFsbHlEZWxpdmVyYWJsZUludm9pY2VfRnVsbCIsIkZhY3RvcmluZ19GdWxsIiwiRmluYW5jaW5nX0Z1bGwiLCJHZW5lcmFsTGVkZ2VyQWNjb3VudF9GdWxsIiwiSW1wb3J0X0Z1bGwiLCJJbmNvbWluZ0ludm9pY2VWb3VjaGVyX0Z1bGwiLCJJbnZvaWNlQXR0YWNobWVudF9GdWxsIiwiSm91cm5hbEVudHJ5Vm91Y2hlcl9GdWxsIiwiTG9jYXRpb25fRnVsbCIsIk1hbnVhbEpvdXJuYWxWb3VjaGVyX0Z1bGwiLCJPdXRnb2luZ0ludm9pY2VfRnVsbCIsIk91dGdvaW5nSW52b2ljZVZvdWNoZXJfRnVsbCIsIlBhcnR5QmFua0FjY291bnRfRnVsbCIsIlBhcnR5Q29udGFjdFBlcnNvbl9GdWxsIiwiUGF5cm9sbF9GdWxsIiwiUGF5cm9sbEpvdXJuYWxWb3VjaGVyX0Z1bGwiLCJQcm9kdWN0X0Z1bGwiLCJQcm9qZWN0X0Z1bGwiLCJRdWFsaXR5X0Z1bGwiLCJRdW90ZV9GdWxsIiwiUmVwb3J0aW5nX0FjY291bnRUcmFuc2FjdGlvbl9GdWxsIiwiUmVwb3J0aW5nX0N1c3RvbWVyTGVkZ2VyX0Z1bGwiLCJSZXBvcnRpbmdfSW52b2ljZUpvdXJuYWxfRnVsbCIsIlJlcG9ydGluZ19TdXBwbGllckxlZGdlcl9GdWxsIiwiUmVwb3J0aW5nX1RpbWVUcmFuc2FjdGlvbl9GdWxsIiwiUmVwb3J0aW5nX1RyaWFsQmFsYW5jZV9GdWxsIiwiUmVwb3J0aW5nX1VzYWdlX0Z1bGwiLCJTaGFyZWhvbGRlcl9GdWxsIiwiU3VwcGxpZXJfRnVsbCIsIlRpbWVUcmFja2luZ19GdWxsIiwiVUJPX0Z1bGwiLCJWb3VjaGVyRG9jdW1lbnRhdGlvbl9GdWxsIiwiWWVhckVuZEpvdXJuYWxWb3VjaGVyX0Z1bGwiXSwidW5pcXVlX25hbWUiOiI1NWQ1MTBjNy1iZDVlLTQ0NjktODg4ZS03NjQ1YjA4NGRjMzYiLCJuYmYiOjE3NjM5OTIzNDcsImV4cCI6MTc2Mzk5MzU0NywiaWF0IjoxNzYzOTkyMzQ3LCJpc3MiOiJodHRwczovL3Rlc3QtZ28tYXBwLWFwaXYyYXV0aG9yaXphdGlvbi1ldXJ3LmF6dXJld2Vic2l0ZXMubmV0LyIsImF1ZCI6Imh0dHBzOi8vdGVzdC1nby1hcHAtYXBpdjItZXVydy5henVyZXdlYnNpdGVzLm5ldC8ifQ.n8Ipte7rIQ3M9DtpzXjbEM-9KjqS9-l63gK4fdwvqws
+
+ - Access token time to live is expanded from 10 minutes (600 seconds) to 20 minutes (1200 seconds).
+ +- Refresh token is obsolete.
+With the new access token format, refresh tokens are no longer necessary. Clients should request a new access token using the client credentials flow when the current token expires.
+ +Passing empty strings may cause validation errors like with an error field is required. Mitigate this by removing the parameter from the request.
+Empty string
+Passing empty strings may cause validation errors like with an error field is required. Mitigate this by removing the parameter from the request.
+/Reporting/CustomerBalance?toDate=2025-12-31
+ {
+ "data": {
+ "type": "https://tools.ietf.org/html/rfc9110#section-15.5.1",
+ "title": "One or more validation errors occurred.",
+ "status": 400,
+ "errors": {
+ "contactGroup": [
+ "The contactGroup field is required."
+ ]
+ },
+ "traceId": "00-63aa14de6f41faf5361bb676b0f72637-e4915696ccd8d029-01"
+ },
+ "success": true
+ }
+ Number formatting
+Decimals with the value 0.0 may now be returned as 0
+
+