Skip to content

Hona/Up.NET

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Up.NET

Nuget

Up API

.NET API wrapper for Up Bank

Native AOT Compatible | Zero Reflection | Source-Generated JSON Serialization

Installation

dotnet add package HUp.NET

Quick Start

using Up.NET.Api;

var upApi = new UpApi("your-personal-access-token");

// Verify your token
var ping = await upApi.GetPingAsync();
Console.WriteLine($"Authenticated as: {ping.Data.Meta.Id}");

// List accounts
var accounts = await upApi.GetAccountsAsync();
foreach (var account in accounts.Data.Data)
{
    Console.WriteLine($"{account.Attributes.DisplayName}: {account.Attributes.Balance.Value}");
}

// Get recent transactions
var transactions = await upApi.GetTransactionsAsync(pageSize: 10);
foreach (var tx in transactions.Data.Data)
{
    Console.WriteLine($"{tx.Attributes.Description}: {tx.Attributes.Amount.Value}");
}

API Coverage

Full coverage of the Up API (v1).

Endpoint Method
Accounts GetAccountsAsync(), GetAccountAsync(id)
Transactions GetTransactionsAsync(), GetTransactionAsync(id), GetTransactionsAsync(accountId)
Categories GetCategoriesAsync(), GetCategoryAsync(id), CategorizeTransactionAsync()
Tags GetTagsAsync(), AddTagsToTransactionAsync(), RemoveTagsFromTransactionAsync()
Attachments GetAttachmentsAsync(), GetAttachmentAsync(id)
Webhooks GetWebhooksAsync(), GetWebhookAsync(id), CreateWebhookAsync(), DeleteWebhookAsync(), PingWebhookAsync(), GetWebhookLogsAsync()
Utility GetPingAsync()

Pagination

All paginated responses include a GetNextPageAsync() helper:

var transactions = await upApi.GetTransactionsAsync(pageSize: 50);

while (transactions.Data?.Links?.Next != null)
{
    // Process current page
    foreach (var tx in transactions.Data.Data)
    {
        Console.WriteLine(tx.Attributes.Description);
    }
    
    // Fetch next page
    transactions = await transactions.Data.GetNextPageAsync(upApi);
}

Filtering

// Filter accounts by type
var savers = await upApi.GetAccountsAsync(accountType: AccountType.Saver);

// Filter transactions by date range and status
var settled = await upApi.GetTransactionsAsync(
    status: TransactionStatus.Settled,
    since: DateTime.Now.AddDays(-30),
    until: DateTime.Now
);

// Filter by category or tag
var groceries = await upApi.GetTransactionsAsync(category: "groceries");
var tagged = await upApi.GetTransactionsAsync(tag: "holiday");

Native AOT Support

Up.NET is fully compatible with .NET Native AOT compilation, making it ideal for:

  • iOS/Android apps via .NET MAUI
  • Serverless functions with minimal cold start
  • CLI tools with instant startup
  • Embedded/IoT scenarios

The library uses source-generated JSON serialization with zero runtime reflection, ensuring predictable performance and smaller binary sizes.

dotnet publish -c Release -p:PublishAot=true

Getting Your API Token

  1. Download the Up app and create an account
  2. Get your Personal Access Token at https://api.up.com.au

Links

License

MIT

About

Modern .NET API wrapper for Up Bank

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages