Skip to main content

Forget Password (T105)

Reset a forgotten password for an enterprise user account. This endpoint allows administrators to resubmit a new password for a given username, triggering an email with updated account credentials.


Endpoint Overview

PropertyValue
Interface CodeT105
Request Encrypted✅ Yes
Response Encrypted❌ No
Request Body{ "userName": "...", "changedPassword": "..." }
Response Formatnull

Flow Description

  1. Enterprise user forgets their password.
  2. Administrator submits a new password corresponding to the username via this endpoint.
  3. Server validates the request and sends account recovery information to the registered enterprise user email.
  4. User receives email with instructions to complete password reset.

🔐 Security Note: This endpoint requires encrypted requests. Ensure your KeyClient is properly initialized with symmetric key (T104) before calling.


try {
// Call T105: Forget Password
$response = $client->forgetPassword(
userName: 'admin',
changedPassword: 'TempPass123!'
);

// Response is null on success
echo "✅ Password reset request submitted\n";
echo " Check registered email for account recovery instructions\n";

} catch (\UraEfrisSdk\Exceptions\APIException $e) {
echo "❌ Password reset failed: " . $e->getMessage() . "\n";
echo " Return Code: " . $e->getReturnCode() . "\n";
}

Request Structure

{
"data": {
"content": "BASE64_ENCODED_ENCRYPTED_PAYLOAD",
"signature": "JKQWJK34K32JJEK2JQWJ5678",
"dataDescription": {
"codeType": "1",
"encryptCode": "2",
"zipCode": "0"
}
},
"globalInfo": {
"appId": "AP04",
"version": "1.1.20191201",
"dataExchangeId": "9230489223014123",
"interfaceCode": "T105",
"requestCode": "TP",
"requestTime": "2025-02-19 10:00:00",
"responseCode": "TA",
"userName": "admin",
"deviceMAC": "FFFFFFFFFFFF",
"deviceNo": "TCS9e0df01728335239",
"tin": "1000029771",
"taxpayerID": "1"
}
}

Request Fields (Encrypted Payload)

FieldRequiredTypeLengthDescription
userName✅ YesString≤200Username of the account requiring password reset
changedPassword✅ YesString≤200New password to assign to the account

⚠️ Password Requirements: Ensure the new password meets your organization's complexity policies (minimum length, special characters, etc.) before submission.


Response Structure

null

✅ A successful request returns null. Check the registered email address for account recovery instructions.


Return Codes

CodeMessageDescription
00SUCCESSPassword reset request accepted; email sent
99Unknown errorGeneric server error
06The outer message is emptyMalformed request envelope
07GlobalInfo content cannot be emptyMissing required globalInfo
11InterfaceCode cannot be emptyMissing interfaceCode in request
400Device does not existdeviceNo not registered for this TIN
402Device key expiredDevice credentials have expired; re-run T102
403Device status is abnormalDevice blocked or suspended
2779userName:cannot be empty!Missing username in request
2780userName:Byte length cannot be greater than 200!Username exceeds maximum length
2781changedPassword:cannot be empty!Missing new password in request
2782changedPassword:Byte length cannot be greater than 200!Password exceeds maximum length

💡 Tip: This endpoint is typically used in administrative workflows. End-users should be directed to a self-service portal for password recovery when available.


Common Use Cases

  1. Administrative Password Reset
    System administrators reset passwords for enterprise users who have lost access.

  2. Account Recovery Workflow
    Integrate with email/SMS systems to provide multi-factor account recovery.

  3. Bulk User Management
    Reset passwords for multiple users during organizational onboarding or security audits.

  4. Compliance & Security Audits
    Force password changes for users following security policy updates or breach investigations.


Integration Checklist

✅ Ensure symmetric key (T104) is active before calling encrypted endpoints
✅ Validate password complexity client-side before submission
✅ Log password reset requests for audit trails (never log passwords)
✅ Handle null response as success; check email delivery separately
✅ Implement retry logic for transient network errors (codes 99, 402)