Web-Initiated Auth

Our mobile SDKs connect to the web experience as well, so that users authenticating via a web interface and use your mobile application for MFA authentication.


Before you can complete this part of the integration make sure you have:

  • Created a Pinn User
  • Enrolled factors like devices and palms for that given user



The Pinn SDK will return a pinnApiError if the device or biometrics that are being requested have not been enrolled.

This section will require web development for full completion.


To complete the web-initiated authentication, you'll use our scanner to connect the web and mobile session. Again, the main difference from mobile is that the web configuration decides which authentication factors are being requested. Our mobile SDK's pre-built UI flows will respond accordingly.

Intent intent = Pinn.generateQrFlow();
int qrFlowReqCode = 3456;
startActivityForResult(intent, qrFlowReqCode);

Authentication Token

A JWT ID token is returned from a successful authentication event. The ID token will be returned via the onActivityResult() method Be sure to validate the token on your backend for end to end security. For more detail regarding token validation refer to ID Tokens

public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    switch (requestCode) {
        case qrFlowReqCode:
            if (resultCode == Pinn.Result.VERIFICATION_SUCCESS) {
                // Extract idToken for backend validation
               String idToken = data.getStringExtra(Pinn.ResultKeys.TOKEN)


Time to coordinate with web developers and configure Pinn.js. See the configuration of the web section for more.



We are here to help! Contact us with any development related questions at and we'll reach back in a timely manner.