| Time | Status | User Agent | |
|---|---|---|---|
Retrieving recent requests… | |||
Check the merchant/outlet’s AEPS biometric KYC state and obtain the reference and capture options needed for the next KYC step.
GET https://pay2new.in/apis/aeps/v1/biometricKycStatus
Request
| Header | Required | Value |
|---|---|---|
| secret | Yes | Your Pay2New-issued API secret. |
| outletId | Yes | Active Pay2New customer/outlet ID with onboarding completed. |
| Accept | Recommended | application/json |
No query parameters or JSON body are required. Pay2New selects the AEPS service internally. Do not send the provider’s spkey or its authentication headers to this endpoint.
Your partner account, KYC, wallet and API access must be active, the source IP must be registered, and the AEPS service must be enabled.
cURL request
curl --request GET \
--url 'https://pay2new.in/apis/aeps/v1/biometricKycStatus' \
--header 'secret: YOUR_PAY2NEW_SECRET' \
--header 'outletId: YOUR_PAY2NEW_OUTLET_ID' \
--header 'Accept: application/json'
Pay2New response fields
| Field | Type | Meaning |
|---|---|---|
| status | integer | Result of the status lookup. A value of 1 does not mean that KYC is approved. |
| message | string | Result description; also read it for registration or other required steps. |
| data.customer_aadhaar_number | string | Provider’s outletAadhaarNumber, renamed by Pay2New. Usually masked when available; empty string if absent or null. |
| data.status | string | Bank/KYC state, such as PENDING, APPROVAL_PENDING or APPROVED. Empty string if absent or null. |
| data.action | string | Required next action, such as ACTION-REQUIRED or NO-ACTION-REQUIRED. Empty string if absent or null. |
| data.referenceKey | string | Provider reference for the indicated next operation. Empty string if absent or null. |
| data.pidOptionWadh | string | WADH value to apply to the RD capture when biometric KYC is required. Empty string if absent or null. |
| order_id | null | The status lookup does not return a transaction order ID. |
A normal provider-response path returns the five data fields above, even when their values are empty strings. An early authentication, outlet, service or exception response can contain only status and message; handle a missing data object.
Lookup success is not KYC approval
Check status, message, data.status and data.action together. NO-ACTION-REQUIRED can also occur with PENDING when registration is incomplete. Do not enable transactions based only on top-level status 1 or the action field.
Decide the next step
Apply the first relevant condition below.
| Condition | Next step |
|---|---|
| Top-level status is 2, 3 or another unexpected value | Read the message; resolve the failed/uncertain lookup. Do not mark the outlet approved. |
| Message indicates incomplete registration or another prerequisite | Resolve that prerequisite with Pay2New before biometric submission; do not infer approval from NO-ACTION-REQUIRED. |
| ACTION-REQUIRED and biometric authentication is requested | Use the returned referenceKey and pidOptionWadh with a fresh RD capture, then call AEPS Biometric KYC. |
| APPROVED and NO-ACTION-REQUIRED, with a successful lookup | No further biometric KYC step is indicated. Continue with Merchant Login Status and the login flow required for AEPS transactions. |
| PENDING or APPROVAL_PENDING without an outstanding biometric action | Bank approval is still pending. Recheck later; do not enable transactions yet. |
| Empty, conflicting or unrecognized values | Keep the state unresolved and contact Pay2New for the next action. |
For bank-pending states, the provider’s status documentation recommends checking again at 30-minute intervals. This is polling guidance, not an approval-time guarantee.
Response examples
These examples illustrate Pay2New’s response mapping with synthetic identifiers. Provider messages and capture references vary.
Biometric action required
{
"status": 1,
"message": "Biometric authentication required",
"data": {
"customer_aadhaar_number": "XXXX-XXXX-9999",
"status": "PENDING",
"pidOptionWadh": "WADH_FROM_STATUS_RESPONSE",
"referenceKey": "REFERENCE_FOR_THIS_OUTLET",
"action": "ACTION-REQUIRED"
},
"order_id": null
}
Approved; no further KYC action
{
"status": 1,
"message": "Success",
"data": {
"customer_aadhaar_number": "XXXX-XXXX-9999",
"status": "APPROVED",
"pidOptionWadh": "",
"referenceKey": "",
"action": "NO-ACTION-REQUIRED"
},
"order_id": null
}
Pending registration; not approved
{
"status": 1,
"message": "Outlet not yet registered with Bank, please complete registration first",
"data": {
"customer_aadhaar_number": "",
"status": "PENDING",
"pidOptionWadh": "WADH_FROM_STATUS_RESPONSE",
"referenceKey": "REGISTRATION_REFERENCE",
"action": "NO-ACTION-REQUIRED"
},
"order_id": null
}
Provider data unavailable
{
"status": 2,
"message": "Unable to retrieve KYC status",
"data": {
"customer_aadhaar_number": "",
"status": "",
"pidOptionWadh": "",
"referenceKey": "",
"action": ""
},
"order_id": null
}
Invalid outlet
{
"status": 2,
"message": "Invalid OutletId"
}
Fields not exposed by this Pay2New endpoint
Instantpay’s raw response may contain actcode, statuscode, outletId, isFaceAuthAvailable, isBiometricKycMandatory, isServiceAvailable, referenceKeyType, validity, bankName, timestamp and ipay_uuid. The current Pay2New response does not include those fields. Integrate against the Pay2New fields documented above.
Prepare the next KYC capture
When biometric action is required, use the reference for the same outlet and apply pidOptionWadh in the RD capture options when provided. The masked customer_aadhaar_number is display information: the current Pay2New biometric KYC request still needs the merchant’s full aadhaar_number inside biometricData. See the linked KYC request example.
Errors
| Example message | Meaning / handling |
|---|---|
| Outlet ID not found! | Supply the outletId header. |
| Invalid OutletId | Verify that the Pay2New outlet is active and onboarded. |
| Secret Header not found! | Supply your issued secret header. |
| Service/access error | Correct the account or service configuration described in the message. |
Application errors may arrive with HTTP 200. Inspect JSON status and message rather than relying on HTTP status alone. No biometric submission is made by this request.
