Automation Blocks
Automation Blocks are black-box-orchestrator service seamlessly facilitating integration with various providers (KYC/eSign/etc), through highly customizable flows.
The principles of an automation block is to facilitate all the necessary functionalities using only 3 API endpoints.
Environments
-
UAT: https://dci-uat.ondisplayftos.com/{block}
-
PROD: https://dci.fintechos.com/{block}
Available Automation Blocks for {block}
-
Onfido: block-onfido
-
IDNow: block-ariadnext
Authentication
To access any of the automation block’s endpoints, you’ll need to provide 2 request headers:
-
Ocp-Apim-Subscription-Key
-
Ocp-Apim-Subscription-Id
To obtain these, you can submit a ticket to FintechOS Support, requesting access to a specific Automation Block (Onfido/IDNow).
Exposed Endpoints
Available Versions Endpoint (GET)
https://<env>/api
Returns available versions.
Metadata Configuration Endpoint (GET)
https://<env>/api/{version}/configuration
Returns an array of Json-Schema compliant schemas, with all the possible flows and the configurations that each flow can support. The schema array works on a principle of oneOf.
Keep in mind this response might change, as new fields and functionalities can be added without the explicit need for versioning.
[
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Standard Onfido Studio Flow",
"description": "With this type of flow you can perform a standard eIDV",
"type": "object",
"properties": {
"flowType": {
"const": "onboardingStudio"
},
"inputs": {
"description": "Inputs for Studio",
"x-displayName": "Accepted Inputs",
"type": "object",
"properties": {
"firstName": {
"description": "The applicant's first name. Default: Anonymous",
"x-displayName": "First Name",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"lastName": {
"description": "The applicant's last name. Default: Anonymous",
"x-displayName": "Last Name",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"email": {
"description": "The applicant's email address",
"x-displayName": "Email ",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"dateOfBirth": {
"description": "The applicant's date of birth in YYYY-MM-DD format",
"x-displayName": "Date of Birth ",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"idNumbers": {
"description": "A collection of identification numbers belonging to this applicant",
"x-displayName": "Identification Numbers ",
"type": "array",
"items": {
"type": "object",
"properties": {
"type": {
"description": "Valid values are ssn, social_insurance (e.g. UK National Insurance), tax_id, identity_card, driving_license, driving_licence, share_code, voter_id, passport and other (e.g. AUS Foreign Passport)",
"x-displayName": "Type of ID number",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"value": {
"description": "SSN supports both the full SSN or the last 4 digits. If the full SSN is provided then it must be in the format xxx-xx-xxxx",
"x-displayName": "Value of ID number",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"state_code": {
"description": "Two letter code of issuing state (state-issued driving licences only)",
"x-displayName": "State Code",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
}
},
"additionalProperties": false
}
},
"address": {
"description": "The address of the applicant",
"x-displayName": "Address ",
"type": "object",
"properties": {
"flat_number": {
"description": "The flat number",
"x-displayName": "Flat Number",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"building_number": {
"description": "The building number",
"x-displayName": "Building Number",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"building_name": {
"description": "The building name",
"x-displayName": "Building Name",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"street": {
"description": "The street of the applicant's address. There is a 32-character limit on this field for UK addresses",
"x-displayName": "Street",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"sub_street": {
"description": "The sub-street",
"x-displayName": "Sub-street",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"town": {
"description": "The Town",
"x-displayName": "Town",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"postcode": {
"description": "The postcode (ZIP code) of the applicant's address. For UK postcodes, specify the value in the following format: SW4 6EH",
"x-displayName": "Postcode",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"country": {
"description": "The 3 character ISO country code of this address. For example, GBR is the country code for the United Kingdom",
"x-displayName": "Country",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"state": {
"description": "The street of the applicant's address. There is a 32-character limit on this field for UK addresses",
"x-displayName": "State",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"line1": {
"description": "Line 1 of the address",
"x-displayName": "Line 1",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"line2": {
"description": "Line 2 of the address",
"x-displayName": "Line 2",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"line3": {
"description": "Line 3 of the address",
"x-displayName": "Line3",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
}
},
"required": [
"postcode",
"country"
],
"additionalProperties": false
},
"phoneNumber": {
"description": "The applicant's phone number with country code",
"x-displayName": "Phone Number ",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
}
},
"additionalProperties": false
},
"behaviors": {
"description": "Set how the flow would operate",
"x-displayName": "Behavior configuration",
"type": "object",
"properties": {
"workflowId": {
"description": "The unique identifier for the Workflow",
"x-displayName": "Workflow ID",
"type": "string"
},
"referer": {
"description": "The base adress of the website that will run this flow (no trailing slash - ex: https://mysite.com)",
"x-displayName": "Referer",
"type": "string"
},
"flowExpiration": {
"description": "How many minutes the flow url will be available, before expiring. Default is 5 minutes",
"x-displayName": "Flow Expiration (minutes)",
"type": "integer"
},
"accessAttempts": {
"description": "How many times will the URL can be accessed, before expiring. Default is 1",
"x-displayName": "Access Attempts",
"type": "integer"
},
"version": {
"description": "Use a specific Onfido SDK Version. By default, latest SDK version is used",
"x-displayName": "SDK Version",
"type": "string"
},
"captureMode": {
"description": "Switch to Mobile, use the PC or allow uploads. Default is Upload",
"x-displayName": "Capture Mode",
"type": "string",
"enum": [
"PC",
"Mobile",
"Upload"
]
},
"crossDeviceLinkMethods": {
"description": "List of various methods allowing switch to mobile. Default is QR Code",
"x-displayName": "Switch to mobile methods ",
"type": "array",
"items": {
"type": "string",
"enum": [
"qr_code",
"copy_link",
"sms"
]
},
"x-multipleSelect": true,
"uniqueItems": true
},
"smsNumberCountryCode": {
"description": "Default country code ISO2 (ex: US, GB, RO) preselected for SMS communication (works with Switch-to-Mobile)",
"x-displayName": "Default SMS Country ",
"type": "string"
},
"userDetails": {
"description": "Pre-fill the user's details (works with Switch-to-Mobile)",
"x-displayName": "User Details ",
"type": "object",
"properties": {
"smsNumber": {
"description": "Pre-fill the user's phone number",
"x-displayName": "User Phone Number",
"type": "string"
}
},
"additionalProperties": false
},
"tags": {
"description": "Custom string tags to attach to the Onfido workflow run, for identification/correlation purposes",
"x-displayName": "Tags ",
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"workflowId",
"referer"
],
"additionalProperties": false
},
"outputs": {
"description": "The results for Onboarding Studio",
"x-displayName": "Available Outputs",
"type": "object",
"properties": {
"eventJson": {
"description": "The complete result of Onfido Studio",
"x-displayName": "Onfido Studio result",
"type": "string",
"x-attribute": true,
"x-attributeType": "(JSON)"
},
"firstName": {
"description": "Applicant first name extracted from the document",
"x-displayName": "First Name",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"lastName": {
"description": "Applicant last name extracted from the document",
"x-displayName": "Last Name",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"birthDate": {
"description": "Applicant birth date extracted from the document",
"x-displayName": "Birth Date",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"gender": {
"description": "Applicant gender extracted from the document",
"x-displayName": "Gender",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"nationality": {
"description": "Applicant nationality extracted from the document",
"x-displayName": "Nationality",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"address": {
"description": "Applicant address extracted from the document",
"x-displayName": "Address",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"personalNumber": {
"description": "Applicant Personal Identification Number extracted from the document",
"x-displayName": "Personal Number",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"documentType": {
"description": "Applicant document type extracted from the document",
"x-displayName": "Document Type",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"documentIssuingCountry": {
"description": "Applicant document issuing country extracted from the document",
"x-displayName": "Document Issuing Country",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"documentIssuingState": {
"description": "Applicant document issuing state extracted from the document (for US documents)",
"x-displayName": "Document Issuing State",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"documentNumber": {
"description": "Applicant document number extracted from the document",
"x-displayName": "Document Number",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"documentIssueDate": {
"description": "Applicant document issue date extracted from the document",
"x-displayName": "Document Issue Date",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"documentExpirationDate": {
"description": "Applicant document expiration date extracted from the document",
"x-displayName": "Document Expiration Date",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"verdict": {
"description": "Applicant Identity Validation Verdict after document analysis",
"x-displayName": "Verdict",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"eventName": {
"description": "The name of the webhook event",
"x-displayName": "Event Name",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"files": {
"description": "The resulting files you will receive",
"x-displayName": "Output Files",
"type": "string",
"x-attribute": true,
"x-attributeType": "(LIST)"
}
},
"additionalProperties": false
},
"ui": {
"description": "Available options to customize the UI",
"x-displayName": "UI options",
"type": "object",
"properties": {
"language": {
"description": "Can be one of the many supported languages, or a custom defined language. Default is en_US. \nSupported languages: ar, hy, bg, hr, cs, da, nl, en_GB, en_US, et, fi, fr, de, el, he, hi, hu, id, it, ja, ko, lv, lt, ms, nb, fa, pl, pt, pt_BR, ro, ru, sr, sk, sl, es, sv, th, tr, uk, vi",
"x-displayName": "Language ",
"type": "string"
},
"customTranslation": {
"description": "For custom language, Custom Translations are mandatory. You can also override any supported language with custom translation",
"x-displayName": "Custom Translations JSON",
"type": "string",
"x-attribute": true,
"x-attributeType": "(JSON)"
},
"theme": {
"description": "Available options to customize the UI",
"x-displayName": "UI Theme ",
"type": "object",
"properties": {
"name": {
"description": "Allows for dark mode customization by setting the value to light or dark",
"x-displayName": "Theme Name",
"type": "string",
"enum": [
"light",
"dark"
]
},
"config": {
"description": "Theme customization options for Onfido Web SDK UI elements. Applies styles such as colors, font sizes, border radius, etc.",
"x-displayName": "Theme Settings",
"type": "object",
"properties": {
"borderRadiusButton": {
"description": "Border radius of buttons (e.g., \"4px\", \"56px\")",
"x-displayName": "Border Radius Button",
"type": "string"
},
"borderStyleSurfaceModal": {
"description": "Border style for the SDK modal surface (e.g., \"none\", \"1px solid #ccc\")",
"x-displayName": "Border Style Surface Modal",
"type": "string"
},
"fontWeightBody": {
"description": "Font weight for standard body text (e.g., 400 for normal, 600 for semi-bold)",
"x-displayName": "Font Weight Body",
"type": "integer"
},
"fontSizeBody": {
"description": "Font size for standard body text (e.g., \"16px\")",
"x-displayName": "Font Size Body",
"type": "string"
},
"fontSizeTitle": {
"description": "Font size for main titles or headings",
"x-displayName": "Font Size Title",
"type": "string"
},
"fontSizeSubtitle": {
"description": "Font size for subtitle text",
"x-displayName": "Font Size Subtitle",
"type": "string"
},
"colorBackgroundButtonPrimary": {
"description": "Primary button background color (normal state). Example: \"#1a73e8\"",
"x-displayName": "Color Background Button Primary",
"type": "string"
},
"colorBackgroundButtonPrimaryHover": {
"description": "Primary button background color on hover",
"x-displayName": "Color Background Button Primary Hover",
"type": "string"
},
"colorBackgroundButtonPrimaryActive": {
"description": "Primary button background color when pressed (active state)",
"x-displayName": "Color Background Button Primary Active",
"type": "string"
},
"colorBackgroundButtonSecondary": {
"description": "Secondary button background color (normal state)",
"x-displayName": "Color Background Button Secondary",
"type": "string"
},
"colorBackgroundButtonSecondaryHover": {
"description": "Secondary button background color on hover",
"x-displayName": "Color Background Button Secondary Hover",
"type": "string"
},
"colorBackgroundButtonSecondaryActive": {
"description": "Secondary button background color when pressed (active state)",
"x-displayName": "Color Background Button Secondary Active",
"type": "string"
},
"colorContentButtonTertiaryText": {
"description": "Tertiary button text color (used for less prominent actions)",
"x-displayName": "Color Content Button Tertiary Text",
"type": "string"
},
"colorBackgroundSurfaceModal": {
"description": "Background color for the SDK modal surface",
"x-displayName": "Color Background Surface Modal",
"type": "string"
},
"colorBackgroundIcon": {
"description": "Background color used for icons",
"x-displayName": "Color Background Icon",
"type": "string"
},
"colorContentBody": {
"description": "Main body text color",
"x-displayName": "Color Content Body",
"type": "string"
},
"colorContentTitle": {
"description": "Title text color",
"x-displayName": "Color Content Title",
"type": "string"
},
"colorContentSubtitle": {
"description": "Subtitle or secondary heading text color",
"x-displayName": "Color Content Subtitle",
"type": "string"
},
"colorIcon": {
"description": "Color of general UI icons (e.g., camera, upload)",
"x-displayName": "Color Icon",
"type": "string"
},
"colorContentInfoPill": {
"description": "Text color for informational pill labels (e.g., tips, labels)",
"x-displayName": "Color Content Info Pill",
"type": "string"
},
"colorBackgroundInfoPill": {
"description": "Background color for informational pill labels",
"x-displayName": "Color Background Info Pill",
"type": "string"
},
"colorBackgroundSelector": {
"description": "Background color for selected options or highlighted sections",
"x-displayName": "Color Background Selector",
"type": "string"
},
"colorBorderLinkUnderline": {
"description": "Color used for link underline borders",
"x-displayName": "Color Border Link Underline",
"type": "string"
},
"colorBackgroundLinkHover": {
"description": "Link background color on hover",
"x-displayName": "Color Background Link Hover",
"type": "string"
},
"colorBackgroundLinkActive": {
"description": "Link background color when active (clicked)",
"x-displayName": "Color Background Link Active",
"type": "string"
},
"colorContentLinkTextHover": {
"description": "Link text color on hover",
"x-displayName": "Color Content Link Text Hover",
"type": "string"
},
"colorInputOutline": {
"description": "Outline color for input fields (focus state)",
"x-displayName": "Color Input Outline",
"type": "string"
},
"colorContentInput": {
"description": "Input text color",
"x-displayName": "Color Content Input",
"type": "string"
},
"colorBackgroundInput": {
"description": "Input background color",
"x-displayName": "Color Background Input",
"type": "string"
},
"colorBorderInput": {
"description": "Border color for input fields",
"x-displayName": "Color Border Input",
"type": "string"
}
},
"additionalProperties": false
}
},
"required": [
"name"
],
"additionalProperties": false
},
"enterpriseFeatures": {
"description": "Enterprise-level features for customizing the Onfido SDK UI, including co-branding options and logo customization.Requires Enterprise plan and Onfido support activation.",
"x-displayName": "Enterprise Features ",
"type": "object",
"properties": {
"cobrand": {
"description": "Configuration for displaying a custom co-branded text in the SDK footer. Only available for enterprise accounts with Onfido support activation",
"x-displayName": "Cobrand",
"type": "object",
"properties": {
"text": {
"description": "The custom brand text to be shown in the footer. For example: \"Powered by MyCompany\"",
"x-displayName": "Custom brand text",
"type": "string"
}
},
"additionalProperties": false
},
"logoCobrand": {
"description": "Displays a co-branded logo in light and dark theme modes. Only available for enterprise accounts with Onfido support activation",
"x-displayName": "Logo Cobrand",
"type": "object",
"properties": {
"darkLogoSrc": {
"description": "URL to the logo used when the SDK is in dark theme mode. Recommended size: 144×32 pixels",
"x-displayName": "Dark Logo Source",
"type": "string"
},
"lightLogoSrc": {
"description": "URL to the logo used when the SDK is in light theme mode. Recommended size: 144×32 pixels",
"x-displayName": "Light Logo Source",
"type": "string"
}
},
"required": [
"darkLogoSrc",
"lightLogoSrc"
],
"additionalProperties": false
},
"hideOnfidoLogo": {
"description": "Hides the default Onfido logo. Only works for approved enterprise accounts",
"x-displayName": "Hide Onfido Logo",
"type": "boolean"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
}
},
"required": [
"flowType",
"behaviors"
],
"additionalProperties": false
}
][
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "ADR Onboarding",
"description": "eIDV for Romanian National ID Cards & Passports",
"type": "object",
"properties": {
"flowType": {
"const": "adr"
},
"behaviors": {
"description": "Set how the flow operates",
"x-displayName": "Behavior configuration",
"type": "object",
"properties": {
"redirectionData": {
"description": "Configure the redirect mechanism",
"x-displayName": "Redirect Configuration (Optional)",
"type": "object",
"properties": {
"successRedirectUrl": {
"description": "The URL to redirect ater the flow is successfully completed",
"x-displayName": "Success Redirect URL",
"type": "string"
},
"errorRedirectUrl": {
"description": "The URL to redirect when the flow ends because of an error",
"x-displayName": "Error Redirect URL",
"type": "string"
},
"autoRedirect": {
"description": "By default at the end of the onboarding (success), there is a page with a customisable message and a button which trigger redirection.\r\nIf autoRedirect is at true, this last page is skipped and redirection occurs as soon as the onboarding is complete (default: false)",
"x-displayName": "AutoRedirect",
"type": "boolean"
}
},
"required": [
"successRedirectUrl"
],
"additionalProperties": false
},
"iframeRedirectParent": {
"description": "Indicates if the redirection triggered by the iframe should be applied to parent window (true) or just to iframe (false). Default: false",
"x-displayName": "Redirect iFrame parent",
"type": "boolean"
},
"skipDocumentsList": {
"description": "Skip the document type selection screen?",
"x-displayName": "Skip documents list",
"type": "boolean"
}
},
"additionalProperties": false
},
"ui": {
"description": "Set how the flow is displayed",
"x-displayName": "UI configuration",
"type": "object",
"properties": {
"language": {
"description": "Language displayed during the flow",
"x-displayName": "Language",
"type": "string",
"enum": [
"EN",
"FR",
"IT",
"ES",
"DE",
"RO",
"CS",
"PL",
"PT",
"NL",
"AR",
"UK",
"SK",
"HU",
"BG",
"SQ",
"SR"
]
},
"theme": {
"description": "Settings for the theme displayed on the IDNow flow componets",
"x-displayName": "UI Theme Settings",
"type": "object",
"properties": {
"displayMode": {
"description": "We don't know what this means yet (value null or SIMPLIFIED",
"x-displayName": "Display Mode",
"type": "string"
},
"stylesheet": {
"description": "We don't know what this means yet (value null or SIMPLIFIED",
"x-displayName": "Custom Stylesheet",
"type": "string"
},
"hideHeader": {
"description": "Hide the header?",
"x-displayName": "Hide header",
"type": "boolean"
},
"forceMobileLayout": {
"description": "Force display of mobile layout?",
"x-displayName": "Mobile Layout",
"type": "boolean"
},
"hideStepper": {
"description": "Hide the stepper?",
"x-displayName": "Hide stepper",
"type": "boolean"
}
},
"additionalProperties": false
},
"pageTitle": {
"description": "Title settings for the IDNow flow",
"x-displayName": "Title Settings",
"type": "object",
"properties": {
"width": {
"description": "The width of the title",
"x-displayName": "Title Width",
"type": "string"
},
"hideImagesBackground": {
"description": "Hide the background images in the IDNow flow",
"x-displayName": "Hide Background Images",
"type": "boolean"
}
},
"additionalProperties": false
},
"card": {
"description": "Background settings for the IDNow flow",
"x-displayName": "Background Color",
"type": "object",
"properties": {
"backgroundColor": {
"description": "Set the background color",
"x-displayName": "Background Color",
"type": "string"
}
},
"additionalProperties": false
},
"body": {
"description": "Body font settings for the IDNow flow",
"x-displayName": "Body Fonts",
"type": "object",
"properties": {
"fontFamily": {
"description": "Set the font family to be used in the IDNow flow",
"x-displayName": "Font Family",
"type": "string"
},
"fontSize": {
"description": "Set the font size",
"x-displayName": "Font Size",
"type": "string"
},
"secondaryBackgroundColor": {
"description": "Set the secondary background color",
"x-displayName": "Secondary Background Color",
"type": "string"
},
"backgroundColor": {
"description": "Set the background color",
"x-displayName": "Background Color",
"type": "string"
}
},
"additionalProperties": false
},
"typography": {
"description": "Text colors for the IDNow flow",
"x-displayName": "Text Colors",
"type": "object",
"properties": {
"title": {
"description": "Title text color & size",
"x-displayName": "Title Text Color & Size",
"type": "object",
"properties": {
"fontSize": {
"description": "Font Size",
"x-displayName": "Font Size",
"type": "string"
},
"textColor": {
"description": "Text Color",
"x-displayName": "Text Color",
"type": "string"
}
},
"additionalProperties": false
},
"description": {
"description": "Description text color & size",
"x-displayName": "Description Text Color & Size",
"type": "object",
"properties": {
"fontSize": {
"description": "Font Size",
"x-displayName": "Font Size",
"type": "string"
},
"textColor": {
"description": "Text Color",
"x-displayName": "Text Color",
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"button": {
"description": "Button colors for the IDNow flow",
"x-displayName": "Button Colors",
"type": "object",
"properties": {
"backgroundColor": {
"description": "Button background color",
"x-displayName": "Button background color",
"type": "string"
},
"hoverColor": {
"description": "Button hover color",
"x-displayName": "Button hover color",
"type": "string"
},
"borderRadius": {
"description": "Button border radius",
"x-displayName": "Button border radius",
"type": "string"
},
"fontSize": {
"description": "Font Size",
"x-displayName": "Font Size",
"type": "string"
},
"textColor": {
"description": "Text Color",
"x-displayName": "Text Color",
"type": "string"
}
},
"additionalProperties": false
}
},
"required": [
"language"
],
"additionalProperties": false
},
"outputs": {
"description": "Outputs for the ADR onboarding",
"x-displayName": "Outputs",
"type": "object",
"properties": {
"eventJson": {
"description": "The full result of the ADR Identity Proofing",
"x-displayName": "Identity Proofing result",
"type": "string",
"x-attribute": true,
"x-attributeType": "(JSON)"
},
"firstName": {
"description": "Applicant first name extracted from the document",
"x-displayName": "First Name",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"lastName": {
"description": "Applicant last name extracted from the document",
"x-displayName": "Last Name",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"birthDate": {
"description": "Applicant birth date extracted from the document",
"x-displayName": "Birth Date",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Date-Time)"
},
"gender": {
"description": "Applicant gender extracted from the document",
"x-displayName": "Gender",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"nationality": {
"description": "Applicant nationality extracted from the document",
"x-displayName": "Nationality",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"address": {
"description": "Applicant address extracted from the document",
"x-displayName": "Address",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"personalNumber": {
"description": "Applicant Personal Identification Number extracted from the document",
"x-displayName": "PIN",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"documentType": {
"description": "Applicant document type extracted from the document",
"x-displayName": "Document Type",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"documentIssuingCountry": {
"description": "Applicant document issuing country extracted from the document",
"x-displayName": "Document Issuing Country",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"documentNumber": {
"description": "Applicant document number extracted from the document",
"x-displayName": "Document Number",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"documentIssueDate": {
"description": "Applicant document issue date extracted from the document",
"x-displayName": "Document Issue Date",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Date-Time)"
},
"documentExpirationDate": {
"description": "Applicant document expiration date extracted from the document",
"x-displayName": "Document Expiration Date",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Date-Time)"
},
"verdict": {
"description": "Applicant Identity Validation Verdict after document analysis",
"x-displayName": "Verdict",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"eventName": {
"description": "The name of the webhook event",
"x-displayName": "Event Name",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"files": {
"description": "The resulting files you will receive",
"x-displayName": "Output Files",
"type": "string",
"x-attribute": true,
"x-attributeType": "(LIST)"
}
},
"additionalProperties": false
}
},
"required": [
"flowType",
"ui"
],
"additionalProperties": false
},
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Non-ADR Onboarding",
"description": "eIDV for non-Romanian documents",
"type": "object",
"properties": {
"flowType": {
"const": "nonAdr"
},
"behaviors": {
"description": "Set how the flow operates",
"x-displayName": "Behavior configuration",
"type": "object",
"properties": {
"identificationCode": {
"description": "You can use an identification code",
"x-displayName": "Identification Code",
"type": "string"
},
"iframeDisplay": {
"description": "Indicates if the itinerary will be displayed into iframe so header is hidden and responsiveness is disabled (default: false)",
"x-displayName": "Display in iFrame",
"type": "boolean"
},
"captureModeDesktop": {
"description": "Capture Mode for Desktop",
"x-displayName": "Capture Mode for Desktop",
"type": "string",
"enum": [
"CAMERA",
"UPLOAD",
"PROMPT"
]
},
"captureModeMobile": {
"description": "Capture Mode for Mobile",
"x-displayName": "Capture Mode for Mobile",
"type": "string",
"enum": [
"CAMERA",
"UPLOAD",
"PROMPT"
]
},
"biometricConsent": {
"description": "The user consent for automated processing of Biometric documents (Selfie & Liveness).\r\nIf undefined, a consent page will be displayed before the biometric document capture.\r\nIf set to true, no consent page will be shown, the user is considered as having given his consent, so the biometric document will be analysed automatically.\r\nIf set to false, no consent page will be shown, the user is considered as having declined his consent, so the biometric document will be captured but not automatically analysed",
"x-displayName": "Biometric Consent",
"type": "object",
"properties": {},
"additionalProperties": false
},
"fileLaunchCheck": {
"description": "Launch Check After Capture? (default: false)",
"x-displayName": "Launch Check After Capture",
"type": "boolean"
},
"fileCheckWait": {
"description": "Receive results only after check has finished? (default: false)",
"x-displayName": "Wait for check",
"type": "boolean"
},
"disableManualAnalysis": {
"description": "Disable Manual Analysis? (default: false)",
"x-displayName": "Disable Manual Analysis",
"type": "boolean"
},
"forceDocumentAnalysis": {
"description": "For a new upload in the same capture folder, force the entire capture folder to be reanalyzed? (default: false)",
"x-displayName": "Force Document Analysis",
"type": "boolean"
},
"documentsToCapture": {
"description": "Define the steps to capture documents",
"x-displayName": "Capture Steps",
"type": "array",
"items": {
"type": "object",
"properties": {
"code": {
"description": "Code to associate with the captured document when returning the result.\r\nExample: OWNER_ID",
"x-displayName": "Reference identification code",
"type": "string"
},
"docTypes": {
"description": "List of accepted document types for this step",
"x-displayName": "Accepted Document Types",
"type": "array",
"items": {
"type": "string",
"enum": [
"ID",
"P",
"V",
"DL",
"HC",
"RP",
"SELFIE",
"KBIS",
"RIB",
"ADR_PROOF",
"PAY_SHEET",
"TAX_SHEET",
"CAR_REG",
"LIVENESS",
"OTHER"
]
},
"x-multipleSelect": true,
"uniqueItems": true
},
"withDocLiveness": {
"description": "Perform Document Livenes? (Works only with National ID Cards)",
"x-displayName": "Document Liveness?",
"type": "object",
"properties": {},
"additionalProperties": false
},
"livenessReferenceDoc": {
"description": "For Liveness analysis, define how to find the reference document needed for comparison into liveness analysis",
"x-displayName": "Liveness Reference Document",
"type": "object",
"properties": {
"location": {
"description": "Location of the document to be used as cross-reference. Recommended option: Onboarding",
"x-displayName": "Document Location",
"type": "string",
"enum": [
"ONBOARDING",
"CIS"
]
},
"value": {
"description": "Reference identification code of the document you want to cross-examine",
"x-displayName": "Document Code",
"type": "string"
}
},
"required": [
"location",
"value"
],
"additionalProperties": false
},
"versoHandling": {
"description": "Indicate how to handled verso of the document",
"x-displayName": "Verso Handling",
"type": "string",
"enum": [
"DEFAULT",
"MANDATORY",
"OPTIONAL"
]
},
"label": {
"description": "Title for this capture step",
"x-displayName": "Capture Step Title",
"type": "string"
},
"description": {
"description": "Description for this capture step",
"x-displayName": "Capture Step Description",
"type": "string"
}
},
"required": [
"code",
"docTypes"
],
"additionalProperties": false
}
},
"redirectionData": {
"description": "Configure the redirect mechanism",
"x-displayName": "Redirect Configuration (Optional)",
"type": "object",
"properties": {
"successRedirectUrl": {
"description": "The URL to redirect ater the flow is successfully completed",
"x-displayName": "Success Redirect URL",
"type": "string"
},
"errorRedirectUrl": {
"description": "The URL to redirect when the flow ends because of an error",
"x-displayName": "Error Redirect URL",
"type": "string"
},
"autoRedirect": {
"description": "By default at the end of the onboarding (success), there is a page with a customisable message and a button which trigger redirection.\r\nIf autoRedirect is at true, this last page is skipped and redirection occurs as soon as the onboarding is complete (default: false)",
"x-displayName": "AutoRedirect",
"type": "boolean"
}
},
"required": [
"successRedirectUrl"
],
"additionalProperties": false
},
"iframeRedirectParent": {
"description": "Indicates if the redirection triggered by the iframe should be applied to parent window (true) or just to iframe (false). Default: false",
"x-displayName": "Redirect iFrame parent",
"type": "boolean"
},
"skipDocumentsList": {
"description": "Skip the document type selection screen?",
"x-displayName": "Skip documents list",
"type": "boolean"
}
},
"required": [
"documentsToCapture"
],
"additionalProperties": false
},
"ui": {
"description": "Set how the flow is displayed",
"x-displayName": "UI configuration",
"type": "object",
"properties": {
"wording": {
"description": "Customise the wording seen by your users during the capture process",
"x-displayName": "Wording",
"type": "object",
"properties": {
"homeTitle": {
"description": "Title displayed on the landing page",
"x-displayName": "Home Title",
"type": "string"
},
"homeMsg": {
"description": "Message displayed on the landing page",
"x-displayName": "Home Message",
"type": "string"
},
"authentInputMsg": {
"description": "Text displayed into the input of Home page",
"x-displayName": "Authentication Input Message",
"type": "string"
},
"authentHelpMsg": {
"description": "Text displayed under the connect button to help user retrieve its connexion code",
"x-displayName": "Authentication Help Message",
"type": "string"
},
"errorMsg": {
"description": "Message to display when a user associated with this configuration gets a device error or a technical error (Should not happen)",
"x-displayName": "Error Message",
"type": "string"
},
"onboardingEndMsg": {
"description": "Message to display on the end page (Above the redirect button when using redirection mode)",
"x-displayName": "Onboarding Error Message",
"type": "string"
},
"expiredMsg": {
"description": "Message to display when a user click an expired link associated with this configuration",
"x-displayName": "Expired Message",
"type": "string"
},
"linkEmailSubject": {
"description": "Subject of the mail containing the link",
"x-displayName": "Link Email Subject",
"type": "string"
},
"linkEmailMsg": {
"description": "Message displayed in the e-mail to invite the client to begin the capture.\r\nThe link can be positioned in the message by using {} else it’ll be added at the end of the message.\r\nAllows the following HTML tags, a, b, blockquote, br, cite, code, dd, dl, dt, em, i, li, ol, p, pre, q, small, span, strike, strong, sub, sup, u, ul and appropriate attributes.\r\nLinks can point to http, https, ftp, mailto.\r\nEscape double quotes with a backslash",
"x-displayName": "Link Email Message",
"type": "string"
},
"linkSmsMsg": {
"description": "Message displayed in the SMS to invite the client to begin the capture.\r\nThe link can be positioned in the message by using {} else it’ll be added at the end of the message",
"x-displayName": "Link Sms Message",
"type": "string"
},
"linkEmailSignature": {
"description": "Signature displayed in the e-mail after linkEmailMsg.\r\nAllows the following HTML tags, a, b, blockquote, br, cite, code, dd, dl, dt, em, i, li, ol, p, pre, q, small, span, strike, strong, sub, sup, u, ul and appropriate attributes.\r\nLinks can point to http, https, ftp, mailto.\r\nEscape double quotes with a backslash.",
"x-displayName": "Link Email Signature",
"type": "string"
}
},
"additionalProperties": false
},
"language": {
"description": "Language displayed during the flow",
"x-displayName": "Language",
"type": "string",
"enum": [
"EN",
"FR",
"IT",
"ES",
"DE",
"RO",
"CS",
"PL",
"PT",
"NL",
"AR",
"UK",
"SK",
"HU",
"BG",
"SQ",
"SR"
]
},
"theme": {
"description": "Settings for the theme displayed on the IDNow flow componets",
"x-displayName": "UI Theme Settings",
"type": "object",
"properties": {
"displayMode": {
"description": "We don't know what this means yet (value null or SIMPLIFIED",
"x-displayName": "Display Mode",
"type": "string"
},
"stylesheet": {
"description": "We don't know what this means yet (value null or SIMPLIFIED",
"x-displayName": "Custom Stylesheet",
"type": "string"
},
"hideHeader": {
"description": "Hide the header?",
"x-displayName": "Hide header",
"type": "boolean"
},
"forceMobileLayout": {
"description": "Force display of mobile layout?",
"x-displayName": "Mobile Layout",
"type": "boolean"
},
"hideStepper": {
"description": "Hide the stepper?",
"x-displayName": "Hide stepper",
"type": "boolean"
}
},
"additionalProperties": false
},
"pageTitle": {
"description": "Title settings for the IDNow flow",
"x-displayName": "Title Settings",
"type": "object",
"properties": {
"width": {
"description": "The width of the title",
"x-displayName": "Title Width",
"type": "string"
},
"hideImagesBackground": {
"description": "Hide the background images in the IDNow flow",
"x-displayName": "Hide Background Images",
"type": "boolean"
}
},
"additionalProperties": false
},
"card": {
"description": "Background settings for the IDNow flow",
"x-displayName": "Background Color",
"type": "object",
"properties": {
"backgroundColor": {
"description": "Set the background color",
"x-displayName": "Background Color",
"type": "string"
}
},
"additionalProperties": false
},
"body": {
"description": "Body font settings for the IDNow flow",
"x-displayName": "Body Fonts",
"type": "object",
"properties": {
"fontFamily": {
"description": "Set the font family to be used in the IDNow flow",
"x-displayName": "Font Family",
"type": "string"
},
"fontSize": {
"description": "Set the font size",
"x-displayName": "Font Size",
"type": "string"
},
"secondaryBackgroundColor": {
"description": "Set the secondary background color",
"x-displayName": "Secondary Background Color",
"type": "string"
},
"backgroundColor": {
"description": "Set the background color",
"x-displayName": "Background Color",
"type": "string"
}
},
"additionalProperties": false
},
"typography": {
"description": "Text colors for the IDNow flow",
"x-displayName": "Text Colors",
"type": "object",
"properties": {
"title": {
"description": "Title text color & size",
"x-displayName": "Title Text Color & Size",
"type": "object",
"properties": {
"fontSize": {
"description": "Font Size",
"x-displayName": "Font Size",
"type": "string"
},
"textColor": {
"description": "Text Color",
"x-displayName": "Text Color",
"type": "string"
}
},
"additionalProperties": false
},
"description": {
"description": "Description text color & size",
"x-displayName": "Description Text Color & Size",
"type": "object",
"properties": {
"fontSize": {
"description": "Font Size",
"x-displayName": "Font Size",
"type": "string"
},
"textColor": {
"description": "Text Color",
"x-displayName": "Text Color",
"type": "string"
}
},
"additionalProperties": false
}
},
"additionalProperties": false
},
"button": {
"description": "Button colors for the IDNow flow",
"x-displayName": "Button Colors",
"type": "object",
"properties": {
"backgroundColor": {
"description": "Button background color",
"x-displayName": "Button background color",
"type": "string"
},
"hoverColor": {
"description": "Button hover color",
"x-displayName": "Button hover color",
"type": "string"
},
"borderRadius": {
"description": "Button border radius",
"x-displayName": "Button border radius",
"type": "string"
},
"fontSize": {
"description": "Font Size",
"x-displayName": "Font Size",
"type": "string"
},
"textColor": {
"description": "Text Color",
"x-displayName": "Text Color",
"type": "string"
}
},
"additionalProperties": false
}
},
"required": [
"language"
],
"additionalProperties": false
},
"outputs": {
"description": "Outputs for the NonADR onboarding",
"x-displayName": "Outputs",
"type": "object",
"properties": {
"eventJson": {
"description": "The full result of the Non Adr flow",
"x-displayName": "Non Adr result",
"type": "string",
"x-attribute": true,
"x-attributeType": "(JSON)"
},
"firstName": {
"description": "Applicant first name extracted from the document",
"x-displayName": "First Name",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"lastName": {
"description": "Applicant last name extracted from the document",
"x-displayName": "Last Name",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"birthDate": {
"description": "Applicant birth date extracted from the document",
"x-displayName": "Birth Date",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Date-Time)"
},
"gender": {
"description": "Applicant gender extracted from the document",
"x-displayName": "Gender",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"nationality": {
"description": "Applicant nationality extracted from the document",
"x-displayName": "Nationality",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"address": {
"description": "Applicant address extracted from the document",
"x-displayName": "Address",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"personalNumber": {
"description": "Applicant Personal Identification Number extracted from the document",
"x-displayName": "PIN",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"documentType": {
"description": "Applicant document type extracted from the document",
"x-displayName": "Document Type",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"documentIssuingCountry": {
"description": "Applicant document issuing country extracted from the document",
"x-displayName": "Document Issuing Country",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"documentNumber": {
"description": "Applicant document number extracted from the document",
"x-displayName": "Document Number",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"documentIssueDate": {
"description": "Applicant document issue date extracted from the document",
"x-displayName": "Document Issue Date",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Date-Time)"
},
"documentExpirationDate": {
"description": "Applicant document expiration date extracted from the document",
"x-displayName": "Document Expiration Date",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Date-Time)"
},
"verdict": {
"description": "Applicant Identity Validation Verdict after document analysis",
"x-displayName": "Verdict",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"eventName": {
"description": "The name of the webhook event",
"x-displayName": "Event Name",
"type": "string",
"x-attribute": true,
"x-attributeType": "(Text)"
},
"files": {
"description": "The resulting files you will receive",
"x-displayName": "Output Files",
"type": "string",
"x-attribute": true,
"x-attributeType": "(LIST)"
}
},
"additionalProperties": false
}
},
"required": [
"flowType",
"behaviors",
"ui"
],
"additionalProperties": false
}
]Runtime Generator Endpoint
https://<env>/api/{version}/runtimeGenerator
Using the metadata config, select the flow that fits your needs, and create a reusable Json Payload based on its given schema.
{
"flowType": "onboardingStudio",
"behaviors": {
"workflowId": "a00aa0aa-a00a-0000-0000-000a0a000000",
"referer": "https://where_I_will run_onfido",
"captureMode": "Mobile",
"crossDeviceLinkMethods": [
"qr_code"
]
},
"ui": {
"language": "ro",
"theme": {
"name": "dark"
},
"enterpriseFeatures": {
"cobrand": {
"text": "MyBusiness"
}
}
}
}Sending a payload to the Runtime Generator Endpoint will return a flowId and a URL:
{
"isSuccess": true,
"errorMessage": "string",
"externalErrorMessage": "string",
"externalErrorCode": "string",
"flowId": "0aa00a00-0000-0000-a0aa-0a000a00aaa0",
"url": "string",
"flowStatus": "string"
}The URL provided is the runtime flow for the provider, that needs to be completed by the end-user, to obtain the eIDV/KYC report.
The events/webhooks/callbacks cand be configured through the Automation Block in case the integration is done using the FintechOS platform. Otherwise, you can configure the webhook to call your system directly in the provider dashboard.
How to Use
Integrations connect the platform to core systems and third-party providers that deliver specialized services, such as fraud detection, identity verification, risk assessment, and credit scoring. Read more on the Integrations page.
How to use in Workflow Engine: