InterAcct.SuperStream.Core 0.0.3

dotnet add package InterAcct.SuperStream.Core --version 0.0.3
                    
NuGet\Install-Package InterAcct.SuperStream.Core -Version 0.0.3
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="InterAcct.SuperStream.Core" Version="0.0.3" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="InterAcct.SuperStream.Core" Version="0.0.3" />
                    
Directory.Packages.props
<PackageReference Include="InterAcct.SuperStream.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add InterAcct.SuperStream.Core --version 0.0.3
                    
#r "nuget: InterAcct.SuperStream.Core, 0.0.3"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package InterAcct.SuperStream.Core@0.0.3
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=InterAcct.SuperStream.Core&version=0.0.3
                    
Install as a Cake Addin
#tool nuget:?package=InterAcct.SuperStream.Core&version=0.0.3
                    
Install as a Cake Tool

IASuperStreamClass

Version: 1.0.1
Package ID: InterAcctSoftware.SuperStreamClass
Target Framework: .NET 10.0

Overview

IASuperStreamClass is a comprehensive .NET SDK for integrating with OzEdi's SuperStream API. This library provides a complete set of tools for managing SuperStream operations including file uploads, payments, webhooks, maintenance, and response handling for Australian superannuation contributions.

Features

  • Authentication & Authorization - JWT-based authentication with automatic token management
  • File Uploads - Upload and manage SuperStream contribution files
  • Payment Management - Process and track superannuation payments
  • Webhook Integration - Receive and handle webhook notifications
  • Maintenance Operations - Manage client configurations and settings
  • Response Handling - Retrieve and process fund responses
  • Automated Token Refresh - Built-in token provider with automatic renewal

Installation

dotnet add package InterAcctSoftware.SuperStreamClass

Or via NuGet Package Manager:

Install-Package InterAcctSoftware.SuperStreamClass

Architecture

Core Components

Services
  • SuperStreamService - Main service orchestrator providing access to all client modules
  • SuperStreamHttpClient - Base HTTP client with endpoint routing
  • AuthClient - Handles authentication operations
  • UploadsClient - Manages file upload operations
  • PaymentsClient - Processes payment-related operations
  • WebhooksClient - Handles webhook subscriptions and events
  • MaintenanceClient - Manages client configuration and settings
  • ResponseClient - Retrieves fund responses and summaries
  • CustomerClient - Customer-specific operations
Handlers
  • AuthenticatedHttpHandler - DelegatingHandler that automatically adds JWT bearer tokens to requests
Token Management
  • ITokenProvider - Interface for token provisioning
  • TokenProvider - Implementation of token management with caching and refresh logic

Models

The library includes comprehensive model classes organized by domain:

  • Authentication - AuthRequest, AuthResponse
  • Uploads - UploadFileRequest, UploadFilterRequest, UploadStatusResponse
  • Payments - PaymentOrderRequest, PaymentFileResponse
  • Webhooks - WebhookRequest, WebhookResponse
  • Maintenance - ClientInfo, ClientRegisterRequest, ClientUpdateRequest, ClientPaymentConfig, AccountBalance, AppVersion
  • Responses - FundResponseFilter, FundResponseSummary, PullFundResponsesRequest
  • Customer - SuperStreamCustomerRequest, SuperStreamResponse

Usage

Basic Setup

using IASuperStreamClass.Extensions;
using IASuperStreamClass.Services;

// Add SuperStream SDK to dependency injection
services.AddSuperStreamSdk(
    baseUrl: "https://api.superstream.ozedi.com",
    username: "your-username",
    password: "your-password"
);

Authentication

// Inject ITokenProvider to get access tokens
public class MyService
{
    private readonly ITokenProvider _tokenProvider;
    
    public MyService(ITokenProvider tokenProvider)
    {
        _tokenProvider = tokenProvider;
    }
    
    public async Task<string> GetTokenAsync()
    {
        return await _tokenProvider.GetTokenAsync();
    }
}

Uploading Files

public class SuperStreamUploadService
{
    private readonly SuperStreamService _superStreamService;
    
    public SuperStreamUploadService(SuperStreamService superStreamService)
    {
        _superStreamService = superStreamService;
        
        // Set default values for uploads
        _superStreamService.Uploads.SetDefaults(
            abn: "12345678901",
            account: "account-id",
            paymentProvider: "Zepto"
        );
    }
    
