API ЭТП OTC-tender для осуществления коммерческих закупок и закупок в соответствии с нормами 223 ФЗ Адрес сервиса: http://services.publicapi.otc-tender.ru/OtcWebService.svc Тестирование методов сервиса: http://publicapi.otc-tender.ru Informicus © 2013 Оглавление ЛИСТ ИЗМЕНЕНИЙ ............................................................................................................... 3 1 ВЗАИМОДЕЙСТВИЕ С ВЕБ-СЕРВИСОМ .................................................................... 4 1.1. Назначение ................................................................................................................ 4 1.2. Протоколы взаимодействия ..................................................................................... 4 1.3. Пример обращения ................................................................................................... 4 1.4. Обработка ошибок..................................................................................................... 4 2 МЕТОДЫ API.................................................................................................................. 6 2.1. Аутентификация и авторизация ............................................................................... 6 2.2. Получение списка закупок (лотов) ........................................................................... 6 2.3. Получение карточки закупки (лота) по номеру........................................................ 7 2.4. Получение документов по закупке (лоту) ................................................................ 7 2.5. Получение документа ............................................................................................... 8 2.6. Регистрация документов........................................................................................... 8 2.7. Получение файлов .................................................................................................... 9 2.8. Выгрузка неподписанных документов на ЭТП ...................................................... 10 2.9. Установка флага просмотра документа в значение “true”.................................... 10 3 ПЕРЕЧЕНЬ СХЕМ СТРУКТУРЫ ПЕРЕДАВАЕМЫХ ДАННЫХ ................................. 12 API ЭТП OTC-tender Informicus © 2013 Page 2 of 12 ЛИСТ ИЗМЕНЕНИЙ Автор Дата Причина внесения изменений 1. API ЭТП OTC-tender Informicus © 2013 Page 3 of 12 1 ВЗАИМОДЕЙСТВИЕ С ВЕБ-СЕРВИСОМ 1.1. Назначение API может быть использован для интеграции внешних систем с электронной площадкой OTC-Tender. Заказчики могут использовать API для: Получения информации о своих процедурах Получения информации о заявках и поданных ценовых предложениях Регистрации документов на площадке (протоколов, контрактов) Регистрации новых процедур (черновиков процедур). 1.2. Протоколы взаимодействия Взаимодействие с сервисом осуществляется по протоколу WS-I Basic Profile 1.1 (SOAP 1.1). Данный документ содержит описание механизма взаимодействия внешних систем и сервиса по данному протоколу. 1.3. Пример обращения Ниже приведён пример вызова одного из методов RegisterDocument, вызванного для регистрации итогового протокола закупки: WebServiceResponse protocolResponse = _client.RegisterDocument(_sessionToken, _xml, null, "FinalProtocol"); где sessionToken – token, получаемый после авторизации (ввода логина и пароля пользователя), _xml – текст в формате xml, сформированный по схеме FinalProtocol.xsd, FinalProtocol – один из типов регистрируемых документов (подробнее будет описано ниже). В результате обращения к сервису в качестве выходных данных будут получены: response.Status – 0, в случае если при обращении не возникло ошибки, или номер ошибки, в случае возникновения ошибки при обращении к сервису response.Description: 1.4. o описание ошибки, в случае возникновения ошибки при обращении к сервису o описание успешного вызова метода (например, "Документ успешно зарегистрирован" в случае успешного вызова RegisterDocument) response.Response – выходные параметры вызываемого метода (например, идентификатор зарегестрированного документа в случае вызова метода RegisterDocument). Обработка ошибок При обращении к веб-сервису системы необходимо обрабатывать возвращаемые значения для корректного определения статуса запроса. Возвращаемые ошибки состоят из двух значений: номера ошибки и её описания. Номер ошибки содержится в поле Status, описание - в Description. В случае, если запрос завершился без ошибок, значение Status будет равным 0, в поле Description будет содержаться запрашиваемая информация. При возникновении ошибки поле Status будет содержать значение -1 в случае технических неполадок, либо -11, если запрошенные данные не могут быть выданы. WebServiceResponse response = _client.GetDocuments(_sessionToken, query, 1, 100); API ЭТП OTC-tender Informicus © 2013 Page 4 of 12 if (response.Status != 0) { Console.Write(String.Format("[\{0\}] error:\{1\}", response.Status, response.Description)); return null; } Пример 1. Обработка сообщения об ошибке В сообщении об ошибке содержится xml с описанием ошибки вида: <Errors> <Error> <ErrorMessage>Текст ошибки</ErrorMessage> </Error> <Error> <ErrorMessage>Текст ошибки 2</ErrorMessage> </Error> </Errors> Это значение можно разобрать, используя стандартные средства работы с xml, и вывести соответствующее сообщение пользователю. API ЭТП OTC-tender Informicus © 2013 Page 5 of 12 2 МЕТОДЫ API API включает следующие методы: Authorization GetPurchases GetPurchaseByNum GetDocuments GetDocument RegisterDocument GetFile GetFileEX UploadDocWithoutSignValidation ConfirmDocumentView 2.1. Аутентификация и авторизация Для обращения к сервисам API необходимо использовать авторизационный ключ (токен). Полученный токен должен передаваться в cookie запроса. Имя cookie – token. Имя метода: Authorization Входные параметры: Параметр Тип Обязательный Описание userLogin String Да Логин пользователя userPassword String Да Пароль пользователя Проверка входных данных: контроль аутентификационной информации переданной во входных параметрах. Выходные параметры: Параметр Тип Обязательный Описание token String Да token сессии 2.2. Получение списка закупок (лотов) Имя метода: GetPurchases Предварительные условия: получен token методом Authorization. Входные параметры: Параметр Тип Обязательный Описание Token String Да token сессии Выходные параметры: API ЭТП OTC-tender Informicus © 2013 Page 6 of 12 Параметр Тип Обязательный Описание Lots String Да xml-файл со списком закупок (лотов), сформированный по схеме Lots.xsd 2.3. Получение карточки закупки (лота) по номеру Имя метода: GetPurchaseByNum Предварительные условия: получен token методом Authorization. получен идентификатор закупки/лота методом GetPurchases. Входные параметры: Параметр Тип Обязательный Описание Token String Да token сессии purchId String Да Идентификатор закупки (лота) Параметр Тип Обязательный Описание purchase String Да Xml-файл с описанием лота, структура которого определяется схемой Procedure.xsd, в которой в массиве передаваемых лотов будет только лот с запрашиваемым идентификатором. Выходные параметры: 2.4. Получение документов по закупке (лоту) Имя метода: GetDocuments. Предварительные условия: получен token методом Authorization. получен идентификатор закупки (лота) методом GetPurchases. Входные параметры: Параметр Тип Обязательный Описание token String Да Token сессии pageNumber Integer Номер страницы pageSize Integer Количество документов на одной странице query String Да Запрос в формате xml. Описан в схеме methodInputs.xsd. Параметр Тип Обязательный Описание documents String Да Список документов. Выходные параметры: Сценарии использования метода: API ЭТП OTC-tender Informicus © 2013 Page 7 of 12 2.5. Получение поданных заявок по лоту: необходимо в запросе указать тип документа Requests Получение первых частей заявок, для закупок площадки OTC-tender, если выбранный способ определения поставщика предполагает подачу зачвки в двух частях: необходимо в запросе указать тип документа Requests14 Получение вторых частей заявок, для закупок площадки OTC-tender, если выбранный способ определения поставщика предполагает подачу зачвки в двух частях: необходимо в запросе указать тип документа Requests24 Получение запросов на разъяснение и опубликованных по запросам разъяснений: необходимо в запросе указать тип документа Clarifications. Получение полного списка ценовых предложений, поданных в ходе проведения торга (для аукционов и редукционов) или переторжки: необходимо в запросе указать тип ReductionParticipantPrices. Получение договора: необходимо в запросе указать тип документа Contract. Получение документа Имя метода: GetDocument Предварительные условия: получен token методом Authorization. получен идентификатор документа методом GetDocuments. Входные параметры: Параметр Тип Обязательный Описание token String Да Token сессии docimentid Integer Да Идентификатор документа Параметр Тип Обязательный Описание document String Да Xml в соответсвии с одной из схем в зависимости от запрашиваемого типа. Выходные параметры: 2.6. Регистрация документов Имя метода: RegisterDocument Предварительные условия: получен token методом Authorization. Входные параметры: Параметр Тип Обязательный Описание Token String Да token сессии documentType String Да Тип документа: Notice – извещение. Регистрируя документ с таким типом возможна публикация извещения (черновока процедуры). Протоколы. Через регистрацию протокола возможно провести: API ЭТП OTC-tender Informicus © 2013 Page 8 of 12 рассмотрение заявок (рассмотрение первых и вторых частей заявок), оценку, подведение итогов и опубликовать протоколы по процедуре. o ConsiderationProtocol o ConsiderationReductionProtocol o EstimateProtocol o SecondPartsProtocol o ReductionFinalProtocol o FinalProtocol RefuseLot – ругистрация протокола отказа от лота. RefuseProcedure – регистрация протокола отказа от процедуры. Contract – регистрация контракта ContractSendFotRevision – протокол разногласий String Да Описание документа в формате xml по схеме: Notice – Procedure.xsd Протоколы (наименования схем xsd совпадают с наименованием типов протоколов). RefuseLot – RefuseLot.xsd RefuseProcedure – RefuseProcedure.xsd Contract – Contract.xsd Contract SendForRevision ContractSendForRevision.xsd Параметр Тип Обязательный Описание documentType String Да Тип документа documentId integer Да Идентификатор зарегистрированного документа Document Выходные параметры: Типы регистрируемых протоколов: ConsiderationProtocol - протокол рассмотрения заявок (протокол рассмотрения первых частей заявок при проведении аукционов с подачей заявки в двух частях). ConsiderationReductionProtocol – протокол рассмотрения первых частей при проведении редукциона. EstimateProtocol – протокол оценки заявок для процедур, в которых предусмотрена оценка заявок SecondPartsProtocol – протокол рассмотрения вторых частей заявок для процедур, в которых осуществляется подача заявки в двух частях ReductionFinalProtocol- итоговый протокол проведения редукциона FinalProtocol- итоговый протокол для всех типов процедур, кроме редукциона. 2.7. Получение файлов Имя метода: GetFile или GetFileEx API ЭТП OTC-tender Informicus © 2013 Page 9 of 12 Предварительные условия: получен token методом Authorization получен идентификатор файла GUID. Входные параметры: Параметр Тип Обязательный Описание Token String Да Token сессии GUID String Да Идентификатор файла Выходные параметры метода GetFile: Параметр Тип Обязательный Описание File String Да Строка в кодировке Base64. Выходные параметры метода GetFileEx: Параметр Тип Обязательный Описание File Byte[] Да Файл в виде массива байт. 2.8. Выгрузка неподписанных документов на ЭТП Имя метода: UploadDocWithoutSignValidation Предварительные условия: получен token методом Authorization. Входные параметры: Параметр Тип Обязательный Описание Token String Да Token сессии Filename String Да Имя файла Description String filebites byte[] Да Содержимое файла Параметр Тип Обязательный Описание GUID String Да Идентификатор файла Описание Выходные параметры: 2.9. Установка флага просмотра документа в значение “true”. Имя метода: ConfirmDocumentView Предварительные условия: получен token методом Authorization. Получен идентификатор документа методом GetDocuments. Входные параметры: API ЭТП OTC-tender Informicus © 2013 Page 10 of 12 Параметр Тип Обязательный Описание token String Да Token сессии Documented Integer Да Идентификатор документа API ЭТП OTC-tender Informicus © 2013 Page 11 of 12 3 ПЕРЕЧЕНЬ СХЕМ СТРУКТУРЫ ПЕРЕДАВАЕМЫХ ДАННЫХ Описание методов включает передачу данных в формате xml по следующим схемам: Authorization.xsd FileInfo.xsd GetAllOKDPIn.xsd GetAllOKDPOut.xsd GetCustomerListIn.xsd GetCustomerListOut.xsd GetDocumentPurchaseCommentRequestOut.xsd getdocuments.xsd GetDocumentsDifferenceProtocolOut.xsd GetDocumentsIn.xsd GetDocumentsLotProtocolFilesIn.xsd GetDocumentsLotProtocolFilesOut.xsd GetDocumentsOut.xsd GetDocumentsProtocolCountOut.xsd GetDocumentsProtocolOut.xsd GetParticipantExOut.xsd GetPurchaseByNumOut.xsd GetPurchaseOut.xsd GetPurchasesOut.xsd GetWorkGroupsForCurrentOrganizationAndBusinessOperatorOut.xsd ModifiedProcudures.xsd Procedure.xsd Protocol.xsd Protocols.xsd ProtocolType.xsd UploadDocWithoutSignValidationOut.xsd API ЭТП OTC-tender Informicus © 2013 Page 12 of 12