Welcome to the Echo Budget — budgeting app for developers. Read “About Echo Budget” post below, to discover what this app can bring you. If you want to dive right into the development of your first service, then visit “Tutorial”

About Echo Budget

Your budget — your API rules Say goodbye to one-size-fits-all budgeting apps and hello to Echo Budget. Here’s the deal: instead of locking you into a set of features, Echo Budget lets you create your own REST API. What does that mean? It means you’re in control of how your financial data gets handled. No more being stuck with what the app gives you - with Echo Budget, you shape your own finances....

Tutorial

Use this short tutorials to get to know how Echo Budget works and what you can do with it. All tutorials are in Python3 and Flask for simplicity purposes. This tutorials do not cover how to write Python of Flask applications, but rather let you get familiar with Echo Budget’s possibilities It is recomended to finish 1. Setting up the service and 2. Specifying Parameters before moving to the third section...

Documentation

Data Models Transactions — learn what data you can retrieve from a user transaction Parameters — learn what parameters exist and what schemas they use Service types TEXT service — return string to the client as a response MONEY service — return money amount for app to format it on the client side more services soon… Currency Currency codes — json list of all supported currencies by the app

Currency codes

List of all currencies, that app supports. This page is a single source of truth ! Handle cases, when your service does not support new currencies [ { "code": "EUR", "glyph": "€", "fraction_digits": 2 }, { "code": "USD", "glyph": "$", "fraction_digits": 2 }, { "code": "UAH", "glyph": "₴", "fraction_digits": 2 }, { "code": "CAD", "glyph": "$", "fraction_digits": 2 } ]

Money Service

MONEY service — service, that returns amount of money to the client, which are localized and displayed Setup In /metadata endpoint put this json field (omit the braces) into your response body: { "service_type": "MONEY" } Look tutorial for reference Response In /process endpoint there is a predefined schema for a response, which has to look like this: { "hint": String, "amount": Long, "currency_code": String } hint — string, that briefly describes the result amount — numeric value, that is a result of your calculations in minimal fraction units of the currency (cents for EUR and so on) currency_code — a 3-letter uppercase string identifier of the currency....

Parameters

All parameters have the following required fields: { "id": String, "hint": String, "type": String ... } id — string field, that uniquely specifies this parameter. Has to be unique across all parameters in the same service hint — string, that helps user to understand what this parameter is used for. Try to keep it simple and concise type — uppercase, case-sensitive string, that describes type of this parameter Now that you know requirements, we will start the overview of these 12 parameters...

Text Service

TEXT service — service, that returns string to the client. Displayed with provided hint Setup In /metadata endpoint put this json field (omit the braces) into your response body: { "service_type": "TEXT" } Look tutorial for reference Response In /process endpoint there is a predefined schema for a response, which has to look like this: { "hint": String, "label": String } hint — string, that briefly describes the label label — string, that is a result of your calculations Example Response from the example above would look like this:...

Transactions

Each transaction has the following fields. JFYI, type with following ? means, that it can contain null value class Transaction( id: Long, money: Long, category_id: Long?, type_id: Long?, subtype_id: Long?, account_id: Long, currency_code: String, timestamp: String, ) id — numeric identifier of this transaction. They do not represent the actual order of transactions money — a non-zero number, that can take negative values for spendings and positive number for earning. This number represents “cents”....