Get started

Hercle APIs provide RESTful endpoints to manage various functionalities for OTC traders and developers. These APIs allow you to perform CRUD operations on different resources.

Postman Collection: We provide a comprehensive Postman collection for testing and integration. The Hercle REST API Collection repository contains a full-featured Postman collection covering OTC price quoting, order execution, deposits and withdrawals, RFQ flows, address whitelisting, and more. It includes environment configurations, test scripts, and response validation to support both manual testing and automated workflows.

Name Description Type Value
baseUrl server's url string Production:
https://publicapi.hercle.financial
Sandbox:
https://publicapi.sandbox.hercle.financial

⚠️ HercleX Upgrades Schedule

Regular Upgrade Window

Herclex undergoes scheduled upgrades every Wednesday from 10:00 AM to 11:00 AM GMT+1 time. During this window, users can expect system enhancements and routine maintenance to be carried out.

Urgent Upgrades

In cases where urgent upgrades are necessary outside the scheduled window, efforts will be made to communicate these exceptions in advance. However, the ability to provide prior notice is not guaranteed and will depend on the urgency and critical nature of the upgrade.

Impact on Connectivity

During the upgrade window, if a system upgrade is in progress, a disconnection from SignalR services may occur. It is advisable to anticipate such disconnections and prepare accordingly.

API Status

You can check the current status of Hercle services and any ongoing incidents by visiting our status page.

Get Whitelisted Addresses

Returns an array of the user's whitelisted addresses, both fiat and crypto.

Method:
GET
URL:
/api/v1/addresses/whitelisted

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

[
  {
    "id":"xxxx",
    "name":"BTC 01",
    "userId":"yyyy",
    "asset":"BTC",
    "address":"zzzz",
    "addressParams": {},
    "network":"Bitcoin",
    "status":0,
    "comment":"",
    "auditBy":"",
    "auditDate":"",
    "enabled":true,
    "deleted":false,
    "creationDate":"2023-10-05T14:07:59+00:00"
  }
]
                

REQUEST BODY

No body parameters required for this endpoint.

Parameters

No parameters required for this endpoint.

ADDRESS OBJECT

Field Type Description
id string Address ID
name string Address name
userId string User ID
asset string Asset name
address string Address
addressParams object Address parameters
network string Address network
status number Address status (0: pending, 1: refused, 2: approved, 3: deleted)
comment string Comments on address
auditBy string Auditor informations
auditDate string Datetime of audit
enabled bool Enabled flag
deleted bool Deleted flag
creationDate string Datetime of address creation

whitelist address

Sends a request for the whitelisting of a new address.

Method:
POST
URL:
/api/v1/addresses/whitelist

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

{
  "httpStatusCode":201,
  "addressId": "zzzz",
  "message": ""
}
                          

REQUEST BODY

Field Type Description
Name string Address recognizible custom name
Asset string Asset of the Address (e.g.: "BTC" or "EUR")
Address string Address
Network string Address network

Parameters

No parameters required for this endpoint.

WHITELISTED ADDRESS OBJECT

Field Type Description
httpStatusCode number Status code of the request
addressId string Address ID
message string Optional message in case of errors or checks failed

whitelist address With Params

Sends a request for the whitelisting of a new address with additional parameters.

Method:
POST
URL:
/api/v1/addresses/whitelist/params

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

{
  "httpStatusCode": 201,
  "addressId": "zzzz",
  "message": ""
}
                                

REQUEST BODY

Field Type Description
name string Address Name
asset string Asset name
address string Address
addressParams object Address parameters
network string Network name

Parameters

No parameters required for this endpoint.

WHITELISTED ADDRESS OBJECT

Field Type Description
httpStatusCode number Status code of the request
addressId string Address ID
message string Optional message in case of errors or checks failed

Remove Whitelisted Addresses

Removes an address from the address whitelist.

Method:
DELETE
URL:
/api/v1/addresses/whitelist

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

{
  "httpStatusCode": 200,
  "addressId": "zzzz",
  "message": ""
}
                                

REQUEST BODY

Field Type Description
addressId string Address Id

Parameters

No parameters required for this endpoint.

DELETED WHITELISTED ADDRESS OBJECT

Field Type Description
httpStatusCode number Status code of the request
addressId string Address ID
message string Optional message in case of errors or checks failed

Deposit Addresses

Returns an array of the user's deposit addresses, both fiat and crypto.

Method:
GET
URL:
/api/v1/addresses/deposit

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

[
  {
    "id":"xxxx",
    "name":"EUR",
    "userId":"yyyy",
    "asset":"EUR",
    "address":"zzzz",
    "addressParams": {},
    "network":"Sepa",
    "deleted":false,
    "creationDate":"0001-01-01T00:00:00"
  }
]
                          

REQUEST BODY

No body parameters required for this endpoint.

Parameters

No parameters required for this endpoint.

DEPOSIT ADDRESS OBJECT

Field Type Description
id string Address ID
name string Address name
userId string User ID
asset string Asset name
address string Address
addressParams object Address parameters
network string Address network
deleted bool Deleted flag
creationDate string Datetime of address creation

create deposit

Creates a fake deposit for the given asset.
Availabe only for FIAT currencies (EUR, USD, GBP).
This method doesn't have a response.

⚠️ WARNING - This endpoint is only available in the staging environment.

Method:
POST
URL:
/api/v1/addresses/deposit

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

REQUEST BODY

Field Type Description
asset string Asset Name
network string Network name

Parameters

No parameters required for this endpoint.

place otc order

Places an order based on a Price Update ID.

Method:
POST
URL:
/api/v1/orders

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

{
  "tradeId":"xxxx",
  "side":"buy",
  "pair":"BTCUSDT",
  "price":26844.07,
  "size":0.01,
  "notional":268.4407,
  "status":1,
  "baseCurrency":"BTC",
  "quoteCurrency":"USDT",
  "timestamp":"2023-10-11T23:00:57.93094Z",
  "statusError":""
}
                                                  

