Custom Pass is for dApps that wish to restrict access but do not want to use Civic IDV Services and UI components.
Once a user has been successfully vetted according to your logic, you can then call the Civic API to issue a Custom Pass to your user's wallet. The API also enables you to manage the complete lifecycle of any Custom Pass you issued.
Your on-chain smart contract still has to check for a valid Custom Pass during program execution. SeeOn-Chain Integration to learn more.