Перейти к содержанию

Операции в криптовалюте

Вариант интеграции BV

Этот вариант интеграции позволяет покупателям и торговцам проводить операции оплаты и выплаты средств в криптовалюте, даже если валюта их кошельков различна.

При проведении транзакции необходимо указать сумму в фиатной валюте для обмена. Сумма в криптовалюте, эквивалентная сумме в фиатной валюте, будет списана с кошелька отправителя средств и зачислена на кошелек получателя.

Для оплаты и выплаты средств поддерживаются следующие криптовалюты:

Название криптовалюты Код криптовалюты Стандарт криптовалюты
Binance Coin BNB
Bitcoin BTC
Bitcoin Cash BCH
Cardano ADA
Dai DAI
Dogecoin DOGE
Ethereum ETH
Litecoin LTC
Ripple XRP
Solana SOL
Tether USDT ERC20
Tether USDT TRC20
Tronix TRX
USD Coin USDC

Warning

После проведения транзакции этим альтернативным способом сумма транзакции в фиатной валюте может измениться.

В автоматических уведомлениях и в ответ на запрос статуса транзакции фактическая сумма транзакции в фиатной валюте указывается как значение параметра amount.

Сумма в криптовалюте умножается на 100 000 000 и округляется согласно правилам математического округления. Она указывается как значение параметра conversion.converted_amount.


Оплата

Процесс проведения оплаты в криптовалюте содержит следующие этапы:

  1. Покупатель инициирует проведение оплаты, указывает в фиатной валюте сумму, на которую он хочет провести платеж. Покупатель также может указать криптовалюту своего кошелька.
  2. Торговец выполняет запрос на проведение оплаты с параметрами, указанными ниже.
  3. Торговец перенаправляет покупателя на URL-адрес страницы эквайера, полученный в ответе, для завершения транзакции.
  4. Покупатель указывает криптовалюту своего кошелька, если она не была выбрана на шаге 1, и завершает оплату.
  5. PaySage.io получает информацию о платеже. Если в запросе на проведение оплаты был передан параметр notification_url, торговцу приходит автоматическое уведомление о статусе платежа и суммах транзакции в фиатной и криптовалютах.

Info

В случае интеграции с виджетом или платежной страницей PaySage.io система откроет покупателю страницу эквайера в виджете в режиме iframe.

Запрос

Параметры для инициализации виджета или создания токена

При интеграции с виджетом или платежной страницей PaySage.io создайте токен платежа или выполните запрос на формирование виджета со следующими дополнительными параметрами:

Параметр Тип Описание
order object Секция параметров оплаты.
amount * обязательный
integer Сумма к обмену в фиатной валюте в минимальных денежных единицах.
currency * обязательный
string Фиатная валюта транзакции в формате ISO-4217 alpha-3 code.
payment_method object Секция информации о способах оплаты.
types * обязательный
array Массив способов оплаты для отображения покупателю. Добавьте fiat_to_crypto как элемент этого массива.
fiat_to_crypto object Секция параметров оплаты криптовалютой.
currency string Код криптовалюты кошелька покупателя. Список возможных значений смотрите в таблице выше или в справочнике кодов криптовалют.

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

При API интеграции отправьте запрос на проведение оплаты со следующими дополнительными параметрами:

Параметр Тип Описание
amount * обязательный
integer Сумма к оплате в фиатной валюте в минимальных денежных единицах.
currency * обязательный
string Фиатная валюта транзакции в формате ISO-4217 alpha-3 code.
method object Секция данных способа оплаты.
type * обязательный
string Следует установить в значении fiat_to_crypto.
currency string Код криптовалюты кошелька покупателя. Список возможных значений смотрите в таблице выше или в справочнике кодов криптовалют.
Пример запроса на проведение оплаты
{
    "request": {
        "amount":2900,
        "currency":"EUR",
        "description":"description",
        "test": true,
        "tracking_id":"your_unique_number",
        "language":"en",
        "notification_url":"https://example.com/notification",
        "return_url":"https://example.com/return",
        "method": {
            "type": "fiat_to_crypto"
        }
    }
}
Ответ

В случае интеграции с виджетом или платежной страницей PaySage.io, покупатель будет автоматически направлен на страницу эквайера для завершения оплаты.

В случае API интеграции, ответ на запрос оплаты будет дополнительно содержать секцию fiat_to_crypto с параметрами оплаты криптовалютой, а также секцию form с параметрами страницы эквайера. Для завершения транзакции направьте покупателя на URL, переданный как значение параметра form.action.