REQUEST BODY

Field Type Description
priceId string Price ID
side string Selected side ("buy" or "sell")
slippage number Maximum price slippage accepted in case of sudden price change (1.0 equals to 1%)

Parameters

No parameters required for this endpoint.

ORDER OBJECT

Field Type Description
tradeId string Trade ID
side string Selected side ("buy" or "sell")
pair string Pair name
price number Executed price
size number Trade size
notional number Trade notional value
status number Order status (0 created, 1 executed, 2 cancelled)
baseCurrency string Base currency name
quoteCurrency string Quote currency name
timestamp string Datetime of trade
statusError string Error in case of cancellation or rejection

Get Orders paginated

Returns an array of the user's orders with pagination.

Note: The paging system is zero-based. For example, for page 1 with a page size of 50, please use the following parameters: 0, 50. For page 2, please use 1, 50, and so on.

Method:
GET
URL:
/api/v1/orders/{startDate}/{endDate}/{page}/{pageSize}

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

[
  {
    "orderId": "zzzz",
    "clientId": "xxxx",
    "userId": "yyyy",
    "instrument": "BNBEUR",
    "side": "buy",
    "orderType": 0,
    "price": 541.351787638296,
    "executedPrice": 541.351787638296,
    "executedTimestamp": "2024-03-17T16:09:15.000Z",
    "quantity": 0.05,
    "quantityFilled": 0.05,
    "orderStatus": 2,
    "cancellationReason": "",
    "slippage": 0.1,
    "timestamp":"2024-03-17T16:09:14.000Z",
  }
]
                                    

REQUEST BODY

No body parameters required for this endpoint.

Parameters

Parameter Description
startDate is a datetime iso
endDate is a datetime iso
page page number
pageSize min size is 5 and max is 50

ORDER OBJECT

Field Type Description
id string Order ID
clientId string Client ID
userId string User ID
instrument string Instrument name
side string Order side ("buy" or "sell")
orderType number Order type (0 market, 1 fill or kill)
price number Order Price
executedPrice number Executed price
executedTimestamp number Executed timestamp
quantity number Order quantity
quantityFilled number Executed quantity
orderStatus string Order status (0 created, 1 executed, 2 cancelled)
cancellationReason string Error in case of cancellation or rejection
slippage string Maximum price slippage accepted (1.0 equals to 1%)
timestamp string Datetime of order

Get Orders by clientId

Returns an array of the user's orders with a 7 days limit.

Method:
GET
URL:
/api/v1/orders/{orderClientId}

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

{
  "orderId": "zzzz",
  "clientId": "xxxx",
  "userId": "yyyy",
  "instrument": "BNBEUR",
  "side": "buy",
  "orderType": 0,
  "price": 541.351787638296,
  "executedPrice": 541.351787638296,
  "executedTimestamp": "2024-03-17T16:09:15.000Z",
  "quantity": 0.05,
  "quantityFilled": 0.05,
  "orderStatus": 2,
  "cancellationReason": "",
  "slippage": 0.1,
  "timestamp":"2024-03-17T16:09:14.000Z",
}
                                                  

REQUEST BODY

No body parameters required for this endpoint.

Parameters

Parameter Description
orderClientId Order client ID

ORDER OBJECT

Field Type Description
orderId string Order ID
clientId string Client ID
userId string User ID
instrument string Instrument name
side string Order side ("buy" or "sell")
orderType number Order type (0 market, 1 fill or kill)
price number Order Price
executedPrice number Executed price
executedTimestamp number Executed timestamp
quantity number Order quantity
quantityFilled number Executed quantity
orderStatus string Order status (0 created, 1 executed, 2 cancelled)
cancellationReason string Error in case of cancellation or rejection
slippage string Maximum price slippage accepted (1.0 equals to 1%)
timestamp string Datetime of order

available pairs

Returns an array of supported tradable pairs along with their minimum and maximum sizes.

Method:
GET
URL:
/api/v1/pairs

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

{
  "name": "BTCUSDT",
  "asset": "BTC",
  "currency": "USDT",
  "minSize": 0.00025,
  "maxSize": 5,
  "minQuoteSize": 15,
  "maxQuoteSize": 200000
}
                                    

request body

No body parameters required for this endpoint.

Parameters

No parameters required for this endpoint.

PAIR OBJECT

Field Type Description
name string Pair
asset string Asset name
currency string Asset currency
minSize number Minimum tradable size
maxSize number Maximum tradable size
minQuoteSize number Maximum tradable size in quote
maxQuoteSize number Maximum tradable size in quote

Get pair size by amount

Return pair quote size based on base amount

Method:
GET
URL:
/api/v1/pairs/{pair}/{side}/{amount}

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

{
  "id": "xxxx",
  "pair":"BTCUSDT",
  "price":26844.07,
  "size":0.01,
  "timestamp":"2023-10-11T23:00:57.93094Z",
}
                                              

Request Body

No body parameters required for this endpoint.

Parameters

Parameter Description
pair Pair name without separators (e.g.: BTCUSDT)
side Order side ("buy" or "sell")
amount Selected amount

PAIR SIZE OBJECT

Field Type Description
id string Price ID
pair string Pair name
price number Price of the pair with the selected amount and size
size number Selected size
timestamp string Datetime of the request

asset networks

Returns an array of supported networks for the given asset.

Method:
GET
URL:
/api/v1/pairs/networks/{asset}

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

[
  "Ethereum",
  "Tron",
  "BNB Smart Chain",
  "Polygon",
  "Optimism",
  "Arbitrum One"
]
                                                        

Request Body

No body parameters required for this endpoint.

Parameters

Parameter type Description
asset string Asset name

