Gravatar

Solene Sossah

Software Engineer


June 2025 Newsletter

SDK News Corner

New Adapters Out of Beta

The EDV, Instant Payments, and External Auth adapters have officially moved out of beta and are now fully supported. These adapters make it easier to enforce step-up authentication workflows, handle real-time payment flows, and delegate login to external identity providers, respectively. See the full tutorials for each:

Improved Transaction History Testing

You can now use the transaction_date argument with the Q2 sandbox CLI command to mass-update transaction postdates in your database, removing the need for manual database updates. This is especially useful when testing extensions that rely on recent transaction data or when calls fail due to outdated history:

q2 sandbox transaction_date

New Helpers for Cleaner Unit Tests

The mock_q2_request decorator now includes optional parameters like enable_soap_wrapper, enable_api_wrapper, and version_number, giving you more control when mocking Q2 requests wrapped in SOAP or API formats and reducing the boilerplate needed for unit tests:

@mock_q2_request(
    mock_data.get_response(),
    verb="post",
    enable_soap_wrapper=True,
    enable_api_wrapper=True,
)
def test_my_handler():
    ...

Smarter Message Bus Payload Compression Handling

The message bus extensions now support automatic compression of large messages via the new auto_compress flag. Messages larger than 4096 bytes (the MIN_ENCRYPT_SIZE) are now automatically compressed using zlib before encryption. This improves performance without requiring changes to your existing logic.

Other Updates

  • Native SDK documentation is now hosted at a dedicated site: mobile.q2developer.com
  • New database objects and CLI enhancements have been added. For the full list of changes, check out the SDK changelog.

Portal News

Company Admins Reset Password

Company admins can now reset passwords directly from the member page. This action will automatically correct the user's account, help resolve lockouts, and require the user to set a new password.

Tecton

Grid System, Form, and Enhanced Components

This release introduces powerful new layout components and accessibility improvements across the design system.

New Grid and Form Components:

We've developed two comprehensive Grid System components - Grid and Grid Area. These new components provide developers with a powerful foundation for building complex interfaces. These new components offer developers a streamlined way to utilize CSS Grid within various parts of their application, making it easier than ever to create responsive layouts that work across all screen sizes.

The Form component provides a similar utility for common form-related workflows by applying uniform vertical spacing between elements that is also configurable via a simple property.

Enhanced File Picker Capabilities:

The recently released File Picker component has received a fresh coat of polish to improve both functionality and user experience. Key improvements include custom file upload failure messages that provide clearer feedback to users, a new "buttonSize" property for custom button sizing, and improved minimum and maximum width settings for the drop zone area. These enhancements make file management more intuitive and provide developers with greater control over the component's appearance and behavior.

Accessibility and Component Refinements:

We've made important accessibility improvements including better announcements of the Stepper component's selected states, ensuring compliance with WCAG guidelines. Some Icons provided by Tecton now use a default stroke weight of 2 pixels for improved visual consistency, while the Avatar component has been updated to resolve height issues affected by typography settings. The Data Table component now features improved touch area sizing for better mobile interaction, and we've resolved Dropdown menu positioning issues to ensure proper display across mobile devices. Additionally, the Select component's live example now demonstrates best practices using the Item component.

Caliper API News

Update User Info Improvements

The Update User Info endpoint now includes two new updates:

Third-Party Data (Elements) Support

You can now send ThirdPartyDataElements and ThirdPartyData fields to set or update third-party values associated with a user and vendor. Here's an example:

{
    "ThirdPartyDataElements": [
        { "Session.UserName": "The user name on the third party system" },
        { "Session.Password": "The password on the third party system" }
    ],
    "ThirdPartyData": {
        "Q2PFM.MnyDsktp": {
            "Session.UserName": "MyTestUserID",
            "Session.Password": "TestValye"
        }
    }
}

Nullify Primary CIFs When Needed

The new UnsetPrimaryCif flag allows you to remove a user's primary CIF without assigning a placeholder.

Custom Endpoints Update

Custom Caliper API endpoints now support PATCH, PUT, and DELETE, in addition to GET and POST, giving you more flexibility when building and managing custom API requests. Simply add a function named after the HTTP verb to your Caliper API Custom Endpoint SDK extension. Here's an example of boilerplate code to implement the DELETE verb in your extension:

def delete(self):
    data = {"response": "Hello World DELETE: From testextension"}
    response = self.return_data(data, success=True)
    self.set_header("Content-Type", "application/json")
    self.write(response)

To get more information on this flow, check out our custom endpoint tutorial.

Latest Releases

Caliper SDK (Python) v2.275.0 - CHANGELOG

Tecton SDK (Javascript) v1.56.0 - CHANGELOG

Marketplace (Python) v0.8.9 - CHANGELOG

Caliper API (Python) v1.45.0 – CHANGELOG