Push Crypto

Overview

Push Crypto is a payment method that allows customers to top up their accounts from the cryptocurrency account top up service. Within the payment platform, top up payments are processed by using Gate.

Download the logo in vector format here.

Payment method type Cryptocurrency wallets
Countries and regions Refer to your Monetix key account manager for details
Payment currencies Refer to your Monetix key account manager for details
Currency conversion On the Monetix side
Purchases
Payouts
COF payments
Full refunds
Partial refunds
Chargebacks
Special considerations The following cryptocurrencies are supported:
  • BTC—Bitcoin
  • USDT—Tether (ERC20 and TRC20 standards)
  • ETH—Ether
  • LTC—Litecoin
  • TRX—Tron
  • DAI—Dai (ERC20 and BEP20 standards)
  • BNB—Binance Coin
Onboarding and access fee Refer to your key account manager at Monetix.

Interaction diagram

Account top up operation processing by using the Push Crypto payment method requires the merchant web service, one of the Monetix interfaces, the Monetix payment platform, and the provider's technical facilities.

Operations support

Interfaces Amounts Times
Payment Page Gate Dashboard minimum maximum basic threshold
Purchases * * 2 minutes 24 hours

* Refer to your Key Account Manager at Monetix for the information.

You can check the payment amount limits in your project by using Dashboard. To check your payment amount limits, go to Dashboard, select the Projects section and click the Payment methods tab.

Processing scenarios

In the Push Crypto method, to top up an account your customer needs to initiate the top up operation in the cryptocurrency account top up service.

Figure 1. Topping up an account

The sections that follow provide more information about what you need to perform payments and how you can analyze payments and operations information.

Topping up an account

General information

In the Push Crypto method, the merchant web service is required to do the following when processing a customer account topping up:

  1. Accept and process the request from Monetix. The processing includes the verification whether the customer account exists.
  2. Send the response containing the information whether the customer account exists.
  3. Accept and process the request for the payment ID within the web service.
  4. Send the response with the payment ID to the payment platform.
  5. Accept the callback with the top up result from the payment platform.

The following is the detailed picture of the customer account topping up procedure.

Figure 2. Topping up a customer account
  1. While using the cryptocurrency top up service, the customer chooses the web service and the account to top up and enters the required data.
  2. The cryptocurrency top up service sends a request to the Monetix URL to check whether the account exists.
  3. The payment platform processes the request.
  4. The payment platform forwards the request to the web service.
  5. The web service processes the request.
  6. The web service returns the response to the payment platform.
  7. The payment platform submits the customer account data to the cryptocurrency account top up service.
  8. The cryptocurrency account top up service submits a request for topping up the customer account to the Monetix payment platform.
  9. The payment platform processes the request.
  10. The payment platform sends a request for the payment ID within the web service side to the web service.
  11. The web service processes the request.
  12. The web service returns the payment ID to the payment platform.
  13. The payment platform sends the callback with the account top up operation result to the web service.
  14. The payment platform sends the notification with the account top up result to the cryptocurrency account top up service.
  15. The customer receives the result of the account top up from the cryptocurrency account topping up service.

The sections that follow discuss in more details the request format when using Gate and the format of the callbacks with account top up results. For the general information on how to use the Gate API, see API Description.

Request format

Request for verifying the existence of the account

There are several things you need to consider when dealing with account top up requests in the Push Crypto method:

  1. To verify the existence of the customer account, the payment platform sends the verify request to the web service URL using the HTTP method POST.
  2. The request has the following parameters:
    • type—the operation type on the web service side (always verify)
    • customer_id—customer account ID within the web service used for topping up from the customer account within the cryptocurrency account topping up service
    • project_id—the project ID you obtained from Monetix
    • signature—the signature for the request.
    Figure 3. Example of the data from the request for verifying the customer account
    {
        "type": "verify",
        "project_id": 1234,
        "customer_id": "7123456789",
        "signature": "e19695449545fac562843ca06e7e0f3e51281ad6"
    }
  3. You are required to send the response to the verify request synchronously. The response must contain the following parameters:
    • code—the response code
    • currency—the code of the purchase currency in the ISO-4217 alpha-3 format. This parameter is required for the 0 response code.
    Table 1. Valid response codes
    Code Description
    0 Success
    400 Signature error
    404 The customer account does not exist
    500 General error, the reason must be specified in the message parameter

    Your response can contain the following additional parameters as well:

    • additional_customer_id—the unique customer ID used for the customer identification in the Monetix payment platform
    • message—the free-form description of the response code

    If the verification shows that the customer account exists, the response should contain the 0 response code to the request and the currency code. Here is an example of such a response:

    Figure 4. Example of the response to the request
    {
        "code": 0,
        "currency": "USD",
        "additional_customer_id": "customer_123"
    }

    If the request cannot be processed or the requested customer account is not found, the response should contain the 404 response code and the error description in the message parameter. Here is an example of such a response:

    Figure 5. Example of the response with an error
    { 
        "code": 404,
        "message": "Account does not exist"
    }
Request for the payment ID