NETWORK OBJECT

Field Type Description
array Array of network names

pair price

Gets the last pair price based on size

Method:
GET
URL:
/api/v1/price/{pair}/{size}

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

{
  "id":"xxxx",
  "buyPrice":26798.50,
  "sellPrice":26790.50,
  "size":1.0,
  "pair":"BTCUSDT",
  "markPrice":26794.575,
  "timestamp":"2023-10-11T23:00:57.93094Z"
}
                                              

Request Body

No body parameters required for this endpoint.

Parameters

Parameter type Description
pair string Pair name without separators (e.g.: BTCUSDT)
size number Selected size

PRICE OBJECT

Field Type Description
id string Price update ID
buyPrice number Best buy price of pair with selected quantity
sellPrice number Best sell price of pair with selected quantity
size number Selected size
pair string Pair name
markPrice number Mark price of pair with selected quantity
timestamp string Datetime of price update

create rfq

Creates a Request For Quote. Has to be accepted within the time limit through Accept RFQ.

Method:
POST
URL:
/api/v1/rfq

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

{
  "requestForQuoteId":"xxxx",
  "userId": "xxxx",
  "instrument":"BTCUSDT",
  "baseCurrency":"BTC",
  "quoteCurrency":"USDT",
  "side":"buy",
  "size":0.01,
  "price":26844.07,
  "amount":1.0,
  "status":1,
  "requestDateTime":"2023-10-11T23:00:57.93094Z",
  "expireDateTime":"2023-10-11T23:01:27.87528Z"
}
                                                                  

REQUEST BODY

Field Type Description
pair string Pair name without separators (e.g.: BTCUSDT)
side string Selected side ("buy" or "sell")
size number Size (base currency) - 0 to skip
amount number Size (quote currency) - 0 to skip

Parameters

No parameters required for this endpoint.

RFQ OBJECT

Field Type Description
requestForQuoteId string Request For Quote ID
userId string User ID
instrument string Instrument name
baseCurrency string Base currency name
quoteCurrency string Quote currency name
side string Selected side ("buy" or "sell")
size number Order size (base currency)
price number Proposed price
amount number Order amount (quote currency)
status number Order status (0 created, 1 executed, 2 cancelled)
requestDateTime string Timestamp of RFQ creation
expireDateTime string Timestamp of RFQ expiration

Create Custom RFQ

Creates a Request For Quote with custom expiration time. Has to be accepted within the time limit through Accept RFQ.

Method:
POST
URL:
/api/v1/rfq/custom-expiration

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

{
  "requestForQuoteId":"xxxx",
  "userId": "xxxx",
  "instrument":"BTCUSDT",
  "baseCurrency":"BTC",
  "quoteCurrency":"USDT",
  "side":"buy",
  "size":0.01,
  "price":26844.07,
  "amount":1.0,
  "status":1,
  "requestDateTime":"2023-10-11T23:00:57.93094Z",
  "expireDateTime":"2023-10-11T23:01:27.87528Z"
}
                                                                  

REQUEST BODY

Field Type Description
pair string Pair name without separators (e.g.: BTCUSDT)
side string Selected side ("buy" or "sell")
size number Size (base currency) - 0 to skip
amount number Size (quote currency) - 0 to skip
expirationInSeconds number Expiration time in seconds (default 15, max 240)

Parameters

No parameters required for this endpoint.

RFQ OBJECT

Field Type Description
requestForQuoteId string Request For Quote ID
userId string User ID
instrument string Instrument name
baseCurrency string Base currency name
quoteCurrency string Quote currency name
side string Selected side ("buy" or "sell")
size number Order size (base currency)
price number Proposed price
amount number Order amount (quote currency)
status number Order status (0 created, 1 executed, 2 cancelled)
requestDateTime string Timestamp of RFQ creation
expireDateTime string Timestamp of RFQ expiration

accept rfq

Accept a previously created Request For Quote.


Response Data Example:

{
  "tradeId":"xxxx",
  "side":"buy",
  "pair":"BTCUSDT",
  "price":26844.07,
  "size":0.01,
  "notional":268.4407,
  "status":1,
  "baseCurrency":"BTC",
  "quoteCurrency":"USDT",
  "timestamp":"2023-10-11T23:00:57.93094Z",
  "statusError":""
}
                                                                        
Method:
POST
URL:
/api/v1/rfq/accept

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

REQUEST BODY

Field Type Description
requestForQuoteId string ID of the RFQ generated through CreateRFQ

Parameters

No parameters required for this endpoint.

RFQ ACCEPTED OBJECT

Field Type Description
tradeId string Trade ID
side string Selected side ("buy" or "sell")
pair string Pair name
price number Executed price
size number Trade size
notional number Trade notional value
status number Order status (0 created, 1 executed, 2 cancelled)
baseCurrency string Base currency name
quoteCurrency string Quote currency name
timestamp string Datetime of trade
statusError string Error in case of cancellation or rejection

User's balances

Returns informations about the user allocated and available balances. .

Method:
GET
URL:
/api/v1/user/balances

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

{
  "userId": "1a66db8f-4043-4035-91df-615b3a7ac073",
  "sequence": 6618,
  "assets": [
    {
      "name": "MATIC",
      "available": 0,
      "allocated": 0
    },
    {
      "name": "BTC",
      "available": 0.014335000000000004,
      "allocated": 0
    }, ...
  ],
  "deleted": false
}
                                      

REQUEST BODY

No parameters required for this endpoint.

Parameters

No parameters required for this endpoint.

BALANCE OBJECT

Field Type Description
userId string User ID
sequence number Sequence number
assets array Array of assets
name string Asset name
available number Available balance
allocated number Allocated balance
deleted boolean Deleted

Get Trades by clientId

Returns an array of the user's executed trades.

