Запрос и пример

Для создания заказа необходимо выполнить вызов метода
POST https://gateway.chocodev.kz/orders/v2/preorder/create
(в заголовке не забываем Content-Type и токен)

Параметры запроса:

Ключ Описание Примечание
merchant_order_id ID заказа в вашей системе Обязательное
amount Сумма заказа Обязательное
token Токен филиала (для теста: baeb767cc64f213a2e54fd2ba436d80c) Обязательное (выдается нами)
backlink1 DeepLink приложения, на которое мы отправим пользователя Необязательное
postlink2 Ссылка для оповещения после успешной оплаты Необязательное
failed_postlink3 Ссылка для оповещения случае ошибки оплаты Необязательное
image_size4 Размер картинки Необязательное
timeout Срок оплаты заказа (в секундах) Необязательное
external_status5 Статус заказа в вашей системе Необязательное
external_deeplinks Массив ссылок на которые будут переходить пользователи из списка транзакций Необязательное
checklink6 URL для проверки актуальности заказа перед оплатой Необязательное
failed_on_check7 Действие при недоступность сервиса по checklink Необязательное
request_from_type8 Тип запроса (miniapp или external) Необязательное
  • 1 После успешной оплаты заказа, мы отправим пользователя по этому DeepLink. Это может быть ваше приложение или веб-сайт со страницей "Спасибо за заказ" или дальнейшими инструкциями.
  • 2 После успешной оплаты, мы оповестим вашу систему по этой ссылке GET-запросом. В конце этой ссылки от себя добавим четыре параметра:
    ?reference=123456&amount=2000&cardAmount=1000&balanceAmount=1000.
   - reference - ID заказа на нашей стороне
   - amount - сумма заказа
   - cardAmount - сумма, снятая с карты 
   - balanceAmount - сумма, снятая с баланса
  • 3 В случае ошибки в процессе оплаты, мы оповестим вашу систему по этой ссылке GET-запросом.
  • 4 Размер картинки QR-кода в пикселях, в случае если у вас нет возможности сгенерировать QR. Вернем Base64 PNG Image
  • 5 Все возможные статусы заранее записываются на нашей стороне
  • 6 Подробнее про формат взаимодействия
  • 7 Если при проверке платежа произойдёт timeout и failed_on_check = false, то пользователь сможет оплатить заказ
  • 8 Если сервис работает внутри приложения Рахмет (к примеру, миниапп), то необходимо передать значение "miniapp", если запрос приходит из внешнего сервиса (приложение или сайт) то необходимо передать "external"

Пример запроса:

merchant_order_id: 123543
amount: 1000
token: YOUR_FILIAL_TOKEN
backlink: http://project.kz/rahmet/pay/123543/thankyou
postlink: http://project.kz/rahmet/pay/123543/true
failed_postlink: http://project.kz/rahmet/pay/123543/false
image_size: 300
timeout: 10000
external_status: created
external_deeplinks[0][link]: http://project.kz/detail_order
external_deeplinks[0][type]: order_detail
checklink: http://project.kz/rahmet/checklink
failed_on_check: true
request_from_type: miniapp

Ответ и пример

В ответ сервер возвращает JSON с указанными здесь составляющими.

Пример ответа:

