# INXY Payments

## Registration

After registering in <https://auth.inxy.io/> service go to Payment gateway API in the left side menu and fill in the following data - name and description of the wallet and icon. Link to your site is optional. Select all the cryptocurrencies you want to accept with a checkbox and click Save Changes

<br>

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

After saving, the window with connection data will open. Next generate API key by hitting the Generate button (1) and enter the code, sent to your email. Save the resulting variable in the safe place. Copy the generated Secret Key in the same place. Keys, in case of loss, can be regenerated (in this case, remember to change the data in the project). Enter the URL for webhooks <https://chatter.salebot.pro/inxy\\_callback/result> in the Postback URL (2) field.

<br>

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

## Connection setup

Then go to Salebot — Payment systems — INXY and hit the Connect button. Enter received API & Secret keys in the fields.

скрин на подключение из Salebot

## Generating payment link

To generate payment link enter the value of payment\_sum variable (eg.: 1), after that the inxy\_pay\_url variable will appear. You can add this variable on the screen as a link or put it into the Pay button.

{% hint style="warning" %} <mark style="color:red;">**NOTE!**</mark> The system works with USD! Amount in the payment\_sum variable is considered to be USD in the INXY payment system.
{% endhint %}

The link looks like this: <https://pay.inxy.io/sessions/umLf9cJWBRiaNwowGCE1><br>

Also, **before entering the amount for payment\_sum variable**, you can enter the following **optional variables** for the payment setup\
**inxy\_currency** — cryptocurrency that will be used for the payment. You can enter one of the available cryptocurrencies that you have chosen with a checkbox during API key generation. If left empty, the players choose the cryptocurrency themselves from the list of chosen ones. Available values: ‘BTC’,‘ETH’,‘LTC’,‘DOGE’,‘USDT’,‘USDC’,‘DAI’

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

**inxy\_description** – payment description.

<figure><img src="/files/2kCkowoDRO8NTOW08cc3" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %} <mark style="color:red;">**NOTE!**</mark> FIrst you enter optional variables for the setup, and then the payment\_sum.
{% endhint %}

Variables can be entered earlier in the chain, and not in a single block. While the inxy\_pay\_url variable, that includes the link should be вывести in the correct place. This link opens the payment form.

<figure><img src="/files/1ESpayzBzVU2m4XxOB8X" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %} <mark style="color:red;">**NOTE!**</mark> The Total amount line shows the value in USD, that equals the payment\_sum. Еhe Total crypto amount below shows the value in the chosen cryptocurrency. It varies based on the current exchange rate. This is the amount your client has to pay you from his wallet.
{% endhint %}

<figure><img src="/files/7VAMJ0G5Uz09Ctiizs2B" alt=""><figcaption></figcaption></figure>

{% hint style="warning" %} <mark style="color:red;">**NOTE!**</mark> Wallet address for the payment during a single session is reserved for the client only for 2 hours. Recommend the client to make sure that the time has not run out and the wallet address is still valid when the payment is made. If the session time has run out — the whole payment process has to be started over.
{% endhint %}

## Payment callback

After the successful payment the bot will receive a callback that will tell you the payment was successfully made. You see this callback in the system as a message from the user, so that the user can not send it. Users themselves CAN NOT SEE the callback, only the operator can see it. INXY has several types of callbacks:

1. Success callbacks consist of first 10 symbols of the token followed by ‘success’, eg.: uc8zsjNN1x\_success

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

Such callback is sent, if the client paid the full amount and no problems have occurred during the payment. Along with this callback two variables will be added to the project: inxy\_payment\_completed equals True; and **inxy\_payment\_status** with the paid value.

{% hint style="warning" %}
During the process the **inxy\_payment\_status** variable changes its value. After the user opens the form it will change to waiting\_payment, during the payment processing it will change to waiting\_confirmation, and after the successful processing it will have the value of paid or partially\_paid.
{% endhint %}

During the callback processing comparison type should be Full match. Eg.: you can make the successful payment processing as a block with condition and show relevant message to the user:

<figure><img src="/files/7PCa5jCI9uUyJdE0YSIC" alt=""><figcaption></figcaption></figure>

2\. Sometimes cryptocurrency exchange rates change or wallets take extra fee from operations so that the resulting amount that you’ve received is not full. In such cases the inxy\_payment\_status variable will have the partially\_paid value and the system will receive a callback that looks like this:

\
In this case you’ll have to message the client with a request to cover the missing amount. Eg.: you can set a condition for the beginning of your callback and upon receiving it send the client a pre-generated url with a payment link or you can set a condition that the block activates, when the inxy\_payment\_status variable value is **partially\_paid**.

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

{% hint style="warning" %}
Remember that the payment link is valid for 2 hours only! If the client does not make the payment of the missing amount in time, it can not be opened. As INXY on this stage will process the first partial payment, money won’t return to the client. To return them you’ll need to go to your INXY account and make the return operation.
{% endhint %}

## Creating subscription

INXY system allows users to create subscriptions. To do this add any value to **inxy\_subscription\_payment** variable, and a monthly subscription will be created. If you want to set a different period, use the following variables: \
**inxy\_subscription\_interval** equal to ‘day’ — will create a subscription interval equal to days (default is month)\
**inxy\_subscription\_period** — add a variable equal from 1 to 30, to set the period. Eg. To create a subscription payment once each 15 days set the inxy\_subscription\_interval =‘day’ and inxy\_subscription\_period=15, and for the payment to be made twice a year set inxy\_subscription\_period=6 (as inxy\_subscription\_interval equals month by default)

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

Link will also open the payment form but it will be different: first, on the side it will be shown that the payment is subscription-based with shown period, second, the form will suggest the client to add a deposit for several payments ahead.

{% hint style="warning" %}
**INXY specifics**: If the client pays х2 or х3 of the amount, Salebot will receive a message about a single amount. The rest will be deposited on the clients balance, and will be used for the upcoming payments. As the cryptocurrency exchange rate varies, in the end this amount may be insufficient for one of the following payments resulting in an unpaid subscription. In such a case, you will receive a callback that states ‘fail’ and you can set up a reminder for your client.
{% endhint %}

{% hint style="warning" %}
Subscription cannot be partially paid for. Client’s balance is checked before the payment. If there’s not enough funds the payment is not made at all.
{% endhint %}

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

After the successful subscription client variables will include inxy\_subscribtion\_id (reference number) and inxy\_subscription\_status.

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

## Cancelling subscription

In order to cancel a subscription, use the following function **inxy\_remove\_subscription(inxy\_subscription\_id)**. Enter subscriptions id number as inxy\_subscribtion\_id in the function and the subscription will be cancelled.

<figure><img src="/files/1AT7OssfLTk3yfgBdwJx" alt=""><figcaption></figcaption></figure>

In case of success you’ll receive a callback ‘Subscription status inxy\_subscription\_id - deleted’ and the variable inxy\_subscription\_status will change to the relevant value.

<figure><img src="/files/4fyFsdBFwfywKTseniut" alt=""><figcaption></figcaption></figure>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.mavibot.ai/integrations/payment/inxy.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