Method:
GET
URL:
/api/v1/user/trades/{tradeClientId}

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

{
  "id":"xxxx",
  "clientId": "zzzz",
  "userId":"yyyy",
  "tradeType": "",
  "orderSourceId": "",
  "instrument": "ETH/EUR",
  "side": "sell",
  "price": 1534,
  "quantityFilled": 0.05,
  "timestamp": "2023-07-23:32:35.000Z",
  "email": "abc@email.it"
}
                                                

REQUEST BODY

No parameters required for this endpoint.

Parameters

Parameter type Description
tradeClientId string Trade Client Id

TRADE OBJECT

Field Type Description
id string Trade ID
clientId string Client ID
userId string User ID
tradeType string Trade Type
orderSourceId string Order Source ID
instrument string Instrument
side string Trade side
price number Trade price
quantityFilled number Quantity filled
timestamp string Trade timestamp
email string User email

trades paginated

Returns an array of the user's executed trades with a 7 days limit.

Note: The paging system is zero-based. For example, for page 1 with a page size of 50, please use the following parameters: 0, 50. For page 2, please use 1, 50, and so on.

Method:
GET
URL:
/api/v1/user/trades/{startDate}/{endDate}/{page}/{pageSize}

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

{
  "id": "xxxx",
  "clientId": "zzzz",
  "userId":"yyyy",
  "tradeType": "",
  "orderSourceId": "",
  "instrument": "ETH/EUR",
  "side": "sell",
  "price": 1534,
  "quantityFilled": 0.05,
  "timestamp": "2023-07-23:32:35.000Z",
  "email": "abc@email.it"
}
                                                          

REQUEST BODY

No parameters required for this endpoint.

Parameters

Parameter type Description
startDate string is a datetime iso
endDate string is a datetime iso
page number page number
pageSize number min size is 5 and max is 50

TRADE OBJECT

Field Type Description
id string Transaction ID
clientId string Client ID
userId string User ID
tradeType string Trade Type
orderSourceId string Order Source ID
instrument string Instrument name
side string Trade side ("buy" or "sell")
price number Executed price
quantityFilled number Trade quantity executed
timestamp string Datetime of the trade
email string Account email

historical trades paginated

Returns an array of the user's executed trades with a 30 days limit.

Note: The paging system is zero-based. For example, for page 1 with a page size of 50, please use the following parameters: 0, 50. For page 2, please use 1, 50, and so on.

Method:
GET
URL:
/api/v1/user/trades/{startDate}/{endDate}/{page}/{pageSize}/historical

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

{
  "id": "xxxx",
  "clientId": "zzzz",
  "userId":"yyyy",
  "tradeType": "",
  "orderSourceId": "",
  "instrument": "ETH/EUR",
  "side": "sell",
  "price": 1534,
  "quantityFilled": 0.05,
  "timestamp": "2023-07-23:32:35.000Z",
  "email": "abc@email.it"
}
                                                          

REQUEST BODY

No parameters required for this endpoint.

Parameters

Parameter type Description
startDate string is a datetime iso
endDate string is a datetime iso
page number page number
pageSize number min size is 5 and max is 50

TRADE OBJECT

Field Type Description
id string Transaction ID
clientId string Client ID
userId string User ID
tradeType string Trade Type
orderSourceId string Order Source ID
instrument string Instrument name
side string Trade side ("buy" or "sell")
price number Executed price
quantityFilled number Trade quantity executed
timestamp string Datetime of the trade
email string Account email

transactions paginated

Returns an array of the user's historic movements, includint trades, withdrawals and deposits with a 7 days limit.

Note: The paging system is zero-based. For example, for page 1 with a page size of 50, please use the following parameters: 0, 50. For page 2, please use 1, 50, and so on.

Method:
GET
URL:
/api/v1/user/transactions/{startDate}/{endDate}/{page}/{pageSize}

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

{
  "id":"xxxx",
  "userId":"yyyy",
  "sequence":123,
  "type":4,
  "asset":"USDC",
  "amount":1050.32,
  "timestamp":"2023-07-23T12:06:04.175Z"
}
                                                          

REQUEST BODY

No parameters required for this endpoint.

Parameters

Parameter type Description
startDate string is a datetime iso
endDate string is a datetime iso
page number page number
pageSize number min size is 5 and max is 50

TRANSACTION OBJECT

Field Type Description
id string Transaction ID
userId string User ID
sequence number Sequence number of the transaction
type number 0 - deposit
1 - withdraw
2 - trade fee
3 - custody fee
4 - trade
5 - trade lock
6 - trade unlock
7 - withdrawal fee
8 - withdrawal refund
9 - withdrawal fee refund
asset string Asset name
amount number Transaction amount
timestamp string Datetime of the transaction

historical transactions paginated

Returns an array of the user's historic movements, includint trades, withdrawals and deposits with a 30 days limit.

Note: The paging system is zero-based. For example, for page 1 with a page size of 50, please use the following parameters: 0, 50. For page 2, please use 1, 50, and so on.

Method:
GET
URL:
/api/v1/user/transactions/{startDate}/{endDate}/{page}/{pageSize}/historical

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

{
  "id":"xxxx",
  "userId":"yyyy",
  "sequence":123,
  "type":4,
  "asset":"USDC",
  "amount":1050.32,
  "timestamp":"2023-07-23T12:06:04.175Z"
}
                                                                

REQUEST BODY

No parameters required for this endpoint.

Parameters

Parameter type Description
startDate string is a datetime iso
endDate string is a datetime iso
page number page number
pageSize number min size is 5 and max is 50

TRANSACTION OBJECT

Field Type Description
id string Transaction ID
userId string User ID
sequence number Sequence number of the transaction
type number 0 - deposit
1 - withdraw
2 - trade fee
3 - custody fee
4 - trade
5 - trade lock
6 - trade unlock
7 - withdrawal fee
8 - withdrawal refund
9 - withdrawal fee refund
asset string Asset name
amount number Transaction amount
timestamp string Datetime of the transaction