Пример ответа на запрос на проведение оплаты
{
  "transaction": {
        "uid": "2085ccec-33c8-4356-8d53-b081b4a07230",
        "type": "payment",
        "status": "pending",
        "amount": 2900,
        "currency": "EUR",
        "description": "description",
        "created_at": "2023-05-04T13:42:47Z",
        "updated_at": "2023-05-04T13:42:51Z",
        "method_type": "fiat_to_crypto",
        "receipt_url": "https://backoffice.paysage.io/customer/transactions/2085ccec-33c8-4356-8d53-b081b4a07230/735179255e5ff84e8b752f85452563c946f069bbb5cd0fc54541637a095354c0?language=en",
        "payment": {
            "status": "pending",
            "gateway_id": 2750,
            "ref_id": "f123456a-265b-4cd1-9823-2aa7123565fc",
            "message": "Transaction was initialized."
        },
        "fiat_to_crypto": {
            "type": "fiat_to_crypto",
            "currency": null
        },
        "customer": {
            "email": null,
            "ip": null
        },
        "message": "Transaction was initialized.",
        "tracking_id": "your_unique_number",
        "test": true,
        "language": "en",
        "additional_data": {
            "payment_method": {
                "type": "alternative"
            }
        },
        "gateway": {
            "iframe": true
        },
        "form": {
            "action": "{form_url}",
            "method": "GET",
            "fields": []
        }
    }
}

Выплата средств

Процесс проведения выплаты в криптовалюте содержит следующие этапы:

  1. Покупатель инициирует проведение выплаты, указывает в фиатной валюте сумму, на которую он хочет провести выплату, а также данные кошелька получателя выплаты.
  2. Торговец выполняет запрос на проведение выплаты с параметрами, указанными ниже.
  3. PaySage.io получает информацию о транзакции от эквайера и передает ее торговцу. Если в запросе на проведение оплаты был передан параметр notification_url, торговцу приходит автоматическое уведомление о статусе выплаты и суммах транзакции в фиатной и криптовалютах.
Запрос

Отправьте запрос на проведение выплаты со следующими данными:

Параметр Тип Описание
amount * обязательный
integer Сумма к выплате в фиатной валюте в минимальных денежных единицах.
currency * обязательный
string Фиатная валюта транзакции в формате ISO-4217 alpha-3 code.
method object Секция данных способа оплаты.
type * обязательный
string Следует установить в значении fiat_to_crypto.
recipient_wallet_id * обязательный
string Номер кошелька покупателя, на который будет проведена выплата средств.
currency * обязательный
string Код криптовалюты кошелька покупателя, на который будет проведена выплата средств. Список возможных значений смотрите в таблице выше или в справочнике кодов криптовалют.
token_standard * условно обязательный
string Стандарт криптовалюты. Обязательно для транзакции в USDT.

Список возможных значений смотрите выше.
tag string ID получателя выплаты. Применяется для выплат в TRX.
Пример запроса на проведение выплаты
{
"request":{
    "amount":2500,
    "currency":"USD",
    "description":"description",
    "test": true,
    "tracking_id":"your_unique_number",
    "language":"en",
    "notification_url":"https://example.com/notification",
    "method":{
      "type":"fiat_to_crypto",
      "currency": "BTC",
      "recipient_wallet_id": "12345-abc-67890"
    }
  }
}
Ответ

Ответ на запрос оплаты будет дополнительно содержать секцию fiat_to_crypto с указанием параметров способа оплаты.

Пример ответа на запрос на проведение выплаты
{
  "transaction": {
        "uid": "1158d867-1c5d-4093-896e-bded62b59d20",
        "type": "payout",
        "status": "pending",
        "amount": 2500,
        "currency": "USD",
        "description": "description",
        "created_at": "2023-05-04T19:50:11Z",
        "updated_at": "2023-05-04T19:50:11Z",
        "method_type": "fiat_to_crypto",
        "receipt_url": "https://backoffice.paysage.io/customer/transactions/1158d867-1c5d-4093-896e-bded62b59d20/be8e9bf9b24c699392ae752d3f72e3757113193096ee8b7c294ddd3d4acd3faf?language=en",
        "payout": {
            "status": "pending",
            "gateway_id": 2750,
            "message": "Transaction was initialized."
        },
        "fiat_to_crypto": {
            "type": "fiat_to_crypto",
            "currency": "BTC",
            "recipient_wallet_id": "12345-abc-67890"
        },
        "customer": {
            "email": null,
            "ip": "127.0.0.1"
        },
        "message": "Transaction was initialized.",
        "tracking_id": "your_unique_number",
        "test": true,
        "language": "en",
        "additional_data": {
            "payment_method": {
                "type": "alternative"
            }
        }
    }
}

Автоматические уведомления

Если торговец передал параметр notification_url в запросе на проведение оплаты или выплаты, то система вышлет автоматическое уведомление со следующими дополнительными параметрами:

