Bitpanda Whitelabel API Documentation (2.30.0)

Download OpenAPI specification:Download

Authentication

We use authentication based on the OAuth 2.0 standard.

As a Partner, you will receive client_id and client_secret from Bitpanda. To make the exchange secure, we will ask you to share a public GPG/PGP key with Bitpanda, as well as an email address for future technical communication. Bitpanda will send back your client_id and client_secret, which is encrypted with the key, shared in the previous step.

With the provided client_id and client_secret you can issue one or more initial Refresh tokens.

Refresh tokens can not be used to call the endpoints. They can be used only for requesting a short-lived Access Token and a new Refresh Token.

For the API authorization you will need an active Access Token, which can be issued by using a valid Refresh token.

Each White Label API request must contain an authorization header (in the format below) to make a call: Authorization: Bearer [YourAccessTokenHere].

Access tokens have a limited lifetime (currently set to 10 minutes). If your application needs access to a Whitelabel API beyond the lifetime of a single access token, it can obtain a new Access token by using a valid Refresh token.

To get a new Access Token you will need a valid Refresh token. When a new Access Token is claimed, it will be provided along with a new Refresh Token. When you receive the new set consisting of access - refresh token:

  • the Refresh token, which you used in the request, will be invalidated.
  • The “old” Access token will not be invalidated when you receive the new one. It will become inactive only after its TTL lapses. In this way you can have a smooth transition between the old and the new access token, when doing API requests

Refresh tokens also have a relatively short lifespan, currently set to 24h.

A refresh token will become invalid either

  • 24h after its issuing
  • when an access token is renewed by using an active refresh token
  • In case you initiate refresh token revocation

OAuth 2.0

Obtain a Refresh and Access Tokens

This endpoint supports two key operations:

  • Obtain an initial Refresh Token by passing grant_type: "client_credentials" together with your client_id and client_secret. The response will contain the initial Refresh Token and an Access Token.
  • Renew Access Token by passing grant_type: refresh_token using a valid Refresh Token next to your client_id. The Refresh token, used in the request, will be invalidated.
Request
Request Body schema: application/json

Request Access Token

grant_type
required
string
Enum: "client_credentials" "refresh_token"
client_id
required
string
client_secret
string

required if the grant_type is client_credentials

refresh_token
string

required if the grant_type is refresh_token. Pass a valid Refresh token.

Responses
200

Success Response

Response Schema: application/json
expires_in
integer

TTL of the Access token, determining how many seconds the token will be valid.

access_token
string

Used when making API requests. Each request must contain an authorization header in the following format: Authorization: Bearer [YourAccessTokenHere].

refresh_token
string

The Refresh token, which you can use the next time you do a request for issuing a new Access token. Bear in mind that the Refresh token, used in the request, will be invalidated as soon as you receive the new one.

413

Error

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
post/v1/oauth/token
Request samples
application/json
{
  • "grant_type": "client_credentials",
  • "client_id": "partner",
  • "client_secret": "secret12345",
  • "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnRJZCI6Imx5ZGlhIiwiZXhwIjoxNjY0MDIzMzkyLCJuYmYiOjE2NjM5MzY5OTIsImlhdCI6MTY2MzkzNjk5MiwianRpIjoiY2UxZmFjMDEtNDhjZC00NWE4LWI3YjQtYTA2NDQxZTUwZWE4In0.ZYafj15LT5hrFXzWjtzZci1yvL9INKyv85FeGxUaRfE"
}
Response samples
application/json
{
  • "expires_in": 600,
  • "access_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnRJZCI6Imx5ZGlhIiwiZXhwIjoxNjYzOTM3NTkyLCJuYmYiOjE2NjM5MzY5OTIsImlhdCI6MTY2MzkzNjk5MiwianRpIjoiMTc2NzM0Y2ItYjVmOC00OGFkLTlhMDMtYzRkYjYxZjQwM2I1In0.e-exoz0u-xyE7wN8I3vQwnXSP98Jekh3-7Fo_UrzDKqw9bfZ38kbLndsZXbXpdgqT1eziOg_TVx27St8f3EeBKUg_vCPfJrlPFMXJCVjWwEXg2E1a1cQJWbgdY4PudBF68R4bUUTHpstjD6zufxj5rRERG-6iDhc-xNuBw-IdFaYeJO8-upWJEtt-p23FlpiH4RkflXoxqpP-oWc22aGyAJdMWWY_IIOPCFn3w4f7LhBhh8AWpAbwnTl1ZgFCH1kq3QncBvbRHuqN7UYPlpon_ygBpae6xhYbsBtmfDNnZacZ7-HABLwe3rTJlGw5ltAl_OeB3sq_wAmrJuF4L56OA",
  • "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnRJZCI6Imx5ZGlhIiwiZXhwIjoxNjY0MDIzMzkyLCJuYmYiOjE2NjM5MzY5OTIsImlhdCI6MTY2MzkzNjk5MiwianRpIjoiY2UxZmFjMDEtNDhjZC00NWE4LWI3YjQtYTA2NDQxZTUwZWE4In0.ZYafj15LT5hrFXzWjtzZci1yvL9INKyv85FeGxUaRfE"
}

Revoke a Refresh Token

Use this endpoint to revoke a Refresh Token if you suspect it has been compromised, effectively preventing its further use for authentication.

Request
Request Body schema: application/json

Revoke Refresh Token

client_id
required
string
client_secret
required
string
refresh_token
required
string

The refresh token which you want to invalidate

Responses
200

Success Response

422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
post/v1/oauth/revoke
Request samples
application/json
{
  • "client_id": "partner",
  • "client_secret": "secret12345",
  • "refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJjbGllbnRJZCI6Imx5ZGlhIiwiZXhwIjoxNjY0MDIzMzkyLCJuYmYiOjE2NjM5MzY5OTIsImlhdCI6MTY2MzkzNjk5MiwianRpIjoiY2UxZmFjMDEtNDhjZC00NWE4LWI3YjQtYTA2NDQxZTUwZWE4In0.ZYafj15LT5hrFXzWjtzZci1yvL9INKyv85FeGxUaRfE"
}
Response samples
application/json
{
  • "errors": [
    ]
}

Users

Get Terms & Conditions

The endpoint returns a list of Bitpanda Terms which the user needs to accept in order to create an account. The terms, which shall be accepted may differ based on the user’s country of residence.

You can pass the parameter Accept-Language with a string containing ISO 639-1 language code to get the list of Terms translated into the chosen language. Currently, Bitpanda supports translations for German, Polish, French, Spanish, Italian, and Turkish. The default language is English (en). If you pass the parameter for a language that does not have an existing translation in our database, the response returns the Terms in English.

SecuritybearerAuth
Request
query Parameters
country
string

Alpha-2 ISO 3166 country code. Represents user's country of residence.

Example: country=AT
account_type
string

Account type

Enum: "user" "business_user"
Example: account_type=user
user_journey
string (UserJourney)

Filters results for a specific user journey. If not provided, all terms are included in the response.

Enum: "onboarding" "trading_stocks_buy" "trading_stocks_sell" "trading_etf_buy" "trading_etf_sell" "trading_metals_buy" "trading_metals_sell" "change_of_circumstances_dac8" "appropriateness_consent" "appropriateness_warning"
page_size
integer

Number of elements to be displayed on a page

Example: page_size=10
page
integer

Display page number

Example: page=1
header Parameters
Accept-Language
string

ISO 639-1 2-letter code representing user's language

Example: en
Responses
200

An array of policies

Response Schema: application/json
Array of objects (Term)
object (PaginationMeta)
object (PaginationLinks)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Error

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/terms
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Get Terms & Conditions v2

The endpoint returns a list of Bitpanda Terms which the user needs to accept in order to create an account. The terms, which shall be accepted may differ based on the user’s country of residence.

You can pass the parameter Accept-Language with a string containing ISO 639-1 language code to get the list of Terms translated into the chosen language. Currently, Bitpanda supports translations for German, Polish, French, Spanish, Italian, and Turkish. The default language is English (en). If you pass the parameter for a language that does not have an existing translation in our database, the response returns the Terms in English.

SecuritybearerAuth
Request
query Parameters
country
required
string

Alpha-2 ISO 3166 country code. Represents user's country of residence.

Example: country=AT
account_type
required
string

Account type

Enum: "user" "business_user"
Example: account_type=user
user_journey[]
Array of strings (UserJourney)

Filters results for one or more specific user journeys. If not provided, all terms are included in the response.

Items Enum: "onboarding" "trading_stocks_buy" "trading_stocks_sell" "trading_etf_buy" "trading_etf_sell" "trading_metals_buy" "trading_metals_sell" "change_of_circumstances_dac8" "appropriateness_consent" "appropriateness_warning"
header Parameters
Accept-Language
string

ISO 639-1 2-letter code representing user's language

Example: en
Responses
200

An array of policies

Response Schema: application/json
Array of TermV2Link (object) or TermV2Text (object)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Error

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/terms
Request samples
Response samples
application/json
{}

Get AML questions

The endpoint returns the list of all possible AML questions and answers that the user needs to select during the onboarding process before starting investing.

You can pass the parameter Accept-Language with a string containing ISO 639-1 language code to get the list of AML questions and answers translated into the chosen language. Currently, Bitpanda supports translations for German, Polish, French, Spanish, Italian, and Turkish. The default language is English (en). If you pass the parameter for a language that does not have an existing translation in our database, the response returns the AML questions and answers in English.

SecuritybearerAuth
Request
query Parameters
page_size
integer

Number of elements to be displayed on a page

Example: page_size=10
page
integer

Display page number

Example: page=1
account_type
string
Default: "user"

Account type

Enum: "user" "business_user"
Example: account_type=business_user
header Parameters
Accept-Language
string

ISO 639-1 language used for translation

Example: en
Responses
200

Success Response

Response Schema: application/json
Array of objects (AmlQuestion)
object (PaginationMeta)
object (PaginationLinks)
401

Unauthorized

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/aml
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Get appropriateness questions

The endpoint returns the list of questions and answers related to trading with stocks and ETFs. The user must answer the questions before starting investing in stocks and ETFs.

Based on regulatory rules, users may need to retake the test after a certain time period or based on their trading activity. Check whether the user needs to complete or resubmit the test by calling GET /v1/users/{User-ID}

Note that some of the appropriateness questions and answers apply only to users with specific citizenship.

The parameter country containing the user’s citizenship in Alpha-2 ISO 3166 format is mandatory.

You can pass the parameter Accept-Language with a string containing ISO 639-1 language code to get the list of appropriateness questions and answers translated into the chosen language. Currently, Bitpanda supports translations for German, Polish, French, Spanish, Italian and Turkish. The default language is English (en). If you pass the parameter for a language that does not have an existing translation, the response will return the appropriateness questions and answers in English.

SecuritybearerAuth
Request
query Parameters
page_size
integer

Number of elements to be displayed on a page

Example: page_size=10
page
integer

Display page number

Example: page=1
country
required
string

Get regulatory code questions by country of citizenship. Use Alpha-2 ISO 3166 country code.

Example: country=AT
user_id
string <uuid>

Unique identifier of the user in UUID format. Optional. Must be provided when the user retakes the appropriateness test.

Example: user_id=a5431f30-b43f-11f0-82fe-02da11e44a6f
header Parameters
Accept-Language
string

ISO 639-1 language used for translation

Example: en
Responses
200

Success Response

Response Schema: application/json
Array of objects (QuestionnaireQuestion)
object (PaginationMeta)
object (PaginationLinks)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Invalid country

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/appropriateness
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Get client categorization questionnaire

The endpoint returns the client categorization questionnaire that the user needs to respond during the onboarding process before starting investing.

You can pass the parameter Accept-Language with a string containing ISO 639-1 language code to get the questionnaire translated into the chosen language. Currently, Bitpanda supports translations for German, Polish, French, Spanish, Italian, and Turkish. The default language is English (en). If you pass the parameter for a language that does not have an existing translation in our database, the response returns the questionnaire in English.

SecuritybearerAuth
Request
header Parameters
Accept-Language
string

ISO 639-1 language used for translation

Example: en
Responses
200

Success Response

Response Schema: application/json
Array of objects (ClientCategorizationQuestion)
401

Unauthorized

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/client-categorization
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Get DAC8 questionnaire

The endpoint provides the DAC8 questionnaire explaining why a tax ID is not supplied during onboarding for a given country.

If the user selects multiple countries, the questionnaire will be shown once for each selected country.

tax-country parameter represents the country where the user is taxed. country parameter represents the user's country of residence.

You can pass the parameter Accept-Language with a string containing ISO 639-1 language code to get the questionnaire translated into the chosen language. Currently, Bitpanda supports translations for German, Polish, French, Spanish, Italian, and Turkish. The default language is English (en). If you pass the parameter for a language that does not have an existing translation in our database, the response returns the questionnaire in English.

SecuritybearerAuth
Request
path Parameters
tax-country
required
string = 2 characters

Alpha-2 ISO 3166 country code. Represents the user's tax country.

Example: FR
query Parameters
country
required
string = 2 characters

Alpha-2 ISO 3166 country code. Represents user's country of residence.

Example: country=AT
header Parameters
Accept-Language
string = 2 characters

ISO 639-1 language used for translation

Example: en
Responses
200

Success Response

Response Schema: application/json
Array of objects (Dac8Question)
401

Unauthorized

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/questionnaires/dac8/{tax-country}
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Get FATCA questionnaire

This endpoint provides the FATCA questionnaire regarding U.S. indicia that the user must complete during onboarding before beginning to invest.

You can pass the parameter Accept-Language with a string containing ISO 639-1 language code to get the questionnaire translated into the chosen language. Currently, Bitpanda supports translations for German, Polish, French, Spanish, Italian, and Turkish. The default language is English (en). If you pass the parameter for a language that does not have an existing translation in our database, the response returns the questionnaire in English.

SecuritybearerAuth
Request
query Parameters
country
required
string

Alpha-2 ISO 3166 country code. Represents user's country of residence.

Example: country=AT
header Parameters
Accept-Language
string

ISO 639-1 language used for translation

Example: en
Responses
200

Success Response

Response Schema: application/json
Array of objects (FatcaQuestion)
401

Unauthorized

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/questionnaires/fatca
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Get account levels

Account levels serve to categorise users into various tiers. Depending on the account levels configuration, distinct trading fees will be applied on users. The account level of a user can be set during user creation or adjusted later. In cases where no account level is specified upon user creation, the default level, as determined during the integration phase, will automatically be assigned to the user.

SecuritybearerAuth
Request
query Parameters
page_size
integer

Number of elements to be displayed on a page

Example: page_size=10
page
integer

Display page number

Example: page=1
Responses
200

An array of account levels

Response Schema: application/json
Array of objects (AccountLevel)
object (PaginationMeta)
object (PaginationLinks)
401

Unauthorized

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/account-levels
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Create new user

For Partners, using BTS “Investment as a Service” solution:

The endpoint allows to create a new user in Bitpanda system. The parameters in the query body can contain:

  • Customer master data
  • KYC/verification data
  • Accepted Terms & Conditions

If the user has more than one first name or first and middle name, send all names in first_name field separated by a space. The success response returns the ID of the newly created user.

For Partners, using BTS “Bring Your Own License” solution:

The request can include the external_id parameter, which must be unique for each account (user), and the account_level_id parameter.

SecuritybearerAuth
Request
Request Body schema: application/json

The user to create.

email
required
string
phone
required
string

Phone number in E.164 standard format

first_name
required
string

Allowed characters: uppercase/lowercase letters, comma, full stop, hyphen, apostrophe, and space

last_name
required
string

Allowed characters: uppercase/lowercase letters, comma, full stop, hyphen, apostrophe, and space

language
required
string

ISO 639-1 language code for user account

country
required
string

Alpha-2 ISO 3166 country code. Represents user's citizenship.

terms
required
Array of integers

The IDs of the accepted terms and conditions and privacy policy

required
Array of objects (AmlQuestionAnswerRequest)
Array of objects (AppropriatenessQuestionAnswerRequest)

Appropriateness test answers shall be provided latest before the first trade with stocks or ETFs

Array of objects (ClientCategorizationQuestionAnswerRequest)

Client categorization questionnaire answers. Required only for UK users.

required
Array of objects (FatcaQuestionAnswerRequest)

FATCA questionnaire answers.

object

Answers to the no-tax-ID reason questionnaire, organized by country code (ISO 3166-1 alpha-2). Required if no Tax Identification Number is provided. The user can submit answers for multiple countries.

required
object (UserVerificationV2Request)
object (UserTax)
Deprecated

The tax field has been deprecated in favor of tax_identification_numbers. The new tax_identification_numbers field supports multiple tax information entries, allowing users to store and manage more than one tax identifier. Use this field instead of tax for improved flexibility and future compatibility.

Array of objects (UserMultipleTax)

Array of tax information entries, supporting multiple tax residences and identifications

object (UserExtCompliance)

Compliance information, provided by the Partner

account_level_id
integer

User account level ID. If not specified, the configured default account level ID will be used.

external_id
string

User’s identifier at the partner side. Case insensitive

object

Set of key-value pairs, allowing Partner to provide additional information, as agreed during the integration process

Responses
201

New user has been created

Response Schema: application/json
object
400

Error

Response Schema: application/json
Array of objects
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
409

Conflict

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v2/users
Request samples
application/json
{
  • "email": "username@domain.com",
  • "phone": "+33123123412",
  • "first_name": "Jean",
  • "last_name": "Pascal",
  • "language": "en",
  • "country": "FR",
  • "terms": [
    ],
  • "aml": [
    ],
  • "appropriateness": [
    ],
  • "client_categorization": [
    ],
  • "fatca": [
    ],
  • "dac8": {
    },
  • "verification": {
    },
  • "tax": {
    },
  • "tax_identification_numbers": [
    ],
  • "ext_compliance": {
    },
  • "account_level_id": 1,
  • "external_id": "Ext-Id-1",
  • "external_meta": {
    }
}
Response samples
application/json
{
  • "data": {
    }
}

Get user list v2

The endpoint returns a list of users cursor-paginated.

SecuritybearerAuth
Request
query Parameters
id
string <uuid>

Unique user identifier in UUID format.

Example: id=8f3664a8-d98a-11ef-898b-02da11e44a70
type
string

Indicates the user type.

Enum: "retail" "business"
Example: type=retail
verified
boolean

Indicates if the user is verified.

Example: verified=true
active
boolean

Indicates if the user is active.

Example: active=true
trading_active
boolean

Indicates the user's trading active status.

Example: trading_active=true
registered_after
string <date-time>

Filters the users registered after a specific date. Value must be URL encoded.

Example: registered_after=2025-01-01T00%3A00%3A00%2B00%3A00
registered_before
string <date-time>

Filters the users registered before a specific date. Value must be URL encoded.

Example: registered_before=2025-01-01T00%3A00%3A00%2B00%3A00
size
integer [ 1 .. 100 ]

Indicates the number of results per page. Default value is 50 users per page.

Example: size=50
order
string

Allows results to be sorted in a specific order. Default value is "asc".

Enum: "asc" "desc"
after
string

Indicates the cursor value used for pagination.

Example: after=eyJ1c2Vycy5pZCI6MiwiX3BvaW50c1RvTmV4dEl0ZW1zIjp0cnVlfQ
Responses
200

List of users cursor-paginated with filtering options.

Response Schema: application/json
Array of objects (GetUserList)
object (SimpleCursorPaginationMeta)
401

Unauthorized

Response Schema: application/json
Array of objects
422

Bad Request

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/users
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Search for users

Supports full match search by email and/or phone number. This means you can search for records using either an email address or a phone number, but the search will only return results that exactly match the provided email address or phone number.

Use this endpoint to check if a user with the given email/phone already exists. If you need to get more data about a user, call GET /v1/users/{User-ID} endpoint.

For Partners, using BTS “Bring Your Own License” solution, this endpoint is restricted.

SecuritybearerAuth
Request
query Parameters
email
string

Email of user

Example: email=john.doe@domain.com
phone
string

User's phone number

Example: phone=38712345678
page_size
integer

Number of elements to be displayed on a page

Example: page_size=10
page
integer

Display page number

Example: page=1
Responses
200

List users that match the search query parameters

Response Schema: application/json
Array of objects (UserSearch)
object (PaginationMeta)
object (PaginationLinks)
401

Unauthorized

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/users
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Get user details v2

The endpoint returns the user’s details based on their user ID. The response includes information about the user’s status (such as active or verified), the result of the appropriateness questionnaire, pending acceptance of terms & conditions, and more.

For Partners, using BTS “Bring Your Own License” solution, this endpoint is restricted.

SecuritybearerAuth
Request
path Parameters
User-ID
required
string <uuid>

User ID

query Parameters
user_journey[]
Array of strings (UserJourney)

Filters terms_not_accepted for one or more specific user journeys. If not provided, all not accepted terms are included in the response.

Items Enum: "onboarding" "trading_stocks_buy" "trading_stocks_sell" "trading_etf_buy" "trading_etf_sell" "trading_metals_buy" "trading_metals_sell" "change_of_circumstances_dac8" "appropriateness_consent" "appropriateness_warning"
header Parameters
Accept-Language
string

ISO 639-1 2-letter code representing user's language

Example: en
Responses
200

Get user details V2

Response Schema: application/json
object (GetUserV2)
400

Invalid user

Response Schema: application/json
Array of objects
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/users/{User-ID}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Update an existing user

The endpoint allows to update the details for existing users based on user ID.

Updating the Verification Details
Verification details are stored as a single verification object. We do not store the preceding data, so in the case of updating existing data, we can only overwrite it. It is impossible to change a single detail of verification data, like birth date or nationality; if the update of verification data is needed, the whole verification object needs to be sent again.

For Partners, using BTS “Bring Your Own License” solution, this endpoint can only be used to update the account_level_id parameter.

SecuritybearerAuth
Request
path Parameters
User-ID
required
string <uuid>

User ID

Request Body schema: application/json

The user to create.

email
string

User email

phone
string

Phone number in E.164 standard format

first_name
string

Allowed characters: uppercase/lowercase letters, comma, full stop, hyphen, apostrophe, and space

last_name
string

Allowed characters: uppercase/lowercase letters, comma, full stop, hyphen, apostrophe, and space

language
string

ISO 639-1 language code for user account

country
string

Alpha-2 ISO 3166 country code. Represents user's citizenship.

terms
Array of integers

The IDs of the accepted terms and conditions and privacy policy

Array of objects (AmlQuestionAnswerRequest)
Array of objects (AppropriatenessQuestionAnswerRequest)