withdraw

Sends a withdrawal request.

Method:
POST
URL:
/api/v1/withdrawals

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:


{
  "id": "xxxx", 
  "clientId": "zzzz",
  "userId": "yyyy", 
  "name" : "Marco",
  "surname": "Rossi",
  "company": "",
  "description": "xyz",
  "destination": "xyzwallet",
  "destinationParams": {},
  "network": "ethereum",
  "amount": 1,
  "asset": "USDT",
  "fee": 5,
  "status":"CONFIRMING",
  "refId": "ab1234",
  "isInstant" : false,
  "timestamp" : "2024-03-27T16:03:12.456Z"
}
                                                      

REQUEST BODY

Field Type Description
asset string Asset of the address (e.g.: "BTC" or "EUR")
amount number Quantity of asset to be withdrawn
address string Destination address, must be whitelisted
network string Network of the address

Parameters

No parameters required for this endpoint.

WITHDRAW OBJECT

Field Type Description
id string Withdraw ID
clientId string Client ID
userId string User ID
name string User first name
surname string User last name
company string User company
description string Description
destination string Destination address
destinationParams object Destination parameters
network string Network name
amount number Withdraw amount
asset string Asset name
fee number Fee
status string CREATED
CONFIRMING
CONFIRMED
PENDING
SUCCESS
FAILURE
REJECTED
refId string Cro or Trx Id added after network submission
isInstant bool Option for instant withdraw
timestamp string Timestamp of the withdraw

withdraw funds with address params

Sends a withdrawal request with additional parameters for the destination address.


Response Data Example:

{
  "id": "xxxx",
  "userId": "zzzz",
  "clientId": "yyyy",
  "name": "xxxx",
  "surname": "xxxx",
  "company": "xxxx",
  "description": "",
  "destination": "ITXXXXXXXXXXXXXXXX",
  "destinationParams": {},
  "network": "Sepa",
  "amount": 45,
  "fee": 5,
  "asset": "EUR",
  "status": "CONFIRMING",
  "refId": null,
  "isInstant": true,
  "timestamp": "2024-10-10T11:47:32.7311775Z"
}
                                                      
Method:
POST
URL:
/api/v1/withdrawals/address

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

REQUEST BODY

Field Type Description
asset string Asset of the address (e.g.: "BTC" or "EUR")
amount number Quantity of asset to be withdrawn
address string Destination address, must be whitelisted
addressParams object Destination address parameters
network string Network of the address
isInstant bool Option for instant withdraw

Parameters

No parameters required for this endpoint.

WITHDRAW OBJECT

Field Type Description
id string Withdraw ID
clientId string Client ID
userId string User ID
name string User first name
surname string User last name
company string User company
description string Description
destination string Destination address
destinationParams string Destination parameters
network string Network name
amount number Withdraw amount
asset string Asset name
fee number Fee
status string CREATED
CONFIRMING
CONFIRMED
PENDING
SUCCESS
FAILURE
REJECTED
refId string Cro or Trx Id added after network submission
isInstant bool Option for instant withdraw
timestamp string Timestamp of the withdraw

instant withdraw

Sends a instant withdrawal request.

Method:
POST
URL:
/api/v1/withdrawals/instant

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

{
  "id": "xxxx", 
  "clientId": "zzzz",
  "userId": "yyyy", 
  "name" : "Marco",
  "surname": "Rossi",
  "company": "",
  "description": "xyz",
  "destination": "xyzwallet",
  "destinationParams": {},
  "network": "ethereum",
  "amount": 1,
  "asset": "USDT",
  "fee": 5,
  "status":"CONFIRMING",
  "refId": "ab1234",
  "isInstant" : false,
  "timestamp" : "2024-03-27T16:03:12.456Z"
}
                                                          

REQUEST BODY

Field Type Description
asset string Asset of the address (e.g.: "BTC" or "EUR")
amount number Quantity of asset to be withdrawn
address string Destination address, must be whitelisted
network string Network of the address

Parameters

No parameters required for this endpoint.

WITHDRAW OBJECT

Field Type Description
id string Withdraw ID
clientId string Client ID
userId string User ID
name string User first name
surname string User last name
company string User company
description string Description
destination string Destination address
destinationParams string Destination parameters
network string Network name
amount number Withdraw amount
asset string Asset name
fee number Fee
status string CREATED
CONFIRMING
CONFIRMED
PENDING
SUCCESS
FAILURE
REJECTED
refId string Cro or Trx Id added after network submission
isInstant bool Option for instant withdraw
timestamp string Timestamp of the withdraw

Withdrawals

Returns an array of the user's historic withdrawals.

Method:
GET
URL:
/api/v1/withdrawals

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

[   
  {
    "id":"xxxx",
    "clientId": "zzzz",
    "userId":"yyyy",
    "name":"Mario",
    "surname":"Rossi",
    "company":"Company",
    "description":null,
    "destination":"zzzz",
    "destinationParams": {},
    "network":"Ethereum",
    "amount":0.05,
    "asset":"ETH",
    "fee": 5,
    "status":"CONFIRMING",
    "refId":"ab1234",
    "isInstant":false,
    "timestamp":"2023-11-10T15:26:10.586Z"
  }, ...
]
                                      

REQUEST BODY

No parameters required for this endpoint.

Parameters

Important Notes on Pagination and Filtering:

  • Pagination Parameters (page, pageSize):
    • These parameters are only necessary when filtering by fields that can return multiple items, such as asset or network.
    • When you expect multiple results, include page and pageSize to paginate through the results effectively.
  • Filtering by withdrawalId:
    • When using the withdrawalId parameter to filter, pagination parameters are not required.
    • Since withdrawalId is unique to each withdrawal, the query will return at most one result.
