dratejinn/ynab-open-api

Our API uses a REST based design, leverages the JSON data format, and relies upon HTTPS for transport. We respond with meaningful HTTP response codes and if an error occurs, we include error details in the response body. API Documentation is at https://api.ynab.com

dev-main 2025-01-11 23:15 UTC

This package is auto-updated.

Last update: 2025-05-11 23:56:27 UTC


README

Our API uses a REST based design, leverages the JSON data format, and relies upon HTTPS for transport. We respond with meaningful HTTP response codes and if an error occurs, we include error details in the response body. API Documentation is at https://api.ynab.com

Installation & Usage

Requirements

PHP 7.4 and later. Should also work with PHP 8.0.

Composer

To install the bindings via Composer, add the following to composer.json:

{
  "repositories": [
    {
      "type": "vcs",
      "url": "https://github.com/GIT_USER_ID/GIT_REPO_ID.git"
    }
  ],
  "require": {
    "GIT_USER_ID/GIT_REPO_ID": "*@dev"
  }
}

Then run composer install

Manual Installation

Download the files and include autoload.php:

<?php
require_once('/path/to/OpenAPIClient-php/vendor/autoload.php');

Getting Started

Please follow the installation procedure and then run the following:

<?php
require_once(__DIR__ . '/vendor/autoload.php');



// Configure Bearer authorization: bearer
$config = OpenAPI\Client\Configuration::getDefaultConfiguration()->setAccessToken('YOUR_ACCESS_TOKEN');


$apiInstance = new OpenAPI\Client\Api\AccountsApi(
    // If you want use custom http client, pass your client which implements `GuzzleHttp\ClientInterface`.
    // This is optional, `GuzzleHttp\Client` will be used as default.
    new GuzzleHttp\Client(),
    $config
);
$budget_id = 'budget_id_example'; // string | The id of the budget (\"last-used\" can be used to specify the last used budget and \"default\" can be used if default budget selection is enabled (see: https://api.ynab.com/#oauth-default-budget)
$data = new \OpenAPI\Client\Model\PostAccountWrapper(); // \OpenAPI\Client\Model\PostAccountWrapper | The account to create.

try {
    $result = $apiInstance->createAccount($budget_id, $data);
    print_r($result);
} catch (Exception $e) {
    echo 'Exception when calling AccountsApi->createAccount: ', $e->getMessage(), PHP_EOL;
}

API Endpoints

All URIs are relative to https://api.ynab.com/v1

Class Method HTTP request Description
AccountsApi createAccount POST /budgets/{budget_id}/accounts Create a new account
AccountsApi getAccountById GET /budgets/{budget_id}/accounts/{account_id} Single account
AccountsApi getAccounts GET /budgets/{budget_id}/accounts Account list
BudgetsApi getBudgetById GET /budgets/{budget_id} Single budget
BudgetsApi getBudgetSettingsById GET /budgets/{budget_id}/settings Budget Settings
BudgetsApi getBudgets GET /budgets List budgets
CategoriesApi getCategories GET /budgets/{budget_id}/categories List categories
CategoriesApi getCategoryById GET /budgets/{budget_id}/categories/{category_id} Single category
CategoriesApi getMonthCategoryById GET /budgets/{budget_id}/months/{month}/categories/{category_id} Single category for a specific budget month
CategoriesApi updateCategory PATCH /budgets/{budget_id}/categories/{category_id} Update a category
CategoriesApi updateMonthCategory PATCH /budgets/{budget_id}/months/{month}/categories/{category_id} Update a category for a specific month
MonthsApi getBudgetMonth GET /budgets/{budget_id}/months/{month} Single budget month
MonthsApi getBudgetMonths GET /budgets/{budget_id}/months List budget months
PayeeLocationsApi getPayeeLocationById GET /budgets/{budget_id}/payee_locations/{payee_location_id} Single payee location
PayeeLocationsApi getPayeeLocations GET /budgets/{budget_id}/payee_locations List payee locations
PayeeLocationsApi getPayeeLocationsByPayee GET /budgets/{budget_id}/payees/{payee_id}/payee_locations List locations for a payee
PayeesApi getPayeeById GET /budgets/{budget_id}/payees/{payee_id} Single payee
PayeesApi getPayees GET /budgets/{budget_id}/payees List payees
PayeesApi updatePayee PATCH /budgets/{budget_id}/payees/{payee_id} Update a payee
ScheduledTransactionsApi createScheduledTransaction POST /budgets/{budget_id}/scheduled_transactions Create a single scheduled transaction
ScheduledTransactionsApi getScheduledTransactionById GET /budgets/{budget_id}/scheduled_transactions/{scheduled_transaction_id} Single scheduled transaction
ScheduledTransactionsApi getScheduledTransactions GET /budgets/{budget_id}/scheduled_transactions List scheduled transactions
TransactionsApi createTransaction POST /budgets/{budget_id}/transactions Create a single transaction or multiple transactions
TransactionsApi deleteTransaction DELETE /budgets/{budget_id}/transactions/{transaction_id} Deletes an existing transaction
TransactionsApi getTransactionById GET /budgets/{budget_id}/transactions/{transaction_id} Single transaction
TransactionsApi getTransactions GET /budgets/{budget_id}/transactions List transactions
TransactionsApi getTransactionsByAccount GET /budgets/{budget_id}/accounts/{account_id}/transactions List account transactions
TransactionsApi getTransactionsByCategory GET /budgets/{budget_id}/categories/{category_id}/transactions List category transactions, excluding any pending transactions
TransactionsApi getTransactionsByMonth GET /budgets/{budget_id}/months/{month}/transactions List transactions in month, excluding any pending transactions
TransactionsApi getTransactionsByPayee GET /budgets/{budget_id}/payees/{payee_id}/transactions List payee transactions, excluding any pending transactions
TransactionsApi importTransactions POST /budgets/{budget_id}/transactions/import Import transactions
TransactionsApi updateTransaction PUT /budgets/{budget_id}/transactions/{transaction_id} Updates an existing transaction
TransactionsApi updateTransactions PATCH /budgets/{budget_id}/transactions Update multiple transactions
UserApi getUser GET /user User info

Models

Authorization

Authentication schemes defined for the API:

bearer

  • Type: Bearer authentication

Tests

To run the tests, use:

composer install
vendor/bin/phpunit

Author

About this package

This PHP package is automatically generated by the OpenAPI Generator project:

  • API version: 1.72.1
    • Generator version: 7.11.0-SNAPSHOT
  • Build package: org.openapitools.codegen.languages.PhpClientCodegen