    public async Task<SuperStreamResponse> UploadContributionFileAsync(
        string clientId, 
        Stream fileStream, 
        string fileName)
    {
        var request = new UploadFileRequest
        {
            PayloadStream = fileStream,
            FileName = fileName,
            AutoPayWhenReady = true,
            AutoSendWhenReady = true
        };
        
        return await _superStreamService.Uploads.UploadFileAsync(clientId, request);
    }
}

Managing Payments

public class PaymentService
{
    private readonly SuperStreamService _superStreamService;
    
    public PaymentService(SuperStreamService superStreamService)
    {
        _superStreamService = superStreamService;
    }
    
    public async Task ProcessPaymentAsync(string clientId, PaymentOrderRequest request)
    {
        var response = await _superStreamService.Payments.CreatePaymentOrderAsync(clientId, request);
        // Handle payment response
    }
}

Webhook Handling

public class WebhookService
{
    private readonly SuperStreamService _superStreamService;
    
    public WebhookService(SuperStreamService superStreamService)
    {
        _superStreamService = superStreamService;
    }
    
    public async Task RegisterWebhookAsync(WebhookRequest webhookRequest)
    {
        var response = await _superStreamService.Webhooks.RegisterWebhookAsync(webhookRequest);
        // Process webhook registration
    }
}

Configuration

Environment-Specific Setup

The SDK supports different environments through the IEnvironmentService interface. Implement this interface to provide environment-specific configurations:

public class EnvironmentService : IEnvironmentService
{
    public string GetApiBaseUrl()
    {
        return Environment.GetEnvironmentVariable("SUPERSTREAM_API_URL") 
            ?? "https://api.superstream.ozedi.com";
    }
    
    public string GetUsername()
    {
        return Environment.GetEnvironmentVariable("SUPERSTREAM_USERNAME");
    }
    
    public string GetPassword()
    {
        return Environment.GetEnvironmentVariable("SUPERSTREAM_PASSWORD");
    }
}

Dependency Injection

The library is designed with dependency injection in mind and uses the following NuGet packages:

  • Microsoft.AspNetCore.Http.Abstractions (v2.3.0)
  • Microsoft.Extensions.Features (v10.0.1)
  • Microsoft.Extensions.Http (v10.0.1)

Error Handling

The SDK includes built-in error handling for common scenarios:

  • Authentication failures - Throws exceptions with detailed error messages
  • HTTP errors - Ensures successful status codes and provides error details
  • Token expiration - Automatic token refresh through TokenProvider

Example error handling:

try
{
    var result = await _superStreamService.Uploads.UploadFileAsync(clientId, request);
}
catch (HttpRequestException ex)
{
    // Handle HTTP-related errors
    Console.WriteLine($"HTTP Error: {ex.Message}");
}
catch (Exception ex)
{
    // Handle general errors
    Console.WriteLine($"Error: {ex.Message}");
}

Thread Safety

The AuthenticatedHttpHandler and TokenProvider are designed to be thread-safe for use in multi-threaded environments.

Best Practices

  1. Token Management - Let the TokenProvider handle token caching and renewal automatically
  2. HttpClient Lifecycle - Use dependency injection to manage HttpClient instances
  3. Configuration - Store sensitive credentials in secure configuration sources (Azure Key Vault, User Secrets, etc.)
  4. Error Handling - Always wrap API calls in try-catch blocks to handle network and API errors
  5. Disposal - Properly dispose of streams when uploading files

Contributing

This library is maintained by InterAcct Software. For issues or feature requests, please contact the development team.

License

Copyright � 2026 InterAcct Software. All rights reserved.

Support

For technical support or questions about the SuperStream API integration, please contact:

  • Company: InterAcct Software
  • Product: IA Super Stream Class

Version History

1.0.1 (Current)

  • Initial release with full SuperStream API integration
  • Support for .NET 10.0
  • Complete client implementations for all SuperStream endpoints

This library is part of the InterAcct ecosystem:

  • IAPayrollConnector - .NET MAUI application for payroll integration
  • InterAcctModels - Shared models and interfaces
  • InterAcctDatabaseConnector - Database connectivity layer
  • InterAcctDatabaseCore - Core database functionality
Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
0.0.3 108 2/11/2026