Skip to main content

Partner

This module contains endpoints for displaying information and managing partner account


Get partner balances

Method: GET
Endpoint: /v1/partner/balances

Response

Code: 200
Description: Returns all partner balances

 

Response body explanation

{
"fiatBalances": [
{
"id": "Balance id (from our system)",
"amount": "Amount",
"name": "Currency name",
"rate": "Rate",
"iban": "IBAN number",
"status": "Enum: [ 'ACTIVE, 'WAITING_TO_BE_ACTIVATED' ]"
}
],
"cryptoBalances": [
{
"id": "Balance id (from our system)",
"amount": "Amount",
"name": "Currency name",
"wallet": "Wallet address",
"rate": "Rate",
"networkConfig": {
[networkName]: {
"mainnet": "Is mainnet network",
"name": "Network name",
"withdrawal": {
"feeWithdrawal": "Withdrawal fee",
"minWithdrawal": "Withdrawal min amount"
},
"deposit": {
"minDeposit": "Deposit min amount"
},
}
}
}
]
}

 

Example response

{
"fiatBalances": [
{
"id": "02ee1b09-9934-4dcc-8dec-91bf34b8f543",
"amount": "0.00",
"name": "eur",
"rate": 1,
"iban": "LT683130019950000568",
"status": "ACTIVE"
}
],
"cryptoBalances": [
{
"id": "f2de1f4b-916f-417e-9410-8bf4a70693ee",
"amount": "0.000000",
"name": "usdc",
"wallet": "0x2e90ca5bbe46d5ae23f2df90457d020391b92673",
"rate": 0.963728,
"networkConfig": {
"ethereum": {
"mainnet": false,
"name": "sepolia",
"withdrawal": {
"feeWithdrawal": 10,
"minWithdrawal": 15
},
"deposit": {
"minDeposit": 5
}
},
"polygon": {
"mainnet": false,
"name": "amoy",
"withdrawal": {
"feeWithdrawal": 10,
"minWithdrawal": 15
},
"deposit": {
"minDeposit": 5
}
}
}
},
{
"id": "7415034b-3dcf-4f45-a213-ce6361c248aa",
"amount": "0.000000",
"name": "usdt",
"wallet": "0x2e90ca5bbe46d5ae23f2df90457d020391b92673",
"rate": 0.963486,
"networkConfig": {
"ethereum": {
"mainnet": false,
"name": "sepolia",
"withdrawal": {
"feeWithdrawal": 10,
"minWithdrawal": 15
},
"deposit": {
"minDeposit": 5
}
},
"polygon": {
"mainnet": false,
"name": "amoy",
"withdrawal": {
"feeWithdrawal": 10,
"minWithdrawal": 15
},
"deposit": {
"minDeposit": 5
}
}
}
},
{
"id": "ca5f1989-978b-422c-b0bd-b799c5e32fe8",
"amount": "0.00000000",
"name": "ltc",
"wallet": "tltc1qvf4kplcdjzskhukeg58lnde4gxhqv822fpxm2t",
"rate": 128.12666666,
"networkConfig": {
"btc": {
"mainnet": false,
"name": "test",
"withdrawal": {
"feeWithdrawal": 0.002,
"minWithdrawal": 0.004
},
"deposit": {
"minDeposit": 0
}
}
}
},
{
"id": "b28d71d3-60ae-49ac-9346-26bf5358e198",
"amount": "0.00000000",
"name": "pol",
"wallet": "0x2e90ca5bbe46d5ae23f2df90457d020391b92673",
"rate": 0.39908402,
"networkConfig": {
"polygon": {
"mainnet": false,
"name": "amoy",
"withdrawal": {
"feeWithdrawal": 0.001,
"minWithdrawal": 0.00005
},
"deposit": {
"minDeposit": 0
}
}
}
},
{
"id": "d83263ca-3e1f-4190-8739-e99900758ed2",
"amount": "0.00000000",
"name": "eth",
"wallet": "0x2e90ca5bbe46d5ae23f2df90457d020391b92673",
"rate": 3169.4854887,
"networkConfig": {
"ethereum": {
"mainnet": false,
"name": "sepolia",
"withdrawal": {
"feeWithdrawal": 0.003,
"minWithdrawal": 0.006
},
"deposit": {
"minDeposit": 0
}
}
}
},
{
"id": "fae1baed-815b-4b5f-998b-d3b2c36145da",
"amount": "0.00000000",
"name": "btc",
"wallet": "tb1qsclk8wvk7zplp6t8f0954qddctqtvcrhea5gca",
"rate": 100686.13333333,
"networkConfig": {
"btc": {
"mainnet": false,
"name": "test",
"withdrawal": {
"feeWithdrawal": 0.0003,
"minWithdrawal": 0.0003
},
"deposit": {
"minDeposit": 0
}
}
}
}
]
}

