OAuth2
Security Scheme Type | OAuth2 |
---|---|
urn:safello:params:oauth:grant-type:bankid OAuth Flow | Scopes:
|
clientCredentials OAuth Flow | Token URL: /oauth2/token Scopes:
|
authorizationCode OAuth Flow | Authorization URL: Token URL: /oauth2/token Scopes:
|
BankID Auth Grant
Starts an authorization request
Authorizations:
header Parameters
Source-IP-Address required | string Example: 192.168.0.1 IP Address of the originator of the request |
Source-User-Agent required | string Example: curl/7.37.0 User-Agent of the originator of the request |
Request Body schema: application/x-www-form-urlencoded
pnr required | string Personal Identity Number (12 digits) |
corporate | boolean Set to true to get the first corporate account connected to the bank id (if it exists) |
orgNr | string Specific organization number to get the corporate account connected to the bank id (if it exists) |
Responses
Cache-Control | string Example: "no-store" |
Pragma | string Example: "no-cache" |
Response Schema: application/json
request_id | string <uuid> Request ID to provide when requesting access token |
auto_start_token | string Token to start bank id app |
auto_start_qr_code | string QR code data used to generate the QR code for bank id |
interval | integer time to wait between polling requests |
expires_in | integer how long the request will last before timing out |
Response samples
- 200
- 400
{- "request_id": "123e4567-e89b-12d3-a456-426614174000",
- "auto_start_token": "sagtuvAgOax1",
- "interval": 2,
- "expires_in": 120
}
Request Access Token
Authorizations:
Request Body schema: application/x-www-form-urlencoded
grant_type required | string Grant types:
|
request_id | string The request_id retrieved from /oauth2/bankid request |
refresh_token | any The refresh token previously issued to the client. |
scope | string The scope of the access request |
Responses
Cache-Control | string Example: "no-store" |
Pragma | string Example: "no-cache" |
Response Schema: application/json
access_token | string The access token issued by the authorization server. |
token_type | string The type of the token issued. |
expires_in | integer The lifetime in seconds of the access token. |
refresh_token | string The refresh token, which can be used to obtain new access tokens. |
scope | string The scope of the access token. |
Response samples
- 200
- 400
{- "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c",
- "token_type": "Bearer",
- "expires_in": 3600,
- "refresh_token": "tGzv3JOkF0XG5Qx2TlKWIA",
- "scope": "read write"
}
List Cryptocurrency symbols
Lists the crypto currency symbols supported by Safello
Authorizations:
market
Responses
Response Schema: application/json
currency | string Crypto currency code |
minorAmountDecimals | integer Number of decimal places to represent the smallest unit for this crypto currency |
displayName | string Crypto currency name |
status | string Availability of our services related to this crypto currency. It can be:
|
availableActions | Array of strings Lists the type of operations you can make using this cryptocurrency. |
network | string What network the crypto is using or null if not supported |
Response samples
- 200
- 400
[- {
- "currency": "BTC",
- "minorAmountDecimals": 8,
- "displayName": "Bitcoin",
- "status": "active",
- "availableActions": [
- "buy",
- "sell"
], - "network": "Bitcoin"
}
]
List Fiat currency symbols
Lists the fiat currency symbols supported by Safello
Authorizations:
market
Responses
Response Schema: application/json
currency | string Currency code ISO 4217 |
minorAmountDecimals | integer Number of decimal places to represent the smallest unit for this currency |
displayName | string Currency name |
status | string Availability of our services related to this currency. It can be:
|
Response samples
- 200
- 400
[- {
- "currency": "SEK",
- "minorAmountDecimals": 2,
- "displayName": "Kronor",
- "status": "active"
}
]
List trading pairs
Lists the trading pairs supported by Safello
Authorizations:
market
Responses
Response Schema: application/json
pair | string Trading pair symbol using underscore as delimiter. |
baseDecimals | integer How many decimals base currency uses for trading |
counterDecimals | integer How many decimals counter currency uses for trading |
status | string Availability of our services related to this trading pair. It can be:
|
availableActions | Array of strings Lists the type of operations you can make using this trading pair. |
object (CurrencyAmount) |
Response samples
- 200
- 400
[- {
- "pair": "BTC_USDC",
- "baseDecimals": 8,
- "counterDecimals": 5,
- "status": "active",
- "availableActions": [
- "buy",
- "sell"
], - "minimumOrder": {
- "currency": "SEK",
- "amount": "510.00"
}
}
]
Market chart
Get the chart for the selected market
Authorizations:
market
path Parameters
pair required | string Example: BTC_SEK Trading pair symbol using underscore as delimiter. |
query Parameters
interval | string Default: "MAX" Enum: "DAILY" "WEEKLY" "MONTHLY" "QUARTERLY" "HALF_YEARLY" "YEARLY" "YTD" "MAX" Time interval for the result |
Responses
Response Schema: application/json
timestamp | integer <int64> Timestamp representing the number of milliseconds since UNIX Epoch Time |
price | string Unitary price for the cryptocurrency in COUNTER |
Response samples
- 200
- 400
[- {
- "timestamp": 1643037000000,
- "price": "310438.36"
}, - {
- "timestamp": 1643037600000,
- "price": "314322.28"
}, - {
- "timestamp": 1643038200000,
- "price": "317258.03"
}, - "..."
]
Get price
Gets the current price for a single crypto currency
Authorizations:
market
path Parameters
crypto required | string Cryptocurrency code - one of BTC, ETH, LINK, MATIC, or DOT |
query Parameters
fiat | string Default: "SEK" Value: "SEK" Fiat currency |
Responses
Response Schema: application/json
ask | string Ask price |
baseAsk | string Base ask price |
mid | string Mid price |
baseBid | string Base bid price |
bid | string Bid price |
cryptoCurrency | string Crypto currency code |
currency | string Fiat currency |
Response samples
- 200
- 400
{- "ask": "343110.6053375",
- "baseAsk": "328335.5075",
- "mid": "330000.0000",
- "baseBid": "330303.5525",
- "bid": "313788.374875",
- "cryptoCurrency": "BTC",
- "currency": "SEK"
}
Get trade pair price
Gets the current price for a trade pair
Authorizations:
market
path Parameters
pair required | string Example: BTC_SEK Trading pair symbol using underscore as delimiter. |
Responses
Response Schema: application/json
pair | string Trade pair |
timestamp | string <date-time> The timestamp at which the ticker was calculated |
quoteVolume | string Volume within the last 24 hours in the quote currency |
baseVolume | string Volume within the last 24 hours in the base currency |
lastPrice | string Price of the last trade |
bestBid | string Price of the current best bid |
bestAsk | string Price of the current best ask |
high | string Highest matched price within the last 24 hours |
low | string Lowest matched price within the last 24 hours |
mid | string Mid price between ask and bid |
Response samples
- 200
- 400
{- "pair": "BTC_SEK",
- "timestamp": "2019-08-24T14:15:22Z",
- "quoteVolume": "string",
- "baseVolume": "string",
- "lastPrice": "string",
- "bestBid": "string",
- "bestAsk": "string",
- "high": "string",
- "low": "string",
- "mid": "string"
}
Get logged in user
Returns information about the logged in user
Authorizations:
account.base
account.base:read
Responses
Response Schema: application/json
country | string Two-letter country code. ISO 3166-1 alpha-2 |
string <email> User's email | |
emailActive | boolean Indicates if a user has completed the process of email verification |
firstName | string User's first name |
lastName | string User's last name |
hasAcceptedLatestTerms | boolean Indicates whether or not the user has accepted the latest Terms and Conditions for using Safello. |
language | string Two-letter language code, ISO 639-1 |
level | integer Defines what percentage fee the user gets |
safeEnvironment | boolean Indicates if the user was put under safe mode |
telephoneNumber | string <phoneNumber> User's contact number |
tier | integer Relates to the maximum amount of money this user is allowed to buy |
Response samples
- 200
- 401
{- "country": "SE",
- "email": "user@example.com",
- "emailActive": true,
- "firstName": "John",
- "lastName": "Doe",
- "hasAcceptedLatestTerms": true,
- "language": "sv",
- "level": 1,
- "safeEnvironment": false,
- "telephoneNumber": 46555555555,
- "tier": 3
}
Accept T&C
Accept Terms and Conditions
Authorizations:
account.base
Request Body schema: application/json
marketingEmails | boolean Default: false Opt in to receiving marketing emails from Safello |
Responses
Request samples
- Payload
{- "marketingEmails": true
}
Response samples
- 401
{- "message": "string"
}
Send verification email
Send email to verify the user has access to that account
Authorizations:
account.base
Request Body schema: application/json
email required | string Email to send the verification code to |
Responses
Request samples
- Payload
{- "email": "mail@test.com"
}
Response samples
- 400
- 401
{- "message": "You cannot place an order higher than your buy limit of 500 SEK",
- "status": 400,
- "code": "BUY_LIMIT_EXCEEDED"
}
Verify email
Verify user's email address
Authorizations:
account.base
Request Body schema: application/json
code required | string Verification code sent to the user's email |
Responses
Request samples
- Payload
{- "code": 123456
}
Response samples
- 400
- 401
{- "message": "You cannot place an order higher than your buy limit of 500 SEK",
- "status": 400,
- "code": "BUY_LIMIT_EXCEEDED"
}
Check if KYC is required
Use this endpoint to check is the user is required to complete the KYC questionnaire to continue trading
Authorizations:
account.base
account.base:read
Responses
Response Schema: application/json
requireKyc | boolean Indicates if the user is required to complete the KYC questionnaire |
Response samples
- 200
- 401
{- "requireKyc": true
}
KYC questions
Gets a list of questions to ask the user in order to complete the "Know Your Customer" (KYC) questionnaire.
Authorizations:
account.base
account.base:read
query Parameters
lang | |
questionnaire | string Example: questionnaire=BASIC Which questionnaire questions to get |
Responses
Response Schema: application/json
id | integer Question ID |
questionnaire | string Which questionnaire the question belongs to |
question | string Stated question to present to the user |
Array of objects[ items ] Choice options to present to the user | |
questionVersion | integer Question version |
status | string Status for this question |
Response samples
- 200
- 401
[- {
- "id": 11,
- "questionnaire": "BASIC",
- "question": "Är du bosatt i ett annat land än Sverige?",
- "alternatives": [
- {
- "id": 1,
- "answer": "Nej",
- "textAnswerOption": false
}
], - "questionVersion": 1,
- "status": "waiting"
}
]
Answer KYC questionnaire
Submits the user's answers to the KYC questionnaire
Authorizations:
account.base
Request Body schema: application/json
questionnaire required | string Which questionnaire to answer |
required | Array of objects[ items ] Array of answers |
Responses
Request samples
- Payload
{- "questionnaire": "BASIC",
- "answers": [
- {
- "questionId": 0,
- "alternativeId": 1,
- "textAnswer": "Free text"
}
]
}
Response samples
- 400
- 401
{- "message": "You cannot place an order higher than your buy limit of 500 SEK",
- "status": 400,
- "code": "BUY_LIMIT_EXCEEDED"
}
Get user bank accounts
Get a list of all bank account the user has connected
Authorizations:
account.bank-account
account.bank-account:read
Responses
Response Schema: application/json
id | string <uuid> Bank account ID |
name | string Name of the account |
accountNumber | string Bank account number |
clearingNumber | string Clearing number |
currency | string Currency of the bank account |
bank | string Name of bank |
default | boolean If bank account is the default selected |
Response samples
- 200
- 401
[- {
- "id": "e6eb08e1-b966-4ee9-b43f-db83dd958479",
- "name": "Savings",
- "accountNumber": "123456789",
- "clearingNumber": "1234",
- "currency": "SEK",
- "bank": "SHB",
- "default": true
}
]
Add or update bank account
A unique bank account (clearing number + bank account number) can only be added once to a user. Adding the same bank account a second time will update the existing and return the same Bank Account ID.
Authorizations:
account.bank-account
Request Body schema: application/json
accountNumber required | string^(\d{7}|\d{11})$ Bank account number |
clearingNumber required | string^\d{4,5}$ Clearing number |
currency required | string Currency of the bank account |
name | string Name of the account |
Responses
Response Schema: application/json
id | string <uuid> Bank account ID |
name | string Name of the account |
accountNumber | string Bank account number |
clearingNumber | string Clearing number |
currency | string Currency of the bank account |
bank | string Name of bank |
default | boolean If bank account is the default selected |
Request samples
- Payload
{- "name": "Savings",
- "accountNumber": "123456789",
- "clearingNumber": "1234",
- "currency": "SEK"
}
Response samples
- 200
- 400
- 401
{- "id": "e6eb08e1-b966-4ee9-b43f-db83dd958479",
- "name": "Savings",
- "accountNumber": "123456789",
- "clearingNumber": "1234",
- "currency": "SEK",
- "bank": "SHB",
- "default": true
}
List orders
Gets a paginated list containing the user's orders history
Authorizations:
order
order:read
query Parameters
offset | integer Desired offset for pagination purposes |
size | integer Example: size=10 Desired size for pagination purposes |
Responses
Response Schema: application/json
offset | integer Offset value for pagination purposes |
size | integer Number of results returned |
total | integer Total number of orders for this user |
Array of objects (OrderRecord) [ items ] |
Response samples
- 200
- 400
- 401
{- "offset": 0,
- "size": 0,
- "total": 0,
- "data": [
- {
- "id": "AS0ZZHU",
- "created": "2022-01-27T11:29:20+0100",
- "approved": "2022-01-27T11:29:20+0100",
- "feeRate": "0.05",
- "fee": {
- "currency": "SEK",
- "amount": "510.00"
}, - "discountFeeId": "eaf0c806-b614-4b1f-b94b-01e391191194",
- "walletId": "0ecad4a2-3549-43fb-807e-9ff033247480",
- "buy": {
- "fiat": {
- "currency": "SEK",
- "amount": "510.00"
}, - "crypto": {
- "currency": "SEK",
- "amount": "510.00"
}, - "paymentMethod": "klarna_bankgiro",
- "recurring": false,
- "paymentDetails": {
- "property1": "string",
- "property2": "string"
}, - "actions": [
- {
- "type": "approved",
- "email": "vitalik@ethereum.org",
- "created": "2022-02-03T09:44:13.000Z"
}
]
}, - "sell": {
- "receivedCrypto": {
- "currency": "SEK",
- "amount": "510.00"
}, - "sold": {
- "currency": "SEK",
- "amount": "510.00"
}, - "payout": {
- "currency": "SEK",
- "amount": "510.00"
}, - "payoutMethod": "SE Bank transfer",
- "payoutDetails": {
- "property1": "string",
- "property2": "string"
}, - "actions": [
- {
- "type": "approved",
- "email": "vitalik@ethereum.org",
- "created": "2022-02-03T09:44:13.000Z"
}
]
}, - "trade": {
- "pair": "BTC_USDC",
- "amount": {
- "amount": "0.10"
}, - "counterAmount": {
- "counterAmount": "100"
}, - "side": "buy",
- "from": {
- "currency": "SEK",
- "amount": "510.00"
}, - "to": {
- "currency": "SEK",
- "amount": "510.00"
}, - "fiatAmount": {
- "currency": "SEK",
- "amount": "510.00"
}, - "type": "market",
- "price": "string",
- "clientId": "string"
}, - "transaction": {
- "crypto": {
- "currency": "SEK",
- "amount": "510.00"
}, - "fiat": {
- "currency": "SEK",
- "amount": "510.00"
}, - "txAddress": "string",
- "txHash": "string",
- "remittance": "string",
- "type": "withdrawal"
}, - "status": "completed",
- "type": "sell",
- "statusErrorCode": "INSUFFICIENT_EXCHANGE_BALANCE"
}
]
}
Create buy order
Creates a new order to buy crypto currency using fiat money.
Upon creation, you can monitor the status of the order by calling Check order status.
Authorizations:
order
header Parameters
Source-IP-Address required | string Example: 192.168.0.1 IP Address of the originator of the request |
Source-User-Agent required | string Example: curl/7.37.0 User-Agent of the originator of the request |
Request Body schema: application/json
cryptoCurrency required | string Cryptocurrency code - one of BTC, ETH, LINK, MATIC, or DOT |
required | object (CurrencyAmount) |
paymentMethod required | string Payment method used - one of swish, klarna_bankgiro, klarna_sepa, credit_card, sepa, bank_transfer_dk, bank_transfer_se |
walletId | string <uuid> Wallet used in buy order. If not used the default wallet will be used instead |
object Additional payment details |
Responses
Response Schema: application/json
orderId required | string Identifier for the newly created order. Use it to check its status |
pollingUrl required | string <URL> URL to call to check the order status |
Request samples
- Payload
{- "cryptoCurrency": "BTC",
- "fiat": {
- "currency": "SEK",
- "amount": "510.00"
}, - "walletId": "0ecad4a2-3549-43fb-807e-9ff033247480",
- "paymentMethod": "string",
- "paymentDetails": {
- "property1": "string",
- "property2": "string"
}
}
Response samples
- 200
- 400
- 401
{- "orderId": "AS0ZZHU",
}
Create trade order
Creates a new trade order to exchange crypto.
Upon creation, you can monitor the status of the order by calling Check order status.
Authorizations:
order
header Parameters
Source-IP-Address required | string Example: 192.168.0.1 IP Address of the originator of the request |
Source-User-Agent required | string Example: curl/7.37.0 User-Agent of the originator of the request |
Request Body schema: application/json
pair required | string A trading pair symbol |
amount required | string For sell orders, the amount is in the base currency. For buy orders, the amount is in the counter currency. Use 'amountInCounter' to specify the amount in the base currency. |
side required | string Enum: "buy" "sell" Order side |
type required | string Enum: "market" "limit" Order type |
clientId required | string Unique ID for this trade. |
amountInCounter | boolean Default: true For buy orders, the amount can be in the counter currency. Currently only true is supported. |
price | string Limit price for limit orders |
walletId | string <uuid> Wallet used in trade order. If not used the default wallet will be used instead |
Responses
Response Schema: application/json
orderId required | string Identifier for the newly created order. Use it to check its status |
pollingUrl required | string <URL> URL to call to check the order status |
Request samples
- Payload
{- "pair": "BTC_USDC",
- "amount": {
- "amount": "10"
}, - "amountInCounter": true,
- "side": "buy",
- "type": "market",
- "price": "string",
- "clientId": "string",
- "walletId": "0ecad4a2-3549-43fb-807e-9ff033247480"
}
Response samples
- 200
- 400
- 401
{- "orderId": "AS0ZZHU",
}
Cancel a trade order
Cancels a limit trade order.
Authorizations:
order
header Parameters
Source-IP-Address required | string Example: 192.168.0.1 IP Address of the originator of the request |
Source-User-Agent required | string Example: curl/7.37.0 User-Agent of the originator of the request |
Request Body schema: application/json
orderId required | string Order identifier. |
Responses
Request samples
- Payload
{- "orderId": "string"
}
Response samples
- 400
- 401
{- "message": "You cannot place an order higher than your buy limit of 500 SEK",
- "status": 400,
- "code": "BUY_LIMIT_EXCEEDED"
}
Create sell order
Creates an order to sell crypto currency and receive fiat money.
Upon creation, you can monitor the status of the order by calling Check order status.
Authorizations:
order
header Parameters
Source-IP-Address required | string Example: 192.168.0.1 IP Address of the originator of the request |
Source-User-Agent required | string Example: curl/7.37.0 User-Agent of the originator of the request |
Request Body schema: application/json
fiatCurrency required | string Currency to convert the crypto to - must be a well formed currency code, currently SEK only |
required | object (CurrencyAmount) |
bankAccountId | string <uuid> Legacy, bank account to use when creating a sell order. If not used the user default bank account will be used instead |
payoutMethod | string Payout method used - one of 'SE Bank transfer', 'Credit card', 'SEPA', 'SWIFT' |
object Additional payout details | |
walletId | string <uuid> Wallet used in sell order. If not used the default wallet will be used instead |
Responses
Response Schema: application/json
orderId required | string Identifier for the newly created order. Use it to check its status |
pollingUrl required | string <URL> URL to call to check the order status |
Request samples
- Payload
{- "fiatCurrency": "SEK",
- "crypto": {
- "currency": "SEK",
- "amount": "510.00"
}, - "bankAccountId": "5b26b598-a880-4e32-8c41-126aa0206857",
- "payoutMethod": "SE Bank transfer",
- "payoutDetails": {
- "property1": "string",
- "property2": "string"
}, - "walletId": "0ecad4a2-3549-43fb-807e-9ff033247480"
}
Response samples
- 200
- 400
- 401
{- "orderId": "AS0ZZHU",
}
Check order status
Checks the status of an order. Used to monitor if a buy or sell order has been completed.
Authorizations:
order
order:read
path Parameters
orderId required | string Order identifier |
Responses
Response Schema: application/json
id | string Identifier for the order |
created | string <date-time> Order creation date in ISO 8601 format. |
approved | string <date-time> Order approval date in ISO 8601 format. |
feeRate | string Fee rate in percentage for the transaction |
object (CurrencyAmount) | |
discountFeeId | string <uuid> Discount fee UUID |
walletId | string <uuid> Wallet UUID |
object (BuyOrder) | |
object (SellOrder) | |
object (TradeOrder) | |
object (CryptoTransaction) | |
status | string Order status. It can be one of the following:
|
type | any Enum: "buy" "sell" "trade" "tx" Order type |
statusErrorCode | any Value: "INSUFFICIENT_EXCHANGE_BALANCE" Specific error affecting order |
Response samples
- 200
- 400
- 401
{- "id": "AS0ZZHU",
- "created": "2022-01-27T11:29:20+0100",
- "approved": "2022-01-27T11:29:20+0100",
- "feeRate": "0.05",
- "fee": {
- "currency": "SEK",
- "amount": "510.00"
}, - "discountFeeId": "eaf0c806-b614-4b1f-b94b-01e391191194",
- "walletId": "0ecad4a2-3549-43fb-807e-9ff033247480",
- "buy": {
- "fiat": {
- "currency": "SEK",
- "amount": "510.00"
}, - "crypto": {
- "currency": "SEK",
- "amount": "510.00"
}, - "paymentMethod": "klarna_bankgiro",
- "recurring": false,
- "paymentDetails": {
- "property1": "string",
- "property2": "string"
}, - "actions": [
- {
- "type": "approved",
- "email": "vitalik@ethereum.org",
- "created": "2022-02-03T09:44:13.000Z"
}
]
}, - "sell": {
- "receivedCrypto": {
- "currency": "SEK",
- "amount": "510.00"
}, - "sold": {
- "currency": "SEK",
- "amount": "510.00"
}, - "payout": {
- "currency": "SEK",
- "amount": "510.00"
}, - "payoutMethod": "SE Bank transfer",
- "payoutDetails": {
- "property1": "string",
- "property2": "string"
}, - "actions": [
- {
- "type": "approved",
- "email": "vitalik@ethereum.org",
- "created": "2022-02-03T09:44:13.000Z"
}
]
}, - "trade": {
- "pair": "BTC_USDC",
- "amount": {
- "amount": "0.10"
}, - "counterAmount": {
- "counterAmount": "100"
}, - "side": "buy",
- "from": {
- "currency": "SEK",
- "amount": "510.00"
}, - "to": {
- "currency": "SEK",
- "amount": "510.00"
}, - "fiatAmount": {
- "currency": "SEK",
- "amount": "510.00"
}, - "type": "market",
- "price": "string",
- "clientId": "string"
}, - "transaction": {
- "crypto": {
- "currency": "SEK",
- "amount": "510.00"
}, - "fiat": {
- "currency": "SEK",
- "amount": "510.00"
}, - "txAddress": "string",
- "txHash": "string",
- "remittance": "string",
- "type": "withdrawal"
}, - "status": "completed",
- "type": "sell",
- "statusErrorCode": "INSUFFICIENT_EXCHANGE_BALANCE"
}
Wallet
Retrieves the user's wallet
Authorizations:
wallet
Responses
Response Schema: application/json
Array of objects (CurrencyAmount) [ items ] Current crypto holdings | |
created | string <date-time> Creation time in ISO 8601 format. |
Response samples
- 200
- 401
{- "balances": [
- {
- "currency": "SEK",
- "amount": "510.00"
}
], - "created": "2022-02-03T09:44:13.000Z"
}
Wallet performance
Retrieves the user's current wallet performance right now
Authorizations:
wallet
Responses
Response Schema: application/json
fiat | string Fiat currency |
object Individual performance for each crypto | |
object (WalletPerformanceCrypto) |
Response samples
- 200
- 401
{- "fiat": "string",
- "cryptos": {
- "BTC": {
- "amount": "1.0000000",
- "fiatValue": "11000.0",
- "performance": {
- "absoluteChange": "1000.0",
- "percentageChange": "0.1"
}
}
}, - "total": {
- "amount": "string",
- "fiatValue": "string",
- "performance": {
- "absoluteChange": "string",
- "percentageChange": "string"
}
}
}
Wallet performance history
Retrieves the user's wallet performance history. Each data point is one day at midnight UTC.
For example a data point at 2022-01-01 would mean what the performance was at 2022-01-01 00:00 UTC
Authorizations:
wallet
query Parameters
crypto required | Array of strings Example: crypto=BTC,ETH Cryptocurrency code |
timePeriod required | string Default: "ALL_TIME" Enum: "ALL_TIME" "THIS_YEAR" "THREE_YEARS" "ONE_YEAR" "THREE_MONTHS" "ONE_MONTH" "ONE_WEEK" "CUSTOM" Time period to get performance history. |
fiat | string Default: "SEK" Fiat currency |
start | string <date> Start date if timePeriod is CUSTOM |
end | string <date> End date if timePeriod is CUSTOM |
performanceSince | string <date> Date where to calculate the performance from. Default to wallet creation date when timePeriod is CUSTOM or the first date on all other time periods |
Responses
Response Schema: application/json
start | string <date> |
end | string <date> |
performanceSince | string <date> |
fiat | string Fiat currency |
timePeriod | string |
Array of objects (WalletPerformanceHistoryDataPoint) [ items ] Data points |
Response samples
- 200
- 401
{- "start": "2019-08-24",
- "end": "2019-08-24",
- "performanceSince": "2019-08-24",
- "fiat": "string",
- "timePeriod": "string",
- "data": [
- {
- "date": "2019-08-24",
- "assetValues": [
- {
- "crypto": "string",
- "amount": "string",
- "fiatValue": "string",
- "percentageChange": "string",
- "absoluteChange": "string"
}
], - "combined": {
- "fiatValue": "string",
- "percentageChange": "string",
- "absoluteChange": "string"
}
}
]
}
Verify compliance status for a sell operation
Verify the compliance status for a sell operation
Authorizations:
order
Request Body schema: application/json
fiatCurrency required | string Currency to convert the crypto to - must be a well formed currency code, currently SEK only |
required | object (CurrencyAmount) |
bankAccountId | string <uuid> Legacy, bank account to use when creating a sell order. If not used the user default bank account will be used instead |
payoutMethod | string Payout method used - one of 'SE Bank transfer', 'Credit card', 'SEPA', 'SWIFT' |
object Additional payout details | |
walletId | string <uuid> Wallet used in sell order. If not used the default wallet will be used instead |
Responses
Response Schema: application/json
decision | string Describes the outcome of the compliance assessment (ACCEPT or REJECT) |
Array of objects (ComplianceRejection) [ items ] A list of reasons for the rejection (if any) |
Request samples
- Payload
{- "fiatCurrency": "SEK",
- "crypto": {
- "currency": "SEK",
- "amount": "510.00"
}, - "bankAccountId": "5b26b598-a880-4e32-8c41-126aa0206857",
- "payoutMethod": "SE Bank transfer",
- "payoutDetails": {
- "property1": "string",
- "property2": "string"
}, - "walletId": "0ecad4a2-3549-43fb-807e-9ff033247480"
}
Response samples
- 200
[- {
- "decision": "ACCEPT",
- "rejections": [
- {
- "reason": "KYC",
- "code": "BASIC"
}, - {
- "reason": "EMAIL",
- "code": "NOT_VERIFIED"
}, - {
- "reason": "TERMS",
- "code": "NOT_UP_TO_DATE"
}, - "..."
]
}
]
Verify compliance status for a buy operation
Verify the compliance status for a buy operation
Authorizations:
order
Request Body schema: application/json
cryptoCurrency required | string Cryptocurrency code - one of BTC, ETH, LINK, MATIC, or DOT |
required | object (CurrencyAmount) |
paymentMethod required | string Payment method used - one of swish, klarna_bankgiro, klarna_sepa, credit_card, sepa, bank_transfer_dk, bank_transfer_se |
walletId | string <uuid> Wallet used in buy order. If not used the default wallet will be used instead |
object Additional payment details |
Responses
Response Schema: application/json
decision | string Describes the outcome of the compliance assessment (ACCEPT or REJECT) |
Array of objects (ComplianceRejection) [ items ] A list of reasons for the rejection (if any) |
Request samples
- Payload
{- "cryptoCurrency": "BTC",
- "fiat": {
- "currency": "SEK",
- "amount": "510.00"
}, - "walletId": "0ecad4a2-3549-43fb-807e-9ff033247480",
- "paymentMethod": "string",
- "paymentDetails": {
- "property1": "string",
- "property2": "string"
}
}
Response samples
- 200
[- {
- "decision": "ACCEPT",
- "rejections": [
- {
- "reason": "KYC",
- "code": "BASIC"
}, - {
- "reason": "EMAIL",
- "code": "NOT_VERIFIED"
}, - {
- "reason": "TERMS",
- "code": "NOT_UP_TO_DATE"
}, - "..."
]
}
]