# What is ReelPay

ReelPay is a **payment gateway** that facilitates the processing of Ethereum, Tron, PUT and other cryptocurrencies. It utilizes a unique unified payment API that can be easily integrated with any website or e-commerce platform; hence, businesses can accept 45+ cryptocurrencies via a single checkout page.

ReelPay allows you send and receive payments in crypto from your friends and family around the world. Whether your customers use ReelPay or not, we create a contactless, seamless and secure checkout experience. Make crypto payments to anyone and collect crypto payments with ease.&#x20;

## Our Aim and Objectives

We aim to provide businesses of all sizes across all industries with a reliable, affordable, and secure way to accept cryptocurrency payments from their customers from anywhere in the world.

We believe that facilitating the ease of use of cryptocurrency both in physical and e-commerce is a key step in aiding the global adoption of cryptocurrency as a mainstream digital payment method.

#### The following objectives are key to achieving these aims.

* Allowing businesses to accept a wide range of cryptocurrencies.&#x20;
* Providing a secure payment gateway that protects businesses from fraudulent and spammy transactions.&#x20;
* Offering low-cost services to encourage users and businesses to look away from the more expensive traditional payment options and look toward cryptocurrency

## What can ReelPay benefit

Indeed, there are several crypto payment gateways present in the digital payment industry today; however, ReelPay offers unique features and advantages that make it stand out from its competitors. Here are some reasons why ReelPay may be the ideal payment gateway for your business:

### <mark style="color:blue;">Security</mark>

Each year, merchants lose out on $118 billion in sales as a result of false positives. ReelPay ensures absolute security by protecting both merchants and users from data breaches, which can compromise the personal information and finances of all parties. This is achieved with military-grade data encryption, which is in compliance with anti-money laundering (AML) regulations.

* **Advanced data encryption:** ReelPay uses advanced, military-grade encryption to secure all transactions; as a result, all payment data is transmitted securely and cannot be intercepted or compromised by malicious actors.

### <mark style="color:blue;">Lowest Fee in the Market</mark>

We only charged **0.03%** service fee on API payment. With our lowest service fees in the market, we are able to assist you in increasing your profits.

### <mark style="color:blue;">Asset Overview and Management</mark>&#x20;

ReelPay API provides you with full control and customization over your checkout experience by allowing you to create your own checkout page and configure the merchant's settings. Organize your crypto assets according to orders, income, expenditures, refunds and more filters, view your asset flow, and view your order details at a glance

### <mark style="color:blue;">Multiple Crypto Choices</mark>

The ReelPay platform supports over **45+** **cryptocurrencies**, including ETH, SOL, XRP, USDT, PUT... Multiple network options are available, making transactions easier and reducing restrictions.&#x20;

Transaction available from multiple wallets including Broearn Wallet, METAMASK, BINANCE, BitKeep, and TronLink.&#x20;

ReelPay also supports **80+** **countries** and offers a unified API for cryptocurrency payment.

### <mark style="color:blue;">Easy Integration with Existing Platforms</mark>

ReelPay offers payment buttons via APIs and a hosted checkout that can be integrated easily with existing websites or e-commerce platforms. This makes it easy for businesses to set up their payment API themselves without needing any technical expertise.

### <mark style="color:blue;">24/7 Online Support</mark>

ReelPay provides round-the-clock support for its users; hence, as a ReelPay user, you can get help whenever they need it, from anywhere in the world, ensuring that any issues or problems can be resolved quickly and efficiently. The support team is available via email and phone, ever ready to handle any queries or concerns that you may have.

## Who Can Use ReelPay - Our Audience

ReelPay is designed to serve a broad range of businesses, from small startups to large corporations, across various industries, including but not limited to pharma, health and wellness, software and app development, telecom and electronics, design and marketing services, iGaming and betting, manufacturing, SaaS companies and startups, financial services, real estate and construction, and transportation.

ReelPay offers borderless and flexible payment options that can help businesses in these industries and beyond, increasing their payment options and reaching a wider audience base and potential new clients.

**Log in**: <https://merchant.reelpay.com/login>


# ReelPay API Introduction

ReelPay is the cryptocurrency payment technology, enables merchants to pay and receive payment in cryptocurrency worldwide.  Whether your customers use ReelPay or not, we create a contactless, seamless and secure checkout experience. Make crypto payments to anyone and collect crypto payments with ease.&#x20;

## ReelPay Integration

{% content-ref url="/pages/cjYMYbhYa6m6uV0bQgHc" %}
[Hosted Checkout Page Integration](/payment-api/hosted-checkout-page-integration)
{% endcontent-ref %}

{% content-ref url="/pages/CzXLGmPyMMrV5Gw2JUzo" %}
[Native Checkout Integration](/payment-api/native-checkout-integration)
{% endcontent-ref %}

{% content-ref url="/pages/U72KTOvD0KimVaJrgolc" %}
[SDK Instruction](/sdk-instruction)
{% endcontent-ref %}

## ReelPay Interface

{% content-ref url="/pages/8JJKBorYPSEaoPWvDWe5" %}
[API Interface](/payment-api/api-interface)
{% endcontent-ref %}

## Scenarios&#x20;

### Merchant Acquiring (C2B) - Payment by Address or QR Code

In this scenario, users are able to make payments by sending crypto to destination address or scanning QR codes provided by ReelPay and shown by merchants.

1. Merchants cooperate with ReelPay to get different address and QR Codes for different products. Merchants display address and QR Codes for users to scan.
2. Users open their crypto wallet to make payment.
3. After the user completes the payment through ReelPay The merchant is notified of the user's payment status&#x20;
4. ReelPay will notify merchants the status of payments from users&#x20;

{% hint style="warning" %}
To enable the notification, you need to complete the configuration of [**Webhook** **URL**](/payment-api/webhook-notification)
{% endhint %}

According to your business needs, you can choose different types of checkout process:

* [**Native checkout on your website/application:** ](/payment-api/native-checkout-integration)

Manage 100% of your front-end interactions and use our APIs to build your own checkout page.

The entire process of entering your website, selecting the product, and making the final payment will be completed on your website.

* [**Hosted checkout page**](/payment-api/hosted-checkout-page-integration)**:**

Merchant integrates API to simplify the integration by utilizing ReelPay's hosted checkout page.&#x20;

It will redirect your customers to a ReelPay hosted checkout page that adapts dynamically to the device they are using in order to increase conversion.

The customer will pay directly through ReelPay checkout page belongs to merchants, and we will handle the wallet connection and payment processing for them. Alternatively, the user may scan a QR code, sending crypto to destination address or connect their wallet to make the payment.


# Contact Us

## ReelPay community:

Telegram support: <https://t.me/ReelPay>

Twitter: <https://twitter.com/reel_pay>

E-mail: <support@reelpay.com>


# To Get Started

Here are the articles in this section:

## Product Functiona.

* Accept online payment of ETH and multi-chain TOKEN on your website.
* Transfer ETH to anyone, anytime, anywhere.
* Nonprofits accept crypto donation.
* Receive the encrypted transfer of NFT
* Compatible with multiple wallets and multiple chains.
* Social marketing and promotion services.
* User-friendly dashboard for bill query.
* Quick access via SDK

## Applicable Industry

* Traditional Web 2.0 online shopping malls that want to be compatible with Web 3.0 payment methods.
* Enterprises that require higher privacy for their transactions.
* Enterprises that want quick access to multi-chain and multi-TOKEN payment.

## Where can I get AppId and AppKey?

