API documentation

The API is designed as a REST-ful. JSON data format is used for communication. We recommend calling individual methods with application/json header with UTF-8 encoding (Content-Type: application/json; charset=utf-8).

There are two types of methods:

  • public (do not require authorization)
  • private (require authorization)

To access the private API methods, please get in touch with our customer support to obtain an authorization token {api_key}.

Authorization is executed by sending HTTP header Authorization: Bearer {api_key}

The API is available at the following URL:
/api/{endpoint}

Below, you will find description of available services (endpoints).

 

GET /status

Public method used to check status of service.

Request:
/api/status

Response:
{
   "status": "ok",
   "timestamp": 1649143742,
   "datetime": "2022-04-05T07:29:02+00:00"
}

Response parameters:
Name: status
Type: text
Description: ok - service active

Name: timestamp
Type: integer
Description: Current server time

Name: datetime
Type: datetime
Description: Current server time in ISO 8601 format

 

GET /validateAddress/{btc_address}

Public method used to validate the bitcoin address.

Request:
/api/validateAddress/n3PdePLBgEeTYk4nAhcbehsnjvr1i3LyYS

Response:
{
   "result": "true"
}

Response parameters:
Name: result
Type: boolean
Description:
true - BTC address is valid
false - BTC address is invalid

 

POST /createTransaction

Private method used to create a new transaction.

Request:
/api/createTransaction

Request parameters:
{
   "delay": "1",
   "payouts": [
      "mr9if7VDsVfEZ1qUo2u3trv6rU9eH7Yx4u",
      "mia3h2FdYvR2LbDR1to9u6TC62hiTbDKM9"
   ],
   "refCode": "qljncygz"
}

