{"activeVersionTag":"latest","latestAvailableVersionTag":"latest","collection":{"info":{"_postman_id":"7f91e324-1fe4-4936-94ab-b8a6d7a805dc","name":"MandarinPay Routes API","description":"API базируется на технологии REST API. В системе используются ресурсо-ориентированные точки входа (endpoints), а все ответы, возвращаемые системой, имеют формат JSON.\r\n\r\nВсе запросы к API должны осуществляться через HTTPS. Запросы с HTTP будут отклоняться.\r\n\r\nAPI является асинхронным (незначительная часть запросов работает синхронно): на ваш запрос вы синхронно получите `id` платежа (запроса), а затем в асинхронном режиме получите callback-уведомление, включающее полученный ранее `id` платежа (запроса), а также статус операции и прочие данные по ней.\r\n\r\n![alt Marketplace-Mandarin WebSequence](https://nextcloud.mandarinbank.com/index.php/s/KMozCRdJEwH6Qta/preview \"Marketplace-Mandarin WebSequence\")\r\n\r\nДля того, чтобы вы могли максимально протестировать API, вы можете использовать тестовое (`stage`) и боевое (`prod`) окружения. Запросы, создаваемые в тестовом окружении, никогда передаются в банковские информационные системы и, следовательно, не приводят к возникновению затрат.\r\n\r\n\r\n# Глоссарий\r\n**Мерчант** — юридическое или физическое лицо, принимающее денежные средства от клиентов или выплачивающее денежные средства.\r\n\r\n**Маркетплейс** — мерчант (только юридическое лицо), который имеет возможность отправлять запросы на ввод/вывод средств от имени других мерчантов (саб-мерчантов).\r\n\r\n**Саб-мерчант** — мерчант (юридическое или физическое лицо), средства на счет которого зачисляются (в случае приема платежей) или списываются (в случае выплат) по запросу от маркетплейса.\r\n\r\n\r\n# Окружения\r\n\r\n## Тестовое окружение (stage)\r\n\r\nПараметр `{{domain}}` для тестового окружения принимает значение:\r\n\r\n**api-sandbox.mandarinpay.com**\r\n\r\n*Для подключения тестового окружения Вам необходимо связаться с менеджерами MandarinPay и сообщить данные, необходимые для регистрации личного кабинета. В личном кабинете авторизационные данные можно найти, следуя [инструкции](https://mandarinbank.omnidesk.ru/knowledge_base/item/79723).*\r\n\r\n\r\n## Боевое окружение (prod)\r\n\r\nПараметр `{{domain}}` для боевого окружения принимает значение:\r\n\r\n**api.mandarinpay.com**\r\n\r\n\r\n# Тестовые карты\r\nДанные тестовых карт для проверки работоспособности **на тестовом окружении**.\r\n\r\n| Параметр | Значение | Комментарий |\r\n|---------------------|:----------------:|---------------------------------------------------------------------------------:|\r\n| Срок действия | Любой | Позднее текущего месяца в формате ММ/ГГ |\r\n| CVV | Любой |  |\r\n| Имя держателя карты | CARD HOLDER |  |\r\n| Номер карты | 4782776496928582, 5167448623781910, 6762355253772803 | Для имитации неуспешных транзакций |\r\n| Номер карты | 4692065455989192, 5210177935176090, 6761438221045105 | Для имитации успешных транзакций (без 3DSecure) |\r\n\r\n# Мониторинг во время отладки (heartbeat)\r\nИнструмент **HeartBeat** осуществляет мониторинг транзакций и callback-уведомлений:\r\n\r\n* Мониторинг транзакций: [HeartBeat - Транзакции](https://secure.mandarinpay.com/admin/heartbeat/transactions)\r\n* Мониторинг привязок банковских карт: [HeartBeat - Привязки](https://secure.mandarinpay.com/admin/heartbeat/card-bindings)\r\n* Мониторинг callback-уведомлений: [HeartBeat - Уведомления](https://secure.mandarinpay.com/admin/heartbeat/notifications)\r\nЗдесь находится список callback-уведомлений, по которым не получены ответы со статусом \"200-ОК\".\r\n\r\nДля входа используйте `MerchantID` и `Secret` в качестве логина и пароля соответственно.\r\n\r\n\r\n# Аутентификация\r\n\r\n## Аутентификация через хэш (X-auth)\r\n\r\nЗапрос должен быть с заголовком `Content-Type: application/json`. Авторизация запросов к API происходит путем использования API Secret Key и вашего Merchant ID для формирования заголовка X-Auth следующего содержания: `merchantId-SHA256(merchantId-requestId-secret)-requestId`\r\n\r\n`requestId` - уникальный номер запроса, представляющий из себя текущий таймстамп в миллисекундах, либо набор байт, сгенерированный криптографически-надёжным генератором случайных числел.\r\n\r\nAPI запросы без заголовка или с некорректным заголовком, в том числе некорректным `X-Auth`, будут отклонены без создания транзакций.\r\n\r\nДля проверки корректности расчета `X-Auth` можете воспользоваться [данной утилитой.](http://docs.mandarinbank.com/files/SecureMandarinSignCalculator.exe)\r\n\r\nПример расчета `Х-Auth` на PHP:\r\n\r\n```\r\n<?php\r\nfunction gen_auth($merchantId, $secret)\r\n{\r\n\t $reqid = time() .\"_\". microtime(true) .\"_\". rand();\r\n     $hash = hash(\"sha256\", $merchantId .\"-\". $reqid .\"-\". $secret);\r\n     return $merchantId .\"-\".$hash .\"-\". $reqid;\r\n}\r\n?>\r\n```\r\n\r\n# Синхронные ответы\r\n\r\nMandarinPay использует стандартные HTTP коды для индикации успешности или неуспешности API запросов. \r\nВ общем случае, коды формата `2хх` означают успешность, коды формата `4xx` говорят о неуспешности запроса в связи с предоставленной информацией (отсутствие нужного формата, неверно сформированный заголовок и т.д.), коды в формате `5хх` говорят о неисправности на стороне сервера MandarinPay (довольно редкий случай).\r\n\r\n**Примеры ответов**\r\n\r\nЗапрос обработан корректно, транзакция создана:\r\n`200-OK`\r\n\r\nДля транзакции:\r\n```\r\n{\r\n  \"id\": \"43913ddc000c4d3990fddbd3980c1725\",\r\n  \"userWebLink\": \"https://secure.mandarinpay.com/Pay?transaction=0eb51e74-e704-4c36-b5cb-8f0227621518\",\r\n  \"jsOperationId\": \"9874694yr87y73e7ey39ed80\"\r\n}\r\n```\r\n\r\nДля привязки:\r\n```\r\n{\r\n    \"id\": \"0eb51e74-e704-4c36-b5cb-8f0227621518\",\r\n    \"userWebLink\": \"https://secure.mandarinpay.com/CardBindings/New?id=0eb51e74-e704-4c36-b5cb-8f0227621518\",\r\n    \"jsOperationId\": \"binding-4994591t5-194t694159t-43t5345\"\r\n}\r\n```\r\n\r\nЗапрос некорректен, транзакция не создана:\r\n`400-Bad Request`\r\n\r\n```\r\n{\r\n  \"error\": \"Invalid request\"\r\n}\r\n```\r\n\r\nПеречень полей и их описание\r\n\r\n| Поле          | Описание                                                                 |\r\n|---------------|--------------------------------------------------------------------------|\r\n| id            | id созданной операции                                                    |\r\n| userWeblink   | Ссылка для перенаправления пользователя при работе с платежной страницей |\r\n| jsOperationId | Идентификатор операции для использования с CustomPay                     |\r\n| error         | Текстовое описание ошибки                                                |\r\n\r\nПосле получения прямого ответа существует три варианта развития событий:\r\n\r\n**1. Для использования платежной страницы**\r\n\r\nПеренаправить пользователя по ссылке, полученной в качестве `userWebLink` (см. в отдельной главе).\r\n\r\n**2. Для использования встроенной формы CustomPay**\r\n\r\nИспользовать значение из `jsOperationId` в качестве `OperationId` в соответствии с описанием (см. в отдельной главе).\r\n\r\n**3. Для запросов с асинхронным ответом**\r\n\r\nОжидать callback, значение `id` которого будет равно значению `id`, полученному в синхронном ответе.\r\n\r\nДалее в описании запросов указано, выполняются ли они синхронно, или помимо синхронного ответа будет также асинхронный callback.\r\n\r\n\r\n# Асинхронные ответы (Callback)\r\n\r\nУведомления высылаются на `CallbackUrl` POST-запросом с `Content-Type: application/x-www-urlencoded`. Значение `CallbackUrl` необходимо передавать в составе соответствующего запроса к API.\r\n\r\nДля подтверждения того, что уведомление пришло именно от системы MandarinPay, а также тот факт, что данные переданные в уведомлении не были искажены, необходимо проверять значение поля `sign`.\r\n\r\nПоле `sign` представляет из себя SHA256-сумму от значений всех параметров уведомления, отсортированных алфавитно по именам и `Secret`, разделённых символом `-`.\r\n\r\n**ОБРАТИТЕ ВНИМАНИЕ**\r\n**ВСЕ ПОЛЯ УВЕДОМЛЕНИЯ ДОЛЖНЫ БЫТЬ ОТСОРТИРОВАНЫ В АЛФАВИТНОМ ПОРЯДКЕ С ИСПОЛЬЗОВАНИЕМ СТАНДАРТНОГО АЛГОРИТМА СОРТИРОВКИ ВАШЕГО ЯЗЫКА ПРОГРАММИРОВАНИЯ!**\r\n\r\nДля проверки правильности расчета `sign` можете воспользоваться [данной утилитой](http://docs.mandarinbank.com/files/SecureMandarinSignCalculator.exe).\r\n\r\n![screen](http://docs.mandarinbank.com/images/CheckSign.png)\r\n\r\n- Вставьте тело `callback` в поле (1);\r\n- Вставьте `Secret` в поле (2);\r\n- Значение `Sign` будет рассчитано автоматически в поле (3).\r\n\r\n***В качестве ответа, обозначающего, что callback успешно обработан на вашей стороне, необходимо вернуть в MandarinPay ответ с HTTP-код `200` и телом `OK`.***\r\n\r\n**Обратите внимание**\r\n\r\n**Любой другой ответ будет означать, что callback не обработан. В этом случае MandarinPay повторяет отправку callback-запроса в течение 2 суток, или до получения ответа об успешной обработке (в зависимости от того, что наступит ранее).**\r\n\r\nВ зависимости от значения *object_type* уведомления бывают следующих видов:\r\n\r\n| Тип | Описание |\r\n|--------------|:--------------:|\r\n| card_binding | Привязка карты |\r\n| transaction | Транзакция |\r\n\r\n\r\n**Обратите внимание**\r\n**Состав полей в callback-уведомлении может меняться, для этих целей добавлена “соль”, поэтому важно использовать корректный обработчик и не хардкодить набор полей.**\r\n\r\nПеречень и описание полей, передаваемых в составе *callback*-уведомления\r\n\r\n| Поле | Обязателен | Описание |\r\n|:------------------------------------:|:----------:|:---------------------------------------------------------------------------------------------------------------------------:|\r\n| 3dsecure | Нет | Индикатор подтверждения платежа с помощью ввода кода 3D Secure |\r\n| action | Нет | Действие (покупка `pay` или выплата на карту `payout`), актуально только  для транзакций |\r\n| callbackUrl | Нет | Адрес для отправки callback |\r\n| card_binding | Нет | ID привязки в системе, актуален только для привязок |\r\n| card_expiration_month | Нет | Месяц срока действия карты |\r\n| card_expiration_year | Нет | Год срока действия карты |\r\n| card_holder | Нет | Владелец карты |\r\n| card_number | Нет | Номер карты (маскированный) |\r\n| cb_processed_at | Нет | Дата и время обработки операции |\r\n| customer_fullName | Нет | ФИО пользователя |\r\n| customer_email | Нет | Адрес email пользователя |\r\n| customer_phone | Нет | Телефон пользователя |\r\n| destinationWallet | Нет | ID аккаунта получателя |\r\n| email | Нет | Email пользователя |\r\n| error_code | Нет | Код ошибки. Отсутствие кода не гарантирует успешность операции! |\r\n| error_description | Нет | Описание ошибки |\r\n| gw_channel | Нет | Название канал для перевода средств |\r\n| gw_id | Нет | ID канала для перевода средств |\r\n| merchantId | Да | ID мерчанта |\r\n| object_type | Да | Тип объекта (транзакция `transaction` или привязка `binding`) |\r\n| orderActualTill | Нет | Срок резервирования товара/услуги. После указанной даты оплата будет невозможна |\r\n| orderId | Да | Уникальный номер заказа в системе Продавца |\r\n| price | Да | Сумма платежа. Обязательна к передаче в текущей версии системы (кроме привязок) |\r\n| returnUrl | Нет | Адрес магазина для переадресации по окончанию операции |\r\n| sourceWallet | Нет | ID аккаунта отправителя |\r\n| status | Да | Статус операции: `success`, `failed`, `payout-only`. **Только статус `success` однозначно указывает на успешность операции!** |\r\n| transaction | Нет | ID транзакции в системе. Актуален только для транзакций |\r\n| transaction_rrn | Нет | Retrieval Reference Number - уникальный идентифкатор транзакции в системе   Банка-эмитента банковской карты |\r\n| d6797d04-d688-4a55-8190-861224243701 | Да | Соль (UUID для названия и значения параметра генерируются случайным образом) |\r\n| sign | Да | Подпись для аутентификации |\r\n\r\n\r\n**Пример callback-уведомления об успешной оплате**\r\n```\r\n3dsecure=true&action=pay&callbackUrl=http%3A%2F%2Fapi.example.com%2Fpayment%2Fcallback&card_expiration_month=09&card_expiration_year=2020&card_holder=CARD%20HOLDER&card_number=426101XXXXXX0981&cb_customer_creditcard_number=426101XXXXXX0981&cb_processed_at=2019-07-02T17%3A19%3A48.9263239Z&customer_email=payer%40example.com&customer_fullName=%20%20&destinationWallet=77da9a25-6375-4564-ae16-4b7cf67abcbd&email=payer%40example.com&gw_channel=psb&gw_id=21170999&merchantId=1155&object_type=transaction&orderActualTill=2019-07-02%2017%3A38%3A49%2B00%3A00&orderId=pmnt664-41-1562087929&payment_system=mandarinpayv1&price=200&returnUrl=http%3A%2F%2Fapi.example.com%2Fpayment%2Freturn&sourceWallet=None&status=success&transaction=9077846044464860b77f5bd21db014d1&transaction_rrn=918391478368&d6797d04-d688-4a55-8190-861224243701=fde5f8f3-f207-4006-abe6-ad2e1eaddab6&sign=9bb79a61ac033c9fa4ed9e34ff924125a4f591fb824aa116002d21c1f1a1d45c\r\n```\r\n\r\n**Пример callback-уведомления о успешной выплате**\r\n```\r\naction=payout&callbackUrl=http%3A%2F%2Fapi.example.com%2Fpayment%2Fcallback&card_number=479087XXXXXX7961&cb_customer_creditcard_number=479087XXXXXX7961&cb_processed_at=2019-07-02T13%3A23%3A46.1177446Z&customer_email=payer%40example.com&customer_fullName=%20%20&customer_phone=%2B79265115520&destinationWallet=None&email=payer%40example.com&gw_channel=psb_ng&gw_id=21161072&merchantId=1155&object_type=transaction&orderActualTill=2019-07-04%2013%3A23%3A43Z&orderId=pmnt331-6-1562073823&payment_system=mandarinpayv1&price=67.96&returnUrl=http%3A%2F%2Fapi.example.com%2Fpayment%2Freturn&sourceWallet=3cee651d-5f4a-4cc3-83b8-83646ae8a84b&status=success&transaction=d09cebe4b07c4171ae9a8f23d1b22eb8&transaction_rrn=918347529420&81476cc7-215f-4416-9649-174633cd71b0=9cce5a9a-06ac-4668-864f-99550d3fc6d2&sign=c96f954bf6ff5928e044d361eca5ab463aa135ff29423a2c5c81301880034773\r\n```\r\n\r\n**Пример callback-уведомления об отсутствии оплаты в течение срока резервирования товара (ошибка)**\r\n```\r\naction=pay&callbackUrl=http%3A%2F%2Fapi.example.com%2Fpayment%2Fcallback&customer_email=eagles%40chay.mobi&customer_fullName=%20%20&destinationWallet=77da9a25-6375-4564-ae16-4b7cf67abcbd&email=payer%40example.com&merchantId=1155&object_type=transaction&orderActualTill=2019-07-02%2019%3A28%3A43%2B00%3A00&orderId=pmnt664-41-1562094523&payment_system=mandarinpayv1&price=400&returnUrl=http%3A%2F%2Fapi.example.com%2Fpayment%2Freturn&sourceWallet=None&status=failed&transaction=1bc6f9c909c4403099ea4a512fa42fb0&2133d4e2-59b4-409e-af51-fd5b7479b708=2c004082-f99a-42a2-9deb-7326c6ab5737&sign=c3b32530a12e93f65b9a3ef76955bbc318ea22f6daa8aa4114b72d56d602b3e9\r\n```\r\n\r\n**Пример проверки sign**\r\n```\r\n<?php\r\nfunction check_sign($secret, $req)\r\n{\r\n        $sign = $req['sign'];\r\n        unset($req['sign']);\r\n        $to_hash = '';\r\n        if (!is_null($req) && is_array($req)) {\r\n                ksort($req);\r\n                $to_hash = implode('-', $req);\r\n        }\r\n\r\n        $to_hash = $to_hash .'-'. $secret;\r\n        $calculated_sign = hash('sha256', $to_hash);\r\n        return $calculated_sign == $sign;\r\n}\r\n\r\ncheck_sign(\"123\", $_POST);\r\n?>\r\n```\r\n\r\n\r\n# ID Платежа\r\n\r\nКаждый вызов API имеет ассоциируемый с ним идентификатор, который называется ID платежа (PaymentID) и передается в составе прямого ответа в качестве `id`. Он также присутствует в составе callback-уведомления в качестве значения `transaction` или `card_binding`.\r\n\r\nID платежа также доступен в таблице транзакций в вашем личном кабинете на сайте mandarinpay.com (на рисунке ниже) и в интерфейсе Heartbeat.\r\n\r\n![alt PaymentID](https://nextcloud.mandarinbank.com/index.php/s/5qt8FHbDQHzXNQ3/preview \"PaymentID\")\r\n\r\n**При обращении в Службу поддержки по конкретному платежу наличие 'id' платежа существенно ускорит получение ответа.**\r\n\r\n# Пользовательский интерфейс\r\n\r\n## Платежная страница (Payment Page)\r\n\r\nПлатежная страница MandarinPay имеет адаптивный дизайн, содержит ваш логотип, а также информацию о платеже, переданную вами в API запросе.\r\n\r\nДля работы с платежной страницей вам необходимо использовать перенаправление пользователя на страницу оплаты, полученную в параметре `userWebLink` синхронного ответа на ваш API запрос.\r\n\r\n\r\n## Встроенная форма оплаты (CustomPay)\r\n\r\nВстроенная форма оплаты CustomPay позволяет осуществить полноценную интеграцию в ваш интерфейс. При этом отсутствует требование к Вам по соответствию стандарту безопасности банковских карт PCI DSS.\r\n\r\nCustomPay представляет собой форму с полями, которые на самом деле являются отдельными страницами в iframe-ах. Соответственно, вы можете стилизовать всё, что эти самые iframe-ы окружает.\r\n\r\nЛогически такая форма состоит из 2 частей:\r\n* набор div-ов с классами `mandarinpay-field-card-number`, `mandarinpay-field-card-holder`, `mandarinpay-field-card-expiration` и `mandarinpay-field-card-cvv`, внутрь этих div-ов будут помещены iframe-ы\r\n* Javascript-а, запускающего процесс установки iframe-ов и обрабатывающего нажатие на кнопку\r\nДля начала работы необходимо подключить ``<script src=\"https://secure.mandarinpay.com/api/hosted.js\"></script>``, затем вызвать ``mandarinpay.hosted.setup``, передав ему селектор формы, а так же функции для вызова при успехе либо ошибке. В обработчике события нажатия на кнопку следует вызвать ``return mandarinpay.hosted.process(this)``; (вместо `this` можно использовать селектор формы).\r\n\r\nВ качестве `operationId` необходимо передать значение, полученное в прямом ответе MandarinPay в поле `jsOperationid`.\r\n\r\nПо мере взаимодействия формы с пользователем div-ам могут быть присвоены классы `mandarinpay-field-state-error`, `mandarinpay-field-state-focused` и `mandarinpay-field-state-valid`.\r\n\r\n***Пример формы:***\r\n![alt CustomPay](https://nextcloud.mandarinbank.com/index.php/s/yApEzALrjss6oC9/preview \"HostedPay\")\r\n\r\n```\r\n<form id=\"form-hosted-pay\">\r\n  <div style=\"margin: 10px; padding: 10px; border: 1px solid gray\">\r\n    Card Number:\r\n    <div class=\"mandarinpay-field-card-number hosted-field\"><div class=\"glyphicon glyphicon-check\"></div></div>\r\n    Card Holder:\r\n    <div class=\"mandarinpay-field-card-holder hosted-field\"><div class=\"glyphicon glyphicon-check\"></div></div>\r\n    Card Expiration:\r\n    <div class=\"mandarinpay-field-card-expiration hosted-field\"><div class=\"glyphicon glyphicon-check\"></div></div>\r\n    CVV:\r\n    <div class=\"mandarinpay-field-card-cvv hosted-field\"><div class=\"glyphicon glyphicon-check\"></div></div>\r\n    <br/>\r\n    <a href=\"#\" onclick=\"return mandarinpay.hosted.process(this);\" class=\"btn btn-default\">Оплатить</a>\r\n  </div>\r\n</form>\r\n```\r\n\r\n***Инициализация (подключение) скрипта:***\r\n\r\n```\r\n<script>\r\nmandarinpay.hosted.setup(\"#form-hosted-pay\", {\r\n  operationId: \"9874694yr87y73e7ey39ed80\",\r\n  onsuccess: function(data) {\r\n    alert(\"Success, id: \" + data.transaction.id);\r\n  },\r\n  onerror: function(data) {\r\n    alert(\"Error: \" + data.error);\r\n  }\r\n});\r\n</script>\r\n```\r\n\r\nПо факту успешного проведения оплаты, скрипт вызывает функцию `onsuccess` (передавая `id` транзакции), при ошибке - функцию `onerror`.\r\n\r\n\r\n***CSS для полей:***\r\n\r\n```\r\n.hosted-field\r\n{\r\n    background: #f0f0f0;\r\n    height: 40px;\r\n    padding: 5px;\r\n    border: 1px solid gray;\r\n    border-radius: 10px;\r\n}\r\n\r\n.hosted-field {\r\n    position: relative;\r\n}\r\n\r\n.hosted-field .glyphicon {\r\n    visibility: hidden;\r\n    position: absolute;\r\n    right: 5px;\r\n    top: 5px;\r\n    color: green;\r\n    float: right;\r\n}\r\n\r\n.mandarinpay-field-state-error\r\n{\r\n    background: #fff0f0;\r\n    border: 1px solid #900000;\r\n}\r\n\r\n.mandarinpay-field-state-focused\r\n{\r\n    background: #ffffff;\r\n    border: 1px solid yellowgreen;\r\n}\r\n\r\n.mandarinpay-field-state-valid {\r\n    background: #c0ffc0 !important;\r\n    border: 1px solid green !important;\r\n}\r\n\r\n.mandarinpay-field-state-valid  .glyphicon{\r\n    visibility: visible;\r\n}\r\n```\r\n\r\n## Стилизация текстовых полей\r\n\r\nСтилизация осуществляется посредством добавления соответствующего поля в объект, передаваемый `mandarinpay.hosted.setup`. Для изменения доступны плейсхолдер и ряд CSS-стилей.\r\n\r\nДля использования доступны:\r\n- `color` в формате `#000000`\r\n- `font-size` с единицами `px` и `pt`\r\n- `font-family` (можно использовать запятые и кавычки)\r\n- `font-style`\r\n\r\n\r\nПример стилизации\r\n\r\n```\r\nmandarinpay.hosted.setup(\"#form-hosted-pay\",\r\n{\r\n    onsuccess: function(data) {alert(\"Success, id: \" + data.transaction.id);},\r\n    onerror: function(data) {alert(\"Error: \" + data.error);},\r\n    fields:\r\n    {\r\n        \"card-number\": {\r\n            settings: {\r\n                placeholder: \"НОМЕР КАРТЫ\",\r\n                styles: {\r\n                    \"font-size\": \"20px\",\r\n                    \"font-family\": \"Helvetica\",\r\n                    \"color\": \"#0000c0\"\r\n                },\r\n                placeholderStyles: {\r\n                    \"color\": \"pink\"  \r\n                },\r\n            }\r\n        }\r\n    }\r\n});\r\n```\r\n","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","isPublicCollection":false,"owner":"8249987","team":417666,"collectionId":"7f91e324-1fe4-4936-94ab-b8a6d7a805dc","publishedId":"SztG3m1f","public":true,"publicUrl":"https://docs.mandarinpay.com","privateUrl":"https://go.postman.co/documentation/8249987-7f91e324-1fe4-4936-94ab-b8a6d7a805dc","customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"F68721"},"documentationLayout":"classic-double-column","customisation":null,"version":"8.10.1","publishDate":"2020-06-02T19:27:41.000Z","activeVersionTag":"latest","documentationTheme":"light","metaTags":{},"logos":{}},"statusCode":200},"environments":[],"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/a3b03895c3e11e042a31c7e23c4bf8d8b475288eb23e9e2ed80a5e4f6f0f831b","favicon":"https://res.cloudinary.com/postman/image/upload/v1561627922/team/dib2thfmk6ulp7jbiajk.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"}],"canonicalUrl":"https://docs.mandarinpay.com/view/metadata/SztG3m1f"}