Operating Model:

User Checks

Download Spec

All user checks related paths.

Get checks for a user

get /users/{user_id}/checks

Lists all checks for a user specified by ID.

Authentication

OAuth2 oauth-client-credentials

Required Scopes:

checks:readchecks:admin

All Scopes

  • accounts:admin · Create/update/delete accounts and account groups
  • accounts:read · Read accounts and account groups
  • checks:admin · Create checks
  • checks:read · Read checks
  • credit_fundings:read · Credit Fundings read operations
  • fees:admin · Create and read fee operations
  • fees:read · Read fee operations
  • instruments:read · Read instruments
  • mandates:admin · Create/update/delete mandates
  • mandates:read · Read mandates
  • orders:admin · Create/update/delete orders
  • orders:read · Read orders
  • payments:admin · Payins and withdrawal operations
  • payments:read · Payins and withdrawal read operations
  • portfolios:admin · Modify portfolios
  • portfolios:read · Read portfolios
  • positions:read · Read positions
  • reference_accounts:admin · Create/update/delete reference accounts
  • reference_accounts:read · Read reference accounts
  • reports:read · Read reports
  • taxes:admin · Modify tax residencies
  • taxes:read · Read tax residencies
  • topups:admin · Topups operations
  • topups:read · Topups read operations
  • transactions:read · Read cash and securities transactions
  • users:admin · Create/update/delete users
  • users:read · Read users
  • valuations:read · Read valuations
  • webhooks:admin · Create/update/delete webhooks
  • webhooks:read · Read webhooks
Flow Type:
Client Credentials
Token URL:
https://sandbox.upvest.co/auth/token

upvest-client-id

string

uuid

required

Tenant Client ID

Example
"ebabcf4d-61c3-4942-875c-e265a7c2d062"

authorization

string

^Bearer [a-zA-Z0-9\-\._~+/]*=*

required

Bearer (access) token from the OAuth flow with correct scopes. https://datatracker.ietf.org/doc/html/rfc6750

Example
"Bearer c2VjcmV0Cg=="

signature

string

required

https://tools.ietf.org/id/draft-ietf-httpbis-message-signatures-01.html#name-the-signature-http-header

signature-input

string

required

https://tools.ietf.org/id/draft-ietf-httpbis-message-signatures-01.html#name-the-signature-input-http-he

upvest-api-version

string

Upvest API version (Note: Do not include quotation marks)

Default
"1"
Enum
  • 1
Example
1

user_id

string

uuid

required

User unique identifier.

Responses

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/json

data

array[One Of]

required

User Check

One Of

User Check - Know your customer

object (User Check - Know your customer)

The KYC (Know your customer) check is completed by the client sharing the valid and relevant KYC data for the user.

id

string

uuid

required

User Check unique identifier.

user_id

string

uuid

required

User unique identifier.

type

string

required

The type of check must be “KYC”.

Default
"KYC"

check_confirmed_at

string

date-time

required

Completion date and time of the KYC check. Must not be older than 24 months.

data_download_link

string

url

required

Download link for the KYC evidence file. Should be a valid URL.

Max Length
1000

document_type

string

required

The type of document used in the KYC process.

  • PASSPORT - Passport
  • ID_CARD - National Identification document
Enum
  • PASSPORT
  • ID_CARD

document_expiration_date

string

date

required

Expiration date of the document used in KYC process in YYYY-MM-DD format.

nationality

string

^[A-Z]{2}$

required

Country code. ISO 3166 alpha-2 Codes.

status

string

required

Final status of the KYC check.

  • IN_PROGRESS - KYC check is in progress
  • PASSED - KYC check passed
  • FAILED - KYC check failed
Enum
  • IN_PROGRESS
  • PASSED
  • FAILED

provider

string

required

Provider that was used to perform the KYC check.

Max Length
100

method

string

required

Method used for AML compliant KYC process

  • VIDEO_ID - Video identification
  • IN_PERSON_ID - In person identification at the post office or the client’s outlet
  • ELECTRONIC_ID - Advanced electronic identification methods (namely German eID)
Enum
  • VIDEO_ID
  • IN_PERSON_ID
  • ELECTRONIC_ID

confirmed_address

object (confirmed_address)

Address

address_line1

string

required

First address line of the address.

Max Length
100

address_line2

string

Second address line of the address.

Max Length
100

postcode

string

^[a-zA-Z0-9\s\-]{1,10}$

required

Postal code (postcode, PIN or ZIP code)

country

string

^[A-Z]{2}$

required

Country code. ISO 3166 alpha-2 Codes.

state

string

State, province, county. ISO 3166 alpha-2 Codes.

Max Length
50

city

string

required

Min Length
1
Max Length
85

User Check - Proof of Residency

object (User Check - Proof of Residency)

The PoR (Proof of residency) check is completed by the client sharing a valid PoR document, if not fulfilled by the KYC check.

id

string

uuid

required

User Check unique identifier.

user_id

string

uuid

required

User unique identifier.

type

string

required

The type of check must be POR.

Default
"POR"

check_confirmed_at

string

date-time

required

Completion date and time of the PoR check.

issuance_date

string

date

required

Issuance date in YYYY-MM-DD format.

data_download_link

string

url

required

Download link for the PoR evidence file. Should be a valid URL.

Max Length
1000

document_type

string

required

