################################################################################ # YNAB ################################################################################ :ynab = https://api.youneedabudget.com/v1 :ynab-access-token := (getenv "ynab_personal_access_token") :ynab-budget-id := (getenv "ynab_budget_id") :ynab-account-id := (getenv "ynab_account_id") # Test GET :ynab/budgets Authorization: Bearer :ynab-access-token # List transactions GET :ynab/budgets/:ynab-budget-id/transactions Authorization: Bearer :ynab-access-token # Post transactions POST :ynab/budgets/:ynab-budget-id/transactions Authorization: Bearer :ynab-access-token Content-Type: application/json { "transactions": [ { "account_id": ":ynab-account-id", "date": "2019-12-30", "amount": 10000, "payee_name": "Richard Stallman", "memo": "Not so free software after all...", "cleared": "cleared", "approved": true, "flag_color": "red", "import_id": "xyz-123" } ] } ################################################################################ # Monzo ################################################################################ :monzo = https://api.monzo.com :monzo-access-token := (getenv "monzo_cached_access_token") :monzo-refresh-token := (getenv "monzo_cached_refresh_token") :monzo-client-id := (getenv "monzo_client_id") :monzo-client-secret := (getenv "monzo_client_secret") :monzo-account-id := (getenv "monzo_account_id") # List transactions GET :monzo/transactions Authorization: Bearer :monzo-access-token account_id==:monzo-account-id # Refresh access token # According from the docs, the access token expires in 6 hours. POST :monzo/oauth2/token Content-Type: application/x-www-form-urlencoded Authorization: Bearer :monzo-access-token grant_type=refresh_token&client_id=:monzo-client-id&client_secret=:monzo-client-secret&refresh_token=:monzo-refresh-token ################################################################################ # Tokens server ################################################################################ :tokens = http://localhost:4242 # Get tokens GET :tokens/tokens # Get application state for debugging purposes GET :tokens/state # Force refresh tokens POST :tokens/refresh-tokens # Set tokens POST :tokens/set-tokens Content-Type: application/json { "access_token": "access-token", "refresh_token": "refresh-token", "expires_in": 120 }