Перейти до основного вмісту

API CashDesk Mobile

Метод використовується для інтеграції мобільного додатка з Програмним ПРРО CashDesk за допомогою виклику Intent.

Запит виконується методом POST у форматі JSON.

Налаштування

Щоб мати можливість викликати додаток, потрібно додати наступний запис до файлу AndroidManifest.xml:

<queries>
<package android:name="ua.cashdesk.web" />
</queries>

Мобільний додаток повинен використовувати об'єкт Intent для передачі даних у Касу наступним чином:

//Java
Intent launchIntent = getPackageManager().getLaunchIntentForPackage("ua.cashdesk.web");
if (launchIntent != null) {
launchIntent.setFlags(0);
try {
launchIntent.putExtra("num_fiscal", "5*********");
launchIntent.putExtra("action_type", "status");

activityLauncher.launch(launchIntent);
} catch (JSONException e) {
e.printStackTrace();
}
}
Важливо

Ваш мобільний додаток має бути готовим до наступних ситуацій:

  • Відсутність відповіді від додатку Каса
  • Повернення відповіді null
  • Отримання відповіді від системи Android

Таким чином, на стороні вашого додатку повинна бути підтримана обробка всіх неочікуваних ситуацій при отриманні відповіді на Intent, наприклад:

//Java
ActivityResultLauncher<Intent> activityLauncher = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
result -> {
if(result.getResultCode() == Activity.RESULT_OK){
Intent data = result.getData();
if(data!=null){
String a = data.getStringExtra("response_status");
if(a != null){
if(!a.isEmpty()){
//Main parse logic
} else {
//Message that operation processed successful.
}
} else {
//Message that operation processed successful.
}
} else {
//Message that operation processed successful.
}
} else {
//Message that operation processed successful.
}
});

Приклад результату (більшість викликів Intent: open_shift, service_input, service_output, sale, return_sale, z_report)

Ім'яТипОпис
versionstringВерсія API
response_statusstringСтатус відповіді:
  • OK — успішний запит
  • ERROR — помилка
ORDERDATEstringДата створення документа
ORDERNUMstringНомер документа
ORDERTIMEstringЧас створення документа
text_printstringДані для друку
Відповідь:
version: "1.1",
response_status: "OK",
ORDERDATE: "2025-01-13",
ORDERNUM: "DEV_6784e5659b415",
ORDERTIME: "12:05:25",
text_print: "ICAgICAgICAgINCi0JXQo....",

Запит "Виклик статусу"

Параметри запиту

Ім'яТипОбов'язковийОпис
action_typestringТакТип операції, що виконується
Можливі значення:
  • status — отримання поточного статусу каси
  • open_shift — відкриття зміни на касі
  • sale — проведення операції продажу
  • return_sale — проведення операції повернення товару
  • service_input — внесення готівки в касу
  • service_output — вилучення готівки з каси
  • z_report — формування Z-звіту (закриття зміни та підбиття підсумків)
  • x_report — формування X-звіту (проміжний звіт без закриття зміни)
num_fiscalstringТакФіскальний номер пристрою або каси

Приклад запиту

Запит:
action_type: 'status',
num_fiscal: "500*******"

Параметри відповіді

Ім'яТипОпис
versionstringВерсія API відповіді
response_statusstringСтатус відповіді:
  • OK — успішний запит
  • ERROR — помилка
num_fiscalstringФіскальний номер каси
org_namestringНазва організації, до якої прив'язана каса
addressstringЮридична або фактична адреса організації
ipnstringРеєстраційний номер облікової картки платника податків
tinstringІдентифікаційний номер платника податків
namestringНазва касового апарата або точки продажу

Приклад відповіді

Відповідь:
version: "1.1",
response_status: "OK",
num_fiscal: "500*******",
org_name: "Тестова Організація",
address: "УКРАЇНА",
ipn: "123456789",
tin: "123456789",
name: "Тестова каса",

Запит service_input / service_output

Параметри запиту

Ім'яТипОбов'язковийОпис
action_typestringТакТип операції, що виконується
Можливі значення:
  • service_input — внесення готівки в касу
  • service_output — вилучення готівки з каси
num_fiscalstringТакФіскальний номер пристрою або каси
sumintegerТакСума видачі

Приклад запиту

Запит:
action_type: "service_input", 
num_fiscal: "500*******",
sum: 55.0

Приклад успішної відповіді

Відповідь:
   ТЕСТОВИЙ ЧЕК          
Тестова Організація
Тестова каса
УКРАЇНА
ПН 123456789
--------------------------------
Службове внесення 66.00
Гроші в касі 66.00
--------------------------------
ЧЕК № DEV_6784e5659b415
13.01.2025 12-05-25
Онлайн
ФН ПРРО 500*******
Службовий чек Cashdesk
ТЕСТОВИЙ ЧЕК

Приклади неуспішних відповідей

Відповідь:
version: "1.1",
errors: undefined
message: "Server error"
response_status: "ERROR"
version: "1.1"
Відповідь:
version: "1.1",
errors: ["sum must be great than 0"]
message: "Validation error"
response_status: "ERROR"
version: "1.1"