The type of document used in the PoR process. Maximum age of the document is 12 months (stated on the document) applicable for: Utility bills (water, gas, electricity), Telephone bills (only landline), Internet bills, Bank account statements. Documents that need to be still valid - Registration certificate (issued within the past 5 years), Residence permit e.g. Blue Card (as long as valid), ID Card that contains the registration address.

  • UTILITY_BILL -
  • TELEPHONE_BILL -
  • INTERNET_BILL -
  • BANK_STATEMENT -
  • REGISTRATION_CERT -
  • RESIDENCE_PERMIT -
  • ID_CARD -
Enum
  • UTILITY_BILL
  • TELEPHONE_BILL
  • INTERNET_BILL
  • BANK_STATEMENT
  • REGISTRATION_CERT
  • RESIDENCE_PERMIT
  • ID_CARD

status

string

required

Final status of the PoR check.

  • IN_PROGRESS -
  • PASSED -
  • FAILED -
Enum
  • IN_PROGRESS
  • PASSED
  • FAILED

confirmed_address

object (confirmed_address)

required

Address

address_line1

string

required

First address line of the address.

Max Length
100

address_line2

string

Second address line of the address.

Max Length
100

postcode

string

^[a-zA-Z0-9\s\-]{1,10}$

required

Postal code (postcode, PIN or ZIP code)

country

string

^[A-Z]{2}$

required

Country code. ISO 3166 alpha-2 Codes.

state

string

State, province, county. ISO 3166 alpha-2 Codes.

Max Length
50

city

string

required

Min Length
1
Max Length
85

User Check - Instrument fit

object (User Check - Instrument fit)

Instrument fit check is completed by the client providing the user's answers to the instrument appropriateness or suitability questionnaire.

id

string

uuid

required

User Check unique identifier.

user_id

string

uuid

required

User unique identifier.

type

string

required

The type of check must be INSTRUMENT_FIT.

Default
"INSTRUMENT_FIT"

check_confirmed_at

string

date-time

required

Completion date and time of the instrument fit check.

status

string

required

Final status of the instrument fit check.

  • IN_PROGRESS - Instrument fit check is in progress
  • PASSED - Instrument fit check passed
  • FAILED - Instrument fit check failed
Enum
  • IN_PROGRESS
  • PASSED
  • FAILED

instrument_suitability

object (instrument_suitability)

required

suitability

boolean

required

Did the user go through a suitability assessment and the outcome indicated suitability.

User Check - Compliance

object (User Check - Compliance)

Compliance check

id

string

uuid

required

User Check unique identifier.

user_id

string

uuid

required

User unique identifier.

type

string

required

The type of check must be COMPLIANCE.

Default
"COMPLIANCE"

status

string

Final status of the COMPLIANCE check.

  • IN_PROGRESS - Compliance check is in progress
  • PASSED - Compliance check passed
  • FAILED - Compliance check failed
Enum
  • IN_PROGRESS
  • PASSED
  • FAILED

check_confirmed_at

string

date-time

required

Completion date and time of the COMPLIANCE check.

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/problem+json

type

string

required

URL to a document describing the error condition.

status

int

required

Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

title

string

A short, human-readable title for the general error type; the title should not change for given types.

detail

string

A human-readable description of the specific error.

instance

string

This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

request_id

string

Correlation ID for the original request.

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/problem+json

type

string

required

URL to a document describing the error condition.

status

int

required

Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

title

string

A short, human-readable title for the general error type; the title should not change for given types.

detail

string

A human-readable description of the specific error.

instance

string

This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

request_id

string

Correlation ID for the original request.

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/problem+json

type

string

required

URL to a document describing the error condition.

status

int

required

Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

title

string

A short, human-readable title for the general error type; the title should not change for given types.

detail

string

A human-readable description of the specific error.

instance

string

This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

request_id

string

Correlation ID for the original request.

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/problem+json

type

string

required

URL to a document describing the error condition.

status

int

required

Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

title

string

A short, human-readable title for the general error type; the title should not change for given types.

detail

string

A human-readable description of the specific error.

instance

string

This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

request_id

string

Correlation ID for the original request.

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/problem+json

type

string

required

URL to a document describing the error condition.

status

int

required

Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

title

string

A short, human-readable title for the general error type; the title should not change for given types.

detail

string

A human-readable description of the specific error.

instance

string

This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

request_id

string

Correlation ID for the original request.

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/problem+json

type

string

required

URL to a document describing the error condition.

status

int

required

Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

title

string

A short, human-readable title for the general error type; the title should not change for given types.

detail

string

A human-readable description of the specific error.

instance

string

This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

request_id

string

Correlation ID for the original request.

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/problem+json

type

string

required

URL to a document describing the error condition.

status

int

required

Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

title

string

A short, human-readable title for the general error type; the title should not change for given types.

detail

string

A human-readable description of the specific error.

instance

string

This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

request_id

string

Correlation ID for the original request.

Response Examples

