# INXY payments

## Registration

After registering in the service [https://auth.inxy.io/ ](<https://auth.inxy.io/ >) go to the Payment gateway API menu and fill in the following information:

1. Wallet name and description, icon.
2. The link to the website is placed at your request.

All accepted types of cryptocurrencies should be ticked and click Save Changes

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

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

After saving, a communication data field will open.

Next, generate an API key by clicking Generate(1) and enter the code sent to your email.

The received variable should be stored in a secure location. Also copy the Secret Key there.

{% hint style="success" %}
The keys, in case of loss, can be regenerated (if this happens, do not forget to change the data in the project).
{% endhint %}

In the Postback Url (2) field, specify the url for webhooks <https://chatter.salebot.pro/inxy\\_callback/result>

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

## Connection settings&#x20;

Then go to Mavibot →  "Acquiring" section  → INXY and click <mark style="background-color:blue;">**connect**</mark>. Enter the received API and Secret keys into the fields.

<figure><img src="/files/XrCOILrAF6MO9CgV3DEm" alt=""><figcaption><p>"Acquiring" section in Mavibot </p></figcaption></figure>

<figure><img src="/files/KMGQKJQdi2yBP6sYF6Pa" alt=""><figcaption><p>INXY settings in " Acquiring" section in Mavibot</p></figcaption></figure>

## Generating a payment link

To generate a payment link, you need to set the value of the payment\_sum variable (for example, 1). After that, the inxy\_pay\_url variable will appear. This variable can be displayed with a link or placed in the "Pay" button.

{% hint style="warning" %} <mark style="color:red;">**PAY ATTENTION!!!**</mark> The system works with dollars! The specified amount in payment\_sum will be accepted by INXY payment system as dollars.
{% endhint %}

The link looks like: [https://pay.inxy.io/sessions/umLf9cJWBRiaNwowGCE1 ](https://pay.inxy.io/sessions/umLf9cJWBRiaNwowGCE1)

Also, **before setting the value of the payment\_sum variable**, you can set the following **optional variables** for setting up the payment:\
**inxy\_currency** - the cryptocurrency in which the payment will be made.

{% hint style="info" %}
You can specify one of the possible cryptocurrencies that you ticked when creating the API key. If you leave it blank, then the payer will choose the cryptocurrency from those that have been marked..&#x20;
{% endhint %}

Available values: 'BTC', 'ETH', 'LTC', 'DOGE', 'USDT', 'USDC', 'DAI'

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

**inxy\_description** – payment description

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

{% hint style="warning" %} <mark style="color:red;">**Pay attention**</mark>! First, additional variables are set for settings, then payment\_sum.
{% endhint %}

Variables can be set earlier in the chain, rather than all in one block. And inxy\_pay\_url variable, which contains the link, should be displayed in the right place. When you click on it, a payment form will open.

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

{% hint style="warning" %} <mark style="color:red;">**Pay attention!**</mark> The total amount line contains a dollar value equal to payment\_sum. Below in total crypto amount - is the value in the selected cryptocurrency. It changes frequently depending on the current exchange rate. This is the value that the client need to pay you from his wallet.
{% endhint %}

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

{% hint style="warning" %} <mark style="color:red;">**Pay attention!!!**</mark> The wallet address for payment, within one session, is reserved for the client for only 2 hours. Recommend the client that he/she makes sure that the time has not expired and that the wallet address is current at the time of payment. If the session time is over, then you need to restart the payment process.
{% endhint %}

## Payment result processing (payment callback)

After a successful payment, a callback will be sent to the bot, which will let you know that the payment was successful. You see this callback in the system as a message from the user, so that the user cannot send them. This callback is NOT SEEN by the user himself, it is displayed only to the operator. INXY has several types of callbacks:

1. Successful callbacks consist of the first 10 characters of the token and the success postscript, for example: uc8zsjNN1x\_success

<figure><img src="/files/1oNA0ZLIR7SKyqZD6pIl" alt=""><figcaption><p>A successful payment callback in a dialogue with the client</p></figcaption></figure>

This callback is received if the client has fully paid the sum and there are no problems with the payment. Along with this callback, **inxy\_payment\_completed** variable will be added to the project variables, which is set to True. And also **inxy\_payment\_status** variable will take the value paid.

{% hint style="warning" %}
The inxy\_payment\_status variable can change its value throughout the entire payment processing period. After the user opens the form, it will take the waiting\_payment status, then during the processing of his payment it will take the waiting\_confirmation value, and after successful processing it will have the paid or partially\_paid value.
{% endhint %}

When processing a callback, the comparison type should be "Exact Match".

For example, you can process a successful payment in a conditional block and display the corresponding message to the user:

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

2\. There are cases when the crypto exchange rate has changed or the wallet has withdrawn a commission from the operation, as a result of which an incomplete amount is credited to your account. In this case, the inxy\_payment\_status variable will take the partially\_paid value and a callback will be sent to the system.

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

In this case, you will need to send a notification to the client requesting an additional payment.

For example, you can set a condition for the callback start and, after getting it, send the already generated url with a payment link to the client again, or set a condition that the block is triggered when the inxy\_payment\_status variable is equal to partially\_paid.

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

{% hint style="warning" %}
Please note that the payment link is **only** valid **for 2 hours!** If the client does not have time to pay for the remaining part, he/she can't no longer open it. Since INXY will already process the first incomplete payment at this stage, the money will not be refunded to the client. To return them, you will need to go to your INXY personal account and perform a refund operation.
{% endhint %}

## Creating Subscription

Subscriptions can be created in the INXY system. To do this, assign any value to the **inxy\_subscription\_payment** variable, and then a monthly subscription will be created.

If you want to specify a different period, use the following variables: **inxy\_subscription\_interval** equal to ‘day' - sets the interval equal to days (by default, it is a month)\
**inxy\_subscription\_period** - specify a variable from 1 to 30 to set the frequency.

For example, to create a subscription charge once every 15 days, you need to set inxy\_subscription\_interval =’day’ and inxy\_subscription\_period=15,and to have the payment charged every six months, you just need to specify inxy\_subscription\_period=6 (since inxy\_subscription\_interval is a month by default)

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

When following the link, the user will see the same payment page, but with a few differences: first, there will be a note on the side indicating that the payment is part of a subscription with the specified frequency; and second, the payment page will offer the customer the option to pay two or three sums in advance.

{% hint style="warning" %}
F**eatures of the INXY payment system:** If the customer pays x2 or x3 of the sum, Mavibot will receive a notification about the payment for only one of them. The remaing sum will be sent to the client's balance, from where the sum will be withdrawn in subsequent debits. Since the cryptocurrency exchange rate is constantly changing, as a result, this sum may not be enough for subsequent debit, which will lead to a situation with an incompletely paid subscription. In this case, you will receive “fail” callback and you can set up reminder to the client.
{% endhint %}

{% hint style="warning" %}
There can be no partial payment according to the schedule. The balance is checked before the payment, and if the balance isn't enough, the money **will not be debited** from the client's account.
{% endhint %}

<figure><img src="/files/54fUX35jgp3YuKTO94dR" alt=""><figcaption></figcaption></figure>

After successful subscription, the **inxy\_subscription\_id** variable will appear in the client variables, indicating the subscription number and **inxy\_subscription\_status** with its status.

<figure><img src="/files/UaqaTMEkLr1UuidMq2nM" alt="" width="385"><figcaption></figcaption></figure>

## Canceling subscription

To cancel your subscription, use the function **inxy\_remove\_subscription(inxy\_subscription\_id)**. Insert the inxy\_subscription\_id subscription ID into the function, and the subscription will be canceled.

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

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

<figure><img src="/files/tIp7ecHfMdmZSkZzG5sx" 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/payment/inxy-payments.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.
