openapi: 3.1.0 info: title: iDenfy IVS Core 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 paths: /api/v2/token: post: operationId: kycTokensCreate summary: Generate KYC token description: Creates a KYC verification session token. Pass the returned `authToken` to your frontend or SDK to launch the verification flow. tags: - KYC Token security: - apiKeyPair: [] requestBody: required: true content: application/json: schema: type: object required: - clientId - tokenType properties: clientId: type: string maxLength: 100 description: A unique string identifying the client on your side. tokenType: type: string enum: - IDENTIFICATION - DOCUMENT description: '- `IDENTIFICATION` — document scan + selfie (default) - `DOCUMENT` — document scan only' externalRef: type: string nullable: true maxLength: 40 description: Optional internal reference. Returned as-is in webhooks. generateDigitString: type: boolean default: false description: If `true`, generates an 8-digit mobile app code returned as `digitString`. expiryTime: type: integer minimum: 0 maximum: 2592000 description: Token validity in seconds. Maximum 2,592,000 (30 days). locale: type: string nullable: true maxLength: 7 description: UI language code (e.g. `en`, `de`, `ko`). country: type: string nullable: true description: Restrict accepted document-issuing country (ISO alpha-2). sessionLength: type: integer minimum: 60 maximum: 3600 description: Seconds the user has to complete verification once started. documents: type: array nullable: true items: type: string description: Restrict accepted document types (e.g. `PASSPORT`, `ID_CARD`). firstName: type: string nullable: true maxLength: 100 description: Pre-fill client first name. Mismatch triggers `SUSPECTED` status. lastName: type: string nullable: true maxLength: 100 description: Pre-fill client last name. Mismatch triggers `SUSPECTED` status. dateOfBirth: type: string format: date nullable: true description: Pre-fill client date of birth. nationality: type: string nullable: true description: Pre-fill client nationality. documentNumber: type: string nullable: true maxLength: 50 description: Pre-fill document number. personalNumber: type: string nullable: true maxLength: 50 description: Pre-fill personal/national ID number. sex: type: string nullable: true enum: - M - F description: Pre-fill client sex. dateOfExpiry: type: string format: date nullable: true description: Pre-fill document expiry date. dateOfIssue: type: string nullable: true description: Pre-fill document issue date. address: type: string nullable: true description: Client address for Proof of Address verification. successUrl: type: string format: uri nullable: true description: Redirect URL on successful verification. errorUrl: type: string format: uri nullable: true description: Redirect URL on failed verification. unverifiedUrl: type: string format: uri nullable: true description: Redirect URL when verification result is unverified. callbackUrl: type: string format: uri nullable: true description: Override webhook callback URL for this session only. showInstructions: type: boolean reviewSuccessful: type: boolean description: Enable manual review for successful verifications. reviewFailed: type: boolean description: Enable manual review for failed verifications. questionnaire: type: string nullable: true description: Questionnaire `key` for this session. Pass `null` to disable. questionnaireRequired: type: boolean default: true riskAssessmentProfile: type: string format: uuid nullable: true theme: type: string format: uuid nullable: true registryCentersCountries: type: array nullable: true items: type: string verifyEmail: type: boolean verifyPhone: type: boolean verifyBank: type: boolean verifyBankAccounts: type: boolean verifyBankBalances: type: boolean verifyBankTransactions: type: boolean bankCardVerification: type: boolean bankCardPdfUpload: type: boolean verifyAddress: type: boolean checkAml: type: boolean checkCriminal: type: boolean checkLiveness: type: boolean checkFaceBlacklist: type: boolean checkDocFaceBlacklist: type: boolean checkPersonBlacklist: type: boolean checkDuplicateFaces: type: boolean checkDuplicateDocFaces: type: boolean checkDuplicatePersonalData: type: boolean checkDriverLicense: type: boolean checkLid: type: boolean checkIpProxy: type: boolean allowBsnMasking: type: boolean nfcRequired: type: boolean autoAmlMonitoring: type: boolean driverLicenseBack: type: boolean faceMatchingThresholdModifier: type: number additionalSteps: type: object description: Request extra document steps. See Additional Steps documentation. additionalData: type: object description: Data for COMPARE-type additional steps. utilityBill: type: boolean nullable: true nfcOptional: type: boolean ageLimit: type: integer description: Minimum required age. Below this triggers `SUSPECTED` status. ageMax: type: integer description: Maximum allowed age. Above this triggers `SUSPECTED` status. responses: '201': description: Token created successfully. content: application/json: schema: type: object required: - authToken - scanRef - tokenType properties: message: type: string readOnly: true authToken: type: string readOnly: true description: Pass this to the frontend, SDK, or redirect URL to start verification. redirectUrl: type: string readOnly: true nullable: true description: Direct URL to the hosted verification flow. Redirect the user here or embed in an iFrame. scanRef: type: string readOnly: true description: Unique session ID. Store this to correlate with webhook results. clientId: type: string nullable: true personScanRef: type: string nullable: true firstName: type: string nullable: true lastName: type: string nullable: true successUrl: type: string nullable: true errorUrl: type: string nullable: true unverifiedUrl: type: string nullable: true callbackUrl: type: string nullable: true locale: type: string nullable: true country: type: string nullable: true expiryTime: type: integer description: Token expiry time in seconds. sessionLength: type: integer documents: type: array items: type: string allowedDocuments: type: object additionalProperties: type: array items: type: string dateOfBirth: type: string nullable: true dateOfExpiry: type: string nullable: true dateOfIssue: type: string nullable: true nationality: type: string nullable: true personalNumber: type: string nullable: true documentNumber: type: string nullable: true sex: type: string nullable: true address: type: string nullable: true showInstructions: type: boolean tokenType: type: string enum: - IDENTIFICATION - DOCUMENT utilityBill: nullable: true additionalSteps: type: object additionalData: type: object externalRef: type: string nullable: true questionnaire: type: string nullable: true registryCentersCountries: type: array items: type: string riskAssessmentProfile: type: string format: uuid nullable: true theme: type: string format: uuid nullable: true allowBsnMasking: type: boolean verifyBankTransactions: type: boolean bankCardVerification: type: boolean bankCardPdfUpload: type: boolean checkLid: type: boolean checkDriverLicense: type: boolean verifyAddress: type: boolean checkFaceBlacklist: type: boolean verifyEmail: type: boolean checkPersonBlacklist: type: boolean checkDuplicateDocFaces: type: boolean reviewSuccessful: type: boolean reviewFailed: type: boolean verifyBank: type: boolean autoAmlMonitoring: type: boolean verifyPhone: type: boolean faceMatchingThresholdModifier: type: number checkCriminal: type: boolean checkAml: type: boolean checkDuplicateFaces: type: boolean driverLicenseBack: type: boolean verifyBankAccounts: type: boolean checkDuplicatePersonalData: type: boolean verifyBankBalances: type: boolean nfcRequired: type: boolean checkIpProxy: type: boolean checkDocFaceBlacklist: type: boolean checkLiveness: type: boolean digitString: type: string nullable: true readOnly: true description: 8-digit mobile code. Only present when `generateDigitString` was `true`. /kyc/identifications/: get: operationId: kycIdentificationsList summary: List identifications parameters: - in: query name: clientId schema: type: string - name: page required: false in: query description: A page number within the paginated result set. schema: type: integer - name: perPage required: false in: query description: Number of results to return per page. schema: type: integer tags: - KYC Verifications security: - apiKeyPair: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/PaginatedPartnerIdentificationListList' description: '' /kyc/identifications/{scanRef}/request-information/: post: operationId: kycIdentificationsRequestInformationCreate summary: Request additional information from client parameters: - in: path name: scanRef schema: type: string required: true tags: - KYC Verifications requestBody: content: application/json: schema: $ref: '#/components/schemas/IdentificationRequestInformationRequest' security: - apiKeyPair: [] responses: '200': content: application/json: schema: $ref: '#/components/schemas/IdentificationRequestInformation' description: '' /kyc/identifications/{scanRef}/blocklists/{blocklistSource}/: post: operationId: kycIdentificationsBlocklistsCreate summary: Add identification to blocklist tags: - KYC Blocklist parameters: - in: path name: blocklistSource schema: type: string enum: - DOCUMENT - DOCUMENT_INFO - SELFIE required: true - in: path name: scanRef schema: type: string required: true requestBody: content: application/json: schema: $ref: '#/components/schemas/IdentificationBlacklistRequest' security: - apiKeyPair: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/IdentificationBlacklistEntry' description: '' delete: operationId: kycIdentificationsBlocklistsDestroy summary: Remove identification from blocklist tags: - KYC Blocklist parameters: - in: path name: blocklistSource schema: type: string enum: - DOCUMENT - DOCUMENT_INFO - SELFIE required: true - in: path name: scanRef schema: type: string required: true security: - apiKeyPair: [] responses: '204': description: No response body /api/v2/poa-checks/: post: operationId: apiV2PoaChecksCreate summary: Create POA check tags: - POA requestBody: content: application/json: schema: $ref: '#/components/schemas/PoaCheckDetailRequest' required: true security: - apiKeyPair: [] responses: '201': content: application/json: schema: $ref: '#/components/schemas/PoaCheckDetail' description: '' components: schemas: AdditionalStepStatusEnum: description: |- Result of an additional step document (e.g. proof of address). See [Verification Statuses → Additional Step Statuses](https://documentation.idenfy.com/guides/dashboard/kyc/verification-statuses#additional-step-statuses) for what each value means. enum: - VALID - INVALID - NOT_FOUND type: string AddressVerificationQualityEnum: enum: - EXCELLENT - GOOD - AVERAGE - POOR - BAD type: string AddressVerificationStatusEnum: enum: - VERIFIED - PARTIALLY_VERIFIED - UNVERIFIED type: string AddressVerificationWebhook: type: object properties: address: type: string maxLength: 255 country: allOf: - $ref: '#/components/schemas/CountryEnum' nullable: true status: allOf: - $ref: '#/components/schemas/AddressVerificationStatusEnum' readOnly: true accuracy: type: integer readOnly: true nullable: true quality: allOf: - $ref: '#/components/schemas/AddressVerificationQualityEnum' readOnly: true nullable: true required: - accuracy - address - quality - status AdverseMediaData: type: object properties: title: type: string nullable: true url: type: string nullable: true text: type: string nullable: true score: type: string nullable: true type: allOf: - $ref: '#/components/schemas/AmlArticleTypeEnum' nullable: true checkDate: type: string publishDate: type: string nullable: true required: - checkDate - publishDate - score - text - title - type - url AgeGroupEnum: enum: - UNDER_13 - UNDER_8 - OVER_8 - OVER_13 - OVER_16 - OVER_18 - OVER_21 - OVER_22 - OVER_25 - OVER_30 type: string AmlArticleTypeEnum: enum: - NEGATIVE type: string AmlCheckSuspicionEnum: enum: - SUSPECTED - NOT_SUSPECTED type: string AmlCheckV3Webhook: type: object properties: id: type: string nullable: true overallStatus: type: string nullable: true statusSetBy: type: object additionalProperties: {} nullable: true statusSetAt: type: string format: date-time nullable: true adverseMedia: type: array items: $ref: '#/components/schemas/AmlV3AdverseMediaDataWebhook' nullable: true amlCheck: type: array items: $ref: '#/components/schemas/AmlV3CheckDataWebhook' nullable: true required: - adverseMedia - amlCheck - id - overallStatus - statusSetAt - statusSetBy AmlCompanyNameResults: type: object properties: status: $ref: '#/components/schemas/FraudStatus' serviceName: type: string serviceGroupType: type: string uid: type: string errorMessage: type: string nullable: true data: type: array items: $ref: '#/components/schemas/CompanyAmlData' required: - errorMessage - serviceGroupType - serviceName - status - uid AmlData: type: object properties: name: type: string nullable: true surname: type: string nullable: true nationality: type: string nullable: true dob: type: string nullable: true suspicion: allOf: - $ref: '#/components/schemas/AmlSuspicionTypeEnum' nullable: true reason: type: string nullable: true listNumber: type: string nullable: true listName: type: string nullable: true score: type: integer nullable: true lastUpdate: type: string nullable: true exitDate: type: string nullable: true isPerson: type: boolean nullable: true isActive: type: boolean nullable: true linkedDocument: type: string format: uri nullable: true pepLevel: type: integer nullable: true category: type: string nullable: true otherInformation: type: string nullable: true checkDate: type: string nullable: true whitelisted: type: boolean required: - category - checkDate - dob - exitDate - isActive - isPerson - lastUpdate - linkedDocument - listName - listNumber - name - nationality - otherInformation - pepLevel - reason - score - surname - suspicion AmlNameResults: type: object properties: status: $ref: '#/components/schemas/FraudStatus' serviceName: type: string serviceGroupType: type: string uid: type: string errorMessage: type: string nullable: true data: type: array items: $ref: '#/components/schemas/AmlData' required: - errorMessage - serviceGroupType - serviceName - status - uid AmlNewsResults: type: object properties: status: $ref: '#/components/schemas/FraudStatus' serviceName: type: string serviceGroupType: type: string uid: type: string errorMessage: type: string nullable: true data: type: array items: $ref: '#/components/schemas/AdverseMediaData' required: - errorMessage - serviceGroupType - serviceName - status - uid AmlResults: oneOf: - $ref: '#/components/schemas/AmlNameResults' - $ref: '#/components/schemas/AmlNameResults' - $ref: '#/components/schemas/AmlCompanyNameResults' - $ref: '#/components/schemas/AmlNewsResults' - $ref: '#/components/schemas/AmlNewsResults' discriminator: propertyName: serviceName mapping: AML_NAMES_CHECK: '#/components/schemas/AmlNameResults' AML_OPEN_SANCTIONS: '#/components/schemas/AmlNameResults' COMPANY_CHECK: '#/components/schemas/AmlCompanyNameResults' AML_NEWS: '#/components/schemas/AmlNewsResults' INHOUSE_ADVERSE_MEDIA: '#/components/schemas/AmlNewsResults' AmlSuspicionTypeEnum: enum: - SANCTION - INTERPOL - PEPS - ADVERSE_MEDIA - OTHER type: string AmlV3AddressWebhook: type: object properties: city: type: string nullable: true geography: type: string nullable: true required: - city - geography AmlV3AdverseMediaDataWebhook: type: object properties: title: type: string nullable: true url: type: string text: type: string nullable: true score: type: string nullable: true type: type: string nullable: true publishDate: type: string nullable: true required: - publishDate - score - text - title - type - url AmlV3CheckDataWebhook: type: object properties: addresses: type: array items: $ref: '#/components/schemas/AmlV3AddressWebhook' nullable: true datesOfBirth: type: array items: type: string nullable: true gender: type: string nullable: true nationalities: type: array items: type: string nullable: true match: type: string formerSanBodyIds: type: array items: type: integer nullable: true countries: type: array items: type: string nullable: true datasets: type: array items: type: string currentSanBodyIds: type: array items: type: integer nullable: true version: type: integer pepTier: type: string nullable: true score: type: integer nullable: true profileImage: type: string format: uri nullable: true name: type: string nullable: true resourceId: type: string required: - addresses - countries - currentSanBodyIds - datasets - datesOfBirth - formerSanBodyIds - gender - match - name - nationalities - resourceId - score - version BankAccountWebhook: type: object properties: id: type: string format: uuid name: type: string nullable: true maxLength: 128 iban: type: string nullable: true maxLength: 34 currency: type: string maxLength: 3 balancesOverview: allOf: - $ref: '#/components/schemas/BankBalancesOverviewWebhook' nullable: true transactionsCount: type: integer nullable: true required: - balancesOverview - currency - iban - id - name - transactionsCount BankBalancesOverviewWebhook: type: object properties: bookedBalance: type: number format: double nullable: true availableBalance: type: number format: double nullable: true required: - availableBalance - bookedBalance BankCardNoMatchReasonEnum: enum: - NAME_MISMATCH - NUMBER_MISMATCH - NAME_NOT_FOUND - NUMBER_NOT_FOUND - LIVENESS_FAILED type: string BankCardVerificationStatusEnum: enum: - NOT_COMPARED - MATCH - NO_MATCH type: string BankCardVerificationWebhook: type: object properties: id: type: string format: uuid status: $ref: '#/components/schemas/BankCardVerificationStatusEnum' noMatchReason: allOf: - $ref: '#/components/schemas/BankCardNoMatchReasonEnum' nullable: true name: type: string nullable: true firstSix: type: string nullable: true lastFour: type: string nullable: true expiryDate: type: string format: date nullable: true nameMatch: type: boolean nullable: true lastFourMatch: type: boolean nullable: true required: - expiryDate - firstSix - id - lastFour - lastFourMatch - name - nameMatch - noMatchReason - status BankVerificationWebhook: type: object properties: id: type: string format: uuid country: allOf: - $ref: '#/components/schemas/CountryEnum' nullable: true bank: type: string nullable: true accounts: type: array items: $ref: '#/components/schemas/BankAccountWebhook' riskLevel: allOf: - $ref: '#/components/schemas/RiskLevelEnum' nullable: true required: - accounts - bank - country - id - riskLevel CompanyAmlData: type: object properties: name: type: string nullable: true surname: type: string nullable: true nationality: type: string nullable: true dob: type: string nullable: true suspicion: allOf: - $ref: '#/components/schemas/AmlSuspicionTypeEnum' nullable: true reason: type: string nullable: true listNumber: type: string nullable: true listName: type: string nullable: true score: type: integer nullable: true lastUpdate: type: string nullable: true isPerson: type: boolean nullable: true isActive: type: boolean nullable: true linkedDocument: type: string format: uri nullable: true pepLevel: type: integer nullable: true category: type: string nullable: true otherInformation: type: string nullable: true checkDate: type: string nullable: true whitelisted: type: boolean required: - category - checkDate - dob - isActive - isPerson - lastUpdate - linkedDocument - listName - listNumber - name - nationality - otherInformation - pepLevel - reason - score - surname - suspicion CountryEnum: enum: - AF - AX - AL - DZ - AS - AD - AO - AI - AQ - AG - AR - AM - AW - AU - AT - AZ - BS - BH - BD - BB - BY - BE - BZ - BJ - BM - BT - BO - BQ - BA - BW - BV - BR - IO - BN - BG - BF - BI - CV - KH - CM - CA - KY - CF - TD - CL - CN - CX - CC - CO - KM - CG - CK - CR - CI - HR - CU - CW - CY - CZ - CD - DK - DJ - DM - DO - EC - EG - SV - GQ - ER - EE - SZ - ET - FK - FO - FJ - FI - FR - GF - PF - TF - GA - GM - GE - DE - GH - GI - GR - GL - GD - GP - GU - GT - GG - GN - GW - GY - HT - HM - HN - HK - HU - IS - IN - ID - IR - IQ - IE - IM - IL - IT - JM - JP - JE - JO - KZ - KE - KI - XK - KW - KG - LA - LV - LB - LS - LR - LY - LI - LT - LU - MO - MG - MW - MY - MV - ML - MT - MH - MQ - MR - MU - YT - MX - FM - MD - MC - MN - ME - MS - MA - MZ - MM - NA - NR - NP - NL - NC - NZ - NI - NE - NG - NU - NF - KP - MK - MP - 'NO' - OM - PK - PW - PS - PA - PG - PY - PE - PH - PN - PL - PT - PR - QA - RE - RO - RU - RW - BL - SH - KN - LC - MF - PM - VC - WS - SM - ST - SA - SN - RS - SC - SL - SG - SX - SK - SI - SB - SO - ZA - GS - KR - SS - ES - LK - SD - SR - SJ - SE - CH - SY - TW - TJ - TZ - TH - TL - TG - TK - TO - TT - TN - TR - TM - TC - TV - UG - UA - AE - GB - UM - US - UY - UZ - VU - VA - VE - VN - VG - VI - WF - EH - YE - ZM - ZW type: string CriminalCheckData: type: object properties: offenses: type: array items: $ref: '#/components/schemas/CriminalCheckOffense' fullName: type: string nullable: true county: type: string nullable: true region: allOf: - $ref: '#/components/schemas/RegionEnum' nullable: true required: - county - fullName - offenses - region CriminalCheckOffense: type: object properties: offense: type: string nullable: true offenseClass: type: string nullable: true offenseDescription: type: string nullable: true offenseLevel: type: string nullable: true sentenceDate: type: string nullable: true courtName: type: string nullable: true courtCaseNumber: type: string nullable: true releaseDate: type: string nullable: true required: - courtCaseNumber - courtName - offense - offenseClass - offenseDescription - offenseLevel - releaseDate - sentenceDate CriminalCheckResults: type: object properties: status: $ref: '#/components/schemas/FraudStatus' data: type: array items: $ref: '#/components/schemas/CriminalCheckData' serviceName: type: string serviceGroupType: type: string default: CRIMINAL_CHECK uid: type: string errorMessage: type: string nullable: true required: - data - errorMessage - serviceName - status - uid DeviceTypeEnum: enum: - PC - MOBILE - TABLET - MOBILE_APP - MOBILE_SDK - OTHER type: string DocumentExpirationEnum: enum: - DOCUMENT_EXPIRES_WITHIN_30_DAYS - DOCUMENT_EXPIRES_WITHIN_7_DAYS - DOCUMENT_EXPIRES_WITHIN_1_DAY - DOCUMENT_EXPIRED type: string DocumentExpirationWebhook: type: object properties: scanRef: type: string clientId: type: string expirationThreshold: $ref: '#/components/schemas/DocumentExpirationEnum' documentExpiration: type: string required: - clientId - documentExpiration - expirationThreshold - scanRef DocumentStatusEnum: description: |- Automated or manual document check result. See [Verification Statuses → Document Status Values](https://documentation.idenfy.com/guides/dashboard/kyc/verification-statuses#document-status-values) for what each value means. enum: - DOC_VALIDATED - DOC_INFO_MISMATCH - DOC_NOT_FOUND - DOC_NOT_FULLY_VISIBLE - DOC_FACE_NOT_FOUND - DOC_TOO_BLURRY - DOC_GLARED - DOC_FACE_GLARED - MRZ_NOT_FOUND - MRZ_OCR_READING_ERROR - BARCODE_NOT_FOUND - DOC_EXPIRED - DOC_NOT_SUPPORTED - COUNTRY_NOT_SUPPORTED - COUNTRY_MISMATCH - DOC_TYPE_MISMATCH - DOC_SUBTYPE_MISMATCH - DOC_SIDE_MISMATCH - DOC_DAMAGED - DOC_FAKE - DOC_PERSONAL_CODE_INVALID - DOC_NOT_ALLOWED - DOC_NAME_ERROR - DOC_SURNAME_ERROR - DOC_EXPIRY_ERROR - DOC_DOB_ERROR - DOC_PERSONAL_NUMBER_ERROR - DOC_NUMBER_ERROR - DOC_DATE_OF_ISSUE_ERROR - DOC_SEX_ERROR - DOC_NATIONALITY_ERROR - DOC_NOT_ANALYSED - DOC_ERROR - AUTO_UNVERIFIABLE - DOC_SPOOF_DETECTED - MRZ_INVALID - EID_FAILED - NFC_INIT_FAILED - NFC_FAILED - NFC_TIMEOUT type: string DriverLicenseCheckWebhook: type: object properties: name: type: string surname: type: string dateOfBirth: type: string format: date state: type: string maxLength: 2 gender: type: string nullable: true maxLength: 1 dateOfIssue: type: string format: date nullable: true dateOfExpiry: type: string format: date nullable: true documentNumber: type: string nullable: true nameMatch: type: boolean nullable: true surnameMatch: type: boolean nullable: true dateOfBirthMatch: type: boolean nullable: true dateOfIssueMatch: type: boolean nullable: true dateOfExpiryMatch: type: boolean nullable: true documentNumberMatch: type: boolean nullable: true genderMatch: type: boolean nullable: true required: - dateOfBirth - dateOfBirthMatch - dateOfExpiry - dateOfExpiryMatch - dateOfIssue - dateOfIssueMatch - documentNumber - documentNumberMatch - gender - genderMatch - name - nameMatch - state - surname - surnameMatch EmailVerificationWebhook: type: object properties: email: type: string format: email maxLength: 254 emailVerified: type: boolean required: - email - emailVerified FaceStatusEnum: description: |- Automated or manual face-match check result. See [Verification Statuses → Face Status Values](https://documentation.idenfy.com/guides/dashboard/kyc/verification-statuses#face-status-values) for what each value means. enum: - FACE_MATCH - FACE_NOT_CHECKED - FACE_MISMATCH - NO_FACE_FOUND - TOO_MANY_FACES - FACE_TOO_BLURRY - FACE_GLARED - FACE_UNCERTAIN - FACE_NOT_ANALYSED - FACE_ERROR - AUTO_UNVERIFIABLE - FAKE_FACE type: string FraudStatus: type: object properties: serviceSuspected: type: boolean serviceUsed: type: boolean serviceFound: type: boolean checkSuccessful: type: boolean overallStatus: $ref: '#/components/schemas/AmlCheckSuspicionEnum' required: - checkSuccessful - overallStatus - serviceFound - serviceSuspected - serviceUsed FraudTagsEnum: description: |- Fraud indicators that can trigger a `SUSPECTED` status. See [Verification Statuses → Fraud Tags](https://documentation.idenfy.com/guides/dashboard/kyc/verification-statuses#fraud-tags) for what each value means, and [Suspected Status](https://documentation.idenfy.com/kyc/suspected-status) for worked examples and how to resolve them. enum: - FACE_IN_BLACKLIST - DOC_FACE_IN_BLACKLIST - DATA_BLACKLISTED - DATA_IN_BLACKLIST - DUPLICATE_FACE - DUPLICATE_DOC_FACE - DUPLICATE_PERSONAL_DATA - VIRTUAL_CAMERA - ADDRESS_UNVERIFIED - PORTRAIT_SUBSTITUTION - FACE_SUSPECTED - FACE_BLACKLISTED - DOC_FACE_BLACKLISTED - DOC_MOBILE_PHOTO - DEV_TOOLS_OPENED - DOC_PRINT_SPOOFED - FAKE_PHOTO - AML_SUSPECTION - AML_FAILED - LID_SUSPECTION - LID_FAILED - SANCTIONS_SUSPECTION - SANCTIONS_FAILED - CRIMINAL_SUSPECTED - CRIMINAL_CHECK_FAILED - RC_FAILED - DL_FAILED - AUTO_UNVERIFIABLE type: string HungaryRegistryCenterWebhook: type: object properties: checkedMrz: type: string maxLength: 100 firstName: type: string nullable: true maxLength: 100 lastName: type: string nullable: true maxLength: 100 maidenName: type: string nullable: true maxLength: 100 mothersMaidenName: type: string nullable: true maxLength: 100 birthDate: type: string format: date nullable: true birthPlace: type: string nullable: true maxLength: 100 address: type: object additionalProperties: {} nullable: true residentialAddress: type: object additionalProperties: {} nullable: true nationality: allOf: - $ref: '#/components/schemas/CountryEnum' nullable: true idCard: type: object additionalProperties: {} nullable: true passport: type: object additionalProperties: {} nullable: true additionalData: type: object additionalProperties: {} nullable: true resourceType: $ref: '#/components/schemas/ResourceTypeEnum' required: - additionalData - address - birthDate - birthPlace - checkedMrz - firstName - idCard - lastName - maidenName - mothersMaidenName - nationality - passport - residentialAddress - resourceType IdentificationBlacklist: type: object properties: id: type: string readOnly: true description: The `scan_ref` of the blocklisted face image; use it as the `id` path parameter. reason: type: string nullable: true created: type: string format: date-time readOnly: true faceImageUrl: type: string nullable: true readOnly: true required: - created - faceImageUrl - id IdentificationBlacklistEntry: oneOf: - $ref: '#/components/schemas/IdentificationBlacklist' - $ref: '#/components/schemas/IdentificationDataBlacklistResponse' IdentificationBlacklistRequest: type: object properties: reason: type: string nullable: true IdentificationDataBlacklistResponse: type: object properties: id: type: string readOnly: true description: The database `id` of the blocklisted data record; use it as the `id` path parameter. fullName: type: string readOnly: true dateOfBirth: type: string format: date readOnly: true personalNumber: type: string readOnly: true documentNumber: type: string readOnly: true nationality: type: string readOnly: true reason: type: string readOnly: true created: type: string format: date-time readOnly: true required: - created - dateOfBirth - documentNumber - fullName - id - nationality - personalNumber - reason IdentificationDataWebhook: type: object properties: docFirstName: type: string nullable: true maxLength: 100 docLastName: type: string nullable: true maxLength: 100 docNumber: type: string nullable: true maxLength: 100 docPersonalCode: type: string nullable: true maxLength: 30 docExpiry: type: string nullable: true maxLength: 100 docDob: type: string nullable: true maxLength: 100 docDateOfIssue: type: string nullable: true maxLength: 100 docType: allOf: - $ref: '#/components/schemas/KycDocumentTypeEnum' nullable: true docSex: allOf: - $ref: '#/components/schemas/SexEnum' nullable: true docNationality: type: string nullable: true maxLength: 2 docIssuingCountry: type: string nullable: true maxLength: 2 birthPlace: type: string nullable: true maxLength: 60 authority: type: string nullable: true maxLength: 60 address: type: string nullable: true maxLength: 100 docTemporaryAddress: type: string nullable: true maxLength: 100 mothersMaidenName: type: string nullable: true maxLength: 80 docBirthName: type: string nullable: true maxLength: 100 docPatronymic: type: string nullable: true maxLength: 100 driverLicenseCategory: type: string nullable: true maxLength: 30 manuallyDataChanged: type: boolean nullable: true fullName: type: string nullable: true maxLength: 201 selectedCountry: type: string nullable: true maxLength: 2 orgFirstName: type: string nullable: true maxLength: 255 orgLastName: type: string nullable: true maxLength: 255 orgNationality: type: string nullable: true maxLength: 255 orgBirthPlace: type: string nullable: true maxLength: 500 orgAuthority: type: string nullable: true maxLength: 500 orgAddress: type: string nullable: true maxLength: 500 orgTemporaryAddress: type: string nullable: true maxLength: 500 orgMothersMaidenName: type: string nullable: true maxLength: 500 orgPatronymic: type: string nullable: true maxLength: 500 orgBirthName: type: string nullable: true maxLength: 500 ageEstimate: allOf: - $ref: '#/components/schemas/AgeGroupEnum' nullable: true clientIpProxyRiskLevel: allOf: - $ref: '#/components/schemas/RiskLevelEnum' nullable: true duplicateFaces: type: array items: type: string maxLength: 36 nullable: true duplicateDocFaces: type: array items: type: string maxLength: 36 nullable: true additionalData: type: object additionalProperties: {} nullable: true required: - ageEstimate - clientIpProxyRiskLevel - docDateOfIssue - docDob - docExpiry - docFirstName - docIssuingCountry - docLastName - docNationality - docNumber - docPersonalCode - docSex - docType - duplicateDocFaces - duplicateFaces - fullName - manuallyDataChanged - orgAddress - orgAuthority - orgBirthName - orgBirthPlace - orgFirstName - orgLastName - orgMothersMaidenName - orgNationality - orgPatronymic - orgTemporaryAddress - selectedCountry IdentificationRequestInformation: type: object properties: sessionUrl: type: string format: uri readOnly: true tokenString: type: string readOnly: true required: - sessionUrl - tokenString IdentificationRequestInformationRequest: type: object properties: lifetime: type: integer maximum: 2592000 minimum: 0 writeOnly: true default: 86400 questionnaire: type: string minLength: 1 writeOnly: true riskAssessmentProfile: type: string format: uuid writeOnly: true additionalStepUploadRequired: type: boolean writeOnly: true bankCardVerification: type: boolean writeOnly: true bankCardExpectedLastFour: type: string writeOnly: true nullable: true minLength: 4 maxLength: 4 IdentificationStatusEnum: description: |- Overall verification status. See [Verification Statuses](https://documentation.idenfy.com/guides/dashboard/kyc/verification-statuses#overall-status) for what each value means, or [Status Handling](https://documentation.idenfy.com/kyc/status-handling) for what to do with it. enum: - APPROVED - DENIED - SUSPECTED - REVIEWING - EXPIRED - ACTIVE - DELETED - ARCHIVED type: string IdentificationStatusWebhook: type: object properties: overall: $ref: '#/components/schemas/IdentificationStatusEnum' fraudTags: type: array items: $ref: '#/components/schemas/FraudTagsEnum' mismatchTags: type: array items: $ref: '#/components/schemas/InfoMismatchEnum' autoFace: $ref: '#/components/schemas/FaceStatusEnum' manualFace: $ref: '#/components/schemas/FaceStatusEnum' autoDocument: $ref: '#/components/schemas/DocumentStatusEnum' manualDocument: $ref: '#/components/schemas/DocumentStatusEnum' additionalSteps: allOf: - $ref: '#/components/schemas/AdditionalStepStatusEnum' nullable: true required: - additionalSteps - autoDocument - autoFace - fraudTags - manualDocument - manualFace - mismatchTags - overall IdentificationWebhook: type: object properties: final: type: boolean platform: $ref: '#/components/schemas/DeviceTypeEnum' status: allOf: - $ref: '#/components/schemas/IdentificationStatusWebhook' description: |- See [Status Handling](https://documentation.idenfy.com/kyc/status-handling) for what to do with `overall`, and especially how to handle a `SUSPECTED` result using `fraudTags`/`mismatchTags`. data: $ref: '#/components/schemas/IdentificationDataWebhook' fileUrls: type: object additionalProperties: {} nullable: true additionalStepPdfUrls: type: object additionalProperties: {} nullable: true AML: type: array items: $ref: '#/components/schemas/AmlResults' nullable: true description: Legacy (v2) object structure. If enabled, use `amlCheck` (v3), which better aligns with our new schema. amlCheck: allOf: - $ref: '#/components/schemas/AmlCheckV3Webhook' nullable: true LID: type: array items: $ref: '#/components/schemas/LidResults' nullable: true CRIMINAL_CHECK: type: array items: $ref: '#/components/schemas/CriminalCheckResults' nullable: true scanRef: type: string maxLength: 36 externalRef: type: string nullable: true maxLength: 40 clientId: type: string maxLength: 100 companyId: type: string maxLength: 36 beneficiaryId: type: string maxLength: 36 startTime: type: integer finishTime: type: integer clientIp: type: string nullable: true maxLength: 39 clientIpCountry: type: string nullable: true maxLength: 2 clientLocation: type: string nullable: true maxLength: 100 gdcMatch: type: boolean nullable: true manualAddress: type: string nullable: true maxLength: 255 manualAddressMatch: type: boolean registryCenterCheck: allOf: - $ref: '#/components/schemas/RegistryCenterCheckWebhook' nullable: true addressVerification: allOf: - $ref: '#/components/schemas/AddressVerificationWebhook' nullable: true questionnaireAnswers: allOf: - $ref: '#/components/schemas/QuestionnaireAnswersWebhook' nullable: true riskAssessment: allOf: - $ref: '#/components/schemas/RiskAssessmentWebhook' nullable: true bankVerification: allOf: - $ref: '#/components/schemas/BankVerificationWebhook' nullable: true emailVerification: allOf: - $ref: '#/components/schemas/EmailVerificationWebhook' nullable: true phoneVerification: allOf: - $ref: '#/components/schemas/PhoneVerificationWebhook' nullable: true driverLicenseCheck: allOf: - $ref: '#/components/schemas/DriverLicenseCheckWebhook' nullable: true bankCardVerification: allOf: - $ref: '#/components/schemas/BankCardVerificationWebhook' nullable: true additionalSteps: type: object additionalProperties: enum: - UPLOAD - COMPARE - EXTRACT - null type: string nullable: true nullable: true required: - beneficiaryId - clientId - clientIp - clientIpCountry - clientLocation - companyId - data - fileUrls - final - finishTime - platform - scanRef - startTime - status InfoMismatchEnum: description: |- Data mismatches between the information submitted at session creation and the document. See [Verification Statuses → Mismatch Tags](https://documentation.idenfy.com/guides/dashboard/kyc/verification-statuses#mismatch-tags) for what each value means, and [Suspected Status](https://documentation.idenfy.com/kyc/suspected-status) for worked examples and how to resolve them. enum: - NAME - SURNAME - DOCUMENT_NUMBER - PERSONAL_CODE - EXPIRY_DATE - DATE_OF_BIRTH - DATE_OF_ISSUE - NATIONALITY - SEX - FULL_NAME - DOC_INFO_MISMATCH - UNDER_AGE - OVER_AGE - UNKNOWN_AGE - UTILITY_ADDRESS - UTILITY_NAME - EXPIRED_UTILITY_BILL - INVALID_ADDITIONAL_STEP - ADDITIONAL_STEP_NOT_FOUND - ADDITIONAL_STEP_INFORMATION_MISMATCH - EXPIRED_ADDITIONAL_STEP_INFORMATION - REGISTRY_CENTER_INFO_MISMATCH - DRIVER_LICENSE_INFO_MISMATCH - NOT_SUPPORTED_POA_DOCUMENT_TYPE - NOT_SUPPORTED_POA_DOCUMENT_COUNTRY - POA_COUNTRIES_MISMATCH - POA_SCREENSHOT_DETECTED type: string KycDocumentTypeEnum: enum: - ID_CARD - PASSPORT - RESIDENCE_PERMIT - DRIVER_LICENSE - PAN_CARD - AADHAAR - VISA - NATIONAL_PASSPORT - PROVISIONAL_DRIVER_LICENSE - OLD_ID_CARD - MILITARY_CARD - ADDRESS_CARD - SMART_ID - CLEAR - ONE_ID - BANK_ID_SE - BANK_ID_NO - BANK_ID_CZ - FTN - MIT_ID - VERIMI - LA_WALLET - SAMSUNG_WALLET - MOJE_ID_CZ - YOTI_ID - OTHER - BORDER_CROSSING - ASYLUM - PHOTO_CARD - PROOF_OF_AGE_CARD - TRAVEL_CARD - SOCIAL_SECURITY_CARD - VOTER_CARD - DIPLOMATIC_ID - WORK_PERMIT type: string LidData: type: object properties: documentNumber: type: string documentType: type: string nullable: true valid: type: boolean expiryDate: type: string checkDate: type: string required: - checkDate - documentNumber - documentType - expiryDate - valid LidResults: type: object properties: status: $ref: '#/components/schemas/FraudStatus' data: type: array items: $ref: '#/components/schemas/LidData' serviceName: type: string serviceGroupType: type: string default: LID uid: type: string errorMessage: type: string nullable: true required: - data - errorMessage - serviceName - status - uid LithuaniaRegistryCenterWebhook: type: object properties: checkedPersonalNumber: type: string maxLength: 30 checkedDocumentType: type: string maxLength: 2 personalNumber: type: string nullable: true maxLength: 30 name: type: string nullable: true maxLength: 100 surname: type: string nullable: true maxLength: 100 documentNumber: type: string nullable: true maxLength: 100 documentExpiration: type: string format: date nullable: true facePhoto: type: string format: uri nullable: true resourceType: $ref: '#/components/schemas/ResourceTypeEnum' required: - checkedDocumentType - checkedPersonalNumber - documentExpiration - documentNumber - facePhoto - name - personalNumber - resourceType - surname PaginatedPartnerIdentificationListList: type: object required: - count - results properties: count: type: integer example: 123 next: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=4 previous: type: string nullable: true format: uri example: http://api.example.org/accounts/?page=2 results: type: array items: $ref: '#/components/schemas/PartnerIdentificationList' PartnerIdentificationList: type: object properties: scanRef: type: string readOnly: true status: allOf: - $ref: '#/components/schemas/IdentificationStatusEnum' readOnly: true suspected: type: boolean readOnly: true required: - scanRef - status - suspected PhoneVerificationWebhook: type: object properties: phone: type: string description: Phone number in [E.164](https://wikipedia.org/wiki/E.164) format. phoneVerified: type: boolean required: - phone - phoneVerified QuestionnaireAnswersDisplayQuestions: type: object properties: key: type: string title: type: string type: $ref: '#/components/schemas/QuestionnaireAnswersDisplayQuestionsTypeEnum' value: oneOf: - type: array items: type: string - type: string - type: boolean nullable: true readOnly: true required: - key - title - type - value QuestionnaireAnswersDisplayQuestionsTypeEnum: enum: - CHECKBOX - COLOR - COUNTRY - COUNTRY_MULTI - DATE - DATETIME - EMAIL - FILE - FILE_MULTI - FLOAT - LIST - INTEGER - PASSWORD - RADIO - SELECT - SELECT_MULTI - TEL - TEXT - TEXT_AREA - TIME - URL type: string QuestionnaireAnswersDisplaySections: type: object properties: title: type: string questions: type: array items: $ref: '#/components/schemas/QuestionnaireAnswersDisplayQuestions' required: - questions - title QuestionnaireAnswersWebhook: type: object properties: title: type: string sections: type: array items: $ref: '#/components/schemas/QuestionnaireAnswersDisplaySections' required: - sections - title RegionEnum: enum: - AL - AZ - AR - CA - CO - CT - DE - DC - FL - GA - ID - IL - IN - IA - KS - KY - LA - ME - MD - MA - MI - MN - MS - MO - MT - NE - NV - NH - NJ - NM - NY - NC - ND - OH - OK - OR - PA - RI - SC - SD - TN - TX - UT - VT - VA - WA - WV - WI - WY - AK - HI type: string RegistryCenterCheckWebhook: oneOf: - $ref: '#/components/schemas/HungaryRegistryCenterWebhook' - $ref: '#/components/schemas/LithuaniaRegistryCenterWebhook' - $ref: '#/components/schemas/Us15RegistryCenterWebhook' discriminator: propertyName: resourceType mapping: HungaryRegistryCenterCheck: '#/components/schemas/HungaryRegistryCenterWebhook' LithuaniaRegistryCenterCheck: '#/components/schemas/LithuaniaRegistryCenterWebhook' Us15RegistryCenterCheck: '#/components/schemas/Us15RegistryCenterWebhook' ResourceTypeEnum: enum: - HungaryRegistryCenterCheck - LithuaniaRegistryCenterCheck - Us15RegistryCenterCheck type: string RiskAssessmentWebhook: type: object properties: riskScore: type: integer maximum: 100 minimum: 0 nullable: true riskLevel: allOf: - $ref: '#/components/schemas/RiskLevelEnum' nullable: true required: - riskLevel - riskScore RiskLevelEnum: enum: - VERY_LOW - LOW - MEDIUM - HIGH - VERY_HIGH - NOT_CHECKED type: string SexEnum: enum: - MALE - FEMALE - UNDEFINED type: string SoftKycMatchStatusEnum: enum: - MATCH - NO_MATCH - PARTIAL_MATCH - NO_DATA - NO_INPUT - INVALID type: string Us15RegistryCenterWebhook: type: object properties: firstName: type: string maxLength: 100 lastName: type: string maxLength: 100 middleName: type: string nullable: true maxLength: 100 dob: type: string format: date nullable: true yob: type: integer nullable: true address1: type: string nullable: true maxLength: 255 address2: type: string nullable: true maxLength: 255 city: type: string nullable: true maxLength: 100 state: type: string nullable: true maxLength: 2 zip: type: string nullable: true maxLength: 10 idNum: type: string nullable: true maxLength: 9 phone: type: string nullable: true email: type: string format: email nullable: true maxLength: 254 firstNameStatus: allOf: - $ref: '#/components/schemas/SoftKycMatchStatusEnum' nullable: true lastNameStatus: allOf: - $ref: '#/components/schemas/SoftKycMatchStatusEnum' nullable: true middleNameStatus: allOf: - $ref: '#/components/schemas/SoftKycMatchStatusEnum' nullable: true dobStatus: allOf: - $ref: '#/components/schemas/SoftKycMatchStatusEnum' nullable: true yobStatus: allOf: - $ref: '#/components/schemas/SoftKycMatchStatusEnum' nullable: true address1Status: allOf: - $ref: '#/components/schemas/SoftKycMatchStatusEnum' nullable: true address2Status: allOf: - $ref: '#/components/schemas/SoftKycMatchStatusEnum' nullable: true cityStatus: allOf: - $ref: '#/components/schemas/SoftKycMatchStatusEnum' nullable: true stateStatus: allOf: - $ref: '#/components/schemas/SoftKycMatchStatusEnum' nullable: true zipStatus: allOf: - $ref: '#/components/schemas/SoftKycMatchStatusEnum' nullable: true idNumStatus: allOf: - $ref: '#/components/schemas/SoftKycMatchStatusEnum' nullable: true phoneStatus: allOf: - $ref: '#/components/schemas/SoftKycMatchStatusEnum' nullable: true emailStatus: allOf: - $ref: '#/components/schemas/SoftKycMatchStatusEnum' nullable: true resourceType: $ref: '#/components/schemas/ResourceTypeEnum' required: - address1 - address1Status - address2 - address2Status - city - cityStatus - dob - dobStatus - email - emailStatus - firstName - firstNameStatus - idNum - idNumStatus - lastName - lastNameStatus - middleName - middleNameStatus - phone - phoneStatus - resourceType - state - stateStatus - yob - yobStatus - zip - zipStatus PoaCheckDetail: type: object properties: file: type: string format: uri description: 'Base64 encoded document file. Can be: `jpeg`, `jpg`, `png`, `webp`, `heic`, `heif`, `pdf` files.' providedName: type: string nullable: true maxLength: 255 providedAddress: type: string nullable: true maxLength: 255 id: type: string format: uuid readOnly: true created: type: string format: date-time readOnly: true issueDate: type: string format: date readOnly: true nullable: true documentType: type: string readOnly: true nullable: true country: allOf: - $ref: '#/components/schemas/CountryEnum' readOnly: true nullable: true hasLogo: type: boolean readOnly: true nullable: true isScreenshot: type: boolean readOnly: true nullable: true nameMatch: type: boolean readOnly: true nullable: true addressMatch: type: boolean readOnly: true nullable: true dateValid: type: boolean readOnly: true nullable: true overallStatus: allOf: - $ref: '#/components/schemas/PoaCheckStatusEnum' readOnly: true name: type: string readOnly: true nullable: true address: type: string readOnly: true nullable: true orgName: type: string readOnly: true nullable: true orgAddress: type: string readOnly: true nullable: true documentTypeSupported: type: boolean readOnly: true nullable: true countrySupported: type: boolean readOnly: true nullable: true required: - address - addressMatch - country - countrySupported - created - dateValid - documentType - documentTypeSupported - file - hasLogo - id - isScreenshot - issueDate - name - nameMatch - orgAddress - orgName - overallStatus PoaCheckDetailRequest: type: object properties: file: type: string format: byte description: 'Base64 encoded document file. Can be: `jpeg`, `jpg`, `png`, `webp`, `heic`, `heif`, `pdf` files.' providedName: type: string nullable: true maxLength: 255 providedAddress: type: string nullable: true maxLength: 255 required: - file PoaCheckStatusEnum: enum: - MATCH - NO_MATCH - NOT_COMPARED type: string 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*.' x-tagGroups: - name: General tags: - Webhooks - name: KYC tags: - KYC Blocklist - KYC Token - KYC Verifications - POA tags: - name: KYC Blocklist description: Endpoints for managing face, document-face and document-info blocklist entries. - name: KYC Token description: Endpoints for creating KYC verification session tokens. - name: KYC Verifications description: Endpoints for actions with KYC verifications. - name: POA description: Endpoints for standalone proof of address (POA) checks. - name: Webhooks description: Webhooks. externalDocs: description: For other/more docs on iDenfy services visit our main documentation page. url: https://documentation.idenfy.com webhooks: identification: post: operationId: identification description: This notification is sent when a client completes an identity verification. Legacy, use `ID_VERIFICATION_AUTO_FINISHED`, `ID_VERIFICATION_MANUAL_FINISHED`, `ID_VERIFICATION_EXPIRED` and `ID_VERIFICATION_CANCELLED` instead. summary: Identification externalDocs: description: Find info about webhook signing here. url: https://documentation.idenfy.com/security/CallbackSigning parameters: - in: header name: Idenfy-Event-Type schema: type: string enum: - IDENTIFICATION required: true - in: header name: Idenfy-Signature schema: type: string description: Webhook signature tags: - Webhooks requestBody: content: application/json: schema: $ref: '#/components/schemas/IdentificationWebhook' required: true responses: '200': description: Return a 200 status to indicate that the data was received successfully. identificationAutoFinished: post: operationId: identificationAutoFinished description: This notification is sent when an identity verification is completed. summary: Identification auto finished externalDocs: description: Find info about webhook signing here. url: https://documentation.idenfy.com/security/CallbackSigning parameters: - in: header name: Idenfy-Event-Type schema: type: string enum: - IDENTIFICATION_AUTO_FINISHED required: true - in: header name: Idenfy-Signature schema: type: string description: Webhook signature tags: - Webhooks requestBody: content: application/json: schema: $ref: '#/components/schemas/IdentificationWebhook' required: true responses: '200': description: Return a 200 status to indicate that the data was received successfully. identificationManualFinished: post: operationId: identificationManualFinished description: This notification is sent when an identity verification is manually approved or denied. summary: Identification manual finished externalDocs: description: Find info about webhook signing here. url: https://documentation.idenfy.com/security/CallbackSigning parameters: - in: header name: Idenfy-Event-Type schema: type: string enum: - IDENTIFICATION_MANUAL_FINISHED required: true - in: header name: Idenfy-Signature schema: type: string description: Webhook signature tags: - Webhooks requestBody: content: application/json: schema: $ref: '#/components/schemas/IdentificationWebhook' required: true responses: '200': description: Return a 200 status to indicate that the data was received successfully. identificationExpired: post: operationId: identificationExpired description: This notification is sent when an identity verification expires. summary: Identification expired externalDocs: description: Find info about webhook signing here. url: https://documentation.idenfy.com/security/CallbackSigning parameters: - in: header name: Idenfy-Event-Type schema: type: string enum: - IDENTIFICATION_EXPIRED required: true - in: header name: Idenfy-Signature schema: type: string description: Webhook signature tags: - Webhooks requestBody: content: application/json: schema: $ref: '#/components/schemas/IdentificationWebhook' required: true responses: '200': description: Return a 200 status to indicate that the data was received successfully. identificationCancelled: post: operationId: identificationCancelled description: This notification is sent when an identity verification is cancelled by the user or the system. summary: Identification cancelled externalDocs: description: Find info about webhook signing here. url: https://documentation.idenfy.com/security/CallbackSigning parameters: - in: header name: Idenfy-Event-Type schema: type: string enum: - IDENTIFICATION_CANCELLED required: true - in: header name: Idenfy-Signature schema: type: string description: Webhook signature tags: - Webhooks requestBody: content: application/json: schema: $ref: '#/components/schemas/IdentificationWebhook' required: true responses: '200': description: Return a 200 status to indicate that the data was received successfully. identificationResubmitted: post: operationId: identificationResubmitted description: This notification is sent when a client resubmits an identity verification. summary: Identification resubmitted externalDocs: description: Find info about webhook signing here. url: https://documentation.idenfy.com/security/CallbackSigning parameters: - in: header name: Idenfy-Event-Type schema: type: string enum: - IDENTIFICATION_RESUBMITTED required: true - in: header name: Idenfy-Signature schema: type: string description: Webhook signature tags: - Webhooks requestBody: content: application/json: schema: $ref: '#/components/schemas/IdentificationWebhook' required: true responses: '200': description: Return a 200 status to indicate that the data was received successfully. documentExpiration: post: operationId: documentExpiration description: This notification is sent when a client's identity verification document is nearing expiration or expires summary: Document expiration externalDocs: description: Find info about webhook signing here. url: https://documentation.idenfy.com/security/CallbackSigning parameters: - in: header name: Idenfy-Event-Type schema: type: string enum: - DOCUMENT_EXPIRATION required: true - in: header name: Idenfy-Signature schema: type: string description: Webhook signature tags: - Webhooks requestBody: content: application/json: schema: $ref: '#/components/schemas/DocumentExpirationWebhook' required: true responses: '200': description: Return a 200 status to indicate that the data was received successfully. videoCallFinished: post: operationId: videoCallFinished description: This notification is sent when a video call is finished. summary: Video call finished externalDocs: description: Find info about webhook signing here. url: https://documentation.idenfy.com/security/CallbackSigning parameters: - in: header name: Idenfy-Event-Type schema: type: string enum: - VIDEO_CALL_FINISHED required: true - in: header name: Idenfy-Signature schema: type: string description: Webhook signature tags: - Webhooks responses: '200': description: Return a 200 status to indicate that the data was received successfully.