Параметр Тип Описание
transaction object
amount * обязательный
integer Сумма транзакции в фиатной валюте в минимальных денежных единицах, которая эквивалентна сумме в криптовалюте, фактически списанной с кошелька отправителя для оплаты или выплаты. Может отличатся от начальной суммы транзакции.
currency * обязательный
string Фиатная валюта транзакции в формате ISO-4217 alpha-3 code. Например, USD.
method_type * обязательный
string fiat_to_crypto
fiat_to_crypto * обязательный
object Секция данных способа оплаты.
type * обязательный
string fiat_to_crypto
recipient_wallet_id * условно обязательный
string Номер кошелька покупателя, на который будет проведена выплата средств. Указывается в автоматическом уведомлении о транзакции выплаты средств.
conversion * обязательный
object Секция параметров транзакции в криптовалюте, в которую была сконвертирована сумма в фиатной валюте.
exchange_rate * обязательный
object Секция информации о курсе обмена, который был применен для конверсии суммы из фиатной в криптовалюту.
converted_currency * обязательный
string Код криптовалюты кошелька покупателя. Список возможных значений смотрите в таблице выше или в справочнике кодов криптовалют.
converted_amount * обязательный
integer Сумма транзакции в криптовалюте.
additional_data * обязательный
object Секция дополнительной информации о транзакции.
provider_raw * обязательный
object Секция информации о транзакции, предоставленной эквайером.
Пример уведомления о проведении успешной транзакции оплаты
{
  "transaction": {
        "uid": "2085ccec-33c8-4356-8d53-b081b4a07230",
        "type": "payment",
        "status": "successful",
        "amount": 2900,
        "currency": "EUR",
        "description": "description",
        "created_at": "2023-05-04T13:42:47Z",
        "updated_at": "2023-05-04T13:45:01Z",
        "method_type": "fiat_to_crypto",
        "receipt_url": "https://backoffice.paysage.io/customer/transactions/2085ccec-33c8-4356-8d53-b081b4a07230/12db53fdb53b1655f08af6577d77469e61376e433aa627dfffc4f53f28afb82b?language=en",
        "payment": {
            "status": "successful",
            "gateway_id": 2750,
            "ref_id": "da37b123-dddf-4d31-88af-b2dcdefd2c86",
            "message": "Transaction was successfully processed."
        },
        "fiat_to_crypto": {
            "type": "fiat_to_crypto"
        },
        "customer": {
            "email": null,
            "ip": "127.0.0.1"
        },
        "message": "Transaction was successfully processed.",
        "tracking_id": "your_unique_number",
        "test": false,
        "language": "en",
        "paid_at": "2023-05-04T13:45:01Z",
        "additional_data": {
            "provider_raw": {
                "type": "IN",
                "uuid": "da37b123-dddf-4d31-88af-b2dcdefd2c86",
                "refund": null,
                "status": "COMPLETE",
                "address": {
                    "tag": null,
                    "uri": "0xC0Fdc9B1234aCE2D8f3B89C4472cae7727ABB6fe",
                    "address": "0xC0Fdc9B7715aCE2D8f3B89C1234cae7727ABB6fe",
                    "protocol": "ETH",
                    "alternatives": []
                },
                "refunds": [],
                "subType": "merchantPayIn",
                "reference": "2085ccec-33c8-4356-8d53-b081b4a07230",
                "returnUrl": "https://api.paysage.io/beyag/transactions/returns/63496cb932bc335674f362af4b6a36729923e401361c6d1fd0fd87ce21a0eea5/2085ccec-33c8-4356-8d53-b081b4a07230",
                "expiryDate": 1683208971000,
                "merchantId": "1234b7e5-07cd-456b-a6e3-678abf4bu89a",
                "dateCreated": 1683207771000,
                "displayRate": {
                    "base": "ETH",
                    "rate": 1692.29,
                    "counter": "EUR"
                },
                "feeCurrency": {
                    "actual": 1.111e-05,
                    "amount": 1.111e-05,
                    "currency": "BTC"
                },
                "quoteStatus": "PAYMENT_OUT_PROCESSED",
                "redirectUrl": "{form_url}",
                "exchangeRate": {
                    "base": "ETH",
                    "rate": 0.06484203,
                    "counter": "BTC"
                },
                "paidCurrency": {
                    "actual": 0.01713657,
                    "amount": 0.01713657,
                    "currency": "ETH"
                },
                "transactions": [
                    {
                        "hash": "0x76e7d5e12345f19b234bf9f37d088fc1234a3ed1bdc5087085a31c0eb9978ec3",
                        "risk": {
                            "level": "LOW",
                            "alerts": [],
                            "resourceName": "UNKNOWN",
                            "resourceCategory": "UNKNOWN"
                        },
                        "amount": 0.01713657,
                        "sources": [
                            "0xF282C3A8f95Ad256BA8DAFB251ef89B43dc6c52f"
                        ],
                        "dateCreated": 1683207883000,
                        "displayRate": {
                            "base": "ETH",
                            "rate": 1692.29,
                            "counter": "EUR"
                        },
                        "exchangeRate": {
                            "base": "BTC",
                            "rate": 15.4221,
                            "counter": "ETH"
                        },
                        "dateConfirmed": 1683207894000,
                        "networkFeeAmount": 0.015683724348894,
                        "networkFeeCurrency": "ETH"
                    }
                ],
                "walletCurrency": {
                    "actual": 0.00111117,
                    "amount": 0.00111117,
                    "currency": "BTC"
                },
                "displayCurrency": {
                    "actual": 29,
                    "amount": 29,
                    "currency": "EUR"
                },
                "quoteExpiryDate": 1683218586000,
                "merchantDisplayName": "Business Account",
                "acceptanceExpiryDate": 1683207807000
            },
            "payment_method": {
                "type": "alternative"
            }
        },
        "gateway": {
            "iframe": true
        },
        "conversion": {
            "exchange_rate": {
                "ETH_TO_EUR": 1692.29
            },
            "converted_amount": 1713657,
            "converted_currency": "ETH"
        }
    }
}

