---
title: "Create Direct Provider Session"
method: POST
path: "/api/v1/sessions/provider/direct"
tags: ["Sessions"]
---

# Create Direct Provider Session

`POST /api/v1/sessions/provider/direct`

Verify a user's identity with a specific provider, handling additional user interaction in your own UI. 

Signal which kinds of user interactions your UI can handle using the `Capabilities` field. 

If `FallbackToHostedUi` is `true`, Trinsic's hosted UI will automatically be invoked to handle any capabilities you do not support.

## Request body

- CreateDirectProviderSessionRequest
  - `provider` string, required — The ID of the provider to launch
  - `verificationProfileId` string, uuid, required — The ID of the Verification Profile to use for this session.
  - `redirectUrl` string, nullable — The Redirect URL to which the user should be sent after the session is complete. This field is required for providers which employ a redirect-based flow.
  - `capabilities` IntegrationCapability[], required — The list of capabilities your integration supports. Capabilities are the core of Trinsic's whitelabel-with-optional-fallback offering. Most capabilities align with either an `IntegrationLaunchMethod` or an `IntegrationCollectionMethod`. The exception being refresh content to support updating the content of the launch method. For example, to support a basic redirect-based flow, you must include the `LaunchRedirect` and `CaptureRedirect` capabilities. To support a mobile deeplink / polling flow, you must include the `DeeplinkToMobile` and `PollForResults` capabilities. If `FallbackToHostedUi` is `true`, Trinsic will automatically fall back to a Trinsic-hosted UI to cover any gaps in your integration's capabilities. If `FallbackToHostedUi` is `false`, gaps in your integration's capabilities will result in an error during Session creation. Read more on how to integrate at <a href="https://docs.trinsic.id/docs/direct-provider-sessions">the guide on Direct Provider Sessions</a>
  - `fallbackToHostedUI` boolean, nullable — Whether the session should fall back to a Trinsic-hosted UI in certain instances. Specifically, fallback will occur if any of the following are true: - You attempted to launch a provider which requires a capability you did not express support for - In this case, Trinsic's hosted UI will perform the necessary capability - You attempted to launch a provider which requires input, and the input was either not provided or incomplete - In this case, Trinsic's hosted UI will collect the necessary input from the user If fallback occurs, the session's NextStep will always be LaunchBrowser, and the CollectionMethod will always be CaptureRedirect. If this field is set to `true`, you must also: 1. Set the `RedirectUrl` field to a non-empty value 2. Include the `LaunchBrowser` and `CaptureRedirect` capabilities in the `Capabilities` field
  - `browserLanguages` string[], nullable — Preferences for languages to show first in supported provider launch flows and, if the session falls back, in the Trinsic-hosted UI. If left empty, the Hosted UI defaults to the user's navigator languages. If no preferred language is available, the Hosted UI falls back to English.
  - `providerInput` ProviderInput
    - `indonesia-nik-lookup` IndonesiaNikInput
      - `fullName` string, required — The user's full name
      - `dateOfBirth` string, date, required — The user's date of birth, in `YYYY-MM-DD` format
      - `nikIdNumber` string, required — The user's Indonesia NIK ID number
    - `china-resident-id-match` ChinaResidentIdMatchInput
      - `fullName` string, required — The person's full name in Chinese characters.
      - `dateOfBirth` string, date, required — The person's date of birth, in `YYYY-MM-DD` format.
      - `nationalIdNumber` string, required — The person's 18-character PRC resident identity card number.
      - `consent` boolean, required — Consent from the end user for verification of their data.
    - `evrotrust` EvrotrustInput
      - `emailAddress` string, email, nullable — The user's email address. Either an email address or phone number must be provided to identify the user.
      - `phoneNumber` string, nullable — The user's phone number. Either an email address or phone number must be provided to identify the user.
    - `indonesia-dukcapil-match` IndonesiaDukcapilMatchInput
      - `fullName` string, nullable — The user's full name
      - `dateOfBirth` string, date, nullable — The user's date of birth, in `YYYY-MM-DD` format
      - `nikIdNumber` string, nullable — The user's Indonesia NIK ID number
      - `email` string, nullable — The email address of the individual. Either email or phone number must be provided.
      - `phoneNumber` string, nullable — The phone number of the individual. Either email or phone number must be provided.
      - `selfieImage` string, byte, nullable — The raw bytes of the selfie image of the individual. Must be JPEG or PNG format; 10MB maximum.
      - `documentImage` string, byte, nullable — The raw bytes of the image of the individual's KTP government ID. Must be JPEG format; 1MB maximum. Optional.
      - `consentGivenAt` string, date-time, nullable — The timestamp when consent was given by the user for the verification.
    - `mexico-curp-lookup` MexicoCurpInput
      - `curp` string, required — The user's CURP number
    - `south-africa-nid-lookup` SouthAfricaNidInput
      - `fullName` string, required — The user's full name as it appears in their National ID
      - `dateOfBirth` string, date, required — The user's date of birth, in `YYYY-MM-DD` format
      - `gender` string, required — The user's gender as it appears in their National ID (e.g., male, female)
      - `nationalIdNumber` string, required — The user's National ID number
    - `kenya-nid-lookup` KenyaNidInput
      - `firstName` string, required — The user's first name as it appears in their National ID
      - `middleName` string, nullable — The user's middle name as it appears in their National ID (optional)
      - `lastName` string, required — The user's middle name as it appears in their National ID (optional)
      - `dateOfBirth` string, date, required — The user's date of birth, in `YYYY-MM-DD` format
      - `gender` string, required — The user's gender as it appears in their National ID (e.g., male, female)
      - `nationalIdNumber` string, required — The user's Kenya National ID number
    - `kenya-nid-match-2` KenyaNidMatch2Input
      - `idNumber` string, nullable — The Kenya National ID Number (Nambari ya Kitambulisho) or Unique Personal Identifier (Maisha Namba). This is the primary unique identifier for Kenyan citizens in all government systems, issued by the National Registration Bureau (NRB). The format is either 8 digits for National ID or 9 digits for Maisha Namba UPI (the new format since 2023).
      - `givenName` string, nullable — The user's first name as it appears in their National ID
      - `familyName` string, nullable — The user's last name as it appears in their National ID
      - `middleName` string, nullable — The user's middle name as it appears in their National ID (optional)
      - `dateOfBirth` string, date, nullable — The user's date of birth, in `YYYY-MM-DD` format
      - `sex` 'Male' | 'Female'
    - `kenya-nid-lookup-2` KenyaNidLookup2Input
      - `idNumber` string, nullable — The Kenya National ID Number (Nambari ya Kitambulisho) or Unique Personal Identifier (Maisha Namba). This is the primary unique identifier for Kenyan citizens in all government systems, issued by the National Registration Bureau (NRB). The format is either 8 digits for National ID or 9 digits for Maisha Namba UPI (the new format since 2023).
    - `south-africa-nid-lookup-2` SouthAfricaNidLookup2Input
      - `idNumber` string, nullable — The South African National Identity Number (13 digits). Issued for life by the Department of Home Affairs (DHA) and stored in the HANIS (Home Affairs National Identification System) database. The same number is mandatory for banking, employment, taxation, and voting, and is printed on both the legacy green ID book and the Smart ID Card (rolled out from 2013 onward). Format: - YYMMDD G(4) C A Z - YYMMDD is the date of birth - G(4) is the gender code (below 5000 female, 5000 or above male) - C is the citizenship indicator (0 citizen, 1 permanent resident) - A is reserved (it had a politically sensitive meaning in the past, but is currently semantically meaningless) - Z is a Luhn check digit
    - `south-africa-nid-match-2` SouthAfricaNidMatch2Input
      - `idNumber` string, nullable — The South African National Identity Number (13 digits). Issued for life by the Department of Home Affairs (DHA) and stored in the HANIS (Home Affairs National Identification System) database. The same number is mandatory for banking, employment, taxation, and voting, and is printed on both the legacy green ID book and the Smart ID Card (rolled out from 2013 onward). Format: - YYMMDD G(4) C A Z - YYMMDD is the date of birth - G(4) is the gender code (below 5000 female, 5000 or above male) - C is the citizenship indicator (0 citizen, 1 permanent resident) - A is reserved (it had a politically sensitive meaning in the past, but is currently semantically meaningless) - Z is a Luhn check digit
      - `givenName` string, nullable — The user's first name as it appears in their National ID
      - `familyName` string, nullable — The user's last name as it appears in their National ID
      - `middleName` string, nullable — The user's middle name as it appears in their National ID (optional)
      - `dateOfBirth` string, date, nullable — The user's date of birth, in `YYYY-MM-DD` format
      - `sex` 'Male' | 'Female'
    - `nigeria-nin-lookup-2` NigeriaNinLookup2Input
      - `idNumber` string, nullable — National Identification Number (NIN). This is a unique, permanent identifier assigned by the National Identity Management Commission (NIMC) upon enrollment. Format: - 11 numeric digits - No publicly known encoding scheme is used to encode personal information in the NIN - Last digit is a checksum using the Verhoeff algorithm
    - `nigeria-nin-lookup-3` NigeriaNinLookup3Input
      - `idNumber` string, nullable — National Identification Number (NIN). This is a unique, permanent identifier assigned by the National Identity Management Commission (NIMC) upon enrollment. Format: - 11 numeric digits - No publicly known encoding scheme is used to encode personal information in the NIN - Last digit is a checksum using the Verhoeff algorithm
    - `kenya-nid-lookup-3` KenyaNidLookup3Input
      - `idNumber` string, required — The Kenya National ID Number (Nambari ya Kitambulisho) or Unique Personal Identifier (Maisha Namba). This is the primary unique identifier for Kenyan citizens in all government systems, issued by the National Registration Bureau (NRB). The format is either 8 digits for National ID or 9 digits for Maisha Namba UPI (the new format since 2023).
    - `cote-divoire-nid-lookup-2` CoteDIvoireNidLookup2Input
      - `idNumber` string, nullable — The user's National ID number (NNI) or document number
    - `zimbabwe-nid-lookup-2` ZimbabweNidLookup2Input
      - `idNumber` string, nullable — Zimbabwe National ID number (NID) issued by the Zimbabwean government. Format: - 8-9 digits followed by 1 letter and 2 digits - Regex: /^[0-9]{8,9}[A-Za-z]\d{2}$/ - There is no publicly documented encoding scheme for encoding personal information in the NID - No check digit or algorithm has been publicly documented by the Zimbabwean government
    - `nigeria-nin-match-2` NigeriaNinMatch2Input
      - `idNumber` string, nullable — National Identification Number (NIN). This is a unique, permanent identifier assigned by the National Identity Management Commission (NIMC) upon enrollment. Format: - 11 numeric digits - No publicly known encoding scheme is used to encode personal information in the NIN - Last digit is a checksum using the Verhoeff algorithm
      - `givenName` string, nullable — The user's first name as it appears in their National ID
      - `familyName` string, nullable — The user's last name as it appears in their National ID
      - `middleName` string, nullable — The user's middle name as it appears in their National ID (optional)
      - `dateOfBirth` string, date, nullable — The user's date of birth, in `YYYY-MM-DD` format
      - `sex` 'Male' | 'Female'
      - `phoneNumber` string, nullable — The user's phone number as it appears in their National ID (optional). Must be in E.164 international format: "+234XXXXXXXXX"
    - `uganda-nid-match-2` UgandaNidMatch2Input
      - `idNumber` string, nullable — Uganda National ID number (NID) assigned by the National Identification and Registration Authority (NIRA). Format: - 14 alphanumeric characters (A-Z, 0-9) - There is no publicly documented encoding scheme for encoding personal information in the NID - No check digit or algorithm has been publicly documented by NIRA
      - `secondaryIdNumber` string, nullable — The card number on the document (secondary ID number). Required for Uganda Basic KYC instead of first name and last name.
      - `dateOfBirth` string, date, nullable — The user's date of birth, in `YYYY-MM-DD` format
    - `nigeria-nin-lookup` NigeriaNinInput
      - `firstName` string, required — The user's first name as it appears in their National ID
      - `middleName` string, nullable — The user's middle name as it appears in their National ID (optional)
      - `lastName` string, required — The user's last name as it appears in their National ID (optional)
      - `phoneNumber` string, nullable — The user's phone number (optional)
      - `dateOfBirth` string, date, required — The user's date of birth, in `YYYY-MM-DD` format
      - `gender` string, nullable — The user's gender as it appears in their National ID (e.g., male, female)
      - `nationalIdNumber` string, required — The user's National ID number
    - `india-digilocker-aadhaar-match` AadhaarInput
      - `fullName` string, nullable — The user's full name
      - `dateOfBirth` string, date, nullable — The user's date of birth, in `YYYY-MM-DD` format
    - `india-pan-lookup` IndiaPanLookupInput
      - `permanentAccountNumber` string, required — Permanent Account Number (PAN) to verify. PAN is a ten-character tax identifier issued by the Income Tax Department of India.
    - `korea-telco-match` KoreaTelcoMatchInput
      - `phoneNumber` string, required — Phone number without dashes, e.g. "010XXXXXXXX".
      - `fullName` string, required — Full legal name (UTF-8), e.g. "홍길동" or "Hong Gildong".
      - `dateOfBirth` string, date, required — Date of birth.
      - `sex` 'Male' | 'Female', required
      - `carrier` 'Lgu' | 'Skt' | 'Kt', required
      - `operatingSystem` 'Android' | 'Ios' | 'Feature', required
    - `brazil-cpf-lookup` BrazilCpfCheckInput
      - `cpfNumber` string, required — The user's 11-digit, numeric CPF Number
      - `dateOfBirth` string, date, nullable — The user's date of birth. Optional, but date of birth will become required for lookups starting September 1, 2026.
      - `selfieImage` string, byte, nullable — The raw bytes of the selfie image collected from the user.
      - `selfieImageContentType` string, nullable — The MIME Type of the file contained in `SelfieImage`. Must be one of `image/jpeg` or `image/png`.
    - `brazil-digital-cnh` BrazilDigitalCnhInput
      - `cpfNumber` string, required — The user's 11-digit, numeric CPF Number
      - `digitalCnhFile` string, byte, nullable — The raw bytes of the digital CNH file collected from the user.
      - `digitalCnhFileContentType` string, nullable — The MIME Type of the file contained in `DigitalCnhFile`. Must be one of `application/pdf`, `image/jpeg`, or `image/png`.
      - `facialBiometryPhoto` string, byte, nullable — The raw bytes of the image of the user's face, collected for biometric comparison.
    - `philippines-philsys-match` PhilippineMatchInput
      - `givenName` string, nullable — The user's given / first name
      - `middleName` string, nullable — The user's middle name
      - `familyName` string, nullable — The user's family / last name
      - `suffix` string, nullable — The user's name suffix
      - `dateOfBirth` string, date, nullable — The user's date of birth, in `YYYY-MM-DD` format
    - `philippines-physical-national-id-qr` PhilippineQRInput
      - `qrCodeText` string, nullable — The raw text of the user's QR code after decoding it.
      - `qrCodeImage` string, byte, nullable — The raw bytes of the image containing the user's QR code.
    - `philippines-digital-national-id-qr` PhilippineQRInput
      - `qrCodeText` string, nullable — The raw text of the user's QR code after decoding it.
      - `qrCodeImage` string, byte, nullable — The raw bytes of the image containing the user's QR code.
    - `smart-id` SmartIdInput
      - `smartIdNumber` string, nullable — The user's Smart ID ETSI number or document number.
    - `mobile-id` MobileIdInput
      - `mobileIdPhoneNumber` string, nullable — The user's phone number in E.164 format
      - `mobileIdNationalIdentityNumber` string, nullable — The user's National ID number
      - `mobileIdLanguage` 'LIT' | 'EST' | 'ENG' | 'RUS'
    - `netherlands-idin` IdinInput
      - `subProviderId` string, nullable — The ID of the specific bank to invoke with IDIN. If not specified, the user will be prompted to select a bank.
    - `italy-spid` SpidInput
      - `subProviderId` string, nullable — The ID of the specific IDP to invoke within SPID. If not specified, the user will be prompted to select an IDP.
      - `billingTrackingSecret` string, nullable — Only applicable if period-based billing is enabled for your Verification Profile. Contact Trinsic to enable this. A secret UTF-8 string between 32 and 64 characters in length, used to enable privacy-preserving tracking of unique user verifications during a billing period. WARNING: This value must NOT change during the course of a billing period for a given Verification Profile, or double-billing may occur. If multiple Verification Profiles are configured to use the same Trinsic-managed SPID Service Provider, the same Billing Tracking Secret must be provided across all such Verification Profiles.
    - `google-wallet` GoogleWalletInput
      - `exchangeMechanism` 'NativeApp' | 'DigitalCredentialsApi'
      - `preview_raw18013Request` Raw18013RequestInput — A raw 18013-7 exchange request. Use this to specify a raw 18013-7 exchange against an arbitrary document type, namespace, and set of fields.
        - `documentRequests` Raw18013DocumentRequest[], required — A collection of requests for specific document(s), any of which may be used to satisfy the verification. At least one request must be provided. No more than 10 requests may be provided.
          - `documentType` string, required — The type of the document being requested, as defined by ISO specifications 18013-5, 18013-7, 23220-2, or a similar or related standard. Common values: - "org.iso.18013.5.1.mDL" -- a Mobile Driver's License - "eu.europa.ec.eudi.pid.1" -- an EUDI Wallet PID - "com.google.wallet.idcard.1" -- a Google Wallet ID Pass - "org.iso.23220.photoid.1" -- a generic ISO 23220-2 compliant Photo ID (used by Apple Wallet's ID Pass)
          - `nameSpaces` object, required — The namespaces and attributes (PII) to request from the document. This is a map of (nameSpaceName -> (attributeName -> willRetain)), where: - nameSpaceName is the name of a NameSpace within the document - attributeName is the name of a specific attribute within the NameSpace - willRetain indicates, to the Wallet, whether you as the Relying Party intend to retain the data for longer than the scope of the transaction Common namespace values: - "org.iso.18013.5.1" -- the primary namespace of a Mobile Driver's License or a Google Wallet ID Pass - "org.iso.18013.5.1.aamva" -- the secondary, AAMVA-defined namespace of a Mobile Driver's License - "eu.europa.ec.eudi.pid.1" -- the primary namespace of an EUDI Wallet PID - "org.iso.23220.1" -- the primary namespace of an ISO 23220-2 credential or an Apple Wallet ID Pass
    - `apple-wallet` AppleWalletInput
      - `exchangeMechanism` 'NativeApp' | 'DigitalCredentialsApi'
      - `preview_raw18013Request` Raw18013RequestInput — A raw 18013-7 exchange request. Use this to specify a raw 18013-7 exchange against an arbitrary document type, namespace, and set of fields.
        - `documentRequests` Raw18013DocumentRequest[], required — A collection of requests for specific document(s), any of which may be used to satisfy the verification. At least one request must be provided. No more than 10 requests may be provided.
          - `documentType` string, required — The type of the document being requested, as defined by ISO specifications 18013-5, 18013-7, 23220-2, or a similar or related standard. Common values: - "org.iso.18013.5.1.mDL" -- a Mobile Driver's License - "eu.europa.ec.eudi.pid.1" -- an EUDI Wallet PID - "com.google.wallet.idcard.1" -- a Google Wallet ID Pass - "org.iso.23220.photoid.1" -- a generic ISO 23220-2 compliant Photo ID (used by Apple Wallet's ID Pass)
          - `nameSpaces` object, required — The namespaces and attributes (PII) to request from the document. This is a map of (nameSpaceName -> (attributeName -> willRetain)), where: - nameSpaceName is the name of a NameSpace within the document - attributeName is the name of a specific attribute within the NameSpace - willRetain indicates, to the Wallet, whether you as the Relying Party intend to retain the data for longer than the scope of the transaction Common namespace values: - "org.iso.18013.5.1" -- the primary namespace of a Mobile Driver's License or a Google Wallet ID Pass - "org.iso.18013.5.1.aamva" -- the secondary, AAMVA-defined namespace of a Mobile Driver's License - "eu.europa.ec.eudi.pid.1" -- the primary namespace of an EUDI Wallet PID - "org.iso.23220.1" -- the primary namespace of an ISO 23220-2 credential or an Apple Wallet ID Pass
    - `samsung-wallet` SamsungWalletInput
      - `preview_raw18013Request` Raw18013RequestInput — A raw 18013-7 exchange request. Use this to specify a raw 18013-7 exchange against an arbitrary document type, namespace, and set of fields.
        - `documentRequests` Raw18013DocumentRequest[], required — A collection of requests for specific document(s), any of which may be used to satisfy the verification. At least one request must be provided. No more than 10 requests may be provided.
          - `documentType` string, required — The type of the document being requested, as defined by ISO specifications 18013-5, 18013-7, 23220-2, or a similar or related standard. Common values: - "org.iso.18013.5.1.mDL" -- a Mobile Driver's License - "eu.europa.ec.eudi.pid.1" -- an EUDI Wallet PID - "com.google.wallet.idcard.1" -- a Google Wallet ID Pass - "org.iso.23220.photoid.1" -- a generic ISO 23220-2 compliant Photo ID (used by Apple Wallet's ID Pass)
          - `nameSpaces` object, required — The namespaces and attributes (PII) to request from the document. This is a map of (nameSpaceName -> (attributeName -> willRetain)), where: - nameSpaceName is the name of a NameSpace within the document - attributeName is the name of a specific attribute within the NameSpace - willRetain indicates, to the Wallet, whether you as the Relying Party intend to retain the data for longer than the scope of the transaction Common namespace values: - "org.iso.18013.5.1" -- the primary namespace of a Mobile Driver's License or a Google Wallet ID Pass - "org.iso.18013.5.1.aamva" -- the secondary, AAMVA-defined namespace of a Mobile Driver's License - "eu.europa.ec.eudi.pid.1" -- the primary namespace of an EUDI Wallet PID - "org.iso.23220.1" -- the primary namespace of an ISO 23220-2 credential or an Apple Wallet ID Pass
    - `france-identite` FranceIdentiteInput
      - `preview_raw18013Request` Raw18013RequestInput — A raw 18013-7 exchange request. Use this to specify a raw 18013-7 exchange against an arbitrary document type, namespace, and set of fields.
        - `documentRequests` Raw18013DocumentRequest[], required — A collection of requests for specific document(s), any of which may be used to satisfy the verification. At least one request must be provided. No more than 10 requests may be provided.
          - `documentType` string, required — The type of the document being requested, as defined by ISO specifications 18013-5, 18013-7, 23220-2, or a similar or related standard. Common values: - "org.iso.18013.5.1.mDL" -- a Mobile Driver's License - "eu.europa.ec.eudi.pid.1" -- an EUDI Wallet PID - "com.google.wallet.idcard.1" -- a Google Wallet ID Pass - "org.iso.23220.photoid.1" -- a generic ISO 23220-2 compliant Photo ID (used by Apple Wallet's ID Pass)
          - `nameSpaces` object, required — The namespaces and attributes (PII) to request from the document. This is a map of (nameSpaceName -> (attributeName -> willRetain)), where: - nameSpaceName is the name of a NameSpace within the document - attributeName is the name of a specific attribute within the NameSpace - willRetain indicates, to the Wallet, whether you as the Relying Party intend to retain the data for longer than the scope of the transaction Common namespace values: - "org.iso.18013.5.1" -- the primary namespace of a Mobile Driver's License or a Google Wallet ID Pass - "org.iso.18013.5.1.aamva" -- the secondary, AAMVA-defined namespace of a Mobile Driver's License - "eu.europa.ec.eudi.pid.1" -- the primary namespace of an EUDI Wallet PID - "org.iso.23220.1" -- the primary namespace of an ISO 23220-2 credential or an Apple Wallet ID Pass
    - `poland-mobywatel-match` PolandMobywatelMatchInput
      - `givenName` string, nullable — Given name as it appears on mobile ID (mDowód).
      - `familyName` string, nullable — Current legal family name (nazwisko) as it appears on mobile ID (mDowód). In Poland the current legal family name (nazwisko) is a separate idea from your birth family name (nazwisko rodowe). They often match, but they can differ after marriage, adoption, or a court-ordered change.
      - `dateOfBirth` string, nullable — Date of birth as it appears on mobile ID (mDowód).
      - `nationality` string, nullable — Nationality as it appears on mobile ID (mDowód).
      - `personalNumber` string, nullable — Polish national identification number (PESEL) as it appears on mobile ID (mDowód). NOTE: The provided example value is a randomly generated, but valid PESEL number that does not correspond to a real person.
      - `expirationDate` string, nullable — Document expiration date as it appears on mobile ID (mDowód).
      - `selfieBytes` string, byte, nullable — The raw bytes of the selfie image collected from the user.
      - `selfieImageMimeType` string, nullable — The MIME Type of the file contained in SelfieBytes. Only JPEG or PNG formats are supported.
    - `bolivia-ci-lookup` BoliviaCiLookupInput
      - `documentNumber` string, nullable — The holder's CI ("Cédula de Identidad") number from the Bolivian identity card ("carnet de identidad"). This is the identifier assigned by the Servicio General de Identificación Personal (SEGIP) in the Registro Único de Identificación (RUI). Is entirely numeric values. Any non-alphanumeric characters (dots, hyphens, spaces, etc.) will be stripped before lookup. Published regulations do not define a fixed length; digit count may vary.
      - `dateOfBirth` string, date, nullable — The holder's date of birth. Must match the CI record.
    - `colombia-cc-lookup` ColombiaCcLookupInput
      - `documentNumber` string, nullable — The CC (Cédula de Ciudadanía, Citizenship Document) document number. Format: - Cédulas after 2004 use the NUIP (Número Único de Identificación Personal), which is 10 digits. Older documents may have fewer than 10 digits and are still valid. - In Colombia the number is often written with dots as thousands separators (e.g. 1.234.567.890). If dots, hyphens, spaces, or other non-alphanumeric characters are included, they will be sanitized before lookup.
      - `issueDate` string, date, nullable — Document issue date, in `YYYY-MM-DD` format
    - `el-salvador-dui-lookup` ElSalvadorDuiLookupInput
      - `documentNumber` string, nullable — The DUI (Documento Único de Identidad) number for the holder. Nine numeric digits after sanitization. Commonly printed as ########-# (hyphen before the final digit). The input will automatically be sanitized of dots, hyphens, spaces, or other non-alphanumeric characters before lookup. The ninth digit is a check digit. This is not publicly documented by the Salvadoran government, but the algorithm is available in the public domain for those who seek it.
      - `dateOfBirth` string, date, nullable — The DUI holder's date of birth. Required to match the correct person in official records.
    - `guatemala-cui-lookup` GuatemalaCuiLookupInput
      - `documentNumber` string, nullable — The Guatemalan Código Único de Identificación (CUI) number. Assigned and maintained by RENAP (Registro Nacional de las Personas). Official format: exactly 13 numeric digits. 8 RENAP-assigned serial digits, 1 verifier digit (dígito verificador), and 4 geographic digits for department and municipality of birth. The CUI is printed on the Documento Personal de Identificación (DPI) in three groups (4–5–4) separated by spaces. Trinsic normalizes to digits-only before lookup, automatically removing spaces, dots, hyphens, and other non-alphanumeric characters. No verifier algorithm appears in publicly accessible RENAP resources. Community-maintained validators often use modulus-11 (non-official).
    - `panama-cedula-lookup` PanamaCedulaLookupInput
      - `documentNumber` string, nullable — The number from the holder's cédula (Cédula de Identidad Personal). Send the full number as {firstSegment}-{libro}-{tomo} (libro 1–4 digits, tomo 1–6), using only ASCII letters, digits, and hyphens. Hyphens are not inserted for you between segments. Trinsic uppercases letters, collapses repeated hyphens, trims leading and trailing hyphens, and merges a redundant hyphen between province and AV or PI (for example 10-AV-1234-12345 becomes 10AV-1234-12345). Citizen category and format: - Born in Panama format: {province}-{libro}-{tomo} ({province} is official code 1 through 13). Examples 8-1234-12345, 4-56-789, 12-12-12345. - Panamanian born abroad format: PE-{libro}-{tomo}. Example PE-1234-12345. - Foreign national with cédula format: E-{libro}-{tomo}. Examples E-1234-12345, E-8-102017. - Naturalized citizen format: N-{libro}-{tomo}. Example N-1234-12345. - Pre-2006 civil registry (AV) format: {province}AV-{libro}-{tomo}. Example 10AV-1234-12345. - Indigenous (PI) format: {province}PI-{libro}-{tomo}. Example 1PI-1234-12345.
      - `dateOfBirth` string, date, nullable — The user's date of birth, in `YYYY-MM-DD` format.
    - `peru-dni-lookup` PeruDniLookupInput
      - `documentNumber` string, nullable — The user's DNI number (8 digits). Format: - Must not include verification digit. On the DNI card, a ninth digit appears after the first eight, with value 0-9 or A-K. This is not included in the DNI number when verifying against Peru's database. - Peru DNI is sometimes represented with dots. Though uncommon, if dots are included, they will be sanitized.
    - `uk-evisa-lookup` UkEvisaLookupInput
      - `shareCode` string, required — The 9-character share code.
      - `dateOfBirth` string, date, required — The user's date of birth, in `YYYY-MM-DD` format.
    - `usa-california-dmv` UsaCaliforniaDmvInput
      - `preview_raw18013Request` Raw18013RequestInput — A raw 18013-7 exchange request. Use this to specify a raw 18013-7 exchange against an arbitrary document type, namespace, and set of fields.
        - `documentRequests` Raw18013DocumentRequest[], required — A collection of requests for specific document(s), any of which may be used to satisfy the verification. At least one request must be provided. No more than 10 requests may be provided.
          - `documentType` string, required — The type of the document being requested, as defined by ISO specifications 18013-5, 18013-7, 23220-2, or a similar or related standard. Common values: - "org.iso.18013.5.1.mDL" -- a Mobile Driver's License - "eu.europa.ec.eudi.pid.1" -- an EUDI Wallet PID - "com.google.wallet.idcard.1" -- a Google Wallet ID Pass - "org.iso.23220.photoid.1" -- a generic ISO 23220-2 compliant Photo ID (used by Apple Wallet's ID Pass)
          - `nameSpaces` object, required — The namespaces and attributes (PII) to request from the document. This is a map of (nameSpaceName -> (attributeName -> willRetain)), where: - nameSpaceName is the name of a NameSpace within the document - attributeName is the name of a specific attribute within the NameSpace - willRetain indicates, to the Wallet, whether you as the Relying Party intend to retain the data for longer than the scope of the transaction Common namespace values: - "org.iso.18013.5.1" -- the primary namespace of a Mobile Driver's License or a Google Wallet ID Pass - "org.iso.18013.5.1.aamva" -- the secondary, AAMVA-defined namespace of a Mobile Driver's License - "eu.europa.ec.eudi.pid.1" -- the primary namespace of an EUDI Wallet PID - "org.iso.23220.1" -- the primary namespace of an ISO 23220-2 credential or an Apple Wallet ID Pass
    - `trinsic-test-database-lookup` TrinsicTestDatabaseLookupInput
      - `givenName` string, nullable — The given name to use for the output of the test Session. This is required; if not provided, Trinsic's Fallback UI will be invoked to collect it from the user. Can be any non-empty value.
      - `familyName` string, nullable — The family name to use for the output of the test Session. This is required; if not provided, Trinsic's Fallback UI will be invoked to collect it from the user. Can be any non-empty value.
      - `identityCode` string, nullable — A 6-digit code; must be "123456" for the Session to succeed. This is required; if not provided, Trinsic's Fallback UI will be invoked to collect it from the user. Any other value will cause the Session to fail.
      - `selfieBase64` string, nullable — An optional selfie image, base64-encoded. Will replace the existing test selfie attachment output if provided.
    - `trinsic-test-sub-providers` TrinsicTestSubProvidersInput
      - `subProviderId` string, nullable — The ID of the specific IDP to invoke within the test federated provider. Valid options are `sub-provider-a` and `sub-provider-b`. If not specified, the user will be prompted to select one.

