API Reference
Documentation for API V2. Major update is addresses with exchange crypto to fiat and vice versa abilities.

General information

API endpoint for all requests in production environment is:
1
https://app.cryptoprocessing.com/api/v2
Copied!
API endpoint for all requests in test environment is:
1
https://app.sandbox.cryptoprocessing.com/api/v2
Copied!

Deposit flow

    1.
    You obtain new address from CoinsPaid API (for some currencies it may be address and tag) and store it somewhere on your side. After that you show this address to your customer in order to make a deposit.
    2.
    Customer sends some funds to this address.
    3.
    When transaction is sent by a customer - CoinsPaid sends a callback to your callback url with transaction details. It contains status, address, currency, amount and fees. If status is successful, you should deposit respective amount to customer balance on your side.

Withdrawal flow

    1.
    You request to send amount of money to address.
    2.
    Your request is validated on our side. If signature is correct, address is valid and you have enough balance - CoinsPaid responds you with the transaction object.
    3.
    You will receive a callback when transaction status is updated.
Deposit with exchange flow
You don't want to touch or store cryptocurrency, but only use it as a payment method. Your customer deposits BTC, Coinspaid instantly converts it to EUR so that you would receive EUR on your CoinsPaid account.
    1.
    You obtain new address from CoinsPaid API same as in deposit flow, but additionally pass another parameter "convert_to" in your request specifying resulting currency.
    2.
    When new deposit is arriving, CoinsPaid converts all arriving funds to destination funds, and sends notifications as in regular deposit
Withdrawal with exchange flow
You wish to send Cryptocurrency from your Fiat currency balance. For example you want to send EUR amount but your customer receives money in BTC.
    1.
    You do exactly same as in withdrawals, but you specify 2 currencies. One is a currency of your sending balance and Second is a cryptocurrency your Customer wishes to receive.
    2.
    Your request is validated on our side. If signature is correct, address is valid and you have enough balance - CoinsPaid responds you with the transaction object.
    3.
    You will receive a callback when transaction status is updated.
Futures flow
In order to guarantee receiving amount, rates should be fixed.
    1.
    You send address for exchange (If it is not necessary to receive exchange rates you can skip this step)
    2.
    You receive rates and their fixation time
    3.
    To confirm futures You have to send exchange pair and amount due.
    4.
    When new deposit is arriving, CoinsPaid converts all arriving funds to destination funds, and sends notifications as in regular deposit.
In case if received and sent amounts don't equal, CP converts it like normal deposit with exchange.
Limit for this operation is 10 000 EUR.

Invoice flow

Invoices allow to conduct deposits with a fixed rate within a limited period of time disregarding the exchange rate fluctuations. In case it’s necessary to convert funds in fiat currency or convert it to another crypto currency this option will allow to visualize the exact amount of a sender’s currency required to receive the exact amount in a receiver’s currency. When a deposit is processed through this flow, a user is being redirected to the respective Invoice page via the preset link and just needs to follow instructions specified on it. It also allows to conduct refunds in case a user fails to manage to deposit within an established timeframe or discovers non-sufficient balance. All is required in that case is to follow the link with the respective instructions sent to an e-mail of a customer. Detailed information can be found here.

API Endpoints

get
https://app.cryptoprocessing.com/api
/v2/ping
Ping
Body must be a valid json object or array, example: {}
post
https://app.cryptoprocessing.com/api
/v2/currencies/list
Get list of supported currencies
post
https://app.cryptoprocessing.com/api
/v2/currencies/pairs
Get list of exchangeable currency pairs
post
https://app.cryptoprocessing.com/api
/v2/currencies/rates
Get list of currencies rates
post
https://app.cryptoprocessing.com/api
/v2/accounts/list
Get list of balances
post
https://app.cryptoprocessing.com/api
/v2/addresses/take
Receive cryptocurrency
Business logic for using cryptocurrency as a deposit method: You are willing to let your customer fund his EUR balance on your platform or website. You will have to generate an address in the desired cryptocurrency and specify EUR as a "convert_to" currency. This will allow you to let your Customer pay if his favorite currency and fund his balance in EUR. At the same time you will see respective EUR amount in your CoinsPaid merchant account. Hint: you don't have to generate new address for this customer anymore, address can be reused unlimited amount of times.
Example of the customer facing interface for Deposits.
    Make sure to use Bitcoin URI format bitcoin: in QR. Works the same way as "mailto:".
    We do recommend making this QR clickable as customers may have a wallet set up on their computer or mobile phone.
    We recommend specifying approximate current exchange rate.
post
https://app.cryptoprocessing.com/api
/v2/withdrawal/crypto
Withdraw cryptocurrency
post
https://app.cryptoprocessing.com/api
/v2/exchange/calculate
Calculate exchange rates
post
https://app.cryptoprocessing.com/api
/v2/exchange/fixed
Exchange on fixed exchange rate
post
https://app.cryptoprocessing.com/api
/v2/exchange/now
Exchange regardless the exchange rate
post
https://app.cryptoprocessing.com/api
/v2/futures/rates
Calculate rates for futures
post
https://app.cryptoprocessing.com/api
/v2/futures/confirm
Confirm futures transaction
post
https://app.cryptoprocessing.com/api
/v2/invoices/create
Create Invoice

Payment terminal JSON parameters

A set of parameter included in URL that will allow to redirect a user to Payment Terminal. For more info navigate through this section of documentation.
Name
Description
Optionality
Type
client_id
This is a unique ID that’s generated on the side of CoinsPaid
Required
int
currency
ISO of a currency to receive funds in, example: BTC
Required
string
amount
Amount of funds to withdraw, example: "3500"
Optional
numeric
convert_to
In case you need on-the-fly exchange of all incoming funds (e.g. to EUR) specify this parameter as EUR or any other supported currency ISO, to see the list of available pairs check the method above
Optional
string
is_iframe
The parameter that allows you to get an iframe-link (false by default).
Optional
boolean
foreign_id
Unique foreign ID in your system, example: "164"
Required
string
url_back
A link that allows you to get a user back to your system
Optional
url

Transaction statuses

Status
Meaning
confirmed
Final. You are safe to process this transaction
not_confirmed
Transaction is not yet confirmed.
cancelled
Final. This transaction is a double spend or cancelled withdrawal. Pay attention to this transaction.
pending
This status may occur only after enabling withdrawal limits. Transaction exceeds set withdrawal limit, you need to confirm or decline it via backoffice of your merchant account.

"transaction_type" parameter values

Type
Description
Blockchain
Type of transactions that are written into blockchain. Such transactions (deposits and withdrawals) can be tracked via according explorer for suitable blockchain. This is the most common type of transactions.
Internal
Type of transactions between two addresses within our processing (between separate merchant accounts or different addresses of the single merchant). Such transactions are not written in blockchain, but still can be tracked via our internal explorer - https://explorer.coinspaid.com/
Exchange
Type of transactions that requires exchange between crypto-fiat or crypto-crypto pairs.

Transitions

Transaction
Transition
Successful deposit
not_confirmed -> confirmed
Unsuccessful deposit
not_confirmed -> cancelled
Successful withdrawal
confirmed
Unsuccessful withdrawal
cancelled
Last modified 2mo ago