Appropriateness test answers shall be provided latest before the first trade with stocks or ETFs

Array of objects (ClientCategorizationQuestionAnswerRequest)

Client categorization questionnaire answers. Required only for UK users.

object

Answers to the no-tax-ID reason questionnaire, organized by country code (ISO 3166-1 alpha-2). Required if no Tax Identification Number is provided. The user can submit answers for multiple countries.

object (UserVerificationV2Request)
object (UserTax)
Deprecated

The tax field has been deprecated in favor of tax_identification_numbers. The new tax_identification_numbers field supports multiple tax information entries, allowing users to store and manage more than one tax identifier. Use this field instead of tax for improved flexibility and future compatibility.

Array of objects (UserMultipleTax)

Array of tax information entries, supporting multiple tax residences and identifications

object (UserExtCompliance)

Compliance information, provided by the Partner

account_level_id
integer

User account level ID

external_id
string

User’s identifier at the partner side. Case insensitive

object

Set of key-value pairs, allowing Partner to provide additional information, as agreed during the integration process

Responses
200

Update user

Response Schema: application/json
object
400

Error

Response Schema: application/json
Array of objects
401

Invalid user

Response Schema: application/json
Array of objects
403

Account is inactive

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
409

Duplicate external_id

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
patch/v2/users/{User-ID}
Request samples
application/json
{
  • "email": "username@domain.com",
  • "phone": "+33123123412",
  • "first_name": "Jean",
  • "last_name": "Pascal",
  • "language": "en",
  • "country": "FR",
  • "terms": [
    ],
  • "aml": [
    ],
  • "appropriateness": [
    ],
  • "client_categorization": [
    ],
  • "dac8": {
    },
  • "verification": {
    },
  • "tax": {
    },
  • "tax_identification_numbers": [
    ],
  • "ext_compliance": {
    },
  • "account_level_id": 1,
  • "external_id": "Ext-Id-1",
  • "external_meta": {
    }
}
Response samples
application/json
{
  • "data": {
    }
}

Get user details

The endpoint returns the user’s details based on their user ID. The response includes information about the user’s status (such as active or verified), the result of the appropriateness questionnaire, pending acceptance of terms & conditions, and more.

For Partners, using BTS “Bring Your Own License” solution, this endpoint is restricted.

SecuritybearerAuth
Request
path Parameters
User-ID
required
string <uuid>

User ID

query Parameters
user_journey
string (UserJourney)

Filters terms_not_accepted for a specific user journey. If not provided, all not accepted terms are included in the response.

Enum: "onboarding" "trading_stocks_buy" "trading_stocks_sell" "trading_etf_buy" "trading_etf_sell" "trading_metals_buy" "trading_metals_sell" "change_of_circumstances_dac8" "appropriateness_consent" "appropriateness_warning"
header Parameters
Accept-Language
string

ISO 639-1 2-letter code representing user's language

Example: en
Responses
200

Get user details

Response Schema: application/json
object (GetUser)
400

Invalid user

Response Schema: application/json
Array of objects
401

Invalid user

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/users/{User-ID}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Off-boarding user

Calling this endpoint initiates the creation of an off-boarding request, which undergoes an initial review process. It's important to note that user off-boarding and asset liquidation do not occur automatically upon receipt of the request; instead, all requests are subject to manual review.

SecuritybearerAuth
Request
path Parameters
User-ID
required
string <uuid>

User ID

Request Body schema: application/json

The Off-boarding user request.

reason
required
string

The off-boarding reason

Enum: "business_relation_end" "compliance" "deceased" "dunning_unsuccessful" "insolvency" "mentally_incapacitated" "other"
first_notice_of_termination
string

The first notice of termination

country_of_residence
string

Residence country code in Alpha-2 ISO 3166 format

liquidate_assets
boolean

Recommendation on whether to liquidate the assets as part of the off-boarding process

Responses
200

User off-boarding requested

Response Schema: application/json
object
400

Error

Response Schema: application/json
Array of objects
401

Invalid user

Response Schema: application/json
Array of objects
403

Error code

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v1/users/{User-ID}/off-boarding
Request samples
application/json
{
  • "reason": "other",
  • "first_notice_of_termination": "2021-04-25",
  • "country_of_residence": "AT",
  • "liquidate_assets": true
}
Response samples
application/json
{
  • "data": {
    }
}

Inactivate user

The endpoint deactivates the user. The procedure is reversible, but to activate again a previously deactivated user, you need to contact Bitpanda.

When may you want to deactivate the user?

  • User does not want to use your trading solution anymore and asks about the account deactivation
  • User did not provide the Proof of Funds
  • User suspects the account may have been compromised/hacked
SecuritybearerAuth
Request
path Parameters
User-ID
required
string <uuid>

User ID

Responses
200

User inactivated

Response Schema: application/json
object
400

Error

Response Schema: application/json
Array of objects
401

Invalid user

Response Schema: application/json
Array of objects
403

Account is inactive / user already blacklisted

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
patch/v1/users/{User-ID}/inactivate
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get user accepted Terms & Conditions

The endpoint returns a list of Bitpanda Terms which the user accepted.

SecuritybearerAuth
Request
path Parameters
User-ID
required
string <uuid>

User ID

query Parameters
user_journey
string (UserJourney)

Filters the user accepted terms for a specific user journey. If not provided, all accepted terms are included in the response.

Enum: "onboarding" "trading_stocks_buy" "trading_stocks_sell" "trading_etf_buy" "trading_etf_sell" "trading_metals_buy" "trading_metals_sell" "change_of_circumstances_dac8" "appropriateness_consent" "appropriateness_warning"
Responses
200

Accepted Terms & Conditions

Response Schema: application/json
Array of objects (UserAcceptedTerm)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/users/{User-ID}/terms
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Get user accepted Terms & Conditions v2

The endpoint returns a list of Bitpanda Terms which the user accepted.

SecuritybearerAuth
Request
path Parameters
User-ID
required
string <uuid>

User ID

query Parameters
user_journey[]
Array of strings (UserJourney)

Filters the user accepted terms for one or more specific user journeys. If not provided, all accepted terms are included in the response.

Items Enum: "onboarding" "trading_stocks_buy" "trading_stocks_sell" "trading_etf_buy" "trading_etf_sell" "trading_metals_buy" "trading_metals_sell" "change_of_circumstances_dac8" "appropriateness_consent" "appropriateness_warning"
Responses
200

Accepted Terms & Conditions

Response Schema: application/json
Array of UserAcceptedTermV2Link (object) or UserAcceptedTermV2Text (object)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/users/{User-ID}/terms
Request samples
Response samples
application/json
{}

User verification files

The endpoint enables the addition of verification files to the verification object when the complete files package cannot be transmitted at once via PATCH /users.

Using this endpoint eliminates the need to resend the entire verification object. The files will be appended to the existing verification object.

For Partners, using BTS “Bring Your Own License” solution, this endpoint is restricted.

SecuritybearerAuth
Request
path Parameters
User-ID
required
string <uuid>

User ID

Request Body schema: application/json

The files to validate.

files
Array of strings <uuid>

A list of unique file IDs returned by the File Service, representing additional user files

Responses
202

User verification files

400

Error

Response Schema: application/json
Array of objects
401

Invalid user

Response Schema: application/json
Array of objects
403

Account is inactive / blacklisted

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v2/users/{User-ID}/verification
Request samples
application/json
{
  • "files": [
    ]
}
Response samples
application/json
{
  • "errors": [
    ]
}

Get Legal Documents

The endpoint returns a list of Bitpanda legal documents.

You can pass the parameter Accept-Language with a string containing ISO 639-1 language code to get the list of legal documented translated into the chosen language, if available.

SecuritybearerAuth
Request
query Parameters
country
string

Alpha-2 ISO 3166 country code. Represents user's country of residence.

Example: country=AT
account_type
string

Account type

Enum: "user" "business_user"
Example: account_type=user
header Parameters
Accept-Language
string

ISO 639-1 2-letter code representing user's language

Example: en
Responses
200

A list of legal documents

Response Schema: application/json
Array of objects (LegalDocument)
401

Unauthorized

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/legal-documents
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Capture consent for User's final check

This endpoint captures the consent for User's final check, required to complete the pre-trade process. This action must be performed after the User's cool-off period has ended. Available only for UK users.

SecuritybearerAuth
Request
path Parameters
User-ID
required
string <uuid>

User ID

Responses
204

User successfully accepted final check

403

Error code

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v1/users/{User-ID}/accept-final-check
Request samples
Response samples
application/json
{
  • "errors": [
    ]
}

Retrieve Tax Identification Number Configuration

This endpoint retrieves tax identification number configuration rules and validation requirements for supported countries.

It provides country-level information on how tax identification numbers should be formatted, validated, and categorized.

The data returned can be used to guide user input validation or enforce country-specific compliance requirements when collecting tax-related information.

SecuritybearerAuth
Request
header Parameters
Accept-Language
string

ISO 639-1 language used for translation

Example: en
Responses
200

Successfully retrieved country-specific tax identification number configuration rules.

Response Schema: application/json
Array of objects

A list of country-specific tax identification number (TIN) configuration rules.

400

Invalid request or user context.

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
get/v1/countries/tax-rules
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Assets

Get a list of available assets

The endpoint returns a list of all assets enabled globally for the Partner. The list is sortable. To get specific infos for your asset you need to add the asset ID in your get request.

SecuritybearerAuth
Request
query Parameters
types[]
Array of strings

Asset types

Items Enum: "cryptocoin" "commodity" "index" "security"
Example: types[]=cryptocoin&types[]=index
groups[]
Array of strings

Asset groups

Items Enum: "coin" "token" "metal" "index" "stock" "etf" "etc" "leveraged_token" "fiat_earn" "mutual_fund" "security_token"
Example: groups[]=coin&groups[]=token
type
string

Asset type

Enum: "cryptocoin" "commodity" "index" "security"
Example: type=cryptocoin
group
string

Asset group

Enum: "coin" "token" "metal" "index" "stock" "etf" "etc" "leveraged_token" "fiat_earn" "mutual_fund" "security_token"
Example: group=coin
page_size
integer

Number of elements to be displayed on a page

Example: page_size=1
page
integer

Display page number

Example: page=1
sort_by
string

Sort assets

Enum: "change_24h" "change_1w" "change_1m" "change_1y" "display_price" "market_cap"
Example: sort_by=market_cap
sort_order
string

Sort order

Enum: "asc" "desc"
Example: sort_order=desc
tags[]
Array of strings

Asset tags

Example: tags[]=asset_tag.group.europe&tags[]=asset_tag.group.payments
q
string

Query to search assets by name or symbol

Example: q=btc
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
allow_buy
boolean

Filters assets based on whether they are configured to be available for purchase

Example: allow_buy=true
Responses
200

List assets

Response Schema: application/json
Array of objects (Asset)
object (PaginationMeta)
object (PaginationLinks)
401

Unauthorized

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/assets
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Get asset details

The endpoint returns more detailed information on each asset based on the asset ID.

SecuritybearerAuth
Request
path Parameters
id
required
integer

Asset ID

query Parameters
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
Responses
200

Success Response

Response Schema: application/json
object (Asset)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/assets/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get asset history

The endpoint returns assets/fiats price changes history for the selected period (day/week/month/year).

SecuritybearerAuth
Request
path Parameters
id
required
integer

Asset ID

fiatId
required
integer

Fiat ID

period
required
string

Period

Enum: "day" "week" "month" "year" "6m" "5y"
Example: day
Responses
200

Success Response

Response Schema: application/json
Array of objects (AssetHistory)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/assets/{id}/fiats/{fiatId}/history/{period}
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Get asset information

The endpoint returns general information on the asset based on the asset ID in the chosen language (default is English). It will also return the maintenance_reason if the selected asset is currently in maintenance mode.

Translation troubleshooting

Scenario 1: Description received in English instead of the chosen language

If Bitpanda does not support the language requested in the header, you will receive a description in English in the response. Currently, Bitpanda supports translation for German, Polish, French, Spanish, Italian and Turkish.

Scenario 2: Description received is empty

In some exceptional cases, a new asset can be released before having all the translations in supported languages available. If you received an empty description in the response, you would need to make another call with the language parameter changed to English (en) to get the default assets description.

SecuritybearerAuth
Request
path Parameters
id
required
integer

Asset ID

header Parameters
Accept-Language
string

ISO 639-1 language used for translation

Example: en
Responses
200

Success Response

Response Schema: application/json
Array of objects (AssetInfo)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Error

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/assets/{id}/info
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Get crypto index allocations

The endpoint returns information on what is the allocation of this particular asset (based on asset ID) in a given crypto index. Currently it is not in use. When Bitpanda starts supporting BCI trading, then it will be handy.

SecuritybearerAuth
Request
path Parameters
id
required
integer

Asset ID

Responses
200

Success Response

Response Schema: application/json
Array of objects (CryptoIndexAllocation)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Error

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/assets/{id}/allocations
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Get cryptocoin details

The endpoint returns details on crypto coins. These details are visible in the user interface in the app. Please note that each asset type will return information related only to that asset. For example, stock details will be different from crypto coins details.

SecuritybearerAuth
Request
path Parameters
id
required
integer

Asset ID

query Parameters
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
Responses
200

Success Response

Response Schema: application/json
object (CoinDetails)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/asset-groups/coin/assets/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get metal details

The endpoint returns details on metal assets. These details are visible in the user interface in the app. Please note that each asset type will return information related only to that asset. For example, crypto index details will be different from crypto coins details.

SecuritybearerAuth
Request
path Parameters
id
required
integer

Asset ID

query Parameters
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
Responses
200

Success Response

Response Schema: application/json
object (MetalDetails)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/asset-groups/metal/assets/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get crypto index details

The endpoint returns details on crypto index. These details are visible in the user interface in the app. Please note that each asset type will return information related only to that asset. For example, crypto index details will be different from crypto coins details.

SecuritybearerAuth
Request
path Parameters
id
required
integer

Asset ID

query Parameters
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
Responses
200

Success Response

Response Schema: application/json
object (CryptoIndexDetails)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/asset-groups/index/assets/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get stock details

The endpoint returns details on stock assets. These details are visible in the user interface in the app. Please note that each asset type will return information related only to that asset. For example, stock assets details will be different from crypto coins details.

SecuritybearerAuth
Request
path Parameters
id
required
integer

Asset ID

query Parameters
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
Responses
200

Success Response

Response Schema: application/json
object (StockDetails)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/asset-groups/stock/assets/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get equity stock details

The endpoint returns details on equity stock assets. These details are visible in the user interface in the app. Please note that each asset type will return information related only to that asset. For example, equity stock assets details will be different from crypto coins details.

SecuritybearerAuth
Request
path Parameters
id
required
integer

Asset ID

query Parameters
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
Responses
200

Success Response

Response Schema: application/json
object (EquityStockDetails)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/asset-groups/equity_stock/assets/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get ETF details

The endpoint returns details on ETF assets. These details are visible in the user interface in the app. Please note that each asset type will return information related only to that asset. For example, ETF assets details will be different from crypto coins details.

SecuritybearerAuth
Request
path Parameters
id
required
integer

Asset ID

query Parameters
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
Responses
200

Success Response

Response Schema: application/json
object (ETFDetails)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/asset-groups/etf/assets/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get equity ETF details

The endpoint returns details on equity ETF assets. These details are visible in the user interface in the app. Please note that each asset type will return information related only to that asset. For example, equity ETF assets details will be different from crypto coins details.

SecuritybearerAuth
Request
path Parameters
id
required
integer

Asset ID

query Parameters
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
Responses
200

Success Response

Response Schema: application/json
object (EquityETFDetails)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/asset-groups/equity_etf/assets/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get ETC details

The endpoint returns details on ETC assets. These details are visible in the user interface in the app. Please note that each asset type will return information related only to that asset. For example, ETC assets details will be different from crypto coins details.

SecuritybearerAuth
Request
path Parameters
id
required
integer

Asset ID

query Parameters
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
Responses
200

Success Response

Response Schema: application/json
object (ETCDetails)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/asset-groups/etc/assets/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get Equity ETC details

The endpoint returns details on Equity ETC assets. These details are visible in the user interface in the app. Please note that each asset type will return information related only to that asset. For example, Equity ETC assets details will be different from crypto coins details.

SecuritybearerAuth
Request
path Parameters
id
required
integer

Asset ID

query Parameters
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
Responses
200

Success Response

Response Schema: application/json
object (EquityETCDetails)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/asset-groups/equity_etc/assets/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get token details

The endpoint returns details on token assets. These details are visible in the user interface in the app. Please note that each asset type will return information related only to that asset. For example, token assets details will be different from crypto coins details.

SecuritybearerAuth
Request
path Parameters
id
required
integer

Asset ID

query Parameters
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
Responses
200

Success Response

Response Schema: application/json
object (TokenDetails)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/asset-groups/token/assets/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get a list of available assets v2

The endpoint returns a list of all assets enabled globally for the Partner. The list is sortable. To get specific infos for your asset you need to add the asset ID in your get request.

SecuritybearerAuth
Request
query Parameters
types[]
Array of strings

Asset types

Items Enum: "cryptocoin" "commodity" "index" "security"
Example: types[]=cryptocoin&types[]=index
groups[]
Array of strings

Asset groups

Items Enum: "coin" "token" "metal" "index" "stock" "etf" "etc" "leveraged_token" "fiat_earn" "mutual_fund" "security_token"
Example: groups[]=coin&groups[]=token
type
string

Asset type

Enum: "cryptocoin" "commodity" "index" "security"
Example: type=cryptocoin
group
string

Asset group

Enum: "coin" "token" "metal" "index" "stock" "etf" "etc" "leveraged_token" "fiat_earn" "mutual_fund" "security_token"
Example: group=coin
page_size
integer

Number of elements to be displayed on a page

Example: page_size=1
page
integer

Display page number

Example: page=1
sort_by
string

Sort assets

Enum: "change_24h" "change_1w" "change_1m" "change_1y" "display_price" "market_cap"
Example: sort_by=market_cap
sort_order
string

Sort order

Enum: "asc" "desc"
Example: sort_order=desc
tags[]
Array of strings

Asset tags

Example: tags[]=asset_tag.group.europe&tags[]=asset_tag.group.payments
q
string

Query to search assets by name or symbol

Example: q=btc
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
allow_buy
boolean

Filters assets based on whether they are configured to be available for purchase

Example: allow_buy=true
Responses
200

List assets

Response Schema: application/json
Array of objects (Asset-V2)
object (PaginationMeta)
object (PaginationLinks)
401

Unauthorized

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/assets
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Get asset details v2

The endpoint returns more detailed information on each asset based on the asset ID.

SecuritybearerAuth
Request
path Parameters
id
required
string <uuid>

Asset ID

query Parameters
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
Responses
200

Success Response

Response Schema: application/json
object (Asset-V2)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/assets/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get asset information

The endpoint returns general information on the asset based on the asset ID in the chosen language (default is English). It will also return the maintenance_reason if the selected asset is currently in maintenance mode.

Translation troubleshooting

Scenario 1: Description received in English instead of the chosen language

If Bitpanda does not support the language requested in the header, you will receive a description in English in the response. Currently, Bitpanda supports translation for German, Polish, French, Spanish, Italian and Turkish.

Scenario 2: Description received is empty

In some exceptional cases, a new asset can be released before having all the translations in supported languages available. If you received an empty description in the response, you would need to make another call with the language parameter changed to English (en) to get the default assets description.

SecuritybearerAuth
Request
path Parameters
id
required
string <uuid>

Asset ID

Example: 2e4c89ac-1290-426f-8de0-4c7b40b91d3a
header Parameters
Accept-Language
string

ISO 639-1 language used for translation

Example: en
Responses
200

Success Response

Response Schema: application/json
Array of objects (AssetInfo)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Error

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/assets/{id}/info
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Get asset history

The endpoint returns assets/fiats price changes history for the selected period (day/week/month/year).

SecuritybearerAuth
Request
path Parameters
id
required
string <uuid>

Asset ID

currency
required
string

The three letter ISO 4217 currency code

Example: USD
period
required
string

Period

Enum: "day" "week" "month" "year" "6m" "5y"
Example: day
Responses
200

Success Response

Response Schema: application/json
Array of objects (AssetHistory)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/assets/{id}/fiats/{currency}/history/{period}
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Get cryptocoin details

The endpoint returns details on crypto coins. These details are visible in the user interface in the app. Please note that each asset type will return information related only to that asset. For example, stock details will be different from crypto coins details.

SecuritybearerAuth
Request
path Parameters
id
required
string <uuid>

Asset ID

query Parameters
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
Responses
200

Success Response

Response Schema: application/json
object (CoinDetails)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/asset-groups/coin/assets/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get metal details

The endpoint returns details on metal assets. These details are visible in the user interface in the app. Please note that each asset type will return information related only to that asset. For example, crypto index details will be different from crypto coins details.

SecuritybearerAuth
Request
path Parameters
id
required
string <uuid>

Asset ID

query Parameters
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
Responses
200

Success Response

Response Schema: application/json
object (MetalDetails)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/asset-groups/metal/assets/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get crypto index details

The endpoint returns details on crypto index. These details are visible in the user interface in the app. Please note that each asset type will return information related only to that asset. For example, crypto index details will be different from crypto coins details.

SecuritybearerAuth
Request
path Parameters
id
required
string <uuid>

Asset ID

query Parameters
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
Responses
200

Success Response

Response Schema: application/json
object (CryptoIndexDetails)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/asset-groups/index/assets/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get stock details

The endpoint returns details on stock assets. These details are visible in the user interface in the app. Please note that each asset type will return information related only to that asset. For example, stock assets details will be different from crypto coins details.

SecuritybearerAuth
Request
path Parameters
id
required
string <uuid>

Asset ID

query Parameters
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
Responses
200

Success Response

Response Schema: application/json
object (StockDetails)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/asset-groups/stock/assets/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get equity stock details V2

The endpoint returns details on equity stock assets. These details are visible in the user interface in the app. Please note that each asset type will return information related only to that asset. For example, equity stock assets details will be different from crypto coins details.

SecuritybearerAuth
Request
path Parameters
id
required
string <uuid>

Asset ID

query Parameters
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
Responses
200

Success Response

Response Schema: application/json
object (EquityStockDetails)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/asset-groups/equity_stock/assets/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get ETF details

The endpoint returns details on ETF assets. These details are visible in the user interface in the app. Please note that each asset type will return information related only to that asset. For example, ETF assets details will be different from crypto coins details.