{
  "data": [
    {
      "check_confirmed_at": "2019-08-24T14:15:22Z",
      "confirmed_address": {
        "address_line1": "Rosenweg 221",
        "address_line2": "apt. 33",
        "city": "Berlin",
        "country": "DE",
        "postcode": "45678",
        "state": "BE"
      },
      "data_download_link": "https://bucket.customer.com/ident/user3.zip",
      "document_expiration_date": "2030-01-01",
      "document_type": "ID_CARD",
      "id": "008a82d0-c5a4-4410-9318-d34786429c5a",
      "method": "VIDEO_ID",
      "nationality": "DE",
      "provider": "KYC provider",
      "status": "PASSED",
      "type": "KYC",
      "user_id": "7b39529a-e68c-4688-8242-7549d10d6084"
    },
    {
      "check_confirmed_at": "2020-08-24T14:15:22Z",
      "id": "a680ff52-3a96-4e82-a2ab-12563bbd1a2e",
      "instrument_suitability": {
        "suitability": true
      },
      "status": "PASSED",
      "type": "INSTRUMENT_FIT",
      "user_id": "7b39529a-e68c-4688-8242-7549d10d6084"
    },
    {
      "check_confirmed_at": "2020-08-24T14:15:22Z",
      "confirmed_address": {
        "address_line1": "Rosenweg 221",
        "address_line2": "apt. 33",
        "city": "Berlin",
        "country": "DE",
        "postcode": "45678",
        "state": "BE"
      },
      "data_download_link": "https: //bucket.customer.com/por/user3.zip",
      "document_type": "UTILITY_BILL",
      "id": "b633a915-ed3c-43d7-afb5-a550f26ccb0d",
      "issuance_date": "2020-01-01",
      "status": "PASSED",
      "type": "POR",
      "user_id": "7b39529a-e68c-4688-8242-7549d10d6084"
    },
    {
      "check_confirmed_at": "2020-08-24T14:15:22Z",
      "id": "76aa72aa-3738-4640-bad5-68c1196dc758",
      "status": "PASSED",
      "type": "COMPLIANCE",
      "user_id": "7b39529a-e68c-4688-8242-7549d10d6084"
    }
  ]
}
{
  "status": 401,
  "type": "unauthorized"
}
{
  "status": 403,
  "type": "forbidden"
}
{
  "status": 404,
  "type": "not_found"
}
{
  "status": 406,
  "type": "not_acceptable"
}
{
  "status": 429,
  "type": "too_many_requests"
}
{
  "status": 500,
  "type": "internal_server_error"
}
{
  "status": 503,
  "type": "method_not_allowed"
}

Create a new check for a user

post /users/{user_id}/checks

Creates a new check for a user specified by ID.

Authentication

OAuth2 oauth-client-credentials

Required Scopes:

checks:admin

All Scopes

  • accounts:admin · Create/update/delete accounts and account groups
  • accounts:read · Read accounts and account groups
  • checks:admin · Create checks
  • checks:read · Read checks
  • credit_fundings:read · Credit Fundings read operations
  • fees:admin · Create and read fee operations
  • fees:read · Read fee operations
  • instruments:read · Read instruments
  • mandates:admin · Create/update/delete mandates
  • mandates:read · Read mandates
  • orders:admin · Create/update/delete orders
  • orders:read · Read orders
  • payments:admin · Payins and withdrawal operations
  • payments:read · Payins and withdrawal read operations
  • portfolios:admin · Modify portfolios
  • portfolios:read · Read portfolios
  • positions:read · Read positions
  • reference_accounts:admin · Create/update/delete reference accounts
  • reference_accounts:read · Read reference accounts
  • reports:read · Read reports
  • taxes:admin · Modify tax residencies
  • taxes:read · Read tax residencies
  • topups:admin · Topups operations
  • topups:read · Topups read operations
  • transactions:read · Read cash and securities transactions
  • users:admin · Create/update/delete users
  • users:read · Read users
  • valuations:read · Read valuations
  • webhooks:admin · Create/update/delete webhooks
  • webhooks:read · Read webhooks
Flow Type:
Client Credentials
Token URL:
https://sandbox.upvest.co/auth/token

upvest-client-id

string

uuid

required

Tenant Client ID

Example
"ebabcf4d-61c3-4942-875c-e265a7c2d062"

authorization

string

^Bearer [a-zA-Z0-9\-\._~+/]*=*

required

Bearer (access) token from the OAuth flow with correct scopes. https://datatracker.ietf.org/doc/html/rfc6750

Example
"Bearer c2VjcmV0Cg=="

signature

string

required

https://tools.ietf.org/id/draft-ietf-httpbis-message-signatures-01.html#name-the-signature-http-header

signature-input

string

required

https://tools.ietf.org/id/draft-ietf-httpbis-message-signatures-01.html#name-the-signature-input-http-he

upvest-api-version

string

Upvest API version (Note: Do not include quotation marks)

Default
"1"
Enum
  • 1
Example
1

user_id

string

uuid

required

User unique identifier.

application/json

User Check - Know your customer - Create - Request

object (User Check - Know your customer - Create - Request)

The KYC (Know your customer) check is completed by the client sharing the valid and relevant KYC data for the user.

type

string

required

The type of check must be “KYC”.

Default
"KYC"

check_confirmed_at

string

date-time

required

Completion date and time of the KYC check. Must not be older than 24 months.

data_download_link

string

url

required

Download link for the KYC evidence file. Should be a valid URL.

Max Length
1000

document_type

string

required

The type of document used in the KYC process.

  • PASSPORT - Passport
  • ID_CARD - National Identification document
Enum
  • PASSPORT
  • ID_CARD

document_expiration_date

string

date

required

Expiration date of the document used in KYC process in YYYY-MM-DD format.

nationality

string

^[A-Z]{2}$

required

Country code. ISO 3166 alpha-2 Codes.

provider

string

required

Provider that was used to perform the KYC check.

Max Length
100

method

string

required

Method used for AML compliant KYC process

  • VIDEO_ID - Video identification
  • IN_PERSON_ID - In person identification at the post office or the client’s outlet
  • ELECTRONIC_ID - Advanced electronic identification methods (namely German eID)
