User identifiers
The Investment API accepts first priority identifiers for non-CONCAT countries. If the user does not have a first priority identifier (i.e. does not have a passport), the second priority identifier can be used. For example, in the Netherlands this would be the number of the national identity card.
This guide describes which identifier standards are accepted by our API. For each standard, we also provide a regular expression that can be used to ensure that a specified number is validly formatted.
CONCAT identifier
Once the user is created and the identifier needed is for a nationality that corresponds to the list of country codes below, whose 1st priority identifier is a CONCAT identifier, then it is automatically generated on our side. This allows Upvest to create transaction reports for our clients.
- AT - Austria
- DE - Germany
- FR - France
- HU - Hungary
- IE - Ireland
- LU - Luxembourg
Note that there is no need to create this identifier explicitly via the API.
If you want to add a CONCAT identifier for the countries whose 2nd or 3rd prio identifier is CONCAT according to the table below, please get in touch with the Upvest OPS team for such cases.
We do not currently support creating CONCAT identifiers through our API.
Users with multiple nationalities
If a user has more than one nationality, the first nationality will be used in alphabetical order.
The exception is that nationalities from the EEA (European Economic Area) always take precedence over nationalities from non-EEA countries.
Reference identifiers
The following table specifies which identifiers are recognised in which countries.
Country Code | 1st Priority Identifier Standard | 2nd Priority Identifier Standard | 3rd Priority Identifier Standard |
---|---|---|---|
BE | BNN (Belgian National Number) Regex: ^[0-9]{2}([0][1-9]|[1][012])([0][1-9]|[12][0-9]|[3][01])[0-9]{5}$ | CONCAT | |
BG | BPN (Bulgarian National Number) Regex: ^[0-9]{2}([0][1-9]|[1][012]|[4][1-9]|[5][012])([0][1-9]|[12][0-9]|[3][01])[0-9]{4}$ | CONCAT | |
CY | CYPN (Cypriot National Passport Number) Regex: ^[A-Z][0-9]{6,8}$ | CONCAT | |
CZ | CZNI (Czech National Identification Number) Regex: ^[0-9]{2,6}-?[0-9]{2,10}\\/?[0-9]{4}$ | CZPN (National Passport Number) Regex: ^[0-9]{8,10}$ | CONCAT |
DK | DPIC (Danish Personal Identity Code) Regex: ^([0][1-9]|[12][0-9]|[3][01])([0][1-9]|[1][012])[0-9]{2}[0-9]{4}$ | CONCAT | |
EE | EPIC (Estonian Personal Identification Code) Regex: ^[1-6][0-9]{2}([0][1-9]|[1][012])([0][1-9]|[12][0-9]|[3][01])[0-9]{4}$ | ||
ES | STIN (Spanish Tax Identification Number) Regex: ^[A-Z0-9]{9}$ | ||
FI | FPIN (Finnish Personal Identification Code) Regex: ^([0][1-9]|[1][0-9]|[2][0-9]|[3][01])([0][1-9]|[1][012])[0-9]{2}[A+-][0-9]{3}(?![GIOQZ])[A-Z0-9]$ | CONCAT | |
GB | GPN (General Passport Number) Regex: ^[A-Z0-9]{3,}$ | CONCAT | |
GR | DSS (Greek DSS Investor Share) Regex: ^[0-9]{10}$ | CONCAT | |
HR | OIB (Croatian Personal Identification Number) Regex: ^[0-9]{11}$ | CONCAT | |
IS | IPIC (Icelandic Personal Identity Code) Regex: ^([0][1-9]|[1][0-9]|[2][0-9]|[3][01])([0][1-9]|[1][012])[0-9]{2}[0-9]{4}$ | ||
IT | FSC (Italian Fiscal Code) Regex: ^[A-Z]{6}[0-9LMNPQRSTUV]{2}[ABCDEHLMPRST]{1}[0-9LMNPQRSTUV]{2}[A-Z]{1}[0-9LMNPQRSTUV]{3}[A-Z]{1}$ | ||
LI | LIPB (Liechtenstein National Passport Number) Regex: ^[A-Z][0-9]{5}$ | CONCAT | |
LT | LTPC (Lithuanian Personal Code) Regex: ^[1-6][0-9]{2}[0,1][0-9][0-9]{2}[0-9]{4}$ | LTPN (National Identity Card Number) Regex: ^[0-9]{8}$ | CONCAT |
LV | LVPC (Latvian Personal Code) Regex: ^(0[1-9]|[12][0-9]|3[01])(0[1-9]|1[012])(\\d{2})[-]?(0|1|2)(\\d{4})$ | CONCAT | |
MT | MTNI (Maltese National Identification Number) Regex: ^[0-9]{7}[A-Z]$ | MTPN (National Passport Number) Regex: ^[0-9]{7}$ | |
NL | NLPN (Dutch National Passport Number) Regex: ^[A-NP-Z]{2}[A-NP-Z0-9]{6}[0-9]$ | NLDN (National Identity Card Number) Regex: ^[A-NP-Z]{2}[A-NP-Z1-9]{6}[1-9]$ | CONCAT |
NO | NDPI (Norwegian 11 Digit Personal ID) Regex: ^([0][1-9]|[12][0-9]|[3][01])([0][1-9]|[1][012])[0-9]{7}$ | CONCAT | |
PL | PESEL (Polish National Identification Number) Regex: ^[0-9]{11}$ | PLTN Tax Number (Numer Identyfikacji Podatkowej) Regex: ^[0-9]{10}$ | |
PT | PTTN (Portuguese Tax Number) ^[0-9]{9}$ | PTNP (National Passport Number) Regex: ^([A-Z][0-9]{6})$``^([A-Z]{2}[0-9]{6})$ | CONCAT |
RO | RONI (Romanian National Identification Number) Regex: ^[1-9]\\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\\d|3[01])(0[1-9]|[1-4]\\d|5[0-2]|99)(00[1-9]|0[1-9]\\d|[1-9]\\d\\d)\\d$ | ROPN (National Passport Number) Regex: ^[A-Z]{2}[0-9]{6}$ | CONCAT |
SE | SEPI (Swedish Personal Identity Number) Regex: ^((19)|(20))[0-9]{2}([0][1-9]|[1][012])([0][1-9]|[12][0-9]|[3][01])[0-9]{4}$ | CONCAT | |
SI | EMSO (Slovenian Personal Identification Number) Regex: ^([0][1-9]|[12][0-9]|[3][01])([0][1-9]|[1][012])[0-9]{3}[1-9][0-9]{5}$ | CONCAT | |
SK | SKPN (Slovakian Personal Number) Regex: ^[0-9]{2,6}-?[0-9]{2,10}[0-9]{4}$ | SKPS (National Passport Number) Regex: ^[A-Z]{2}[0-9]{7}$ | CONCAT |
Any other ISO2 country code | GPN (General Passport Number) Regex: ^[A-Z0-9]{3,}$ |