Skip to content

Account Management Protocol

Yannik Marchand edited this page Jan 18, 2022 · 14 revisions

NEX Protocols > Account Management (25)

Most methods cannot be used by normal users.

Method ID Method Name
1 CreateAccount
2 DeleteAccount
3 DisableAccount
4 ChangePassword
5 TestCapability
6 GetName
7 GetAccountData
8 GetPrivateData
9 GetPublicData
10 GetMultiplePublicData
11 UpdateAccountName
12 UpdateAccountEmail
13 UpdateCustomData
14 FindByNameRegex
15 UpdateAccountExpiryDate
16 UpdateAccountEffectiveDate
17 UpdateStatus
18 GetStatus
19 GetLastConnectionStats
20 ResetPassword
21 CreateAccountWithCustomData
22 RetrieveAccount
23 UpdateAccount
24 ChangePasswordByGuest
25 FindByNameLike
26 CustomCreateAccount
27 NintendoCreateAccount
28 LookupOrCreateAccount
29 DisconnectPrincipal
30 DisconnectAllPrincipals

(1) CreateAccount

Request

Type Name
String strPrincipalName
String strKey
Uint32 uiGroups
String strEmail

Response

Type Name
Result %retval%

(2) DeleteAccount

Request

Type Name
PID idPrincipal

Response

This method does not return anything.

(3) DisableAccount

Request

Type Name
PID idPrincipal
DateTime dtUntil
String strMessage

Response

Type Name
Result %retval%

(4) ChangePassword

Request

Type Name
String strNewKey

Response

Type Name
Bool %retval%

(5) TestCapability

Request

Type Name
Uint32 uiCapability

Response

Type Name
Bool %retval%

(6) GetName

Request

Type Name
PID idPrincipal

Response

Type Name
String strName

(7) GetAccountData

Request

This method does not take any parameters

Response

Type Name
Uint32 %retval%
AccountData oAccountData

(8) GetPrivateData

Request

This method does not take any parameters.

Response

Type Name
Bool %retval%
Data oData

(9) GetPublicData

Request

Type Name
PID idPrincipal

Response

Type Name
Bool %retval%
Data oData

(10) GetMultiplePublicData

Request

Type Name
List<PID> lstPrincipals

Response

Type Name
Bool %retval%
List<Data> oData

(11) UpdateAccountName

Request

Type Name
String strName

Response

Type Name
Result %retval%

(12) UpdateAccountEmail

Request

Type Name
String strName

Response

Type Name
Result %retval%

(13) UpdateCustomData

Request

Type Name
Data oPublicData
Data oPrivateData

Response

Type Name
Result %retval%

(14) FindByNameRegex

Request

Type Name
Uint32 uiGroups
String strRegex
ResultRange resultRange

Response

Type Name
List<BasicAccountInfo> plstAccounts

(15) UpdateAccountExpiryDate

Request

Type Name
PID idPrincipal
DateTime dtExpiry
String strExpiredMessage

Response

This method does not return anything.

(16) UpdateAccountEffectiveDate

Request

Type Name
PID idPrincipal
DateTime dtEffectiveFrom
String strNotEffectiveMessage

Response

This method does not return anything.

(17) UpdateStatus

Request

Type Name
String strStatus

Response

This method does not return anything.

(18) GetStatus

Request

Type Name
PID idPrincipal

Response

Type Name
String strStatus

(19) GetLastConnectionStats

Request

Type Name
PID idPrincipal

Response

Type Name
DateTime dtLastSessionLogin
DateTime dtLastSessionLogout
DateTime dtCurrentSessionLogin

(20) ResetPassword

Request

This method does not take any parameters.

Response

Type Name
Bool %retval%

(21) CreateAccountWithCustomData

Request

Type Name
String strPrincipalName
String strKey
Uint32 uiGroups
String strEmail
Data oPublicData
Data oPrivateData

Response

This method does not return anything.

(22) RetrieveAccount

Request

This method does not take any parameters.

Response

Type Name
AccountData oAccountData
Data oPublicData
Data oPrivateData

(23) UpdateAccount

Request

Type Name
String strKey
String strEmail
Data oPublicData
Data oPrivateData

Response

This method does not return anything.

(24) ChangePasswordByGuest

Request

Type Name
String strPrincipalName
String strEmail
String strKey

Response

This method does not return anything.

(25) FindByNameLike

Request

Type Name
Uint32 uiGroups
String strLike
ResultRange resultRange

Response

Type Name
List<BasicAccountInfo> plstAccounts

(26) CustomCreateAccount

Request

Type Name
String strPrincipalName
String strKey
Uint32 uiGroups
String strEmail
Data oAuthData

Response

Type Name
PID pid

(27) NintendoCreateAccount

Request

Type Name
String strPrincipalName
String strKey
Uint32 uiGroups
String strEmail
Data oAuthData

oAuthData is either NintendoCreateAccountData (Wii U) or AccountExtraInfo (3DS).

Response

Type Name
PID pid
String pidHMAC

(28) LookupOrCreateAccount

Request

Type Name
String strPrincipalName
String strKey
Uint32 uiGroups
String strEmail
Data oAuthData

Response

Type Name
PID pid

(29) DisconnectPrincipal

Request

Type Name
PID idPrincipal

Response

Type Name
Bool %retval%

(30) DisconnectAllPrincipals

Request

This method does not take any parameters.

Response

Type Name
Bool %retval%

Key Derivation

Some functions take a key string. This is a hex string derived from the password using the following method:

Platform Method
3DS / Wii U MD5-hash the password 65000 times
Switch MD5-hash the password once

Types

BasicAccountInfo (Structure)

Type Name
PID m_pidOwner
String m_strName

AccountData (Structure)

Type Name
PID m_pid
String m_strName
Uint32 m_uiGroups
String m_strEmail
DateTime m_dtCreationDate
DateTime m_dtEffectiveDate
String m_strNotEffectiveMsg
DateTime m_dtExpiryDate
String m_strExpiredMsg

AccountExtraInfo (Structure)

Type Description
Uint64 Unknown
Uint32 Unknown
String NEX token

NintendoCreateAccountData (Structure)

Type Description
NNAInfo NNA info
String NEX token
DateTime Birthday
Uint64 Unknown
Clone this wiki locally