Enum
  • VIDEO_ID
  • IN_PERSON_ID
  • ELECTRONIC_ID

confirmed_address

object (confirmed_address)

Address

address_line1

string

required

First address line of the address.

Max Length
100

address_line2

string

Second address line of the address.

Max Length
100

postcode

string

^[a-zA-Z0-9\s\-]{1,10}$

required

Postal code (postcode, PIN or ZIP code)

country

string

^[A-Z]{2}$

required

Country code. ISO 3166 alpha-2 Codes.

state

string

State, province, county. ISO 3166 alpha-2 Codes.

Max Length
50

city

string

required

Min Length
1
Max Length
85

User Check - Proof of Residency - Create - Request

object (User Check - Proof of Residency - Create - Request)

The PoR (Proof of residency) check is completed by the client sharing a valid PoR document, if not fulfilled by the KYC check.

type

string

required

The type of check must be POR.

Default
"POR"

check_confirmed_at

string

date-time

required

Completion date and time of the PoR check.

issuance_date

string

date

required

Issuance date in YYYY-MM-DD format.

data_download_link

string

url

required

Download link for the PoR evidence file. Should be a valid URL.

Max Length
1000

document_type

string

required

The type of document used in the PoR process. Maximum age of the document is 12 months (stated on the document) applicable for: Utility bills (water, gas, electricity), Telephone bills (only landline), Internet bills, Bank account statements. Documents that need to be still valid - Registration certificate (issued within the past 5 years), Residence permit e.g. Blue Card (as long as valid), ID Card that contains the registration address.

  • UTILITY_BILL -
  • TELEPHONE_BILL -
  • INTERNET_BILL -
  • BANK_STATEMENT -
  • REGISTRATION_CERT -
  • RESIDENCE_PERMIT -
  • ID_CARD -
Enum
  • UTILITY_BILL
  • TELEPHONE_BILL
  • INTERNET_BILL
  • BANK_STATEMENT
  • REGISTRATION_CERT
  • RESIDENCE_PERMIT
  • ID_CARD

confirmed_address

object (confirmed_address)

required

Address

address_line1

string

required

First address line of the address.

Max Length
100

address_line2

string

Second address line of the address.

Max Length
100

postcode

string

^[a-zA-Z0-9\s\-]{1,10}$

required

Postal code (postcode, PIN or ZIP code)

country

string

^[A-Z]{2}$

required

Country code. ISO 3166 alpha-2 Codes.

state

string

State, province, county. ISO 3166 alpha-2 Codes.

Max Length
50

city

string

required

Min Length
1
Max Length
85

User Check - Instrument fit - Create - Request

object (User Check - Instrument fit - Create - Request)

Instrument fit check is completed by the client providing the user's answers to the instrument appropriateness or suitability questionnaire.

type

string

required

The type of check must be INSTRUMENT_FIT.

Default
"INSTRUMENT_FIT"

check_confirmed_at

string

date-time

required

Completion date and time of the instrument fit check.

instrument_suitability

object (instrument_suitability)

required

suitability

boolean

required

Did the user go through a suitability assessment and the outcome indicated suitability.

Responses

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/json

id

string

uuid

required

User Check unique identifier.

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/problem+json

type

string

required

URL to a document describing the error condition.

status

int

required

Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

title

string

A short, human-readable title for the general error type; the title should not change for given types.

detail

string

A human-readable description of the specific error.

instance

string

This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

request_id

string

Correlation ID for the original request.

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/problem+json

type

string

required

URL to a document describing the error condition.

status

int

required

Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

title

string

A short, human-readable title for the general error type; the title should not change for given types.

detail

string

A human-readable description of the specific error.

instance

string

This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

request_id

string

Correlation ID for the original request.

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/problem+json

type

string

required

URL to a document describing the error condition.

status

int

required

Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

title

string

A short, human-readable title for the general error type; the title should not change for given types.

detail

string

A human-readable description of the specific error.

instance

string

This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

request_id

string

Correlation ID for the original request.

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/problem+json

type

string

required

URL to a document describing the error condition.

status

int

required

Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

title

string

A short, human-readable title for the general error type; the title should not change for given types.

detail

string

A human-readable description of the specific error.

instance

string

This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

request_id

string

Correlation ID for the original request.

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/problem+json

type

string

required

URL to a document describing the error condition.

status

int

required

Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

title

string

A short, human-readable title for the general error type; the title should not change for given types.

detail

string

A human-readable description of the specific error.

instance

string

This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

request_id

string

Correlation ID for the original request.

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/problem+json

type

string

required

URL to a document describing the error condition.

status

int

required

Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

title

string

A short, human-readable title for the general error type; the title should not change for given types.

detail

string

A human-readable description of the specific error.

instance

string

This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

request_id

string

Correlation ID for the original request.

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/problem+json

type

string

required

URL to a document describing the error condition.

status

int

required

Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

title

string

A short, human-readable title for the general error type; the title should not change for given types.

detail

string

A human-readable description of the specific error.

instance

string

This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

request_id

string

Correlation ID for the original request.

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/problem+json

type

string

required

URL to a document describing the error condition.

status

int

required

Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

title

string

A short, human-readable title for the general error type; the title should not change for given types.

detail

string

A human-readable description of the specific error.

instance

string

This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

request_id

string

Correlation ID for the original request.

Request Examples