Parameter Description
clientId Client ID
withdrawalId Withdrawal ID
network Network name
asset Asset name
address Destination address
startDate Start date ISO
endDate End date ISO
page Page number
pageSize Page size

WITHDRAW OBJECT

Field Type Description
id string Withdraw ID
clientId string Client ID
userId string User ID
name string User first name
surname string User last name
company string User company
description string Description
destinationParams string Destination parameters
destination string Destination address
network string Network name
amount number Withdraw amount
asset string Asset name
fee number Fee
status string CREATE
CONFIRMING
CONFIRMED
PENDING
SUCCESS
FAILURE
REJECTED
refId string Cro or Trx Id added after network submission
isIstant bool Option for istant withdraw
timestamp string Timestamp of the withdraw

Get Withdrawals paginated

Returns an array of the user's withdrawals.

Note: The paging system is zero-based. For example, for page 1 with a page size of 50, please use the following parameters: 0, 50. For page 2, please use 1, 50, and so on.

Method:
GET
URL:
/api/v1/withdrawals/{startDate}/{endDate}/{page}/{pageSize}

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

[  
  {
    "id":"xxxx",
    "clientId": "zzzz",
    "userId":"yyyy",
    "name":"Mario",
    "surname":"Rossi",
    "company":"Company",
    "description":null,
    "destination":"zzzz",
    "destinationParams": {},
    "network":"Ethereum",
    "amount":0.05,
    "asset":"ETH",
    "fee": 5,
    "status":"CONFIRMING",
    "refId": "ab1234",
    "isInstant" : false,
    "timestamp" : "2024-03-27T16:03:12.456Z"
  }, ...
]
                                                      

REQUEST BODY

No parameters required for this endpoint.

Parameters

Parameter type Description
startDate string is a datetime iso
endDate string is a datetime iso
page number page number
pageSize number min size is 5 and max is 50

WITHDRAW OBJECT

Field Type Description
id string Withdraw ID
clientId string Client ID
userId string User ID
name string User first name
surname string User last name
company string User company
description string Description
destination string Destination address
destinationParams string Destination address params
network string Network name
amount number Withdraw amount
asset string Asset name
fee number Fee
status string CREATED
CONFIRMING
CONFIRMED
PENDING
SUCCESS
FAILURE
REJECTED
refId string Cro or Trx Id added after network submission
isInstant bool Option for instant withdraw
timestamp string Timestamp of the withdraw

Get withdrawals by clientId

Returns an array of the user's withdrawals.

Method:
GET
URL:
/api/v1/withdrawals/{withdrawClientId}

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

[   
  {
    "id":"xxxx",
    "clientId": "zzzz",
    "userId":"yyyy",
    "name":"Mario",
    "surname":"Rossi",
    "company":"Company",
    "description":null,
    "destination":"zzzz",
    "network":"Ethereum",
    "amount":0.05,
    "asset":"ETH",
    "fee":, 5,
    "status":"CONFIRMING",
    "refId": "ab1234",
    "isInstant" : false,
    "timestamp":"2023-11-10T15:26:10.586Z"
  }, ...
]
                                                            

REQUEST BODY

No parameters required for this endpoint.

Parameters

Parameter type Description
withdrawClientId string Withdraw Client Id

WITHDRAW OBJECT

Field Type Description
id string Withdraw ID
clientId string Client ID
userId string User ID
name string User first name
surname string User last name
company string User company
description string Description
destination string Destination address
network string Network name
amount number Withdraw amount
asset string Asset name
fee number Fee
status string CREATED
CONFIRMING
CONFIRMED
PENDING
SUCCESS
FAILURE
REJECTED
refId string Cro or Trx Id added after network submission
isInstant bool Option for instant withdraw
timestamp string Timestamp of the withdraw

get payees paginated

Returns an array of the user's payees.

Method:
GET
URL:
/api/v1/payees?pageSize={pageSize}

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

{
"payload": [
    {
      "id": "zzzz",
      "userId": "xxxx",
      "type": 1,
      "name": "John",
      "surname": "Doe",
      "company": "Acme Corp",
      "country": "US",
      "state": "CA",
      "city": "San Francisco",
      "address": "123 Main Street",
      "postalCode": "94105",
      "disabled": false,
      "deleted": false,
      "createdAt": "2025-09-03T11:22:54.000Z"
    }
  ], ...
  "paginationToken": "{\"Id\":{\"S\":\"id-001\"}}"
}
                                                      

REQUEST BODY

No parameters required for this endpoint.

Parameters

Parameter Type Required Description
pageSize number Yes Number of payees to return (must be between 5 and 50)
from string No From is a datetime ISO (e.g., 2024-01-01T00:00:00Z)
to string No To is a datetime ISO (e.g., 2024-12-31T23:59:59Z)
paginationToken string No Token for pagination (e.g., next page token)

PAYLOAD OBJECT

The response contains a payload array with payee objects and a paginationToken for fetching the next set of results.

Field Type Description
payload array Array of payee objects
paginationToken string Token for pagination (e.g., next page token)

PAYEES OBJECT

Field Type Description
id string Payee ID
userId string User ID associated with the payee
type string Payee type (e.g., Individual, Company)
name string Payee first name
surname string Payee last name
company string Payee company name (if applicable)
country string Payee country
state string Payee state or province
city string Payee city
address string Payee address
postalCode string Payee postal code
deleted boolean Indicates if the payee is deleted
disabled boolean Indicates if the payee is disabled
createdAt string Timestamp of payee creation

register payee

Registers a new payee.

Method:
POST
URL:
/api/v1/payee

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Request Body Example:

