Home

Awesome

YNAB API .NET Core Library

Please read the YNAB API documentation for an overview of using the API and a complete list of available resources.

This client is generated using the OpenAPI Code Generator

Include the Package

First, include the nuget package YNAB.SDK:

dotnet add package YNAB.SDK

Usage

To use this client, you must obtain an access token from the My Account area of the YNAB web application.

var accessToken = "NOT_A_REAL_TOKEN";
var ynabApi = new YNAB.SDK.API(accessToken);

public async Task ListBudgets() {
  var budgetsResponse = await ynabApi.Budgets.GetBudgetsAsync();
  budgetsResponse.Data.Budgets.ForEach(budget => {
    Console.WriteLine($"Budget Name: {budget.Name}");
  });
}

Error Handling

If a response is returned with a code >= 300, instead of returning the response, the response will be thrown as an error to be caught.

var accessToken = "invalid_token";
var ynabApi = new YNAB.SDK.API(accessToken);

public async Task ListBudgets() {
  try {
    var budgetsResponse = await ynabAPI.Budgets.GetBudgets();
    // Won't get here because an error will be thrown
  } catch (YNAB.SDK.Client.ApiException ex) {
    Console.WriteLine(ex.ErrorCode); // 401
  }
}

Examples

See the examples folder for example usage scenarios.

Methods

The following methods are available in this library from the YNAB.SDK.API class. See the Open API generated docs for more details on lower level objects.

MethodDescription
UserUser.GetUser()Returns authenticated user information
User.GetUserAsync()Returns authenticated user information
BudgetsBudgets.GetBudgets()Returns budgets list with summary information
Budgets.GetBudgetsAsync()Returns budgets list with summary information
Budgets.GetBudgetsById(budgetId)Returns a single budget with all related entities
Budgets.GetBudgetsByIdAsync(budgetId)Returns a single budget with all related entities
Budgets.GetBudgetSettingsById(budgetId)Returns settings for a budget
Budgets.GetBudgetSettingsByIdAsync(budgetId)Returns settings for a budget
AccountsAccounts.GetAccounts(budgetId)Returns all accounts
Accounts.GetAccountsAsync(budgetId)Returns all accounts
Accounts.GetAccountById(budgetId, accountId)Returns a single account
Accounts.GetAccountByIdAsync(budgetId, accountId)Returns a single account
CategoriesCategories.GetCategories(budgetId)Returns all categories grouped by category group.
Categories.GetCategoriesAsync(budgetId)Returns all categories grouped by category group.
Categories.GetCategoryById(budgetId, categoryId)Returns a single category
Categories.GetCategoryByIdAsync(budgetId, categoryId)Returns a single category
PayeesPayees.GetPayees(budgetId)Returns all payees
Payees.GetPayeesAsync(budgetId)Returns all payees
Payees.GetPayeeById(budgetId, payeeId)Returns single payee
Payees.GetPayeeByIdAsync(budgetId, payeeId)Returns single payee
Payee LocationsPayeeLocations.GetPayeeLocations(budgetId)Returns all payee locations
PayeeLocations.GetPayeeLocationsAsync(budgetId)Returns all payee locations
PayeeLocations.GetPayeeLocationById(budgetId, payeeLocationId)Returns a single payee location
PayeeLocations.GetPayeeLocationByIdAsync(budgetId, payeeLocationId)Returns a single payee location
PayeeLocations.GetPayeeLocationsByPayee(budgetId, payeeId)Returns all payee locations for the specified payee
PayeeLocations.GetPayeeLocationsByPayeeAsync(budgetId, payeeId)Returns all payee locations for the specified payee
MonthsMonths.GetBudgetMonths(budgetId)Returns all budget months
Months.GetBudgetMonthsAsync(budgetId)Returns all budget months
Months.GetBudgetMonth(budgetId, month)Returns a single budget month
Months.GetBudgetMonthAsync(budgetId, month)Returns a single budget month
Months.GetMonthCategoryById(budgetId, month, categoryId)Returns a single category for a specific budget month
Months.GetMonthCategoryByIdAsync(budgetId, month, categoryId)Returns a single category for a specific budget month
Months.updateMonthCategory(budgetId, month, categoryId, monthCategory)Update an existing month category
Months.updateMonthCategoryAsync(budgetId, month, categoryId, monthCategory)Update an existing month category
TransactionsTransactions.GetTransactions(budgetId)Returns budget transactions
Transactions.GetTransactionsAsync(budgetId)Returns budget transactions
Transactions.GetTransactionsByAccount(budgetId, accountId)Returns all transactions for a specified account
Transactions.GetTransactionsByAccountAsync(budgetId, accountId)Returns all transactions for a specified account
Transactions.GetTransactionsByCategory(budgetId, categoryId)Returns all transactions for a specified category
Transactions.GetTransactionsByCategoryAsync(budgetId, categoryId)Returns all transactions for a specified category
Transactions.GetTransactionById(budgetId, transactionId)Returns a single transaction
Transactions.GetTransactionByIdAsync(budgetId, transactionId)Returns a single transaction
Transactions.CreateTransaction(budgetId, data)Creates a single transaction
Transactions.CreateTransactionAsync(budgetId, data)Creates a single transaction
Transactions.CreateTransactions(budgetId, data)Creates multiple transactions
Transactions.CreateTransactionsAsync(budgetId, data)Creates multiple transactions
Transactions.UpdateTransaction(budgetId, transactionId, data)Updates a single transaction
Transactions.UpdateTransactionAsync(budgetId, transactionId, data)Updates a single transaction
Transactions.UpdateTransactions(budgetId, data)Updates multiple transactions
Transactions.UpdateTransactionsAsync(budgetId, data)Updates multiple transactions
Scheduled TransactionsScheduledTransactions.GetScheduledTransactions(budgetId)Returns all scheduled transactions
ScheduledTransactions.GetScheduledTransactionsAsync(budgetId)Returns all scheduled transactions
ScheduledTransactions.GetScheduledTransactionById(budgetId, scheduledTransactionId)Returns a single scheduled transaction
ScheduledTransactions.GetScheduledTransactionByIdAsync(budgetId, scheduledTransactionId)Returns a single scheduled transaction

License

Copyright (c) 2019 Jake Moening

Licensed under the Apache-2.0 license