{
  "check_confirmed_at": "2019-08-24T14:15:22Z",
  "confirmed_address": {
    "address_line1": "Rosenweg 221",
    "address_line2": "apt. 33",
    "city": "Berlin",
    "country": "DE",
    "postcode": "45678",
    "state": "BE"
  },
  "data_download_link": "https://bucket.customer.com/ident/user3.zip",
  "document_expiration_date": "2030-01-01",
  "document_type": "ID_CARD",
  "method": "VIDEO_ID",
  "nationality": "DE",
  "provider": "KYC provider",
  "type": "KYC"
}
{
  "check_confirmed_at": "2020-08-24T14:15:22Z",
  "instrument_suitability": {
    "suitability": true
  },
  "type": "INSTRUMENT_FIT"
}
{
  "check_confirmed_at": "2020-08-24T14:15:22Z",
  "confirmed_address": {
    "address_line1": "Rosenweg 221",
    "address_line2": "apt. 33",
    "city": "Berlin",
    "country": "DE",
    "postcode": "45678",
    "state": "BE"
  },
  "data_download_link": "https://bucket.customer.com/por/user3.zip",
  "document_type": "UTILITY_BILL",
  "issuance_date": "2020-01-01",
  "type": "POR"
}

Response Examples

{
  "id": "e13e9d81-7f43-492d-a02a-440edced389a"
}
{
  "status": 400,
  "type": "bad_request"
}
{
  "status": 401,
  "type": "unauthorized"
}
{
  "status": 403,
  "type": "forbidden"
}
{
  "status": 404,
  "type": "not_found"
}
{
  "status": 406,
  "type": "not_acceptable"
}
{
  "status": 429,
  "type": "too_many_requests"
}
{
  "status": 500,
  "type": "internal_server_error"
}
{
  "status": 503,
  "type": "method_not_allowed"
}

Get a user check by ID

get /users/{user_id}/checks/{check_id}

Retrieves a check for a user specified by its ID.

Authentication

OAuth2 oauth-client-credentials

Required Scopes:

checks:readchecks:admin

All Scopes

  • accounts:admin · Create/update/delete accounts and account groups
  • accounts:read · Read accounts and account groups
  • checks:admin · Create checks
  • checks:read · Read checks
  • credit_fundings:read · Credit Fundings read operations
  • fees:admin · Create and read fee operations
  • fees:read · Read fee operations
  • instruments:read · Read instruments
  • mandates:admin · Create/update/delete mandates
  • mandates:read · Read mandates
  • orders:admin · Create/update/delete orders
  • orders:read · Read orders
  • payments:admin · Payins and withdrawal operations
  • payments:read · Payins and withdrawal read operations
  • portfolios:admin · Modify portfolios
  • portfolios:read · Read portfolios
  • positions:read · Read positions
  • reference_accounts:admin · Create/update/delete reference accounts
  • reference_accounts:read · Read reference accounts
  • reports:read · Read reports
  • taxes:admin · Modify tax residencies
  • taxes:read · Read tax residencies
  • topups:admin · Topups operations
  • topups:read · Topups read operations
  • transactions:read · Read cash and securities transactions
  • users:admin · Create/update/delete users
  • users:read · Read users
  • valuations:read · Read valuations
  • webhooks:admin · Create/update/delete webhooks
  • webhooks:read · Read webhooks
Flow Type:
Client Credentials
Token URL:
https://sandbox.upvest.co/auth/token

upvest-client-id

string

uuid

required

Tenant Client ID

Example
"ebabcf4d-61c3-4942-875c-e265a7c2d062"

authorization

string

^Bearer [a-zA-Z0-9\-\._~+/]*=*

required

Bearer (access) token from the OAuth flow with correct scopes. https://datatracker.ietf.org/doc/html/rfc6750

Example
"Bearer c2VjcmV0Cg=="

signature

string

required

https://tools.ietf.org/id/draft-ietf-httpbis-message-signatures-01.html#name-the-signature-http-header

signature-input

string

required

https://tools.ietf.org/id/draft-ietf-httpbis-message-signatures-01.html#name-the-signature-input-http-he

upvest-api-version

string

Upvest API version (Note: Do not include quotation marks)

Default
"1"
Enum
  • 1
Example
1

user_id

string

uuid

required

User unique identifier.

check_id

string

uuid

required

User Check unique identifier.

Responses

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/json

User Check

One Of

User Check - Know your customer

object (User Check - Know your customer)

The KYC (Know your customer) check is completed by the client sharing the valid and relevant KYC data for the user.

id

string

uuid

required

User Check unique identifier.

user_id

string

uuid

required

User unique identifier.

type

string

required

The type of check must be “KYC”.

Default
"KYC"

check_confirmed_at

string

date-time

required

Completion date and time of the KYC check. Must not be older than 24 months.

data_download_link

string

url

required

Download link for the KYC evidence file. Should be a valid URL.

Max Length
1000

document_type

string

required

The type of document used in the KYC process.

  • PASSPORT - Passport
  • ID_CARD - National Identification document
Enum
  • PASSPORT
  • ID_CARD

document_expiration_date

string

date

required

Expiration date of the document used in KYC process in YYYY-MM-DD format.

nationality

string

^[A-Z]{2}$

required

Country code. ISO 3166 alpha-2 Codes.

status

string

required

Final status of the KYC check.

  • IN_PROGRESS - KYC check is in progress
  • PASSED - KYC check passed
  • FAILED - KYC check failed
Enum
  • IN_PROGRESS
  • PASSED
  • FAILED

provider

string

required

Provider that was used to perform the KYC check.

Max Length
100

method

string

required