SecuritybearerAuth
Request
path Parameters
id
required
string <uuid>

Asset ID

query Parameters
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
Responses
200

Success Response

Response Schema: application/json
object (ETFDetails)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/asset-groups/etf/assets/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get equity ETF details V2

The endpoint returns details on equity ETF assets. These details are visible in the user interface in the app. Please note that each asset type will return information related only to that asset. For example, equity ETF assets details will be different from crypto coins details.

SecuritybearerAuth
Request
path Parameters
id
required
string <uuid>

Asset ID

query Parameters
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
Responses
200

Success Response

Response Schema: application/json
object (EquityETFDetails)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/asset-groups/equity_etf/assets/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get ETC details

The endpoint returns details on ETC assets. These details are visible in the user interface in the app. Please note that each asset type will return information related only to that asset. For example, ETC assets details will be different from crypto coins details.

SecuritybearerAuth
Request
path Parameters
id
required
string <uuid>

Asset ID

query Parameters
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
Responses
200

Success Response

Response Schema: application/json
object (ETCDetails)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/asset-groups/etc/assets/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get Equity ETC details V2

The endpoint returns details on Equity ETC assets. These details are visible in the user interface in the app. Please note that each asset type will return information related only to that asset. For example, Equity ETC assets details will be different from crypto coins details.

SecuritybearerAuth
Request
path Parameters
id
required
string <uuid>

Asset ID

query Parameters
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
Responses
200

Success Response

Response Schema: application/json
object (EquityETCDetails)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/asset-groups/equity_etc/assets/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get token details

The endpoint returns details on token assets. These details are visible in the user interface in the app. Please note that each asset type will return information related only to that asset. For example, token assets details will be different from crypto coins details.

SecuritybearerAuth
Request
path Parameters
id
required
string <uuid>

Asset ID

query Parameters
currency
string

Indicates the currency symbol used to fetch values in a particular monetary unit

Example: currency=USD
Responses
200

Success Response

Response Schema: application/json
object (TokenDetails)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/asset-groups/token/assets/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get asset tags mapping

The endpoint returns a list of all available asset tags grouped by types

SecuritybearerAuth
Responses
200

Asset tags mapping

Response Schema: application/json
Array of objects (TagsMapping)
401

Unauthorized

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/tags
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Get prices

Display Asset price with fees

SecuritybearerAuth
Request
query Parameters
asset_id
required
integer

Asset ID

Example: asset_id=1
fiat_id
required
integer

Fiat ID

Example: fiat_id=1
type
required
string

Type

Enum: "buy" "sell"
Example: type=buy
header Parameters
bp-user-id
required
string <uuid>

User ID

Responses
200

OK

Response Schema: application/json
object (GetPricesResponse)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/prices
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get prices V2

Display Asset price with fees

SecuritybearerAuth
Request
query Parameters
asset_id
required
string <uuid>

Asset ID

Example: asset_id=1e0f8b2c-4d3a-4b5e-8c7f-9a2b3c4d5e6f
fiat_id
required
string <uuid>

Fiat ID

Example: fiat_id=1e0f8b2c-4d3a-4b5e-8c7f-9a2b3c4d5e6h
type
required
string

Type

Enum: "buy" "sell"
Example: type=buy
header Parameters
bp-user-id
required
string <uuid>

User ID

Responses
200

OK

Response Schema: application/json
object (GetPricesResponse-v2)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/prices
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Asset ESG Data

Get asset ESG data

The endpoint returns ESG data for a specific asset.

SecuritybearerAuth
Request
path Parameters
id
required
integer

Asset ID

header Parameters
Accept-Language
string

ISO 639-1 2-letter code representing user's language

Example: en
Responses
200

Success Response

Response Schema: application/json
object (ESGData)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/assets/{id}/esg
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get asset ESG data V2

The endpoint returns ESG data for a specific asset.

SecuritybearerAuth
Request
path Parameters
id
required
string <uuid>

Asset ID

header Parameters
Accept-Language
string

ISO 639-1 2-letter code representing user's language

Example: en
Responses
200

Success Response

Response Schema: application/json
object (ESGData)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/assets/{id}/esg
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Exchange rate

Get the exchange rate for two assets

The endpoint returns the exchange rate from source to target asset.

SecuritybearerAuth
Request
path Parameters
sourceAssetId
required
string <uuid>

Source Asset ID

Example: 1d9e339b-7233-4aa6-ba16-8518bbf354e5
targetAssetId
required
string <uuid>

Target Asset ID

Example: 1d9e339b-7233-4aa6-ba16-8518bbf354e5
Responses
200

Success Response

Response Schema: application/json
exchange_rate
string

The exchange rate for the two provided assets

401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/exchange-rate/{sourceAssetId}/{targetAssetId}
Request samples
Response samples
application/json
{
  • "exchange_rate": "0.121234786512765"
}

Swap exchange rate

Get the swap exchange rate between two assets

The endpoint returns the swap exchange rate from source to target asset. One of source or target asset can be fiat.

SecuritybearerAuth
Request
path Parameters
sourceAssetId
required
string <uuid>

Source Asset ID

Example: 1d9e339b-7233-4aa6-ba16-8518bbf354e5
targetAssetId
required
string <uuid>

Target Asset ID

Example: 1d9e339b-7233-4aa6-ba16-8518bbf354e5
query Parameters
source_asset_amount
number <float>

A string parameter representing the source amount

Example: source_asset_amount=5
Responses
200

Success Response

Response Schema: application/json
exchange_rate
string

The swap exchange rate for the two provided assets

401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
get/v1/exchange/{sourceAssetId}/{targetAssetId}
Request samples
Response samples
application/json
{
  • "exchange_rate": "0.12345678"
}

Fiats

List all available fiats per partner

This endpoint retrieves a list of all fiat currencies available in the Partner's application, as initially configured.

SecuritybearerAuth
Responses
200

List fiats

Response Schema: application/json
Array of objects (FiatV2)
401

Unauthorized

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/fiats
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Trades

List all trades per user

The endpoint retrieves a list of buy and sell trades in finished status associated with a specified user ID.

SecuritybearerAuth
Request
query Parameters
types[]
string

Trade type

Enum: "buy" "sell"
Example: types[]=buy
page_size
integer

Number of elements to be displayed on a page

Example: page_size=10
page
integer

Display page number

Example: page=1
asset_id
integer

If asset_id is provided only the trades for that specific asset will be in the response

Example: asset_id=1
header Parameters
bp-user-id
required
string <uuid>

User ID

Responses
200

List user trades

Response Schema: application/json
Array of objects
object (PaginationMeta)
object (PaginationLinks)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Inactive account / blacklisted

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/trades
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Get trades history for user using asset and fiat uuid

The endpoint retrieves a list of buy and sell trades in finished status associated with a specified user ID.

SecuritybearerAuth
Request
query Parameters
types[]
string

Trade type

Enum: "buy" "sell"
Example: types[]=buy
page_size
integer

Number of elements to be displayed on a page

Example: page_size=10
page
integer

Display page number

Example: page=1
asset_id
string <uuid>

If asset_id is provided only the trades for that specific asset will be in the response

Example: asset_id=ea895436-edee-11eb-9bf0-06502b1fe55d
header Parameters
bp-user-id
required
string <uuid>

User ID

Responses
200

List user trades

Response Schema: application/json
Array of objects
object (PaginationMeta)
object (PaginationLinks)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Inactive account / blacklisted

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/trades
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Transaction timeline per user

This endpoint retrieves a chronological list of all transactions for a specific user. It provides detailed information on each transaction, including the date, time, amount, and type of transaction, allowing users to track their financial activity.

SecuritybearerAuth
Request
query Parameters
category
string

Filter by category

Enum: "trade" "corporate_action" "crypto_action" "non_user_initiated" "crypto_transfer"
Example: category=trade
size
integer [ 1 .. 50 ]
Default: 10

Number of elements to be displayed on a page

Example: size=10
cursor
string

Page cursor

Example: cursor=MjAyNC0wNC0yOFQxODowNTozM1o
asset_int
integer >= 1
Deprecated

If asset_int is provided only the transactions for that specific asset will be in the response

Example: asset_int=1
asset_id
string <uuid>

If asset_id is provided only the transactions for that specific asset will be in the response

Example: asset_id=ea895436-edee-11eb-9bf0-06502b1fe55d
header Parameters
bp-user-id
required
string

User ID

Responses
200

Success Response

Response Schema: application/json
Array of objects (TransactionTimelineItem)
object
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/transactions
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Search for trades

This endpoint allows you to search for finished trades by date range, trade ID, offer ID or user ID, individually or in combination, with the search period limited to a maximum of 31 days.

SecuritybearerAuth
Request
query Parameters
date_start
string

Start date for search in Y-m-d format

Example: date_start=2021-04-25
date_end
string

End date for search in Y-m-d format

Example: date_end=2021-06-25
status
string

The trade status

Enum: "all" "failed" "finished"
Example: status=all
internal_trade_id
string <uuid>

The unique trade identifier

Example: internal_trade_id=2e4c89ac-1290-426f-8de0-4c7b40b91d3a
external_transaction_id
string <uuid>

The unique external trade identifier

Example: external_transaction_id=77b5d766-e5da-4dd9-bd18-58a43c35b8ac
offer_id
string <uuid>

The unique offer_id identifier

Example: offer_id=abc5d766-e5da-4dd9-bd18-58a43c35b8ac
user_pid
string <uuid>

Unique User Identifier

Example: user_pid=abc2d123-a5db-4dd9-bd18-58a43c35b9ab
initiated_by
string

The initiator of the trade

Enum: "all" "user" "automated_order" "bitpanda_corporate_action" "bitpanda_manual_trade" "bitpanda_savings" "bitpanda_swaps"
Example: initiated_by=all
page_size
integer

Number of elements to be displayed on a page

Example: page_size=10
page
integer

Display page number

Example: page=1
Responses
200

List trades that match the search query parameters

Response Schema: application/json
Array of objects (TradeSearchV2)
object (PaginationMeta)
object (PaginationLinks)
401

Error

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/trades/search
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Lightweight Search for trades V2

This endpoint allows you to search for trades by date range, id, user_id, status, asset symbol, type, initiated_by individually or in combination.

SecuritybearerAuth
Request
query Parameters
start
string

Start date for search in UTC timezone

Example: start=2024-06-01T00:00:00Z
end
string

End date for search in UTC timezone

Example: end=2024-06-30T23:59:59Z
status
string

The trade status

Enum: "created" "failed" "in progress" "finished" "expired"
Example: status=failed
initiated_by
string

The initiator of the trade

Enum: "user" "bitpanda_corporate_action" "bitpanda_manual_trade" "bitpanda_savings" "bitpanda_swaps" "automated_order"
Example: initiated_by=user
asset_symbol
string

The asset symbol

Example: asset_symbol=BTC
type
string

The trade type

Enum: "buy" "sell"
Example: type=buy
id
string <uuid>

The unique trade identifier

Example: id=abc5d766-e5da-4dd9-bd18-58a43c35b8ac
user_id
string <uuid>

Unique User Identifier

Example: user_id=abc2d123-a5db-4dd9-bd18-58a43c35b9ab
external_transaction_id
string <uuid>

External Transaction ID

Example: external_transaction_id=abc5d766-e5da-4dd9-bd18-58a43c35b8ad
page_size
integer

Number of elements to be displayed on a page

Example: page_size=10
cursor
string <uuid>

Cursor for the next page

Example: cursor=abc5d766-e5da-4dd9-bd18-58a43c35b8ac
Responses
200

List trades that match the search query parameters

Response Schema: application/json
Array of objects (trades-search-lightweight)
object (NextPrevCursorPagination)
401

Error

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/trades/search
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Create a trade offer

This endpoint is responsible for initiating a buy/sell trade offer on behalf of the user.

The request triggers the creation of a trade offer that can later be accepted by the user within its validity (as defined in offer_validity & expires_at response parameters).
The offer includes details such as the asset to be traded, the fiat currency and the amount either in fiat currency or in units of the asset being traded. By accommodating both fiat and asset unit denominations, the user experience is enhanced, catering to a wide range of trading preferences and strategies.

The trade offer response outlines the details of the proposed trade, including: asset, amount, price, fees, preliminary tax calculations if applicable, and any warning messages relevant to the user.

SecuritybearerAuth
Request
header Parameters
bp-user-id
required
string <uuid>

User ID

Request Body schema: application/json

The offer to be created.

type
required
string

Offer Type

Enum: "buy" "sell"
fiat_id
required
integer

Fiat ID

asset_id
required
integer

Asset ID

amount
required
string

Transaction amount

amount_defined_for
required
string

Amount defined for

Enum: "fiat" "asset"
Responses
201

New offer has been created

Response Schema: application/json
object (Offer)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Error

Response Schema: application/json
Array of objects
409

Insufficient funds

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v1/offers
Request samples
application/json
{
  • "type": "sell",
  • "fiat_id": 1,
  • "asset_id": 1,
  • "amount": "10",
  • "amount_defined_for": "fiat"
}
Response samples
application/json
{
  • "data": {
    }
}

Create a trade offer V2

This endpoint is responsible for initiating a buy/sell trade offer on behalf of the user.

The request triggers the creation of a trade offer that can later be accepted by the user within its validity (as defined in offer_validity & expires_at response parameters).
The offer includes details such as the asset to be traded, the fiat currency and the amount either in fiat currency or in units of the asset being traded. By accommodating both fiat and asset unit denominations, the user experience is enhanced, catering to a wide range of trading preferences and strategies.

The trade offer response outlines the details of the proposed trade, including: asset, amount, price, fees, preliminary tax calculations if applicable, and any warning messages relevant to the user.

SecuritybearerAuth
Request
header Parameters
bp-user-id
required
string <uuid>

User ID

Request Body schema: application/json

The offer to be created.

type
required
string

Offer Type

Enum: "buy" "sell"
fiat_id
required
string <UUID>

Fiat UUID

asset_id
required
string <UUID>

Asset UUID

amount
required
string

Transaction amount

amount_defined_for
required
string

Amount defined for

Enum: "fiat" "asset"
Responses
201

New offer has been created

Response Schema: application/json
object (OfferUUID)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Error

Response Schema: application/json
Array of objects
409

Insufficient funds

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v2/offers
Request samples
application/json
{
  • "type": "sell",
  • "fiat_id": "2e4c89ac-1290-426f-8de0-4c7b40b91d3b",
  • "asset_id": "2e4c89ac-1290-426f-8de0-4c7b40b91d3c",
  • "amount": "10",
  • "amount_defined_for": "fiat"
}
Response samples
application/json
{
  • "data": {
    }
}

[Deprecated] Accept a trade offer

Upon presentation of a trade offer, this endpoint facilitates the user's acceptance of the offer, effectively signalling their agreement to proceed with the trade under the specified conditions. A user can only accept the newest offer created and it can be done within its validity.

When a user submits a request to accept a trade offer, the platform immediately begins to process this request to finalise the trade. However, there are instances when the processing cannot be completed within a short, predefined time frame (e.g. 10 seconds). In such cases, rather than leaving the user uncertain of the request's status, the API responds with a 202 Accepted status code. This response serves as an acknowledgment that the user's request has been successfully received and is in the queue for processing (in progress status), but it has not yet been finalised.

After receiving 202 Accepted, check the offer status using the Offer Status endpoint.

SecuritybearerAuth
Request
path Parameters
Offer-ID
required
string <uuid>

Offer ID

query Parameters
external_transaction_id
required
string

External transaction ID

header Parameters
bp-user-id
required
string <uuid>

User ID

Responses
200

Offer has been accepted

Response Schema: application/json
object
202

Accepted

401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
406

The external transaction already exists. / This offer exists and it has another external transaction id associated.

Response Schema: application/json
Array of objects
409

Offer already accepted / A newer offer was created

Response Schema: application/json
Array of objects
410

Offer expired / invalid offer id

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
patch/v1/offers/{Offer-ID}/accept
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Accept a trade offer V2

Upon presentation of a trade offer, this endpoint facilitates the user's acceptance of the offer, effectively signalling their agreement to proceed with the trade under the specified conditions. A user can only accept the newest offer created and it can be done within its validity (as defined in offer_validity & expires_at response parameters).

When a user submits a request to accept a trade offer, the platform immediately begins to process this request to finalise the trade. However, there are instances when the processing cannot be completed within a short, predefined time frame (e.g. 10 seconds). In such cases, rather than leaving the user uncertain of the request's status, the API responds with a 202 Accepted status code. This response serves as an acknowledgment that the user's request has been successfully received and is in the queue for processing (in progress status), but it has not yet been finalised.

After receiving 202 Accepted, there are two strategic options to proceed:

  • Retry sending the same request until you receive a 200 Offer has been accepted status response
  • Check the offer status using the Offer Status endpoint
SecuritybearerAuth
Request
path Parameters
Offer-ID
required
string <uuid>

Offer ID

query Parameters
external_transaction_id
required
string

External transaction ID

header Parameters
bp-user-id
required
string <uuid>

User ID

Responses
200

Offer has been accepted

Response Schema: application/json
object
202

Accepted

401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
406

The external transaction already exists. / This offer exists and it has another external transaction id associated.

Response Schema: application/json
Array of objects
409

Offer already accepted / A newer offer was created / Offer previously failed

Response Schema: application/json
Array of objects
410

Offer expired / invalid offer id

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
patch/v2/offers/{Offer-ID}/accept
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Accept a trade offer V3

Upon presentation of a trade offer, this endpoint facilitates the user's acceptance of the offer, effectively signalling their agreement to proceed with the trade under the specified conditions. A user can only accept the newest offer created and it can be done within its validity (as defined in offer_validity & expires_at response parameters).

When a user submits a request to accept a trade offer, the platform immediately begins to process this request to finalise the trade. However, there are instances when the processing cannot be completed within a short, predefined time frame (e.g. 10 seconds). In such cases, rather than leaving the user uncertain of the request's status, the API responds with a 202 Accepted status code. This response serves as an acknowledgment that the user's request has been successfully received and is in the queue for processing (in progress status), but it has not yet been finalised.

After receiving 202 Accepted, there are two strategic options to proceed:

  • Retry sending the same request until you receive a 200 Offer has been accepted status response
  • Check the offer status using the Offer Status endpoint
SecuritybearerAuth
Request
path Parameters
Offer-ID
required
string <uuid>

Offer ID

query Parameters
external_transaction_id
required
string

External transaction ID

header Parameters
bp-user-id
required
string <uuid>

User ID

Responses
200

Offer has been accepted

Response Schema: application/json
object
202

Accepted

401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
406

The external transaction already exists. / This offer exists and it has another external transaction id associated.

Response Schema: application/json
Array of objects
409

Offer already accepted / A newer offer was created / Offer previously failed

Response Schema: application/json
Array of objects
410

Offer expired / invalid offer id

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
patch/v3/offers/{Offer-ID}/accept
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Get a trade offer status

The endpoint retrieves the current status of a specific trade offer, providing information on whether it is created, in progress, finished, or failed, thereby enabling users to monitor and manage their trading activities effectively.

In case of failure, it provides additional details about the error to help users and partners understand and address the issue.

SecuritybearerAuth
Request
path Parameters
Offer-ID
required
string <uuid>

Offer ID

header Parameters
bp-user-id
required
string <uuid>

User ID

Responses
200

Offer has been accepted

Response Schema: application/json
object
401

Error

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

offer.not_found

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/offer-status/{Offer-ID}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

List all non-user initiated transactions per partner or per userDeprecated

This endpoint returns a list of non-user-initiated transactions, categorised as either incoming (from staking rewards and giveaways) or outgoing (from metal storage fees):

  • Metal storage fees are deducted weekly for users with metal assets
  • Staking rewards are credited based on staked amounts
  • Giveaways occur sporadically, typically during marketing campaigns.

Either a date range (date_start and date_end) or a user_id has to be provided to retrieve these transactions.

SecuritybearerAuth
Request
query Parameters
date_start
string <date>

Start date for search in Y-m-d format

Example: date_start=2020-10-10
date_end
string <date>

End date for search in Y-m-d format

Example: date_end=2020-10-10
types[]
string

Types of the non-user initiated transactions to be include in the result

Enum: "metal_storage_fee" "staking_reward" "giveaway" "tax_refund" "deduction"
Example: types[]=staking_reward
directions[]
string

Directions of the non-user initiated transactions to be include in the result

Enum: "incoming" "outgoing"
Example: directions[]=incoming
user_id
string <uuid>

Search by unique user identifier

Example: user_id=2e4c89ac-1290-426f-8de0-4c7b40b91d3a
page_size
integer [ 1 .. 100 ]

Number of elements to be displayed on a page

Example: page_size=10
page
integer >= 1

Display page number

Example: page=1
Responses
200

Non-user initiated transactions collection.

Response Schema: application/json
Array of objects (NonUserInitiatedTransactions)
object (PaginationMeta)
object (PaginationLinks)
401

Unauthorized

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/non-user-initiated-transactions
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

List all non-user initiated transactions per partner or per user V2

This endpoint returns a list of non-user-initiated transactions, categorised as either incoming (from staking rewards and giveaways) or outgoing (from metal storage fees):

  • Metal storage fees are deducted weekly for users with metal assets
  • Staking rewards are credited based on staked amounts
  • Giveaways occur sporadically, typically during marketing campaigns.

Either a date range (date_start and date_end) or a user_id has to be provided to retrieve these transactions.

SecuritybearerAuth
Request
query Parameters
date_start
string <date>

Start date for search in Y-m-d format

Example: date_start=2020-10-10
date_end
string <date>

End date for search in Y-m-d format

Example: date_end=2020-10-10
types[]
string

Types of the non-user initiated transactions to be include in the result

Enum: "metal_storage_fee" "staking_reward" "giveaway" "tax_refund" "deduction"
Example: types[]=staking_reward
directions[]
string

Directions of the non-user initiated transactions to be include in the result

Enum: "incoming" "outgoing"
Example: directions[]=incoming
user_id
string <uuid>

Search by unique user identifier

Example: user_id=2e4c89ac-1290-426f-8de0-4c7b40b91d3a
page_size
integer [ 1 .. 100 ]

Number of elements to be displayed on a page

Example: page_size=10
page
integer >= 1

Display page number

Example: page=1
Responses
200

Non-user initiated transactions collection.

Response Schema: application/json
Array of objects (NonUserInitiatedTransactionsV2)
object (PaginationMeta)
object (PaginationLinks)
401

