Migration Guide

This is a guide for existing oneKYC SDK partners who needs to migrate to Enterprise SDK.

OneKyc White Label flow - Migration Guide: DigitalIdentity SDK → GoPayEnterprise SDK

This guide covers the breaking changes and updated APIs when migrating from the DigitalIdentitySdk to GoPayEnterpriseSdk.

Overview of Changes

AreaOldNew
SDK initializationDigitalIdentitySdk.shared.initialise(...)GoPayEnterpriseFactory.createEnterpriseSdk(...)
KYC entry pointDirect on shared instanceVia KycManager obtained from SDK instance
Config type — KTP ScanDigitalIdentityKTPScanConfigEnterpriseKTPScanConfig
Config type — Selfie LivenessDigitalIdentitySelfieLivenessConfigEnterpriseSelfieConfig
Config type — Face VerificationDigitalIdentitySelfieVerificationConfigEnterpriseSelfieConfig
Config type — Identity VerificationDigitalIdentityKYCVerificationConfigEnterpriseKYCVerificationConfig
Language typeDigitalIdentityUserLanguageGoPayEnterpriseLocale
Helpcenter DelegateDigitalIdentityHelpCenterDelegateEnterpriseHelpCenterDelegate
Result callback dataDigitalIdentityDocumentVerificationResultEnterpriseDocumentVerificationResult
Result statusDigitalIdentityDocumentVerificationResultStatusEnterpriseDocumentVerificationResultStatus
Result Extra dataDigitalIdentityResultExtraDataEnterpriseResultExtraData
Result Error codeDigitalIdentityFlowErrorCodeEnterpriseFlowErrorCode

1. SDK Initialization

Before

let userProfile = DigitalIdentityUserProfile(userId: <User id>)

let configuration = DigitalIdentityConfiguration(
    environment: <DigitalIdentityEnvironment>,
    analyticsManager: IDigitalIdentityAnalyticsManager,
    userProfile: userProfile
)

DigitalIdentitySdk.shared.initialise(configuration: configuration) {
    // Completion handler
}

After

let configuration = GoPayEnterpriseConfiguration(
    clientID: "YOUR_CLIENT_ID",
    environment: .STAGING, // or .PRODUCTION
    enableDebugLogs: true,  // or false
    additionalData: nil,
    locale: .en             // or .id
)

let sdk = GoPayEnterpriseFactory.createEnterpriseSdk(
    configuration: configuration,
    callbackDelegate: <GoPayEnterpriseCallbackDelegate>
)

// Obtain KycManager from the initialized SDK instance
let kycManager = sdk.getKycManager()

Key changes:

  • The singleton DigitalIdentitySdk.shared is replaced with the Enterprise sdk instance. GoPayEnterpriseFactory.createEnterpriseSdk(...) returns an SDK instance you own.
  • All Whitelabel flows are now accessed through a KycManager instance retrieved viasdk.getKycManager().

2. KTP Scan

Before

let config = DigitalIdentityKTPScanConfig(
    baseUrl: <DigitalIdentity BE Base Url>,
    token: <DigitalIdentity Token>,
    correlationId: <Correlation Id>,
    language: <DigitalIdentityUserLanguage>,
    theme: <DigitalIdentityKTPScanFlowTheme>
)

DigitalIdentitySdk.shared.launchKTPScan(
    config: config,
    viewcontroller: <viewcontroller instance>
) { result in
    // Completion handler
}

After

let config = EnterpriseKTPScanConfig(
    baseUrl: <DigitalIdentity BE Base Url>,
    token: <DigitalIdentity Token>,
    correlationId: <Correlation Id>,
    language: <GoPayEnterpriseLocale>,
    theme: <DigitalIdentityKTPScanFlowTheme>
)

kycManager.launchKTPScan(config: config, from: <viewcontroller instance>) { result in
    // Completion handler
}

Key changes:

  • Config type renamed from DigitalIdentityKTPScanConfigEnterpriseKTPScanConfig.
  • language parameter type renamed fromDigitalIdentityUserLanguageGoPayEnterpriseLocale
  • Call site moved from DigitalIdentitySdk.sharedkycManager.
  • Presenter parameter label changed from viewcontroller:from:.
  • Completion closure:
    • DigitalIdentityDocumentVerificationResultEnterpriseDocumentVerificationResult
    • DigitalIdentityDocumentVerificationResultStatusEnterpriseDocumentVerificationResultStatus
    • DigitalIdentityResultExtraDataEnterpriseResultExtraData
    • DigitalIdentityFlowErrorCodeEnterpriseFlowErrorCode

No changes:.

  • baseUrl
  • token
  • correlationId
  • theme

3. Selfie Liveness

Before

let config = DigitalIdentitySelfieLivenessConfig(
    baseUrl: <DigitalIdentity BE Base Url>,
    token: <DigitalIdentity Token>,
    correlationId: <Correlation Id>,
    language: <DigitalIdentityUserLanguage>,
    theme: <DigitalIdentitySelfieFlowTheme>
)

DigitalIdentitySdk.shared.launchSelfieLiveness(
    config: config,
    viewcontroller: <viewcontroller instance>,
    helpCenter: DigitalIdentityHelpCenterDelegate
) { result in }

After

