# Create a new check for a user

Creates a new check for a user specified by ID.

Endpoint: POST /users/{user_id}/checks
Version: 1.109.1
Security: oauth-client-credentials

## Path parameters:

  - `user_id` (string, required)
    User unique identifier.

## Header parameters:

  - `upvest-client-id` (string, required)
    Tenant Client ID
    Example: "363f3305-7ab0-4e82-a158-f9d382ad08b6"

  - `Authorization` (string, 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)
    Enum: "1"

## Request fields (application/json):

  - `body` (object) — one of:
    - User Check - Know your customer - Create - Request:
      - `type` (string, required)
        The type of check must be “KYC”.
      - `check_confirmed_at` (string, required)
        Completion date and time of the KYC check. Must not be older than 24 months.
      - `data_download_link` (string, required)
        Download URL for the KYC evidence file. The file size must not exceed 250 MB.
      - `document_type` (string, required)
        The type of document used in the KYC process.
* PASSPORT - Passport
* ID_CARD - National Identification document
* RESIDENCE_PERMIT - Residence Permit
* DRIVING_LICENSE - Driving License
* TWO_PLUS_TWO_VERIFICATION_PROOF - Two plus two verification proof (for GB residence users only)
        Enum: "PASSPORT", "ID_CARD", "RESIDENCE_PERMIT", "DRIVING_LICENSE", "TWO_PLUS_TWO_VERIFICATION_PROOF"
      - `provider` (string, required)
        Provider that was used to perform the KYC check.
      - `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)
* LIVENESS_PHOTO_ID - Photos and security features of the identification document in combination with a video-based liveness check (residence country must not be Germany in this case)
* QUALIFIED_ELECTRONIC_SIGNATURE_WITH_TX - Qualified electronic signature accompanied by a bank transaction for verification
* TWO_PLUS_TWO_VERIFICATION - A method of verifying identity by matching at least two personal details from two separate sources (for GB residence users only)
* ID_COLLECTION - The identification document of the user is collected but has not undergone verification
        Enum: "VIDEO_ID", "IN_PERSON_ID", "ELECTRONIC_ID", "LIVENESS_PHOTO_ID", "QUALIFIED_ELECTRONIC_SIGNATURE_WITH_TX", "TWO_PLUS_TWO_VERIFICATION", "ID_COLLECTION"
      - `document_expiration_date` (string)
        Expiration date of the document used in KYC process in YYYY-MM-DD format.

The field is required for the following document types:
* PASSPORT
* ID_CARD
* RESIDENCE_PERMIT
* DRIVING_LICENSE
      - `nationality` (string)
        Issuing country of the document used in the KYC process. [ISO 3166 alpha-2 codes](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).

The field is required for the following document types:
* PASSPORT
* ID_CARD
* RESIDENCE_PERMIT
* DRIVING_LICENSE
      - `confirmed_address` (object)
        Address. Must not be a P.O. box or c/o address.
      - `confirmed_address.address_line1` (string, required)
        First address line of the address.
      - `confirmed_address.postcode` (string, required)
        Postal code (postcode, PIN or ZIP code)
      - `confirmed_address.country` (string, required)
        Accepted country code. [ISO 3166-1 alpha-2 codes](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
        Enum: "AD", "AE", "AF", "AG", "AI", "AL", "AM", "AO", "AQ", "AR", "AS", "AT", "AU", "AW", "AX", "AZ", "BA", "BB", "BD", "BE", "BF", "BG", "BH", "BI", "BJ", "BL", "BM", "BN", "BO", "BQ", "BR", "BS", "BT", "BV", "BW", "BY", "BZ", "CA", "CC", "CD", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CO", "CR", "CU", "CV", "CW", "CX", "CY", "CZ", "DE", "DJ", "DK", "DM", "DO", "DZ", "EC", "EE", "EG", "EH", "ER", "ES", "ET", "FI", "FJ", "FK", "FM", "FO", "FR", "GA", "GB", "GD", "GE", "GF", "GG", "GH", "GI", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GU", "GW", "GY", "HK", "HM", "HN", "HR", "HT", "HU", "ID", "IE", "IL", "IM", "IN", "IO", "IQ", "IR", "IS", "IT", "JE", "JM", "JO", "JP", "KE", "KG", "KH", "KI", "KM", "KN", "KP", "KR", "KW", "KY", "KZ", "LA", "LB", "LC", "LI", "LK", "LR", "LS", "LT", "LU", "LV", "LY", "MA", "MC", "MD", "ME", "MF", "MG", "MH", "MK", "ML", "MM", "MN", "MO", "MP", "MQ", "MR", "MS", "MT", "MU", "MV", "MW", "MX", "MY", "MZ", "NA", "NC", "NE", "NF", "NG", "NI", "NL", "NO", "NP", "NR", "NU", "NZ", "OM", "PA", "PE", "PF", "PG", "PH", "PK", "PL", "PM", "PN", "PR", "PS", "PT", "PW", "PY", "QA", "RE", "RO", "RS", "RU", "RW", "SA", "SB", "SC", "SD", "SE", "SG", "SH", "SI", "SJ", "SK", "SL", "SM", "SN", "SO", "SR", "SS", "ST", "SV", "SX", "SY", "SZ", "TC", "TD", "TF", "TG", "TH", "TJ", "TK", "TL", "TM", "TN", "TO", "TR", "TT", "TV", "TW", "TZ", "UA", "UG", "UM", "US", "UY", "UZ", "VA", "VC", "VE", "VG", "VI", "VN", "VU", "WF", "WS", "XK", "YE", "YT", "ZA", "ZM", "ZW"
      - `confirmed_address.city` (string, required)
      - `confirmed_address.address_line2` (string)
        Second address line of the address.
      - `confirmed_address.state` (string)
        State, province, county. [ISO 3166 alpha-2 Codes](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
      - `kyc_update` (boolean)
        Marks this check as a KYC refresh/update as opposed to an initial record.
    - User Check - Proof of Residency - Create - Request:
      - `type` (string, required)
        The type of check must be POR.
      - `check_confirmed_at` (string, required)
        Completion date and time of the PoR check.
      - `issuance_date` (string, required)
        Issuance date in YYYY-MM-DD format.
      - `data_download_link` (string, required)
        Download URL for the PoR evidence file. The file size must not exceed 250 MB.
      - `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 (must be valid and issued within the past 5 years), Residence permit e.g. Blue Card (as long as valid and contains the registration address), 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, required)
        Address. Must not be a P.O. box or c/o address.
      - `confirmed_address.address_line1` (string, required)
        First address line of the address.
      - `confirmed_address.postcode` (string, required)
        Postal code (postcode, PIN or ZIP code)
      - `confirmed_address.country` (string, required)
        Accepted country code. [ISO 3166-1 alpha-2 codes](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
        Enum: same as `confirmed_address.country` in "User Check - Know your customer - Create - Request" (250 values)
      - `confirmed_address.city` (string, required)
      - `confirmed_address.address_line2` (string)
        Second address line of the address.
      - `confirmed_address.state` (string)
        State, province, county. [ISO 3166 alpha-2 Codes](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
    - User Check - Instrument fit - Create - Request:
      - `type` (string, required)
        The type of check must be INSTRUMENT_FIT.
      - `check_confirmed_at` (string, required)
        Completion date and time of the instrument fit check.
      - `instrument_suitability` (object, required)
      - `instrument_suitability.suitability` (boolean, required)
        Did the user go through a suitability assessment and the outcome indicated suitability.
    - User Check - Guardian - Create - Request:
      - `type` (string, required)
        The type of check must be “GUARDIAN“.
      - `check_confirmed_at` (string, required)
        Completion date and time of the PoR check.
      - `role_id` (string, required)
        Unique identifier for the role that this guardian check is associated with.
      - `document_type` (string, required)
        The type of document used in the Guardian check.
* BIRTH_CERTIFICATE - Birth certificate proving guardian relationship
        Enum: "BIRTH_CERTIFICATE"
      - `data_download_link` (string, required)
        Download URL for the guardian evidence file. The file size must not exceed 250 MB.

## Response 202 fields (application/json):

  - `id` (string, required)
    User Check unique identifier.

## Response 400 fields (application/problem+json):

  - `type` (string, required)
    URL to a document describing the error condition.

  - `status` (integer, 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 401 fields (application/problem+json):

  - `type` (string, required)
    URL to a document describing the error condition.

  - `status` (integer, 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 403 fields (application/problem+json):

  - `type` (string, required)
    URL to a document describing the error condition.

  - `status` (integer, 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 404 fields (application/problem+json):

  - `type` (string, required)
    URL to a document describing the error condition.

  - `status` (integer, 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 406 fields (application/problem+json):

  - `type` (string, required)
    URL to a document describing the error condition.

  - `status` (integer, 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 429 fields (application/problem+json):

  - `type` (string, required)
    URL to a document describing the error condition.

  - `status` (integer, 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 500 fields (application/problem+json):

  - `type` (string, required)
    URL to a document describing the error condition.

  - `status` (integer, 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 503 fields (application/problem+json):

  - `type` (string, required)
    URL to a document describing the error condition.

  - `status` (integer, 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 504 fields (application/problem+json):

  - `type` (string, required)
    URL to a document describing the error condition.

  - `status` (integer, 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.