## Response `200`

OK

- CreateDirectProviderSessionResponse
  - `sessionId` string, uuid, required — The ID of the newly-created Acceptance Session
  - `resultCollection` ResultCollection, required
    - `method` 'PollResult' | 'CaptureRedirect' | 'SubmitNativeChallengeResponse', required
    - `resultsAccessKey` string, required — The `resultsAccessKey` for the Acceptance Session. This is an encrypted payload which contains the decryption key necessary to access the Session's Data Vault. Save this securely in your systems; it must be passed back with any API call which requires access to the Session's Data Vault. Trinsic cannot access a Session's Data Vault without this key.
  - `nextStep` IntegrationStep, required — A step to perform in the process of executing a Direct Provider Session
    - `method` 'LaunchBrowser' | 'None' | 'DeeplinkToMobile' | 'ShowContent' | 'PerformNativeChallenge', required
    - `content` string, required — Step type-specific content related to the step: a URL for `LaunchBrowser`, a deeplink for `DeeplinkToMobile` or a string to show to the user for `ShowContent`.
    - `refresh` StepRefreshInfo
      - `expiresAt` string, date-time, required — The UTC date/time at which the step `content` will expire and should no longer be used. Use the `Refresh Step Content` API to obtain a new value for `content`.
      - `refreshAfter` string, date-time, required — The UTC date/time after which Trinsic recommends you refresh the step `content`.
      - `timeToLiveSeconds` integer, required — The total lifetime of the step `content`.

## Other responses

- `400` — Bad request
- `401` — Unauthorized
- `403` — Forbidden
- `500` — Internal server error

---

[API](https://skmtc.net/trinsic/apis/trinsic-api.md) · [All operations](https://skmtc.net/trinsic/apis/trinsic-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/trinsic/trinsic-api/versions/e57fbc634d48/schema)