{
    "error_code": 0,
    "status": "success",
    "message": "Заказ создан",
    "data": {
        "preorder_id":      111,
        "inner_url":        "https://rahmetapp.kz/?id=HASH&preorder_id=1234&filial_id=1233&source=rahmetpay",
        "external_url":     "https://hwas6.app.goo.gl/?link=https%3A%2F%2Frahmetapp.kz%2F%3Fid%3DHASH%26preorder_id%3D1234%26filial_id%3D1233%26source%3Drahmetpay%26source%3Drahmetpay%26apn%3Dkz.rahmet.app%26amv%3D3%26ibi%3Dcom.chocofamily.Rahmet%26isi%3D1346543292%26ofl%3Dhttps%3A%2F%2Frahmetapp.kz%2F",
        "qr_image_base_64": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAEsCAIAAAD2HxkiAAAACXBIWXMAAA7EAAAOxAGVKw4bAAAFLElEQVR4nO3dS2okMRBAwbHx/Y9s5gLDWBihl6qKWDdd30dtEunjz4t9f3//+JvPz89Rx1r5nxW7jnXyf57qvVcOQ4gQYiKEmAghJkKIiRBiIoSYCCEmQoiJEGIihNjXyo92zSuedHIWcdf9uXHG8uS78dT3cNYThRcSIcRECDERQkyEEBMhxEQIMRFCTIQQEyHERAixpdnRFTfOau461lPX3jy55uouN76Hs546vJAIISZCiIkQYiKEmAghJkKIiRBiIoSYCCEmQohtmx19sxv3o19x47zrjdxBiIkQYiKEmAghJkKIiRBiIoSYCCEmQoiJEGIihJjZ0R9Mm/lcOdbJmc8b95GfxpcQYiKEmAghJkKIiRBiIoSYCCEmQoiJEGIihJgIIbZtdvTNM4Qn50tXTDufk268Ll9CiIkQYiKEmAghJkKIiRBiIoSYCCEmQoiJEGIihNjS7Kh9yf/v5J71T/2fFU99D595VXAREUJMhBATIcRECDERQkyEEBMhxEQIMRFCTIQQ+7pxncanunG90F3nM+26TvIlhJgIISZCiIkQYiKEmAghJkKIiRBiIoSYCCEmQoh9nDzYtPUnd62refJYJ2csT65NetK093DW3YEXEiHERAgxEUJMhBATIcRECDERQkyEEBMhxEQIsaV1R7fNyB2cjZy2b/tJJ89n2j28ckb32JGAfxIhxEQIMRFCTIQQEyHERAgxEUJMhBATIcRECLGj647uMm2ec9o6ljfOau5y47X7EkJMhBATIcRECDERQkyEEBMhxEQIMRFCTIQQEyHEltYdnWbaupEnnVyX9aSnns/SfOmWIwG/JkKIiRBiIoSYCCEmQoiJEGIihJgIISZCiIkQYh/TZvZO7oF+45qZu0y7rqfOA1t3FC4gQoiJEGIihJgIISZCiIkQYiKEmAghJkKIiRBiXys/mjbPuWLafOmb97XfZdp86a77M+suwwuJEGIihJgIISZCiIkQYiKEmAghJkKIiRBiIoTYx64/unEWccW0WcRp57PLjde1652/rwp4GBFCTIQQEyHERAgxEUJMhBATIcRECDERQkyEENu2Z701PM+Ydp9vfF4rjj7TY0cC/kmEEBMhxEQIMRFCTIQQEyHERAgxEUJMhBATIcS2rTu6YtqM5S7TZiOfugbsLuPmpXecDPB7IoSYCCEmQoiJEGIihJgIISZCiIkQYiKEmAghtm3d0aeaNoN648zntJnhaedz3xOFhxEhxEQIMRFCTIQQEyHERAgxEUJMhBATIcRECLGvG2cRd1mZIXzq/u+77Hp/brz2Xd5bIAwhQoiJEGIihJgIISZCiIkQYiKEmAghJkKIiRBiXys/unFm7+RM4y7T5lRPuvEdW2HPeriACCEmQoiJEGIihJgIISZCiIkQYiKEmAghJkKIfaz8aNos4o1reE47nxXT5kt32XWft80nb/kX4NdECDERQkyEEBMhxEQIMRFCTIQQEyHERAgxEUJsad1Rzji5puiu+clp53Nyvdld1+5LCDERQkyEEBMhxEQIMRFCTIQQEyHERAgxEUJMhBAzO/qDXTOE2+YML5yN3OWp1+5LCDERQkyEEBMhxEQIMRFCTIQQEyHERAgxEUJMhBDbNjs6bb/1k6bNl06b+Vxx8nxOrrm6YtaTgBcSIcRECDERQkyEEBMhxEQIMRFCTIQQEyHERAixpdnRaXOGN5p2D0/O+t64r/3JY816M+CFRAgxEUJMhBATIcRECDERQkyEEBMhxEQIMRFC7C9/2YhD8YM5vwAAAABJRU5ErkJggg==""
    }
}
  • Если интегрируете Rahmet Pay в веб-сайт, то показываете пользователю QR-код
  • Если интегрируете Rahmet Pay в мобильное приложение, то оформляете кнопку со ссылкой (ссылка берется с external_url)
  • Если интегрируете Rahmet Pay с miniapp внутри приложения Rahmet, то оформляете кнопку со ссылкой (ссылка берется с inner_url)