let config = EnterpriseSelfieConfig(
    baseUrl: <DigitalIdentity BE Base Url>,
    token: <DigitalIdentity Token>,
    correlationId: <Correlation Id>,
    language: <GoPayEnterpriseLocale>,
    theme: <DigitalIdentitySelfieFlowTheme>
)

kycManager.launchSelfieLiveness(
   config: config, 
   from: <viewcontroller instance>,
   helpCenter: EnterpriseHelpCenterDelegate) { result in }

Key changes:

  • Config type renamed from DigitalIdentitySelfieLivenessConfigEnterpriseSelfieConfig.
  • language parameter type renamed fromDigitalIdentityUserLanguageGoPayEnterpriseLocale
  • Call site moved from DigitalIdentitySdk.sharedkycManager.
  • Presenter parameter label changed from viewcontroller:from:
  • Helpcenter delegate type renamed from DigitalIdentityHelpCenterDelegateEnterpriseHelpCenterDelegate
  • Completion closure:
    • DigitalIdentityDocumentVerificationResultEnterpriseDocumentVerificationResult
    • DigitalIdentityDocumentVerificationResultStatusEnterpriseDocumentVerificationResultStatus
    • DigitalIdentityResultExtraDataEnterpriseResultExtraData
    • DigitalIdentityFlowErrorCodeEnterpriseFlowErrorCode

No changes:.

  • baseUrl
  • token
  • correlationId
  • theme

4. Face Verification

Before

let config = DigitalIdentitySelfieVerificationConfig(
    baseUrl: <DigitalIdentity BE Base Url>,
    token: <DigitalIdentity Token>,
    correlationId: <Correlation Id>,
    language: <DigitalIdentityUserLanguage>,
    theme: <DigitalIdentitySelfieFlowTheme>
)

DigitalIdentitySdk.shared.launchSelfieVerification(
    config: config,
    viewcontroller: <viewcontroller instance>,
    helpCenter: DigitalIdentityHelpCenterDelegate
) { result in }

After

let config = EnterpriseSelfieConfig(
    baseUrl: <DigitalIdentity BE Base Url>,
    token: <DigitalIdentity Token>,
    correlationId: <Correlation Id>,
    language: <GoPayEnterpriseLocale>,
    theme: <DigitalIdentitySelfieFlowTheme>
)

kycManager.launchSelfieVerification(
  config: config, 
  from: <viewcontroller instance>,
  helpCenter: EnterpriseHelpCenterDelegate) { result in }

Key changes:

  • Config type renamed from DigitalIdentitySelfieVerificationConfigEnterpriseSelfieConfig (same type as Selfie Liveness).
  • language parameter type renamed fromDigitalIdentityUserLanguageGoPayEnterpriseLocale
  • Call site moved from DigitalIdentitySdk.sharedkycManager
  • Presenter parameter label changed from viewcontroller:from:.
  • Helpcenter delegate type renamed from DigitalIdentityHelpCenterDelegateEnterpriseHelpCenterDelegate
  • Completion closure:
    • DigitalIdentityDocumentVerificationResultEnterpriseDocumentVerificationResult
    • DigitalIdentityDocumentVerificationResultStatusEnterpriseDocumentVerificationResultStatus
    • DigitalIdentityResultExtraDataEnterpriseResultExtraData
    • DigitalIdentityFlowErrorCodeEnterpriseFlowErrorCode

No changes:.

  • baseUrl
  • token
  • correlationId
  • theme

5. Identity Verification (KYC Verification)

Before

let config = DigitalIdentityKYCVerificationConfig(
    baseUrl: <DigitalIdentity BE Base Url>,
    token: <DigitalIdentity Token>,
    correlationId: <Correlation Id>,
    language: <DigitalIdentityUserLanguage>,
    theme: <DigitalIdentityKYCVerificationFlowTheme>
)

DigitalIdentitySdk.shared.launchKYCVerification(
    config: config,
    viewcontroller: <viewcontroller instance>,
    helpCenter: DigitalIdentityHelpCenterDelegate
) { result in }

After

let config = EnterpriseKYCVerificationConfig(
    baseUrl: <DigitalIdentity BE Base Url>,
    token: <DigitalIdentity Token>,
    correlationId: <Correlation Id>,
    language: <GoPayEnterpriseLocale>,
    theme: <DigitalIdentityKYCVerificationFlowTheme>
)

kycManager.launchKYCVerification(
  config: config, 
  from: <viewcontroller instance>,
  helpCenter: EnterpriseHelpCenterDelegate
  ) { result in }

Key changes:

  • Config type renamed from DigitalIdentityKYCVerificationConfigEnterpriseKYCVerificationConfig.
  • Call site moved from DigitalIdentitySdk.sharedkycManager.
  • Presenter parameter label changed from viewcontroller:from:.
  • Helpcenter delegate type renamed from DigitalIdentityHelpCenterDelegateEnterpriseHelpCenterDelegate
  • Completion closure:
    • DigitalIdentityDocumentVerificationResultEnterpriseDocumentVerificationResult
    • DigitalIdentityDocumentVerificationResultStatusEnterpriseDocumentVerificationResultStatus
    • DigitalIdentityResultExtraDataEnterpriseResultExtraData
    • DigitalIdentityFlowErrorCodeEnterpriseFlowErrorCode

No changes:.

  • baseUrl
  • token
  • correlationId
  • theme