Вариант интеграции CB

Оплата

Info

Этот вариант интеграции поддерживает только валюту EUR.

Запрос

Параметры для инициализации виджета или создания токена

При интеграции с виджетом или платежной страницей PaySage.io создайте токен платежа или выполните запрос на формирование виджета со следующими дополнительными параметрами:

Параметр Тип Описание
order object Секция параметров оплаты.
amount * обязательный
integer Сумма в EUR в минимальных денежных единицах.
currency * обязательный
string Фиатная валюта транзакции в формате ISO-4217 alpha-3 code. Всегда EUR.
payment_method object Секция информации о способах оплаты.
types * обязательный
array Массив способов оплаты для отображения покупателю. Добавьте fiat_to_crypto как элемент этого массива.

Параметры запроса на оплату

Процесс проведения оплаты:

  1. Покупатель инициирует оплату на сайте торговца.
  2. Торговец отправляет запрос оплаты в PaySage.io.
  3. PaySage.io возвращает ответ, содержащий параметр form.action со ссылкой на страницу оплаты.
  4. Торговец перенаправляет покупателя на URL из ответа.
  5. По ссылке отобразится страница провайдера с суммой оплаты в EUR, а также ее эквивалент в криптовалюте торговца. Покупатель выполняет вход в личный кабинет или регистрируется на сайте провайдера и совершает платеж.

Для приема платежа отправьте запрос на оплату со следующими дополнительными параметрами:

Параметр Тип Описание
amount * обязательный
integer Сумма транзакции в EUR в минимальных денежных единицах.
currency * обязательный
string Фиатная валюта транзакции в формате ISO-4217 alpha-3 code. Всегда EUR.
method object Секция данных платежного метода.
type * обязательный
string fiat_to_crypto
Пример запроса
{
    "request": {
        "amount": 5000,
        "currency": "EUR",
        "description": "Cryptocurrency",
        "test": false,
        "tracking_id": "9379992",      
        "notification_url": "https://notification_url",
        "return_url": "https://return_url",      
        "method": {
            "type": "fiat_to_crypto"
        }
    }
}
Ответ

Отправьте покупателя на URL, указанный в параметре form.action.

Пример ответа
{
    "transaction": {
        "uid": "5ca616cf-2079-4b67-a40b-fa8b3e516636",
        "type": "payment",
        "status": "pending",
        "amount": 5000,
        "currency": "EUR",
        "description": "Cryptocurrency",
        "created_at": "2024-05-24T13:55:23Z",
        "updated_at": "2024-05-24T13:55:24Z",
        "method_type": "fiat_to_crypto",
        "receipt_url": "https://backoffice.paysage.io/customer/transactions/5ca616cf-2079-4b67-a40b-fa8b3e516636/de9689f91a38c143bdcdf91036c3ea174e0e5cb95c9eb0a9982b1f40c5122b0b",
        "payment": {
            "status": "pending",
            "gateway_id": 4020,
            "ref_id": "lEaJDnvED3k1",
            "message": "Transaction was initialized."
        },
        "fiat_to_crypto": {
            "type": "fiat_to_crypto"
        },
        "customer": {
            "email": null,
            "ip": null
        },
        "manually_corrected_at": null,
        "message": "Transaction was initialized.",
        "tracking_id": "9379992",
        "test": false,
        "additional_data": {
            "payment_method": {
                "type": "alternative"
            }
        },      
        "gateway": {
            "iframe": false
        },
        "form": {
            "action": "https://gateway.cb.live/payments/eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJtZXJjaGFudCI6NSwib3JkZXIiOiI1Y2E2MTZjZi0yMDc5LTRiNjct",
            "method": "GET",
            "fields": []
        }
    }
}