Get partner transaction history

Transaction history can be returned to one year ago. It is returned for the selected month.
Explanation of types:

  • exchange - currency exchange
  • atmFee - fee charged for ATM transaction
  • sepaDeposit - incoming SEPA transfer
  • sepaTransfer - outgoing SEPA transfer
  • transfer - transfer
  • cardTransaction - card transaction
  • cryptoDeposit - crypto deposit
  • cryptoWithdrawal - crypto withdrawal
  • atmWithdrawal - atm withdrawal
  • fiatDeposit - fiat deposit
  • refund - refund
  • cashback - cashback
  • payment - card payment
  • partialRefund - partial refund
  • fiatWithdrawal - fiat withdrawal
  • transaction - transaction

Explanation of status:

  • SUCCESSFUL - transaction successful
  • UNSUCCESSFUL - transaction unsuccessful
  • IN_PROGRESS - transaction in progress

Method: GET
Endpoint: /v1/partner/transaction-history/:month/:year

Request

Parameters - required

NameTypeRequiredExampleDescription
monthnumberYes1Month
yearnumberYes2025Year

Response

Code: 200
Description: Returns user transaction history

 

Response body explanation

[
{
"createdAt": "Transaction created date",
"type": "Transaction type",
"amount": "Transaction amount",
"amountFrom": "Transaction from amount, if the transaction is an exchange",
"currency": "Transaction currency",
"currencyFrom": "Transaction from currency, if the transaction is an exchange",
"status": "Transaction status"
}
]

 

Example response

[
{
"createdAt": "2025-01-20T10:33:23.808Z",
"type": "exchange",
"amount": 0.00220961,
"amountFrom": -20,
"currency": "eth",
"currencyFrom": "doge",
"status": "SUCCESSFUL"
},
{
"createdAt": "2025-01-20T09:59:38.233Z",
"type": "exchange",
"amount": 26.91447658,
"amountFrom": -10,
"currency": "doge",
"currencyFrom": "eur",
"status": "SUCCESSFUL"
},
{
"createdAt": "2025-01-20T09:35:36.182Z",
"type": "exchange",
"amount": 99.9651492,
"amountFrom": -10,
"currency": "doge",
"currencyFrom": "eur",
"status": "SUCCESSFUL"
}
]

 

Code: 400
Description: Invalid month or year

Example response

{
"errorCode": "P403",
"errorMessage": "
The month cannot be less than 1,
The month cannot be longer than 12,
The year must be the current year or the previous year
"
}

 

Code: 400
Description: Invalid date

Example response

{
"errorCode": "P435",
"errorName": "invalid-date"
}

Retrieve exchange rate and create a lock

Method: GET
Endpoint: /v1/partner/get-lock

Rate lock is valid for 40 seconds, then it expires.

Response

Code: 200
Description: Returns the exchange rate and lock details, including rates and validity period

Example response