Unauthorized

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/non-user-initiated-transactions
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

TradeDetails

Get trade details

The endpoint returns the trades’s details based on their user ID.

SecuritybearerAuth
Request
path Parameters
Trade-ID
required
string <uuid>

Trade ID

Responses
200

Get trade details

Response Schema: application/json
object (TradeDetails)
401

Error

Response Schema: application/json
Array of objects
404

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/trades/details/{Trade-ID}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Corporate Actions

List all corporate actions per partner or per user

This endpoint returns a list of corporate actions specific for stock assets for a partner within a specified date range, from start_date to end_date, limited to a maximum period of 31 days, with an option to filter results by user.

SecuritybearerAuth
Request
query Parameters
date_start
required
string/([\d]{4})-(?:[\d]{2})-([\d]{2})(\s[\d]{2}:[\...

Corporate Actions start date.

Example: date_start=2021-01-31 17:30
date_end
required
string/([\d]{4})-(?:[\d]{2})-([\d]{2})(\s[\d]{2}:[\...

Corporate Actions end date. It needs to be after start_date and the period should be less than 1 month

Example: date_end=2021-01-31 17:30
actions[]
Array of strings

Corporate Action

Items Enum: "delisting" "dividend" "merger_cash" "merger_stock" "reverse_stock_split" "stock_split" "spin_off"
Example: actions[]=dividend
type
string

Filter Actions by Type

Enum: "payout" "subtract" "both"
Example: type=payout
page_size
integer >= 1

Number of elements to be displayed on a page

Example: page_size=10
page
integer >= 1

Display page number

Example: page=1
user_id
string <uuid>

Filter corporate actions for a specific User ID

Example: user_id=2e4c89ac-1290-426f-8de0-4c7b40b91d3a
ca_id
string <uuid>

Corporate Action ID

Example: ca_id=1e3d89ac-1234-426f-8de0-4a6b40b91d33
Responses
200

List user corporate actions

Response Schema: application/json
Array of objects (CorporateActions)
object
object
401

Unauthorized

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/trades/corporate-actions/search
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Operational Transactions

Corporate action details

Retrieve details for corporate actions based on the provided ID

SecuritybearerAuth
Request
path Parameters
id
required
string <uuid>

Unique identifier for corporate action allocated to the user

header Parameters
bp-user-id
required
string <uuid>

User ID

Responses
200

Get corporate action details

Response Schema: application/json
object
401

Unauthorized

Response Schema: application/json
Array of objects
404

Transaction not found

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
get/v1/corporate-actions/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Non-user initiated transaction details

Retrieve details for non-user initiated transactions based on the provided ID

SecuritybearerAuth
Request
path Parameters
id
required
string <uuid>

Unique identifier for the NUIT allocated to the user

header Parameters
bp-user-id
required
string <uuid>

User ID

Responses
200

Get non user initiated transaction details

Response Schema: application/json
object
401

Unauthorized

Response Schema: application/json
Array of objects
404

Transaction not found

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
get/v1/non-user-initiated-transactions/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Crypto action detailsDeprecated

Retrieve details for crypto actions based on the provided ID.

SecuritybearerAuth
Request
path Parameters
id
required
string <uuid>

Unique identifier for crypto action allocated to the user

header Parameters
bp-user-id
required
string <uuid>

User ID

Responses
200

Get crypto action details

Response Schema: application/json
object
401

Unauthorized

Response Schema: application/json
Array of objects
404

Transaction not found

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
get/v1/crypto-actions/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Operational Transactions V2

Crypto action details V2

Retrieve details for crypto actions based on the provided ID.

SecuritybearerAuth
Request
path Parameters
id
required
string <uuid>

Unique identifier for crypto action allocated to the user

header Parameters
bp-user-id
required
string <uuid>

User ID

Responses
200

Get crypto action details

Response Schema: application/json
object
401

Unauthorized

Response Schema: application/json
Array of objects
404

Transaction not found

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
get/v2/crypto-actions/{id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Portfolio

Returns the list of owned assets

The endpoint returns the fiat equivalent of user's assets. For example, as a user I have 2.5 ETH, so the endpoint will return how much is my ETH asset worth (e.g. fiat_balance 1000.34). Depending on the passed fiat_id, the amount will be returned in the corresponding currency. Asset balance for a given asset is the sum of its available balance and staked balance.

SecuritybearerAuth
Request
path Parameters
fiatId
required
integer <int32>
header Parameters
bp-user-id
required
string <uuid>
Responses
200

Portfolio details

Response Schema: application/json
Array of objects (Overview)
400

Error

Response Schema: application/json
Array of objects
401

Invalid user

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/portfolio/overview/fiats/{fiatId}
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Returns the list of owned asset groups

The endpoint returns the fiat equivalent of user's asset groups.

SecuritybearerAuth
Request
path Parameters
fiatId
required
integer <int32>
header Parameters
bp-user-id
required
string <uuid>
Responses
200

Portfolio asset group list

Response Schema: application/json
Array of objects (GroupOverview)
400

Error

Response Schema: application/json
Array of objects
401

Invalid user

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/portfolio/groups/overview/fiats/{fiatId}
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Portfolio performance based on timeframe

The endpoint returns how user’s portfolio has changed in the selected time period (daily/weekly/monthly/yearly).

SecuritybearerAuth
Request
path Parameters
fiatId
required
integer <int32>
period
required
string

Specifies the performance window. Example: period=max (up to 5 years of data—2-day intervals for ≤ 1 year, then weekly intervals anchored to Sunday 00:00 UTC; all points at 00:00 UTC)

Enum: "day" "week" "month" "6m" "year" "max"
header Parameters
bp-user-id
required
string <uuid>
Responses
200

Portfolio performance

Response Schema: application/json
object (Performance)
400

Error

Response Schema: application/json
Array of objects
401

Invalid user

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/portfolio/performance/fiats/{fiatId}/timeframe/{period}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Returns the enhanced portfolio detail of an asset

The endpoint returns the enhanced details of a portfolio asset. If user has staked assets, then the information will be added here.

SecuritybearerAuth
Request
path Parameters
assetId
required
integer <int32>
fiatId
required
integer <int32>
header Parameters
bp-user-id
required
string <uuid>
Responses
200

Asset details (enhanced)

Response Schema: application/json
object (AssetDetailsEnhancedWithStaking)
400

Error

Response Schema: application/json
Array of objects
401

Invalid user

Response Schema: application/json
Array of objects
404

Error

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/portfolio/assets/{assetId}/fiats/{fiatId}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Returns the list of owned assets

The endpoint returns the fiat equivalent of user's assets. For example, as a user I have 2.5 ETH, so the endpoint will return how much is my ETH asset worth (e.g. fiat_balance 1000.34). Depending on the passed fiat_id, the amount will be returned in the corresponding currency. Asset balance for a given asset is the sum of its available balance and staked balance.

SecuritybearerAuth
Request
path Parameters
fiatId
required
string <uuid>
header Parameters
bp-user-id
required
string <uuid>
Responses
200

Portfolio details

Response Schema: application/json
Array of objects (OverviewV2)
400

Error

Response Schema: application/json
Array of objects
401

Invalid user

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/portfolio/overview/fiats/{fiatId}
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Returns the list of owned asset groups

The endpoint returns the fiat equivalent of user's asset groups.

SecuritybearerAuth
Request
path Parameters
fiatId
required
string <uuid>
header Parameters
bp-user-id
required
string <uuid>
Responses
200

Portfolio asset group list

Response Schema: application/json
Array of objects (GroupOverview)
400

Error

Response Schema: application/json
Array of objects
401

Invalid user

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/portfolio/groups/overview/fiats/{fiatId}
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Portfolio performance based on timeframe

The endpoint returns how user’s portfolio has changed in the selected time period (daily/weekly/monthly/yearly).

SecuritybearerAuth
Request
path Parameters
fiatId
required
string <uuid>
period
required
string

Specifies the performance window. Example: period=max (up to 5 years of data—2-day intervals for ≤ 1 year, then weekly intervals anchored to Sunday 00:00 UTC; all points at 00:00 UTC)

Enum: "day" "week" "month" "6m" "year" "max"
header Parameters
bp-user-id
required
string <uuid>
Responses
200

Portfolio performance

Response Schema: application/json
object (Performance)
400

Error

Response Schema: application/json
Array of objects
401

Invalid user

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/portfolio/performance/fiats/{fiatId}/timeframe/{period}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Returns the enhanced portfolio detail of an asset

The endpoint returns the enhanced details of a portfolio asset. If user has staked assets, then the information will be added here.

SecuritybearerAuth
Request
path Parameters
assetId
required
string <uuid>
fiatId
required
string <uuid>
header Parameters
bp-user-id
required
string <uuid>
Responses
200

Asset details (enhanced)

Response Schema: application/json
object (AssetDetailsEnhancedWithStakingV2)
400

Error

Response Schema: application/json
Array of objects
401

Invalid user

Response Schema: application/json
Array of objects
404

Error

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/portfolio/assets/{assetId}/fiats/{fiatId}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Settlement

List all available fiats per partner

This endpoint retrieves a list of all fiat currencies available in the Partner's application, as initially configured. Additionally, it provides the current fiat balance based on user transactions and settlement activities.

SecuritybearerAuth
Request
query Parameters
page_size
integer >= 1

Number of elements to be displayed on a page

Example: page_size=10
page
integer >= 1

Display page number

Example: page=1
Responses
200

List fiats

Response Schema: application/json
Array of objects (Fiat)
object (PaginationMeta)
object (PaginationLinks)
401

Unauthorized

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/fiats
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Create a settlement deposit

Availability of this endpoint may vary based on the settlement process agreed upon between Bitpanda and its partners.

This endpoint is designed for partners to notify us before making a bank deposit, essentially a promise for payment. Upon receiving the notification, Bitpanda will create a pending deposit. Once the receipt of the deposit is confirmed, it will be updated to finished state.

SecuritybearerAuth
Request
Request Body schema: application/json

Transaction details

fiat_symbol
required
string
reference
required
string

The unique 10-digit code that is used to make payments between the Partner and Bitpanda

amount
required
string

Deposit amount containing max 24 digits for the integer part and 8 digits for the fractional part

sepa_type
string
Enum: "instant" "classic"
Responses
201

New transaction has been created

Response Schema: application/json
object
401

Unauthorized

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v1/deposit
Request samples
application/json
{
  • "fiat_symbol": "EUR",
  • "reference": "1638305327-test-deposit",
  • "amount": "123.45",
  • "sepa_type": "classic"
}
Response samples
application/json
{
  • "data": {
    }
}

Update the fiat stock

Availability of this endpoint may vary based on the settlement process agreed upon between Bitpanda and its partners.

This is only applicable for the settlement type where fiat money is transferred between users’ and Bitpanda’s bank accounts every time users trade. The partner will use this endpoint to notify Bitpanda about any new bank transfer of fiat money related to a transaction.

SecuritybearerAuth
Request
Request Body schema: application/json

Request details

reference
required
string <uuid>

The reference that is used to make the payment. Reference shall have the same value as the id of a successful trade or the same value as the id of a tax refund in order to be reflected in the settlement

transaction_id
string <uuid>

Bitpanda offer_id (trade_id), to which the bank transfer relates

amount
required
string
currency
required
string
balance_after
string

The account balance immediately following a transaction. It reflects the total available funds after the transaction has been processed.

status
required
string
Value: "finished"
direction
required
string

For Buy trades the expected direction is Debit. The amount in the Partner's corporate wallet will be increased with the amount in the settlement transaction. For Sell trades, the expected direction is Credit. The amount in the Partner's corporate wallet will be decreased with the amount in the settlement transaction.

Enum: "debit" "credit" "refund"
timestamp
string
Responses
200

New transaction has been created

Response Schema: application/json
object
401

Unauthorized

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v1/fiat-stock
Request samples
application/json
{
  • "reference": "ca9d287e-6e2f-4ac5-9e8f-eedfa5aa2db5",
  • "transaction_id": "a5caa443-831b-4b07-8db6-cb4577aca298",
  • "amount": "123.45",
  • "currency": "EUR",
  • "balance_after": "22.46",
  • "status": "finished",
  • "direction": "debit",
  • "timestamp": "2022-03-07T11:08:06+01:00"
}
Response samples
application/json
{
  • "data": {
    }
}

List all settlement transactions per partner

The endpoint returns a list of all settlement transactions for a partner over a specified date range, from date_start to date_end, with the search period limited to a maximum of 31 days.

SecuritybearerAuth
Request
query Parameters
date_start
required
string

Start date for search in Y-m-d or Y-m-d H:i:s formats

Examples:
date_start=2021-04-25
date_start=2021-04-25 13:45:00
date_end
required
string

End date for search in Y-m-d or Y-m-d H:i:s formats

Examples:
date_end=2021-06-25
date_end=2021-06-25 13:45:00
page_size
integer [ 1 .. 100 ]
Default: 10

Number of elements to be displayed on a page

Example: page_size=10
page
integer >= 1
Default: 1

Display page number

Example: page=1
order
string
Default: "desc"

Order by creation date

Enum: "asc" "desc"
Example: order=asc
type
string

Type

Enum: "deposit" "withdrawal"
Example: type=deposit
payment_reference
string

Payment reference

Responses
200

List settlement transactions that match the search query parameters

Response Schema: application/json
Array of objects (TransactionSearch)
object (PaginationMeta)
object (PaginationLinks)
401

Unauthorized

Response Schema: application/json
Array of objects
422

Validation Errors

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/trades/transactions
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Reports

Get all available report types per user

Retrieve a list of all report types available for the user, currently available tax reports and account statements.

SecuritybearerAuth
Request
header Parameters
bp-user-id
required
string <uuid>

User ID

Responses
200

Get all available report types per user

Response Schema: application/json
data
Array of strings

List of available report types for the user

400

Bad request

Response Schema: application/json
Array of objects
401

Error

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/reports/user-reports/types
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Get all generated reports per user

Retrieve all generated reports (tax reports, account statements) for a user.

SecuritybearerAuth
Request
query Parameters
type
string

Type of report (e.g. crypto-tax)

Example: type=crypto-tax
before
string

Cursor value to start paginating from

Example: before=MjAyNC0xMC0yMlQyMjozODoxN1o=
after
string

Cursor value to start paginating after

Example: after=MjAyNC0xMC0yMlQyMjozODoxN1o=
page_size
integer

Number of reports to display per page

Example: page_size=10
header Parameters
bp-user-id
required
string <uuid>

User ID

Responses
200

List of generated reports for the user

Response Schema: application/json
start_cursor
string or null

Cursor pointing to the start of the page

end_cursor
string or null

Cursor pointing to the end of the page

has_next_page
boolean

Indicates if there is a next page

has_previous_page
boolean

Indicates if there is a previous page

page_size
integer

Number of items per page

Array of objects
400

Bad request

Response Schema: application/json
Array of objects
401

Error

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal server error

Response Schema: application/json
Array of objects
503

Service unavailable

Response Schema: application/json
Array of objects
get/v1/reports/user-reports
Request samples
Response samples
application/json
{
  • "start_cursor": "MjAyNC0xMC0yMlQyMjozODoxN1o=",
  • "end_cursor": "MjAyNC0xMC0yMlQyMjozODoxN1o=",
  • "has_next_page": true,
  • "has_previous_page": false,
  • "page_size": 5,
  • "items": [
    ]
}

Create Account Statement Report

Generates a detailed Account Statement Report for a specified date range.

The report includes account transactions, balances, and related financial activity within the requested period. This endpoint can be used for auditing, reconciliation, or personal record-keeping purposes.

Once the report is generated, the response will include a temporary download link and its expiry timestamp.
The link remains valid only until the expiry time — after which a new report request must be submitted to obtain a fresh link.

Usage notes:

  • The from and to fields define the reporting period; the to date must not precede the from date.
SecuritybearerAuth
Request
header Parameters
bp-user-id
required
string <uuid>

User ID

Request Body schema: application/json

The Create report request body.

from
required
string <date>

Start date of the reporting period in YYYY-MM-DD format. Must be earlier than or equal to the to date.

to
required
string <date>

End date of the reporting period in YYYY-MM-DD format. Must be later than or equal to the from date.

Responses
200

Details of the specific report including a download link

Response Schema: application/json
object
202

Report creation in progress

Response Schema: application/json
object
400

Bad request

Response Schema: application/json
Array of objects
401

Error

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal server error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v1/reports/user-reports
Request samples
application/json
{
  • "from": "2025-01-01",
  • "to": "2025-12-31"
}
Response samples
application/json
{
  • "data": {
    }
}

Download a specific report

Download a specific report, including tax reports, or account statements. Note: The download link returned by this endpoint is only effective for a limited time. The response includes an expiry timestamp, and the report must be downloaded before this timestamp expires. After the expiry, a new request may be required to generate a fresh download link.

SecuritybearerAuth
Request
path Parameters
reportId
required
string <uuid>

Unique identifier of the report to be downloaded

Example: 7e45651c-fba7-459f-a55b-9bccef67e570
header Parameters
bp-user-id
required
string <uuid>

User ID

Responses
200

Details of the specific report including a download link

Response Schema: application/json
object
400

Bad request

Response Schema: application/json
Array of objects
401

Error

Response Schema: application/json
Array of objects
404

Report Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal server error

Response Schema: application/json
Array of objects
get/v1/reports/user-reports/{reportId}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Files

Upload a file

Use this endpoint to upload user related files. When a file is uploaded, an id will be returned, which shall be used as a reference to a file in other user related endpoints, e.g. when creating or updating user or sending additional verification files. A validation, based on the file purpose and the MIME type is performed. The filename must be minimum 3 characters long and maximum 255 characters long. The filename cannot start with "." (dot). The file should have a minimum of 15 bytes, and a maximum of 200 megabytes.

proof_of_address should be use to upload files used as evidence of the permanent residential address of a natural person, such as:

  • Electricity or Water Bill
  • Other Authority Bill
  • Landline Bill
  • Lease Agreement
  • Bank or Credit Card Statement
  • Empower Bill Statement
  • Bank Reference Letter or Educational Institutions Reference Letters
  • Mortgage Agreement

The following combinations are permitted:

  • verification_report (application/pdf, application/json)
  • idcard_both_sides (image/bmp, image/x-ms-bmp, image/x-bmp, image/jpeg, image/png, image/heic, image/heif, application/pdf)
  • idcard_front (image/bmp, image/x-ms-bmp, image/x-bmp, image/jpeg, image/png, image/heic, image/heif, application/pdf)
  • idcard_back (image/bmp, image/x-ms-bmp, image/x-bmp, image/jpeg, image/png, image/heic, image/heif, application/pdf)
  • paper_id (image/bmp, image/x-ms-bmp, image/x-bmp, image/jpeg, image/png, image/heic, image/heif, application/pdf)
  • passport (image/bmp, image/x-ms-bmp, image/x-bmp, image/jpeg, image/png, image/heic, image/heif, application/pdf)
  • driving_licence (image/bmp, image/x-ms-bmp, image/x-bmp, image/jpeg, image/png, image/heic, image/heif, application/pdf)
  • residence_permit (image/bmp, image/x-ms-bmp, image/x-bmp, image/jpeg, image/png, image/heic, image/heif, application/pdf)
  • selfie_video (video/*)
  • proof_of_address (image/bmp, image/x-ms-bmp, image/x-bmp, image/jpeg, image/png, image/heic, image/heif, application/pdf)
  • other (application/pdf , image/bmp, image/x-ms-bmp, image/x-bmp, image/jpeg, image/png, image/heic, image/heif* , video/*)
SecuritybearerAuth
Request
Request Body schema: multipart/form-data

The file to be uploaded.

purpose
string

The purpose of the file

Enum: "driving_licence" "idcard_back" "idcard_both_sides" "idcard_front" "other" "paper_id" "passport" "residence_permit" "selfie_video" "verification_report" "proof_of_address"
file
string <binary>

The file content

Responses
201

New file has been uploaded

Response Schema: application/json
Array of objects (FileInformation)
401

Error

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v1/files
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Get file contents

This endpoint fetches the contents of a file (download). Not that user files containing PII data cannot be downloaded, in this case 403 Forbidden will be returned.

SecuritybearerAuth
Request
path Parameters
File-ID
required
string <uuid>
Responses
200

Returns the contents of the file (download)

Response Schema: application/octet-stream
string <binary>
401

Error

Response Schema: application/json
Array of objects
403

Error

Response Schema: application/json
Array of objects
404

File Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/files/{File-ID}/contents
Request samples
Response samples
application/json
{
  • "errors": [
    ]
}

Get file information

This endpoint fetches information regarding a specific file

SecuritybearerAuth
Request
path Parameters
File-ID
required
string <uuid>
Responses
200

File information

Response Schema: application/json
Array of objects (FileInformation)
401

Error

Response Schema: application/json
Array of objects
404

File Not Found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/files/{File-ID}
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Staking

Get staking overview

This endpoint provides an overview of total staked amounts and rewards for a given user, aggregated both:

  • By asset (in asset units and converted fiat value).
  • As a total sum across all assets in the requested fiat currency.

It supports date-range filtering and asset filtering, allowing partners to query historical or specific subsets of staked amounts and rewards.

Keep in mind that since the staked amount is a point-in-time value, it reflects the amount staked as of the end date (or the most recent data if no end date is provided).

SecuritybearerAuth
Request
path Parameters
fiatSymbol
required
string = 3 characters
Example: EUR
query Parameters
start_date
string <date>

Optional filter: start date (inclusive) in YYYY-MM-DD. Ignored for point-in-time staking amounts.

If omitted, rewards are calculated from the beginning of available history.

Example: start_date=2025-01-01
end_date
string <date>

Optional filter: end date (inclusive) in YYYY-MM-DD.

If omitted, staking amounts and rewards are calculated up to the most recent available data.

Example: end_date=2025-01-31
asset_ids[]
Array of strings <uuid>

Optional filter: one or more asset IDs.

If provided, only totals and rewards for these assets are returned. If omitted, staking amounts and rewards for all assets are included. Non-existent asset IDs are ignored; invalid UUIDs will cause a validation error.

Example: asset_ids[]=32b6f7de-1a71-4b8c-9d8a-1234567890ab&asset_ids[]=9f8d7c3e-2b33-41d2-bc99-abcdef123456
header Parameters
bp-user-id
required
string <uuid>
Responses
200

Success Response

Response Schema: application/json
Array of objects

List of aggregated staking amounts and rewards per asset.

object
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
405

Not Allowed

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/staking/overview/fiats/{fiatSymbol}
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Get bonded overview

This endpoint provides an overview of bonded (locked) assets following an unstake action for assets that have a defined bonding period.

It returns aggregated data both:

  • Per asset — including the bonded amount (in asset units) and its corresponding fiat value.
  • Across all assets — showing the total bonded value in the requested fiat currency.

The endpoint also supports asset filtering, allowing partners to query specific subsets of bonded assets after unstaking.

SecuritybearerAuth
Request
path Parameters
fiatSymbol
required
string = 3 characters

Fiat currency symbol in ISO 4217 (3-letter) format.

Example: EUR
query Parameters
asset_ids[]
Array of strings <uuid>

Optional filter: one or more asset IDs.
If provided, only bonded amounts for these assets are returned.
If omitted, bonded amounts for all assets are included.
Non-existent PIDs are ignored but invalid UUIDs will cause a validation error.

Example: asset_ids[]=32b6f7de-1a71-4b8c-9d8a-1234567890ab&asset_ids[]=9f8d7c3e-2b33-41d2-bc99-abcdef123456
header Parameters
bp-user-id
required
string <uuid>

The unique identifier of the user whose bonded staking overview is being requested.

Responses
200

Success Response

Response Schema: application/json
Array of objects

List of bonded (locked) assets grouped by asset after unstake.

object
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
405

Not Allowed

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/staking/overview/bonded/fiats/{fiatSymbol}
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Stake a crypto assetDeprecated

The endpoint enables users to lock a specified amount of cryptocurrency into a staking process in which participants in a network earn rewards by locking their coins into cryptocurrency wallets to validate network transactions or to supply liquidity to others. This endpoint accepts parameters such as the asset and the amount of crypto asset to stake and returns confirmation of the staking transaction along with details like the next expected reward date.

SecuritybearerAuth
Request
header Parameters
bp-user-id
required
string <uuid>
idempotency-key
required
string <= 128 characters

A unique identifier for the stake request. The asset is only staked once regardless of how many requests are made for the same user and with the same idempotency key.

Example: lorem ipsum
Request Body schema: application/json

The unstake action details.

asset_id
required
integer

Asset Id

amount
required
string <double>

The amount to be staked.

Responses
200

Success Response (Subsequent Idempotent Request).

Response Schema: application/json
object (StakeResponse)
201

Success Response (Created)

Response Schema: application/json
object (StakeResponse)
202

The staking operation has been initiated and is pending.

Response Schema: application/json
object (PendingStakeActionResponse)
400

Bad Request

Response Schema: application/json
Array of objects
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
405

Not Allowed

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v1/staking/stake
Request samples
application/json
{
  • "asset_id": 1,
  • "amount": "1.99"
}
Response samples
application/json
{
  • "data": {
    }
}

Unstake a crypto assetDeprecated

The endpoint allows users to retrieve their previously staked cryptocurrency from the network, specifying parameters such as the staking identifier, the asset and the amount to unstake, and returns details of the unstaking transaction.

SecuritybearerAuth
Request
header Parameters
bp-user-id
required
string <uuid>
idempotency-key
required
string <= 128 characters

A unique identifier for the stake request. The asset is only staked once regardless of how many requests are made for the same user and with the same idempotency key.

Example: lorem ipsum
Request Body schema: application/json

The unstake action details.

asset_id
required
integer

Asset Id

amount
required
string <double>

The amount to be unstaked.

Responses
200

Success Response (Subsequent Idempotent Request).

Response Schema: application/json
object (UnstakeResponse)
201

Success Response (Created)

Response Schema: application/json
object (UnstakeResponse)
202

The staking operation has been initiated and is pending.

Response Schema: application/json
object (PendingStakeActionResponse)
400

Bad Request

Response Schema: application/json
Array of objects
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v1/staking/unstake
Request samples
application/json
{
  • "asset_id": 1,
  • "amount": "1.99"
}
Response samples
application/json
{
  • "data": {
    }
}

List all staking actions per userDeprecated

This endpoint retrieves a comprehensive list of all staking actions for a specific user.

SecuritybearerAuth
Request
query Parameters
date_start
string <date>

Start date for search in Y-m-d format

Example: date_start=2022-12-01
date_end
string <date>

End date for search in Y-m-d format

Example: date_end=2022-12-31
type[]
Array of strings

Search for one or more staking actions types

Items Enum: "stake" "unstake" "reward"
Example: type[]=stake&type[]=unstake
page_size
integer

Number of elements to be displayed on a page

Example: page_size=10
page
integer

Display page number

Example: page=1
header Parameters
bp-user-id
required
string <uuid>
Responses
200

Success Response

Response Schema: application/json
Array of objects (SearchResponse)
object (PaginationMeta)
object (PaginationLinks)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
405

Not Allowed

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/staking/search
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

List all staking actions per user V2

This endpoint retrieves a comprehensive list of all staking actions for a specific user.

SecuritybearerAuth
Request
query Parameters
id
string <uuid>

Filters results by a specific staking action ID, allowing retrieval of a particular action.

Example: id=e69f4b1c-e3d7-4e5f-8561-4a6c09441097
asset_id
string <uuid>

Filters staking actions by a specific asset id, such as BTC or ETH, identified by the asset’s UUID.

Example: asset_id=1ed83487-f684-62a2-a155-fe633f0db292
asset_int
integer >= 1
Deprecated

Filters staking actions by a specific asset id (integer value), such as BTC or ETH, identified by the asset’s UUID.

Example: asset_int=1
type[]
Array of strings

Search for one or more action types.

Items Enum: "stake" "unstake" "reward"
Example: type[]=stake&type[]=unstake&type[]=reward
size
integer

Number of elements to be displayed on a page.

Example: size=25
direction
string

Specifies the direction of the results, based on the transaction ID as cursor. Use before to get results before a specific ID or after to get results after a specific ID. This provides flexibility in how results are displayed relative to the cursor.

Enum: "before" "after"
cursor
string <uuid>

A cursor for use in pagination. The cursor represents a staking action ID that defines your place in the list.

Example: cursor=1ed804ad-41e9-6fc2-bf32-1e7e399643fb
header Parameters
bp-user-id
required
string <uuid>
Responses
200

Success Response

Response Schema: application/json
Array of objects (SearchV2Response)
object (PaginationMetaV2)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
405

Not Allowed

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/staking/search
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Stake a crypto asset V2

The endpoint enables users to lock a specified amount of cryptocurrency into a staking process in which participants in a network earn rewards by locking their coins into cryptocurrency wallets to validate network transactions or to supply liquidity to others. This endpoint accepts parameters such as the asset and the amount of crypto asset to stake and returns confirmation of the staking transaction along with details like the next expected reward date.

SecuritybearerAuth
Request
header Parameters
bp-user-id
required
string <uuid>
idempotency-key
required
string <= 128 characters

A unique identifier for the stake request. The asset is only staked once regardless of how many requests are made for the same user and with the same idempotency key.

Example: lorem-ipsum
Request Body schema: application/json

The unstake action details.

asset_id
required
string <uuid>

Asset ID

amount
required
string <double>

The amount to be staked.

Responses
200

Success Response (Subsequent Idempotent Request).

Response Schema: application/json
object (StakeV2Response)
201

Success Response (Created)

Response Schema: application/json
object (StakeV2Response)
202

The staking operation has been initiated and is pending.

Response Schema: application/json
object (PendingStakeActionResponse)
400

Bad Request

Response Schema: application/json
Array of objects
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
405

Not Allowed

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v2/staking/stake
Request samples
application/json
{
  • "asset_id": "b86c113a-efe3-11eb-b56f-0691764446a7",
  • "amount": "1.99"
}
Response samples
application/json
{
  • "data": {
    }
}

Unstake a crypto asset V2

The endpoint allows users to retrieve their previously staked cryptocurrency from the network, specifying parameters such as the staking identifier, the asset and the amount to unstake, and returns details of the unstaking transaction.

SecuritybearerAuth
Request
header Parameters
bp-user-id
required
string <uuid>
idempotency-key
required
string <= 128 characters

A unique identifier for the stake request. The asset is only staked once regardless of how many requests are made for the same user and with the same idempotency key.

Example: lorem-ipsum
Request Body schema: application/json

The unstake action details.

asset_id
required
string <uuid>

Asset ID

amount
required
string <double>

The amount to be unstaked.

Responses
200

Success Response (Subsequent Idempotent Request).

Response Schema: application/json
object (UnstakeV2Response)
201

Success Response (Created)

Response Schema: application/json
object (UnstakeV2Response)
202

The staking operation has been initiated and is pending.

Response Schema: application/json
object (PendingStakeActionResponse)
400

Bad Request

Response Schema: application/json
Array of objects
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v2/staking/unstake
Request samples
application/json
{
  • "asset_id": "b86c113a-efe3-11eb-b56f-0691764446a7",
  • "amount": "1.99"
}
Response samples
application/json
{
  • "data": {
    }
}

Get a staking action statusDeprecated

Use this endpoint to verify the status of a previously created staking transaction and see if it is pending, successful or failed.

SecuritybearerAuth
Request
path Parameters
id
required
string <uuid>

Staking Action ID

Example: 1ed76f61-37e9-6ef0-b0c1-529adbc40ff6
header Parameters
bp-user-id
required
string <uuid>
Responses
200

Success Response

Response Schema: application/json
Array of objects (GetStatusResponse)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
405

Not Allowed

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/staking/{id}/status
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Events

List all notification events per partner

This endpoint allows partners to consume notification events without exposing their endpoints to external access. This pattern provides a more granular control over the error handling and retries for a better management of failed notifications.

Notification events endpoint operates synchronously, meaning latency and performance impact especially for the high-volume or time-sensitive notifications, thus we strongly recommend using webhooks as it is less resource-intensive.

Payload examples for available types:

  • user.update

    {"action":"verification","success":true,"timestamp":1671529439,"user_id":"1ed804ad-349c-61f8-a53d-826724196664"}
    

    For more details regarding the payload, please have a look at the request parameters for the corresponding webhook

  • user.corporate-action

    {"id":"1ed9020e-35f5-62ac-b802-369ecc33bc49","time":"2023-01-09T14:26:33+01:00","type":"dividend","ca_id":"1ed901d6-4c21-6676-86e7-e6645454d14d","fiat_id":1,"asset_id":397,"fiat_symbol":"EUR","asset_amount":"0.18876873","asset_symbol":"BAYN","user_id":"1ed7aabf-3bfb-6bb2-8821-8626d6ed9c94"}
    

    For more details regarding the payload, please have a look at the request parameters for the corresponding webhook

  • user.non-user-initiated-tx

    {"id":"1ed91009-a537-6fd0-a7bb-2eba2834ba6e","user_id":"1ed8b508-67a6-6722-99f3-f2ef672bfa54","asset_id":5,"asset_amount":"0.05465497","type":"staking_reward","direction":"incoming","created_at":"2023-01-10T16:05:29+00:00"}
    

    For more details regarding the payload, please have a look at the request parameters for the corresponding webhook

  • user.non-user-initiated-tx-v2

      {"id":"abcd1234-12ab-ab12-abcdef123456","user_id":"abcd1234-12ab-ab12-abcdef123456","asset_id":1,"fiat_id":1,"fiat_amount":"323000.78000000","asset_amount":"0.46987983466586","related_offer_id":"abcc89ac-1290-426f-8de0-4c7b40b91d3a","type":"giveaway","type_defined_for":"asset","direction":"incoming","created_at":"2024-01-09T13:08:00Z"}
    

    For more details regarding the payload, please have a look at the request parameters for the corresponding webhook

  • account.send-money

    {"id":"1ed80ed8-3393-64ca-ba25-46e31c542a97","trade_id":77356859,"reference":"bitpanda-63a294cf86761-transfer","timestamp":1671599311,"amount_sent":"5.00000000","fiat_symbol":"EUR","fiat_balance":"734651.06000000"}
    

    For more details regarding the payload, please have a look at the request parameters for the corresponding webhook

  • account.send-money-success

    {"id":"614c7a22-5abd-4511-aa99-5b3557e92e51","type":"withdrawal","reference":"bitpanda-62e9ba8a60608-transfer","timestamp": 1659484928,"fiat_amount":"31.00000000","fiat_symbol":"EUR"}
    

    For more details regarding the payload, please have a look at the request parameters for the corresponding webhook

  • account.top-up

    {"trade_id":1234567,"timestamp":1671580811,"fiat_symbol":"EUR","fiat_balance":"388256.25000000","amount_to_deposit":"611743"}
    

    For more details regarding the payload, please have a look at the request parameters for the corresponding webhook

  • account.top-up-success

    {"id":"1ed8065b-2a73-6b5e-b03f-2a65c999892d","type":"deposit","reference":"7945045137","timestamp":1671540979,"fiat_amount":"25.00000000","fiat_symbol":"EUR"}
    

    For more details regarding the payload, please have a look at the request parameters for the corresponding webhook

  • user.savings-plan-notification

    {"fiat_id": 1,"user_id":"1ed97e4a-912c-69be-9320-0aa759597920","asset_id": 1,"fiat_amount":"3124.00000000","savings_plan_id":"1ed97e71-c379-6648-b86a-ee5ee367ea13","savings_plan_day": 1,"savings_plan_status":"active","savings_plan_frequency":"weekly","external_transaction_id":"1ed97e89-682e-6cbc-8b84-f2ddd95107cf","savings_plan_created_at":"2023-01-19 10:50:38","savings_plan_next_recurrence":"2023-01-19 12:00:00","savings_plan_transaction_confirmation_deadline":"2023-01-19 11:00:00"}
    

    For more details regarding the payload, please have a look at the request parameters for the corresponding webhook

  • user.savings-plan-trade-notification(failure)

    {"user_id":"1ed97e4a-912c-69be-9320-0aa759597920","error_code":"403","error_message":"Saving plan transaction was not confirmed by 2023-01-19T11:00:00+00:00","savings_plan_id":"1ed97e71-c379-6648-b86a-ee5ee367ea13","external_transaction_id":"1ed97e89-682e-6cbc-8b84-f2ddd95107cf","savings_plan_transaction_status":"not_confirmed"}
    

    For more details regarding the payload, please have a look at the request parameters for the corresponding webhook

  • user.savings-plan-trade-notification(success)

    {"user_id":"1ed97d32-dcb7-6974-a846-c6a5060457b4","offer_id":"abadd2dc-cfd7-4411-b135-7cbcbb0823ae","trade_id":"6739ad92-bdb0-4948-b571-d27dda7fc6b5","savings_plan_id":"1ed97d7d-d845-6698-ab33-fe00d406bd61","external_transaction_id":"1ed97d86-d8df-6974-8601-f2ddd95107cf","savings_plan_transaction_status":"finished"}
    

    For more details regarding the payload, please have a look at the request parameters for the corresponding webhook

  • user.crypto-transfer-notification

    {"id": "4e465f96-6abf-4b91-9abb-f61b38eda58a", "fee": "0.0002000000000000", "address": "123456gPagfrEu2345Fmoqwe2weeei2ry1234567ABC", "user_id": "12345678-abcd-abcd-1234-123456789abc", "approved": true, "asset_id": 436, "credited": true, "currency": "EUR", "network_id": "12345678-1234-1234-1234-aaaabbbbcccc", "credited_at": null, "fiat_amount": "7.7000000000000000", "received_at": "2023-12-15T15:01:17.683653Z", "asset_amount": "0.1100000000000000", "asset_symbol": "SOL", "processed_at": null, "destination_tag": null, "asset_network_id": "1ede43b4-3348-6c84-a8d5-ad8ff12fd18a", "transaction_hash": "", "transaction_type": "withdrawal", "transaction_status": "finished", "tax_declaration_status": "undeclared"}
    

    For more details regarding the payload, please have a look at the request parameters for the corresponding webhook

  • user.crypto-action

    {"id":"00000000-abcd-1234-12ab-abcd4c841234","user_id":"abcd71c8-abcd-1234-12ab-abcd4c841234","type":"merger_crypto","credited_at":"2024-04-10T09:31:08Z","transactions":[{"id":"11111111-abcd-1234-12ab-abcd4c841234","asset_id":"aaaaaaaa-abcd-1234-12ab-abcd4c841234","asset_int":1,"fiat_id":"abcd71c8-abcd-1234-12ab-abcd4c841234","fiat_int":2,"asset_amount":"100.30","fiat_amount":"200.60","fee_amount":"0.5","type_defined_for":"asset","direction":"outgoing"},{"id":"22222222-abcd-1234-12ab-abcd4c841234","asset_id":"bbbbbbbb-abcd-1234-12ab-abcd4c841234","asset_int":2,"fiat_id":"abcd71c8-abcd-1234-12ab-abcd4c841234","fiat_int":2,"asset_amount":"100.30","fiat_amount":"200.60","fee_amount":"0.5","type_defined_for":"asset","direction":"incoming"}]}
    

    For more details regarding the payload, please have a look at the request parameters for the corresponding webhook

  • user.automated-order

    {"user_id":"1ef2efc7-1d0c-658b-8bdb-7398fd6afe94","domain_slug":"b2b2c_qa","trade_id":"01ef5401-cf20-6165-b0cb-3e1e8185fb3c","asset_id":"a49406ee-ee33-11ec-aafe-062d595118ef","fiat_id":"ea96ccef-edee-11eb-9bf0-06502b1fe55d","asset_amount":"2.43667276","fiat_amount":"1","type":"buy","status":"finished","created_at":"2024-08-06T14:40:21.848515Z"}
    

    For more details regarding the payload, please have a look at the request parameters for the corresponding webhook

  • user.savings-plan-auto-cancel-notification

    {"saving_plan_id":"1f020444-59fc-6ab8-b914-12a53b25f111","user_id":"1f0202bc-77c3-6fb4-a27e-3bb4d2ab4937","asset_id":"ea89c3a1-edee-11eb-9bf0-06502b1fe55d","operation_type":"merger_crypto"}
    

    For more details regarding the payload, please have a look at the request parameters for the corresponding webhook

SecuritybearerAuth
Request
query Parameters
type
string

Event type.

Enum: "user.corporate-action" "user.non-user-initiated-tx" "user.non-user-initiated-tx-v2" "user.update" "user.savings-plan-notification" "user.savings-plan-trade-notification" "user.crypto-transfer-notification" "account.send-money" "account.send-money-success" "account.top-up" "account.top-up-success" "user.crypto-action" "user.savings-plan-auto-cancel-notification"
Example: type=user.corporate-action
size
integer

Number of events to be displayed per page. Maximum value is 50.

Example: size=20
after_id
string <uuid>

A cursor for use in pagination. after_id is an Event ID that defines your place in the list.

Example: after_id=1ed804ad-41e9-6fc2-bf32-1e7e399643fb
Responses
200

Success Response

Response Schema: application/json
Array of objects (EventV2)
object
object
401

Error

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/events
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Tax

Get user’s tax eligibility status

This endpoint returns a user’s eligibility status, indicating whether the user qualifies for tax withholding based on the applicable tax regulations and criteria.

SecuritybearerAuth
Request
header Parameters
bp-user-id
required
string <uuid>

User ID

Responses
200

OK

Response Schema: application/json
Array of objects (GetTaxStatusResponse)
400

Error

Response Schema: application/json
Array of objects
401

Error

Response Schema: application/json
Array of objects
403

Account is inactive

Response Schema: application/json
Array of objects
404

Not Found - User with id not found

Response Schema: application/json
Array of objects
422

Trading is disabled for your account

Response Schema: application/json
Array of objects
503

Service unavailable

Response Schema: application/json
Array of objects
get/v1/tax-status
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Update user’s tax eligibility status

This endpoint updates the requested user's eligibility status per tax rule.

SecuritybearerAuth
Request
path Parameters
Tax-rule-ID
required
string

Tax rule ID

Example: austrian.crypto.tax
header Parameters
bp-user-id
required
string <uuid>

User ID

Content-Type
required
string

Content type

Example: application/json
Request Body schema: application/json

The eligibility status for update.

is_eligible
boolean

Eligibility TRUE/FALSE

Responses
200

OK

Response Schema: application/json
object (UpdateTaxStatusResponse)
400

Error

Response Schema: application/json
Array of objects
401

Error

Response Schema: application/json
Array of objects
403

Account is inactive

Response Schema: application/json
Array of objects
422

Trading is disabled for your account

Response Schema: application/json
Array of objects
503

Service unavailable

Response Schema: application/json
Array of objects
put/v1/tax-status/{Tax-rule-ID}
Request samples
application/json
{
  • "is_eligible": true
}
Response samples
application/json
{
  • "data": {
    }
}

Get trade tax details

The endpoint retrieves additional tax information for a particular trade. This information helps users better understand the tax calculations associated with that specific trade.

SecuritybearerAuth
Request
path Parameters
Offer-ID
required
string <uuid>

Offer ID

Example: 975d9dbf-41ed-47ef-96eb-8f8a8be1ba4c
header Parameters
bp-user-id
required
string <uuid>

User ID

Responses
200

OK

Response Schema: application/json
object (GetTaxDetailsResponse)
400

Bad request

Response Schema: application/json
Array of objects
401

Unauthorized

Response Schema: application/json
Array of objects
403

Account is inactive

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Trading disabled

Response Schema: application/json
Array of objects
500

Internal server error

Response Schema: application/json
Array of objects
get/v1/tax-withholding/{Offer-ID}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Crypto-Transfers

List external addresses

This endpoint provides a paginated list of crypto addresses from Address-Book associated with a specific beneficiary. It supports several query parameters to help filter the results by specific criteria, such as address ID, asset ID, and network type.

This endpoint enables clients to retrieve only the necessary subset of addresses for a user, making it flexible and efficient for use cases requiring focused data retrieval.

SecuritybearerAuth
Request
query Parameters
id
string <uuid>

Filters results by a specific crypto address ID. Use this parameter to retrieve a single address by its unique identifier if you need details for one address only.

Example: id=11111111-12ab-ab12-eeeeeeeeeeee
asset_id
string <uuid>

Filters results by a specific asset ID. This allows retrieval of addresses for a particular cryptocurrency asset (e.g., BTC, ETH). Use this to view all addresses associated with a specific asset type for a user.

Example: asset_id=1ed83487-f684-62a2-a155-fe633f0db292
coin_network_id
string <uuid>

Filters addresses by the coin network ID, specifying the network type associated with the asset (e.g., Bitcoin mainnet, Ethereum mainnet). This parameter helps retrieve addresses on a particular blockchain network.

Example: coin_network_id=d969468d-2be6-4522-977e-ea4d92c45e86
sort
string

Sorts results by specified field.

Value: "owner_legal_name"
header Parameters
bp-user-id
required
string <uuid>
Example: 12312312-2be6-4522-977e-ea4d92c45e86
Responses
200

Success Response

Response Schema: application/json
Array of objects (AddressResponse)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Service unavailable

Response Schema: application/json
Array of objects
get/v1/crypto-transfers/addresses
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Create deposit address

This endpoint allows users to create a new blockchain address on a specified network. If an address on that network already exists, the existing address will be returned.

It is expected to be used while performing crypto deposits, the information returned by this endpoint should be made visible to the users for their deposit requests.

SecuritybearerAuth
Request
header Parameters
bp-user-id
required
string <uuid>
Example: 12312312-2be6-4522-977e-ea4d92c45e86
Request Body schema: application/json

The address to be created.

coin_network_id
required
string <uuid>

Filters addresses by the coin network ID, specifying the network type associated with the asset (e.g., Bitcoin mainnet, Ethereum mainnet). This parameter helps retrieve addresses on a particular blockchain network.

Responses
200

Success Response (Subsequent Idempotent Request)

Response Schema: application/json
object (DepositAddressResponse)
201

Success Response (Created)

Response Schema: application/json
object (AddressResponse)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Service unavailable

Response Schema: application/json
Array of objects
post/v1/crypto-transfers/addresses
Request samples
application/json
{
  • "coin_network_id": "d969468d-2be6-4522-977e-ea4d92c45e86"
}
Response samples
application/json
{
  • "data": {
    }
}

Update external address

This endpoint allows for the updating of a user’s external address, primarily to comply with Travel Rule requirements. It ensures that the user's address information is accurate and current, aiding in regulatory compliance and smooth transaction processing across different jurisdictions. This endpoint updates deposit addresses when necessary, but not all addresses can be updated.

SecuritybearerAuth
Request
path Parameters
id
required
string <uuid>

The unique identifier for the external address associated with this transaction. This Address ID links the withdrawal to a specific user address.

header Parameters
bp-user-id
required
string <uuid>
Example: 12312312-2be6-4522-977e-ea4d92c45e86
Request Body schema: application/json

The address details that needs to be updated.

host_type
required
string

Host Type - Specifies the type of wallet or entity hosting the crypto address. The possible values are:

  • KNOWN_VASP: A verified Virtual Asset Service Provider (VASP) such as a licensed exchange.
  • UNKNOWN_VASP: An unverified or unrecognized Virtual Asset Service Provider. In this case the host_name field is required.
  • SELF_HOSTED: A self-custodied wallet, such as MetaMask, where the user has direct control over their private keys.
Enum: "KNOWN_VASP" "UNKNOWN_VASP" "SELF_HOSTED"
host_name
string or null

The name of the platform or wallet provider associated with the crypto address, represented as a string (e.g., “Binance,” “Coinbase,” etc.).

host_id
string or null <uuid>

The id of the platform or wallet provider associated with the crypto address.

user_owned
required
boolean

A boolean indicating ownership of the address. true if the address belongs to the user making the request; false if it belongs to another user.

owner_legal_name
string

The legal name of the address beneficiary, required only if user_owned is false. This specifies the full name of the person or entity that owns the address when it does not belong to the requesting user.

Responses
200

Success Response

Response Schema: application/json
object (AddressResponse)
400

Bad request

Response Schema: application/json
Array of objects
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Service unavailable

Response Schema: application/json
Array of objects
patch/v1/crypto-transfers/addresses/{id}
Request samples
application/json
{
  • "host_type": "KNOWN_VASP",
  • "host_name": "Bitpanda",
  • "host_id": "1ef3c8b7-8b65-6784-912a-b7cc10fee72f",
  • "user_owned": false,
  • "owner_legal_name": "John Doe"
}
Response samples
application/json
{
  • "data": {
    }
}

Create withdrawal address

This endpoint is designed to create a beneficiary address within our Address Book, enabling the sender to initiate secure withdrawals. By registering this address, Bitpanda ensures complete beneficiary information is available, meeting both Travel Rule and MiCAR compliance requirements.

This process helps maintain a safe, regulated environment for crypto transactions, ensuring transparency and adherence to legal standards for all parties involved.

SecuritybearerAuth
Request
header Parameters
bp-user-id
required
string <uuid>
Example: 12312312-2be6-4522-977e-ea4d92c45e86
Request Body schema: application/json

The address to be created.

coin_network_id
required
string <uuid>

The unique identifier representing the specific coin and network for which the address will be created.

address
required
string

The generated address hash on the specified network, used for sending cryptocurrency transactions.

destination_tag
string or null

An additional identifier used with certain cryptocurrencies (e.g., XRP, Stellar) to specify the recipient’s unique identifier within a wallet address, ensuring the transaction reaches the correct account.

host_type
required
string

Host Type - Specifies the type of wallet or entity hosting the crypto address. The possible values are:

  • KNOWN_VASP: A verified Virtual Asset Service Provider (VASP) such as a licensed exchange.
  • UNKNOWN_VASP: An unverified or unrecognized Virtual Asset Service Provider. In this case the host_name field is required.
  • SELF_HOSTED: A self-custodied wallet, such as MetaMask, where the user has direct control over their private keys.
Enum: "KNOWN_VASP" "UNKNOWN_VASP" "SELF_HOSTED"
host_name
string or null

The name of the platform or wallet provider associated with the crypto address, represented as a string (e.g., “Binance,” “Coinbase,” etc.).

host_id
string or null <uuid>

The id of the platform or wallet provider associated with the crypto address.

user_owned
required
boolean

A boolean indicating ownership of the address. true if the address belongs to the user making the request; false if it belongs to another user.

owner_legal_name
string or null

The legal name of the address beneficiary, required only if user_owned is false. This specifies the full name of the person or entity that owns the address when it does not belong to the requesting user.

Responses
200

Success Response

Response Schema: application/json
object (AddressResponse)
400

Bad request

Response Schema: application/json
Array of objects
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Service unavailable

Response Schema: application/json
Array of objects
post/v1/crypto-transfers/addresses/withdrawals
Request samples
application/json
{
  • "coin_network_id": "1ed83487-f684-62a2-a155-fe633f0db292",
  • "address": "raDnEe3yGzkqK6nBUerb5s9wqszZDLYTbz",
  • "destination_tag": "6363869576905874",
  • "host_type": "KNOWN_VASP",
  • "host_name": "Bitpanda",
  • "host_id": "1ef3c8b7-8b65-6784-912a-b7cc10fee72f",
  • "user_owned": false,
  • "owner_legal_name": "John Doe"
}
Response samples
application/json
{
  • "data": {
    }
}

List of VASPs

This endpoint provides a comprehensive list of known Virtual Asset Service Providers (VASPs). The list includes verified and reputable VASPs, such as exchanges and wallet providers, recognized by the platform. This data can be useful for identifying trusted entities in the ecosystem and ensuring compliance with regulatory requirements.

SecuritybearerAuth
Request
header Parameters
bp-user-id
required
string <uuid>
Example: 12312312-2be6-4522-977e-ea4d92c45e86
Responses
200

Success Response

Response Schema: application/json
object (VaspResponse)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Service unavailable

Response Schema: application/json
Array of objects
get/v1/crypto-transfers/vasps
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Validate crypto address

This endpoint validates a given crypto address, along with an optional destination tag if required by the blockchain network. It ensures that the address is compatible with the specified coin network and that any additional information, such as the destination tag, is accurate. This validation helps prevent errors in transactions and ensures compliance with network standards.

SecuritybearerAuth
Request
header Parameters
bp-user-id
required
string <uuid>
Example: 12312312-2be6-4522-977e-ea4d92c45e86
Request Body schema: application/json

The withdrawal offer

address
required
string

The crypto address to be validated. This is the primary address provided by the user, which needs verification against the specified coin network.

coin_network_id
required
string <uuid>

A unique identifier representing the coin and network combination. This ensures that the validation is specific to the correct blockchain network.

destination_tag
string or null

An additional identifier used by certain blockchain networks (e.g., XRP, Stellar) to direct the transaction to a specific account or purpose within the address. If the network requires a destination tag, this field is necessary.

destination_tag_type
string or null

Specifies the type of destination tag being used, which can vary by blockchain (e.g., “memo_id” for Stellar, “memo_text” for EOS). This ensures that the correct format is applied during validation.

Responses
200

Success Response

Response Schema: application/json
object (ValidateCryptoAddressResponse)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Service unavailable

Response Schema: application/json
Array of objects
post/v1/crypto-transfers/addresses/validate
Request samples
application/json
{
  • "address": "1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa",
  • "coin_network_id": "d969468d-2be6-4522-977e-ea4d92c45e86",
  • "destination_tag": "123456789",
  • "destination_tag_type": "memo_id"
}
Response samples
application/json
{
  • "data": {
    }
}

List all crypto transfers per user

This endpoint retrieves a paginated list of all crypto transactions, including deposits and withdrawals, for a specified user.

It allows filtering by transaction attributes like type, status, and date range, providing flexibility to view and manage transaction history efficiently.

SecuritybearerAuth
Request
query Parameters
id
string <uuid>

Filters results by a specific transaction ID, allowing retrieval of a particular transaction.

Example: id=e69f4b1c-e3d7-4e5f-8561-4a6c09441097
asset_id
string <uuid>

Filters transactions by a specific asset, such as BTC or ETH, identified by the asset’s UUID.

Example: asset_id=1ed83487-f684-62a2-a155-fe633f0db292
coin_network_id
string <uuid>

Filters transactions by the coin network ID, allowing users to view transactions on a particular blockchain network.

Example: coin_network_id=d969468d-2be6-4522-977e-ea4d92c45e86
status[]
Array of strings

Filters transactions based on their current status.
If no status is specified, all statuses will be returned.

Note:
The not-confirmed status applies only to withdrawals that have been created but never finalized.

Items Enum: "pending" "not-confirmed" "processing" "on-hold" "finished" "canceled" "rejected" "refunded"
Example: status[]=processing
transaction_type
string

Filters transactions by type, distinguishing between deposits and withdrawals.

Enum: "deposit" "withdrawal"
Example: transaction_type=deposit
date_start
string

Filters transactions by a start date, returning only those created on or after this date.

Example: date_start=2023-12-20
date_end
string

Filters transactions by an end date, returning only those created on or before this date.

Example: date_end=2023-12-20
address_id
string <uuid>

Filters transactions by address_id, returning only those with the specified address.

Example: address_id=bf335d15-fd89-4b20-8b9e-62d52d33ba19
size
integer [ 1 .. 100 ]

Sets the number of transaction records per page for pagination.

Example: size=10
cursor
string <uuid>

A cursor for use in pagination. The cursor represents a Transaction ID that defines your place in the list.

Example: cursor=1ed804ad-41e9-6fc2-bf32-1e7e399643fb
direction
string

Specifies the direction of the results, based on the transaction ID as cursor.

Use before to get results before a specific ID or after to get results after a specific ID. This provides flexibility in how results are displayed relative to the cursor.

Enum: "before" "after"
header Parameters
bp-user-id
required
string <uuid>
Example: 12312312-2be6-4522-977e-ea4d92c45e86
Responses
200

Success Response

Response Schema: application/json
Array of objects (TransactionResponse)
object (PaginationMetaV2)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Service unavailable

Response Schema: application/json
Array of objects
get/v1/crypto-transfers/transactions
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Search for crypto transfersDeprecated

The endpoint retrieves details of a specific crypto transfer, deposit or withdrawal, using its unique transaction ID.

SecuritybearerAuth
Request
path Parameters
transaction-ID
required
string <uuid>
header Parameters
bp-user-id
required
string <uuid>
Example: 12312312-2be6-4522-977e-ea4d92c45e86
Responses
200

Success Response

Response Schema: application/json
object (TransactionResponse)
400

Bad Request

Response Schema: application/json
Array of objects
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
422

Unprocessable Entity

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Service unavailable

Response Schema: application/json
Array of objects
get/v1/crypto-transfers/transactions/{transaction-ID}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Update tax declaration status for a crypto deposit transaction

This endpoint allows updating the tax declaration status of a specific deposit transaction. It enables users to declare tax-related details about crypto deposits, required for compliance with regulatory reporting standards.

SecuritybearerAuth
Request
path Parameters
transaction-ID
required
string <uuid>

Unique identifier (UUID) of the transaction to update.

header Parameters
bp-user-id
required
string <uuid>

Unique identifier (UUID) for the user

Example: 12312312-2be6-4522-977e-ea4d92c45e86
Request Body schema: application/json

Object containing details for updating the tax declaration status of a specific transaction.

currency_code
required
string

The currency code (e.g., EUR, USD) used for the declarations, for the amounts being declared.

required
Array of objects

A list of declarations providing details about the acquisition and price of the asset for the deposited amount.

Responses
204

Tax declaration status successfully updated for the transaction.

400

Bad Request - Invalid parameters were provided in the request.

Response Schema: application/json
Array of objects
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
409

Conflict

Response Schema: application/json
Array of objects
422

Unprocessable Entity

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Service unavailable

Response Schema: application/json
Array of objects
patch/v1/crypto-transfers/transactions/{transaction-ID}
Request samples
application/json
{
  • "currency_code": "EUR",
  • "declarations": [
    ]
}
Response samples
application/json
{
  • "errors": [
    ]
}

Create a crypto withdrawal offer

This endpoint allows users to initiate a cryptocurrency withdrawal by submitting details such as the amount to withdraw, the destination address, blockchain destination tags (memo_id, memo_text), returning a structured offer that outlines the terms and conditions of the withdrawal including fees. Such an offer can later be confirmed by the user.

SecuritybearerAuth
Request
header Parameters
bp-user-id
required
string <uuid>
Example: 12312312-2be6-4522-977e-ea4d92c45e86
Idempotency-Key
required
string <uuid>

A unique key that the server uses to recognize subsequent retries of the same request

Request Body schema: application/json

The withdrawal offer

asset_amount
required
string

The asset amount the user intends to withdraw. It is the initial amount specified by the user before any deductions are made.

external_address_id
required
string <uuid>

A unique identifier (UUID) assigned to the newly created crypto address. This ID is returned by the Create Address endpoint and is used to reference, track, and manage the specific address within the system.

Responses
200

Success Response (Subsequent Idempotent Request)

Response Schema: application/json
object (WithdrawalOfferResponse)
201

Success Response (Created)

Response Schema: application/json
object (WithdrawalOfferResponse)
400

Bad Request

Response Schema: application/json
Array of objects
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
409

Conflict

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Service unavailable

Response Schema: application/json
Array of objects
post/v1/crypto-transfers/withdrawals
Request samples
application/json
{
  • "asset_amount": "0.2",
  • "external_address_id": "1ed83487-f684-62a2-a155-fe633f0db292"
}
Response samples
application/json
{
  • "data": {
    }
}

Confirm a withdrawal offer

This endpoint can be used to confirm a withdrawal offer. The withdrawal will be executed after the confirmation. This means the withdrawal is not guaranteed after this step and you need to call the Search for crypto transfers endpoint or listen to notification events through webhooks to retrieve the final status.

SecuritybearerAuth
Request
path Parameters
withdrawal-id
required
string <uuid>

A unique identifier (UUID) assigned to a specific withdrawal transaction. This ID is provided when a withdrawal offer is created and is used to reference, track, and manage the withdrawal within the system.

header Parameters
bp-user-id
required
string <uuid>
Example: 12312312-2be6-4522-977e-ea4d92c45e86
Responses
200

Success Response

Response Schema: application/json
object (WithdrawalResponse)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
409

Conflict

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Service unavailable

Response Schema: application/json
Array of objects
patch/v1/crypto-transfers/withdrawals/{withdrawal-id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Savings

Create a savings plan

The endpoint enables users to set up a customised savings plan by specifying a portion of their income to be regularly saved (weekly, biweekly or monthly), with the aim of achieving a designated financial goal. It returns details of the created plan including next recurrence date and the date when the partner will be notified about the upcoming savings plan trade execution.

SecuritybearerAuth
Request
header Parameters
bp-user-id
required
string <uuid>
idempotency-key
required
string <uuid>

A unique identifier for the create savings plan request. Guarantees that only one resource will be created regardless of how many times a request is sent to us.

Example: 2e4c89ac-1290-426f-8de0-4c7b40b91d3a
Request Body schema: application/json

Create savings plan details.

asset_id
required
integer

Asset Id that needs to be bought when savings plan trade will be executed.

fiat_id
required
integer

The fiat id of the savings plan / Currency of the savings plan.

Value: 1
amount
required
string <double>

The amount of the savings plan. Allowed 10-10000

frequency
required
string

The frequency of the savings plan (weekly, biweekly, monthly).

Enum: "weekly" "biweekly" "monthly"
day
required
integer [ 1 .. 31 ]

Day of the savings plan execution. For a weekly & biweekly frequency, it's accepted only a value between 1...7 where 1 = Monday...7 = Sunday. For a monthly frequency it's accepted only a value between 1...31.

external_tx_id
string or null <uuid>

An optional external transaction identifier provided by partners. It serves as a unique reference to link the partner’s savings plan ID with the Bitpanda savings plan ID. This field is not exposed in API responses but may be required in internal reports or reconciliation processes.

Responses
200

Success Response (Subsequent Idempotent Request).

Response Schema: application/json
object (CreateSavingsPlanResponse)
201

Success Response (Created)

Response Schema: application/json
object (CreateSavingsPlanResponse)
400

Bad Request

Response Schema: application/json
Array of objects
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
405

Not Allowed

Response Schema: application/json
Array of objects
409

Conflict

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v1/savings-plan
Request samples
application/json
{
  • "asset_id": 1,
  • "fiat_id": 1,
  • "amount": "20.11",
  • "frequency": "weekly",
  • "day": 5,
  • "external_tx_id": "c04cd877-cb9c-485c-bbc8-6bec3eb41b39"
}
Response samples
application/json
{
  • "data": {
    }
}

Search for savings plans

List all savings plans with the possibility to filter by different identifiers like savings plan id, asset id, user id and status.

SecuritybearerAuth
Request
query Parameters
id
string <uuid>

Search for savings plans by ID

Example: id=1eda5f65-eb10-64ce-b872-0242ac12000b
user_id
string <uuid>

Search for savings plans by user_id

Example: user_id=5b2ca85b-0191-4e93-9165-413df4aa0c18
asset_id
integer

Search for savings plans by asset_id

Example: asset_id=1
status
string

Search for savings plans by status.

Enum: "active" "canceled"
Example: status=active
page_size
integer

Number of elements to be displayed on a page

Example: page_size=10
page
integer

Display page number

Example: page=1
Responses
200

Success Response

Response Schema: application/json
Array of objects (SearchSavingsPlanResponse)
object (PaginationMeta)
object (PaginationLinks)
401

Unauthorized

Response Schema: application/json
Array of objects
405

Not Allowed

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/savings-plan
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Cancel a savings plan

This endpoint allows users to terminate an existing savings plan by submitting the unique identifier of the plan and the status canceled. This endpoint processes the cancellation request and provides back the successful cancellation of the plan and all its details.

SecuritybearerAuth
Request
path Parameters
savings_plan_id
required
string <uuid>

Savings plan id that needs to be canceled.

Example: 1eda5f65-eb10-64ce-b872-0242ac12000b
header Parameters
bp-user-id
required
string <uuid>

User id that savings plan belongs to.

Example: 5b2ca85b-0191-4e93-9165-413df4aa0c18
Request Body schema: application/json

Cancel a savings plan.

status
required
string

The new status of the savings plan. Only 'canceled' is accepted.(This will act as a confirmation)

Value: "canceled"
Responses
200

Success Response

Response Schema: application/json
object (ModifySavingsPlanResponse)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
405

Not Allowed

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
patch/v1/savings-plan/{savings_plan_id}
Request samples
application/json
{
  • "status": "canceled"
}
Response samples
application/json
{
  • "data": {
    }
}

Cancel a savings plan V2

This endpoint allows users to terminate an existing savings plan by submitting the unique identifier of the plan and the status canceled. This endpoint processes the cancellation request and provides back the successful cancellation of the plan and all its details.

SecuritybearerAuth
Request
path Parameters
savings_plan_id
required
string <uuid>

Savings plan ID that needs to be canceled.

Example: 1eda5f65-eb10-64ce-b872-0242ac12000b
header Parameters
bp-user-id
required
string <uuid>

User ID that savings plan belongs to.

Example: 5b2ca85b-0191-4e93-9165-413df4aa0c18
Request Body schema: application/json

Cancel a savings plan.

status
required
string

The new status of the savings plan. Only 'canceled' is accepted.(This will act as a confirmation)

Value: "canceled"
Responses
200

Success Response

Response Schema: application/json
object (CancelSavingsPlanV2Response)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
405

Not Allowed

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
patch/v2/savings-plan/{savings_plan_id}
Request samples
application/json
{
  • "status": "canceled"
}
Response samples
application/json
{
  • "data": {
    }
}

Confirm a savings plan transaction

This endpoint is used to confirm the reservation of funds for a transaction associated with a savings plan. When a transaction related to a savings plan needs to be initiated, Partners are notified via webhook events in advance. Following this notification, they must use this endpoint to confirm the reservation of funds, ensuring the transaction is validated and processed according to the savings plan terms. If the transaction is not confirmed, that recurrence of the savings plan is skipped.

SecuritybearerAuth
Request
path Parameters
external_transaction_id
required
string

External transaction ID. It'll be generated, when Bitpanda create the savings plan notice.

Example: 1eda5f65-eb10-64ce-b872-0242ac12000b
Responses
200

Success Response

Response Schema: application/json
object (ConfirmSavingsPlanTransactionResponse)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
405

Not Allowed

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
patch/v1/savings-plan/transaction/{external_transaction_id}/confirm
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Confirm a savings plan transaction V2

This endpoint is used to confirm the reservation of funds for a transaction associated with a savings plan. When a transaction related to a savings plan needs to be initiated, Partners are notified via webhook events in advance. Following this notification, they must use this endpoint to confirm the reservation of funds, ensuring the transaction is validated and processed according to the savings plan terms. If the transaction is not confirmed, that recurrence of the savings plan is skipped.

SecuritybearerAuth
Request
path Parameters
external_transaction_id
required
string <uuid>

External transaction ID. It'll be generated, when Bitpanda create the savings plan notice.

Example: 1eda5f65-eb10-64ce-b872-0242ac12000b
Responses
200

Success Response

Response Schema: application/json
object (ConfirmSavingsPlanTransactionV2Response)
401

Unauthorized

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
405

Not Allowed

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
patch/v2/savings-plan/transaction/{external_transaction_id}/confirm
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Create a savings plan V2

The endpoint enables users to set up a customised savings plan by specifying a portion of their income to be regularly saved (weekly, biweekly or monthly), with the aim of achieving a designated financial goal. It returns details of the created plan including next recurrence date and the date when the partner will be notified about the upcoming savings plan trade execution.

SecuritybearerAuth
Request
header Parameters
bp-user-id
required
string <uuid>
idempotency-key
required
string <uuid>

A unique identifier for the create savings plan request. Guarantees that only one resource will be created regardless of how many times a request is sent to us.

Example: 2e4c89ac-1290-426f-8de0-4c7b40b91d3a
Request Body schema: application/json

Create savings plan details.

asset_id
required
string <uuid>

Asset ID that needs to be bought when savings plan trade will be executed.

fiat_id
required
string <uuid>

The fiat ID of the savings plan / Currency of the savings plan.

amount
required
string <double>

The amount of the savings plan. Allowed 10-10000

frequency
required
string

The frequency of the savings plan (weekly, biweekly, monthly).

Enum: "weekly" "biweekly" "monthly"
day
required
integer [ 1 .. 31 ]

Day of the savings plan execution. For a weekly & biweekly frequency, it's accepted only a value between 1...7 where 1 = Monday...7 = Sunday. For a monthly frequency it's accepted only a value between 1...31.

external_tx_id
string or null <uuid>

An optional external transaction identifier provided by partners. It serves as a unique reference to link the partner’s savings plan ID with the Bitpanda savings plan ID. This field is not exposed in API responses but may be required in internal reports or reconciliation processes.

Responses
200

Success Response (Subsequent Idempotent Request).

Response Schema: application/json
object (CreateSavingsPlanV2Response)
201

Success Response (Created)

Response Schema: application/json
object (CreateSavingsPlanV2Response)
400

Bad Request

Response Schema: application/json
Array of objects
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
405

Not Allowed

Response Schema: application/json
Array of objects
409

Conflict

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v2/savings-plan
Request samples
application/json
{
  • "asset_id": "b86c113a-efe3-11eb-b56f-0691764446a7",
  • "fiat_id": "b88b8466-efe3-11eb-b56f-0691764446a7",
  • "amount": "20.11",
  • "frequency": "weekly",
  • "day": 5,
  • "external_tx_id": "c04cd877-cb9c-485c-bbc8-6bec3eb41b39"
}
Response samples
application/json
{
  • "data": {
    }
}

Search for savings plans V2

List all savings plans with the possibility to filter by different identifiers like savings plan id, asset id, fiat id, user id and status.

SecuritybearerAuth
Request
query Parameters
id
string <uuid>

Search for savings plans by ID

Example: id=1eda5f65-eb10-64ce-b872-0242ac12000b
user_id
string <uuid>

Search for savings plans by user ID

Example: user_id=5b2ca85b-0191-4e93-9165-413df4aa0c18
asset_id
string <uuid>

Search for savings plans by asset ID

Example: asset_id=b86c113a-efe3-11eb-b56f-0691764446a7
fiat_id
string <uuid>

Search for savings plans by fiat ID

Example: fiat_id=b88b8466-efe3-11eb-b56f-0691764446a7
status
string

Search for savings plans by status.

Enum: "active" "canceled"
Example: status=active
page_size
integer [ 1 .. 100 ]

Number of elements to be displayed on a page

Example: page_size=10
page
integer >= 1

Display page number

Example: page=1
Responses
200

Success Response

Response Schema: application/json
Array of objects (SearchSavingsPlanV2Response)
object (PaginationMeta)
object (PaginationLinks)
401

Unauthorized

Response Schema: application/json
Array of objects
405

Not Allowed

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/savings-plan
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Get savings plan next recurrence date.

The endpoint allows the calculation of the next recurrence date before creating the savings plan. The next recurrence date returned from this endpoint is the same value that would be returned from the create savings plan endpoint.

SecuritybearerAuth
Request
query Parameters
frequency
required
string

The frequency of the savings plan (weekly, biweekly, monthly).

Enum: "weekly" "biweekly" "monthly"
Example: frequency=weekly
day
required
integer [ 1 .. 31 ]

Day of the savings plan execution. For a weekly & biweekly frequency, it's accepted only a value between 1...7 where 1 = Monday...7 = Sunday. For a monthly frequency it's accepted only a value between 1...31.

Example: day=5
Responses
200

Success Response.

Response Schema: application/json
object (GetSavingsPlanNextRecurrenceResponse)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
405

Not Allowed

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/savings-plan/next-recurrence
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Swaps

Create a swap offer

By submitting a request to this endpoint, users can propose a swap offer, where they specify the assets they would like to exchange and the amount of units, either from the source or from the target asset. The request triggers the creation of a swap offer that can later be accepted by the user within its validity (as defined in offer_validity & expires_at response parameters).

The users can swap any asset that is present in their portfolio to any other supported digital asset on our platform. When swapping an asset, it is first sold as a fiat token (F-Token) before the desired asset is bought. This happens to avoid price fluctuations.

SecuritybearerAuth
Request
header Parameters
bp-user-id
required
string <uuid>

User ID

Request Body schema: application/json

The swap offer to be created.

source_asset_id
required
integer

The unique identifier of the asset to be sold when the swap is executed.

target_asset_id
required
integer

The unique identifier of the target asset to be acquired when the swap is executed.

amount
required
string non-empty ^[0-9]+(\.[0-9]{1,8})?$

The quantity of the asset involved in the swap transaction. The specific amount will depend on the context defined by the 'amount_defined_for' parameter.

amount_defined_for
required
string

Specifies the context for the 'amount' parameter. If set to 'source', the 'amount' refers to the quantity or value of the 'source_asset_id' to be sold or exchanged. If set to 'target', the 'amount' refers to the quantity or value of the 'target_asset_id' to be acquired during the swap execution.

Enum: "source" "target"
Responses
201

Success Response (New offer has been created)

Response Schema: application/json
object (CreateSwapOfferResponse)
400

Bad request

Response Schema: application/json
Array of objects
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
410

Gone

Response Schema: application/json
Array of objects
422

Validation Errors

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v1/swaps
Request samples
application/json
{
  • "source_asset_id": 1,
  • "target_asset_id": 2,
  • "amount": "1.00000001",
  • "amount_defined_for": "source"
}
Response samples
application/json
{
  • "data": {
    }
}

Search for swaps

This endpoint allows you to search for finished swaps by date range, swap trade ID, or user ID, individually or in combination, with the search period limited to a maximum of 31 days.

SecuritybearerAuth
Request
query Parameters
date_start
string <date>

Search swap trades by date_start.

Example: date_start=2023-06-28
date_end
string <date>

Search swap trades by date_end.

Example: date_end=2023-06-28
swap_trade_id
string <uuid>

Search swap trades by swap_trade_id.

Example: swap_trade_id=d969468d-2be6-4522-977e-ea4d92c45e86
user_id
string <uuid>

Search swap trades by user_id.

Example: user_id=1edfadad-9ab8-6a30-9760-0242ac120003
page_size
integer [ 1 .. 100 ]

Number of elements to be displayed on a page

Example: page_size=10
page
integer >= 1

Display page number

Example: page=1
Responses
200

List swap trades that match the search query parameters

Response Schema: application/json
Array of objects (SwapTradesSearch)
object (PaginationMeta)
object (PaginationLinks)
401

Error

Response Schema: application/json
Array of objects
405

Not Allowed

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/swaps/search
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Swap details by swap offer ID

This endpoint returns details of swap trades associated with a specific swap offer ID. It allows users to retrieve information about the trades that have been executed under that swap offer.

SecuritybearerAuth
Request
path Parameters
Swap-Offer-Id
required
string <uuid>

A string parameter representing the unique identifier of the swap offer for which the details are requested. This ID should be included in the path of the request URL

Responses
200

Get swap details by swap offer ID

Response Schema: application/json
object (GetSwap)
401

Error

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
405

Not Allowed

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/swap/{Swap-Offer-Id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Create a swap offer V2

By submitting a request to this endpoint, users can propose a swap offer, where they specify the assets they would like to exchange and the amount of units, either from the source or from the target asset. The request triggers the creation of a swap offer that can later be accepted by the user within its validity (as defined in offer_validity & expires_at response parameters).

The users can swap any asset that is present in their portfolio to any other supported digital asset on our platform. When swapping an asset, it is first sold as a fiat token (F-Token) before the desired asset is bought. This happens to avoid price fluctuations.

SecuritybearerAuth
Request
header Parameters
bp-user-id
required
string <uuid>

User ID

Request Body schema: application/json

The swap offer to be created.

source_asset_id
required
string <uuid>

The unique identifier of the asset to be sold when the swap is executed.

target_asset_id
required
string <uuid>

The unique identifier of the target asset to be acquired when the swap is executed.

amount
required
string non-empty ^[0-9]+(\.[0-9]{1,8})?$

The quantity of the asset involved in the swap transaction. The specific amount will depend on the context defined by the 'amount_defined_for' parameter.

amount_defined_for
required
string

Specifies the context for the 'amount' parameter. If set to 'source', the 'amount' refers to the quantity or value of the 'source_asset_id' to be sold or exchanged. If set to 'target', the 'amount' refers to the quantity or value of the 'target_asset_id' to be acquired during the swap execution.

Enum: "source" "target"
Responses
201

Success Response (New offer has been created)

Response Schema: application/json
object (CreateSwapOfferResponseV2)
400

Bad request

Response Schema: application/json
Array of objects
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
410

Gone

Response Schema: application/json
Array of objects
422

Validation Errors

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v2/swaps
Request samples
application/json
{
  • "source_asset_id": "e730eb50-5254-4285-9b6b-21e78f979b6f",
  • "target_asset_id": "238c3c18-efa1-459c-b1bb-379156986326",
  • "amount": "1.00000001",
  • "amount_defined_for": "source"
}
Response samples
application/json
{
  • "data": {
    }
}

Search for swaps V2

This endpoint allows you to search for finished swaps by date range, swap trade ID, or user ID, individually or in combination, with the search period limited to a maximum of 31 days.

SecuritybearerAuth
Request
query Parameters
date_start
string <date>

Search swap trades by date_start.

Example: date_start=2023-06-28
date_end
string <date>

Search swap trades by date_end.

Example: date_end=2023-06-28
swap_trade_id
string <uuid>

Search swap trades by swap_trade_id.

Example: swap_trade_id=d969468d-2be6-4522-977e-ea4d92c45e86
user_id
string <uuid>

Search swap trades by user_id.

Example: user_id=1edfadad-9ab8-6a30-9760-0242ac120003
page_size
integer [ 1 .. 100 ]

Number of elements to be displayed on a page

Example: page_size=10
page
integer >= 1

Display page number

Example: page=1
Responses
200

List swap trades that match the search query parameters

Response Schema: application/json
Array of objects (SwapTradesSearchV2)
object (PaginationMeta)
object (PaginationLinks)
401

Error

Response Schema: application/json
Array of objects
405

Not Allowed

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/swaps/search
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Swap details by swap offer ID V2

This endpoint returns details of swap trades associated with a specific swap offer ID. It allows users to retrieve information about the trades that have been executed under that swap offer.

SecuritybearerAuth
Request
path Parameters
Swap-Offer-Id
required
string <uuid>

A string parameter representing the unique identifier of the swap offer for which the details are requested. This ID should be included in the path of the request URL

Responses
200

Get swap details by swap offer ID

Response Schema: application/json
object (GetSwapV2)
401

Error

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
405

Not Allowed

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v2/swap/{Swap-Offer-Id}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Accept a swap offer

This endpoint enables the users to formally accept an existing swap offer. When sending a request, it must include the unique identifier of the swap offer the users wish to accept, thereby indicating their intention to proceed with the exchange under the conditions previously outlined. The endpoint is idempotent so in case of an unknown status code returned a retry to accept the swap should respond with the correct status.

SecuritybearerAuth
Request
path Parameters
Swap-Offer-Id
required
string <uuid>

A string parameter representing the unique identifier of the swap offer to be accepted. This ID should be included in the path of the request URL

query Parameters
external_swap_id
required
string [ 10 .. 100 ] characters

A string parameter representing an external swap ID associated with the offer. It should be included as a query parameter in the URL

header Parameters
bp-user-id
required
string <uuid>

A string parameter representing the User ID (uuid format).

Responses
200

Success Response (The swap trade has bee executed)

Response Schema: application/json
object (AcceptSwapOfferResponse)
202

Accepted

400

Bad request

Response Schema: application/json
Array of objects
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
409

Offer already accepted / A newer offer was created

Response Schema: application/json
Array of objects
410

Gone

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
patch/v1/swaps/{Swap-Offer-Id}/accept
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Accept a swap offer V2

This endpoint enables the users to formally accept an existing swap offer. When sending a request, it must include the unique identifier of the swap offer the users wish to accept, thereby indicating their intention to proceed with the exchange under the conditions previously outlined. The endpoint is idempotent so in case of an unknown status code returned a retry to accept the swap should respond with the correct status.

SecuritybearerAuth
Request
path Parameters
Swap-Offer-Id
required
string <uuid>

A string parameter representing the unique identifier of the swap offer to be accepted. This ID should be included in the path of the request URL

query Parameters
external_swap_id
required
string [ 10 .. 100 ] characters

A string parameter representing an external swap ID associated with the offer. It should be included as a query parameter in the URL

header Parameters
bp-user-id
required
string <uuid>

A string parameter representing the User ID (uuid format).

Responses
200

Success Response (The swap trade has bee executed)

Response Schema: application/json
object (AcceptSwapOfferResponseV2)
202

Accepted

400

Bad request

Response Schema: application/json
Array of objects
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
409

Offer already accepted / A newer offer was created

Response Schema: application/json
Array of objects
410

Gone

Response Schema: application/json
Array of objects
422

Validation Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
patch/v2/swaps/{Swap-Offer-Id}/accept
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Automated Orders

List automated orders

This endpoint allows partners to search and list automated orders by filters such as a date interval, a specific User ID, Asset ID or Order Type.

Partners can navigate easily by using a specific Order ID as cursor and also use page_size parameter to choose the number of items to be displayed.

If no query parameter is specified, the endpoint will return the first 25 records from the database.

SecuritybearerAuth
Request
query Parameters
date_start
string

Start date for search in UTC timezone

Example: date_start=2024-06-01T00:00:00Z
date_end
string

End date for search in UTC timezone

Example: date_end=2024-06-30T23:59:59Z
type
string

Type

Enum: "buy" "sell"
Example: type=buy
user_id
string

Unique User Identifier

Example: user_id=abc2d123-a5db-4dd9-bd18-58a43c35b9ab
asset_id
string

Unique Asset Identifier

Example: asset_id=abc2d123-a5db-4dd9-bd18-58a43c35b9ab
cursor
string

Unique Cursor Identifier

Example: cursor=abc2d123-a5db-4dd9-bd18-58a43c35b9ab
page_size
integer

Number of elements to be displayed on a page

Example: page_size=10
Responses
200

List of orders

Response Schema: application/json
Array of objects (ListOrderResponse)
object (ResponseMeta)
401

Error

Response Schema: application/json
Array of objects
405

Not Allowed

422

Validation Errors

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/orders
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    }
}

Create an automated order

This endpoint allows partners to create an automated buy order for a user.

Users can specify a price target at which a buy order will be executed. Once the market price reaches the set target price, a market buy order will be automatically placed.

The target price can be above the current price to initiate an stop buy order or below the current price to initiate a limit-market order.

Coming soon: automated sell orders are expected in the future iterations. This feature will allow your users to set the target price below the current price to initiate a stop loss order or above the current price to initiate a take-profit order. We will keep you posted.

SecuritybearerAuth
Request
header Parameters
bp-user-id
required
string <uuid>

User ID

Request Body schema: application/json

The automated order to be created.

type
required
string

Order Type

Enum: "buy" "sell"
fiat_id
required
string <uuid>

Fiat ID

asset_id
required
string <uuid>

Asset ID

amount
required
string

Fiat amount for the automated order.

target_price
required
string

The asset price at which the automated order is triggered. It can be above or below the current price.

Responses
201

Success Response (New order has been created)

Response Schema: application/json
object (CreateOrderResponse)
400

Error

Response Schema: application/json
Array of objects
401

Unauthorized

Response Schema: application/json
Array of objects
403

Account is inactive

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
405

Not Allowed

422

Unprocessable Entity

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v1/orders
Request samples
application/json
{
  • "type": "buy",
  • "fiat_id": "ea96ccef-edee-11eb-9bf0-06502b1fe55d",
  • "asset_id": "ea96ccef-edee-11eb-9bf0-06502b1fe55d",
  • "amount": "1.99",
  • "target_price": "40743.41527688"
}
Response samples
application/json
{
  • "data": {
    }
}

Get an automated order details

This endpoint allows partners to get details of an automated order for a user.

It displays extra information such as the asset amount for an order that has already been executed.

SecuritybearerAuth
Request
path Parameters
orderID
required
string <uuid>

A string parameter representing the unique identifier of the automated order. This ID should be included in the path of the request URL.

header Parameters
bp-user-id
required
string <uuid>

User ID

Responses
200

Display order details

Response Schema: application/json
object (GetOrderResponse)
400

Error

Response Schema: application/json
Array of objects
401

Unauthorized

Response Schema: application/json
Array of objects
403

Account is inactive

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
405

Not Allowed

500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/orders/{orderID}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Cancel an automated order

This endpoint allows partners to cancel an automated order for a user, if the order was not executed yet.

SecuritybearerAuth
Request
path Parameters
orderID
required
string <uuid>

A string parameter representing the unique identifier of the automated order to be cancelled. This ID should be included in the path of the request URL.

header Parameters
bp-user-id
required
string <uuid>

User ID

Responses
204

Success Response (order has been cancelled)

400

Error

Response Schema: application/json
Array of objects
401

Unauthorized

Response Schema: application/json
Array of objects
403

Account is inactive

Response Schema: application/json
Array of objects
404

Not Found

Response Schema: application/json
Array of objects
405

Not Allowed

500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
delete/v1/orders/{orderID}
Request samples
Response samples
application/json
{
  • "errors": [
    ]
}

Corporate onboarding

Get risk questions

The endpoint returns the list of all possible risk questions and answers that the business needs to select during the onboarding process before starting investing.

You can pass the parameter Accept-Language with a string containing ISO 639-1 language code to get the list of risk questions and answers translated into the chosen language. Currently, Bitpanda supports translations for English and German. The default language is English (en). If you pass the parameter for a language that does not have an existing translation in our database, the response returns the risk questions and answers in English.

SecuritybearerAuth
Request
header Parameters
Accept-Language
string

ISO 639-1 language used for translation

Example: en
Responses
200

Success Response

Response Schema: application/json
Array of objects (RiskQuestion)
401

Unauthorized

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
429

Too Many Requests

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/risk
Request samples
Response samples
application/json
{
  • "data": [
    ]
}

Get a list of available businesses

The endpoint returns a list of all businesses enabled globally for the Partner

SecuritybearerAuth
Request
query Parameters
external_id
string

Query to search businesses by external ID

Example: external_id=ext-id
name
string

Query to search businesses by name

Example: name=test
pid
string <uuid>

Query to search businesses by PID

Example: pid=550e8400-e29b-41d4-a716-446655440000
status
string

Filter businesses by status

Enum: "approved" "not_approved"
Example: status=approved
page_size
integer

Number of elements to be displayed on a page

Example: page_size=1
page
integer

Display page number

Example: page=1
sort_by
string

Sort businesses

Enum: "name" "reviewed_at" "created_at"
Example: sort_by=reviewed_at
sort_order
string

Sort order

Enum: "asc" "desc"
Example: sort_order=desc
Responses
200

List businesses

Response Schema: application/json
Array of objects (Business)
object (PaginationMeta)
object (PaginationLinks)
401

Invalid user

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/businesses
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Create new business

The endpoint allows to create a new business in Bitpanda system. Each business will be associated with one Bitpanda user.

SecuritybearerAuth
Request
Request Body schema: application/json

Request details

external_id
string

External ID

full_legal_name
required
string
business_name
string
email
string
website
string
required
object
legal_type
required
string
registration_number
required
string
lei_number
string
service
string
industry
required
string
tax_number
string
vat_number
string
nace_code
string
account_purpose
string
ext_risk_level
string
ext_pep_status
string
last_kyc_update
string
next_kyc_update
string
us_tax_residency
boolean
entity_tax_classification
string (EntityTaxClassification)

Entity tax classification

Enum: "investment-entity-managed" "investment-entity-other" "financial-institution-other" "publicly-traded-entity" "government-central-bank" "international-organisation" "active-nfe" "passive-nfe"
acting_on_own_behalf
required
boolean
terms
Array of integers

The IDs of the accepted terms and conditions and privacy policy

Array of objects (AmlQuestionAnswerRequest)
Array of objects (AppropriatenessQuestionAnswerRequest)

Appropriateness test answers shall be provided latest before the first trade with stocks or ETFs

Array of objects (RiskQuestionAnswerRequest)
Array of objects (UserMultipleTax)
Responses
201

New business and user has been created

Response Schema: application/json
object
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v1/businesses
Request samples
application/json
{
  • "external_id": "Ext-Id-1",
  • "full_legal_name": "Acme Inc",
  • "business_name": "Acme",
  • "email": "username@acme.com",
  • "website": "http://acme.com",
  • "address": {
    },
  • "legal_type": "GmbH",
  • "registration_number": "AB123CD",
  • "lei_number": "549300E00W82GZ93PU70",
  • "service": "Digital Services",
  • "industry": "IT Services",
  • "tax_number": "123-45-6789",
  • "vat_number": "FR987654321",
  • "nace_code": "62.010 - Computer programming activities",
  • "account_purpose": "Research and Development",
  • "ext_risk_level": "Moderate Risk",
  • "ext_pep_status": "PEP: Family Member",
  • "last_kyc_update": "2022-07-20T08:14:20+00:00",
  • "next_kyc_update": "2023-07-20T08:14:20+00:00",
  • "us_tax_residency": false,
  • "entity_tax_classification": "investment-entity-managed",
  • "acting_on_own_behalf": true,
  • "terms": [
    ],
  • "aml": [
    ],
  • "appropriateness": [
    ],
  • "risk": [
    ],
  • "tax_identification_numbers": [
    ]
}
Response samples
application/json
{
  • "data": {
    }
}

Get business details

The endpoint returns the business’s details based on business ID

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

query Parameters
user_journey
string (UserJourney)

Filters terms_not_accepted for a specific user journey. If not provided, all not accepted terms are included in the response.

Enum: "onboarding" "trading_stocks_buy" "trading_stocks_sell" "trading_etf_buy" "trading_etf_sell" "trading_metals_buy" "trading_metals_sell" "change_of_circumstances_dac8" "appropriateness_consent" "appropriateness_warning"
header Parameters
Accept-Language
string

ISO 639-1 2-letter code representing user's language

Example: en
Responses
200

Get business details

Response Schema: application/json
object (BusinessDetails)
400

Invalid user

Response Schema: application/json
Array of objects
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/businesses/{Business-ID}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Update an existing business

The endpoint allows to update the details for existing business.

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business ID

Example: 1ee6439d-efd5-6946-80c2-7312392495b8
Request Body schema: application/json

Request details

external_id
string

External ID

full_legal_name
string
business_name
string
email
string
website
string
object
legal_type
string
registration_number
string
lei_number
string
service
string
industry
string
tax_number
string
vat_number
string
nace_code
string
account_purpose
string
ext_risk_level
string
ext_pep_status
string
last_kyc_update
string
next_kyc_update
string
us_tax_residency
boolean
entity_tax_classification
string (EntityTaxClassification)

Entity tax classification

Enum: "investment-entity-managed" "investment-entity-other" "financial-institution-other" "publicly-traded-entity" "government-central-bank" "international-organisation" "active-nfe" "passive-nfe"
acting_on_own_behalf
boolean
terms
Array of integers

The IDs of the accepted terms and conditions and privacy policy

Array of objects (AmlQuestionAnswerRequest)
Array of objects (AppropriatenessQuestionAnswerRequest)

Appropriateness test answers shall be provided latest before the first trade with stocks or ETFs

Array of objects (RiskQuestionAnswerRequest)
Array of objects (UserMultipleTax)
Responses
200

Business details has been updated

Response Schema: application/json
object
401

Invalid user

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
409

Conflict

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
patch/v1/businesses/{Business-ID}
Request samples
application/json
{
  • "external_id": "Ext-Id-1",
  • "full_legal_name": "Acme Inc",
  • "business_name": "Acme",
  • "email": "username@acme.com",
  • "website": "http://acme.com",
  • "address": {
    },
  • "legal_type": "GmbH",
  • "registration_number": "AB123CD",
  • "lei_number": "549300E00W82GZ93PU70",
  • "service": "Digital Services",
  • "industry": "IT Services",
  • "tax_number": "123-45-6789",
  • "vat_number": "FR987654321",
  • "nace_code": "62.010 - Computer programming activities",
  • "account_purpose": "Research and Development",
  • "ext_risk_level": "Moderate Risk",
  • "ext_pep_status": "PEP: Family Member",
  • "last_kyc_update": "2022-07-20T08:14:20+00:00",
  • "next_kyc_update": "2023-07-20T08:14:20+00:00",
  • "us_tax_residency": false,
  • "entity_tax_classification": "investment-entity-managed",
  • "acting_on_own_behalf": true,
  • "terms": [
    ],
  • "aml": [
    ],
  • "appropriateness": [
    ],
  • "risk": [
    ],
  • "tax_identification_numbers": [
    ]
}
Response samples
application/json
{
  • "data": {
    }
}

Create Authorized Individual

The endpoint allows to create a new Authorized Individual.

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

Request Body schema: application/json

Request details

external_id
string

External ID

first_name
required
string

First name

last_name
required
string

Last name

email
string

Email address

phone
string

Phone number

birth_place
required
string

Birth place

birth_date
required
string

Birth date in YYYY-MM-DD format. Authorized individual must be older than 18 years, but not older than 100 years.

citizenship
required
string

Citizenship country code in ISO 3166-1 alpha-2

required
object
required
object
ext_pep_status
string

External PEP status

Responses
201

New Authorized Individual has been created

Response Schema: application/json
object
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v1/businesses/{Business-ID}/authorized-individuals
Request samples
application/json
{
  • "external_id": "Ext-Id-1",
  • "first_name": "FirstName",
  • "last_name": "LastName",
  • "email": "firstname.lastname@domain.tld",
  • "phone": "38712345678",
  • "birth_place": "Barcelona",
  • "birth_date": "1990-12-31",
  • "citizenship": "AT",
  • "address": {
    },
  • "identification_document": {
    },
  • "ext_pep_status": "External PEP status value"
}
Response samples
application/json
{
  • "data": {
    }
}

Get a list of Authorized Individuals

The endpoint returns a list of all Authorized Individuals for a specific Business ID

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

query Parameters
external_id
string

Query to search authorized individuals by external ID

Example: external_id=ext-id
page_size
integer

Number of elements to be displayed on a page

Example: page_size=1
page
integer

Display page number

Example: page=1
sort_by
string

Sort authorized individuals

Enum: "first_name" "last_name" "created_at"
Example: sort_by=created_at
sort_order
string

Sort order

Enum: "asc" "desc"
Example: sort_order=desc
Responses
200

Authorized Individuals list

Response Schema: application/json
Array of objects (AuthorizedIndividual)
object (PaginationMeta)
object (PaginationLinks)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/businesses/{Business-ID}/authorized-individuals
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Get Authorized Individual details

The endpoint returns the Authorized Individual’s details based on Business-ID and Authorized-Individual-ID

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

Authorized-Individual-ID
required
string <uuid>

Authorized-Individual-ID

Responses
200

Authorized Individual details

Response Schema: application/json
object (AuthorizedIndividual)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/businesses/{Business-ID}/authorized-individuals/{Authorized-Individual-ID}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Update Authorized Individual

The endpoint allows to update an existing Authorized Individual.

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

Authorized-Individual-ID
required
string <uuid>

Authorized-Individual-ID

Request Body schema: application/json

Request details

external_id
string

External ID

first_name
string

First name

last_name
string

Last name

email
string

Email address

phone
string

Phone number

birth_place
string

Birth place

birth_date
string

Birth date in YYYY-MM-DD format

citizenship
string

Citizenship country code in ISO 3166-1 alpha-2

object
object
ext_pep_status
string

External PEP status

Responses
200

The Authorized Individual has been updated

Response Schema: application/json
object
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
patch/v1/businesses/{Business-ID}/authorized-individuals/{Authorized-Individual-ID}
Request samples
application/json
{
  • "external_id": "Ext-Id-1",
  • "first_name": "FirstName",
  • "last_name": "LastName",
  • "email": "firstname.lastname@domain.tld",
  • "phone": "38712345678",
  • "birth_place": "Barcelona",
  • "birth_date": "1990-12-31",
  • "citizenship": "AT",
  • "address": {
    },
  • "identification_document": {
    },
  • "ext_pep_status": "External PEP status value"
}
Response samples
application/json
{
  • "data": {
    }
}

Delete Authorized Individual

The endpoint allows to delete an existing Authorized Individual.

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

Authorized-Individual-ID
required
string <uuid>

Authorized-Individual-ID

Responses
204

The Authorized Individual has been deleted

401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
delete/v1/businesses/{Business-ID}/authorized-individuals/{Authorized-Individual-ID}
Request samples
Response samples
application/json
{
  • "errors": [
    ]
}

Create Shareholder

The endpoint allows to create a new Shareholder.

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

Request Body schema: application/json

Request details

legal_name
required
string

Legal Name

person_type
required
string

Person type

Enum: "legal_person" "natural_person"
birth_date
required
string

Birth date in YYYY-MM-DD format. Shareholder must be older than 18 years, but not older than 100 years.

residence
required
string

Residence country in ISO 3166-1 alpha-2

direct_ownership_percentage
required
number <float>

Direct ownership percentage

Responses
201

New Shareholder has been created

Response Schema: application/json
object
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v1/businesses/{Business-ID}/shareholders
Request samples
application/json
{
  • "legal_name": "John Smith",
  • "person_type": "legal_person",
  • "birth_date": "1990-12-31",
  • "residence": "AT",
  • "direct_ownership_percentage": 0.51
}
Response samples
application/json
{
  • "data": {
    }
}

Get a list of Shareholders

The endpoint returns a list of all Shareholders for a specific Business ID

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

query Parameters
page_size
integer

Number of elements to be displayed on a page

Example: page_size=1
page
integer

Display page number

Example: page=1
sort_by
string

Sort shareholders

Enum: "legal_name" "created_at"
Example: sort_by=created_at
sort_order
string

Sort order

Enum: "asc" "desc"
Example: sort_order=desc
Responses
200

Shareholder list

Response Schema: application/json
Array of objects (Shareholder)
object (PaginationMeta)
object (PaginationLinks)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/businesses/{Business-ID}/shareholders
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Get Shareholder details

The endpoint returns the Shareholder's details based on Business-ID and Shareholder-ID

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

Shareholder-ID
required
string <uuid>

Shareholder-ID

Responses
200

Shareholder details

Response Schema: application/json
object (Shareholder)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/businesses/{Business-ID}/shareholders/{Shareholder-ID}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Update Shareholder

The endpoint allows to update an existing Shareholder.

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

Shareholder-ID
required
string <uuid>

Shareholder-ID

Request Body schema: application/json

Request details

legal_name
string

Legal Name

person_type
string

Person type

Enum: "legal_person" "natural_person"
birth_date
string

Birth date in YYYY-MM-DD format

residence
string

Residence country in ISO 3166-1 alpha-2

direct_ownership_percentage
number <float>

Direct ownership percentage

Responses
200

The Shareholder has been updated

Response Schema: application/json
object
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
patch/v1/businesses/{Business-ID}/shareholders/{Shareholder-ID}
Request samples
application/json
{
  • "legal_name": "John Smith",
  • "person_type": "legal_person",
  • "birth_date": "1990-12-31",
  • "residence": "AT",
  • "direct_ownership_percentage": 0.51
}
Response samples
application/json
{
  • "data": {
    }
}

Delete Shareholder

The endpoint allows to delete an existing Shareholder.

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

Shareholder-ID
required
string <uuid>

Shareholder-ID

Responses
204

The Shareholder has been deleted

401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
delete/v1/businesses/{Business-ID}/shareholders/{Shareholder-ID}
Request samples
Response samples
application/json
{
  • "errors": [
    ]
}

Create Beneficial Owner

The endpoint allows to create a new Beneficial Owner.

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

Request Body schema: application/json

Request details

ownership_percentage
required
number <float>

Ownership percentage (numeric value between 0 and 1)

first_name
required
string

First name

last_name
required
string

Last name

citizenship
required
string

Citizenship country code in ISO 3166-1 alpha-2

birth_date
required
string

Birth date in YYYY-MM-DD format. Beneficial owner must be older than 18 years, but not older than 100 years.

place_of_birth
string

Place of birth

ext_pep_status
string

External PEP status

required
object
object
beneficial_owner_type
string (BeneficialOwnerType)

Beneficial owner type

Enum: "ownership" "control"
beneficial_owner_controlling_person_type
string (BeneficialOwnerControllingPersonType)

Controlling person type (for beneficial_owner_type: control only!)

Enum: "legal-person-ownership" "legal-person-other-means" "legal-person-senior-official" "trust-settlor" "trust-trustee" "trust-protector" "trust-beneficiary" "trust-other" "legal-arrangement-settlor-equivalent" "legal-arrangement-trustee-equivalent" "legal-arrangement-protector-equivalent" "legal-arrangement-beneficiary-equivalent" "legal-arrangement-other-equivalent"
Array of objects (UserMultipleTax)
Responses
201

New Beneficial Owner has been created

Response Schema: application/json
object
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v1/businesses/{Business-ID}/beneficial-owners
Request samples
application/json
{
  • "ownership_percentage": "0.75",
  • "first_name": "John",
  • "last_name": "Doe",
  • "citizenship": "AT",
  • "birth_date": "1990-12-31",
  • "place_of_birth": "Barcelona",
  • "ext_pep_status": "Not PEP",
  • "address": {
    },
  • "identification_document": {
    },
  • "beneficial_owner_type": "ownership",
  • "beneficial_owner_controlling_person_type": "legal-person-ownership",
  • "tax_identification_numbers": [
    ]
}
Response samples
application/json
{
  • "data": {
    }
}

Get a list of Beneficial Owners

The endpoint returns a list of all Beneficial Owners for a specific Business ID

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

query Parameters
page_size
integer

Number of elements to be displayed on a page

Example: page_size=1
page
integer

Display page number

Example: page=1
sort_by
string

Sort beneficial owners

Enum: "first_name" "last_name" "created_at"
Example: sort_by=created_at
sort_order
string

Sort order

Enum: "asc" "desc"
Example: sort_order=desc
Responses
200

Beneficial Owners list

Response Schema: application/json
Array of objects (BeneficialOwner)
object (PaginationMeta)
object (PaginationLinks)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/businesses/{Business-ID}/beneficial-owners
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Get Beneficial Owner details

The endpoint returns the Beneficial Owner's details based on Business-ID and Beneficial-Owner-ID

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

Beneficial-Owner-ID
required
string <uuid>

Beneficial-Owner-ID

Responses
200

Beneficial Owner details

Response Schema: application/json
object (BeneficialOwner)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/businesses/{Business-ID}/beneficial-owners/{Beneficial-Owner-ID}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Update Beneficial Owner

The endpoint allows to update an existing Beneficial Owner.

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

Beneficial-Owner-ID
required
string <uuid>

Beneficial-Owner-ID

Request Body schema: application/json

Request details

ownership_percentage
number <float>

Ownership percentage (numeric value between 0 and 1)

first_name
string

First name

last_name
string

Last name

citizenship
string

Citizenship country code in ISO 3166-1 alpha-2

birth_date
string

Birth date in YYYY-MM-DD format

place_of_birth
string

Place of birth

ext_pep_status
string

External PEP status

object
object
beneficial_owner_type
string (BeneficialOwnerType)

Beneficial owner type

Enum: "ownership" "control"
beneficial_owner_controlling_person_type
string (BeneficialOwnerControllingPersonType)

Controlling person type (for beneficial_owner_type: control only!)

Enum: "legal-person-ownership" "legal-person-other-means" "legal-person-senior-official" "trust-settlor" "trust-trustee" "trust-protector" "trust-beneficiary" "trust-other" "legal-arrangement-settlor-equivalent" "legal-arrangement-trustee-equivalent" "legal-arrangement-protector-equivalent" "legal-arrangement-beneficiary-equivalent" "legal-arrangement-other-equivalent"
Array of objects (UserMultipleTax)
Responses
200

The Beneficial Owner has been updated

Response Schema: application/json
object
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
patch/v1/businesses/{Business-ID}/beneficial-owners/{Beneficial-Owner-ID}
Request samples
application/json
{
  • "ownership_percentage": "0.75",
  • "first_name": "John",
  • "last_name": "Doe",
  • "citizenship": "AT",
  • "birth_date": "1990-12-31",
  • "place_of_birth": "Barcelona",
  • "ext_pep_status": "Not PEP",
  • "address": {
    },
  • "identification_document": {
    },
  • "beneficial_owner_type": "ownership",
  • "beneficial_owner_controlling_person_type": "legal-person-ownership",
  • "tax_identification_numbers": [
    ]
}
Response samples
application/json
{
  • "data": {
    }
}

Delete Beneficial Owner

The endpoint allows to delete an existing Beneficial Owner.

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

Beneficial-Owner-ID
required
string <uuid>

Beneficial-Owner-ID

Responses
204

The Beneficial Owner has been deleted

401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
delete/v1/businesses/{Business-ID}/beneficial-owners/{Beneficial-Owner-ID}
Request samples
Response samples
application/json
{
  • "errors": [
    ]
}

Create Managing Director

The endpoint allows to create a new Managing Director.

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

Request Body schema: application/json

Request details

legal_name
required
string

Legal Name

person_type
required
string

Person type

Enum: "legal_person" "natural_person"
legal_form
string

Legal Form. Required when person_type is legal_person.

register_number
string

Register Number. Required when person_type is legal_person.

object
Responses
201

New Managing Director has been created

Response Schema: application/json
object
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v1/businesses/{Business-ID}/managing-directors
Request samples
application/json
{
  • "legal_name": "John Smith",
  • "person_type": "legal_person",
  • "legal_form": "some_legal_form",
  • "register_number": "AT 1441251007-2",
  • "address": {
    }
}
Response samples
application/json
{
  • "data": {
    }
}

Get a list of Managing Directors

The endpoint returns a list of all Managing Directors for a specific Business ID

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

query Parameters
page_size
integer

Number of elements to be displayed on a page

Example: page_size=1
page
integer

Display page number

Example: page=1
sort_by
string

Sort managing directors

Enum: "legal_name" "created_at"
Example: sort_by=created_at
sort_order
string

Sort order

Enum: "asc" "desc"
Example: sort_order=desc
Responses
200

Managing Director list

Response Schema: application/json
Array of objects (ManagingDirector)
object (PaginationMeta)
object (PaginationLinks)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/businesses/{Business-ID}/managing-directors
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Get Managing Director details

The endpoint returns the Managing Director's details based on Business-ID and Managing-Director-ID

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

Managing-Director-ID
required
string <uuid>

Managing-Director-ID

Responses
200

Managing Director details

Response Schema: application/json
object (ManagingDirector)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/businesses/{Business-ID}/managing-directors/{Managing-Director-ID}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Update Managing Director

The endpoint allows to update an existing Managing Director.

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

Managing-Director-ID
required
string <uuid>

Managing-Director-ID

Request Body schema: application/json

Request details

legal_name
string

Legal Name

person_type
string

Person type

Enum: "legal_person" "natural_person"
legal_form
string

Legal Form

register_number
string

Register Number

object
Responses
200

The Managing Director has been updated

Response Schema: application/json
object
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
patch/v1/businesses/{Business-ID}/managing-directors/{Managing-Director-ID}
Request samples
application/json
{
  • "legal_name": "John Smith",
  • "person_type": "legal_person",
  • "legal_form": "some_legal_form",
  • "register_number": "AT 1441251007-2",
  • "address": {
    }
}
Response samples
application/json
{
  • "data": {
    }
}

Delete Managing Director

The endpoint allows to delete an existing Managing Director.

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

Managing-Director-ID
required
string <uuid>

Managing-Director-ID

Responses
204

The Managing Director has been deleted

401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
delete/v1/businesses/{Business-ID}/managing-directors/{Managing-Director-ID}
Request samples
Response samples
application/json
{
  • "errors": [
    ]
}

Create Individual

The endpoint allows to create a new Individual.

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

Request Body schema: application/json

Request details

external_id
string

External ID

first_name
required
string

First name

last_name
required
string

Last name

email
string

Email address

phone
string

Phone number

birth_place
required
string

Birth place

birth_date
required
string

Birth date in YYYY-MM-DD format. Individual must be older than 18 years, but not older than 100 years.

citizenship
required
string

Citizenship country code in ISO 3166-1 alpha-2

required
object
required
object
Responses
201

New Individual has been created

Response Schema: application/json
object
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
post/v1/businesses/{Business-ID}/individuals
Request samples
application/json
{
  • "external_id": "Ext-Id-1",
  • "first_name": "FirstName",
  • "last_name": "LastName",
  • "email": "firstname.lastname@domain.tld",
  • "phone": "38712345678",
  • "birth_place": "Barcelona",
  • "birth_date": "1990-12-31",
  • "citizenship": "AT",
  • "address": {
    },
  • "identification_document": {
    }
}
Response samples
application/json
{
  • "data": {
    }
}

Get a list of Individuals

The endpoint returns a list of all Individuals for a specific Business ID

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

query Parameters
external_id
string

Query to search individuals by external ID

Example: external_id=ext-id
page_size
integer

Number of elements to be displayed on a page

Example: page_size=1
page
integer

Display page number

Example: page=1
sort_by
string

Sort individuals

Enum: "first_name" "last_name" "created_at"
Example: sort_by=created_at
sort_order
string

Sort order

Enum: "asc" "desc"
Example: sort_order=desc
Responses
200

Individuals list

Response Schema: application/json
Array of objects (Individual)
object (PaginationMeta)
object (PaginationLinks)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/businesses/{Business-ID}/individuals
Request samples
Response samples
application/json
{
  • "data": [
    ],
  • "meta": {
    },
  • "links": {
    }
}

Get Individual details

The endpoint returns the Individual’s details based on Business-ID and Individual-ID

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

Individual-ID
required
string <uuid>

Individual-ID

Responses
200

Individual details

Response Schema: application/json
object (Individual)
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
get/v1/businesses/{Business-ID}/individuals/{Individual-ID}
Request samples
Response samples
application/json
{
  • "data": {
    }
}

Update Individual

The endpoint allows to update an existing Individual.

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

Individual-ID
required
string <uuid>

Individual-ID

Request Body schema: application/json

Request details

external_id
string

External ID

first_name
string

First name

last_name
string

Last name

email
string

Email address

phone
string

Phone number

birth_place
string

Birth place

birth_date
string

Birth date in YYYY-MM-DD format

citizenship
string

Citizenship country code in ISO 3166-1 alpha-2

object
object
Responses
200

The Individual has been updated

Response Schema: application/json
object
401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
422

Error

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
patch/v1/businesses/{Business-ID}/individuals/{Individual-ID}
Request samples
application/json
{
  • "external_id": "Ext-Id-1",
  • "first_name": "FirstName",
  • "last_name": "LastName",
  • "email": "firstname.lastname@domain.tld",
  • "phone": "38712345678",
  • "birth_place": "Barcelona",
  • "birth_date": "1990-12-31",
  • "citizenship": "AT",
  • "address": {
    },
  • "identification_document": {
    }
}
Response samples
application/json
{
  • "data": {
    }
}

Delete Individual

The endpoint allows to delete an existing Individual.

SecuritybearerAuth
Request
path Parameters
Business-ID
required
string <uuid>

Business-ID

Individual-ID
required
string <uuid>

Individual-ID

Responses
204

The Individual has been deleted

401

Unauthorized

Response Schema: application/json
Array of objects
403

Forbidden

Response Schema: application/json
Array of objects
404

Not found

Response Schema: application/json
Array of objects
500

Internal Error

Response Schema: application/json
Array of objects
503

Maintenance or Service unavailable

Response Schema: application/json
Array of objects
delete/v1/businesses/{Business-ID}/individuals/{Individual-ID}
Request samples
Response samples
application/json
{
  • "errors": [
    ]
}