1. Параметри протоколу
  2. Аутентифікація та ідентифікація
  3. Формати параметрів
  4. Команди
  5. Коди відповіді на запит
  6. Результати виконання команд
  7. Статуси операції

1. Параметри протоколу

1.1 Вступ

Контрактор і сервер обмінюються повідомленнями через HTTP методом POST у форматі text/xml. Кодування повідомлень — UTF-8.
HTTP-заголовок Content-Type вказує на формат повідомлення:

Content-Type: text/xml; charset=utf-8

1.2 URL сервісу

Усі запити надсилаються на адресу:

https://core.c-b-g.company/ContractorApi.php

1.3 Відповідь сервера

  • Успіх: HTTP 200 OK та <ReturnCode>0</ReturnCode><ReturnMessage>OK</ReturnMessage>
  • Помилки: інші ReturnCode, пояснення в ReturnMessage.

Відсутність відповіді або HTTP-код який відрізняється від 200 не означає відмову. Повторіть запит після вирішення проблем.


2. Аутентифікація та ідентифікація

2.1 Ідентифікація Контрактора

HTTP-заголовок:

X-GC-Auth-Point: <номер точки>

2.2 Аутентифікація запиту за ЕЦП

HTTP-заголовок:

X-GC-Auth-Sign: <підпис у Base64>
  • Алгоритм: RSA/SHA1
  • Підпис формується за тілом запиту

2.3 ЕЦП відповіді сервера

Сервер додає підпис в заголовок відповіді:

X-GC-Auth-Sign: <підпис у Base64>

3. Формати параметрів

3.1 Ідентифікатор операції (OperationId)

Унікальний рядок (до 64 символів), напр.:

  • "1112"
  • "1113_1228"
  • "1114_12282359"

3.2 Ідентифікатор сервісу (ServiceId)

Унікальний ідентифікатор типу сервісу. Доступні сервіси — в Каталозі.

3.3 Обсяг угоди (Volume)

Типи:

  • A — кількість (у.о., штуки)
  • V — вартість (в UAH)

Наприклад: "12345.012V"

3.4 Позначення

  • INT - рядок цифр, що містить ціле невід'ємне число, не більше 2^16, наприклад, "12345";
  • LONG - рядок цифр, що містить ціле невід'ємне число не більше 2^32, наприклад, "12345";
  • VARCHAR(n) - рядок довільних символів, довжиною трохи більше n, наприклад, "qwerty";
  • MONEY - рядок, що містить невід'ємне число фіксованої точності від 0 до 4 знаків у дробовій частині з роздільником крапка, та з непустою цілою частиною, наприклад, "1.0000" "0.01";
  • VOLUME - рядок, що містить значення типу MONEY, об'єднаний з типом обсягу операції (A або V) шляхом об'єднання рядків, наприклад, "12345.012V";
  • DATETIME - рядок, що містить дату та час у форматі YYYY-MM-DDTHH:MM:SS. Приклад: "2025-01-01T15: 52:50";
  • PARAMS – рядок, який містить значення реквізитів конкатенованих символом “;”.

4. Команди

4.1 Типи команд

  • Operation — провести операцію
  • Check — перевірити стан операції

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

  • ResultCode
  • ResultMessage
  • ResultData

4.3 Команда Operation

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

Назва Тип Обов’язково Приклад
OperationId VARCHAR(64) + 123_250509
ServiceId INT + 1
Volume MONEY +* 1
Price MONEY +* 1.12
Params PARAMS + 380913016166
ConfirmMode INT - 1
Timeout INT - 30
OrderId INT - 123
Timestamp INT - 1194966781
Paid MONEY - 10.30
TerminalId INT - 21

* — хоча б один із параметрів обов’язковий: Volume або Price

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

<OperationRequest>
  <Commands>
    <OperationRequestCommand>
      <ServiceId>1</ServiceId>
      <OperationId>125206188472552900</OperationId>
      <Volume>1</Volume>
      <Params>380913016166</Params>
      <Timeout>30</Timeout>
    </OperationRequestCommand>
  </Commands>
</OperationRequest>

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

