API Reference

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

General information

API endpoint for all requests in production environment is:

https://app.cryptoprocessing.com/api/v2

API endpoint for all requests in test environment is:

https://app.sandbox.cryptoprocessing.com/api/v2

Deposit flow

  1. You obtain new address from Citron 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 - Citron 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 - Citron 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, Citron instantly converts it to EUR so that you would receive EUR on your Citron account.

  1. You obtain new address from Citron 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, Citron 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 - Citron responds you with the transaction object.

  3. You will receive a callback when transaction status is updated.

API Endpoints

Ping

GET https://app.cryptoprocessing.com/api/v2/ping

Test if API is up and running and your authorization is working

Body must be a valid json object or array, example: {}

Get list of exchangeable currencies

POST https://app.cryptoprocessing.com/api/v2/currencies/pairs

Get list of exchangeable currencies

Request Body

Name
Type
Description

currency_from

String

Filter by currency ISO that exchanges from, example: BTC

currency_to

String

Filter by currency ISO that can be converted to, example: EUR

Sending a payment

GET /payments/gate

Sending a payment

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.

  • 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.

Payment terminal JSON parameters

A set of parameters included in URL that will allow to redirect a user to Payment Terminal. For more info navigate through this section of documentation.

Name

Description

Type

request_id

hex

order_id

int

site_login

This is a unique ID of the customer

int

payment_group_id

ID of the payment group

int

display_payment_group_id

Code of the payment group

int

currency

ISO of a currency to receive funds in, example: USDT

string

site_id

customer_ip

The IP of the customer

string

source_type

int

amount

The amount of the transaction example: 1250

int

payment_type_id

int

action

Type of the action example: top_up

string

customer_purse

string

cabba_invoice

string

extra_token

hash

signature

hash

Transaction status codes

Status code

Meaning

Success - "0"

Final. You are safe to process this transaction

preAuth - "10"

???

Delayed - "50"

???

Error - "500"

???

Insufficient funds - "402"

Not enough funds in the customers account

"action" parameter values

Type

Description

Top up

Deposition of funds into the customers account balance

Withdraw

Withdrawal of funds from the customers account balance

Purchase

???

Payout

???

Last updated

Was this helpful?