* Register and open a [merchant](https://merchant.reelpay.com) account, go to application management after login background, and create and apply for an application to get the corresponding Appid and Appkey.


# Signature

Before the API integration, you need to get your AppId and AppKey.

ReelPay API authenticates your requests by AppId and AppKey. [Log in to your ReelPay account](https://merchant.reelpay.com/), go to [**AppManage page**](https://merchant.reelpay.com/appManage)**,** you can find your **AppId** and **AppKey** on this page.

{% hint style="info" %}
**AppId and AppKey** carries many privileges, so be sure to keep it secure. Please do not share your developer information in publicly accessible areas such as GitHub, client code, etc.
{% endhint %}

## Signature **Guide**

### **Header**

| Name         | Type   | Description      |
| ------------ | ------ | ---------------- |
| X-Sign       | string | Signature        |
| X-Timestamp  | int    | Timestamp（sec）   |
| X-Appid      | string | Merchant APPID   |
| content-type | string | application/json |

### Signature Algorithm

```go
// sign (golang)
func hmacSHA256Sign(appKey, timestamp string, body interface{}) (string, error) {
   jsonStr, err := json.Marshal(body)
   if err != nil {
      return  "", err
   }
   sha256Mac := hmac.New(sha256.New, []byte(appKey))
   _, err = sha256Mac.Write(append(jsonStr, []byte(timestamp)...))
   if err != nil {
      return "", err
   }
   return hex.EncodeToString(sha256Mac.Sum(nil)), nil
}
```


# API Specification Common Rules

### Protocol Rules&#x20;

The following specifies the rules for calling the API when accessing ReelPay

| Rule                       | Description                                                      |
| -------------------------- | ---------------------------------------------------------------- |
| Transfer Mode              | Use HTTPS for secure transactions.                               |
| Submit Mode                | POST, depends on the API.                                        |
| Data Format (content-type) | Data submitted and response are both in application/json format. |
| Char Encoding              | Use UTF-8 character encoding.                                    |
| Signature Algorithm        | Hmac-SHA-256                                                     |

### Request **Header**

| Name         | Type   | Description      |
| ------------ | ------ | ---------------- |
| X-Sign       | string | Signature        |
| X-Timestamp  | int    | Timestamp（sec）   |
| X-Appid      | string | Merchant APPID   |
| content-type | string | application/json |

[View error code](/error-code)


# Payment API

According to your business needs, you can choose different types of checkout process:

## Integration Method 1 -[ **Hosted checkout**](/payment-api/hosted-checkout-page-integration)

Merchant integrates API to simplify the integration by utilizing ReelPay's hosted checkout page.&#x20;

It will redirect your customers to a ReelPay hosted checkout page that adapts dynamically to the device they are using in order to increase conversion.

The customer will pay directly through ReelPay checkout page belongs to merchants, and we will handle the wallet connection and payment processing for them. Alternatively, the user may scan a QR code, sending crypto to destination address or connect their wallet to make the payment.

<figure><img src="/files/SkNJocSUOuCMzBWqSKvQ" alt="" width="203"><figcaption><p>Hosted CheckOut Page</p></figcaption></figure>

## **Integration Method 2 -** [**Native checkout on your website/application**](/payment-api/native-checkout-integration)

Manage 100% of your front-end interactions and use our APIs to build your own checkout page.

The entire process of visiting your website, selecting the product, and making the final payment will be completed on your website.

## [API Interface](/payment-api/api-interface)

View [more](#api-interface) API interfaces.

##


# Hosted Checkout Page Integration

Users can scan the QR code or copy the address on the hosted checkout page to make the payments.

We recommend merchants to integrate with ReelPay's hosted checkout interface. You will only need two steps to start accepting crypto payments. When the integration is done. Your server will be able to call the checkout URL API and present ReelPay's hosted checkout page to your users.&#x20;

<figure><img src="/files/mEeBrmI7th6bAj8RcPiF" alt=""><figcaption><p>Hosted CheckOut Page</p></figcaption></figure>

### **Step 1: Get Checkout URL**

## Return a Checkout URL

<mark style="color:green;">`POST`</mark> `https://pay.reelpay.com/v1/transactions/entrust`

#### Headers

| Name                                           | Type   | Description                                                                                                                                               |
| ---------------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| X-Appid<mark style="color:red;">\*</mark>      | String | Merchant's unique credential. Find it on the [**AppManage page**](https://merchant.reelpay.com/appManage).                                                |
| X-Timestamp<mark style="color:red;">\*</mark>  | String | Timestamp in seconds (10-digit). The request is valid for two minutes.                                                                                    |
| X-Sign<mark style="color:red;">\*</mark>       | String | hmacSHA256 (<mark style="color:red;">**body (json string)**</mark>+timestamp+appKey). [Signature guide](/reelpay-for-developer/to-get-started/signature). |
| content-type<mark style="color:red;">\*</mark> | String | application/json                                                                                                                                          |

#### Request Body

| Name                                             | Type   | Description                                                                                     |
| ------------------------------------------------ | ------ | ----------------------------------------------------------------------------------------------- |
| symbol<mark style="color:red;">\*</mark>         | String | Amount should be paid for this order (in USD by default, no more than two digits after the dot) |
| out\_trade\_no<mark style="color:red;">\*</mark> | String | Order ID in Merchant's system                                                                   |
| name<mark style="color:red;">\*</mark>           | String | Name of the product                                                                             |
| image                                            | String | The URL address of the product image                                                            |
| amount                                           | String | Product Price                                                                                   |

{% tabs %}
{% tab title="200: OK Success" %}
{% tabs %}
{% tab title="Response" %}

#### Response

#### Header

<table><thead><tr><th width="149">Name</th><th width="188">Value</th><th width="104" align="center">Required</th><th width="82">Type</th><th width="299">Description</th></tr></thead><tbody><tr><td>X-Appid</td><td>el9q0mzllpjhducy</td><td align="center">Y</td><td>string</td><td>Merchant's unique credential. Find it on the <a href="https://merchant.reelpay.com/appManage"><strong>AppManage page</strong></a>.</td></tr><tr><td>X-Timestamp</td><td>1677152490</td><td align="center">Y</td><td>string</td><td>Timestamp in seconds (10-digit). The request is valid for two minutes.</td></tr><tr><td>X-Sign</td><td>e0b78d93fd702aa31b07d5488cd85b4b7176d01c4ec45fd8bfaef0d1081a5ead</td><td align="center">Y</td><td>string</td><td>hmacSHA256 (<mark style="color:red;"><strong>body (json string)</strong></mark>+timestamp+appKey). <a href="/pages/HOaKJq8AxsStNTnQZCBX">Signature guide</a>.</td></tr><tr><td>content-type</td><td>application/json</td><td align="center">Y</td><td>string</td><td></td></tr></tbody></table>

#### Body

```json
{
    "code": 200,
    "message": "success",
    "data": {
        "url": "https://pay.reelpay.com/b79d2586ef7807d18c20230725183439",
        "time_expire": 1690389279,
        "trade_no": "b79d2586ef7807d18c20230725183439"
    }
}
```

#### Parameters

<table><thead><tr><th width="180">Name</th><th width="173">Value</th><th data-type="checkbox">Required </th><th>Type</th><th width="153">Description</th></tr></thead><tbody><tr><td>code</td><td>200</td><td>true</td><td>Integer</td><td></td></tr><tr><td>message</td><td>success</td><td>true</td><td>String</td><td></td></tr><tr><td>data</td><td></td><td>true</td><td>Object</td><td></td></tr><tr><td>data.url</td><td><a href="https://pay.reelpay.com/b79d2586ef7807d18c20230725183439">https://pay.reelpay.com/b79d2586ef7807d18c20230725183439</a></td><td>true</td><td>String</td><td>URL link of payment</td></tr><tr><td>data.time_expire</td><td>1690389279</td><td>true</td><td>Integer</td><td></td></tr><tr><td>data.trade_no</td><td>b79d2586ef7807d18c20230725183439</td><td>true</td><td>String</td><td>ReelPay Order ID</td></tr></tbody></table>
{% endtab %}

{% tab title="Remarks" %}
As a security measure, we will sign the returned data (and according to this only { code: 200 } should be signed, but it's signing all the returned body.). Additionally, it will return Appid, Sign, Timestamp  in the header of the response.  The signature method hmacSHA256 (body (json string)+timestamp+appKey).

Please use the data with caution if the signature verification fails. It indicates that the data has been tampered with.
{% endtab %}
{% endtabs %}

{% endtab %}

{% tab title="500: Internal Server Error " %}

{% endtab %}

{% tab title="404: Not Found " %}

{% endtab %}
{% endtabs %}

#### **Request Body Example**

{% tabs %}
{% tab title="Body" %}

<pre class="language-json"><code class="lang-json">{
<strong>    "out_trade_no":"202307250001",
</strong>    "symbol":"USD",
    "amount":"100",
    "name":"product name",
    "image":"https://reelpay.com/product.jpg"
}
</code></pre>

{% endtab %}

{% tab title="Remarks" %}
The body of HTTP is a json string .

Add the content in body of HTTP to the signature. Ensure the body content matches the signature content. As soon as ReelPay receives the request, the body content will be read and the signature will be verified.
{% endtab %}
{% endtabs %}

#### SDK Example

```go
import (
    reelpay "github.com/ReelPayment/sdk-go"
)
func main()  {
    transaction := reelpay.Transactions{
        AppID: "eqrbntqbi5uqvkpr",
        AppKey: "XhAlbICW10VJnWGruPL0NSnvb6946JDQ",
    }
    res := transaction.EntrustPay(&reelpay.EntrustPay{
        OutTradeNo: "jSWfrolOTdsadcYuUwkJbdw9IJUBeV",
        Symbol:     "USD",
        Amount:     "1.2",
        Name:       "Product name",
        Image:      "https://reelpay.com/product.jpg",
    })
    fmt.Println(res)
}
```

[Click me to see more](/sdk-instruction)

### Step 2: Configure Webhook to receive payout notification

Configure Webhook to receive notifications. ReelPay will notify merchant of the final transaction results. You can configure the Webhook URL on the [**AppManage page**](https://merchant.reelpay.com/appManage)

<figure><img src="/files/1IG193lwx0id07NcNPQu" alt="" width="328"><figcaption><p><a href="https://merchant.reelpay.com/appManage"><strong>AppManage</strong></a></p></figcaption></figure>

Transactions will start a request to the callback interface set by the merchant when involving the following [events](/error-code#transaction-status-code):

* Paid
* Transaction close
* Transaction timeout
* Refunded
* Chain confirmation failed

Callback Frequency: 5s、15s、30s、3m、10m、20m、30m、30m、30m、60m、3h、3h、3h、6h、6h&#x20;

Total: 24h3m50s &#x20;

Callback Form:

* The callback content is still encrypted.「For more information see the [Signature](/reelpay-for-developer/to-get-started/signature)」

### Webhook notification

{% tabs %}
{% tab title="Header" %}

<table><thead><tr><th width="537">Name</th><th width="206">Value</th><th width="101" align="center">Required</th><th width="77">Type</th><th width="299">Description</th></tr></thead><tbody><tr><td>X-Appid</td><td>eqrbntqbi5uqvkpr</td><td align="center">Y</td><td>string</td><td>Merchant's unique credential. Find it on the <a href="https://merchant.reelpay.com/appManage"><strong>AppManage page</strong></a>.</td></tr><tr><td>X-Timestamp</td><td>1690368283</td><td align="center">Y</td><td>string</td><td>Timestamp in seconds (10-digit). The request is valid for two minutes.</td></tr><tr><td>X-Sign</td><td>e0c6a719ebc366da0340c1b450026a903a55c86ed5fbe0b586cd73f6be74ade6</td><td align="center">Y</td><td>string</td><td>hmacSHA256 (<mark style="color:red;"><strong>body (json string)</strong></mark>+timestamp+appKey)</td></tr><tr><td>X-EventType</td><td>Paid</td><td align="center">Y</td><td>string</td><td><a href="/pages/SRCuQnmoR80UPGiDLeUf#transaction-status-code">Transaction Status Code</a></td></tr></tbody></table>
{% endtab %}

{% tab title="Body" %}

<pre class="language-json"><code class="lang-json"><strong>```json
</strong>{
   "trade_no": "uGHT9KRRvLIl4WW8JAaTWmETf3mz8D60",
   "appid": "eqrbntqbi5uqvkpr",
   "out_trade_no": "202307250001",
   "amount": "1.2",
   "status": "PAID",
   "success_time": 1690369680
 }
```

</code></pre>

{% endtab %}

{% tab title="Parameters" %}

<table><thead><tr><th width="155.33333333333331">Name</th><th width="88">Type</th><th>Description</th></tr></thead><tbody><tr><td>trade_no</td><td>string</td><td>ReelPay Order ID</td></tr><tr><td>appid</td><td>string</td><td>Merchant APPID</td></tr><tr><td>out_trade_no</td><td>string</td><td>Merchant Order ID</td></tr><tr><td>amount</td><td>string</td><td>Transaction Amount</td></tr><tr><td>status</td><td>string</td><td>Transaction Status</td></tr><tr><td>success_time</td><td>string</td><td>Transaction Time</td></tr></tbody></table>
{% endtab %}

{% tab title="Remarks" %}
Return Appid, Sign, Timestamp in the header of the response.  The signature method hmacSHA256 (<mark style="color:red;">**body (json string)**</mark>+timestamp+appKey).

Please use the data with caution if the signature verification fails. It indicates that the data has been tampered with.
{% endtab %}
{% endtabs %}

{% hint style="info" %}
Merchants sign to ensure information safety. Once the merchant has processed the order, please return "Success" in the body of the HTTP response if the processing has been successful. If the process fails, ReelPay will attempt to send the order again and the Webhook will retry up to 15 times ( Callback Frequency: 5s、15s、30s、3m、10m、20m、30m、30m、30m、60m、3h、3h、3h、6h、6h, Total: 24h3m50s ).
{% endhint %}

## Example

<figure><img src="/files/ePXbF8DvFgqBKnBwLmwJ" alt=""><figcaption></figcaption></figure>


# Native Checkout Integration

Users can scan the QR code or copy the address on the checkout page built on your sites/apps to make the payments.

Integrate with Native Checkout API to build the checkout page for your sites/apps. Users pay in your sites/apps. No need to lead them to external pages. Take complete control of your users' checkout experience.

### Step 1: Create Payment Order

## Submit payment order and receive payment address

<mark style="color:green;">`POST`</mark> `https://pay.reelpay.com/v1/transactions/pay`

Return receiving address/QR code and order information

#### Headers

| Name                                           | Type   | Description                                                                                                                                               |
| ---------------------------------------------- | ------ | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| X-Sign<mark style="color:red;">\*</mark>       | String | hmacSHA256 (<mark style="color:red;">**body (json string)**</mark>+timestamp+appKey). [Signature guide](/reelpay-for-developer/to-get-started/signature). |
| X-Timestamp<mark style="color:red;">\*</mark>  | String | Timestamp in seconds (10-digit). The request is valid for two minutes.                                                                                    |
| X-Appid<mark style="color:red;">\*</mark>      | String | Merchant's unique credential. Find it on the [**AppManage page**](https://merchant.reelpay.com/appManage).                                                |
| content-type<mark style="color:red;">\*</mark> | String | application/json                                                                                                                                          |

#### Request Body

| Name                                             | Type   | Description                                                |
| ------------------------------------------------ | ------ | ---------------------------------------------------------- |
| out\_trade\_no<mark style="color:red;">\*</mark> | String | Order ID in Merchant's system. A unique ID for every order |
| currency\_id<mark style="color:red;">\*</mark>   | String | [Currency ID](/payment-api/api-interface#token-list).      |
| fiat\_name<mark style="color:red;">\*</mark>     | String | Fiat name (USD)                                            |
| fiat\_amount<mark style="color:red;">\*</mark>   | String | Fiat amount (1.2)                                          |

{% tabs %}
{% tab title="200: OK Success (200)/Fail (200)" %}
{% tabs %}
{% tab title="Success (200)" %}

#### **Response (Success 200)**

**Header**

<table><thead><tr><th width="149">Name</th><th width="188">Value</th><th align="center">Required</th><th width="82">Type</th><th width="299">Description</th></tr></thead><tbody><tr><td>X-Appid</td><td>el9q0mzllpjhducy</td><td align="center">Y</td><td>String</td><td>Merchant's unique credential. Find it on the <a href="https://merchant.reelpay.com/appManage"><strong>AppManage page</strong></a>.</td></tr><tr><td>X-Timestamp</td><td>1677152490</td><td align="center">Y</td><td>String</td><td>Timestamp in seconds (10-digit). The request is valid for two minutes.</td></tr><tr><td>X-Sign</td><td>e0b78d93fd702aa31b07d5488cd85b4b7176d01c4ec45fd8bfaef0d1081a5ead</td><td align="center">Y</td><td>String</td><td>hmacSHA256 (<mark style="color:red;"><strong>body (json string)</strong></mark>+timestamp+appKey). <a href="/pages/HOaKJq8AxsStNTnQZCBX">Signature guide</a>.</td></tr></tbody></table>

**Body**

```json
{
        "code": 200,
        "message": "success",
        "data": {
                "trade_no": "uz54NEW9TVhLSIDHUSYB4aEFupKoE7I8",
                "pay_address": "0x988519e9ba1c147ff687f4b59009d7573c49efed",
                "time_expire": 1673264871,
                "amount": "0.00007971",
                "chain": "Ethereum",
                "token": "ETH",
                "contract": "ETH",
                "decimal": 18
        }
}
```

**Parameters**

<table><thead><tr><th width="184">Name</th><th width="173">Value</th><th width="101" data-type="checkbox">Required </th><th>Type</th><th width="153">Description</th></tr></thead><tbody><tr><td>code</td><td>200</td><td>true</td><td>Integer</td><td></td></tr><tr><td>message</td><td>success</td><td>true</td><td>String</td><td></td></tr><tr><td>data</td><td></td><td>true</td><td>Object</td><td></td></tr><tr><td>data.trade_no</td><td>uz54NEW9TVhLSIDHUSYB4aEFupKoE7I8</td><td>true</td><td>String</td><td>ReelPay order ID</td></tr><tr><td>data.pay_address</td><td>0x988519e9ba1c147ff687f4b59009d7573c49efed</td><td>true</td><td>String</td><td>The temporary payment address for current order,only effectivewithin the order validity period.</td></tr><tr><td>data.time_expire</td><td>1673264871</td><td>true</td><td>String</td><td>Payment deadline</td></tr><tr><td>data.amount</td><td>0.00007971</td><td>true</td><td>String</td><td>The number of tokens that need to be paid</td></tr><tr><td>data.chain</td><td>Ethereum</td><td>true</td><td>String</td><td>Chain Name</td></tr><tr><td>data.token</td><td>ETH</td><td>true</td><td>String</td><td>Token symbol</td></tr><tr><td>data.contract</td><td>ETH</td><td>true</td><td>String</td><td>Token Contract address</td></tr><tr><td>data.decimal</td><td>18</td><td>true</td><td>String</td><td>Token decimal</td></tr></tbody></table>
{% endtab %}

{% tab title="Fail (200)" %}

#### **Response (Fail 200)**

```json
{
	"code": 10003,
	"message": "Parameter error",
	"data": null
}
```

<table><thead><tr><th>Name</th><th>Value</th><th width="108" data-type="checkbox">Required</th><th>Type</th><th>Description</th></tr></thead><tbody><tr><td>code</td><td>10003</td><td>true</td><td>Number</td><td></td></tr><tr><td>msg</td><td>Service error, please try again</td><td>true</td><td>String</td><td></td></tr><tr><td>data</td><td></td><td>true</td><td>Object</td><td></td></tr></tbody></table>
{% endtab %}

{% tab title="Remarks" %}
As a security measure, we will sign the returned data (and according to this only { code: 200 } should be signed, but it's signing all the returned body.). Additionally, it will return Appid, Sign, Timestamp  in the header of the response.  The signature method hmacSHA256 (body (json string)+timestamp+appKey).

Please use the data with caution if the signature verification fails. It indicates that the data has been tampered with.
{% endtab %}
{% endtabs %}
{% endtab %}
{% endtabs %}

### **Request Body Example**

{% tabs %}
{% tab title="Request Body" %}

```json
{
  "out_trade_no": "uz54NEW9TVhLSIDHUSYB4aEFupKoE7I8",
  "currency_id": "ZxkanKiq9w2skt7e9CSR4oUX2q9F23LB",
  "fiat_name": "USD",
  "fiat_amount": "1.2"
}
```

{% endtab %}

{% tab title="Remark" %}
The body of HTTP is a json string .

Add the content in body of HTTP to the signature. Ensure the body content matches the signature content. As soon as ReelPay receives the request, the body content will be read and the signature will be verified.
{% endtab %}
{% endtabs %}

### Step 2: Configure Webhook to receive payout notification

Configure Webhook to receive notifications. ReelPay will notify merchant of the final transaction results. You can configure the Webhook URL on the [**AppManage page**](https://merchant.reelpay.com/appManage)

<figure><img src="/files/1IG193lwx0id07NcNPQu" alt="" width="328"><figcaption><p><a href="https://merchant.reelpay.com/appManage"><strong>AppManage</strong></a></p></figcaption></figure>

Transactions will start a request to the callback interface set by the merchant when involving the following [events](/error-code#transaction-status-code):

| PAID                      | Paid                      |
| ------------------------- | ------------------------- |
| TIME-OUT                  | Transaction timeout       |
| CLOSE                     | Transaction closed        |
| REFUND-IN-PROGRESS        | Refunding                 |
| REFUNDED                  | Refunded                  |
| ABNORMAL                  | Abnormal transaction      |
| CHAIN-CONFIRMATION-FAILED | Chain confirmation failed |

Callback Frequency: 5s、15s、30s、3m、10m、20m、30m、30m、30m、60m、3h、3h、3h、6h、6h&#x20;

Total: 24h3m50s &#x20;

Callback Form:

* The callback content is still encrypted.「For more information see the [Signature](/reelpay-for-developer/to-get-started/signature)」

### Webhook notification

{% tabs %}
{% tab title="Header" %}

<table><thead><tr><th width="149">Name</th><th width="206">Value</th><th width="101" align="center">Required</th><th width="77">Type</th><th width="299">Description</th></tr></thead><tbody><tr><td>X-Appid</td><td>eqrbntqbi5uqvkpr</td><td align="center">Y</td><td>string</td><td>Merchant's unique credential. Find it on the <a href="https://merchant.reelpay.com/appManage"><strong>AppManage page</strong></a>.</td></tr><tr><td>X-Timestamp</td><td>1690368283</td><td align="center">Y</td><td>string</td><td>Timestamp in seconds (10-digit). The request is valid for two minutes.</td></tr><tr><td>X-Sign</td><td>e0c6a719ebc366da0340c1b450026a903a55c86ed5fbe0b586cd73f6be74ade6</td><td align="center">Y</td><td>string</td><td>hmacSHA256 (<mark style="color:red;"><strong>body (json string)</strong></mark>+timestamp+appKey)</td></tr><tr><td>X-EventType</td><td>Paid</td><td align="center">Y</td><td>string</td><td><a href="/pages/SRCuQnmoR80UPGiDLeUf#transaction-status-code">Transaction Status Code</a></td></tr></tbody></table>
{% endtab %}

{% tab title="Body" %}

<pre class="language-json"><code class="lang-json"><strong>```json
</strong>{
   "trade_no": "uGHT9KRRvLIl4WW8JAaTWmETf3mz8D60",
   "appid": "eqrbntqbi5uqvkpr",
   "out_trade_no": "202307250001",
   "amount": "1.2",
   "status": "PAID",
   "success_time": 1690369680
 }
```

</code></pre>

{% endtab %}

{% tab title="Parameters" %}

<table><thead><tr><th width="155.33333333333331">Name</th><th width="88">Type</th><th>Description</th></tr></thead><tbody><tr><td>trade_no</td><td>string</td><td>Transaction ID</td></tr><tr><td>appid</td><td>string</td><td>Merchant APPID</td></tr><tr><td>out_trade_no</td><td>string</td><td>Merchant Order ID</td></tr><tr><td>amount</td><td>string</td><td>Transaction Amount</td></tr><tr><td>status</td><td>string</td><td>Transaction Status</td></tr><tr><td>success_time</td><td>string</td><td>Transaction Time</td></tr></tbody></table>
{% endtab %}

{% tab title="Remarks" %}
Return Appid, Sign, Timestamp in the header of the response.  The signature method hmacSHA256 (<mark style="color:red;">**body (json string)**</mark>+timestamp+appKey).

Please use the data with caution if the signature verification fails. It indicates that the data has been tampered with.
{% endtab %}
{% endtabs %}

{% hint style="info" %}
Merchants sign to ensure information safety. Once the merchant has processed the order, please return "Success" in the body of the HTTP response if the processing has been successful. If the process fails, ReelPay will attempt to send the order again and the Webhook will retry up to 15 times ( Callback Frequency: 5s、15s、30s、3m、10m、20m、30m、30m、30m、60m、3h、3h、3h、6h、6h, Total: 24h3m50s ).
{% endhint %}

## Example

<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F9lC1YZ1TOU74OejUtI5M%2Fuploads%2F4SzXwL6d6IQRvpsywfrW%2Fimage.png?alt=media&#x26;token=3e88604a-c977-4bd8-8bb7-892257e4c296" alt=""><figcaption></figcaption></figure>


# API Interface

### API BASE URL

```
https://api.reelpay.com
```

### Token List

* Interface Description: Get a list of TOKENs supported by the system. &#x20;
* Interface Address:`/v1/transactions/currency` &#x20;
* Request Parameters: None &#x20;
* Field Description

| Field        | Type   | Description      |
| ------------ | ------ | ---------------- |
| currency\_id | string | Currency ID      |
| chain        | string | Chain            |
| token        | string | Token            |
| contract     | string | Contract address |
| protocol     | string | Protocol         |
| logo         | string | Logo             |
| decimal      | int    | Decimal          |

Sample Response

```json
{
    "code": 200,
    "message": "success",
    "data": [
        {
            "currency_id":"ZxkanKiq9w2skt7e9CSR4oUX2q9F23LB",
            "chain": "Ethereum",
            "token": "ETH",
            "contract": "ETH",
            "protocol": "ERC-20",
            "logo": "https://reel-block-n.s3.ap-east-1.amazonaws.com/coin/png/202211/2ff17a95bbd65925.png",
            "decimal": 18
        },
        {
            "currency_id":"ZxkanKiq9w2skt7e9CSR4oUX2q9F23cc",
            "chain": "BSC",
            "token": "COLX",
            "contract": "0xF8aCF86194443DCde55fc5B9e448e183c290D8Cb",
            "protocol": "BEP-20",
            "logo": "https://reel-block-n.s3.ap-east-1.amazonaws.com/coin/png/202211/4178bc4853d1e691.png",
            "decimal": 8
        }
    ]
}
```

### Get Amount

Interface Description: Get the current exchange price between TOKEN and fiat currency. &#x20;

Interface Address: `/v1/transactions/amount` &#x20;

Request Parameters

| Field        | Type   | Description                                           |
| ------------ | ------ | ----------------------------------------------------- |
| currency\_id | string | [Currency ID](/payment-api/api-interface#token-list). |
| fiat\_name   | string | Fiat name (USD)                                       |
| fiat\_amount | string | Fiat amount (1.2)                                     |

Field Description

| Field  | Type   | Description                               |
| ------ | ------ | ----------------------------------------- |
| amount | string | The number of tokens that need to be paid |

Sample Response

```json
{
    "code": 200,
    "message": "success",
    "data": {
        "amount": "0.00007971"
    }
}
```

### Create Payment Order

Interface Description: Submit a ReelPay payment order and get an acknowledgment message through this interface. &#x20;

Interface Address: `/v1/transactions/pay` &#x20;

Request Parameters

| Field          | Type   | Description       |
| -------------- | ------ | ----------------- |
| out\_trade\_no | string | Merchant Order ID |
| currency\_id   | string | Currency ID       |
| fiat\_name     | string | Fiat name         |
| fiat\_amount   | string | Fiat amount       |

Field Description

| Field        | Type   | Description                                                                                     |
| ------------ | ------ | ----------------------------------------------------------------------------------------------- |
| trade\_no    | string | ReelPay order ID                                                                                |
| pay\_address | string | The temporary payment address for current order,only effectivewithin the order validity period. |
| time\_expire | string | Payment deadline                                                                                |
| amount       | string | The number of tokens that need to be paid                                                       |
| chain        | string | Chain Name                                                                                      |
| token        | string | Token symbol                                                                                    |
| decimal      | int    | Token decimal                                                                                   |
| contract     | string | Contract address                                                                                |

Sample Response

```json
{
        "code": 200,
        "message": "success",
        "data": {
                "trade_no": "uz54NEW9TVhLSIDHUSYB4aEFupKoE7I8",
                "pay_address": "0x988519e9ba1c147ff687f4b59009d7573c49efed",
                "time_expire": 1673264871,
                "amount": "0.00007971",
                "chain": "Ethereum",
                "token": "ETH",
                "contract": "ETH",
                "decimal": 18
        }
}
```

### Order Information Interface

Interface Description: Check the order status through this interface. &#x20;

Interface Address: `/v1/transactions` &#x20;

Request Parameters

| Field     | Type   | Description      |
| --------- | ------ | ---------------- |
| trade\_no | string | ReelPay order ID |

&#x20;Field Description

| Field          | Type   | Description                                               |
| -------------- | ------ | --------------------------------------------------------- |
| trade\_no      | string | ReelPay order ID                                          |
| out\_trade\_no | string | Merchant Order ID                                         |
| chain          | string | Chain Name                                                |
| token          | string | Token symbol                                              |
| contract       | string | Contract address                                          |
| protocol       | string | Protocol                                                  |
| logo           | string | Logo                                                      |
| decimal        | int    | Token decimal                                             |
| fiat\_name     | string | Fiat name (USD)                                           |
| fiat\_amount   | string | Fiat amount (1.2)                                         |
| status         | string | [Transaction Status](/error-code#transaction-status-code) |

Sample Response

<pre class="language-json"><code class="lang-json"><strong>{
</strong>    "code": 200,
    "message": "success",
    "data": {
        "trade_no": "uGHT9KRRvLIl4WW8JAaTWmETf3mz8D60",
        "out_trade_no": "12344556dss",
        "chain": "Ethereum",
        "token": "ETH",
        "contract": "ETH",
        "fiat_name": "usd",
        "fiat_amount": "0.1",
        "amount": "0.00007974",
        "pay_address": "0x988519e9ba1c147ff687f4b59009d7573c49efed",
        "status": "TO-BE-PAID",
        "time_expire": 1672988562
    }
}
</code></pre>

### Close Order

Interface Description: Pending orders are closed through this interface. (Transactions closed by the merchant may result in unavailable payments already finished by the user.) &#x20;

Interface Address: `/v1/transactions/close` &#x20;

Request Parameters

| Field     | Type   | Description      |
| --------- | ------ | ---------------- |
| trade\_no | string | ReelPay order ID |

Sample Response

```json
{
    "code": 200,
    "message": "success",
    "data": null
}
```

### Request Refund

Interface Description: The merchant can refund the payment to the user's address through this interface. (When refunding, the user's address must be actual; the contract address may result in the user not receiving the correct payment.) &#x20;

Interface Address: `/v1/transactions/refund` &#x20;

Request Parameters

| Field     | Type   | Description                                   |
| --------- | ------ | --------------------------------------------- |
| txid      | string | TXID transaction on the chain                 |
| trade\_no | string | ReelPay order ID                              |
| fuel      | int    | GAS fee deduction method「1: merchant 2: user」 |

Field Description

| Field               | Type   | Description                        |
| ------------------- | ------ | ---------------------------------- |
| merchant\_deduction | string | Merchant deduction amount          |
| actual\_receipt     | string | Actual amount received by the user |

&#x20;Sample Response

```json
{
    "code": 200,
    "message": "success",
    "data": {
        "merchant_deduction": "1.0002",
        "actual_receipt": "0.0001"
    }
}
```


# Webhook Notification

Configure Webhook to receive notifications. ReelPay will notify merchant of the final transaction results. You can configure the Webhook URL on the [**AppManage page**](https://merchant.reelpay.com/appManage)

<figure><img src="/files/1IG193lwx0id07NcNPQu" alt="" width="328"><figcaption><p><a href="https://merchant.reelpay.com/appManage"><strong>AppManage</strong></a></p></figcaption></figure>

Transactions will start a request to the callback interface set by the merchant when involving the following [events](/error-code#transaction-status-code):

* Paid
* Transaction close
* Transaction timeout
* Refunded
* Chain confirmation failed

Callback Frequency: 5s、15s、30s、3m、10m、20m、30m、30m、30m、60m、3h、3h、3h、6h、6h&#x20;

Total: 24h3m50s &#x20;

Callback Form:

* The callback content is still encrypted.「For more information see the [Signature](/reelpay-for-developer/to-get-started/signature)」

### Webhook notification

{% tabs %}
{% tab title="Header" %}

<table><thead><tr><th width="149">Name</th><th width="206">Value</th><th width="101" align="center">Required</th><th width="77">Type</th><th width="299">Description</th></tr></thead><tbody><tr><td>X-Appid</td><td>eqrbntqbi5uqvkpr</td><td align="center">Y</td><td>string</td><td>Merchant's unique credential. Find it on the <a href="https://merchant.reelpay.com/appManage"><strong>AppManage page</strong></a>.</td></tr><tr><td>X-Timestamp</td><td>1690368283</td><td align="center">Y</td><td>string</td><td>Timestamp in seconds (10-digit). The request is valid for two minutes.</td></tr><tr><td>X-Sign</td><td>e0c6a719ebc366da0340c1b450026a903a55c86ed5fbe0b586cd73f6be74ade6</td><td align="center">Y</td><td>string</td><td>hmacSHA256 (<mark style="color:red;"><strong>body (json string)</strong></mark>+timestamp+appKey)</td></tr><tr><td>X-EventType</td><td>Paid</td><td align="center">Y</td><td>string</td><td><a href="/pages/SRCuQnmoR80UPGiDLeUf#transaction-status-code">Transaction Status Code</a></td></tr></tbody></table>
{% endtab %}

{% tab title="Body" %}

<pre class="language-json"><code class="lang-json"><strong>```json
</strong>{
   "trade_no": "uGHT9KRRvLIl4WW8JAaTWmETf3mz8D60",
   "appid": "eqrbntqbi5uqvkpr",
   "out_trade_no": "202307250001",
   "amount": "1.2",
   "status": "PAID",
   "success_time": 1690369680
 }
```

</code></pre>

{% endtab %}

{% tab title="Parameters" %}

<table><thead><tr><th width="155.33333333333331">Name</th><th width="88">Type</th><th>Description</th></tr></thead><tbody><tr><td>trade_no</td><td>string</td><td>Transaction ID</td></tr><tr><td>appid</td><td>string</td><td>Merchant APPID</td></tr><tr><td>out_trade_no</td><td>string</td><td>Merchant Order ID</td></tr><tr><td>amount</td><td>string</td><td>Transaction Amount</td></tr><tr><td>status</td><td>string</td><td>Transaction Status</td></tr><tr><td>success_time</td><td>string</td><td>Transaction Time</td></tr></tbody></table>
{% endtab %}

{% tab title="Remarks" %}
Return Appid, Sign, Timestamp in the header of the response.  The signature method hmacSHA256 (<mark style="color:red;">**body (json string)**</mark>+timestamp+appKey).

Please use the data with caution if the signature verification fails. It indicates that the data has been tampered with.
{% endtab %}
{% endtabs %}

{% hint style="info" %}
Merchants sign to ensure information safety. Once the merchant has processed the order, please return "Success" in the body of the HTTP response if the processing has been successful. If the process fails, ReelPay will attempt to send the order again and the Webhook will retry up to 15 times ( Callback Frequency: 5s、15s、30s、3m、10m、20m、30m、30m、30m、60m、3h、3h、3h、6h、6h, Total: 24h3m50s ).
{% endhint %}

## Example

<figure><img src="/files/YhgpUpllVvGOGdF7hqmP" alt=""><figcaption></figcaption></figure>


# SDK Instruction

We support different languages of SDK, including [Golang](https://github.com/ReelPayment/sdk-go)、[PHP](https://github.com/ReelPayment/sdk-php)、Java

### Get the SDK

```undefined
GOLANG-SDK: go get github.com/ReelPayment/sdk-go
PHP-SDK: php composer.phar require reelpay/sdk-php
JAVA-SDK: https://github.com/ReelPayment/sdk-java
```

### Golang Example:

{% code overflow="wrap" %}

```go
``Example 1  Native checkout

import (
    "github.com/ReelPayment/sdk-go"
)
func main()  {
    transactions := reelpay.Transactions{AppID: "b66g4ypvrbzr7767", AppKey: "HcqmXmq7F4Y4UveaL7wcaYXSe3I8qS2X"}
    res := transactions.Pay(&reelpay.PayRequest{
        OutTradeNo: "QYXwrw25PzFZPYw83XWC5ManQWH3SZaW",
        CurrencyID: "bVmDPPs3Cyt1ZGeZVq6orZNWnfYhiE5H",
        FiatName:   "USD",
        FiatAmount: "0.0001",
    })
    fmt.Println(res)
}
```

{% endcode %}

```go
``Example 2  Hosted Checkout

import (
    reelpay "github.com/ReelPayment/sdk-go"
)
func main()  {
    transaction := reelpay.Transactions{
        AppID: "eqrbntqbi5uqvkpr",
        AppKey: "XhAlbICW10VJnWGruPL0NSnvb6946JDQ",
    }
    res := transaction.EntrustPay(&reelpay.EntrustPay{
        OutTradeNo: "jSWfrolOTdsadcYuUwkJbdw9IJUBeV",
        Symbol:     "USD",
        Amount:     "1.2",
        Name:       "Product name",
        Image:      "https://reelpay.com/product.jpg",
    })
    fmt.Println(res)
}
```

* PHP Example:

{% code overflow="wrap" %}

```php
``Example 1  Native checkout

<?php
require_once('vendor/autoload.php');
use Reelpay\Reelpay;

$transaction = Reelpay::Transaction('b66g4ypvrbzr7767','HcqmXmq7F4Y4UveaL7wcaYXSe3I8qS2X');
$res = $transaction->Pay([
    'out_trade_no' => 'QYXwrw25PzFZPYw83XWC5ManQWH3SZaW',
    'currency_id'  => 'bVmDPPs3Cyt1ZGeZVq6orZNWnfYhiE5H',
    'fiat_name'    => 'USD',
    'fiat_amount'  => '0.0001'
]);
var_dump($res);
```

{% endcode %}

```php
``Example 2  Hosted Checkout

<?php
require_once('vendor/autoload.php');
use Reelpay\Reelpay;
$transaction = Reelpay::Transaction(
    'eqrbntqbi5uqvkpr',
    'XhAlbICW10VJnWGruPL0NSnvb6946JDQ'
);
$res = $transaction->EntrustPay(
    "out_trade_no", 
    "USD", 
    "1.2", 
    "Product name", 
    "https://reelpay.com/product.jpg"
);
var_dump($res);
// Todo: $payUrl = $res['data']['url'];
```

* JAVA Example:

{% code overflow="wrap" %}

```java
``Example 1  Native checkout


import com.google.gson.JsonObject;
import com.reelpay.api.Transactions;

public class Test {
    public static void main(String[] args) {
        String appId = "Your appid";
        String appKey = "Your appKey";

        // Hosted Checkout
        String out_trade_no = "20240101xxxxxxxxxxxxx";
        String symbol = "USD";
        String amount = "3.00";
        String name = "Buy coins";
        String image = "https://reelpay.com/product.jpg";

        Transactions transaction = new Transactions(appId, appKey);
        JsonObject rt = transaction.EntrustPay(out_trade_no, symbol, amount, name, image);
        System.out.println(rt.toString());
        //{"code":200,"message":"success","data":{"url":"https://pay.reelpay.com/df9fbe011ca2a1c70f20240112113339","time_expire":1705032219,"trade_no":""}}
    }
}
```

{% endcode %}

### Call Method

| Method                                                                | Description                                             |
| --------------------------------------------------------------------- | ------------------------------------------------------- |
| [Currency](/payment-api/api-interface#token-list)                     | The list of tokens currently supported                  |
| [Amount](/payment-api/api-interface#get-amount)                       | Get the exchange rate and amount to pay                 |
| [Pay](/payment-api/api-interface#create-payment-order)                | Create a transaction and return transaction information |
| [Transaction](/payment-api/api-interface#order-information-interface) | Check transaction status                                |
| [Close](/payment-api/api-interface#close-order)                       | Close Order                                             |
| [Refund](/payment-api/api-interface#request-refund)                   | Request Refund                                          |
| [EntrustPay](/payment-api/hosted-checkout-page-integration)           | Hosted Checkout                                         |


# Error Code

## **Http Error Code**

| Code | Description         |
| ---- | ------------------- |
| 400  | BadRequest          |
| 401  | Unauthorized        |
| 406  | NotAcceptable       |
| 422  | UnprocessableEntity |

## **Business Status Code**

| Code  | Description                                |
| ----- | ------------------------------------------ |
| 200   | success                                    |
| 10002 | operation failed                           |
| 10003 | Parameter error                            |
| 10004 | Account does not exist                     |
| 10005 | This currency is not supported temporarily |
| 10006 | No address available                       |
| 10007 | Non-existent transaction                   |
| 10012 | Frequent operation                         |

## **Transaction Status Code**

| Code                      | Description               |
| ------------------------- | ------------------------- |
| TO-BE-PAID                | To be paid                |
| PAID                      | Paid                      |
| TIME-OUT                  | Transaction timeout       |
| CLOSE                     | Transaction closed        |
| REFUND-IN-PROGRESS        | Refunding                 |
| REFUNDED                  | Refunded                  |
| ABNORMAL                  | Abnormal transaction      |
| CHAIN-CONFIRMATION-FAILED | Chain confirmation failed |


# Change Record

2023/July/10

Add delegated payment mode and provide aggregated payment webpage

2023/June/05

Support contract payment

2023/March/21

Release the first version, support chain: Tron/ETH/PUT/BSC


# ReelPay Privacy Policy

### Scope and Consent

This Privacy Policy (“Policy”) describes how ReelPay Inc. (“ReelPay”, “we”, “us” or “our”) collects, stores, uses, and protects information. ReelPay's services include merchant processing services, websites, mobile applications, products, and any other features, technologies, or functionalities, including the customer support we provide ( the “Services”). This Policy applies to [www.ReelPay.com](https://www.reelpay.com/) and all other ReelPay websites on which it appears (the “Website”).

Our Privacy Policy may vary depending on the country or region in which we operate to conform with local policies and legal requirements.

We may process information from the following types of users.

1. Visitors to our Site;
2. Merchants who sign up for our Services (“merchants” mean any business that uses our Services to process payments, including non-profit organizations that use our Services to accept donations and “aggregators” that use our Services on their payment platforms);
3. Shoppers (“shoppers” are individuals and non-profit organizations that pay invoices forwarded to the merchant by ReelPay at checkout, request a refund, use our Services, or indirectly interact with ReelPay when donating to the merchant);
4. Payees who request payment (“Payments”) from merchants via cryptocurrency and use the Services (e.g., employees, contractors, vendors, or clients of exchange).

### What kind of information do we collect?

We collect different types of information when users interact with us. The information we collect depends on the type of user. We collect information that you choose to provide to us when you use our Services. We may also collect information from your device automatically. The following sections provide you with more details.

1. Visitors to our Site; we may collect the following information about visitors to our Website:

* Technical information including IP address; the type of browser, device, and operating system you use; the identifier associated with the device you use to access our Website; the pages you visit and the features you use; the date and time of access; the address of another website which you navigate from or to; and information about your Internet service provider
* Email address (for example, when you subscribe to our blog or choose to receive other marketing materials)
* Phone number (for example, when you contact our sales team or media team or choose to join our media listings)
* Full name (e.g., when you submit a support request)
* Country

1. Merchants (including businesses such as non-profit organizations and aggregators); during the onboarding process, we may collect the following information about the beneficiary or any user on the merchants' account (including non-profit organizations and aggregators that use our Services on their payment platforms). We may also collect information about aggregators. The information we collect depends on our compliance analysis and your risk profile.

* Merchant qualification information
* Merchant email address
* Business proof<br>

1. Shoppers; we may collect information when shoppers indirectly interact with ReelPay to pay the merchant's invoice, request a refund, and/or make a donation.

* When you pay a ReelPay invoice, we collect:
* Technical information including IP address; the type of browser, device, and operating system you use; the identifier associated with the device you use to access our Website; the pages you visit and the features you use; the date and time of access; the address of another website which you navigate from or to; and information about your Internet service provider
* Products purchased at the relevant merchant and the price
* Email address
* Encrypted wallet address
* When you request a refund, we collect:
* Amount
* Currency
* Email address
* Encrypted wallet address
* Invoice Number
* When you make a donation, we may collect as appropriate:
* Amount
* Currency
* Email address
* Full name
* Address
* Phone number
* Employer
* Professional title

The city where you are employed

We may collect the information above from merchants or directly from shoppers. The collection of this information improves our ability to provide our Services and allows our system to send emails directly to shoppers to obtain a cryptocurrency refund address when the payment is abnormal (e.g., overpayment, underpayment, etc.). It also provides a smoother payment experience for merchants and shoppers.<br>

1. In addition, we may collect and store information solely for the benefit of the merchant and provide invoice service at the precise request of the merchant. Information that a merchant may request about a shopper may include:

* Name
* Address
* Information about the computer or mobile device you use to access our Website, including the hardware model, operating system and version, the browser you use, IP address, and other device identifiers;
* Information about your use of the website, log information of the server which may include but is not limited to your login details, date and time of access, pages viewed, your IP address, time spent on our Website, and the website you previously visited just after our Website;
* Bandwidth upload and download speeds, the amount of available and used storage space on your device, and other statistical information about your device.<br>

### How we use cookies

We may collect information about your activities on our Website through first-party and third-party cookies, clear GIFs or web beacons, or other identifiers or technologies, including similar technologies that may evolve over time. We refer to these technologies collectively as cookies.

We may allow third parties to use cookies on our Website. Information collected by cookies may be shared with and used by us, others on our behalf, or third parties subject to their privacy policies. The information may be used on this Website or other websites or services, including those that may not be operated by us. When users use our Website or online Services, other parties may collect personally identifiable information about individual online activities over time and across different websites. Please go to our Cookie Policy to learn more information about our use of cookies.<br>

### Why do we collect personal information?

We use the information we collect to operate our business, to provide our services, to conform to other purposes permitted or required by law, and to provide you with a smooth, efficient, and customized experience. Specifically, we may use your information to:

* Provide our services (including customer support);
* To process transactions and send notifications about your transactions;
* Resolve disputes, collect fees, and troubleshoot problems;
* Communicate with you about our Services and business and inform you of matters important to your account and/or use of the Website. We also use your personal data to respond to any questions, comments, or requests you may have for us and to process any complaints;
* Comply with applicable laws and regulations;
* Establish, exercise, and defend legal rights;
* Monitor and report compliance issues;
* Customize, measure, and improve our business, Services, and the content and layout of our Website and apps (including developing new products and services, managing our communications, determining the effectiveness of our sales, marketing and advertising, analyzing and enhancing our products, Services, Website, and apps, ensuring the security of our networks and information systems, performing accounting, auditing, invoicing, reconciliation and collection activities, and improving and maintaining the quality of our customer service);
* Data Analysis;
* Provide targeted marketing, service update notifications, and promotional offers based on your communication preferences and measure their effectiveness. For marketing purposes, we will contact you via email and ask for your consent, unless it is not required by law. You always have the right to unsubscribe from our emails through the link in our newsletter, for example;
* Perform risk management, including comparing the accuracy of the information and verifying it with third parties, and identify and prevent fraud and other prohibited or illegal activities, claims, as well as other liabilities;
* Enforce the terms of our contracts.

### How we protect and store personal information

We take information protection very seriously. Our management, technology, and physical security measures are designed to protect the personal information we have, and we use internal policies and procedures to ensure the security of our data.

### How we share data with third parties

We may disclose information that we collect from our affiliates and third parties. For example, we may share information with

* Other ReelPay entities, including those helping detect and prevent potentially unlawful conduct and violations of our policies, and decision-makers about our products, services, and communications;
* Service providers that help operate our business and offer our services, such as cloud service providers that offer cloud infrastructure, providers of identity verification solutions and other due diligence solutions, providers of customer service solutions, providers of web analytics, and providers of marketing automation platforms;
* Law enforcement, government officials, regulators, our banks, and other third parties according to subpoenas, court orders, or other legal processes or requirements, if applicable to ReelPay; third parties when we believe that it is necessary to disclose and report suspected illegal or fraudulent activity or to investigate violations of our Terms of Use;
* Merchants, for example, in cases of suspected fraud or connection with an ongoing investigation.

### Your Choices

You can control the use of cookies at the individual browser level. If you reject cookies, you can still use our Website, but the use of certain features or areas of our Website may be restricted. You can control how your browser accepts cookies. For more information, see your browser's help documentation. You can also use our Cookie Preference Center to manage your cookie preferences. For more information about the use of cookies, please see our Cookie Policy.

As of the last update date of this Policy, there is no generally accepted response to the "Do Not Track" initiated by your browser. Therefore, we do not respond to such signals or other mechanisms that reflect your choice of permission to collect personally identifiable information about your online activities over time and across third-party websites or online services.

### Changes to this Policy

The Company may revise, modify, update and/or supplement this Privacy Policy at any time in its sole discretion and without notice. When we change this Privacy Policy, we will notify all users of our Website and make the revised Privacy Policy available on the Website.

### Contact Information

If you have any questions or concerns about our Privacy Policy or practices, you may contact us at <support@reelpay.com>


# Disclaimer for Purchasers

You are transferring bitcoins and (or) altcoins solely to and for the benefit of the specific merchant that referred you to the ReelPay platform. Please note that you do so at your own risk. Therefore, you should exercise due diligence regarding identity and trust of the merchant, any products, goods and services you purchase from the merchant before effecting any transfer of bitcoins and (or) altcoins.

In relation to the transfer of bitcoins and (or) altcoins, any legal relations are between you and the merchant. For the identity of the merchant, terms and conditions of purchase, data protection, warranties, refunds, legal remedies and other terms and conditions, any queries, letter, requests and (or) complaints regarding the purchase please refer to the merchant and its website.

ReelPay platform collects, uses, stores and otherwise processes information only about your technical data and e-mail address.

ReelPay does not engage into any other activities on behalf of the merchant, is not the merchant’s representative, agent or employee. ReelPay does not control, monitor, assess, authorise (and) or supervise activities of the merchant and (or) particular purchases.

ReelPay disclaims all liability which might otherwise be implied, whether arising in contract, tort (including negligence) or otherwise, including, but not limited to, any statutory or other warranties, such as implied warranties of merchantability and fitness for a particular purpose, or of non-infringement, or other warranties relating to quality, merchantability, ability of products to achieve a particular result, etc.

In no event will ReelPay or ReelPay affiliate, or any of the shareholders, owners, officers, directors, employees, or other representatives of ReelPay, or such company, be liable to you and (or) any party for any direct, indirect, special, incidental or other consequential damages related to a particular merchant, a purchase, product, good and (or) service, your access or use of the ReelPay platform or any of the information, materials, products or services available through the ReelPay platform, for any use of, or inability to use, the ReelPay platform or any information and/or materials available through the ReelPay platform, or any other linked web site or service, including without limitation, any lost profits, loss of anticipated savings, business interruption, loss of program]s or other data or otherwise, even if expressly advised of the possibility of such damages.

ReelPay reserves the right to suspend, postpone, and freeze all transactions that are deemed contrary to public order or norms of good morals, and these transactions can be null or void. Unilateral restitution is prohibited, in the event contrary to the mandatory statutory provisions or good morals, i.e. where the purpose of the transaction is contradicting public order or norms of good morals, and the provisions of public law establish property sanctions in regard to the of such transaction. The term “good morals” is evaluated from the criteria of reason to ensure the balance of interests of all members of society and protect the interests of economically and physically weaker and prevent abuse or intent of doing damage to third persons. ReelPay is not liable to the customer for non-fulfillment of that kind of contractual obligation and for the damage caused in the course of performing the duties and actions specified above. As well will not take any legal responsibility for any losses in relation to suspension, freeze, or disablement of these transactions.

In addition, by using our services, you may be asked to provide additional information and/or documents that enable us to verify your identity. From time to time, ReelPay will perform additional reviews of transactions, that are required due to banking partners’ additional due diligence. We will provide prompt notice to you if additional action from your side is needed. In order to use our service, you agree to cooperate with our information requests for such additional information when additional documentation is required. If you fail to provide the required information, you acknowledge that we will be unable to complete your transaction. ReelPay will not be liable to take any responsibility for such a transaction failing.

In the event, that a third-party provider who processes the transaction has already started the virtual currency exchange process, and the invoice is underpaid as an aftermath of insufficient funds, which resulted from the Purchaser sending less than the required amount, ReelPay reserves the right to issue a refund of the equivalent value in the virtual currency that was requested in the initial order of the Purchaser.

You agree to indemnify, release and hold harmless ReelPay, its affiliates and any company under common ownership or control with ReelPay its affiliates, as well as the officers, directors, agents, representatives and employees of the foregoing, from any claim, liability, loss, expense or demand, including legal fees, related to a particular merchant, a purchase, product, good and (or) service, your access or use of the ReelPay platform or any of the information, materials, products or services available through the ReelPay platform. Some jurisdictions do not allow the exclusion of certain warranties or the limitation or exclusion of liability for incidental or consequential damages. Accordingly, some of the above may not apply to you.


# Terms of Use

### 1. General Provisions

By using this website [ReelPay.com](https://www.reelpay.com/) (the "Website"), you agree to the Terms of Use. We reserve the right to modify any provisions of the Terms of Use at any time in our sole discretion without notice. It is your responsibility to check these Terms of Use periodically for changes. Your continued use of the Website after changes have been posted constitutes your acceptance of those changes. If you do not agree to these terms, do not use this Website.

### 2. Website Ownership

This Website is the property of ReelPay ("Company" or "We"). Downloading or other reproduction of any type of software or material on the Website does not grant you any express or implied rights or licenses. Any material you download to the Website is considered the property of the Company and may be used by the Company for all purposes not prohibited by law and may be distributed by the Company, including the transfer of existing legislative or regulatory authority in whose jurisdiction the Company is located.

The Company reserves all rights associated with the use of copyrights and trademarks and exercises those rights in full and within the limits of applicable law. The Company monitors compliance with copyright and other rights and violations of these rights are subject to legal sanctions.

### 3. Services and Products

The list of our products and services is specified on this Site, but we need to make it clear that we offer our products and services to enterprises only and not to individuals.

In no event should any information provided on this Website be construed as a public offer or any type of agreement between you and the Company operating under the trademark ReelPay. If you wish to purchase any product or receive any service from us, we shall conclude a separate agreement.

Such an agreement can be concluded by representatives on behalf of the Company, but we reserve the right to enter into an agreement on behalf of another company that has the required licenses or permits to provide the Services.

### 4. Access to the Website

This Website or any information or materials contained herein are not directed or intended for distribution to or use by any person or entity who is a citizen, resident, or located in any jurisdiction where such distribution, use, publication, or access is prohibited by law or regulation which prescribes the Company or any of its affiliates or otherwise related entities are required to meet the requirements for registration or licensing in such jurisdiction.

### 5. Copyright

Unless otherwise noted, the materials on this Website, including but not limited to any graphic design, text, audio-visual and audio content, and images and graphics, are the exclusive property of the Company. Unless otherwise stated, they may not be reproduced, transmitted, distributed, copied, sold, modified, displayed, saved for subsequent use, or used in any other way, in whole or in part, in any form or by any means, without the prior written consent of the Company.

### 6. Warranty and Limitation of Liability

Materials on the Website are available "as is" and the Company does not offer warranties of any kind, either express or implied, as to the accuracy of the materials provided herein for any particular purpose and expressly disclaims any warranty of fitness for a specific purpose. The Company shall not be liable for any loss or damage caused by the use of information published on this Site by third parties.

Although every effort is made to ensure the accuracy of the information posted on the Website, the Company can not and does not guarantee the accuracy, reliability, timeliness, or completeness of any information or data provided to you for any purpose. Neither the Company, any of its affiliates, directors, senior officers, or employees, nor any independent agent or distributor, shall be liable for any loss or damage caused by any operational error or failure on the Website or by any acts or omissions of any other person involved in the creation, production, and implementation of the Website, or if the data contained therein is not available to you, or for any other reason related to access, inability to access or use Website and of any material regardless of whether the Company or software providers or service providers control circumstances, this impacting or not.

In no event or for any reason based on law or equity, whether for breach of contract, negligence or other misconduct, and direct obligation or any other basis, shall the Company be liable for any indirect, consequential, incidental, or punitive damages in connection with the use or inability to use the Website or any part thereof, even if the Company has been notified of the possibility of such damages.

All data provided on the Website is for informational purposes only and therefore can not be considered an offer or invitation to make recommendations to anyone who is not in a jurisdiction where such an offer or invitation is prohibited, which would be unlawful. And it should not be construed as a recommendation to buy, sell, or take any action with respect to any particular investment.

No material on this Website should be construed as investment advice from the Company, any of its affiliates, directors, senior officers, or employees. In any event, we urge you to consult with professional legal, financial, tax, or investment advisors before making any decision to work with the Company.

### 7. Links to Third-Party Websites

Links to third-party websites are provided for your convenience only. The Company has no control over the content of these websites owned or operated by third parties. By using these links, you will leave the Website. The Company makes no warranty, express or implied, as to the content of such sites, including the adequacy, accuracy, timeliness, or completeness of the materials therein, for any particular purpose. The Company is not responsible if these websites infringe the rights of any third party, including copyrights and trademarks containing viruses or other harmful elements. The Company cannot guarantee the authenticity of documents posted on the Internet. Links to third-party websites do not constitute an endorsement of the opinions, ideas, products, information, or services offered on such websites. As a result, the Company is not responsible for any third-party websites.

### 8. Security

Please note that information transmitted via e-mail is never completely confidential and secure. By sending important and confidential e-mail messages which are not encrypted, you assume the risk associated with the fact that any message or information posted on the Website may be read or intercepted by others.

### 9. Privacy

The Company is committed to storing your personal information. The Company and its affiliates may share this personal information with each other and will not disclose it to third parties unless it is required by applicable law or court order.

The tracking system of Website visitors may also collect information about the pages you visit, how you learned about our Website, the frequency of visits, etc. The information collected is used to improve our Website and to contact you in any appropriate way to let you know what we think you might be interested in.

**Dormant customers**

By using ReelPay's Services, you agree that we have the right to convert all available assets on your account/wallet to USDT to protect the assets from exchange rate fluctuations if your account/wallet does not have any transactions for a period of 6 months.

### 10. Applicable Law and Jurisdiction

By using this Website, you agree to the jurisdiction of the courts located in Estonia for any claims related to the Terms of Use. In the event of a dispute, you give consent to the exclusive jurisdiction of the Estonian courts. If any provision of the Terms of Use is unlawful, void, or ceases to have any effect, then the provision shall be deemed severable and shall be construed in accordance with the provisions of applicable law. This provision shall not affect the validity and enforceability of any remaining provisions.

We do not provide services to residents of the United States, Afghanistan, Bahamas, Barbados, Botswana, Cambodia, Democratic People's Republic of Korea (DPRK), Ghana, Iran, Iraq, Jamaica, Mauritius, Myanmar, Nicaragua, Pakistan, Panama, Syria, Trinidad and Tobago, Uganda, Vanuatu, Yemen, and Zimbabwe.

Our Privacy Policy and AML\&KYC Policy posted on the Website are an integral part of the Terms of Use


# AML/CTF Policy

These days money laundering (ML) and terrorist financing (TF) are one of the biggest challenges faced by the crypto community. ReelPay considers ML/TF as a serious threat to its activities, and therefore introduces and implements its Anti-Money Laundering (AML) and Counter Terrorist Financing (CTF) Policy in accordance with the relevant legal acts, recommendations, guidelines and best practices in the field. ReelPay is committed to providing a reputable, reliable and secure services with high standards of integrity and transparency, in full compliance with applicable laws and global standards.

### The following are key elements of the ReelPay AML/CTF Policy:

* Customer Due Diligence;
* Risk Assessment; Ongoing Monitoring;
* Record Keeping;
* Communication with Competent Authorities.
* Customer Due Diligence.<br>

**Customer due diligence** information comprises the facts about a customer that should enable ReelPay to assess the extent to which the customer exposes it to a range of risks. Customer due diligence information is obtained from the customer before establishing the business relationships with him/her/it. ReelPay also verifies the obtained information against reliable and independent sources.\
\
By collecting and verifying the customer’s information the Company aims to form a reasonable belief as to the true identity of the customer. ReelPay must also understand the business of the customer to make sure that the customer does not launder illicit funds through ReelPay and/or these funds will not be used for TF.\
\
Information, documents and data provided to ReelPay during identification of the customer are processed in accordance with ReelPay Privacy Policy.\
\
**While assessing the risks, ReelPay applies the risk-based approach.** It means that ReelPay has an understanding of the ML/TF risks to which it is exposed and applies AML/CFT measures in a manner and to an extent which would ensure mitigation of these risks. This flexibility enables ReelPay to focus its resources and take enhanced measures in situations where the risks are higher.\
\
ReelPay **performs an ongoing monitoring of the business relationships with customers.** Ongoing monitoring is performed on all business relationships regardless of their risk rating

under the risk-based approach. However, the degree and nature of monitoring will depend on the risk rating of the customer and the particular service provided.

Ongoing monitoring allows ReelPay to gain deeper insights into customers’ profiles and behaviours and strengthen risk-based allocation of resources to tackling higher risk areas.

ReelPay **maintains appropriate records in relation to every customer, with the idea being that maintaining an adequate audit trail is a significant component of combating ML/TF.**

Record keeping is essential to facilitate effective investigation, prosecution and confiscation of criminal property. If the funds used to finance terrorist activity cannot be traced back through the financial system, then the sources and the destination of terrorist financing will not be identified.

Upon suspicion or any knowledge that the property of any value is directly or indirectly derived from criminal activity or participation in such activity, or that the intended purpose of property is to sponsor one or several terrorists or terrorist organization, ReelPay will report that to the competent authorities and will cooperate on any follow-up actions.

We will also file a STR and notify the appropriate law enforcement authority in situations involving violations that require immediate attention, such as terrorist financing or ongoing money laundering schemes.

We will report suspicious transactions by completing a STR, and we will collect and maintain supporting documentation as required by the IFSC and FIU regulations. We will file a STR no later than 30 calendar days after the date of the initial detection of the facts that constitute a basis for filing a STR. If no suspect is identified on the date of initial detection, we may delay filing the STR for an additional 30 calendar days pending identification of a suspect, but in no case will the reporting be delayed more than 60 calendar days after the date of initial detection. The phrase “initial detection” does not mean the moment a transaction is highlighted for review. A review must be initiated promptly upon identification of unusual activity that warrants investigation.

We will retain copies of any STR filed and the original or business record equivalent of any supporting documentation for five years from the date of filing the STR. We will identify and maintain supporting documentation and make such information available to FIU, any other appropriate law enforcement agencies, federal or state securities regulators.

We will not notify any person involved in the transaction that the transaction has been reported, except as permitted by the IFSC and FIU regulations. We understand that anyone who is subpoenaed or required to disclose a STR or the information contained in the STR will, except where disclosure is requested by FIU, or another appropriate law enforcement or regulatory agency, or to provide any information that would disclose that a STR was prepared or filed. We will notify IFSC or FIU, or of any such request and our response.


