.NET API wrapper for Up Bank
Native AOT Compatible | Zero Reflection | Source-Generated JSON Serialization
dotnet add package HUp.NETusing 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}");
}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() |
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);
}// 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");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- Download the Up app and create an account
- Get your Personal Access Token at https://api.up.com.au
MIT