{
"id": "f4a33667-0824-4d73-88d3-3698a6f7c534",
"rates": {
"btc": 63115.99036294,
"doge": 0.1405009,
"eth": 2260.61529615,
"eur": 1,
"eurt": 0.992974,
"ltc": 61.02279304,
"pol": 0.27442258,
"usdc": 0.918038,
"usdt": 0.917832
},
"feePercentage": 1.49,
"createdAt": "2024-11-05T10:54:02.982Z",
"validUntil": "2024-11-05T22:00:42.981Z"
}

Create and finalize an exchange

Method: POST
Endpoint: /v1/partner/exchange

Request

Request body - required

NameTypeRequiredDescription
amountnumberYesThe amount of exchange
currencyFromstringYesSource currency for the exchange (e.g., btc, eth)
currencyTostringYesTarget currency for the exchange (e.g., eur, btc)
lockIdstringYesUnique identifier for the currency lock associated with the exchange

Example body request

{
"amount": 100,
"currencyFrom": "btc",
"currencyTo": "eur",
"lockId": "123e4567-e89b-12d3-a456-426614174000"
}

Response

Code: 201
Description: Exchange created and finalized successfully

Example response

{
"exchangeId": "7fb02323-969a-4936-94ea-86b8773ff1a2"
}

 

Code: 400
Description: Exchange lock is not valid or not exist

Example response

{
"errorCode": "P432",
"errorName": "invalid-exchange-lock"
}

 

Code: 400
Description: Insufficient funds

Example response

{
"errorCode": "P433",
"errorName": "insufficient-funds"
}

Create Crypto Withdrawal

Method: POST
Endpoint: /v1/partner/crypto-withdrawal

Request

Request body - required

NameTypeRequiredDescription
currencystringYesThe cryptocurrency slug for the withdrawal. Enum: [ btc, doge, eth, eurt, ltc, pol, usdc, usdt ]
amountnumberYesThe amount of cryptocurrency to withdraw
walletAddressstringYesThe destination wallet address for the cryptocurrency withdrawal
memostringNoOptional memo or title for the withdrawal transaction
networkstringNoThe blockchain network used for the withdrawal. Required only if currency is usdc, usdt and you want to make a withdrawal on the polygon network. Enum: [ POLYGON ]

Example body request

{
"currency": "BTC",
"amount": 0.005,
"walletAddress": "bc1quy5nvh8npg0qdpnk35wctey8e923yms9udzfjr",
"memo": "Transaction to savings wallet"
}

Response

Code: 200
Description: Crypto withdrawal created successfully

Example response

{
"withdrawalId": "7fb02323-969a-4936-94ea-86b8773ff1a2"
}

 

Code: 400
Description: Invalid request

Example response

{
"errorCode": "P410",
"errorName": "invalid-currency"
}

 

Code: 400
Description: Insufficient funds

Example response

{
"errorCode": "P433",
"errorName": "insufficient-funds"
}

Create a SEPA transfer

Method: POST
Endpoint: /v1/partner/sepa-transfer

Request

Request body - required

NameTypeRequiredDescription
currencystringYesThe cryptocurrency slug for the transfer (e.g., EUR)
amountstringYesAmount to transfer
receiverFirstNamestringRequired only if receiverType is NATURALReceiver first name
receiverLastNamestringRequired only if receiverType is NATURALReceiver last name
companyNamestringRequired only if receiverType is LEGALCompany name
receiverTypestringYesReceiver type. Enum: [ NATURAL, LEGAL ]
destinationIbanstringYesDestination iban
transferTitlestringYesTransfer title

Example body request

{
"currency": "eur",
"amount": 100,
"receiverFirstName": "John",
"receiverLastName": "Doe",
"destinationIban": "LT601010012345678901",
"transferTitle": "Bank transfer",
"receiverType": "NATURAL"
}

Response

Code: 201
Description: Transfer created successfully

Example response

{
"transferId": "7fb02323-969a-4936-94ea-86b8773ff1a2"
}

 

Code: 400
Description: Partner not found

Example response

{
"errorCode": "P418",
"errorName": "partner-not-found"
}

 

Code: 400
Description: Insufficient funds

Example response

{
"errorCode": "P433",
"errorName": "insufficient-funds"
}