Опис API для взаємодії із серверною частиною
застосунку «Автоклієнт»
Версія 3.0.0
Створення профілю та отримання даних для авторизації
Гнучке налаштування доступу до сервісів API
Завантаження документів XML (без ЕЦП) (зокр. інвойсинг)
Завантаження документів XML з одночасним надсиланням контрагенту з ЕЦП (зокр. інвойсинг)
Завантаження документів PDF (без ЕЦП)
Завантаження документів PDF до Base64 (без ЕЦП)
Надсилання контрагенту завантаженого непідписаного документа
Створення платежу на основі рахунка-фактури
Отримання Base64-документа (для підписання)
Отримання інформації щодо ЕЦП на документі
Отримання документа з ЕЦП (використовується для XML-документів) у форматі .p7s
Отримання списку доступних груп
Додавання нового співробітника до групи SALARY / STUDENT
Додавання одержувача у відомість
Видалення одержувача з відомості
Надсилання відомості maspay на перевірку
Створення нової відомості maspay
Додатки:
Важлива інформація!
Не передавайте токен третім особам. Якщо плануєте зберігати чи використовувати токен не на своєму сервері або в застосунку, ознайомтеся з їхньою політикою конфіденційності та інформацією про безпеку, щоб дізнатися, як вони будуть використовувати й захищати ваші дані.
Протоколи tls 1.0 та 1.1 не підтримуються. Рекомендуємо використовувати tls 1.3.
Для юридичних осіб сервіс доступний у тарифах «Бізнес Комфорт» і «Бізнес ПРО». Для ФОП – у будь-якому тарифі.
Рекомендовано відправляти запити не частіше 1 запиту в секунду.
Створення профілю та отримання даних для авторизації
Щоб отримати авторизаційні дані, підключіть застосунок «Інтеграція (Автоклієнт)», як зазначено в інструкції (пункти 1 та 2). Потім натисніть кнопку «Підключити API».
Введіть назву застосунку та IP-адреси (за потреби). Ознайомтеся з умовами та правилами використання, поставте позначку й натисніть «Підключити».
Після створення застосунку API відкрийте його налаштування, натиснувши значок
Ознайомтеся з умовами використання та натисніть «Приймаю».
У модальному вікні скопіюйте токен (для цього натисніть піктограму ліворуч від слова token).
Натиснувши кнопку «ID i Token», ви можете отримати окремо ID та токен.
Гнучке налаштування доступу до сервісів API
Для підвищення безпеки додано можливість гнучкого керування доступами до сервісів через API. Ви можете самостійно обмежувати перелік функцій, доступних для сторонніх систем або внутрішніх інтеграцій. У вже створеному застосунку API відкрийте налаштування, натиснувши значок , і перейдіть до вкладки «Обмеження по сервісам»:
Активуйте обмеження та позначте ті сервіси, доступ до яких вам потрібен. Сервіси, які не буде позначено, автоматично перестануть працювати. Наприклад, якщо увімкнути обмеження та позначити лише «Отримання балансів і транзакцій за рахунками», за поточним API-ключем можна буде отримати баланси й транзакції, а створити платіж не буде змоги.
Взаємодія з API
Усі запити мають містити такі обов’язкові поля в header:
Підтримуються кодування utf8 і cp1251. Якщо charset не зазначено, кодування за замовчуванням cp1251.
Запити надсилаються за допомогою методу GET.
Отримання серверних дат
https://acp.privatbank.ua/api/statements/settings
Приклад відповіді
{
"status": "SUCCESS",
"type": "settings",
"settings": {
"phase": "WRK",
"dates_without_oper_day": // дні без опер. днів
"01.01.2018 00:00:00",
"30.12.2018 00:00:00",
"31.12.2018 00:00:00",
"01.01.2019 00:00:00",
"29.12.2019 00:00:00",
"30.12.2019 00:00:00",
"31.12.2019 00:00:00",
"01.01.2020 00:00:00"
],
"today": "30.03.2020 00:00:00", // дата поточного опер. дня (проміжна виписка)
"lastday": "29.03.2020 00:00:00", // дата минулого опер. дня (проміжна виписка)
"work_balance": "N", // чи проходять регламент завдання, N – можна робити запити, Y – запити не робити
"server_date_time": "30.03.2020 12:03:51",
"date_final_statement": "28.03.2020 00:00:00" // дата, включно з якої є підсумкова виписка
}
}
Якщо значення phase відмінне від WRK, то в цей період запити до API можуть повертатися з помилками.
За інтервал дат
https://acp.privatbank.ua/api/statements/balance – для отримання балансів
https://acp.privatbank.ua/api/statements/transactions – для отримання транзакцій
?acc=номер рахунку
&startDate=ДД-ММ-РРРР – дата початку (обов’язковий параметр)
&endDate=ДД-ММ-РРРР – дата закінчення (необов’язковий параметр)
&followId=id наступної пачки з відповіді (необов’язковий параметр)
&limit=кількість записів у пачці (за замовчуванням 20, максимальне значення – 500, рекомендовано використовувати не більше ніж 100)
Отримати проміжні дані з lastday до today
https://acp.privatbank.ua/api/statements/balance(або transactions)/interim
?acc=номер рахунку
&followId=id наступної пачки з відповіді (необов’язковий параметр)
&limit=кількість записів у пачці (за замовчуванням 20, максимальне значення – 100)
Отримати дані за останній підсумковий день
https://acp.privatbank.ua/api/statements/balance(або transactions)/final
?acc=номер рахунку
&followId=id наступної пачки з відповіді (необов’язковий параметр)
&limit=кількість записів у пачці (за замовчуванням 20, максимальне значення – 500, рекомендовано використовувати не більше ніж 100)
Якщо номер рахунку не зазначено (немає параметра acc= і значення), дані буде сформовано за всіма активними рахунками.
Якщо у відповіді параметр exist_next_page: true, значення з next_page_id потрібно підставити в наступний запит у параметр followId для отримання наступної пачки.
Для ідентифікації унікальності платіжних інструкцій використовуйте конкатенацію полів REF+REFN
Приклад відповіді з балансами
{
"status": "SUCCESS", // ознака успішності відповіді
"type": "balances", // тип відповіді
"exist_next_page": true, // ознака наявності наступної пачки
"next_page_id": "26101050000888", // ідентифікатор наступної пачки (підставляється у followId наступного запиту)
"balances": [ // масив об’єктів із балансами
{
"acc": "UA943052990000026100050001037", // номер рахунку
"currency": "UAH", // валюта
"balanceIn": "0.00", // залишок на рахунку вхідний
"balanceInEq": "0.00", // залишок на рахунку вхідний (екв. у нац. валюті)
"balanceOut": "0.00", // залишок на рахунку вихідний
"balanceOutEq": "0.00", // залишок на рахунку вихідний (екв. у нац. валюті)
"turnoverDebt": "0.00", // оборот, дебет
"turnoverDebtEq": "0.00", // оборот, дебет (екв. у нац. валюті)
"turnoverCred": "0.00", // оборот, кредит
"turnoverCredEq": "0.00", // оборот, кредит (екв. у нац. валюті)
"bgfIBrnm": " ", // бранч, що залучив контрагента
"brnm": "DNH0", // бранч рахунку
"dpd": "09.03.2020 00:00:00", // дата останнього руху за рахунком
"nameACC": "Програмiсти та Ko МСБ-ТЕСТ ТОВ", // найменування рахунку
"state": "l",
"atp": "D",
"flmn": "DN",
"date_open_acc_reg": "28.12.2016 00:00:00",
"date_open_acc_sys": "28.12.2016 00:00:00",
"date_close_acc": "01.01.1900 00:00:00",
"is_final_bal": true
},{...}
]}
Приклад відповіді з транзакціями
{
"status": "SUCCESS", // ознака успішності відповіді
"type": "transactions", // тип відповіді
"exist_next_page": true, // ознака наявності наступної пачки
"next_page_id": "620699370_online", // ідентифікатор наступної пачки (підставляється у followId наступного запиту)
"transactions": [ // масив об’єктів із транзакціями
{
"AUT_MY_CRF": "31451288", // ЄДРПОУ одержувача
"AUT_MY_MFO": "305299", // МФО одержувача
"AUT_MY_ACC": "26184050001514", // рахунок одержувача
"AUT_MY_NAM": "Програмiсти та Ko МСБ-ТЕСТ ТОВ", // назва одержувача
"AUT_MY_MFO_NAME": "АТ КБ \"ПРИВАТБАНК\"", // банк одержувача
"AUT_MY_MFO_CITY": "Київ", // назва міста банку
"AUT_CNTR_CRF": "14360570", // ЄДРПОУ контрагента
"AUT_CNTR_MFO": "305299", // МФО контрагента
"AUT_CNTR_ACC": "70214924104032", // рахунок контрагента
"AUT_CNTR_NAM": "ПРОЦ ВИТР ЗА СТРОК КОШТ СУБ(UAH)", // назва контрагента
"AUT_CNTR_MFO_NAME": "АТ КБ \"ПРИВАТБАНК\"", // назва банку контрагента
"AUT_CNTR_MFO_CITY": "Київ", // назва міста банку
"CCY": "UAH", // валюта
"FL_REAL": "r", // ознака реальності проведення (r,i)
"PR_PR": "r", // стан p – проводиться, t – сторнована, r – проведена, n – забракована
"DOC_TYP": "m", // тип платіжного документа
"NUM_DOC": "K0108B1WKX", // номер документа
"DAT_KL": "07.01.2020", // клієнтська дата
"DAT_OD": "07.01.2020", // дата валютування
"OSND": "Нарахування вiдсоткiв згiдно з депозитним договором N...", // підстава платежу
"SUM": "0.01", // сума
"SUM_E": "0.01", // сума в нац. валюті (грн)
"REF": "DNCHK0108B1WKX", // референс проведення
"REFN": "1", // № з/п всередині проведення
"TIM_P": "02:58", // час проведення
"DATE_TIME_DAT_OD_TIM_P": "07.01.2020 02:58:00",
"ID": "557091731", // ID транзакції
"TRANTYPE": "C", // тип транзакції дебет / кредит (D, C)
"DLR": "J63DNDSM0XHY5", // референс платежу сервісу, через який створювали платіж (payment_pack_ref – у разі створення платежу через АPI «Автоклієнт»)
"TECHNICAL_TRANSACTION_ID": "557091731_online"
}, {...}
]}
Для виконання вимог НБУ у відповіді можуть бути також додаткові поля, що стосуються кінцевого платника або одержувача:
"UETR":"b23aeadc-1ab7-4c34-a005-0f005a059948", // ідентифікатор тразакції
"ULTMT":"N", // тип заповненості реквізитів
"PAYER_ULTMT_NCEO":"", // ЄДРПОУ кінцевого платника
"PAYER_ULTMT_DOCUMENT":"", // серія та номер паспорта кінцевого платника
"PAYER_ULTMT_NAME":"", // назва кінцевого платника
"PAYER_ULTMT_COUNTRY_CODE":"", // код країни кінцевого платника – нерезидента
"RECIPIENT_ULTMT_NCEO":"", // ЄДРПОУ кінцевого одержувача
"RECIPIENT_ULTMT_DOCUMENT":"", // серія та номер паспорта кінцевого одержувача
"RECIPIENT_ULTMT_NAME":"", // назва кінцевого одержувача
"RECIPIENT_ULTMT_COUNTRY_CODE":"" // код країни кінцевого одержувача – нерезидента
Для податкових платежів також додано нові поля для структурованого призначення платежу:
"STRUCT_CODE":”101”, // код виду сплати
"STRUCT_TYPE":”22080000”, // код бюджетної класифікації
"STRUCT_CATEGORY":”Довільний текст” // інформація про податкове повідомлення (рішення)
Отримання списку клієнтів, які входять до групи ПП (тільки якщо «Автоклієнт» створено для групи ПП)
GET-запит
https://acp.privatbank.ua/api/account/get-clients-ingroup
Приклад відповіді
{
"clients_in_group": [
"44******05",
"12******71",
"51******88",
]
}
Для роботи з API в режимі групи ПП на всі запити в рядку запиту потрібно додавати параметр ID = {id клієнта в групі}, наприклад statements/balance?id=44****05.
Якщо на запити до API з обліковим записом «Працює в режимі групи» не буде передано ID – буде повернуто помилку 400.
І навпаки, у разі передання ID не в режимі групи також буде повернуто помилку 400.
https://acp.privatbank.ua/api/proxy/currency/
Отримання історії курсів валют
https://acp.privatbank.ua/api/proxy/currency/history?
startDate=ДД-ММ-РРРР&endDate=ДД-ММ-РРРР
startDate, endDate – дата початку й закінчення періоду (не більше ніж 15 днів).
Приклад відповіді
{
"cache_info": {
"from_cache": true,
"cache_time": 1526645093874,
"server_time": 1526645134001
},
"USD": {
"B": {
"date": "18-05-2018 14:00:01",
"rate": "26.0700000",
"rate_delta": "-0.0600000",
"nbuRate": "26.1888140"
},
"S": {
"date": "18-05-2018 10:04:13",
"rate": "26.3200000",
"rate_delta": "-0.0100000",
"nbuRate": "26.1888140"
}
},
"EUR": {
"B": {
"date": "18-05-2018 14:00:29",
"rate": "30.7300000",
"rate_delta": "-0.0700000",
"nbuRate": "30.9158950"
},
"S": {
"date": "18-05-2018 13:45:40",
"rate": "31.3000000",
"rate_delta": "0.0000000",
"nbuRate": "30.9158950"
}
}
}
Де:
З прогнозом: https://acp.privatbank.ua/api/proxy/payment/create_pred
Без прогнозу: https://acp.privatbank.ua/api/proxy/payment/create
BODY
Тіло запиту – це JSON-об’єкт із реквізитами платежу. Усі реквізити типу string.
Обов’язкові реквізити:
Якщо одержувач не має ЄДРПОУ, у полі recipient_nceo потрібно зазначити 0000000000 та додатково передати дані паспорта:
Для ID-картки замість номера та серії паспорта потрібно передати такий параметр:
Необов’язкові реквізити (їх може не бути):
Приклад тіла запиту
{
"document_number":"autoclient",
"recipient_account":"29001828900110",
"recipient_nceo":"14360570",
"payment_naming":"АТ, АТ КБ ПРИВАТБАНК",
"payment_amount":"0.01",
"recipient_ifi":"305299",
"recipient_ifi_text":"ПАТ КБ \"ПРИВАТБАНК\"",
"payment_destination":"test create pmnt to rest API",
"payer_account":"26006055314061",
"payment_ccy":"UAH",
"document_type":"cr",
"payment_date":"04.09.2017",
"payment_accept_date":"04.09.2017"
}
Формат успішної відповіді
Код – 201.
Тіло відповіді
{
"payment_ref": "референс створеного платежу"
"payment_pack_ref": "запакований референс створеного платежу"
}
Формат відповіді з помилкою
Код – 400.
Тіло відповіді
{
"status": "ERROR",
"code": "400",
"message": "invalid document number",
"requestId": "20240223_131617_286f",
"serviceCode": "PMTSRV0112"
}
Коди можливих помилок:
Опрацювання помилок
У разі виникнення помилки сервер повертає JSON-об’єкт виду:
{
"status": "ERROR",
"code": "400",
"message": "invalid document number",
"requestId": "20240223_131617_286f",
"serviceCode": "PMTSRV0112"
}
Коди HTTP-відповідей у разі виникнення помилок:
Завантаження підписаного платежу
HOST: https://acp.privatbank.ua
1. Отримання інформації за платежем
GET-запит: {HOST}/api/proxy/payment/get?ref=референсПлатежу (повертається в полі payment_ref у відповіді на створення платежу)
Приклад відповіді:
content-type: application/json
{
"id": "1123828417658092296",
"payment_ref": "1123828417658092296",
"user_id": "1004410776",
"service_update_utime": "1734083113",
"payment_date_unix": "1734083113669277687",
"level_sign": {
"1_sign_level": false,
"2_sign_level": false
},
"source": "v3",
"document_number": "test",
"payment_amount": "1.02",
"internal_type": "nbu",
"payment_naming": "ПАТ \"ПРИВАТБАНК\"",
"payment_destination": "test test",
"payment_ccy": "UAH",
"recipient_account": "UA323052990000026000000000000",
"has_attachment": "false",
"has_comment": "false",
"checked_on_pred": "true",
"payer_account": "UA323052990000026000000000000",
"payment_status": "new",
"payment_status_short": "n",
"payer_name": "TEST_TEST",
"payer_bank_name": "АТ КБ \"ПРИВАТБАНК\"",
"payer_nceo": "11111111",
"recipient_ifi_text": "АТ КБ \"ПРИВАТБАНК\"",
"recipient_nceo": "11111111",
"document_type": "cr",
"can_edit": "1",
"can_copy": "1",
"tabs": [
"all",
"saved"
],
"fields_for_sign": {
"version": "v3.5.0",
"fields": [
"payment_ref",
"user_id",
"document_type",
"document_number",
"payer_account",
"payment_accept_date",
"recipient_account",
"recipient_card",
"recipient_nceo",
"payment_naming",
"payment_amount",
"payment_destination",
"payment_ccy",
"recipient_document_series",
"recipient_document_number",
"recipient_document_id_number",
"recipient_country_code",
"payer_ultmt_nceo",
"payer_ultmt_name",
"payer_ultmt_document_series",
"payer_ultmt_document_number",
"payer_ultmt_document_id_number",
"recipient_ultmt_nceo",
"recipient_ultmt_name",
"recipient_ultmt_document_series",
"recipient_ultmt_document_number",
"recipient_ultmt_document_id_number",
"struct_code",
"struct_category",
"struct_type",
"recipientTaxes"
]
}
}
2. Надсилання підпису на збереження (виконується для кожного рівня підписів)
POST-запит: {HOST}/api/proxy/payment/add-sign?ref=референсПлатежу
content-type: application/json
body:
{
"sign": "BASE64 представлення підписаних даних (сигнатуру необхідно накласти на JSON відповіді з пункту 1)"
}
Приклад відповіді (у відповіді повертається платіж зі зміненим станом level_sign):
content-type: application/json
{
"id": "1123828417658092296",
"payment_ref": "1123828417658092296",
"user_id": "1004410776",
"service_update_utime": "1734083113",
"payment_date_unix": "1734083113669277687",
"level_sign": {
"1_sign_level": true,
"2_sign_level": false
},
"source": "v3",
"document_number": "test",
"payment_amount": "1.02",
"internal_type": "nbu",
"payment_naming": "ПАТ \"ПРИВАТБАНК\"",
"payment_destination": "test test",
"payment_ccy": "UAH",
"recipient_account": "UA323052990000026000000000000",
"has_attachment": "false",
"has_comment": "false",
"checked_on_pred": "true",
"payer_account": "UA323052990000026000000000000",
"payment_status": "new",
"payment_status_short": "n",
"payer_name": "TEST_TEST",
"payer_bank_name": "АТ КБ \"ПРИВАТБАНК\"",
"payer_nceo": "11111111",
"recipient_ifi_text": "АТ КБ \"ПРИВАТБАНК\"",
"recipient_nceo": "11111111",
"document_type": "cr",
"can_edit": "1",
"can_copy": "1",
"tabs": [
"all",
"saved"
],
"fields_for_sign": {
"version": "v3.5.0",
"fields": [
"payment_ref",
"user_id",
"document_type",
"document_number",
"payer_account",
"payment_accept_date",
"recipient_account",
"recipient_card",
"recipient_nceo",
"payment_naming",
"payment_amount",
"payment_destination",
"payment_ccy",
"recipient_document_series",
"recipient_document_number",
"recipient_document_id_number",
"recipient_country_code",
"payer_ultmt_nceo",
"payer_ultmt_name",
"payer_ultmt_document_series",
"payer_ultmt_document_number",
"payer_ultmt_document_id_number",
"recipient_ultmt_nceo",
"recipient_ultmt_name",
"recipient_ultmt_document_series",
"recipient_ultmt_document_number",
"recipient_ultmt_document_id_number",
"struct_code",
"struct_category",
"struct_type",
"recipientTaxes"
]
}
}
Важливо: якщо для проведення платежу потрібні два підписи (директора та бухгалтера), для різних рівнів підпису слід використовувати окремий авторизаційний токен відповідальної особи. Тобто для завантаження платежу з підписом директора слід використовувати авторизаційний токен директора, а з підписом бухгалтера – авторизаційний токен бухгалтера.
Підтримується лише підпис, накладений КЕП (наприклад SmartID). Опис підключення до API SmartID: https://acsk.privatbank.ua/smartid.
Підтримувані формати підпису: CAdES-T, BES та X-Long.
Поля, на які накладається підпис (які є в платежі):
3. Видалення платежу
POST-запит без body: {HOST}/api/proxy/payment/delete?ref=референсПлатежу
Успішна відповідь, HTTP-статус 204, статус без body.
Створення валютних платежів
Використовується для створення SWIFT-платежів у розділі «ЗЕД» у «Приват24 для бізнесу».
Приклад запиту:
POST: https://acp.privatbank.ua/api/proxy/zed/swift/save_with_forecast
Content-Type: application/json
token: 8b34f865-a75b-40b6-8*8z3NAx6+H8w0fouhmHyvgDa8K/3AqaVzOLiDZew==
{
"recipientIntBank": {
"bic": "CITIUS33XXX", // BIC (SWIFT-код) банку-посередника
"biccity": "NEW YORK, NY", // місто банку-посередника
"biccountry": "UNITED STATES OF AMERICA", // код країни банку-посередника (ISO)
"bicname": "CITIBANK N.A.", // назва банку-посередника
"bictype": "SWT", // тип ідентифікатора банку-посередника – можливі значення: swt, aba, other
"country": "US" // код країни банку-посередника (ISO)
},
"recipient": {
"accountToName": "new NAME SWIFT MX", // назва одержувача
"account": "45243453543543", // рахунок зарахування одержувачу
"country": "ES", // двозначний код країни одержувача (ISO)
"town": "Town", // місто одержувача
"name": "new NAME SWIFT MX", // назва одержувача
"street": "Street", // вулиця одержувача
"postcode": "Index", // поштовий індекс одержувача
"buildingNumber": "Num b", // номер будівлі одержувача
"buildingName": "Name b", // назва будівлі одержувача
"room": "Room" // номер кімнати чи офісу одержувача
},
"payment": {
"amount": 200, // сума платежу
"chrg": "DEBT", // тип комісії - можливі значення:
FULL - Full Borne By Debtor: тільки для USD. Усі витрати за транзакцію сплачує Debtor (платник).
SHAR - Shared: усі витрати за транзакцію на стороні відправника сплачує Debtor (платник), а на стороні одержувача — Сreditor (одержувач).
CRED - Borne By Creditor: усі витрати за транзакцію сплачує Сreditor (одержувач).
DEBT - Borne By Debtor: усі витрати за транзакцію сплачує Debtor (платник).
"bank_message": "bank_message", // додаткове повідомлення для банку (не використовується)
"chrgamt": null, // сума комісії (не використовується)
"reason": "PMNT FOR TEST SWIFT MX CNTR N TEST RFCC NEW MX FORMAT DD 16.05.2025, POL:ES, POD:UA.", // призначення платежу
"currency": "USD", // код валюти платежу (ISO)
"numdoc": 701, // номер платежу
"valuedate": "2025-08-18", // дата валютування у форматі YYYY-MM-DD
"send2rec": " " // додаткова інформація до платежу (поле 72 форми)
},
"payer": {
"account": "UA233052990000026000050034621", // рахунок списання (IBAN) платника
"name": "Тестувальний Iван Петрович" // назва платника
},
"recipientBank": {
"bic": "AABLHKHHMTG", // BIC (SWIFT-код) банку-одержувача
"bicname": "ZA BANK LIMITED", // назва банку-одержувача
"biccity": "HONG KONG", // місто банку-одержувача
"biccountry": "HK", // двозначний код країни банку-одержувача (ISO)
"country": "HK", // код країни банку-одержувача (ISO)
"bictype": "SWT" // тип коду банку-одержувача, можливі значення: swt, aba, other
},
"agreement_id": "7539945", // внутрішній реф контракту, під який створюється платіж
"agreementNumber": "TEST RFCC NEW MX FORMAT" // номер контракту, під який створюється платіж
}
Приклад відповіді:
{
"innerId": "9218",
"actionStatus": true,
"newStatus": "2",
"numDoc": "1572"
"warnings": null
}
Використовується для створення внутрішніх платежів у розділі «ЗЕД» у «Приват24 для бізнесу».
Приклад запиту:
POST: https://acp.privatbank.ua/api/proxy/zed/cpi/save_with_forecast
Content-Type: application/json
token: 8b34f865-a75b-40b6-8*8z3NAx6+H8w0fouhmHyvgDa8K/3AqaVzOLiDZew==
{
"payment": {
"cusdate": "1603815069", // дата створення документа
"valuedate": "1603815069", // дата валютування документа
"bankMessage": "bankmessage", // технічне поле, завжди значення bankmessage
"numdoc": "35", // номер документа
"currency": "eur", // валюта документа
"amount": "100", // сума документа
"purpose": "purpose" // призначення документа
},
"payer": {
"account": "UA133052990000026008050030649", // номер рахунку платника
"name": "payer name" // назва платника
},
"recipient": {
"name": "Тестувальний Iван Петрович", // назва одержувача
"okpo": "8888888881", // код ЄДРПОУ одержувача
"bankName": "АТ КБ ПРИВАТБАНК", // назва банку одержувача
"account": "UA133052990000026008050030649", // номер рахунку одержувача
"documentSeries": "AZ", // серія паспорта одержувача(якщо немає ЄДРПОУ)
"documentNumber": "363939" // номер паспорта одержувача (якщо немає ЄДРПОУ)
}
}
Приклад відповіді:
{
"innerId": "9218",
"actionStatus": true,
"newStatus": "2",
"numDoc": "1572"
}
У «Приват24 для бізнесу» (меню «Каталог послуг – Електронний документообіг») або на сайті docs.pb.ua.
Усі запити надсилаються на https://acp.privatbank.ua.
Журнал документів
content-type: application/json
POST-запит
/api/proxy/edoc/journal/inbox // вхідні
/api/proxy/edoc/journal/outbox // вихідні
/api/proxy/edoc/journal/in-process // у роботі
/api/proxy/edoc/journal/all // усі (вхідні + вихідні + у роботі)
/api/proxy/edoc/journal/to-pay // до сплати
Параметри запиту з прикладами значень
Обов’язкові:
Необов’язкові (у дужках зазначено номер примітки):
Примітки
Значення параметра є масивом необмеженої кількості валідних JSON-рядків формату {"searchBy": "ознака", "key": "текст"}. Рядок повинен бути закодований за допомогою алгоритму URL-encoding. Кожен пошуковий ключ повинен складатися мінімум із трьох символів. Ознаки та ключі не чутливі до регістру.
Приклад тіла запиту
{
"dateBegin": "2019-01-15",
"dateEnd": "2019-04-25",
"limit": "10",
"okpo": [
"31451288",
"34554355"
],
"dateSource": "document",
"orderBy": "asc",
"sortBy": "doc_date",
"docType": [
"2800",
"2756"
],
"docSumFrom": "512.30",
"docSumTo": "1050.00",
"stringFilter":"%5B%7B%22searchBy%22:%22everything%22,%22key%22:%22%D1%84%D0%B0%D0%BA%D1%82%D1%83%D1%80%D0%B0%22%7D,%7B%22searchBy%22:%22company%22,%22key%22:%22%D1%80%D0%BE%D0%BC%D0%B0%D1%88%D0%BA%D0%B0%22%7D%5D"
}
Формат успішної відповіді
Статус – 200 ОК.
Приклад тіла відповіді
{
"documents": [ // масив об’єктів із документами
{
"idStr": null,
"CREATE_DATE": "2024-06-20 15:59:24", // дата створення
"DOC_DATE": "2024-06-20", // дата в документі
"RECEIPT_DATE": "2019-01-29 16:12:03", // дата отримання
"SEND_DATE": “2019-01-29 16:12:03”, // дата надсилання
"TAX_HDATETIME": null, // дата з податкової квитанції
"TAX_HNUMREG": null, // номер податкової квитанції
"AMOUNT": 0.00, // сума
"STATUS": 3, // код статусу
"STATUS_NAME": "READY_TO_WORK", // назва статусу
"OKPO_SENDER": "00000000", // ЄДРПОУ відправника
"OKPO_RECIPIENT": "14360570", // ЄДРПОУ одержувача
"DOC_NUMBER": "107", // номер документа
"ORIGINAL_DOC_NAME": "invoice.xml", // назва файлу документа під час створення
"DOC_TYPE": 2654, // код типу документа
"OKPO_RECIPIENT_NAME": "АТ КБ \"ПРИВАТБАНК\"", // контрагент-одержувач
"OKPO_SENDER_NAME": "ТОВ TEST_TEST", // контрагент-відправник
"ID": 1332185843, // системний ідентифікатор документа
"LAST_MODIFY_TIME": "2024-06-20 15:59:24", // дата та час останньої зміни
"DOC_NAME": "invoice.xml", // назва документа
"IS_EDITED": false, // документ редагувався після створення / завантаження
"NEED_TO_EDIT": false,
"IS_RENDERED_TO_PDF": false,
"CREATOR": "USER", // внутрішній тип створювача документа
"ADDITION_STATUS": null, // додатковий статус
"TAX_RESULT_STATUS": "UNKNOWN", // статус надсилання в податкову
"ID_OF_BASE_DOC": null, // ідентифікатор базового документа
"DOC_ADDITIONAL_DATA": "{\"vat\": \"0.0\"}", // додаткові системні дані
"TIN_SENDER": null,
"TIN_RECIPIENT": null,
"VAT": "0.0", // сума ПДВ документа
"UNREAD_SENDER": 0, // не переглянуто відправником (1 – так, 0 – ні)
"UNREAD_RECIPIENT": 0, // не переглянуто одержувачем (1 – так, 0 – ні)
"PAYMENT_REFERENCE": null,
"COMMENT": null, // коментар одержувача в разі відмови
"TAGS": null,
"TAXES": null,
"UNREAD_DISCUSSION_SENDER": 0,
"UNREAD_DISCUSSION_RECIPIENT": 0
}
],
"total": 1, // загальна кількість доступних документів за запитом
"offset": 0, // зміщення щодо першого документа
"limit": 10 // максимальна кількість записів у видачі
"sortedBy": "DOC_DATE" // ознака, за якою відсортовано видачу
}
Опис статусів документів (назва статусу, у дужках – код статусу):
Формат відповіді з помилкою
Можливі коди відповіді:
Приклад тіла відповіді з помилкою
{
"status": "ERROR", // статус відповіді
"code": "VE005", // код помилки
"message": "Помилкові параметри: asac", // опис помилки
"requestId": "ae16785e-3223-4e6b-8c21-259b7dc768ec", // ідентифікатор запиту
"createTime": "2019-04-15 17:31:34.275", // дата та час помилки
"details": { // додаткова інформація
"descr": "Incorrect request parameters: {0}", // шаблон повідомлення про помилку
"arguments": [ // список аргументів у повідомленні про помилку
"asac"
],
"additionalInfo": "'OrderBy' accepts only 'decs' or 'acs' values ignore case" // додаткова інформація (необов’язково)
}
}
Примітка
У разі виникнення запитань щодо опрацювання помилок сервісом ЕДО важливо зазначати унікальний ідентифікатор запиту. Це допоможе розв’язати проблему якнайшвидше.
Завантаження документів XML (без ЕЦП) (зокр. інвойсинг)
content-type: multipart/form-data
POST-запит
/api/proxy/edoc/loader/upload
Параметри:
Приклад успішної відповіді
{
"STATUS":"SUCCESS" // статус успішно / помилка
"id":"0000000000" // ID створеного документа
“TEMP_LINK”: “тимчасове посилання на документ (якщо параметр tempLinkForDays був переданий)”
}
Приклад відповіді з помилкою
{
"status":"ERROR" // статус успішно / помилка
"code":"VE011" // код помилки
"message":"Дублікат документа 00000 у стадії / "Підписаний відправником / "вже існує" // опис помилки
"requestId":"01022023_014515_f79" // ID запиту
"createTime":"2023-02-01 13:45:15.086" // дата створення запиту
"details":{"descr":"Document duplicate with id {0} in stage {1} already exist" // деталі помилки
"arguments":[00000,"SIGNED_BY_SENDER"]} // причина помилки
}
Отримати приклад XML-файлу та структури документа можна, створивши документ у вебверсії «Приват24 для бізнесу» (меню «Каталог послуг – Електронний документообіг»). Після створення, заповнення та збереження документа його потрібно вивантажити у форматі XML. Одержаний файл і буде мати необхідну структуру. Детальніше про електронний документообіг – за посиланням.
Завантаження документів XML з одночасним надсиланням контрагенту з ЕЦП (зокр. інвойсинг)
content-type: multipart/form-data
POST-запит
Основний URL: https://docs.24.privatbank.ua/loader/v2/upload-signed-xml
Додатковий URL, якщо основний не працює: https://acp.privatbank.ua/api/proxy/edoc/loader/upload-signed-xml
Параметри:
Приклад відповіді
{
“id”: ID створеного й надісланого документа
“TEMP_LINK”: “тимчасове посилання на документ (якщо під час надсилання не було передано 0)”
}
Підписати документи можна за допомогою, наприклад, API SmartID. Також можна скористатися бібліотекою IIT для накладання підпису на документи.
API SmartID: https://acsk.privatbank.ua/arch/docs/SmartID.pdf.
Бібліотека IIT: https://eu.iit.com.ua. Виберіть тип бібліотеки та завантажте опис. Наприклад, для JavaScript: https://iit.com.ua/download/productfiles/EUSignJavaScritAppendixJ.doc.
Завантаження документів PDF (без ЕЦП)
content-type: multipart/form-data
POST-запит
/api/proxy/edoc/loader/upload-pdf
Параметри:
Приклад успішної відповіді
{
"STATUS":"SUCCESS" // статус успішно / помилка
"id":"0000000000" // ID створеного документа
“TEMP_LINK”: “тимчасове посилання на документ (якщо параметр tempLinkForDays був переданий)”
}
Приклад відповіді з помилкою
{
"status":"ERROR" // статус успішно / помилка
"code":"VE011" // код помилки
"message":"Дублікат документа 00000 у стадії / "Підписаний відправником / "вже існує" // опис помилки
"requestId":"01022023_014515_f79" // ID запиту
"createTime":"2023-02-01 13:45:15.086" // дата створення запиту
"details":{"descr":"Document duplicate with id {0} in stage {1} already exist" // деталі помилки
"arguments":[00000,"SIGNED_BY_SENDER"]} // причина помилки
}
Завантаження документів PDF до Base64 (без ЕЦП)
content-type: application/x-www-form-urlencoded
POST-запит
/api/proxy/edoc/loader/upload-pdf-b64
Параметри:
Приклад успішної відповіді
{
"STATUS":"SUCCESS" // статус успішно / помилка
"id":"0000000000" // ID створеного документа
“TEMP_LINK”: “тимчасове посилання на документ (якщо параметр tempLinkForDays був переданий)”
}
Приклад відповіді з помилкою
{
"status":"ERROR" // статус успішно / помилка
"code":"VE011" // код помилки
"message":"Дублікат документа 00000 у стадії "Підписаний відправником / "вже існує" // опис помилки
"requestId":"01022023_014515_f79" // ID запиту
"createTime":"2023-02-01 13:45:15.086" // дата створення запиту
"details":{"descr":"Document duplicate with id {0} in stage {1} already exist" // деталі помилки
"arguments":[00000,"SIGNED_BY_SENDER"]} // причина помилки
}
Завантаження документів з ЕЦП з одночасним надсиланням контрагенту (оригінал документа повинен бути в журналі)
content-type: application/x-www-form-urlencoded
POST-запит
/api/proxy/edoc/loader/upload-signed-b64
Параметри:
Приклад успішної відповіді
{
"STATUS":"SUCCESS" // статус успішно / помилка
"id":"0000000000" // ID створеного документа
“TEMP_LINK”: “тимчасове посилання на документ (якщо параметр tempLinkForDays був переданий)”
}
Приклад відповіді з помилкою
{
"status":"ERROR" // статус успішно / помилка
"code":"VE011" // код помилки
"message":"Дублікат документа 00000 у стадії / "Підписаний відправником / "вже існує" // опис помилки
"requestId":"01022023_014515_f79" // ID запиту
"createTime":"2023-02-01 13:45:15.086" // дата створення запиту
"details":{"descr":"Document duplicate with id {0} in stage {1} already exist" // деталі помилки
"arguments":[00000,"SIGNED_BY_SENDER"]} // причина помилки
}
Надсилання контрагенту завантаженого непідписаного документа (у розробці)
GET-запит
/api/proxy/edoc/journal/send-for-preview/{id}?okpo=okpo
Параметри:
Приклад успішної відповіді
{
"STATUS":"SUCCESS"
}
Створення платежу на основі рахунка-фактури
POST-запит
/api/proxy/edoc/create-payment-from-invoice/{id}?okpo=okpo&payerAccount=payerAccount
Параметри:
Приклад успішної відповіді
{
STATUS: SUCCESS
}
Видалення документа
GET-запит
/api/proxy/edoc/journal/delete/ID?okpo=okpo
Параметри:
Отримання XML-документа (application/octet-stream)
GET-запит
/api/proxy/edoc/journal/get-xml-document/ID?okpo=okpo
Параметри:
Отримання Base64-документа (для підписання) (application/json)
GET-запит
/api/proxy/edoc/journal/get-base64/ID?okpo=okpo
Параметри:
Відповідь
{
fileName: ім’я файлу
originalDoc: документ у base64
}
Отримання PDF-документа (application/octet-stream)
GET-запит
/api/proxy/edoc/journal/get-pdf-document/ID?okpo=okpo
Параметри:
Отримання інформації щодо ЕЦП на документі
GET-запит
/api/proxy/edoc/journal/sign-info/ID?okpo=okpo
Параметри:
Отримання документа з ЕЦП (використовується для XML-документів) у форматі .p7s
GET-запит
/proxy/edoc/journal/get-p7s/ID?okpo=okpo
Параметри
У «Приват24 для бізнесу» (меню «Каталог послуг – Електронна звітність»)
Завантаження (upload) документів
content-type: multipart/form-data
POST-запит
/api/proxy/eo/documents/create
Параметри:
Завантаження (upload) документів (у форматі Base64)
content-type: application/x-www-form-urlencoded
POST-запит
/api/proxy/eo/documents/create-b64
Параметри:
* duplicate – визначає поведінку ЕО під час спроби створити документ з ідентифікатором у зовнішній системі, з яким в ЕО раніше вже було створено інший документ.
Прийняті значення:
Якщо вже створений документ було підписано та надіслано в державні органи, параметр буде проігноровано й буде повернуто помилку.
Успішна відповідь
{
“result”: “success”,
“documents”: [
{
"id": "{ідентифікатор документа в Зовнішній системі}",
“result”: “success”
} ]
}
Відповідь із помилкою
{
“result”: “error”,
"error_message": “{текст помилки}"
{
У «Приват24 для бізнесу» (меню «Каталог послуг – Зарплатні та інші виплати»)
Сервіс працює лише зі співробітниками. Для початку роботи рекомендовано отримати список співробітників у Зарплатному проєкті та зберегти їх. У разі оновлення даних про співробітників у Зарплатному проєкті (додано нового співробітника, оновилися дані поточного тощо) потрібно повторно надіслати запит на отримання списку одержувачів та оновити дані.
Щоб додати співробітників, надішліть запит на створення відомості, збережіть отриманий референс і додайте співробітників у цю відомість (зазначивши референс відомості). Також можна отримати перелік уже створених відомостей і додати співробітників в одну з них, зазначивши її референс.
Після додавання співробітників відомість можна надіслати на перевірку або зробити це в «Приват24 для бізнесу». Підписати та надіслати відомість можна лише в «Приват24 для бізнесу».
Групи – аналог Зарплатних проєктів. У межах однієї юридичної особи може бути лише одна група кожного типу.
Отримання списку доступних груп
GET | /api/pay/mp/list-groups |
JSON | [ { “type”: “SALARY”, “name”: “ім’я проєкту”, “rko”: 0.05 }, ... ] |
Type – це тип групи, що може бути одним із таких, але не виключно (не можна припускати, що тільки ці та жодні інші):
Поле rko містить довідковий % комісії з вибраної групи.
GET | /api/pay/mp/list-receivers?group=<код групи>&page=0&page-size=100[&filter=<пошуковий рядок>] |
JSON | [ { “id”: “ID отримувача”, “pan”: “номер картки/рахунку”, “fio”:[“прізвище”,”ім’я”,”по батькові”] “inn”: “ІПН отримувача”, “group”: “код групи”, [“tabn”: “табельний номер”] }, ... ] |
Код групи – один із вищезазначених або код ALL (для отримання всіх доступних одержувачів, у будь-яких групах).
Пошуковий рядок – опціональний атрибут, що дає змогу шукати одержувачів за входженням підрядка (мінімум три символи).
Атрибут tabn, опціональний загалом, але обов’язковий для груп SALARY та STUDENT.
Атрибут pan надходить у формі маски: “DDDD **** **** DDDD”.
Рекомендований page-size = 100, з підвантаженням, доки список не буде порожнім.
Функції безпосереднього додавання в моделі немає. Додавання поєднане з оновленням, тому update-receiver або додає нового одержувача, або змінює одержувача на наявного табельного (відповідно до логіки управління зарахуванням, якої документ не торкається).
POST | /api/pay/mp/update-receiver |
REQ JSON | { “pan”: “номер картки/рахунку”, “group”: “код групи”, “tabn”: “табельний номер”, [“inn”: “ІПН отримувача”,] [“fio”:[“прізвище”,”ім’я”,”по батькові”]] } |
RESP JSON | { "status" : "<статус операції УЗ>", ["id" : "<id отримувача>"] } |
Для створення одержувача обов’язковими параметрами є:
Якщо картка не ПриватБанку, то ІПН та П. І. Б. також стають обов’язковими.
Список відомостей
GET | /api/pay/apay24/packets/list?[status=<filter-status>]&page=0&page-size=100[&from=<початок періоду>&to=<кінець періоду виключно>] |
JSON | [ { “reference”: “референс відомості”, “system”: “тип відомості”, “createdAt”: “дата створення”, “finishedAt”: “дата обробки”, “status”: “стан відомості”, “substatus”: “розширений стан відомості”, “packetName”: “назва відомості”, “errText”: “текст помилки”, “recordCount”: <10, кількість записів>, “recordAmount”: <10.33, повна сума відомості>, “revision”: <123, ревізія> }, ... ] |
Де використовуються такі параметри:
У структурі відповіді потрібно звернути увагу на такі поля:
У кожної підсистеми своє API, яке несумісне з іншими, тому потрібно враховувати систему пакета, перш ніж використовувати референс в інших запитах.
Система передбачає такі статуси:
Статус | Підстатус | Коментар |
N – створена | Пакет створено, дозволено редагування | |
W – перевірена | Пакет пройшов успішну перевірку. Його можна затвердити або відізвати на редагування | |
S – затверджена | Пакет затверджено й може бути підписано або видалено | |
SB – підписана бухгалтером | Пакет очікує на підпис директора | |
SD – підписана директором | Пакет очікує на підпис бухгалтера | |
S$ – повністю підписана | Пакет отримав усі необхідні підписи й може бути надісланий у банк | |
X – надіслана | Пакет надіслано в банк на опрацювання | |
P | V | Пакет на перевірці (N → W, N → N) |
P | Див. вище | |
P | I | Пакет опрацьовує імпорт «сирих» файлів (N → N) |
F | F | Пакет опрацьовано без помилок |
F | Див. вище | |
F | R | Пакет опрацьовано з помилками |
R | Пакет забраковано | |
D | Пакет видалено |
GET | /api/pay/maspay/<референс пакета>/header |
JSON | { “reference”: “референс відомості”, “createdAt”: “дата створення”, “finishedAt”: “дата обробки”, “group”: “код групи”, “status”: “стан відомості”, “substatus”: “розширений стан відомості”, “packetName”: “назва відомості”, “errText”: “текст помилки”, “recordCount”: <10, кількість записів>, “recordAmount”: <10.33, повна сума відомості>, “revision”: <123, ревізія> } |
GET | /api/pay/maspay/<референс пакета>/content?page=0&page-size=100 |
JSON | [ { “ref”:”<референс запису>”, “fio”:”ПІБ отримувача”, “inn”:”ІПН отримувача”, “cardNumber”:”маскований номер”, “comment”:”призначення виплати”, “amount”:<сума виплати>, “status”: “<статус запису>”, “errorCode”:”<код помилки>”, “tabNo”: “табельний номер” }, ... ] |
Де:
Статус | Коментар |
N | Запис ще не перевірявся |
N$ | У записі є помилка, яку можна виправити у вебверсії «Приват24 для бізнесу» (наприклад, сума 0) |
R | Успішно перевірено |
M | Успішно сплачено |
E | Забраковано |
* | Усе інше можна вважати помилками, на які неможливо вплинути |
POST | /api/pay/maspay/<референс пакета>/add |
REQ JSON | { “receiver”: “<id отримувача>” “comment”:”призначення виплати”, “amount”:<сума виплати> } |
RESP JSON | { “ref”: “<реф. нового запису>” } |
Де:
Можливі помилки:
POST | /api/pay/maspay/<референс пакета>/remove |
REQ JSON | { “ref”: “<референс запису>” } |
RESP JSON | {
} |
Де статус відомості має бути:
POST | /api/pay/maspay/<референс пакета>/validate |
RESP JSON | Див. maspay//header |
На перевірку надсилаються пакети в статусі N. Для статусу W запит ігнорується, інше – помилка. Підтвердженням запуску перевірки є status='P' відповіді.
POST | /api/pay/maspay/create |
REQ JSON | { “group”: “SALARY|STUDENT”, “salary”: true|false, [“packetName”: “заголовок відомості”] } |
RESP JSON | Див. maspay//header |
Де:
Будь-який запит до maspay може викликати такі помилки:
{
"status": "err",
"error": {
"system": "isa",
"code": "V_BAD_PARAM",
"args": [
"from"
],
"ref": "39278f1a-cdec-496d-947d-f70dcb84bbd9"
}
}
GET /api/paysheets/journal
Відповідь:
content-type: application/json;charset=UTF-8
[
{
"uploadTime": "2021-05-20T00:00:00.000",
"project": {
"reference": "12A08000132",
"name": "TEST TEST MCB_TEST"
},
"reportYm": "202103",
"fileType": "PAYSHEET",
"status": "UPLOADED"
},
{....},
{....},
...
]
POST /api/paysheets/upload-file?projectReference=12A08000132&yearmonth=202106
content-type: multipart/form-data
------WebKitFormBoundaryTdpa0qYehKK0M0nw
Content-Disposition: form-data; name="paysheet"; filename="EMPLOYEES_PAY_20160901_12A08000132.xls"
Content-Type: application/vnd.ms-excel
------WebKitFormBoundaryTdpa0qYehKK0M0nw
Content-Disposition: form-data; name="catalog"; filename="SPRAVOCHNIK_20160901_12A08000132.xls"
Content-Type: application/vnd.ms-excel
Якщо передаються DBF-файли, тоді XLS потрібно змінити на DBF.
Успішна відповідь:
{
“status”:”success”
}
POST /api/paysheets/save-files
Успішна відповідь:
{
“status”:”success”
}
Помилки:
HTTP status code: 40x – помилка в клієнтських даних;
HTTP status code: 50x – внутрішня помилка / виключення.
{
"status": "ERROR" // ознака помилки
"code": "400" // HTTP-статус (дублюється із заголовка)
"message": "У файлі 'Відомість' зазначено неправильні табельні номери співробітників. Перевірте табельні номери в меню Виплати, вкладка 'Список отримувачів'" // повідомлення про помилку
"serviceCode": "TABNUM_NOT_PROJECT" // код помилки сервісу
}
Можливі коди помилок:
Усі запити POST (content-type:application/json;charset=utf-8|cp1251)
/api/corpcards/summary (застаріле, працює до листопада 2023 року)
/api/corpcards/v2/cards/list
Запит:
{
"panState":"o"
}
panState – фільтр (o – показувати тільки картки з відкритим статусом, c – тільки із закритим, пустий об’єкт {} – усі картки).
Відповідь:
{
"Data": {
"JurData": {
"ClientIdJur": 1004410776,
"OKPO": "31435622", // ЄДРПОУ юридичної особи
"allCards": 181, // кількість карток у сумі за всіма корпораціями (після застосування всіх фільтрів)
"cardsShown": 100, // кількість карток, показаних у сумі для всіх корпорацій (після застосування всіх фільтрів)
"CorpData": [{
"corpType": "CORP", // тип корпорації*
"CorpCode": "31435622WE", // код корпорації
"Branch": "DNH0", // бранч корпорації
"CorpCcy": 980, // валюта основної картки, числове значення
"jurId": 2144785, // ID юридичної особи
"createDate": "2014-03-31 22:03:38", // дата створення
"channel": "PR48", // канал відкриття
"bank": "PB", // банк
"version": 58, // версія даних
"cardsAmount": 27, // кількість карток корпорації (після застосування всіх фільтрів)
"cardsShown": 27, // кількість показаних карток корпорації (після застосування всіх фільтрів)
"MainCardAcc": "26007050229912", // номер основного рахунку головної картки
"MFO_ACC": "305299", // МФО основного рахунку головної картки
"АССState": "a", // стан основного рахунку головної картки
"NameCard": "TEST_V3", // назва корпорації
"CorpCcyS": "980", // валюта основної картки, рядкове значення
"MainCardNum": "2600****9912=-638165863", // номер основної картки
"MaskedMainCardNum": "260070****9912", // маска номера основної картки
"iban": "UA623052990000026007050229912", // номер основного рахунку головної картки у форматі IBAN
"grType": null, // бранч торговельної точки
"openingDate": "2019-08-05 00:00:00",
"PanData": [{ // масив карток корпорації
"PanNumber": "4246****0566=923050752", // номер картки
"MaskedPanNumber": "424600******0566", // маска номера картки
"iban": "UA623052990000026007050229912", // рахунок у форматі IBAN
"ClientIdEkbFiz": 42759601, // ID фізичної особи – власника картки
"InnFiz": "3094804424", // ІПН фізичної особи – власника картки
"FioFiz": "БЄЛКІНА ЛЮДМИЛА МИКОЛАЇВНА", // П. І. Б. фізичної особи – власника картки
"PanCorpCode": "31435622WE", // код материнської корпорації
"PanCcy": 980, // валюта картки, числове значення
"PanState": 12, // статус картки, числове значення
"PanStateS": "c", // статус картки, рядкове значення
"PanExpDate": "0923", // строк дії картки
"PanType": "00", // тип карткового продукту
"Balance": 0, // залишок на картці
"DateLastTran": null, // час останньої транзакції
"PanPurse": 3048844, // номер гаманця картки
"Bank": "PB", // банк
"MainCardAcc": "26007050229912", // номер основного рахунку головної картки
"MFO_ACC": "305299", // МФО основного рахунку головної картки
"АССState": "a", // стан основного рахунку головної картки
"NameCard": "TEST_V3", // назва корпорації
"OKPO": "31435622", // ЄДРПОУ юридичної особи
"Branch": "DNH0", // бранч
"ClientIdEkbJur": 1004410776,
"JurId": 2144785,
"PanFirstAcc": "4246****6980=-1192040845", // номер первинного відкритого рахунку
"PanCcyS": "980", // валюта картки, рядкове значення
"zachVozmEqaer": "N",
"createDate": null,
"channel": "PR48",
"version": 1,
"refContract": "SAMDNWFC00054789713", // референс контракту
"contractType": null, // тип контракту
"main": false, // ознака основної картки
"cardAlias": null, // назва картки
"can": "4246001000000566980",
"isAdd": false,
"believer": false, // ознака вірянин
"documentSeries": null, // серія паспорта
"documentNumber": null, // номер паспорта
"openingDate": "2019-08-05 00:00:00"
},
* Можливі значення – тип корпорації:
Значення | Тип | Критерій |
FUEL | Паливна | На основі масок картки 1828* поля MainCardNum |
ACCKEY | Ключ до рахунку | На основі масок рахунків 2600*, 2650* та 2620* поля MainCardAcc |
CORP | Корпоративна | На основі масок рахунків 2605* та 2655* поля MainCardAcc |
UNDEF | Недостатньо даних для визначення | Не підпадає під інші критерії (у відповіді помилка: "code":"DE022","message":"COPR_CARDS_SERVICE_ERROR" ) |
Якщо значення "cardsAmount" і "cardsShown" однакові, це означає, що за цією корпорацією отримано всі картки й запит п. 2 можна не виконувати.
/api/corpcards/summary (застаріле, працює до листопада 2023 року)
/api/corpcards/v2/cards/list
Запит:
{
"panState":"o",
"corpCod":"FUAUW54044"
}
Можливі поля:
Відповідь (опис параметрів аналогічний п. 1):
{
"Data": {
"JurData": {
"ClientIdJur": 1004410776,
"OKPO": "31435622",
"allCards": 4,
"cardsShown": 4,
"CorpData": [{
"corpType": "CORP",
"CorpCode": "W052328107",
"Branch": "HAVK",
"CorpCcy": 980,
"jurId": 2498369,
"createDate": "2019-01-21 13:38:50",
"channel": "PR48",
"bank": "PB",
"version": 1,
"cardsAmount": 4,
"cardsShown": 4,
"MainCardAcc": "26005052328107",
"MFO_ACC": "351533",
"АССState": "l",
"NameCard": "TEST_TEST 137 , 26005052328107",
"CorpCcyS": "980",
"MainCardNum": "2600****8107=1557297500",
"MaskedMainCardNum": "260050****8107",
"iban": "UA513515330000026005052328107",
"grType": null,
"openingDate": "2014-07-30 00:00:00",
"PanData": [{
"PanNumber": "4246****0057=1856359741",
"MaskedPanNumber": "424600******0057",
"iban": "UA513515330000026005052328107",
"ClientIdEkbFiz": 24870184,
"InnFiz": "3350107731",
"FioFiz": "ЛУК''ЯНОВ ВЛАДИСЛАВ МИКОЛАЙОВИЧ",
"PanCorpCode": "W052328107",
"PanCcy": 980,
"PanState": 12,
"PanStateS": "c",
"PanExpDate": "1299",
"PanType": "00",
"Balance": 0,
"DateLastTran": null,
"PanPurse": 5280411,
"Bank": "PB",
"MainCardAcc": "26005052328107",
"MFO_ACC": "351533",
"АССState": "l",
"NameCard": "TEST_TEST 137 , 26005052328107",
"OKPO": "31435622",
"Branch": "HAVK",
"ClientIdEkbJur": 1004410776,
"JurId": 2498369,
"PanFirstAcc": "4246****7980=1863923706",
"PanCcyS": "980",
"zachVozmEqaer": "N",
"createDate": null,
"channel": "PR48",
"version": 1,
"refContract": "SAMDNWFC00054858719",
"contractType": null,
"main": false,
"cardAlias": null,
"can": "4246001030000057980",
"isAdd": false,
"believer": false,
"documentSeries": null,
"documentNumber": null,
"openingDate": "2014-07-30 00:00:00"
}, {
"PanNumber": "4246****0073=1856361597",
"MaskedPanNumber": "424600******0073",
"iban": "UA513515330000026005052328107",
"ClientIdEkbFiz": 24870184,
"InnFiz": "3350107731",
"FioFiz": "ЛУК''ЯНОВ ВЛАДИСЛАВ МИКОЛАЙОВИЧ",
"PanCorpCode": "W052328107",
"PanCcy": 980,
"PanState": 12,
"PanStateS": "c",
"PanExpDate": "1299",
"PanType": "00",
"Balance": 0,
"DateLastTran": null,
"PanPurse": 5280411,
"Bank": "PB",
"MainCardAcc": "26005052328107",
"MFO_ACC": "351533",
"АССState": "l",
"NameCard": "TEST_TEST 137 , 26005052328107",
"OKPO": "31435622",
"Branch": "HAVK",
"ClientIdEkbJur": 1004410776,
"JurId": 2498369,
"PanFirstAcc": "4246****3980=1861957500",
"PanCcyS": "980",
"zachVozmEqaer": "N",
"createDate": null,
"channel": "PR48",
"version": 1,
"refContract": "SAMDNWFC00054903147",
"contractType": null,
"main": false,
"cardAlias": null,
"can": "4246001030000073980",
"isAdd": false,
"believer": false,
"documentSeries": null,
"documentNumber": null,
"openingDate": "2014-07-30 00:00:00"
} ]
}
]
}
}
}
Далі також аналізуються поля:
"cardsAmount": 4,
"cardsShown": 4,
у разі потреби отримання наступного пакета карток.
/api/corpcards/statements/groupcards (застаріле, працює до листопада 2023 року)
/api/corpcards/v2/corp/statements?dateStart=01.01.2023&dateEnd=01.01.2023
Запит (застарілий):
{
"panState":"o",
"corpBranch": "DNH8-FUAUW54044",
"dateStart": "01-01-2015",
"dateEnd": "01-01-2019"
}
Можливі поля:
Запит (для нового API):
{
"corporation":
{
"id": "id",
"code": "code",
"type": "CORP"
}
}
Можливі поля:
Відповідь:
{
"CorpStatement": {
"panInfos": [{
"pan": "4246****0566=923050752", // номер картки
"fio": "БЄЛКІНА ЛЮДМИЛА МИКОЛАЇВНА" // П. І. Б. власника картки
},
…………………...
],
"statements": [{
"idFront": "0", // фронтальний ID транзакції
"linked": "true", // ознака прив’язаної картки
"entryType": "S", // тип операції
"mcc": "6012", // код MCC
"code": "B33", // код операції
"tranRef": "27338544157", // референс транзакції
"approval": "035281", // код авторизації
"account": {
"ccy": "980", // валюта картки
"card": "5169****2484=-2057990465", // номер картки
"name": "", // ім’я та адреса термінала
"acc": "5169****2484=-2057990465" // номер картки / рахунку
},
"fee": "0.00", // розмір комісії
"amountAmt": "0.04", // сума операції у валюті картки
"amountCcy": "UAH", // валюта операції
"originalAmt": "0.04", // сума у валюті операції
"originalCcy": "UAH", // валюта операції
"descr": "Переказ коштів у разі розірвання договору", // призначення операції
"posted": "16.08.2019", // дата опрацювання
"rest": "0.00", // баланс після операції (для проєкту «Ключ до рахунку» цей тег відсутній)
"discount": "0.00", // розмір знижки (для дисконтної програми «Бонус+» є ознака: <discount type="BONUSPLUS">Розмір знижки бонус+</discount>)
"country": "UKR", // країна операції
"details": "{{DID=PB_EN_WFPM2019 **** **** 76224}}N-SMS PEREKAZ KOSHTIV U RAZI ROZIRVANNIA DOHOVORY #ZKF# КРЕДИТНА ЧАСТИНА P2P ПЕРЕКАЗУ", // деталі (опис) операції
"trandc": "CR", // ознака дебет / кредит (DB/CR)
"valuedateId": "20190816T21:00:15", // дата операції (у форматі 20070326T00:00:00)
"valuedateValue": "16.08.2019" // дата операції (у форматі 16.08.2019)
},
…………………..
]
}
}
/api/corpcards/statements/card (застаріле, працює до листопада 2023 року)
/api/corpcards/v2/card/statements?dateStart=01.01.2023&dateEnd=01.01.2023
Запит (застарілий):
{
"panState":"o",
"corpBranch": "DNH8-FUAUW54044",
"dateStart": "01-01-2015",
"dateEnd": "01-01-2019",
"panNumber": "1826****5230=627533164"
}
Можливі поля:
Запит (для нового API):
{
"corporation":
{
"id": "id",
"code": "code",
"type": "CORP"
},
"clientCard": "1234****6789=123456789"
}
Можливі поля:
Відповідь (опис параметрів аналогічний п. 3):
{
"CardStatement": {
"statements": [{
"idFront": "35750201089",
"linked": "false",
"entryType": "S",
"mcc": "4829",
"code": "P10",
"tranRef": "27071074263",
"approval": "456099",
"account": {
"ccy": "UAH",
"card": "5169****3849=2080846721",
"name": "",
"acc": "5169****3849=2080846721"
},
"fee": "0.00",
"amountAmt": "-0.01",
"amountCcy": "UAH",
"originalAmt": "0.01",
"originalCcy": "UAH",
"descr": "Переказ між своїми картками / рахунками. Коментар до платежу: Perekaz koshtiv",
"posted": "01.08.2019",
"rest": "12.36",
"discount": "0.00",
"country": "UKR",
"trandc": "DB",
"valuedateId": "20190801T17:14:36",
"valuedateValue": "01.08.2019"
}, {
"idFront": "35749948186",
"linked": "false",
"entryType": "S",
"mcc": "4829",
"code": "P10",
"tranRef": "27070943940",
"approval": "936098",
"account": {
"ccy": "UAH",
"card": "5169****3849=2080846721",
"name": "",
"acc": "5169****3849=2080846721"
},
"fee": "0.00",
"amountAmt": "-0.01",
"amountCcy": "UAH",
"originalAmt": "0.01",
"originalCcy": "UAH",
"descr": "Переказ між своїми картками/рахунками. Коментар до платежу: Perekaz koshtiv",
"posted": "01.08.2019",
"rest": "12.37",
"discount": "0.00",
"country": "UKR",
"trandc": "DB",
"valuedateId": "20190801T17:03:28",
"valuedateValue": "01.08.2019"
}
],
"maxDate": "14.10.2019",
"panMain": "5169****3849=2080846721",
"summary": {
"acc": "5169****9980=-1418431696",
"panmain": "5169****3849=2080846721",
"holderClientId": "51539074",
"holderValue": "ОРЛЯНСЬКИЙ ОЛЕКСІЙ АНДРІЙОВИЧ",
"brest": "12.38",
"erest": "12.36",
"db": "0.02",
"cr": "0.00",
"fee": "0.00",
"discount": "0.00"
}
}
}
10. Сервіс для реєстрації та перевірки контрагентів
Інформацію надає Українське бюро кредитних історій (ubki.ua).
Загальний опис
Сервіс для перевірки контрагентів дає змогу отримати інформацію про свого контрагента з Єдиного державного реєстру, а також попередження щодо критичної інформації:
Перші 100 запитів доступні безкоштовно. Щоб скористатися API, активуйте пропозицію «Перші 100 запитів» у розділі «API перевірки контрагентів» сервісу «Досьє ділової репутації», натиснувши кнопку «Обрати тариф» на головній сторінці сервісу.
Щоб підключити послугу «Досьє ділової репутації» в інтернет-банку «Приват24 для бізнесу», перейдіть у меню «Каталог послуг – Інше – Партнери – Досьє ділової репутації». Після підключення сервіс буде доступний у боковому меню «Партнери – Досьє ділової репутації»:
Для замовлення більшої кількості запитів виберіть відповідний тариф:
Щоб підключити тариф, у сервісі «Досьє ділової репутації» натисніть «Обрати тариф». Потім у розділі «API перевірки контрагентів» активуйте потрібний тариф. Система автоматично сформує рахунок для оплати, який буде доступний за наданим посиланням. Після здійснення платежу ви зможете використовувати придбаний обсяг запитів.
За додатковою інформацією звертайтеся на пошту до відповідального співробітника: dmitrij.pasichnyj@privatbank.ua.
Технічний опис
Запит потрібно надсилати в тілі методу POST. Текст запиту є JSON-файлом із заповненими атрибутами відповідно до зазначених нижче вимог. У заголовку потрібно зазначити формат взаємодії:
JSON: "Accept:application/json" "Content-Type:application/json" "token:авторизаційний токен"
URL: https://acp.privatbank.ua/api/ubki/check
Запит:
{
"edrpou": "ЄДРПОУ / ІПН контрагента, за яким потрібно отримати інформацію"
}
Для реселерів додатково передається параметр "edrpou_sel",у якому зазначається ЄДРПОУ реселера.
Відповідь (якщо юридична особа):
Якщо у відповіді "found": "-1", потрібно надіслати запит повторно, оскільки отримано не всі дані з ЄДР.
{
"reqid": "Ідентифікатор запиту",
"dossier": {
"found": "1",
"okpo": "РНОКПП / ЄДРПОУ",
"curstate": "1",
"curstatetxt": "зареєстровано",
"currecorddate": "2005-06-06",
"record": [
{
"names": {
"name": "Назва юридичної особи",
"shortname": "Скорочена назва юридичної особи",
"display": "Коротке найменування",
"nameen": "Назва англійською",
"shortnameen": "Скорочена назва англійською"
},
"state": {
"olfcode": "Код організаційної форми юр. особи",
"olfname": "Назва організаційної форми юр. особи",
"state": "Код актуального статусу юр. особи",
"statetext": "Найменування статусу юр. особи"
},
"executivepower": {
"name": "Назва органу виконавчої влади, якому належить частина більше ніж 25%",
"code": "ЄДРПОУ органу виконавчої влади"
},
"registration": {
"date": "Дата реєстрації",
"recordnumber": "№ запису про реєстрацію в ЄДР",
"recorddate": "Дата запису в ЄДР",
"isseparation": "Утворився шляхом відділення, 1 - так, 0 - ні",
"isdivision": "Утворився шляхом поділу, 1 - так, 0 - ні",
"ismerge": "Утворився шляхом об'єднання, 1 - так, 0 - ні",
"istransformation": "Утворився шляхом перетворення, 1 - так, 0 - ні",
"objectname": "Місце зберігання реєстраційної справи",
"prevregistrationendterm": "Термін, до якого ФОП на обліку в Міндоходів, у разі зміни місця проживання"
},
"founders": [
{
"lastname": "Прізвище акціонера фіз. особи",
"firstmiddlename": "Ім'я / по батькові акціонера фіз. особи",
"name": "Назва учасника",
"code": "РНОКПП (ІПН) / ЄДРПОУ засновника",
"role": "Код ролі учасника (код з дов. 65)",
"roletext": "Назва ролі учасника (значення з дов. 65)",
"capital": "Розмір внеску до статутного капіталу",
"country": "Країна акціонера",
"address": {
"zip": "індекс",
"country": "Назва країни",
"address": "Адреса",
"atu": "",
"atuCode": ""
}
},
],
"authorisedcapital": {
"value": "Сума статутного капіталу",
"date": "Дата закінчення формування статутного капіталу"
},
"management": {
"management": "Найменування органу управління",
"managingpaper": "Установчий документ",
"ismodalstatute": "Дані про створення та діяльность юр. особи на підставі модельного статуту"
},
"heads": [
{
"lastname": "Прізвище члена управління",
"firstmiddlename": "Ім'я / по батькові члена управління",
"role": "Код ролі члена управління (код з дов. 65)",
"roletext": "Назва ролі члена управління (код з дов. 65)",
"appointmentdate": "Дата вступу на посаду",
"restriction": "Підстава вступу на посаду"
}
],
"activitykinds": [
{
"name": "Найменування виду діяльності",
"code": "Код виду діяльності за КВЕД",
"isprimary": "Ознака основного виду діяльності, 1 - так, 0 - ні"
}
],
"branches": [],
"address": {
"zip": "Поштовий індекс",
"country": "Країна реєстрації",
"address": "Адреса реєстрації",
"atu": "",
"atuCode": ""
},
"registrations": [
{
"name": "Найменування органу реєстрації",
"code": "Код органу реєстрації",
"type": "Тип органу реєстрації",
"description": "Опис",
"startdate": "Дата запису про реєстрацію в органі",
"startnum": "№ запису про постановку на облік в органі",
"enddate": "Дата запису про зняття з обліку в органі",
"endnum": "№ запису про зняття з обліку"
}
],
"primaryactivitykind": {
"name": "Найменування виду основної діяльності",
"code": "Код виду основної діяльності за КВЕД",
"regnumber": "№ запису про реєстрацію виду основної діяльності",
"class": "Клас основної діяльності"
},
"bankruptcy": {
"date": "Дата запису про реєстрацію провадження про банкрутство",
"state": "Статус суб'єкта",
"statetext": "Текстове відображення статусу",
"docdate": "Дата відкриття провадження",
"courtname": "Найменування суду",
"docnumber": "Номер виробництва",
"datejudge": "Дата набуття чинності"
},
"termination": {
"state": "Код статусу запису про припинення діяльності",
"statetext": "Опис статусу запису про припинення діяльності",
"date": "Дата запису",
"recordnumber": "Причина припинення діяльності",
"cause": "Дата актуалізації"
},
"terminationcancel": {
"date": "Дата скасування запису про припинення діяльності",
"recordnumber": "Номер запису",
"docnumber": "Номер документа про банкрутство",
"docdate": "Дата документа",
"datejudge": "Дата набуття чинності",
"courname": "Найменування суду"
},
"assignees": [],
"predecessors": [],
"openenforcements": {
"openenforcement": [
{
"date": "Дата відкриття виконавчого провадження"
}
]
},
"contacts": [
{
"type": "Тип контакту",
"value": "Значення контакту"
}
],
"foundingdocument": {
"type": "Тип установчого документа («1» - власного установчого документа; «2» - модельного статуту)",
"name": "Назва установчого документа",
"code": ""
},
"beneficiaries": [],
"propertystruct": {
"structsigned": "Відмітка, що структуру власності підписано",
"datestruct": "Дата структури власності",
"numstruct": "Номер структури власності",
"lastnamesign": "Прізвище особи, ким підписано структуру власності",
"firstmiddlenamesign": "Ім’я та по батькові особи, ким підписано структуру власності",
"typesign": "Тип особи, ким підписано структуру власності (код) («1» – керівник, «2» – представник, «3» – засновник (учасник), «4» – інша уповноважена особа)",
"typesignref": "Тип особи, ким підписано структуру власності, текстовий опис",
"structfalse": "Ознака, що можлива недостовірність структури власності",
"structopaque": "Ознака, що структура власності визнана Національним банком України непрозорою"
}
}
]
},
"warnings": {
"edrpou": "ЄДРПОУ суб’єкта",
"bancruptcy": {
"value": 0,
"text": "Текстове відображення кількості записів щодо процедури банкрутства",
"list": []
},
"penalties": {
"text": "Кількість активних виконавчих проваджень, текстове визначення",
"value": 4,
"list": [
{
"number": "Номер виконавчого провадження",
"courtName": "Найменування суду-видавця виконавчого провадження",
"category": "Тип виконавчого провадження",
"department": "Найменування виконавця"
}
]
},
"taxDebts": {
"databaseDate": "Дата актуальності інформації",
"text": "Текстовий опис податкової заборгованості",
"toLocalBudget": 0, // Податкова заборгованість до місцевого бюджету
"toStateBudget": 0, // Податкова заборгованість до державного бюджету
"total": 0 // Податкова заборгованість до державного бюджету
},
"wageDebt": {
"penaltiesCount": 0, // Кількість виконавчих проваджень щодо заборгованості із заробітної плати
"databaseDate": "Дата оновлення інформації",
"text": Сума заборгованості із заробітної плати",
"debt": 0
},
"singletaxRisk": {
"monthsWithDebt": 0, // Кількість місяців підряд із податковою заборгованістю
"valueis": false, // Факт наявності ризику втрати єдиного податку
"text": "Текстовий опис наявності ризику втрати єдиного податку"
},
"companyCourts": {
"civil": {
"count": 173, // Кількість цивільних судових справ, усього
"liveCount": 3 // Кількість активних цивільних судових справ
},
"criminal": {
"count": 0, // Кількість кримінальних судових справ, усього
"liveCount": 0 // Кількість активних кримінальних судових справ, усього
},
"economic": {
"count": 4, // Кількість господарських судових справ, усього
"liveCount": 0 // Кількість активних господарських судових справ, усього
},
"administrative": {
"count": 2, // Кількість адміністративних судових справ, усього
"liveCount": 0 // Кількість активних адміністративних судових справ, усього
},
"adminOffense": {
"count": 0, // Кількість адміністративних правопорушень, усього
"liveCount": 0 // Кількість активних адміністративних правопорушень, усього
}
},
"massAddress": {
"value": 0, // Кількість підприємств, що зареєстровані за адресою реєстрації юридичної особи
"databaseDate": "Дата оновлення інформації",
"text": "Текстове роз’ясненя значення кількості рішень про заборону тендерів"
},
"amcList": {
"text": "Текстове роз’ясненя значення кількості рішень про заборону тендерів",
"value": 0, // Кількість рішень про заборону тендерів, числовий формат
"databaseDate": "Дата оновлення даних",
"list": []
},
"aggressor": {
"isAggressor": "Факт наявності засновників чи бенефіціарів із країнами-агресорами, значення 0/1",
"data": []
},
"sanctions": {
"value": false, // Ознака факту наявності накладених на суб’єкта санкцій (true/false)
"databaseDate": "Дата оновлення даних",
"text": "Текстове роз’яснення наявності накладених санкцій"
},
"pep": {
"value": false, // Ознака факту належності особи до публічних персон (true/false)
"text": "Текстове роз’яснення належності особи до публічних персон"
},
"wantedMVS": {
"value": false, // Ознака факту належності особи до розшукуваних чи безвісти зниклих персон (true/false)
"text": "Текстове роз’яснення належності особи до розшукуваних чи безвісти зниклих персон"
},
"lustration": {
"value": false, // Ознака факту належності особи до реєстру осіб, щодо яких застосовано положення Закону України «Про очищення влади» (true/false)
"databaseDate": "Дата оновлення даних",
"text": "Текстове роз’яснення належності особи до реєстру осіб, щодо яких застосовано положення Закону України «Про очищення влади»"
},
"pdvPayer": {
"found": "0/1 - чисельне визначення факту наявності реєстрації ПДВ",
"codePDV": "Індивідуальний податковий номер",
"dateRegistry": "Дата реєстрації платника податку",
"dateCancel": "Дата анулювання реєстрації",
"reasonCancel": "Підстава анулювання",
"lawReason": "Причина анулювання",
"pubRegister": "Назва реєстру",
"vdate": "Дата оновлення в базі"
},
"tenders": {
"found": "Чисельне визначення факту наявності тендерів, [N,1], числовий формат",
"tenderCount": "Загальна кількість знайдених тендерів",
"activeTenderCount": "Кількість активних тендерів",
"cancelledTenderCount": "Кількість скасованих тендерів",
"tenderCountLastYear": "Кількість тендерів за останній рік"
}, // Якщо система не виявила жодних тендерів, значення всіх полів у тегу tenders будуть встановлені на 0.
"licence": {
"okpo": "Код ЄДРПОУ",
"found": "Чисельне визначення факту наявності ліцензій / дозволів, [N,2], числовий формат",
"foundref": "Текстове визначення факту наявності ліцензій / дозволів, [TEXT,250] текстовий формат змінної довжини, 250 символів",
"activeCountLicenses": 0, // Кількість чинних ліцензій / дозволів юридичної особи
"countLicensesName": 0, // Кількість видів ліцензій / дозволів юридичної особи
"licenseRegisters":
[
{
"licenseNo": "Серія та номер ліцензії / дозволу, [TEXT,50] текстовий формат змінної довжини, до 50 символів",
"licenseState": "Статус ліцензії / дозволу, [TEXT,50] текстовий формат змінної довжини, до 50 символів",
"typeLicense": "Тип ліцензії / дозволу,[TEXT] текстовий формат змінної довжини",
"kindLicense": "Вид ліцензійної діяльності, [TEXT] текстовий формат змінної довжини",
"licensePeriod": "Термін дії ліцензії / дозволу, [TEXT,50] текстовий формат змінної довжини, до 50 символів",
"address": "адреса, [TEXT,250] текстовий формат змінної довжини, до 250 символів",
"activityAddress": "Адреса діяльності, [TEXT,500] текстовий формат змінної довжини, до 500 символів",
"issueDate": "Дата видачі ліцензії / дозволу, [YYYY-MM-DD], YYYY - рік (1920-2099), MM - місяць (01-12), DD - день (01-31)",
"startDate": "Дата початку дії ліцензії / дозволу, [YYYY-MM-DD], YYYY - рік (1920-2099), MM - місяць (01-12), DD - день (01-31)",
"endDate": "Дата закінчення дії ліцензії / дозволу, [YYYY-MM-DD], YYYY - рік (1920-2099), MM - місяць (01-12), DD - день (01-31)"
}
]
}
}
}
Відповідь (якщо ФОП):
Якщо у відповіді "found": "-1", потрібно надіслати запит повторно, оскільки отримано не всі дані з ЄДР.
{
"reqid": "Ідентифікатор запиту",
"dossier": {
"found": "1",
"inn": "1111100000",
"curstate": "1",
"curstatetxt": "Статус",
"currecorddate": "Дата",
"record": [
{
"iscurrent": "1",
"state": "1",
"statetxt": "зареєстровано",
"names": {
"name": "ПІБ ФОП",
"shortname": "",
"display": "ПІБ ФОП",
"country": "Країна реєстрації"
},
"registration": {
"date": "Дата реєстрації",
"recordnumber": "№ запису про реєстрацію в ЄДР",
"recorddate": "Дата запису в ЄДР",
"isseparation": "Утворився шляхом відділення, 1 - так, 0 - ні",
"isdivision": "Утворився шляхом поділу, 1 - так, 0 - ні",
"ismerge": "Утворився шляхом об'єднання, 1 - так, 0 - ні",
"istransformation": "Утворився шляхом перетворення, 1 - так, 0 - ні",
"objectname": "Місце зберігання реєстраційної справи",
"prevregistrationendterm": "Термін, до якого ФОП на обліку в Міндоходів, у разі зміни місця проживання"
},
"bankruptcy": {
"date": "Дата запису про реєстрацію провадження про банкрутство",
"state": "Статус суб'єкта",
"statetext": "Текстове відображення статусу",
"docdate": "Дата відкриття провадження",
"courtname": "Найменування суду",
"docnumber": "Номер виробництва",
"datejudge": "Дата набуття чинності"
},
"registrations": [
{
"name": "Найменування органу реєстрації",
"code": "Код органу реєстрації",
"type": "Тип органу реєстрації",
"description": "Опис",
"startdate": "Дата запису про реєстрацію в органі",
"startnum": "№ запису про постановку на облік в органі",
"enddate": "Дата запису про зняття з обліку в органі",
"endnum": "№ запису про зняття з обліку"
}
],
"primaryactivitykind": {
"name": "Найменування виду основної діяльності",
"code": "Код виду основної діяльності за КВЕД",
"regnumber": "№ запису про реєстрацію виду основної діяльності",
"class": "Клас основної діяльності"
},
"activitykinds": [
{
"name": "Найменування виду діяльності",
"code": "Код виду діяльності за КВЕД",
"isprimary": "Ознака основного виду діяльності, 1 - так, 0 - ні"
}
],
"contacts": [
{
"type": "Тип контакту",
"value": "Значення контакту"
}
],
"address": {
"zip": "Поштовий індекс",
"country": "Країна реєстрації",
"address": "Адреса реєстрації"
},
"termination": {
"state": "Код статусу запису про припинення діяльності",
"statetext": "Опис статусу запису про припинення діяльності",
"date": "Дата запису",
"recordnumber": "Причина припинення діяльності",
"cause": "Дата актуалізації"
},
"terminationcancel": {
"date": "Дата скасування запису про припинення діяльності",
"recordnumber": "Номер запису",
"docnumber": "Номер документа про банкрутство",
"docdate": "Дата документа",
"datejudge": "Дата набуття чинності",
"courname": "Найменування суду"
},
"openenforcements": {
"openenforcement": []
}
}
]
},
"warnings": {
"edrpou": "1111100000",
"bancruptcy": {
"value": 0,
"text": "Текстове відображення кількості записів щодо процедури банкрутства",
"list": []
},
"penalties": {
"text": "Кількість активних виконавчих проваджень, текстове визначення",
"value": 4,
"list": []
},
"taxDebts": {
"databaseDate": "Дата актуальності інформації",
"text": "Текстовий опис податкової заборгованості",
"toLocalBudget": 0, // Податкова заборгованість до місцевого бюджету
"toStateBudget": 0, // Податкова заборгованість до державного бюджету
"total": 0 // Податкова заборгованість до державного бюджету
},
"wageDebt": {
"penaltiesCount": 0, // Кількість виконавчих проваджень щодо заборгованості із заробітної плати
"databaseDate": "Дата оновлення інформації",
"text": "Сума заборгованості із заробітної плати",
"debt": 0
},
"singletaxRisk": {
"monthsWithDebt": 0, // Кількість місяців підряд із податковою заборгованістю
"valueis": false, // Факт наявності ризику втрати єдиного податку
"text": "Текстовий опис наявності ризику втрати єдиного податку"
},
"massAddress": {
"value": 0, // Кількість підприємств, що зареєстровані за адресою реєстрації юридичної особи
"databaseDate": "Дата оновлення інформації",
"text": "Текстове роз’ясненя значення кількості рішень про заборону тендерів"
},
"amcList": {
"text": "Текстове роз’ясненя значення кількості рішень про заборону тендерів",
"value": 0, // Кількість рішень про заборону тендерів, числовий формат
"databaseDate": "Дата оновлення даних",
"list": []
},
"aggressor": {
"isAggressor": 0, // Факт наявності засновників чи бенефіціарів із країнами-агресорами, значення 0/1,
"data": []
},
"sanctions": {
"value": false, // Ознака факту наявності накладених на суб’єкта санкцій (true/false)
"databaseDate": "Дата оновлення даних",
"text": "Текстове роз’яснення наявності накладених санкцій"
},
"pep": {
"value": false, // Ознака факту належності особи до публічних персон (true/false)
"text": "Текстове роз’яснення належності особи до публічних персон"
},
"wantedMVS": {
"value": false, // Ознака факту належності особи до розшукуваних чи безвісти зниклих персон (true/false)
"text": "Текстове роз’яснення належності особи до розшукуваних чи безвісти зниклих персон",
"errorcode": "Символьний код помилки",
"errortext": "Текстове роз’яснення помилки"
},
"wantedSBU": {
"value": false, // Ознака факту належності особи до розшукуваних персон (true/false)
"text": "Текстове роз’яснення належності особи до розшукуваних персон",
"errorcode": "Символьний код помилки",
"errortext": "Текстове роз’яснення помилки"
},
"wantedterrorist": {
"value": false, // Ознака факту належності особи до терористів (true/false)
"text": "Текстове роз’яснення належності особи до терористів"
},
"lustration": {
"value": false, // Ознака факту належності особи до реєстру осіб, щодо яких застосовано положення Закону України «Про очищення влади» (true/false)
"databaseDate": "Дата оновлення даних",
"text": "Текстове роз’яснення належності особи до реєстру осіб, щодо яких застосовано положення Закону України «Про очищення влади»"
},
"licence": {
"okpo": "Код ЄДРПОУ",
"found": "Чисельне визначення факту наявності ліцензій / дозволів, [N,2], числовий формат",
"foundref": "Текстове визначення факту наявності ліцензій / дозволів, [TEXT,250] текстовий формат змінної довжини, 250 символів",
"activeCountLicenses": 0, // Кількість чинних ліцензій / дозволів юридичної особи
"countLicensesName": 0, // Кількість видів ліцензій / дозволів юридичної особи
"licenseRegisters":
[
{
"licenseNo": "Серія та номер ліцензії / дозволу, [TEXT,50] текстовий формат змінної довжини, до 50 символів",
"licenseState": "Статус ліцензії / дозволу, [TEXT,50] текстовий формат змінної довжини, до 50 символів",
"typeLicense": "Тип ліцензії / дозволу,[TEXT] текстовий формат змінної довжини",
"kindLicense": "Вид ліцензійної діяльності, [TEXT] текстовий формат змінної довжини",
"licensePeriod": "Термін дії ліцензії / дозволу, [TEXT,50] текстовий формат змінної довжини, до 50 символів",
"address": "адреса, [TEXT,250] текстовий формат змінної довжини, до 250 символів",
"activityAddress": "Адреса діяльності, [TEXT,500] текстовий формат змінної довжини, до 500 символів",
"issueDate": "Дата видачі ліцензії / дозволу, [YYYY-MM-DD], YYYY - рік (1920-2099), MM - місяць (01-12), DD - день (01-31)",
"startDate": "Дата початку дії ліцензії / дозволу, [YYYY-MM-DD], YYYY - рік (1920-2099), MM - місяць (01-12), DD - день (01-31)",
"endDate": "Дата закінчення дії ліцензії / дозволу, [YYYY-MM-DD], YYYY - рік (1920-2099), MM - місяць (01-12), DD - день (01-31)"
}
]
}
}
}
Приклади використання:
Якщо не знайдено wantedMVS:
Якщо особа не перебуває в розшукових переліках МВС:
"wantedMVS": {
"value": false,
"text": "Суб'єкт не перебуває в розшукових переліках МВС",
"errorcode": null,
"errortext": null
},
Якщо знайдено wantedMVS:
Якщо особа перебуває в розшукових переліках МВС:
"wantedMVS": {
"value": true,
"text": "Суб'єкт перебуває в розшукових переліках МВС",
"errorcode": null,
"errortext": null
},
Якщо помилка wantedMVS:
Якщо система не змогла виконати пошук або виникла інша помилка:
"wantedMVS": {
"value": false,
"text": null,
"errorcode": "1",
"errortext": "Не вдалося виконати пошук"
},
Якщо не знайдено wantedSBU:
Якщо особа не перебуває в розшукових переліках СБУ:
"wantedSBU": {
"value": false,
"text": "Суб'єкт не перебуває в розшукових переліках СБУ",
"errorcode": null,
"errortext": null
},
Якщо знайдено wantedSBU:
Якщо особа перебуває в розшукових переліках СБУ:
"wantedSBU": {
"value": true,
"text": "Суб'єкт перебуває в розшукових переліках СБУ",
"errorcode": null,
"errortext": null
},
Якщо помилка wantedSBU:
Якщо система не змогла виконати пошук або виникла інша помилка:
"wantedSBU": {
"value": false,
"text": null,
"errorcode": "1",
"errortext": "Не вдалося виконати пошук"
},
Якщо не знайдено wantedterrorist:
Якщо особа не фігурує в реєстрі терористів:
"wantedterrorist": {
"value": false,
"text": "Суб'єкт не перебуває в реєстрі терористів"
},
Якщо знайдено wantedterrorist:
Якщо особа перебуває в реєстрі терористів:
"wantedterrorist": {
"value": true,
"text": "Суб'єкт перебуває в реєстрі терористів"
},
11. Отримання квитанцій за платежами
Щоб отримати квитанції за платежами у PDF-форматі, потрібно надіслати такий запит:
POST
https://acp.privatbank.ua/api/paysheets/print_receipt
Accept: application/octet-stream
token: token
Content-Type: application/json
{
"transactions": [ {
"account": "UA403052990000026000000000000",
"reference": "REGPO0000B0NW0",
"refn":"1"
}
],
"perPage": 4
}
Де:
За один запит можна отримати до 45 платіжних інструкцій.
У відповідь на запит надійде PDF-файл із платіжними інструкціями.
Сервіс доступний з 13.12.2024.
12. Отримання виписки за терміналами (еквайрингова виписка)
Поле | Тип | Опис | Обов’язкове чи ні | Формат / приклад |
account | String | Номер рахунку, для якого потрібно отримати виписки | Обов’язкове | "1234567890" |
dateFrom | String | Дата початку періоду вибірки | Обов’язкове | "2024-01-01" |
dateTo | String | Дата закінчення періоду вибірки | Обов’язкове | "2024-01-31" |
page | Integer | Номер сторінки результатів | Опціональне | 1 |
numberRecords | Integer | Кількість записів на сторінці. За замовчуванням: 100. | Опціональне | 50 |
statementsDateType | String | Тип дати, за якою фільтруються операції: TRANSACTION_DATE (дата транзакції) або VALUTE_DATE (валютування). За замовчуванням: TRANSACTION_DATE. | Опціональне | "VALUTE_DATE" |
Важливо: різниця між початковою та кінцевою датою не може бути більше ніж 1 день.
Приклад запиту:
POST
https://acp.privatbank.ua/api/equiring/statements
Content-Type: application/json
token: 8b34******==
{
"account": "UA633052990000026009050032237",
"dateFrom": "2025-04-01",
"dateTo": "2025-04-02",
"page": 1,
"statementsDateType": "TRANSACTION_DATE",
"numberRecords": 100
}
Приклад відповіді:
{
"dataCollections": [
{
"Page_Num": 1,
"Ref_Retailer": 651*760,
"Ret_Eng": "NAPRIAMOK TORHOVOHO",
"Ret_Ru": "НАПРЯМОК ТОРГОВОГО ЕКВАЙРИНГУ",
"Ident_Ter": "M13*0ZR3",
"Term_St": "A",
"City": "КИЇВ",
"Adress": "М.КИЇВ, ВУЛ.ТЕСТ, БУД.2",
"Date": "2025-10-20T00:00:00",
"TranPost": "2025-10-20",
"Tran_Invoice": "04*146",
"Pan": "545708****224923",
"Tran_Approval": "03*307",
"Extr_Rrn": "010362*464390",
"Curr": "980",
"Tran_Amt": -10.0,
"Acq_Amt": -0.13,
"Ret_Amt": -9.87,
"Tran_Fee": 0.0,
"Summ": -10.0,
"TranRetPos": "2025-10-21"
},
{
"Page_Num": 1,
"Ref_Retailer": 651*760,
"Ret_Eng": "NAPRIAMOK TORHOVOHO",
"Ret_Ru": "НАПРЯМОК ТОРГОВОГО ЕКВАЙРИНГУ",
"Ident_Ter": "M13*0ZR3",
"Term_St": "A",
"City": "КИЇВ",
"Adress": "М.КИЇВ, ВУЛ.1-А ТЕСТ, БУД.2",
"Date": "2025-10-20T10:09:11",
"TranPost": "2025-10-20",
"Tran_Invoice": null,
"Pan": "545708****224923",
"Tran_Approval": "033*07",
"Extr_Rrn": "010362*464390",
"Curr": "980",
"Tran_Amt": 10.0,
"Acq_Amt": 0.13,
"Ret_Amt": 9.87,
"Tran_Fee": 0.0,
"Summ": 10.0,
"TranRetPos": "2025-10-21"
},
{
"Page_Num": 1,
"Ref_Retailer": 593*188,
"Ret_Eng": "TEST",
"Ret_Ru": "ТЕС",
"Ident_Ter": "S1K7*ETL",
"Term_St": "A",
"City": "КИЇВ",
"Adress": "М.КИЇВ, ПРОВ.ТЕСТ,БУД.1",
"Date": "2025-10-20T16:10:18",
"TranPost": "2025-10-20",
"Tran_Invoice": "912*18",
"Pan": "4149629****01313",
"Tran_Approval": "82*663",
"Extr_Rrn": "010364***0455",
"Curr": "980",
"Tran_Amt": 0.01,
"Acq_Amt": 0.0,
"Ret_Amt": 0.01,
"Tran_Fee": 0.0,
"Summ": 0.01,
"TranRetPos": "2025-10-21"
},
{
"Page_Num": 1,
"Ref_Retailer": 593*188,
"Ret_Eng": "TEST",
"Ret_Ru": "ТЕСТ",
"Ident_Ter": "S1*TL",
"Term_St": "A",
"City": "КИЇВ",
"Adress": "М.КИЇВ, ПРОВ.ТЕСТ,БУД.1",
"Date": "2025-10-20T16:11:48",
"TranPost": "2025-10-20",
"Tran_Invoice": "92*3",
"Pan": "41496*1313",
"Tran_Approval": "491664",
"Extr_Rrn": "0103646752157",
"Curr": "980",
"Tran_Amt": 0.01,
"Acq_Amt": 0.0,
"Ret_Amt": 0.01,
"Tran_Fee": 0.0,
"Summ": 0.01,
"TranRetPos": "2025-10-21"
}
],
"existNextPage": false,
"nextPageId": null
}
13. Інструкція «Як додати співробітника, надати йому доступ та отримати КЕП»
Додавання співробітника
1. Увійдіть у налаштування ⚙️
2. Відкрийте розділ «Доступ до послуг».
3. Натисніть «Додати співробітника».
4. Зазначте його П. І. Б., номер телефону та посаду.
5. Виберіть функції для роботи з електронним документообігом та КЕП.
6. Підтвердьте додавання, підписавши за допомогою SmartID або ключа.
Отримання КЕП
1. Увійдіть у налаштування ⚙️
2. Відкрийте розділ «Ключі КЕП/УЕП».
3. Виберіть, де саме згенерувати КЕП: у застосунку або без застосунку.
Якщо створюєте КЕП без мобільного застосунку
4. Відкрийте вкладку «Створити без застосунку».
5. Придумайте пароль і повторіть його для підтвердження.
6. Позначте «Підписати договір про надання електронних довірчих послуг та розписку про отримання сертифіката».
7. Натисніть «Сформувати ключ».
Якщо створюєте КЕП у мобільному застосунку
8. Залиштеся у вкладці «Створити в застосунку» та дотримуйтеся інструкцій на екрані.
14. Контакти відповідального співробітника
Із запитаннями та пропозиціями можна звертатися на пошту відповідального співробітника: dmitrij.pasichnyj@privatbank.ua.