ChmodKycResult is a Swift enum, so the compiler makes sure you cover every case.
The callback always runs on the main actor, so you can update your UI directly.
Every case carries the transaction ID, and result.transactionID reads it without a
switch when that is all you need.
.completed does not mean approved
It means the user finished the flow successfully. The actual verdict is produced afterwards and delivered to your backend through a webhook, usually within seconds.
Show something like “We’re reviewing your document” at .completed, and update the
user once your backend receives the webhook. A success screen here will be wrong for
every user who is later rejected.
Navigating with the result
ChmodKycResult and ChmodKycFailureCode both conform to Hashable, so you can push the
outcome straight onto a NavigationPath:
Or map it onto your own route type when you want to control the destinations:
Error codes
.unrecognized exists so a new code introduced by the SDK never breaks your build or
crashes your app. Handle it as a generic failure and log the raw string so you can see
what shipped.
Troubleshooting