--- swagger: "2.0" info: title: Payment gateway API version: 1.2.4 description: '**Payment gateway API АО «Банк ЦентрКредит»** предназначен Агентам имеющим разветвленную сеть терминалов для приема оплаты за услуги юридических лиц зарегистрированных в информационной системой Банка' x-ibm-name: payment-gateway-api termsOfService: "" paths: /{agent}/services: get: operationId: getServices responses: 200: description: OK schema: $ref: '#/definitions/response' 500: description: Internal Server Error schema: $ref: '#/definitions/requestStatusInfo' produces: - application/json description: Операция по получению актуальной спецификации параметров услуги и списка услуг доступных Агенту на момент вызова parameters: - name: exclcat in: query type: string description: Параметр форматирования вывода перечня услуг доступных агенту в виде списка или иерархичной структуры основанной на категориях и субкатегориях услуг. security: - Authorization: - access_payment_gateway summary: Получение спецификации услуг доступных Агенту tags: - Получение данных об услугах consumes: - application/json parameters: - $ref: '#/parameters/agent' /{agent}/services/{srvId}/checks: get: operationId: onlineCheck responses: 200: description: OK schema: $ref: '#/definitions/chkEntities' 500: description: Internal Server Error schema: $ref: '#/definitions/requestStatusInfo' produces: - application/json description: Операция по онлайн-проверке и получению персонализированых парамтеров для платежа parameters: - required: true name: srvId in: path type: string description: Идентификатор типа услуги - name: _any in: query type: string description: Абстрактный параметр. Необходимо передавать каждый параметр услуги (полученный в списке услуг) как отдельный параметр запроса. security: - Authorization: - access_payment_gateway tags: - Получение данных об услугах summary: Проверка доступных значений для параметров услуги parameters: - $ref: '#/parameters/agent' /{agent}/services/{srvId}/fees: get: operationId: getFee responses: 200: description: Успешное завершение schema: $ref: '#/definitions/fee' 500: description: 500 Internal Server Error schema: $ref: '#/definitions/requestStatusInfo' produces: - application/json description: Операция по расчету комиссии которую Агент должен взять с Клиента parameters: - required: true name: srvId in: path type: string description: Идентификатор типа услуги - name: amount in: query type: number description: Сумма платежа - name: currency in: query type: string description: Валюта платежа согласно стандарта ISO 4217 (KZT,USD,EUR) - name: _any in: query type: string description: Абстрактный параметр. Наименование параметров и их количество определяется согласно описания услуги в сервисе /services. security: - Authorization: - access_payment_gateway tags: - Получение данных об услугах summary: Расчёт комиссии Банка parameters: - $ref: '#/parameters/agent' /{agent}/transactions: get: operationId: getTrnReport responses: 200: description: OK schema: $ref: '#/definitions/transactions' 500: description: Internal Server Error schema: $ref: '#/definitions/requestStatusInfo' produces: - application/json description: Операция получения списка транзакций (отчёт по транзакциям) введеных в информационную систему Банка а также их статуса parameters: - name: dtFrom in: query type: string format: date-time required: true description: Дата/время начала. Формат даты dd.mm.yyyyThh24:mi:ss - name: dtTo in: query type: string format: date-time required: true description: Дата/время завершения. Формат даты dd.mm.yyyyThh24:mi:ss - name: srvId in: query type: integer description: Фильтр по идентификатору типа услуги - name: status in: query type: string description: Фильтр по статусу security: - Authorization: - access_payment_gateway tags: - Транзакции summary: Получение списка транзакций post: operationId: createTransaction responses: 201: description: Created schema: $ref: '#/definitions/transaction' 422: description: Request invalid schema: $ref: '#/definitions/requestStatusInfo' 500: description: Internal server error schema: $ref: '#/definitions/requestStatusInfo' consumes: - application/json produces: - application/json description: Операция по созданию транзакции в информационной системе Банка. Описание с примерами запросов для услуг доступно на https://readme.readme.io/discuss/593720ded5e183000f565bf3 parameters: - name: body in: body schema: $ref: '#/definitions/transaction' description: Заполненное тело платежа required: true - name: x-jws-signature type: string required: true in: header description: JSON сообщение с ЭЦП и сертификатом в формате Base64. Дополнительная информация инструкции по работе с ЭЦП, а также в RFC 7515. security: - Authorization: - access_payment_gateway summary: Создание транзакции в информационной системе Банка tags: - Транзакции parameters: - $ref: '#/parameters/agent' /{agent}/transactions/{extRefId}: get: operationId: getTransaction responses: 200: description: OK schema: $ref: '#/definitions/transaction' 500: description: Internal Server Error schema: $ref: '#/definitions/requestStatusInfo' produces: - application/json description: Операция по получению деталей транзакции parameters: - $ref: '#/parameters/extRefId' - name: register type: integer required: false in: query enum: - 0 - 1 description: Признак вывода реестра списочного платежа при его наличии. По умолчанию 0. format: integer security: - Authorization: - access_payment_gateway tags: - Транзакции summary: Получение деталей транзакции parameters: - $ref: '#/parameters/agent' - $ref: '#/parameters/extRefId' /{agent}/transactions/{extRefId}/accept: put: responses: 200: description: OK schema: $ref: '#/definitions/transaction' 500: description: Internal server error schema: $ref: '#/definitions/requestStatusInfo' operationId: acceptTransaction summary: Подтверждение транзакции description: Запрос на подтверждение транзакции в случае если при создании транзакции параметр accept = 1 security: - Authorization: - access_payment_gateway tags: - Транзакции parameters: - $ref: '#/parameters/agent' - $ref: '#/parameters/extRefId' /{agent}/transactions/{extRefId}/decline: parameters: - $ref: '#/parameters/agent' - $ref: '#/parameters/extRefId' put: responses: 200: description: OK schema: $ref: '#/definitions/transaction' 500: description: Internal server error schema: $ref: '#/definitions/requestStatusInfo' operationId: declineTransaction summary: Отклонение транзакции description: Запрос на отклонение ранее введеной в платежный шлюз операции в случае если при создании транзакции параметр accept = 1 security: - Authorization: - access_payment_gateway tags: - Транзакции /{agent}/transactions/{extRefId}/redo: parameters: - $ref: '#/parameters/agent' - $ref: '#/parameters/extRefId' put: responses: 200: description: OK schema: $ref: '#/definitions/transaction' 500: description: Internal server error schema: $ref: '#/definitions/requestStatusInfo' tags: - Транзакции summary: Перепроведение транзакции operationId: redoTransaction description: Запрос на перепроведение транзакции. Используется при технических проблеммах связанных с проведением транзакции в АБС Банка. security: - Authorization: - access_payment_gateway /{agent}/reconciliation: post: responses: 200: description: OK schema: $ref: '#/definitions/reconciliationResult' 422: description: Request invalid schema: $ref: '#/definitions/requestStatusInfo' 500: description: Internal Server Error schema: $ref: '#/definitions/requestStatusInfo' summary: Автоматическая сверка операций operationId: executeReconciliation description: Операция по автоматической сверке реестра проведенных платежей за указаный период parameters: - name: rewrite type: integer required: true in: query description: Признак необходимости перезаписи реестра format: int32 - name: register required: true in: body schema: $ref: '#/definitions/register' description: Реестр транзакций tags: - Отчеты, сверки, баланс parameters: - $ref: '#/parameters/agent' - $ref: '#/parameters/x-jws-signature' /{agent}/balance: get: responses: 200: description: OK schema: $ref: '#/definitions/balance' 401: description: Unauthorized 404: description: Not found tags: - Отчеты, сверки, баланс summary: Получение текущего баланса агента operationId: getAgentBalance description: Операция по получению текущего баланса на счете агента parameters: - $ref: '#/parameters/agent' /{agent}/statement: get: operationId: getStatement responses: 200: description: OK schema: $ref: '#/definitions/statement' 401: description: Unauthorized produces: - application/json parameters: - $ref: '#/parameters/agent' - required: true name: dt in: query type: string description: 'Операционная дата выписки. Формат: dd.MM.yyyy' - required: false name: page in: query type: integer description: Номер страницы для вывода операций, общее количество страниц выписки указанно в аттрибуте totalPage ответа. По умолчанию 1 tags: - Отчеты, сверки, баланс summary: Получение выписки с операциями по счету Банка description: Операция по получению постраничной выписки с операциями по счету Банка /{agent}/reports: get: operationId: getReports responses: 200: description: OK schema: $ref: '#/definitions/reportResponse' 500: description: Internal server error schema: $ref: '#/definitions/requestStatusInfo' produces: - application/json description: Формирование отчетов parameters: - $ref: '#/parameters/agent' - required: true name: report in: query type: string enum: - getReturnReport description: Наименование отчета - required: false name: dtFrom in: query type: string description: 'Дата начала периода. Формат: dd.MM.yyyy' - required: false name: dtTo in: query type: string description: 'Дата окончания периода. Формат: dd.MM.yyyy' tags: - Отчеты, сверки, баланс summary: Формирование отчетов basePath: /v1/pgs definitions: service: type: object description: Объект, описывающий услугу properties: id: type: string description: Идентификатор услуги example: "2" code: type: string description: Код услуги example: uib name: type: string description: Наименование услуги example: UIB note: type: string description: Примечание example: Оплата за обучение chktype: type: string description: Тип проверки example: getContractByIin params: $ref: '#/definitions/svcParams' description: Параметры услуги register: description: Реестр $ref: '#/definitions/svcParams' response: type: object description: Описание ответа для метода получения информации об услугах properties: categories: $ref: '#/definitions/categories' description: Объект, возвращаемый в случае ответа 'С категориями' services: $ref: '#/definitions/services' description: Объект, возвращаемый в случае ответа 'Без категорий' category: type: object description: Описание категории услуг properties: code: type: string description: Код example: education name: type: string description: Наименование example: Обучение categories: $ref: '#/definitions/categories' description: Дочерние (зависимые) категории services: $ref: '#/definitions/services' description: Услуги, включённые в категорию categories: type: array description: Массив категорий items: $ref: '#/definitions/category' services: type: array description: Массив услуг items: $ref: '#/definitions/service' fee: type: object description: Объект комиссии properties: amount: type: string description: Сумма currency: type: string description: Валюта paramsSet: description: Массив наборов параметров услуги type: array items: type: string svcParams: type: array description: Массив параметров items: $ref: '#/definitions/svcParam' svcParam: type: object description: "Описание параметра сервиса и ограничений по нему для корректной работы с услугой. \n\nПараметр **{prmType} тип операции предусматривает передачу на сторону агента типа параметра для описания возможных операции с данным параметром на стороне агента\n\n| Код | Тип | Описание |\n|-----|--------|---------------------------------------------------------------------------------------------------------------------------------|\n| 0 | in | Входящий параметр |\n| 1 | out | Выходящий без возможности редактирования (Изменение параметра на стороне агента не учитывается в сервисе проведения платежа) |\n| 2 | in/out | Выходящий с возможностью редактирования (Допускается изменение на стороне агента для последующей передачи в сервисы) |\n| 3 | out | Информационный (Используется для передачи дополнительных информационных параметров) |\n| 4 | out | Выходяший в виде списка без возможности редактирования (например справочник доступных КНП или КБК по услуге) |\n| 5 | out \ | Выходяший в виде списка c возможностью редактирования (например список известных VIN кодов для клиента при оплате штрафов) |" properties: code: type: string description: Код example: agreement name: type: string description: Наименование example: Код услуги note: type: string description: Примечание example: "null" min: type: string description: Минимальная длина example: "1" max: type: string description: Максимальная длина example: "10" regexpMask: type: string description: Регулярное выражение для валидации параметра при создании транзакции example: "null" regexpChk: type: string description: Регулярное выражение для валидации параметра при онлайн-проверке example: "null" prmType: type: string example: "0" description: Тип параметра chkCode: type: string description: Код при онлайн-проверки example: "null" value: type: string description: Значение параметра valueList: description: Список значений параметра $ref: '#/definitions/valueList' chkParam: type: object description: Описание параметра ответа онлайн-проверки properties: code: type: string description: Код prmType: type: string description: Тип параметра value: type: string description: Значение параметра valueMask: type: string description: Усечённое значение параметра для отображения valueList: type: string description: Список значений. Поле используется при prmType = 4 или 5 chkParams: type: array description: Массив параметров ответа онлайн-проверки items: $ref: '#/definitions/chkParam' chkEntities: type: array description: Массив возвращаемых сущностей ответа онлайн-проверки items: $ref: '#/definitions/chkParams' trnParam: type: object description: Параметр транзакции properties: code: type: string description: Код параметра value: type: string description: Значение параметра trnParams: type: array description: Массив параметров транзакции items: $ref: '#/definitions/trnParam' transaction: type: object description: Описание транзакции properties: id: type: integer description: Идентификатор транзакции srvId: type: integer description: Идентификатор услуги example: "1" amount: type: number description: Сумма транзакции example: 100 currency: type: string description: Валюта транзакции example: KZT extRefNo: type: string description: Референс во внешней системе example: "129783" point: type: string description: Наименование точки предоставления услуги (ID терминала, отделения, наименование сервиса и т.д.) example: Пункт оплаты status: type: string description: Статус транзакции statusName: type: string description: Описание статуса createDate: type: string description: Дата создания транзакции finishDate: type: string description: Дата завершения транзакции srvParams: $ref: '#/definitions/svcParams' description: Параметры услуги register: $ref: '#/definitions/arrayObjects' description: Реестр в рамках проведения списочных платежей, согласно спецификации на услугу items: type: string accept: type: integer description: Признак ожидания одобрения платежа. 0 - автоодобрение (по умолчанию), 1 - одобрение платежа вызовом сервиса /accept example: "0" format: int32 terminal: type: string description: Уникальный идентификатор терминала. Используется при оплате услуг через ECommerce шлюз АО "Банк ЦентрКредит" example: "88888888" fee: type: number description: Комиссия, которая взимается агентом example: 10 format: float authcode: type: string description: Код авторизации example: "965825" rrn: type: string description: RRN Транзакции example: "9856321589632" card: type: string description: 'Маскированный номер карты, по которой была осуществлена оплата. Формат: 000000****** 0000' example: 489999******6236 required: - srvId - amount - currency - fee - extRefNo additionalProperties: false transactions: type: array description: Массив транзакций items: $ref: '#/definitions/transaction' statement: type: object properties: inBalance: type: number description: Входящий баланс на начало периода example: 10.010000 outBalance: type: number description: Исходящий баланс на начало периода example: 20.010000 currentPage: type: integer description: Номер текущей страницы example: 21 totalPage: type: integer description: Количество страниц в выписке example: 56 operations: $ref: '#/definitions/operations' operations: type: array items: $ref: '#/definitions/operation' operation: type: object properties: extRefNo: type: string description: Идентификатор операции в информационной системе клиента example: EXT1234566 date: type: string description: 'Дата и время проведения операции. Формат: yyyy-MM-dd HH:mm:ss' example: 19-09-2020 17:00:00 type: type: string description: Тип операции. debit - дебет счета, credit - кредит счета example: debit account: type: string description: IBAN. 20 значный номер счета example: KZ000000000000000001 bank: type: string description: Идентификационный код банка (БИК) example: KCJBKZKX idn: type: string description: Идентификационный номер участника операции example: "000000000000" name: type: string description: Наименование участника операции amount: type: number example: 10.010000 description: Сумма операции currency: type: string example: KZT description: Валюта операции согласно стандарта ISO 4217 (KZT, USD, EUR) knp: type: string example: "911" description: КНП операции narrative: type: string example: Платёж СБВ description: Назначение операции required: - extRefNo - account - amount - date - type reportResponse: type: object properties: _any_: type: string description: Параметры отчета reportRows: $ref: '#/definitions/reportRows' reportRows: type: array items: $ref: '#/definitions/reportRow' reportRow: description: Строка отчета type: object properties: _any_: type: string description: Аттрибут строки отчета reportRows: $ref: '#/definitions/reportRows' jose-header: properties: x5c: type: array items: type: string description: Содержит публичный ключ сертификата X.509 или цепочку сертификатов. Дополнителные сведения RFC 7515 раздел 4.1.2. example: '["X.509-1","X.509-2"]' alg: type: string description: Используемый криптографический алгоритм. Дополнителные сведения RFC 7515 раздел 4.1.2. example: '"RS256"' additionalProperties: false description: Описывает цифровую подпись примененную при подписании сообщения. Дополнительные сведения приведены в раздел 4 RFC 7515 ( https://tools.ietf.org/html/rfc7515#page-9 ) jws-message: properties: payload: type: string example: eyJzcnZJZCI6MSwiYW1vdW50IjoxMDAsImN......1cnJl description: Исходное сообщение JSON закодированное в Base64 которое требуется подписать ЭЦП signatures: $ref: '#/definitions/jws-signatures' description: Массив электронных подписей подписавших сообщений. additionalProperties: false description: Сообщение для шлюза подписанное в соответствии с стандартом JSON Web Signature (https://tools.ietf.org/html/rfc7515) required: - payload - signatures jws-signatures: description: Маccив электронных подписей подписавших сообщение. type: array items: $ref: '#/definitions/jws-signature' jws-signature: properties: header: $ref: '#/definitions/jose-header' description: Заголовки описывающие электронную подпись. signature: type: string description: Электронная подпись сообщения. additionalProperties: false description: Определяет параметры подписи и саму подпись для подписанного сообщения (JWS Payload) и защищенных заголовков сообщения. Дополнительная информация RFC 7515 раздел 7.2.1. required: - header - signature x-jws-signature: type: string description: Подписанное ЭЦП зарегистрированной в банке сообщение в формате JWS JSON Serialization представленное в формате base64url(jws-message). Дополнительная информация RFC 7515 раздел 3.2. register: properties: dtFrom: type: string description: Период реестра с format: date example: "2019-04-19" dtTo: type: string description: Период реестра по format: date example: "2019-04-19" amount: type: number description: Сумма реестра format: double example: 100000 currency: type: string enum: - KZT - USD - EUR description: Валюта реестра согласно стандарта ISO 4217 (KZT, USD, EUR) example: KZT records: description: Массив записей реестра транзакций для проведения автоматической сверки items: type: string $ref: '#/definitions/registerRecords' additionalProperties: false description: Реестр проведенных операций required: - dtFrom - dtTo - amount - currency - records registerRecords: type: array items: $ref: '#/definitions/registerRecord' description: Список транзакций для проведения автоматической сверки registerRecord: properties: extRefNo: type: string description: Уникальный идентификатор транзакции в информационной системе Агента example: "123456789" amount: type: number description: Сумма транзакции example: 1000 trnDate: type: string description: Дата проведения транзакции на стороне Агента. Формат YYYY-MM-DDThh:mm:ss (ISO 8601) example: "2019-04-19T16:27:42" format: date-time currency: type: string description: Валюта реестра согласно стандарта ISO 4217 (KZT, USD, EUR) example: KZT note: type: string description: Описание не соответствия при проведении автоматической стороне. Заполняется в ответе Банка example: Транзакция с референсом ххххх не найдена в системе Банка additionalProperties: false description: Описание полей транзакции в отчете по автоматической сверке required: - amount - trnDate - currency - extRefNo requestStatusInfo: properties: success: type: boolean description: Признак результата выполнения запроса example: "true" code: type: string description: Код выполнения status: type: string description: Статус выполнения reason: type: string description: Код результата выполнения запроса example: "0" description: type: string description: Описание результата выполнения запроса example: Успешно additionalProperties: false description: Информация о результате вызова запроса required: - success - reason reconciliationResult: properties: code: type: string description: Код результата выполнения автоматической сверки. 1 - сверка успешна, 2 - при сверке выявлены не соответствия example: "0" description: type: string description: Описание кода результата выполнения автоматической сверки example: Успешно notMatchingList: description: Список транзакций не соответствующих входящему реестру. Заполняется при code = 2 $ref: '#/definitions/registerRecords' additionalProperties: false description: Результаты автоматической сверки required: - code valueList: description: Список допустимых значений type: array items: $ref: '#/definitions/value' value: properties: value: type: string description: Значение параметра example: "913" note: type: string description: Представление значения для пользователя example: Штрафы за нарушение законодательства Республики Казахстан additionalProperties: false description: Допустимое значение для параметров required: - value balance: properties: balance: type: number description: Балансе на счете агента format: float example: 109000 processed: type: number description: Сумма транзакций в обработке format: float example: 10900 threshold: type: number description: Неснижаемый остаток format: float example: 1000000 additionalProperties: false description: |- Информация о балансе на счете агента Примечание: Параметр threshold возвращается только по агентам, которые работают по предоплате required: - balance - processed arrayObjects: description: Абстрактный массив объектов со структурой описываемой в спецификации услуги. Используется в таких услугах как списочные платежи (пенсионные, социальные отчисления и т.п.) type: array items: $ref: '#/definitions/arrayObject' arrayObject: properties: _any_: type: string description: Абстрактный параметр описаний в технической спецификации услуги additionalProperties: true description: Объект с описанием полей и ограничений в технической спецификации услуги x-ibm-configuration: enforced: true testable: true phase: realized schemes: - https consumes: - application/json produces: - application/json securityDefinitions: Authorization: type: oauth2 description: Токен аутентификации полученый при вызове сервиса авторизации flow: application scopes: access_payment_gateway: Allow access to Payment gateway API tokenUrl: https://api.bcc.kz/bcc/production/v1/oauth2/token x-tokenIntrospect: url: "" parameters: agent: name: agent type: string required: true in: path description: Уникальный идентификатор агента полученный в Банке при заключении Договора extRefId: name: extRefId type: string required: true in: path description: Уникальный идентификатор транзакции в информационной системе Агента x-jws-signature: name: x-jws-signature type: string required: true in: header description: JSON сообщение с ЭЦП и сертификатом в формате Base64. Дополнительная информация инструкции по работе с ЭЦП, а также в RFC 7515. security: - Authorization: - access_payment_gateway tags: - name: Оператор услуг description: Сервисы по оплате поставщикам услуг зарегистрированным в АО "Банк ЦентрКредит" - name: Получение данных об услугах - name: Транзакции - name: Отчеты, сверки, баланс x-ibm-endpoints: - endpointUrl: https://api.bcc.kz:10443/bcc/production description: Альтернативная точка подключения для вызова сервиса в продуктивной среде. Зарегистрированное на портале developer.bcc.kz приложение должно быть в режиме "PRODUCTION" type: - production - development - endpointUrl: https://api.bcc.kz/bcc/production description: Точка подключения для вызова сервиса в продуктивной среде. Зарегистрированное на портале developer.bcc.kz приложение должно быть в режиме "PRODUCTION" type: - production - endpointUrl: https://api-test.bcc.kz/bcc/production description: Точка подключения для вызова сервисов в тестовой среде. Зарегистрированное на портале developer.bcc.kz приложение должно быть в режиме "DEVELOPMENT" type: - development ...