<Response>
  <ReturnCode>0</ReturnCode>
  <ReturnMessage>OK</ReturnMessage>
  <Commands>
    <OperationResponseCommand>
      <ResultCode>412</ResultCode>
      <ResultMessage>Очікується підтвердження або скасування операції</ResultMessage>
      <OperationId>125206188472552900</OperationId>
      <Id>14507921</Id>
    </OperationResponseCommand>
  </Commands>
</Response>

4.4 Команда Check

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

Назва Тип Приклад
OperationId VARCHAR(64) 123_250509

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

<CheckRequest>
  <Commands>
    <CheckRequestCommand>
      <OperationId>125206188472552900</OperationId>
    </CheckRequestCommand>
  </Commands>
</CheckRequest>

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

<Response>
  <ReturnCode>0</ReturnCode>
  <ReturnMessage>OK</ReturnMessage>
  <Commands>
    <CheckResponseCommand>
      <ResultCode>412</ResultCode>
      <ResultMessage>Очікується підтвердження або скасування операції</ResultMessage>
      <OperationId>125206188472552900</OperationId>
    </CheckResponseCommand>
  </Commands>
</Response>

5. Коди відповіді на запит (ReturnCode)

Код Повідомлення
0 Успішно
101 Внутрішня помилка сервера
201 Неправильний формат запиту або помилки при спробі декомпресії тіла повідомлення
202 Потрібен метод POST
203 Потрібен SSL
204 Тайм-аут на читання запиту вичерпано, клієнт передає дані надто повільно
205 Потрібен http-заголовок Content-Length
206 Розмір запиту перевищує максимально допустимий (Максимум - 1048576 байт (1 Мб))
207 Неприпустиме значення http-заголовка Content-Type
208 Неприпустиме значення http-заголовка Content-Encoding
209 Відсутність або помилка формату http-заголовків
210 Відмова сервера в авторизації запиту
301 Неправильно вказано ідентифікатор точки контрактора

6. Результати виконання команд (ResultCode)

Код Повідомлення
0 Команда виконана успішно
304 Неправильно вказано ідентифікатор сервісу (ServiceId)
302 Неправильно вказано ідентифікатор операції
305 Неправильно вказано обсяг операції
306 Неправильно вказані реквізити операції
307 Неправильно вказано режим підтвердження операції
308 Неправильно вказано тайм-аут операції
309 Неправильно вказано ідентифікатор чека
310 Неправильно вказано дату/час формування операції
311 Неправильно вказано суму оплати клієнтом
312 Неправильно вказано ідентифікатор терміналу
313 Неправильно вказана дата
315 Сума менша за допустиму
314 Сума більша за допустиму
401 Команда відхилена з технічних причин
402 Команда виконана Неуспішно
410 Команда знаходиться на виконанні. Перевірте статус
418 Параметри не пройшли валідацію на стороні провайдера
404 Операція знаходиться на обробці
405 Операція з таким ідентифікатором вже існує
406 Операція з таким ідентифікатором не існує
407 Операція успішно оброблена
408 Операція відхилена системою
409 Сервіс тимчасово недоступний
411 Перевищено ліміт команд у черзі
412 Очікується підтвердження або скасування операції
413 Очікується оплата операції через мерчант
414 Запит по операції прийнято
415 Операцію скасовано контрактором
416 Підтверджену операцію неможливо скасувати
417 У процесі виконання
418 Параметри не пройшли валідацію на стороні провайдера
419 Перевірка не вдалася
420 Відмова від провайдера
421 Транзакція неуспішна. Кошти повернуто платнику або на баланс
422 Очікуються додаткові параметри платежу
423 Очікується завершення транзакції
512 Платіж вже існує
505 Платіж не прийнято
506 Валідація провалена під час перевірки достатності даних
507 Валідацію провалено під час перевірки підпису
508 Валідація провалена під час перевірки параметрів платежу
509 Валідацію провалено під час перевірки суми платежу
510 Платіж скасовано
511 Недостатньо коштів на балансі у контрактора. Поповніть баланс

7. Статуси операції (ResultCode)

Код Опис
404 В обробці – повторіть Check
407 Успішно
408 Відхилено
412 Очікується підтвердження або скасування
415 Скасовано контрактором

results matching ""

    No results matching ""