BrandKwikID Documentation
API SuiteEPF & OTP Verification

Login and Get OTP

Start the EPF UAN journey from your backend. Returns session details to pass to verify-otp.

API reference

Try itLoading playground…
Loading…
AuthorizationBearer <token>

JWT Bearer token authentication. Obtain a token from the KwikID dashboard.

In: header

usernameinteger

EPF UAN (unique account number) for the member.

passwordstring

Password for the EPF portal account linked to the UAN.

Response Body

curl -X POST "https://__mock__/verification/v2/epf/login" \  -H "Content-Type: application/json" \  -d '{    "username": 0,    "password": "string"  }'
{
  "session_details": {}
}
{
  "detail": {
    "<location>": {
      "<field_name>": [
        "string"
      ]
    }
  },
  "message": "string"
}
{
  "detail": {},
  "message": "string"
}

Overview

Call POST /verification/v2/epf/login from your backend with Authorization: Bearer <token> and JSON username (UAN) and password. On 200 OK, the body includes session_details (object) containing values you must pass to Verify OTP and Get Details together with the OTP the user receives on their registered mobile.

Key features

  • Two-step EPF flow: Login first, then OTP verification.
  • Server-side credentials: UAN password never belongs in a public SPA bundle.

Implementation

Step 1: Call from your backend

POST /verification/v2/epf/login HTTP/1.1
Host: <verification-api-base-url>
Authorization: Bearer <token>
Content-Type: application/json

{
  "username": 123456789012,
  "password": "<epf-portal-password>"
}

Step 2: Call verify-otp

Forward session_details fields per OpenAPI into Verify OTP and Get Details with the SMS OTP.

Error handling

HTTP statusWhen
400Validation error (see response body).
200 with error shapeFollow detail or message in body if present.

Security notes

  • Never log UAN passwords or OTPs in plain text.

Benefits

  • Automates EPF passbook-style verification for employment checks.

Next steps