1: Work-flow, How it works
This is the general work-flow, you create an order, give it your wallet address (final wallet for payment), you get an address where your users should pay, once the coins are there, we send the coins to your wallet, and notify you that payment was done.

1: Create an order (generates pay address).
2: Show payment details to customer.
3: Receiving the Payment Notification (that your server will get once the payment is done).
4: Verify payment (Your server asks our server if the payment is ok)
5: Close order (tell out server to stop sending you IPN*, unless you want to get one, for each payment, for the next 6 hours).

*IPN: Instant Payment Notification
2: Create an order
Send a POST request to the following URL:

The `Content-Type` header must be:
Content-Type: application/json
A sample request must be JSON encoded:
    "coin": "DASH",
    "pay_to": "ygV1oKBxXPBCRTzBj7L6ktABJcTY9qVeDv",
    "extra_data": "ORDER_ID=50, or any data that will help you identify the user, product or order",
    "ipn_url": "https://seller_website.com/coinWatchIPN.php",
    "price_coin": 0.0043519
Here are the request parameters for creating and order:
Parameter Type Description Length Optional
coin string What currency you want the payment to be in. available: DASH GBX XZC 3-4 Chars. Ex: "DASH"
price_coin float The price in the selected currency "coin" a valid float number, without surrounding `"`. example: 0.5 . not "0.5" Optional if price_usd is set
price_usd float The price in USD. Wil be converted to the "coin" currency based on the market place at the time of creating the order. is ignored if price_coin is set a valid float number, without surrounding `"`. example: 0.5 . not "0.5" Optional if price_coin is set
pay_to string Your (the seller) wallet address, all payments will end up here. Must be same currency as "coin" parameter 34-64
ipn_url string The URL which our server will call once a payment is successful a valid url Optional if ipn_email is set
ipn_email string Your email,for manual order processing. we will send a message to this address about a payment, and any extra data it might contain. a valid email Optional if ipn_url is set
min_conf int Minimum confirmations to declare this order as paid, default is 1, max is 6 3 Optional

The `createorder` response will be in JSON format, you will have to store the Id, and verify the data there that it matches your request to eleminate any attacks.
Response example:
  "result": 1,
  "msg": "ok",
  "seller_address": "ygV1oKBxXPBCRTzBj7L6ktABJcTY9qVeDv",
  "deposit_address": ySC5PudihrtTMxmGA2dMU6jgFPQKwfy3GZ,
  "currency": "DASH",
  "amount": 0.0043519,
  "minconf": 1,
  "order_id": 1234,
Here are the `createorder` response:
Parameter Type Description
result integer 0 if creation of order fails. 1 if it is successful
msg string In case of a failed order creation, you will receive the reason here. This is meant for the developer(you) and not the client.
seller_address string This must match your pay_to address as this is where the final payment will go.
deposit_address string [show to customer] This is the wallet address you have to ask you customer to pay to.
currency string [show to customer] This is the currency that you custmer must pay in. Make sure it is the same currency you requested
amount float [show to customer] This is the payment amount in the currency you requested, make sure it matches price_coin if you have used it. or an amount close to price_usd converted to the currency you've chosen.
minconf int [show to customer] Minimum confirmations required
order_id int This order/request id. store it as it will be sent back in the IPN, will help you know what to process for your customer in case you didn't use the extra_data field.
3: Show payment details to customer
After you create an order, you have to tell your customers where to pay so we can process the order and send you the correct payment notification.

From the `createorder` response, ask your customer to send :

Not less than [amount] [currency] to [deposit_address], and wait for [min_conf] confirmations.

Once the amount is paid, and the correct amount of confirmations is reached, we will notify your server via ipn_url, and/or send you an email if you specified any in the ipn_email.
Do not put the customers email in the `ipn_email` parameter as it might contain sensitive information.

Tip: It is good practice to send your customer the payment details to their email, so in case they navigated away by mistake while not paying the full amount, to be able to pay the rest and complete the order.
4: Receiving the Payment Notification
Once your customer completes the payment, you will be notified either by an HTTPS call to the URL you specified in "ipn_url", this will enable you to automate the order processing from your side. Or for manual processing, you will receive an email to the address you specified in ipn_email.

This is a sample of the IPN response your server will receive in a "POST" call:
  "Id": 1234,
  "Coin": "DASH",
  "Price_coin": 0.0043519,
  "PayTo": "ygV1oKBxXPBCRTzBj7L6ktABJcTY9qVeDv",
  "MinConf": 1,
  "ExtraData": "the extra data you sent before aka: ORDER_ID=50, or any data that will help you identify the user, product or order",
  "IPNUrl": "https://seller_website.com/coinWatchIPN.php",
  "Coins_sent": 1,
  "DepositAddress": "ySC5PudihrtTMxmGA2dMU6jgFPQKwfy3GZ",
  "CreatedAt": 1512923243
Here are the `IPN` call parameters:
Parameter Type Description
Id integer The ipn-order id, store it as you might need to validate that it has been processed or not yet
Coin string What currency the oerder is it. Make sure this is the same currency you requested
Price_coin float The price in the currency you chose. If you requested using price_coin instead of price_usd, make sure that the amounts match.
PayTo string Make sure this is the same PayTo address that you specified int he request, as this is the final wallet that will receive the payment.
MinConf string The minimum confirmations you requested, or default of 1
ExtraData string Same data you sent in the request, validate this data if it is important to process the order (product type/card id ... )
IPNUrl string The IPN you specified, make sure its the same.
Coins_sent int 0, 1 indicating if the coins were sent or not. will be 0 in the time or creating the order.
DepositAddress string This is the payment address that you must show to your customers. they must pay exactly `Price_coin` in currency `Coin` to this address.
CreatedAt int Unit timestamp of when this order was created.
5: Validating the Payment Notification
Send a POST request to the following URL:

The `Content-Type` header must be:
Content-Type: application/json
A sample request must be JSON encoded:
    "ipn_id": 1234,
    "coins_sent": 1,
    "pay_to": "ygV1oKBxXPBCRTzBj7L6ktABJcTY9qVeDv",
    "currency": "DASH",
    "price_coin": 0.0043519
Here are the request parameters for creating and order:
Parameter Type Description Length
ipn_id int The ID of the IPN order you created check order_id in the `createorder` response
coins_sent int 0 or 1, must be read from the IPN. this is to check if the coins are really sent. 1
pay_to string The final payment address from the IPN, or as you specified in the createorder (must be the same) 35-64
currency string The currency that you specified. from the IPN 3-4
price_coin float The amount of coins expected to be paid. as specified by you in the `createorder`, must match what you got in the IPN call. max float
If everything is valid, you will get a "valid" in the response body. Otherwise you will get a message telling you whats invalid or missing (meant for developers only. not to be put on the fronend).
6: Fees.
Minimum order is 1$ equivalent in any available coin

Minimum order in crypto-currency:
DASH 0.00666241
GBX 0.95877005
SPK 1483.69665380
XZC 0.07102663

Minimum fees are the fixed fees or the percentage, whichever is more:

DASH 0.005
GBX 0.05
SPK 0.5
XZC 0.01

DASH 1.5%
GBX 1.3%
SPK 1.5%
XZC 1.3%
7: PHP Code samples.
Coming soon.
Meanwhile you can contact us via the email in the footer for any assistance.