Method used for AML compliant KYC process

  • VIDEO_ID - Video identification
  • IN_PERSON_ID - In person identification at the post office or the client’s outlet
  • ELECTRONIC_ID - Advanced electronic identification methods (namely German eID)
Enum
  • VIDEO_ID
  • IN_PERSON_ID
  • ELECTRONIC_ID

confirmed_address

object (confirmed_address)

Address

address_line1

string

required

First address line of the address.

Max Length
100

address_line2

string

Second address line of the address.

Max Length
100

postcode

string

^[a-zA-Z0-9\s\-]{1,10}$

required

Postal code (postcode, PIN or ZIP code)

country

string

^[A-Z]{2}$

required

Country code. ISO 3166 alpha-2 Codes.

state

string

State, province, county. ISO 3166 alpha-2 Codes.

Max Length
50

city

string

required

Min Length
1
Max Length
85

User Check - Proof of Residency

object (User Check - Proof of Residency)

The PoR (Proof of residency) check is completed by the client sharing a valid PoR document, if not fulfilled by the KYC check.

id

string

uuid

required

User Check unique identifier.

user_id

string

uuid

required

User unique identifier.

type

string

required

The type of check must be POR.

Default
"POR"

check_confirmed_at

string

date-time

required

Completion date and time of the PoR check.

issuance_date

string

date

required

Issuance date in YYYY-MM-DD format.

data_download_link

string

url

required

Download link for the PoR evidence file. Should be a valid URL.

Max Length
1000

document_type

string

required

The type of document used in the PoR process. Maximum age of the document is 12 months (stated on the document) applicable for: Utility bills (water, gas, electricity), Telephone bills (only landline), Internet bills, Bank account statements. Documents that need to be still valid - Registration certificate (issued within the past 5 years), Residence permit e.g. Blue Card (as long as valid), ID Card that contains the registration address.

  • UTILITY_BILL -
  • TELEPHONE_BILL -
  • INTERNET_BILL -
  • BANK_STATEMENT -
  • REGISTRATION_CERT -
  • RESIDENCE_PERMIT -
  • ID_CARD -
Enum
  • UTILITY_BILL
  • TELEPHONE_BILL
  • INTERNET_BILL
  • BANK_STATEMENT
  • REGISTRATION_CERT
  • RESIDENCE_PERMIT
  • ID_CARD

status

string

required

Final status of the PoR check.

  • IN_PROGRESS -
  • PASSED -
  • FAILED -
Enum
  • IN_PROGRESS
  • PASSED
  • FAILED

confirmed_address

object (confirmed_address)

required

Address

address_line1

string

required

First address line of the address.

Max Length
100

address_line2

string

Second address line of the address.

Max Length
100

postcode

string

^[a-zA-Z0-9\s\-]{1,10}$

required

Postal code (postcode, PIN or ZIP code)

country

string

^[A-Z]{2}$

required

Country code. ISO 3166 alpha-2 Codes.

state

string

State, province, county. ISO 3166 alpha-2 Codes.

Max Length
50

city

string

required

Min Length
1
Max Length
85

User Check - Instrument fit

object (User Check - Instrument fit)

Instrument fit check is completed by the client providing the user's answers to the instrument appropriateness or suitability questionnaire.

id

string

uuid

required

User Check unique identifier.

user_id

string

uuid

required

User unique identifier.

type

string

required

The type of check must be INSTRUMENT_FIT.

Default
"INSTRUMENT_FIT"

check_confirmed_at

string

date-time

required

Completion date and time of the instrument fit check.

status

string

required

Final status of the instrument fit check.

  • IN_PROGRESS - Instrument fit check is in progress
  • PASSED - Instrument fit check passed
  • FAILED - Instrument fit check failed
Enum
  • IN_PROGRESS
  • PASSED
  • FAILED

instrument_suitability

object (instrument_suitability)

required

suitability

boolean

required

Did the user go through a suitability assessment and the outcome indicated suitability.

User Check - Compliance

object (User Check - Compliance)

Compliance check

id

string

uuid

required

User Check unique identifier.

user_id

string

uuid

required

User unique identifier.

type

string

required

The type of check must be COMPLIANCE.

Default
"COMPLIANCE"

status

string

Final status of the COMPLIANCE check.

  • IN_PROGRESS - Compliance check is in progress
  • PASSED - Compliance check passed
  • FAILED - Compliance check failed
Enum
  • IN_PROGRESS
  • PASSED
  • FAILED

check_confirmed_at

string

date-time

required

Completion date and time of the COMPLIANCE check.

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/problem+json

type

string

required

URL to a document describing the error condition.

status

int

required

Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

title

string

A short, human-readable title for the general error type; the title should not change for given types.

detail

string

A human-readable description of the specific error.

instance

string

This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

request_id

string

Correlation ID for the original request.

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/problem+json

type

string

required

URL to a document describing the error condition.

status

int

required

Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

title

string

A short, human-readable title for the general error type; the title should not change for given types.

detail

string

A human-readable description of the specific error.

instance

string

This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

request_id

string

Correlation ID for the original request.

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/problem+json

type

string

required

URL to a document describing the error condition.

status

int

required

Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

title

string

A short, human-readable title for the general error type; the title should not change for given types.

detail

string

A human-readable description of the specific error.

instance

string

This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

request_id

string

Correlation ID for the original request.

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/problem+json

type

string

required

URL to a document describing the error condition.

status

int

required

Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

title

string

A short, human-readable title for the general error type; the title should not change for given types.

detail

string