{
  "id": "zzzz",
  "userId": "xxxx",
  "type": 1,
  "name": "John",
  "surname": "Doe",
  "company": "Acme Corp",
  "country": "US",
  "state": "CA",
  "city": "San Francisco",
  "address": "123 Main Street",
  "postalCode": "94105"
}
                                                          

REQUEST BODY

Field Type Description
type string Payee type (e.g., Individual, Company)
name string Payee first name
surname string Payee last name
company string Payee company name (if applicable)
country string Payee country
state string Payee state or province
city string Payee city
address string Payee address
postalCode string Payee postal code

Parameters

No parameters required for this endpoint.

RESPONSE OBJECT

Field Type Description
id string Unique identifier of the payee
userId string ID of the user associated with the payee
type string Type of the payee
name string First name of the payee
surname string Last name of the payee
company string Company name of the payee (if applicable)
country string Country of the payee
state string State or province of the payee
city string City of the payee
address string Address of the payee
postalCode string Postal code of the payee

GET PAYEE ADDRESSES paginated

Returns an array of addresses associated with a specific payee.

Method:
GET
URL:
/api/v1/payee-addresses?payeeId={payeeId}&pageSize={pageSize}

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

{
  "payload": [
    {
      "id": "zzzz",
      "payeeId": "xxxx",
      "name": "USDC Wallet",
      "asset": "USDC",
      "address": "address_001",
      "addressParams": {
        "tag": "stable"
      },
      "network": "Ethereum",
      "status": 1,
      "comment": "USDC receiving wallet",
      "auditBy": "System",
      "auditDate": "2025-09-11T17:50:59.000Z",
      "deleted": false,
      "createdAt": "2025-09-11T17:50:59.000Z"
    }, ...
  ],
  "paginationToken": "{}"
}
                                              

REQUEST BODY

No parameters required for this endpoint.

Parameters

Parameter Type Required Description
payeeId string Yes ID of the payee to retrieve addresses for
pageSize number Yes Number of addresses to return (must be between 5 and 50)
from string No From is a datetime ISO (e.g., 2024-01-01T00:00:00Z)
to string No To is a datetime ISO (e.g., 2024-12-31T23:59:59Z)
paginationToken string No Token for pagination (e.g., next page token)

PAYLOAD OBJECT

The response contains a payload array with payee's addresses objects and a paginationToken for fetching the next set of results.

Field Type Description
payload array Array of payee objects
paginationToken string Token for pagination (e.g., next page token)

PAYEE ADDRESS OBJECT

Field Type Description
id string Address ID
payeeId string ID of the associated payee
name string Descriptive name for the address
asset string Asset type for the address (e.g., BTC, ETH)
address string The actual blockchain or payment address
network string Network for the address (e.g., Bitcoin, Ethereum)
status integer Address status (0: pending, 1: refused, 2: approved, 3: deleted)
comment string Optional comment or description
addressParams object Additional parameters for the address (network specific)
payeeAddressStatus string Status of the address (e.g., active, inactive)
auditBy string ID of the user who audited the address
auditDate string Timestamp of the last audit
deleted boolean Indicates if the address has been deleted
createdAt string Timestamp of address creation

register payee address

Registers a new address for an existing payee.

Method:
POST
URL:
/api/v1/payee/{payeeId}/address

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

{
  "id": "zzzz",
  "payeeId": "xxxx",
  "name": "USDC Wallet",
  "asset": "USDC",
  "address": "address_001",
  "addressParams": {
    "tag": "stable"
  },
  "network": "Ethereum",
  "comment": "USDC receiving wallet"
}
                                              

Parameters

Parameter Type Required Description
payeeId string Yes ID of the payee to add the address to

REQUEST BODY

Field Type Description
name string Descriptive name for the address
asset string Asset type for the address (e.g., BTC, ETH)
address string The blockchain or payment address
addressParams array Additional parameters for the address
network string Network for the address (e.g., Bitcoin, Ethereum)
comment string Optional comment or description

EUR Network Types

For EUR transfers, the following network types are available:

Network Description
Sepa Single Euro Payments Area transfer

GBP Network Types

For GBP transfers, the following network types are available:

Network Description
Faster Payments Instant transfer within the UK

USD Network Types

For USD transfers, the following network types are available:

Network Description
INTERNATIONAL_WIRE International wire transfer
DOMESTIC_WIRE Domestic wire transfer within the US
ACH Standard ACH transfer
ACH_SAME_DAY Same-day ACH transfer

Required Address Parameters by Network

Each Currency network type requires specific address parameters:

Network Parameter ID Description Required
Sepa bic Bank Identifier Code (SWIFT code) Yes
Faster Payments sortcode Sort code of the bank Yes
INTERNATIONAL_WIRE accountnumber Bank account number Yes
bic Bank Identifier Code (SWIFT code) Yes
aba American Banking Association routing number Yes
bankname Name of the bank Yes
bankaddressline1 First line of bank's address Yes
bankaddresscity Bank's city Yes
bankaddresspostalcode Bank's postal code Yes
bankcountry Bank's country code Yes
DOMESTIC_WIRE accountnumber Bank account number Yes
wire Wire routing number Yes
bankname Name of the bank Yes
ACH / ACH_SAME_DAY accountnumber Bank account number Yes
aba ACH routing number Yes
accounttype Account type (CHECKING or SAVINGS) Yes

RESPONSE OBJECT

Field Type Description
id string Unique identifier of the newly created payee address
payeeId string ID of the payee associated with the address
name string Descriptive name for the address
asset string Asset type for the address (e.g., BTC, ETH)
address string The blockchain or payment address
addressParams array Additional parameters for the address
network string Network for the address (e.g., Bitcoin, Ethereum)
comment string Optional comment or description

get transfers paginated

Returns a paginated list of transfers.

Method:
GET
URL:
/api/v1/transfers?startDate={startDate}&endDate={endDate}
&pageSize={pageSize}

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