Name: delay
Type: integer
Description: Transaction delay in hours (the transaction won't start until the delay interval is reached)

Name: payouts
Type: array
Description: List of BTC addresses and payouts in the following format [BTC_address ⇒ BTC_amount]

Name: refCode
Type: string
Description: Affiliate program code (optional)

Response:
{
   "id": "JEVG1TKFP4L95EDX",
   "status": "pending",
   "depositAddress": "tb1qmc2vcq6a427v6t83z8rnyg9ldf5k5p5uj2x4xv",
   "depositAmount": 0.00316,
   "payouts": {
      "mr9if7VDsVfEZ1qUo2u3trv6rU9eH7Yx4u": "0",
      "mia3h2FdYvR2LbDR1to9u6TC62hiTbDKM9": "0"
   },
   "fee": 0.00016,
   "delay": "1",
   "refCode": "qljncygz",
   "updated": "2022-05-05T08:56:05+00:00",
   "created": "2022-05-05T08:56:05+00:00",
   "signature": "zDQlfJHSJWtzw8yFwevs7KmiDZs15FVl01RbPwPt3bc="
}

Response parameters:
Name: id
Type: string
Description: Transaction ID

Name: status
Type: string
Description: Transaction status:
- pending
- confirming
- processing
- complete
- expired

Name: depositAddress
Type: string
Description: Deposit BTC address

Name: depositAmount
Type: decimal
Description: Deposit amount = payouts + fees

Name: payouts
Type: array
Description: List of BTC addresses and payout amounts

Name: fee
Type: decimal
Description: Total amount of fees

Name: delay
Type: integer
Description: Transaction delay in hours

Name: refCode
Type: string
Description: Affiliate program code

Name: updated
Type: datetime
Description: Transaction update time in ISO 8601

Name: created
Type: datetime
Description: Transaction creation time in ISO 8601

Name: signature
Type: string
Description: Signature

 

GET /transactions

Private method used to list all transactions, sorted from newest to oldest.

Request:
/api/transactions?limit=2&offset=0

Request parameters:
Name: limit
Type: integer
Description: Number of records returned (default 30)

Name: offset
Type: integer
Description: Paging offset (default 0)

Response:
{
   "transactions": [
      {
        "id": "Y9ANXDCJMHG2J6GD",
        "status": "pending",
        "depositAddress": "tb1qfhlu3acnqztwu2ep8mn446f8mfhkyt6u4xq2dd",
        "depositAmount": 0.00316,
        "payouts": {
          "mr9if7VDsVfEZ1qUo2u3trv6rU9eH7Yx4u": "0.001",
          "mia3h2FdYvR2LbDR1to9u6TC62hiTbDKM9": "0.002"
        },
        "fee": 0.00016,
        "delay": "1",
        "updated": "2022-05-05T08:52:52+00:00",
        "created": "2022-05-05T08:52:52+00:00"
      },
      {
        "id": "EEFU0IKT3BAJ1JOQ",
        "status": "expired",
        "depositAddress": "tb1qu80wgqucwvwxt3wdk8lyd4weuxn3vvy23et3p3",
        "payouts": {
          "mx1HgMB1EG38bRtfH4tQwMGSvZXodbxdQ8": "0.005"
        },
        "fee": 0.0001,
        "delay": "0",
        "updated": "2022-04-29T11:46:05+00:00",
        "created": "2022-04-26T11:46:02+00:00"
      }
   ],
   "totalTransactions": 27,
   "limit": "2",
   "offset": 0
}

Response parameters:
Name: transactions
Type: array
Description: List of transactions

Name: totalTransactions
Type: integer
Description: Total number of transactions

Name: limit
Type: integer
Description: Maximum number of returned records

Name: offset
Type: integer
Description: Paging offset

 

GET /transaction/{id}

Private method used to receive transaction details.

Request:
/api/transaction/Q96G3MSNW8MPQRTX

Response:
{
   "id": "Q96G3MSNW8MPQRTX",
   "status": "complete",
   "depositAddress": "tb1q0pkwdj3pqdp587yrc8sus876kccn5tq577ce5x",
   "depositAmount": "0.0062244",
   "depositTxid": "80bb6cda5036ce277598d949d2e4b3771c56b31ba77b757bf9753a370f16c99",
   "payouts": {
      "mfuAKvSsAMrC7gjbEEb521uc1myeF9BSsc": "0.006"
   },
   "txid": "0ea6f3a702a368ed09830d959f1c82b7d8f65f53a783965514380e123fc8ca4e",
   "fee": 0.0002244,
   "delay": "0",
   "updated": "2022-04-28T09:46:11+00:00",
   "created": "2022-04-28T09:42:41+00:00"
}

Response parameters:

Name: id
Type: string
Description: Transaction ID

Name: status
Type: string
Description: pending | confirming | processing | complete | expired

Name: depositAddress
Type: string
Description: Deposit BTC address

Name: depositAmount
Type: decimal
Description: BTC deposit amount

Name: depositTxid
Type: string
Description: Deposit TXID

Name: payouts
Type: array
Description: BTC addresses and payouts

Name: txid
Type: string
Description: Withdrawal TXID

Name: fee
Type: decimal
Description: Total fees

Name: delay
Type: integer
Description: Delay in hours

Name: refCode
Type: string
Description: Affiliate code

Name: updated
Type: datetime
Description: ISO 8601 format

Name: created
Type: datetime
Description: ISO 8601 format

Name: signature
Type: string
Description: Signature

 

Signature

Each transaction contains a "signature" parameter that confirms the data is valid and has not been altered.

In addition to the authorization token {api_key}, you will also receive a private key {secret_key} from customer support. You can use the secret key to verify authenticity.

Signature calculation:
$secret_key = {secret_key};
$transaction_details = {
   "id": "Q96G3MSNW8MPQRTX",
   "status": "complete",
   "depositAddress": "tb1q0pkwdj3pqdp587yrc8sus876kccn5tq577ce5x",
   "depositAmount": "0.0062244",
   "depositTxid": "80bb6cda5036ce277598d949d2e4b3771c56b31ba77b757bf9753a370f16c99",
   "payouts": { "mfuAKvSsAMrC7gjbEEb521uc1myeF9BSsc": "0.006" },
   "txid": "0ea6f3a702a368ed09830d959f1c82b7d8f65f53a783965514380e123fc8ca4e",
   "fee": 0.0002244,
   "delay": "0",
   "updated": "2022-04-28T09:46:11+00:00",
   "created": "2022-04-28T09:42:41+00:00"
};
$signature = base64_encode(hash_hmac('sha256', implode('|', array_map(function($a) { return is_array($a) ? implode(',', array_keys($a)).','.implode(',', $a) : $a; }, array_values($transaction_details))), $secret_key, TRUE));

Note: parameter order must match the response. "signature" is not part of the calculation.

 

Error codes

If no error occurs, each request receives an HTTP 200 OK response.

ERROR response:
{
   "code": 400,
   "description": "Invalid JSON data."
}

Response parameters:
Name: code
Type: integer
Description: HTTP error code
- 400 bad request
- 401 invalid API key
- 403 blocked/denied
- 404 endpoint not found
- 503 service unavailable

Name: description
Type: string
Description: Error description

By using CoinJoin, you agree to Privacy policy .