A human-readable description of the specific error.

instance

string

This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

request_id

string

Correlation ID for the original request.

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/problem+json

type

string

required

URL to a document describing the error condition.

status

int

required

Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

title

string

A short, human-readable title for the general error type; the title should not change for given types.

detail

string

A human-readable description of the specific error.

instance

string

This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

request_id

string

Correlation ID for the original request.

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/problem+json

type

string

required

URL to a document describing the error condition.

status

int

required

Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

title

string

A short, human-readable title for the general error type; the title should not change for given types.

detail

string

A human-readable description of the specific error.

instance

string

This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

request_id

string

Correlation ID for the original request.

Response Headers

upvest-request-id

string

uuid

Example
"169ae4c7-ebd7-4041-94da-25369653eba7"

Response: application/problem+json

type

string

required

URL to a document describing the error condition.

status

int

required

Transmission of the HTTP status code so that all information can be found in one place, but also to correct changes in the status code due to the use of proxy servers.

title

string

A short, human-readable title for the general error type; the title should not change for given types.

detail

string

A human-readable description of the specific error.

instance

string

This optional key may be present, with a unique URI for the specific error; this will often point to an error log for that specific response.

request_id

string

Correlation ID for the original request.

Response Examples

{
  "check_confirmed_at": "2019-08-24T14:15:22Z",
  "confirmed_address": {
    "address_line1": "Rosenweg 221",
    "address_line2": "apt. 33",
    "city": "Berlin",
    "country": "DE",
    "postcode": "45678",
    "state": "BE"
  },
  "data_download_link": "https://bucket.customer.com/ident/user3.zip",
  "document_expiration_date": "2030-01-01",
  "document_type": "ID_CARD",
  "id": "008a82d0-c5a4-4410-9318-d34786429c5a",
  "method": "VIDEO_ID",
  "nationality": "DE",
  "provider": "KYC provider",
  "status": "PASSED",
  "type": "KYC",
  "user_id": "7b39529a-e68c-4688-8242-7549d10d6084"
}
{
  "check_confirmed_at": "2020-08-24T14:15:22Z",
  "id": "a680ff52-3a96-4e82-a2ab-12563bbd1a2e",
  "instrument_suitability": {
    "suitability": true
  },
  "status": "PASSED",
  "type": "INSTRUMENT_FIT",
  "user_id": "7b39529a-e68c-4688-8242-7549d10d6084"
}
{
  "check_confirmed_at": "2020-08-24T14:15:22Z",
  "confirmed_address": {
    "address_line1": "Rosenweg 221",
    "address_line2": "apt. 33",
    "city": "Berlin",
    "country": "DE",
    "postcode": "45678",
    "state": "BE"
  },
  "data_download_link": "https://bucket.customer.com/por/user3.zip",
  "document_type": "UTILITY_BILL",
  "id": "b633a915-ed3c-43d7-afb5-a550f26ccb0d",
  "issuance_date": "2020-01-01",
  "status": "PASSED",
  "type": "POR",
  "user_id": "7b39529a-e68c-4688-8242-7549d10d6084"
}
{
  "check_confirmed_at": "2020-08-24T14:15:22Z",
  "id": "76aa72aa-3738-4640-bad5-68c1196dc758",
  "status": "PASSED",
  "type": "COMPLIANCE",
  "user_id": "7b39529a-e68c-4688-8242-7549d10d6084"
}
{
  "status": 401,
  "type": "unauthorized"
}
{
  "status": 403,
  "type": "forbidden"
}
{
  "status": 404,
  "type": "not_found"
}
{
  "status": 406,
  "type": "not_acceptable"
}
{
  "status": 429,
  "type": "too_many_requests"
}
{
  "status": 500,
  "type": "internal_server_error"
}
{
  "status": 503,
  "type": "method_not_allowed"
}

User checks events

webhook

User checks events

application/json

created_at

string

date-time

required

Date and time when the event was created. RFC 3339-5, ISO8601 UTC

id

string

uuid

required

Event unique identifier

object

One Of

required

User Check - Know your customer

object (User Check - Know your customer)

The KYC (Know your customer) check is completed by the client sharing the valid and relevant KYC data for the user.

check_confirmed_at

string

date-time

required

Completion date and time of the KYC check. Must not be older than 24 months.

confirmed_address

object (confirmed_address)

Address

address_line1

string

required

First address line of the address.

Max Length
100

address_line2

string

Second address line of the address.

Max Length
100

city

string

required

Min Length
1
Max Length
85

country

string

^[A-Z]{2}$

required

Country code. ISO 3166 alpha-2 Codes.

postcode

string

^[a-zA-Z0-9\s\-]{1,10}$

required

Postal code (postcode, PIN or ZIP code)

state

string

State, province, county. ISO 3166 alpha-2 Codes.

Max Length
50

data_download_link

string

url

required

Download link for the KYC evidence file. Should be a valid URL.

Max Length
1000

document_expiration_date

string

date

required

Expiration date of the document used in KYC process in YYYY-MM-DD format.

document_type

string

required

The type of document used in the KYC process.

  • PASSPORT - Passport
  • ID_CARD - National Identification document
Enum
  • PASSPORT
  • ID_CARD

id

string

uuid

required

User Check unique identifier.

method

string

required

Method used for AML compliant KYC process

  • VIDEO_ID - Video identification
  • IN_PERSON_ID - In person identification at the post office or the client’s outlet
  • ELECTRONIC_ID - Advanced electronic identification methods (namely German eID)
