Your Logo
### Общая информация: #### Payment Page - платежная форма, программный модуль с пользовательским интерфейсом, который позволяет проводить оплаты. Payment Page может использоваться на сайтах и позволяет работать с платежными картами даже при отсутствии у мерчанта сертификата PCI DSS. Работа с Payment Page строится следующим образом: 1) Мерчант формирует запрос Create Payment. 2) На стороне Платежной организации выполняется проверка и формирование ответа, при успешном прохождении и заполнении всех полей. 3) В ответ приходит ссылка на платежную форму. 4) Пользователь выполняет необходимые действия в платежной форме: указывает реквизиты и другую информацию и подтверждает готовность провести оплату. 5) Платежная форма перенаправляет на 3дс и высвечивается статус оплаты. 6) Плательщик нажимает на вернуться в магаз переходит на адрес в ретурн урл. 7) Мерчант запрашивает статус по запросу Get Transaction Status (не рекомендуется запрашивать чаще чем каждые 3 сек), либо дожидается callback с IP 176.123.177.29. #### Gate(host to host) - является одной из «точек входа» для работы с платежной платформой и предоставляет наиболее полные возможности для взаимодействия на программном уровне. Через Gate можно проводить разовые оплаты и возвраты, а также получать дополнительную информацию, например, о статусе платежа. Также этот метод походит мерчантам с сертификата PCI DSS. Работа с Gate строится следующим образом: 1) Мерчант формирует запрос Create Payment. 2) На стороне Платежной организации выполняется проверка и формирование ответа, при успешном прохождении и заполнении всех полей. 3) Мерчант высылает данные по карте при помощи запроса Add Payment Data to Transaction 4) Мерчант перенаправляет плательщика на урл в п1 для прохождения 3дс. 5) В платежной среде платежной организации и банка эквайера, на стороне требуемых систем, выполняется обработка платежа, по итогам которой мерчант запрашивает статус по запросу Get Transaction Status(не рекомендуется запрашивать чаще чем каждые 3 сек). # Create Payment #### создание страницы платежа на сайте мерчанта для плательщика. Пример запроса на CURL ```shell curl --request POST \ --url https://api.test.ecom.emoney.tools/core/v1/payment \ --header 'Authorization: Basic Base64(Merchan_id:secret)' \ --header 'Content-Type: application/json' \ --data '{ "amount": 1000, "return_url": "https://example.com/return", "callback_url": "https://example.com/callback", "description": "Your payment description", "payment_method": 2, "currency":"USD" }' ``` ## Данные | Параметр | Значение| Обязательное|Тип |Описание| |:-------------|:---------------|:---------------|:---------------:|:-------------| | amount | 1000 | Да |int |Сумма| | return_url | https://example.com/return | Да |string |URL который отобразится у физического лица после 3ds| | callback_url | https://example.com/callback| Нет |string |URL на который отправим статус транзакции по ее завершению (успех или отказ) см табл статусов | | description | Your payment description | Нет |string |Описание платежа мерчанта | | order_id | 2611541 | Нет|int |Номер платежа в системе мерчанта | |payment_method | 2 | Да |int |Метод платежа | | currency | USD|Да|string |Валюта платежа| Успешный ответ: ```json { "id": 37102, "url": "https://pay.test.emoney.tools?id=37081" } ``` id - платежа, url - ссылка на платежную страницу Возможные ошибки: 1) Нет одного из обязательных полей: ```json { "error": "JsonSyntaxException" } ``` 2) Неправильный формат: ```json { "error": "JsonSyntaxException" } ``` 3) Мерчант заблокирован: ```json { "message": "Unauthorized" } ``` Коды ответов: - 0 SUCCESS - 1000 NO_TERMINAL_FOUND No terminal configured to process this transaction - 1001 NO_TERMINAL_COMISSION_FOUND Can not found terminal commission for available terminals # Add Payment Data to Transaction #### Для Gate интеграции. Добавление данных по карте к существующей транзакции. Пример запроса на CURL ```shell curl --request POST \ - url https://api.test.ecom.emoney.tools/core/v1/public/payment_data \ --header 'Content-Type: application/json' \ --data '{ "id": 37102, "payment_details": { "pan": "4111111111111111", "month": "01", "year": "2023", "cvv": "123" } }' ``` ## Данные | Параметр | Значение| Обязательное|Тип |Описание| |:-------------|:---------------|:---------------|:---------------:|:-------------| | id | 37102 | Да |int |id -транзакции платежа| |pan | 4111111111111110| Да |string |номер банковской карты| |month|01| Да |string |месяц истечения карты| |year|2023|Да|string |год истечения карты| | order_id | 2611541 | Нет|int |Номер платежа в системе мерчанта | |cvv| 123 | Да |string |трехзначный защитный код, который находится на обратной стороне банковской карты| Успешный ответ: ```json { "code": 1011, "msg": "Payment data stored to secure cash" } ``` Возможные ошибки: 1) Неправильный формат или нет одного из обязательных полей: ```json { "error": "JsonSyntaxException" } ``` 2) Повторный запрос по одной транзакции: ```json { "code": 1015, "msg": "This transaction is not await payment data or not exist" } ``` # Get Transaction Status #### запрос получает статус конкретной платежной транзакции Пример запроса на CURL ```curl --request GET \ --url 'https://api.test.ecom.emoney.tools/core/v1/public/payment?id=37102' \``` Успешный ответ: ```json { - "id": 37102, - "created_at": "2023-10-23T08:41:58.255273Z", "order_id": null, "merchant": { "name": "Филлиал нурлытау", "company": { "bin": "980504301209", "name": "ТОО Прожектор перестройки", "description": "Надежный партнер" } }, "description": "Your payment description", "amount": 1000, "customer_commission_amount": 0, "merchant_commission_amount": null, "completed_at": null, "status": 400, "transaction_type": 0, "payment_method": 2 } ``` Возможные ошибки: Не найдена транзакция ```json { "message": "Transaction not found" } ``` # Refund #### Возврат денежных средств, можно сделать частичным. Пример запроса на CURL ```shell curl --request POST \ --url https://api.test.ecom.emoney.tools/core/v1/refund \ --header 'Authorization: Basic MTA6MTIzNDU2' \ --header 'Content-Type: application/json' \ --data '{ "id": 37102, "amount": 5 }' ``` id - айди транзакции оплаты, amount - сумма транзакции для возврата, можно сделать частичный возврат Успешный ответ: ```json { "id": 420838, "status": 50 } ``` id - айди транзакции возврата, status - статус транзакции # ConfirmationRefund #### Подтверждение возврата. Срок действия между созданием и подтверждением не более 20 минут. Пример запроса на CURL ```shell curl --request PATCH \ --url https://api.test.ecom.emoney.tools/core/v1/refund \ --header 'Authorization: Basic MTA6MTIzNDU2' \ --header 'Content-Type: application/json' \ --data '{ "id": 420838, "approved": true }' ``` Успешный ответ: ```json { "message": "Refund sent to processing" } ``` Возможная ошибка. Неверная транзакция или срок действия транзакции возврата истек: ```json { "message": "No transaction found" } ``` Коды и статусы транзакции: | Параметр | Значение| Описание|Категория статуса| |:-------------|:---------------|:-------------|:-------------| | 0 | WAITING_PAYMENT_DATA|Транзакция создана, ожидание информации по платежным реквизитам|Информационный| | 10 |PAYMENT_DATA_TAKEN|Данные по платежным реквизитам получены|Информационный| | 50 | WAITING_APPROVE|Ожидание подтверждения, в том случае если тип платежа DMS|Информационный| | 51 |APPROVED|Подтверждена, для типа платежа DMS|Информационный| | 100| READY_TO_PROCESSING|Готово к процессу|Информационный| | 110| IN_PROGRESS|В процессе|Информационный| | 111| SENT_TO_TERMINAL|Отправка на терминал БВУ|Информационный| |150 |WAITING_3DS|Мерчанту необходимо Redirect на URL:|Информационный| |200 |3DS_ACCEPTED|Пользователь перешел на страницу ввода 3дс|Информационный| |400 | FAIL|Не успех/Отказ|Финальный| |500 |SUCCESS|Успешное завершение операции|Финальный| Коды ошибок: | Параметр | Значение| Description|Описание| |:-------------|:---------------|:-------------|:-------------| | 0 | NO_ERRORS| || | 10 | PAYMANT_METHOD_ERROR| No payment method aialable for this merchant|Для этого мерчанта способ оплаты не доступен | | 20 | PAYMENT_DETAILS_ERROR| Wrong card number, or other presented data|Неправильный номер карты или другие предоставленные данные| | 30 | INTERNAL_ERROR| Merchant not configured correctly|Мерчант настроен неправильно| | 40 | TRANSACTION_EXPIRED|Transaction finalized by timeout|Транзакция завершена по таймауту| | 50 | PROCESSING_ERROR|No terminal configured to process this transaction|Ни один терминал не настроен для обработки этой транзакции.| | 60 | INSUFFICIENT_FUNDS|Insufficient balane on card|Недостаточный баланс на карте| | 70 | DECLINED_BY_ACQUIRING|Bank aqiring was decline this transaction|Банковский эквайринг отклонен по данной транзакции| | 80 | DECLINED_BY_ISSUER|Transaction was declined by card issuer|Транзакция отклонена эмитентом карты| | 90 | DECLINED_AS_FRAUD|Transaction was declined as fraud|Транзакция отклонена как мошенничество|