openapi: 3.2.0 info: title: iDenfy IVS Core KYB Token API version: 0.0.0 description: iDenfy Identity Verification Service's Core API documentation. contact: name: API Support url: https://idenfy-ivs.atlassian.net/servicedesk/customer/portal/1/group/-1 x-logo: url: /static/idenfy_logo.svg altText: iDenfy logo servers: - url: https://ivs.idenfy.com tags: - name: KYB Token description: KYB token endpoints to begin KYB flow. paths: /kyb/info/: get: operationId: kybInfoRetrieve description: Various info for KYB session. summary: Retrieve KYB session info tags: - KYB Token security: - kybTokenAuth: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/KybInfo' description: '' '401': content: application/json: schema: $ref: '#/components/schemas/KybInfoUnauthorized' description: '' /kyb/tokens/: post: operationId: kybTokensCreate summary: Generate KYB form token tags: - KYB Token requestBody: content: application/json: schema: $ref: '#/components/schemas/KybTokenRequest' security: - apiKeyPair: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/KybToken' description: '' /kyb/tokens/{tokenString}/: put: operationId: kybTokensUpdate summary: Update KYB form token parameters: - in: path name: tokenString schema: type: string description: Token string used for authentication. required: true tags: - KYB Token requestBody: content: application/json: schema: $ref: '#/components/schemas/KybTokenUpdateRequest' security: - apiKeyPair: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/KybTokenUpdate' description: '' patch: operationId: kybTokensPartialUpdate summary: Partially update KYB form token parameters: - in: path name: tokenString schema: type: string description: Token string used for authentication. required: true tags: - KYB Token requestBody: content: application/json: schema: $ref: '#/components/schemas/PatchedKybTokenUpdateRequest' security: - apiKeyPair: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/KybTokenUpdate' description: '' components: schemas: KybToken: oneOf: - $ref: '#/components/schemas/KybFormToken' discriminator: propertyName: tokenType mapping: FORM: '#/components/schemas/KybFormToken' SeverityEnum: enum: - NOT_SEVERE - SEVERE type: string KybFormTokenRequest: type: object properties: tokenType: $ref: '#/components/schemas/KybTokenTypeEnum' lifetime: type: integer maximum: 2592000 minimum: 0 writeOnly: true default: 3600 description: The duration in seconds of KYB token validity. clientId: type: string minLength: 1 description: A unique string identifying a client on your side. maxLength: 100 externalRef: type: string nullable: true description: Any additional value chosen by you. maxLength: 40 locale: allOf: - $ref: '#/components/schemas/KybLocaleEnum' nullable: true description: The default client's language. By default selected by a client's IP address. flow: type: string format: uuid nullable: true description: KYB flow's `id` to use for this KYB session. theme: type: string format: uuid nullable: true description: KYB theme's `id` to use for this KYB session. questionnaire: type: string minLength: 1 writeOnly: true nullable: true description: KYB questionnaire's `key` to use for this KYB session. `null` for no questionnaire. If not given, the default questionnaire (from your KYB settings) will be used. Ignored when KYB flow is used, then questionnaire is taken according to used flow. questionnaireRequired: type: boolean writeOnly: true default: true description: If KYB session should have a questionnaire. tags: type: array items: type: string minLength: 1 maxLength: 32 pattern: ^[^,]+$ default: [] description: List of case-sensitive strings. Each tag can not be longer than 32 characters. maxItems: 5 scanRefs: type: array items: type: string minLength: 1 pattern: ^[^,]+$ maxLength: 40 nullable: true required: - clientId - tokenType BeneficiaryTypeEnum: enum: - CEO - REPRESENTATIVE - SHAREHOLDER - UBO - ABO type: string IndividualFlow: type: object properties: required: type: boolean default: false applicantType: $ref: '#/components/schemas/ApplicantTypeEnum' fieldsCustom: type: array items: $ref: '#/components/schemas/CustomFieldAssignment' nullable: true fields: type: array items: $ref: '#/components/schemas/IndividualField' documents: type: array items: $ref: '#/components/schemas/IndividualDocType' nullable: true required: - applicantType - fields ThemeCore: type: object properties: companyName: type: string nullable: true maxLength: 32 logo: type: string format: uri nullable: true font: type: string format: uri nullable: true colors: $ref: '#/components/schemas/ThemeColor' supportEmail: type: string format: email nullable: true maxLength: 100 BeneficiaryUnifiedFlow: type: object description: Indicates which beneficiary types are editable. properties: beneficiaryType: $ref: '#/components/schemas/BeneficiaryTypeEnum' required: type: boolean default: false fields: type: array items: $ref: '#/components/schemas/BeneficiaryField' nullable: true applicants: type: array items: $ref: '#/components/schemas/ApplicantFlow' description: type: string description: Note for the user to guide them on how the beneficiaries information (including documents uploading) should be filled/edited. maxLength: 512 readOnly: type: boolean default: false required: - applicants - beneficiaryType CustomFieldTypeEnum: enum: - CHECKBOX - COUNTRY - COUNTRY_MULTI - DATE - INTEGER - SELECT - SELECT_MULTI - TEXT type: string CustomFieldAssignmentUnified: type: object properties: field: $ref: '#/components/schemas/CustomField' required: type: boolean default: false order: type: integer maximum: 4294967295 minimum: 0 format: int64 nullable: true readOnly: type: boolean default: false changeFrom: nullable: true description: KYB form field value must be changed from this field's value. changeRequired: type: boolean required: - field BeneficiaryFieldEnum: enum: - OWNERSHIP_PERCENTAGE type: string KybTokenUpdate: type: object properties: scanRefs: type: array items: type: string pattern: ^[^,]+$ maxLength: 40 nullable: true tags: type: array items: type: string maxLength: 32 pattern: ^[^,]+$ default: [] description: List of case-sensitive strings. Each tag can not be longer than 32 characters. maxItems: 5 KybTokenRequest: oneOf: - $ref: '#/components/schemas/KybFormTokenRequest' discriminator: propertyName: tokenType mapping: FORM: '#/components/schemas/KybFormTokenRequest' KybTokenTypeEnum: enum: - FORM - GOV1 - GOV2 type: string CompanyDocType: type: object properties: description: type: string nullable: true maxLength: 512 required: type: boolean default: false docType: type: string pattern: ^[\u0000-\u007F]+$ maxLength: 100 required: - docType KybLocaleEnum: enum: - en - es - fr - ru - de - it - pl - lt - lv - et - cs - ro - hu - ja - bg - nl - pt type: string CompanyFieldEnum: enum: - COMPANY_NAME - REGISTRATION_NUMBER - COUNTRY - REGION - TYPE - PHONE - WEBSITE - EMAIL - BRAND_NAMES - ACTIVITY_CODE - TIN - OPERATING_ADDRESS - POSTAL_ADDRESS - POSTCODE - STREET - CITY type: string CompanyFieldUnified: type: object properties: required: type: boolean default: false field: $ref: '#/components/schemas/CompanyFieldEnum' order: type: integer minimum: 0 nullable: true readOnly: type: boolean default: false changeFrom: nullable: true description: KYB form field value must be changed from this field's value. changeRequired: type: boolean required: - field KybInfo: type: object properties: locale: allOf: - $ref: '#/components/schemas/KybLocaleEnum' nullable: true readOnly: true description: Default locale to use when user opens the KYB form for the first time. theme: allOf: - $ref: '#/components/schemas/ThemeCore' nullable: true readOnly: true description: Indicates the visual customization of the KYB form. flow: allOf: - $ref: '#/components/schemas/KybFormUnifiedFlow' nullable: true readOnly: true description: Indicates which fields/objects should be present in the KYB form.
If this field is `null`, then all possible fields/objects are present in this KYB form. required: - flow - locale - theme IdentifierEnum: enum: - AUTHENTICATION_FAILED type: string IndividualFieldEnum: enum: - NAME - SURNAME - COUNTRY - EMAIL - PHONE - DATE_OF_BIRTH - NATIONALITY - DOCUMENT_NUMBER - PERSONAL_NUMBER - CITIZENSHIP - COUNTRY_OF_BIRTH - RESIDENTIAL_ADDRESS - COUNTRY_OF_RESIDENCE - POSTCODE - ADDRESS - STREET - CITY - TIN - TAX_RESIDENCE - SELF_DECLARED_PEP - POSITIONS type: string KybFormUnifiedFlow: type: object properties: fields: type: array items: $ref: '#/components/schemas/CompanyFieldUnified' nullable: true fieldsCustom: type: array items: $ref: '#/components/schemas/CustomFieldAssignmentUnified' nullable: true documents: type: array items: $ref: '#/components/schemas/CompanyDocType' nullable: true beneficiaries: type: array items: $ref: '#/components/schemas/BeneficiaryUnifiedFlow' nullable: true companySearch: type: boolean nullable: true bankVerification: type: boolean nullable: true emailVerification: type: boolean nullable: true ownershipFullStructure: type: boolean description: Indicates that the KYB form must contain at least one beneficiary (of any kind) and every company beneficiary of `SHAREHOLDER`, `UBO` and `ABO` type must have at least one individual beneficiary. This is validated when submitting the KYB form. ownershipPercentageThreshold: type: number format: double maximum: 100.0 minimum: 0.0 nullable: true description: Threshold to not require to add shareholders that are below this number. description: type: string nullable: true description: Note for the user to guide them on how the company information (including documents uploading) should be filled/edited. maxLength: 512 questionnaireDescription: type: string nullable: true description: Note for the user to guide them on how the questionnaire should be filled/edited. maxLength: 512 KybTokenUpdateRequest: type: object properties: scanRefs: type: array items: type: string minLength: 1 pattern: ^[^,]+$ maxLength: 40 nullable: true tags: type: array items: type: string minLength: 1 maxLength: 32 pattern: ^[^,]+$ default: [] description: List of case-sensitive strings. Each tag can not be longer than 32 characters. maxItems: 5 KybInfoUnauthorizedObjectMessage: type: object properties: detail: type: string completed: type: boolean readOnly: true required: - completed - detail Choice: type: object properties: key: type: string pattern: ^[\w_*-]+$ maxLength: 32 title: type: string maxLength: 512 required: - key - title IndividualDocType: type: object properties: description: type: string nullable: true maxLength: 512 required: type: boolean default: false docType: type: string pattern: ^[\u0000-\u007F]+$ maxLength: 100 required: - docType CompanyFlow: type: object properties: required: type: boolean default: false applicantType: $ref: '#/components/schemas/ApplicantTypeEnum' fieldsCustom: type: array items: $ref: '#/components/schemas/CustomFieldAssignment' nullable: true fields: type: array items: $ref: '#/components/schemas/CompanyField' documents: type: array items: $ref: '#/components/schemas/CompanyDocType' nullable: true required: - applicantType - fields CustomField: type: object properties: id: type: string format: uuid readOnly: true key: type: string pattern: ^[\w_*-]+$ maxLength: 32 title: type: string maxLength: 64 description: type: string nullable: true default: '' maxLength: 512 type: $ref: '#/components/schemas/CustomFieldTypeEnum' choices: type: array items: $ref: '#/components/schemas/Choice' required: - id - key - title - type IndividualField: type: object properties: required: type: boolean default: false field: $ref: '#/components/schemas/IndividualFieldEnum' order: type: integer minimum: 0 nullable: true required: - field KybInfoUnauthorized: oneOf: - $ref: '#/components/schemas/KybInfoUnauthorizedString' - $ref: '#/components/schemas/KybInfoUnauthorizedObject' PatchedKybTokenUpdateRequest: type: object properties: scanRefs: type: array items: type: string minLength: 1 pattern: ^[^,]+$ maxLength: 40 nullable: true tags: type: array items: type: string minLength: 1 maxLength: 32 pattern: ^[^,]+$ default: [] description: List of case-sensitive strings. Each tag can not be longer than 32 characters. maxItems: 5 ApplicantFlow: oneOf: - $ref: '#/components/schemas/IndividualFlow' - $ref: '#/components/schemas/CompanyFlow' discriminator: propertyName: applicantType mapping: INDIVIDUAL: '#/components/schemas/IndividualFlow' COMPANY: '#/components/schemas/CompanyFlow' KybInfoUnauthorizedString: type: object properties: message: type: string identifier: allOf: - $ref: '#/components/schemas/IdentifierEnum' readOnly: true documentation: type: string format: uri readOnly: true severity: allOf: - $ref: '#/components/schemas/SeverityEnum' readOnly: true required: - documentation - identifier - message - severity CustomFieldAssignment: type: object properties: field: $ref: '#/components/schemas/CustomField' required: type: boolean default: false order: type: integer maximum: 4294967295 minimum: 0 format: int64 nullable: true required: - field BeneficiaryField: type: object properties: required: type: boolean default: false field: $ref: '#/components/schemas/BeneficiaryFieldEnum' required: - field ThemeColor: type: object properties: primary: type: string nullable: true pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ maxLength: 25 secondary: type: string nullable: true pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ maxLength: 25 primaryBackground: type: string nullable: true pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ maxLength: 25 secondaryBackground: type: string nullable: true pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ maxLength: 25 hoveredButton: type: string nullable: true pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ maxLength: 25 disabledIconButton: type: string nullable: true title: Disabled icon pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ maxLength: 25 disabledButtonTypography: type: string nullable: true title: Disabled typography pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ maxLength: 25 disabledButton: type: string nullable: true title: Disabled background pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ maxLength: 25 typography: type: string nullable: true pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ maxLength: 25 success: type: string nullable: true pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ maxLength: 25 successBackground: type: string nullable: true pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ maxLength: 25 error: type: string nullable: true pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ maxLength: 25 errorBackground: type: string nullable: true pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ maxLength: 25 warning: type: string nullable: true pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ maxLength: 25 warningBackground: type: string nullable: true pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ maxLength: 25 info: type: string nullable: true pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ maxLength: 25 infoBackground: type: string nullable: true pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ maxLength: 25 border: type: string nullable: true pattern: ^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$ maxLength: 25 KybInfoUnauthorizedObject: type: object properties: message: $ref: '#/components/schemas/KybInfoUnauthorizedObjectMessage' identifier: allOf: - $ref: '#/components/schemas/IdentifierEnum' readOnly: true documentation: type: string format: uri readOnly: true severity: allOf: - $ref: '#/components/schemas/SeverityEnum' readOnly: true required: - documentation - identifier - message - severity ApplicantTypeEnum: enum: - INDIVIDUAL - COMPANY type: string KybFormToken: type: object properties: tokenType: $ref: '#/components/schemas/KybTokenTypeEnum' tokenString: type: string readOnly: true description: Token string used for authentication. expiration: type: string format: date-time readOnly: true description: Date and time when this token will become expired. isActive: type: boolean readOnly: true description: Indicates whether this token is not deactivated. deprecated: true isValid: type: boolean description: Indicates whether this token is valid. readOnly: true companyId: type: string readOnly: true nullable: true clientId: type: string description: A unique string identifying a client on your side. maxLength: 100 externalRef: type: string nullable: true description: Any additional value chosen by you. maxLength: 40 locale: allOf: - $ref: '#/components/schemas/KybLocaleEnum' nullable: true description: The default client's language. By default selected by a client's IP address. flow: type: string format: uuid nullable: true description: KYB flow's `id` to use for this KYB session. theme: type: string format: uuid nullable: true description: KYB theme's `id` to use for this KYB session. tags: type: array items: type: string maxLength: 32 pattern: ^[^,]+$ default: [] description: List of case-sensitive strings. Each tag can not be longer than 32 characters. maxItems: 5 scanRefs: type: array items: type: string pattern: ^[^,]+$ maxLength: 40 nullable: true required: - clientId - companyId - expiration - isActive - isValid - tokenString - tokenType CompanyField: type: object properties: required: type: boolean default: false field: $ref: '#/components/schemas/CompanyFieldEnum' order: type: integer minimum: 0 nullable: true required: - field securitySchemes: apiKeyPair: type: http scheme: basic description: 'The request must contain basic auth headers where username is *API key* and password is *API secret*.
In order for you to start using our API you will need an **API key** and **API secret**.
Both can be retrieved by contacting *iDenfy''s support* or *iDenfy''s sales team*.' kybTokenAuth: type: http scheme: bearer description: 'Authentication for actions with all operations associated with KYB form.
Token obtained from *KYB form token generation* endpoint as ``tokenString`` value.
' externalDocs: description: For other/more docs on iDenfy services visit our main documentation page. url: https://documentation.idenfy.com x-tagGroups: - name: General tags: - Webhooks - name: KYB tags: - KYB Token - KYB Forms - KYB Documents - Beneficiaries - KYB Questionnaires - Companies - name: KYB GOV Checks tags: - Credit Bureau - GOV Registers - GOV Orders - SOS Reports - Registry Center Checks