API документація

Запрошуємо до співпраці розробників додатків під Android та iPhone для створення спільних програмних продуктів. За детальною інформацією звертайтеся в службу підтримки.

В даному розділі публікується опис роботи серверного API. Про всі помилки або неточності в описі повідомляйте будь ласка в службу підтримки. Документація може періодично поповнюватися описами нових методів.

Для здійснення доступу до даних акаунта особистого гаманця використовуються POST-запити типу «application/json» з json-вмістом. Для роботи з даними облікового запису можливе використання https. Всі запити повинні направлятися на адресу [PROTOCOL]://mypurse.pp.ua/api/data/

У відповіді сервера міститься рядок з JSON-даними, види та формат переданих даних розглянуті нижче.

Загальна структура запитів та відповідей

Усі запити до сервера повинні передавати JSON-об'єкт такого вигляду:

{
	"id":ID_REQUEST,
	"mail":USER_MAIL,
	"pass":USER_PASSWORD,
	"lang":LANGUAGE,
	"service":SERVICE_NAME,
	"params":[]
}

Поле id є ідентифікатором і генерується вашим додатком, який буде повернений сервером у відповіді на зопрос. Поля mail та pass передають реєстраційний e-mail та пароль користувача для авторизації в проекті. Запит може мати порожні значення при запиті на реєстрацію. Поле lang передає мову встановленої програми (має наступні значення: 0 - російську мову; 1 - українська мова; 2 - англійська мова). Поле service має назву службового зумовленого значення. Поле params використовується для передачі параметрів.

Зміст успішної відповіді сервера буде таким:

{
	"id":ID_REQUEST,
	"servertime":TIME(),
	"result":DATA
}

TIME() - Повертає поточну мітку часу Unix по серверу.

Зміст відповіді з помилкою - таким:

{
	"id":ID_REQUEST,
	"error":
	{
		"message":ERROR_TEXT,
		"code":ERROR_CODE
	}
}

ERROR_CODE - один з ідентифікаторів помилки, може набувати таких значень:

  • 10 - Невірний e-mail та/або пароль
  • 11 - Не введений e-mail
  • 12 - Не введений пароль
  • 13 - E-mail містить більше 50 символів
  • 14 - Введений e-mail вже є в базі
  • 15 - Загальна помилка на стороні сервера

Реєстрація та авторизації в системі

Для реєстрації в системі необхідно відправити запит на сервер з такою структурою поля params:

{
	"mail":E-MAIL,
	"pass":PASSWORD
}

У разі успішної реєстрації, поле result відповіді буде наступним:

{
	"userId":ID_USER
}
  • E-MAIL — реєстраційний E-mail користувача;
  • PASSWORD — пароль користувача;
  • ID_USER — унікальний ID користувача в системі, який призначає сервер при реєстрації;

Приклад запиту на реєстрацію:

{
	"id":1,
	"mail":"",
	"pass":"",
	"lang":0,
	"service":"register",
	"params":[
		{
			"mail":"demo@mypurse.org",
			"pass":"123456"
		}
	]
}

Приклад відповіді на запит:

{
	"id":1,
	"servertime":1451727159,
	"result":
	{
		"userId":1
	}
}

При успішній авторизації в сервісі, поле result відповіді буде наступним:

{
	"userId":ID_USER,
	"balance":BALANCE,
	"curId":CURRENCY
}
  • ID_USER — унікальний ID користувача в системі, який призначає сервер при реєстрації;
  • BALANCE — загальний баланс користувача;
  • CURRENCY — валюта користувача (має наступні значення: 1 - не вказана; 2 - долари США; 3 - Євро; 4 - Російські рублі; 5 - Українські гривні).

Синхронізація даних

Для синхронізації даних вашого додатку з сервером використовується наступний метод роботи: на запит даних, наш сервер передає інформацію в поле last_update з міткою часу по Unix, останнього оновлення даних. Поле del повертає 0 або 1, якщо встановлена 1-ца, тоді даний запис видалено. Також наш сервер передає завжди в полі zid унікальний ідентифікатор запису в базі даних на сервері.

Ви можете також передавати дані last_update, del та zid до нашого сервера, для порівняння актуальності даних. Також, якщо ви передали поле zid з нулем, дану запис буде додано в нашу базу даних та буде повернутий його ідентифікатор, який необходмо привласнити до цього запису в локальній базі даних та в подальшому передавати його до нашого сервера для оновлення даних , якщо це необхідно.

Домашня бухгалтерія / усі переваги

  • Безкоштовний сервіс онлайн бухгалтерії;
  • Повна анонімність ваших даних;
  • Захищене з'єднання SSL;
  • Надійне зберігання ваших даних;
  • Інтуїтивно зрозумілий інтерфейс;