{
"payload": [
    {
    "id": "zzzz,
    "userId": "xxxx",
    "clientId": "yyyy",
    "description": "Monthly payment to supplier",
    "debtor": {
      "internalAddressId": "zzzz",
      "asset": "BTC",
      "address": "address_001",
      "addressParams": {
        "tag": "internal"
      },
      "network": "Bitcoin",
      "amount": 0.001,
      "fee": 0.0001
    },
    "creditor": {
      "payeeAddressId": "xxxx",
      "asset": "BTC", 
      "address": "address_001",
      "addressParams": {
        "memo": "payment123"
      },
      "network": "Bitcoin",
      "amount": 0.0009
    },
    "exchangeInfo": {
      "rate": 1.0
    },
    "status": "Pending",
    "refId": "ref_789xyz",
    "payload": "{\"custom\":\"data\"}",
    "isInstant": false,
    "timestamp": "2025-09-12T14:30:00.000Z"
    }, ...
  ],
  "paginationToken": "{\"Id\":{\"S\":\"id_123456\"}}"
}
                                          

REQUEST BODY

No body parameters required for this endpoint.

Parameters

Parameter Type Required Description
startDate string Yes Start date in ISO format (e.g., 2025-01-01T00:00:00Z)
endDate string Yes End date in ISO format (e.g., 2025-01-31T23:59:59Z)
pageSize number Yes Number of results per page (5-50)
paginationToken string No Token for pagination (retrieve next page)

Validation Rules

  • pageSize must be between 5 and 50 items
  • endDate must be greater than startDate
  • Maximum date range is 30 days

PAYLOAD OBJECT

The response contains a payload array with transfer objects and a paginationToken for fetching the next set of results.

Field Type Description
payload array Array of transfer objects
paginationToken string Token for pagination (e.g., next page token)

TRANSFER OBJECT

Field Type Description
id string Transfer ID
userId string User ID associated with the transfer
clientId string Client ID associated with the transfer
description string Transfer description
debtor object Source information (see Debtor Object)
creditor object Destination information (see Creditor Object)
exchangeInfo object Exchange rate information (see ExchangeInfo Object)
status string Transfer status
refId string Reference ID (transaction ID)
payload string Additional transaction payload data
isInstant boolean Indicates if the transfer was processed instantly
timestamp string Transfer timestamp

DEBTOR OBJECT

Field Type Description
internalAddressId string Source address ID
asset string Asset being transferred
address string Source blockchain address
addressParams object Additional address parameters
network string Blockchain network
amount number Amount being transferred
fee number Fee for the transfer

CREDITOR OBJECT

Field Type Description
payeeAddressId string Destination payee address ID
asset string Asset being received
address string Destination blockchain address
addressParams object Additional address parameters
network string Blockchain network
amount number Amount being received (after fees)

EXCHANGEINFO OBJECT

Field Type Description
rate number Exchange rate used for the transfer

transfer

Initiates a transfer of funds to a payee address.

Method:
POST
URL:
/api/v1/transfer

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

{
  "id": "zzzz",
  "asset": "BTC",
  "amount": 0.001,
  "internalAddressId": "yyyy",
  "payeeAddressId": "xxxx",
  "description": ""
}
                                              

REQUEST BODY

Field Type Description
asset string Asset to transfer (e.g., BTC, ETH)
amount number Amount of asset to transfer
internalAddressId string Source address ID
payeeAddressId string Destination payee address ID
description string Optional description of the transfer

Validation Rules

  • Description is required and must not exceed 250 characters
  • Asset must exist in the configured networks

Parameters

No parameters required for this endpoint.

RESPONSE OBJECT

Field Type Description
id string Unique identifier of the initiated transfer
asset string Asset to transfer (e.g., BTC, ETH)
amount number Amount of asset to transfer
internalAddressId string Source address ID
payeeAddressId string Destination payee address ID
description string Description of the transfer

⚠️ WARNING - This endpoint is only available in the production environment.

get transaction ledger

Retrieves detailed information about a specific transaction, including ledger entries.

Method:
GET
URL:
/api/v1/transactions/{transactionId}

Headers

Header Type Description
Authorization string Bearer API_KEY
Content-Type string application/json

Response Data Example:

{
  "id": "zzzz",
  "refId": "xxxx",
  "userId": "yyyy",
  "type": "Transfer",
  "status": "Completed",
  "description": "Monthly payment to supplier",
  "asset": "BTC",
  "amount": 0.001,
  "debtor": {
    "address": "zzzz",
    "asset": "BTC",
    "network": "Bitcoin"
  },
  "creditor": {
    "address": "xxxx", 
    "asset": "BTC",
    "network": "Bitcoin"
  },
  "timestamp": "2025-09-12T14:30:00.000Z"
}
                                              

REQUEST BODY

No body parameters required for this endpoint.

Parameters

Parameter Type Description
transactionId string ID of the transaction to retrieve

TRANSACTION LEDGER OBJECT

Field Type Description
id string Transaction ID
refId string Reference ID associated with the transaction
userId string User ID associated with the transaction
type string Transaction type (e.g., DEPOSIT, WITHDRAWAL)
status string Transaction status (e.g., CREATED, COMPLETED)
description string Description of the transaction
asset string Asset involved in the transaction (e.g., EUR, BTC)
amount number Amount involved in the transaction
debtor object Details of the debtor (sender)
creditor object Details of the creditor (receiver)
timestamp string Timestamp of the transaction creation

DEBTOR OBJECT

Field Type Description
address string Debtor's blockchain or bank address
asset string Asset being sent by the debtor
network string Network of the debtor's address (e.g., Bitcoin, Ethereum)

CREDITOR OBJECT

Field Type Description
address string Creditor's blockchain or bank address
asset string Asset being received by the creditor
network string Network of the creditor's address (e.g., Bitcoin, Ethereum)