{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"c5c22ff2-d110-482b-ac34-c9d240f2a9e3","name":"OSMICards","description":"> Обновлено 01/12/2024 \n  \n\n# Введение\n\nНабор интеграционных REST API (далее просто API) предназначен для автоматизации работы с электронными картами, выдаваемыми и поддерживаемыми порталом OSMICards. С помощью API становится возможным создавать дополнительные приложения по работе с шаблонами и картами, динамически изменять параметры карты, выдавать новые карты и отсылать их клиентам через смс.\n\n_Набор API постоянно совершенствуется и дополняется, поэтому для работы всегда пользуйтесь новейшей версией документации._\n\n> Текущая версия API 1.22 \n  \n\n# Общая информация\n\nДоступ к API осуществляется по принципам стандартного механизма REST (Representational state transfer) с использованием стандартных HTTP запросов. Общая идеология API предусматривает поддержку следующих HTTP команд:\n\n- **GET** - Запросить данные о ресурсе/ресурсах\n    \n- **PUT** - Изменить значения ресурса\n    \n- **POST** - Создать новый ресурс\n    \n- **DELETE** - Удалить ресурс\n    \n\nВозвращаемые сервером данные всегда передаются в формате JSON в кодировке UTF-8 и с установленным заголовком _Сontent-type: application/json_\n\nСтрока запроса URI должна быть всегда URL-encoded и все отправляемые на сервер данные должны быть в кодировке UTF-8\n\n# Доступ к API\n\nАдрес доступа всегда назначается компанией ОСМИ при создании учетной записи клиента и передается клиенту вместе с параметрами доступа. Примеры таких адресов доступа:\n\n[https://api10.osmicards.com](https://api10.osmicards.com)\n\n[https://api8.osmicards.com](https://api8.osmicards.com)\n\nЕсли сервис предоставляется с использованием домена клиента, то адрес доступа может выглядеть и так:\n\n[https://api.moidomen.ru](https://api.moidomen.ru)\n\n# Способы авторизации\n\nСервис поддерживает три типа авторизации. Каждый тип авторизации добавляет свой суффикс к выданному адресу доступа и формирует базовый адрес доступа для конкретного метода используемой авторизации:\n\n1. HTTP Digest: добавляет **/v2**\n    \n2. Token: добавляет **/v2t**\n    \n3. Клиентский сертификат: добавляет **/v2c**\n    \n\nПоэтому если Вам был выдан адрес доступа к API [https://api8.osmicards.com](https://api8.osmicards.com) и Вы собираетесь использовать авторизацию по **Token**, то базовый адрес доступа к REST API будет выглядеть как [https://api8.osmicards.com/v2t](https://api8.osmicards.com/v2t) и команда запроса списка карт будет выглядеть как [https://api8.osmicards.com/v2t/passes](https://api8.osmicards.com/v2t/passes)\n\nЕсли же Вы собираетесь использовать **HTTP Digest** авторизацию, то базовый адрес доступа к REST API будет выглядеть как [https://api8.osmicards.com/v2](https://api8.osmicards.com/v2) и команда запроса списка карт будет выглядеть как [https://api8.osmicards.com/v2/passes](https://api8.osmicards.com/v2/passes)\n\nВсе методы REST API работают одинаково, независимо от выбранного типа авторизации.\n\n> В данном руководстве показываются примеры работы с ресурсом **/v2t** с предварительным получением токена доступа. \n  \n\n# Коды ошибок\n\nНа все команды возвращаются стандартные HTTP статусы:\n\n- **200** Запрос обработался без ошибок, сервер вернул данные клиенту\n    \n- **204** Запрос обработался без ошибок, нет данных для ответа клиенту\n    \n- **400** Ошибка при обработке запроса; вероятно ошибка в данных\n    \n- **403** Не хватает прав доступа к ресурсу\n    \n- **404** Запрошенный ресурс не существует\n    \n- **500** Внутренняя ошибка сервера\n    \n\nПри исполнении большинства API команд и получении HTTP статуса об ошибке 400, всегда рекомендуется дополнительно проверить тело ответа на наличие расширенного кода ошибки и текстового описания ошибки. Ответ сервера в случае получения этих ошибок будет содержать заголовок \"Content-Type: application/json\" и данные в формате json\n\n``` javascript\n{\n  \"RCODE\": 3xx,\n  \"RMESSAGE\": \"расширенное сообщение об ошибке\"\n}\n\n ```\n\n## Значения RCODE и RMESSAGE при HTTP статусе 400\n\n- **500** Internal server error\n    \n- **300** Invalid API Key / API Secret\n    \n- **301** Invalid Pass Number\n    \n- **302** Invalid Template Number\n    \n- **303** Invalid Value\n    \n- **304** Account Disabled\n    \n- **305** Requires POST method\n    \n- **306** Requires HTTPS\n    \n- **307** Data error\n    \n- **309** Invalid command\n    \n- **310** Invalid Serial Number\n    \n- **311** Invalid Template\n    \n- **312** Update failed\n    \n- **313** Invalid location data\n    \n- **314** Missing/Invalid data\n    \n- **315** Invalid label\n    \n- **316** Too many fields\n    \n- **317** Date/Time must be in W3C format\n    \n- **318** Push notification failed\n    \n- **319** Card already exists\n    \n- **320** Error creating card\n    \n- **321** SMS send failed\n    \n- **322** Invalid mobile number\n    \n- **323** Move failed\n    \n- **324** Failed to get card download link\n    \n- **325** Invalid card link type request\n    \n- **326** Unknown target for change\n    \n- **327** Update defaults failed\n    \n- **328** Invalid SMS template. Must include {}\n    \n- **329** Invalid email address\n    \n- **330** Error accessing current barcode values\n    \n- **331** Invalid barcode format\n    \n- **332** Invalid barcode message/signature show parameter\n    \n- **333** Invalid barcode message/signature type parameter\n    \n- **334** Unsupported barcode encoding\n    \n- **335** Barcode message has symbols illegal for configured encoding\n    \n- **336** Invalid scan schema\n    \n- **337** Failed to capture scan in DB\n    \n- **338** Invalid scan data supplied\n    \n- **339** Invalid or missing scan source\n    \n- **340** ACL - Access denied\n    \n- **341** Invalid or missing image data\n    \n- **342** Requested image type is not supported\n    \n- **343** Failed to delete requested resource\n    \n- **344** Invalid Image Id\n    \n- **345** Image is used by card(s) and/or chop(s)\n    \n- **346** Invalid image data\n    \n- **347** Invalid image type\n    \n- **348** Image type is not allowed for current card style\n    \n- **349** Invalid combination of images for current card style\n    \n- **350** Invalid color data\n    \n- **351** No Iiko support\n    \n- **352** Invalid Iiko login\n    \n- **353** Error creating Iiko user\n    \n- **354** Can't get user info by id\n    \n- **355** Iiko card already exists\n    \n- **356** No Iiko registered user\n    \n- **357** Invalid PIN\n    \n- **358** Email send failed\n    \n- **359** Invalid protection option\n    \n- **360** Invalid sms text, missing {}\n    \n- **369** Campaign not active\"\n    \n- **370** Invalid Campaign\n    \n- **371** Invalid page content\n    \n- **372** Invalid/missing card issuing parameters\n    \n- **373** Invalid/too long card prefix\n    \n- **374** Invalid/too long possible serial number\n    \n- **375** Too many cards requested\n    \n- **376** Resulting serial number is too long\n    \n- **377** Campaign already exists\n    \n- **378** Invalid date/time\n    \n- **379** SMS Provider error\n    \n- **380** Not a chop card\n    \n- **381** Not possible operate on this card\n    \n- **382** Such chop schema already exists\n    \n- **383** Wrong number of max chops\n    \n- **384** This Chop program is disabled\n    \n- **385** Invalid chop offer name\n    \n- **386** Missing Icon\n    \n- **390** Invalid card style\n    \n- **391** Invalid appStore data\n    \n- **392** Template not empty\n    \n- **393** Invalid iBeacon data\n    \n- **400** Invalid link/serial\n    \n- **415** Invalid registration group\n    \n- **420** Send pass via email functionality disabled\n    \n- **421** No recipient address\n    \n- **422** Error creating attachment\n    \n- **424** Language not supported\n    \n- **425** Database insert failed\n    \n- **426** This language is not enabled for your company\n    \n- **427** This language is not enabled for your account\n    \n- **428** Image is too large. Should be less than 1.5MB\n    \n- **429** No UCS CRM support\n    \n- **430** UCS phone registration failed\n    \n- **431** UCS card activation failed\n    \n- **432** UCS new user create failed\n    \n- **433** No Manzana CRM support\n    \n- **434** Ошибка поиска контакта в Manzana\n    \n- **435** Ошибка создания пользователя в Manzana\n    \n- **436** Ошибка привязки карты в Manzana\n    \n- **437** Ошибка обновления контакта из анкеты в Manzana\n    \n- **438** UCS get PIN failed\n    \n- **450** SailPlay not supported\n    \n- **451** SailPlay phone already exists\n    \n- **452** SailPlay email already exist\n    \n- **453** SailPlay doesn't provide both email and phone during update\n    \n- **460** Iiko API Delivery returned error\n    \n- **461** CSR creation error\n    \n- **462** Invalid certificate format\n    \n- **463** No matching CSR found\n    \n- **464** Certificate doesn't match account\n    \n- **465** No certificate for account\n    \n- **466** No valid new certificate found\n    \n- **467** Data already exist and marked as deleted","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":true,"owner":"6643741","team":1029024,"collectionId":"c5c22ff2-d110-482b-ac34-c9d240f2a9e3","publishedId":"SzmZdLfG","public":true,"publicUrl":"https://apidocs.osmicards.com","privateUrl":"https://go.postman.co/documentation/6643741-c5c22ff2-d110-482b-ac34-c9d240f2a9e3","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"EF5B25"},"documentationLayout":"classic-double-column","customisation":null,"version":"8.11.4","publishDate":"2020-05-12T19:08:03.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[{"name":"OSMICards","id":"c22549c2-9446-4b88-a6c0-643d566e4d87","owner":"6643741","values":[{"key":"apiId","value":"xxxxxxxxxx","enabled":true,"type":"secret"},{"key":"apiKey","value":"yyyyyyyyyy","enabled":true,"type":"secret"},{"key":"baseurl","value":"https://vm-api.osmicards.com/v2t","enabled":true},{"key":"accessToken","value":"94468bbebb637484b76e15984327b9e2c2516bad","enabled":true},{"key":"serialNo","value":"0000011","enabled":true},{"key":"template","value":"CreaConcept","enabled":true},{"key":"push","value":"true","enabled":true},{"key":"stats","value":"true","enabled":true},{"key":"extendedInfo","value":"true","enabled":true},{"key":"filterVoided","value":"true","enabled":true},{"key":"showOS","value":"true","enabled":true},{"key":"filterStatus","value":"2","enabled":true},{"key":"activeOnly","value":"true","enabled":true},{"key":"fields","value":"one,two","enabled":true},{"key":"status","value":"true","enabled":true},{"key":"graphics","value":"true","enabled":true},{"key":"barcode","value":"true","enabled":true},{"key":"locations","value":"true","enabled":true},{"key":"createdAfter","value":"2019-04-20T20:10:00Z","enabled":true},{"key":"updatedAfter","value":"2019-04-20T20:10:00Z","enabled":true},{"key":"activatedAfter","value":"2019-04-20T20:10:00Z","enabled":true},{"key":"page","value":"1","enabled":true},{"key":"showKeys","value":"true","enabled":true},{"key":"data","value":"true","enabled":true},{"key":"datalink","value":"true","enabled":true},{"key":"edit","value":"true","enabled":true},{"key":"withDefaults","value":"true","enabled":true},{"key":"moveAll","value":"true","enabled":true},{"key":"withValues","value":"true","enabled":true},{"key":"email","value":"test@test.com","enabled":true},{"key":"from","value":"ivan@mail.ru","enabled":true},{"key":"fromName","value":"Fitness Club","enabled":true},{"key":"subject","value":"your Wallet card","enabled":true},{"key":"body","value":"This is you card {link}","enabled":true},{"key":"attachment","value":"true","enabled":true},{"key":"linkType","value":"qr","enabled":true},{"key":"message","value":"Ваша карта готова {link}","enabled":true},{"key":"messageId","value":"1234","enabled":true},{"key":"sender","value":"OSMICARDS","enabled":true},{"key":"phoneNum","value":"79998887755","enabled":true},{"key":"msgStatus","value":"1","enabled":true},{"key":"smsToken","value":"816ae13302d0bf2766e9d86eb634c4cd30f7b92c","enabled":true},{"key":"searchFront","value":"true","enabled":true},{"key":"searchBack","value":"true","enabled":true},{"key":"searchText","value":"Иван","enabled":true},{"key":"imageId","value":"66RWPRWM38G0","enabled":true},{"key":"showCards","value":"true","enabled":true},{"key":"imgData","value":"true","enabled":true},{"key":"chopSchema","value":"three_cups","enabled":true},{"key":"chopAction","value":"set","enabled":true},{"key":"chopValue","value":"2","enabled":true},{"key":"statsStart","value":"2020-02-05","enabled":true},{"key":"statsEnd","value":"2020-02-08","enabled":true},{"key":"statsStartW3C","value":"2020-02-08T10:15:00Z","enabled":true},{"key":"campaingName","value":"poolTest","enabled":true},{"key":"regLink","value":"TAUTD7RX","enabled":true},{"key":"regStatus","value":"-registered-","enabled":true},{"key":"regData","value":"true","enabled":true},{"key":"regGroup","value":"Demo","enabled":true},{"key":"arrayFormat","value":"false","enabled":true},{"key":"registeredOnly","value":"true","enabled":true},{"key":"smsStatus","value":"-created-","enabled":true},{"key":"referrer","value":"CE2E9B011EE1218B42CD07D0C74B81F7796AC132","enabled":true},{"key":"event","value":"userregister","enabled":true},{"key":"messageid","value":"1","enabled":true,"type":"default"},{"key":"id","value":"14","enabled":true,"type":"default"},{"key":"withPreview","value":"true","enabled":true,"type":"default"},{"key":"access_token","value":"","enabled":true,"type":"any"},{"key":"orgid","value":"","enabled":true,"type":"any"},{"key":"correlationId","value":"","enabled":true,"type":"any"}],"published":true}],"user":{"authenticated":false,"permissions":{"publish":false}},"run":{"button":{"js":"https://run.pstmn.io/button.js","css":"https://run.pstmn.io/button.css"}},"web":"https://www.getpostman.com/","team":{"logo":"https://res.cloudinary.com/postman/image/upload/t_team_logo_pubdoc/v1/team/a332aea8213b0abc1730d61457b608a71556e22866458eec6ad7543160c53de9","favicon":"https://res.cloudinary.com/postman/image/upload/v1589308684/team/rs6h58cogbnuaywknyda.ico"},"isEnvFetchError":false,"languages":"[{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"HttpClient\"},{\"key\":\"csharp\",\"label\":\"C#\",\"variant\":\"RestSharp\"},{\"key\":\"curl\",\"label\":\"cURL\",\"variant\":\"cURL\"},{\"key\":\"dart\",\"label\":\"Dart\",\"variant\":\"http\"},{\"key\":\"go\",\"label\":\"Go\",\"variant\":\"Native\"},{\"key\":\"http\",\"label\":\"HTTP\",\"variant\":\"HTTP\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"OkHttp\"},{\"key\":\"java\",\"label\":\"Java\",\"variant\":\"Unirest\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"Fetch\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"jQuery\"},{\"key\":\"javascript\",\"label\":\"JavaScript\",\"variant\":\"XHR\"},{\"key\":\"c\",\"label\":\"C\",\"variant\":\"libcurl\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Axios\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Native\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Request\"},{\"key\":\"nodejs\",\"label\":\"NodeJs\",\"variant\":\"Unirest\"},{\"key\":\"objective-c\",\"label\":\"Objective-C\",\"variant\":\"NSURLSession\"},{\"key\":\"ocaml\",\"label\":\"OCaml\",\"variant\":\"Cohttp\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"cURL\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"Guzzle\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"HTTP_Request2\"},{\"key\":\"php\",\"label\":\"PHP\",\"variant\":\"pecl_http\"},{\"key\":\"powershell\",\"label\":\"PowerShell\",\"variant\":\"RestMethod\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"http.client\"},{\"key\":\"python\",\"label\":\"Python\",\"variant\":\"Requests\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"httr\"},{\"key\":\"r\",\"label\":\"R\",\"variant\":\"RCurl\"},{\"key\":\"ruby\",\"label\":\"Ruby\",\"variant\":\"Net::HTTP\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"Httpie\"},{\"key\":\"shell\",\"label\":\"Shell\",\"variant\":\"wget\"},{\"key\":\"swift\",\"label\":\"Swift\",\"variant\":\"URLSession\"}]","languageSettings":[{"key":"csharp","label":"C#","variant":"HttpClient"},{"key":"csharp","label":"C#","variant":"RestSharp"},{"key":"curl","label":"cURL","variant":"cURL"},{"key":"dart","label":"Dart","variant":"http"},{"key":"go","label":"Go","variant":"Native"},{"key":"http","label":"HTTP","variant":"HTTP"},{"key":"java","label":"Java","variant":"OkHttp"},{"key":"java","label":"Java","variant":"Unirest"},{"key":"javascript","label":"JavaScript","variant":"Fetch"},{"key":"javascript","label":"JavaScript","variant":"jQuery"},{"key":"javascript","label":"JavaScript","variant":"XHR"},{"key":"c","label":"C","variant":"libcurl"},{"key":"nodejs","label":"NodeJs","variant":"Axios"},{"key":"nodejs","label":"NodeJs","variant":"Native"},{"key":"nodejs","label":"NodeJs","variant":"Request"},{"key":"nodejs","label":"NodeJs","variant":"Unirest"},{"key":"objective-c","label":"Objective-C","variant":"NSURLSession"},{"key":"ocaml","label":"OCaml","variant":"Cohttp"},{"key":"php","label":"PHP","variant":"cURL"},{"key":"php","label":"PHP","variant":"Guzzle"},{"key":"php","label":"PHP","variant":"HTTP_Request2"},{"key":"php","label":"PHP","variant":"pecl_http"},{"key":"powershell","label":"PowerShell","variant":"RestMethod"},{"key":"python","label":"Python","variant":"http.client"},{"key":"python","label":"Python","variant":"Requests"},{"key":"r","label":"R","variant":"httr"},{"key":"r","label":"R","variant":"RCurl"},{"key":"ruby","label":"Ruby","variant":"Net::HTTP"},{"key":"shell","label":"Shell","variant":"Httpie"},{"key":"shell","label":"Shell","variant":"wget"},{"key":"swift","label":"Swift","variant":"URLSession"}],"languageOptions":[{"label":"C# - HttpClient","value":"csharp - HttpClient - C#"},{"label":"C# - RestSharp","value":"csharp - RestSharp - C#"},{"label":"cURL - cURL","value":"curl - cURL - cURL"},{"label":"Dart - http","value":"dart - http - Dart"},{"label":"Go - Native","value":"go - Native - Go"},{"label":"HTTP - HTTP","value":"http - HTTP - HTTP"},{"label":"Java - OkHttp","value":"java - OkHttp - Java"},{"label":"Java - Unirest","value":"java - Unirest - Java"},{"label":"JavaScript - Fetch","value":"javascript - Fetch - JavaScript"},{"label":"JavaScript - jQuery","value":"javascript - jQuery - JavaScript"},{"label":"JavaScript - XHR","value":"javascript - XHR - JavaScript"},{"label":"C - libcurl","value":"c - libcurl - C"},{"label":"NodeJs - Axios","value":"nodejs - Axios - NodeJs"},{"label":"NodeJs - Native","value":"nodejs - Native - NodeJs"},{"label":"NodeJs - Request","value":"nodejs - Request - NodeJs"},{"label":"NodeJs - Unirest","value":"nodejs - Unirest - NodeJs"},{"label":"Objective-C - NSURLSession","value":"objective-c - NSURLSession - Objective-C"},{"label":"OCaml - Cohttp","value":"ocaml - Cohttp - OCaml"},{"label":"PHP - cURL","value":"php - cURL - PHP"},{"label":"PHP - Guzzle","value":"php - Guzzle - PHP"},{"label":"PHP - HTTP_Request2","value":"php - HTTP_Request2 - PHP"},{"label":"PHP - pecl_http","value":"php - pecl_http - PHP"},{"label":"PowerShell - RestMethod","value":"powershell - RestMethod - PowerShell"},{"label":"Python - http.client","value":"python - http.client - Python"},{"label":"Python - Requests","value":"python - Requests - Python"},{"label":"R - httr","value":"r - httr - R"},{"label":"R - RCurl","value":"r - RCurl - R"},{"label":"Ruby - Net::HTTP","value":"ruby - Net::HTTP - Ruby"},{"label":"Shell - Httpie","value":"shell - Httpie - Shell"},{"label":"Shell - wget","value":"shell - wget - Shell"},{"label":"Swift - URLSession","value":"swift - URLSession - Swift"}],"layoutOptions":[{"value":"classic-single-column","label":"Single Column"},{"value":"classic-double-column","label":"Double Column"}],"versionOptions":[],"environmentOptions":[{"value":"0","label":"No Environment"},{"label":"OSMICards","value":"6643741-c22549c2-9446-4b88-a6c0-643d566e4d87"}],"canonicalUrl":"https://apidocs.osmicards.com/view/metadata/SzmZdLfG"}