Apollopayment API
English
English
  • Authorization
  • Request signing
  • List of error codes
  • Webhooks
  • IFrame order
  • Payment acceptance widget
  • Telegram MiniApp
  • API Reference
    • Base actions
      • Check x-api-signature
      • Fetch available currencies
      • Current price request
      • Search for operations by TX hash
      • Check address format
      • Get transaction history
    • Advanced account
      • Get advanced balances of user
      • Get advanced balance by id
      • Get payment address for advanced balance top-up
    • Blockchain addresses
      • Search by id
      • Transactions tracking
      • Search by address
      • Meta-data
      • Address Transactions
      • Last transaction of the address
      • Getting a list of PayIn addresses
      • Getting a list of business addresses
      • Get recurrent addresses
      • Getting a list of PayOut addresses
      • Creating a new business wallet address
      • Creating a new PayOut wallet address
    • Personal addresses
      • User creation
      • Getting an address
      • Getting a list of addresses
      • Get user
      • Adding a trusted address
      • Getting a list of trusted addresses
      • Deleting a trusted address
    • Orders
      • Creating an order
      • Getting information about an order
      • Getting a list of orders
    • Withdraws
      • Getting a commission for making a withdrawal
      • Sync withdraw
      • Async withdrawal
      • Receiving withdrawal information
    • Invoices
      • Create an invoice for payment
      • Invoice information request
      • Getting a list of invoices
    • Auto swaps
      • Create auto-swap
      • Find auto-swap by ID
    • Withdrawals 2.0
      • Create auto-withdrawal
      • Find auto-withdrawal by ID
      • Additional confirmation of the withdrawal
    • Bridge
      • Getting limits for cross-chain transfer
      • Getting information about cross-chain transfer
      • Commission token formation
      • Creating a cross-chain translation
    • Swaps
      • Getting limits for cross-chain exchange
      • Getting information about cross-chain exchange
      • Commission token formation
      • Creation of a cross-chain exchange
    • Recurring payments
      • Creating a payment link
      • Get a payment link
      • Get payment links by user
      • Disabling the payment link
      • Create a subscription
      • Getting a subscription
      • Cancel Subscription
      • Creating a payment
    • KYT
      • Check transaction risks
      • Check withdrawal risks
      • Check withdrawal risks for provided address
    • Partners API
      • Create user
      • Get user
      • Get all users
      • Creating an organization
      • Getting a list of organizations
      • Getting the user's advance balances
      • Replenishment of the user's advance balance
      • Get general tariffs
      • Create/update individual tariff
      • Get individual tariffs
      • Create API key
      • Get API keys
      • Delete API key
    • Webhooks
      • Get webhook
      • Get webhook (extended)
    • Orphan transactions
      • Get a transaction
      • Get a list of transactions
      • Get a commission token
      • Withdrawal
    • Address book
      • Add an address
      • Delete an address
      • Update the address
      • Get a list of addresses
Powered by GitBook
On this page
  • Nonce usage
  • Example of creating request signature NodeJS

Request signing

You need to specify your secret key, apply SHA256 encryption to your payload and convert the result to HEX format

Nonce usage

You should pass nonce parameter in the payload of every request to this API. nonce can be a number or a string, each request must be accompanied by a unique value. Otherwise the request will fail.

We will use Unix TimeStamp as the nonce value for sending requests in this document.

Example of creating request signature NodeJS

Let's say we want to get price rate of ETH/USDT (method /price-rate)

1. Build request payload

const payload = { from: 'ETH', to: 'USDT' };

2. Add nonce parameter to the payload in order to avoid request duplication.

By using unix timestamp as nonce parameter we will meet the requirements of using number and its incrementing for every new request.

payload.nonce = Date.now(); // 1643881172430

3. Create string from payload and used it in a process of creating signature.

const stringPayload = JSON.stringify(payload); // {"from":"ETH","to":"USDT","nonce":1643881172430}

4. Create signature:

Example with crypto-js module:

const CryptoJS = require("crypto-js"); 
const sign = CryptoJS.HmacSHA256(stringPayload, __PRIVATE_KEY__).toString(CryptoJS.enc.Hex)

Example with crypto module:

const crypto = require('crypto');  
const sign = crypto.createHmac('SHA256', __PRIVATE_KEY__).update(stringPayload).digest('hex');

5. Send request with required headers:

const axios = require('axios'); // lib for HTTP requests
const response = await axios.post(__BASE_URL__ + '/price-rate', stringPayload, 
{ 
    headers: 
        {
            'x-api-public-key': __PUBLIC_KEY__, 
            'x-api-signature': sign 
        } 
});

6. Response:

console.log(response.data); // {"success":true,"response":"2751.51000000"}
PreviousAuthorizationNextList of error codes

Last updated 1 year ago