SDK reference · iOS SDK / iOS Individual Modules

Signature

The Signature module captures a signature the user hand-draws on screen, optionally presenting documents to sign. It is typically placed at the end of a verification journey to capture explicit consent.

For an overview of this module and how it works, see Electronic Signature.

How you use this module depends on your integration pattern. When the app defines the steps in code, you add the module to an IncdOnboardingFlowConfiguration as shown below; when the flow is defined in Dashboard, you reference it and let the back end drive the steps. See Integration Approaches.

Availability: All variants.

Add Signature

Add the module with addSignature(). You can call it with no arguments to add the module with its defaults, or pass values to customize it.

flowConfig.addSignature()

Example

The example below adds a Signature module and presents documents for the user to sign.

flowConfig.addSignature(
    descriptionMaxLines: nil,
    documents: [
        SignDocument(
            title: "Terms",
            fileURL: contractURL,
            signaturePositions: [/* SignaturePosition */]
        )
    ]
)

Configuration Options

Configure the module with addSignature().

Option Type Notes
descriptionMaxLines Int? Sets the maximum number of lines for the description text.
documents [SignDocument] Presents documents for signing. Each SignDocument has a title, a fileURL, and its signaturePositions.
title String? Deprecated. Sets the title shown on the Signature screen. Provide it via Localizable.strings instead.
description String? Deprecated. Sets the description shown on the Signature screen. Provide it via Localizable.strings instead.

The addSignature(title:description:descriptionMaxLines:documents:) overload is deprecated: the title and description parameters should be customized via incdOnboarding.signature.title and incdOnboarding.signature.description in your Localizable.strings (see Localize Display Text). Use addSignature(descriptionMaxLines:documents:) for new integrations.

Result

The module delivers a SignatureFormResult to the onSignatureCollected(_:) callback on your IncdOnboardingDelegate.

func onSignatureCollected(_ result: SignatureFormResult)

SignatureFormResult fields:

  • signature: UIImage?: The captured signature image. On iOS, the image data is returned directly, not as a file path or URI.
  • signedDocuments: [SignDocument]?: The documents that were signed, if any were presented.
  • error: SignatureError?: Set when the step did not complete successfully; otherwise, nil.

Errors

Failures surface through the error field of the result.

SignatureError cases:

  • error(_ error: IncdError): An underlying error occurred.
  • declinedToSignDocument: The user declined to sign a presented document.
  • retryLimitReached: The user exceeded the maximum number of allowed signing attempts.

Was this page helpful?