Enum
  • VIDEO_ID
  • IN_PERSON_ID
  • ELECTRONIC_ID

nationality

string

^[A-Z]{2}$

required

Country code. ISO 3166 alpha-2 Codes.

provider

string

required

Provider that was used to perform the KYC check.

Max Length
100

status

string

required

Final status of the KYC check.

  • IN_PROGRESS - KYC check is in progress
  • PASSED - KYC check passed
  • FAILED - KYC check failed
Enum
  • IN_PROGRESS
  • PASSED
  • FAILED

type

string

required

The type of check must be “KYC”.

Default
"KYC"

user_id

string

uuid

required

User unique identifier.

User Check - Proof of Residency

object (User Check - Proof of Residency)

The PoR (Proof of residency) check is completed by the client sharing a valid PoR document, if not fulfilled by the KYC check.

check_confirmed_at

string

date-time

required

Completion date and time of the PoR check.

confirmed_address

object (confirmed_address)

required

Address

address_line1

string

required

First address line of the address.

Max Length
100

address_line2

string

Second address line of the address.

Max Length
100

city

string

required

Min Length
1
Max Length
85

country

string

^[A-Z]{2}$

required

Country code. ISO 3166 alpha-2 Codes.

postcode

string

^[a-zA-Z0-9\s\-]{1,10}$

required

Postal code (postcode, PIN or ZIP code)

state

string

State, province, county. ISO 3166 alpha-2 Codes.

Max Length
50

data_download_link

string

url

required

Download link for the PoR evidence file. Should be a valid URL.

Max Length
1000

document_type

string

required

The type of document used in the PoR process. Maximum age of the document is 12 months (stated on the document) applicable for: Utility bills (water, gas, electricity), Telephone bills (only landline), Internet bills, Bank account statements. Documents that need to be still valid - Registration certificate (issued within the past 5 years), Residence permit e.g. Blue Card (as long as valid), ID Card that contains the registration address.

  • UTILITY_BILL -
  • TELEPHONE_BILL -
  • INTERNET_BILL -
  • BANK_STATEMENT -
  • REGISTRATION_CERT -
  • RESIDENCE_PERMIT -
  • ID_CARD -
Enum
  • UTILITY_BILL
  • TELEPHONE_BILL
  • INTERNET_BILL
  • BANK_STATEMENT
  • REGISTRATION_CERT
  • RESIDENCE_PERMIT
  • ID_CARD

id

string

uuid

required

User Check unique identifier.

issuance_date

string

date

required

Issuance date in YYYY-MM-DD format.

status

string

required

Final status of the PoR check.

  • IN_PROGRESS -
  • PASSED -
  • FAILED -
Enum
  • IN_PROGRESS
  • PASSED
  • FAILED

type

string

required

The type of check must be POR.

Default
"POR"

user_id

string

uuid

required

User unique identifier.

User Check - Instrument fit

object (User Check - Instrument fit)

Instrument fit check is completed by the client providing the user's answers to the instrument appropriateness or suitability questionnaire.

check_confirmed_at

string

date-time

required

Completion date and time of the instrument fit check.

id

string

uuid

required

User Check unique identifier.

instrument_suitability

object (instrument_suitability)

required

suitability

boolean

required

Did the user go through a suitability assessment and the outcome indicated suitability.

status

string

required

Final status of the instrument fit check.

  • IN_PROGRESS - Instrument fit check is in progress
  • PASSED - Instrument fit check passed
  • FAILED - Instrument fit check failed
Enum
  • IN_PROGRESS
  • PASSED
  • FAILED

type

string

required

The type of check must be INSTRUMENT_FIT.

Default
"INSTRUMENT_FIT"

user_id

string

uuid

required

User unique identifier.

User Check - Compliance

object (User Check - Compliance)

Compliance check

check_confirmed_at

string

date-time

required

Completion date and time of the COMPLIANCE check.

id

string

uuid

required

User Check unique identifier.

status

string

Final status of the COMPLIANCE check.

  • IN_PROGRESS - Compliance check is in progress
  • PASSED - Compliance check passed
  • FAILED - Compliance check failed
Enum
  • IN_PROGRESS
  • PASSED
  • FAILED

type

string

required

The type of check must be COMPLIANCE.

Default
"COMPLIANCE"

user_id

string

uuid

required

User unique identifier.

type

string

required

Event type

Enum
  • USER_CHECK.CREATED
  • USER_CHECK.PASSED
  • USER_CHECK.FAILED

webhook_id

string

uuid

required

Webhook unique identifier.

Responses

Request Examples

{
  "created_at": "2021-11-19T13:06:57.820371265Z",
  "id": "38fc59d0-fc42-46ef-9512-824773219b2e",
  "object": {
    "check_confirmed_at": "2021-08-02T15:04:05Z",
    "data_download_link": "https://storage.cloud.google.com/upvest-mock-documents/Test_KYC_documents.zip",
    "document_expiration_date": "2028-01-02",
    "document_type": "PASSPORT",
    "id": "32cbb9a2-dd3b-4e60-a5af-9b41460049dc",
    "method": "VIDEO_ID",
    "nationality": "RU",
    "provider": "IDNOW",
    "status": "PASSED",
    "type": "KYC",
    "user_id": "7b39529a-e68c-4688-8242-7549d10d6084"
  },
  "type": "USER_CHECK.PASSED",
  "webhook_id": "1b097e06-8a14-4181-b72a-de0972a3c57b"
}

Was this page helpful?