There are several things you need to consider when dealing with requests for the payment ID:

  1. The payment platform sends the check_deposit request for the payment ID within the web service to the web service URL using the HTTP method POST.
  2. The request contains the following parameters:
    • type—the operation type on the web service side (always check_deposit)
    • project_id—the project ID you obtained from Monetix
    • customer_id—ID of the customer web service account that the customer intends to top up
    • amount—purchase amount in minor currency units without any decimal point or comma except for cases where the currency does not have any minor currency units. If the currency has no minor units (that is, the number of digits for minor currency units is zero), then you must set this parameter to the amount in the major currency units. For the information on whether the currency has any minor units, see Currency codes.
    • currency—code of the purchase currency in the ISO-4217 alpha-3 format
    • payment_method—the payment method ID (always push/crypto)
    • signature—the signature for the request.
    Figure 6. Example of the request for the payment ID within the web service
    {
        "type": "check_deposit",
        "project_id": 1234,
        "customer_id": "7123456789",
        "amount": 10000,
        "currency": "USD",
        "payment_method": "push/crypto",
        "signature": "lY0LTSAzpR7dOqRXJnL1kO0lUmkQ0YYLWRg=="
    }
  3. You are required to respond to the check_deposit request synchronously. The response must contain the following parameters:
    • code—the response code
    • payment_id—the payment ID unique within the web service. This parameter is required for the 0 response code.
    Table 2. Valid response codes
    Code Description
    0 Success
    400 Signature error
    404 The customer account does not exist
    500 General error, the reason must be specified in the message parameter
    Your response can have the following additional parameters as well:
    • message—the free-form description of the response code
    • description—the description of the payment

    Here is an example of the response to the request for the payment ID within the web service.

    Figure 7. Example of the response with the payment ID
    {
        "code": 0,
        "payment_id": "payment_47",
        "description": "Success"
    }

    The response with an error must contain the response code and the description of the error in the message parameter. Here is an example of such a response:

    Figure 8. Example of the response with the information about an error
    {
        "code": 500,
        "message": "Something went wrong"
    }

Callback format

The Push Crypto method uses the standard format for callbacks to deliver purchase results. For more information about callbacks, see Callbacks in Gate.

One of the peculiarities of the method is that callbacks with the decline status may contain the payment.id parameter with the value that doesn't exist in the merchant web service. These callbacks are sent if the customer tries to make a purchase within the web service, and this purchase is declined within the payment platform. The web service is required to be able to accept such callbacks and response to them with the 200 OK response code to avoid the further receiving of such callbacks.

The following is an example of a callback containing the information about a successful 100.00 USD account topping up.

Figure 9. Example of the data from a successful account topping up callback
{
    "project_id": 1234,
    "payment": {
        "id": "payment_47",
        "type": "purchase",
        "status": "success",
        "date": "2022-03-25T11:08:45+0000",
        "method": "crypto",
        "sum": {
            "amount": 10000,
            "currency": "USD"
        },
        "description": ""
    },
    "account": {
        "number": "1234567"
    },
    "customer": {
        "id": "customer_47"
    },
    "operation": {
        "id": 28,
        "type": "sale",
        "status": "success",
        "date": "2022-03-25T11:08:45+0000",
        "created_date": "2022-03-25T11:08:05+0000",
        "request_id": "9e32835fb27907e0b08569d7d150e387a16a80e336c5117242b5cf60a4e17839",
        "sum_initial": {
            "amount": 10000,
            "currency": "USD"
        },
        "sum_converted": {
            "amount": 10000,
            "currency": "USD"
        },
        "code": "0",
        "message": "Success",
        "provider": {
            "id": 12345,
            "payment_id": "123abc123-321",
            "auth_code": ""
        }
    },
    "signature": "U7HQO7ToISZhMPKdM4Xr4DSX2UuHp99rHrtaxkUKQtoYzFvoB3cs9CRd4xeYG2Q=="
}

The following is the example of a callback for a declined account topping up.

Figure 10. Example of the data from a declined account topping up callback
{
    "project_id": 1234,
    "payment": {
        "id": "payment_47",
        "type": "purchase",
        "status": "decline",
        "date": "2022-03-25T11:20:30+0000",
        "method": "crypto",
        "sum": {
            "amount": 10000,
            "currency": "USD"
        },
        "description": ""
    },
    "customer": {
        "id": "customer_123"
    },
    "operation": {
        "id": 31,
        "type": "sale",
        "status": "decline",
        "date": "2022-03-25T11:20:30+0000",
        "created_date": "2022-03-25T11:19:53+0000",
        "request_id": "fff3d5f8d5d31bc460b68b57dc63f4b482e906eb",
        "sum_initial": {
            "amount": 10000,
            "currency": "USD"
        },
        "sum_converted": {
            "amount": 10000,
            "currency": "USD"
        },
        "code": "20000",
        "message": "General decline",
        "provider": {
            "id": 12345,
            "payment_id": "123abc-123",
            "auth_code": ""
        }
    },
    "signature": "J7W15rkqrLzTCD4HkoM4qoEnlVlfqz8155QSlXJKR4m8C4z2iFYv58P4VnHANu445/jmY+g=="
}

Related topics

The following topics might be useful when implementing payments through Gate:

Analysis of payments results

As with other payment methods Monetix offers, when using this method, you have several options to analyze the information about payments and operations.

You can load and analyze all the necessary information in Dashboard (dash-light.trxhost.com), for instance you can use the analytic panels in the Analytics section for this purpose.

Also, you can export the information for further analysis by using third party analytical tools. The following options are available:

  • Dashboard allows you to download reports in CSV format by using the tools in the Reports section. You can perform export as a one-time or regular download of data to your local computer.
  • Data API allows you to have payment information exported in JSON format and delivered to a URL you specify. The payment information is exported by means of sending requests to the /operations/get endpoint.

If you have any further questions regarding payment data analysis, contact Monetix technical support.