# Tutorial: User accounts overview The tutorials in this section demonstrate user account activities in Tilia services. They also initialize the environment variables for the tutorials that demonstrate other aspects of Tilia services. Important You must run the tutorials in this section before running requests in other Tilia demonstration collections or tutorials. These tutorials prepare the environment variables used by the other tutorials. Review the next section to find the path through these tutorials that best fits your situation. ## Choose your path through the tutorials The following table shows two paths that you can take through these tutorials: - If this is your first time running the tutorials, follow the sequence in the **Create new users** column. These tutorials demonstrate common user account tasks and create the user accounts that are used by other tutorials. - If you've run these tutorials before and: - You want to use existing user accounts or repeat a tutorial, follow the sequence in the **Recall existing users**. - You want to create new users, follow the sequence in the **Create new users** column with new usernames. | Create new users | Recall existing users | | --- | --- | | 1. [Get an access token](#get-an-access-token) | 1. [Get an access token](#get-an-access-token) | | 2. [Create new users](/tutorials/user-accounts/tutorial_user_new_users#create-new-users) | 2. [Recall existing users](/tutorials/user-accounts/tutorial_user_new_users#recall-existing-users) | | 3. [Buy tokens](/tutorials/user-accounts/tutorial_user_buy_tokens) | 3. [Get wallet info](/tutorials/user-accounts/tutorial_user_wallets#get-wallet-info), if not already set in the environment variables | | 4. [Get wallet info](/tutorials/user-accounts/tutorial_user_wallets#get-wallet-info) | 4. [View wallet balances](/tutorials/user-accounts/tutorial_user_wallets#view-wallet-balances) | | 5. [View wallet balances](/tutorials/user-accounts/tutorial_user_wallets#view-wallet-balances) | 5. [Buy tokens](/tutorials/user-accounts/tutorial_user_buy_tokens), if necessary | | 6. [Manage user account TOS and KYC](/tutorials/user-accounts/tutorial_user_tos_kyc), run all except the reset requests | 6. [Manage user account TOS and KYC](/tutorials/user-accounts/tutorial_user_tos_kyc) skip, if already set | You can always create new user accounts, if that's what you need to learn or study. However, when using existing user accounts, some of the steps are optional. This can save you some time by skipping unnecessary initialization steps. ### API operations in the user account tutorials | Tutorial | Tilia APIs demonstrated | Environment variables initialized | | --- | --- | --- | | [Manage new user accounts](/tutorials/user-accounts/tutorial_user_new_users) | | `payers_account_id``recipients_account_id``creators_account_id` | | [Buy tokens](/tutorials/user-accounts/tutorial_user_buy_tokens) | | `payers_pm``payers_pm_id` | | [View user account wallets](/tutorials/user-accounts/tutorial_user_wallets) | | `payers_wallet_id``recipients_wallet_id``creators_wallet_id` | | [Manage user account TOS and KYC](/tutorials/user-accounts/tutorial_user_tos_kyc) | [TOS and KYC](/guides/tos-and-kyc/) | N/A | ## Get an access token Get an access token for the requests in the **_Manage user accounts** collection. Each request requires an authentication header with a valid access token that has the necessary scope for the request. This request obtains an access token with the scopes required by the tutorials in the **_Manage user accounts** collection. After you've requested an access token, Postman adds the required authentication header to the subsequent requests in the collection. For more information about access tokens, visit . **To get your access token for this collection, in Postman:** 1. Near the top right of the request, above the request URL, choose the **Tilia Client Info** environment. 2. In the **_Manage user accounts** collection, in the **Start here** folder, open the **Get an access token** request, and then choose the **Body** tab. 3. In the **Body** tab, notice that the `client_id` and `client_secret` properties use the environment variables that you assigned in [Get started with the tutorials](/tutorials/tutorial_get_started). 4. Choose **Send** (to the right of the request's **URL** field) to request the access token. 5. If the request was successful: 1. The `access_token` value is saved in the **last_tilia_access_token** collection variable. 2. Review the response body. 3. Review the **Collection variables** to confirm that the **Current value** of **last_tilia_access_token** also has the token value. 6. If the request returns an error, review the response body for more information about the problem. Also, check that the correct environment is selected and that there are no errors in your Tilia developer credential values. A typical response body looks like the following. ```json { "access_token":"eyJhbGciOiJSUzUxMiIsInR5cCI6IkpXVCJ9.eyJhY2NvdW50X2lkIjoiIiwiY2xpZW50X2lkIjoiZDExMzllZDktODNhNy00NjI0LWEyYzUtMTY1MDE1YWU4NGJhIiwiZXhwIjoxNzA0MjI0MjAwLCJpYXQiOjE3MDQyMjA2MDAsImludGVncmF0b3IiOiJ0aWxpYS10ZXN0IiwianRpIjoiMDQzMWZiMWEtM2QwZi00OWJlLWE2NjktNmY3ZTU3MjA3MjQ3IiwibmJmIjowLCJzY29wZXMiOlsid3JpdGVfcmVnaXN0cmF0aW9ucyIsInJlYWRfd2FsbGV0cyIsInJlYWRfYWNjb3VudHMiLCJzZWFyY2hfYWNjb3VudHMiLCJyZWFkX2t5Y3MiXSwidG9rZW5fdHlwZSI6ImNsaWVudF9jcmVkZW50aWFscyIsInVzZXJuYW1lIjoiIn0.ywD5m03OeXfJXCyEKCjzIIM_I0ZdeT16EE79h9nRpIWisnLiHjjstaSrDdzU_DTgCZrlj59xVza7dvO7i7IuGt233DN9ye6AJTx0AnzIcLBFnPNiHxf6rHHWqHNkWkYKnUg3o6RiMHINPPFBZzXk_ARTv1Ho-UbyO9pxtp7SMsHNsnYlQXf4I48l0oxIUBTx-qTSiCnk6hPXUVjOosIZ5M1SgUUvLZfQBq3iewoEX91EvOowH9XEtuU6mW77svhGrnD2MRW1DeQmuPEHlV9cd_tjXRS-Rma0DqaTNANmL9EhhsbIxnJa6j9B8AYKhzuUn5fl10lEu9PVy6hy5aPS5Q", "token_type":"Bearer", "expires_in":3600, "scope":"write_registrations,read_wallets,read_accounts,search_accounts,read_kycs" } ``` With that, you're ready to run the rest of the requests in the collection. ### Your access token is only good for an hour In the response body of the **Get an access token** request, notice the value of the `expires_in` property. That value is the duration, in seconds, that the token is valid. In this case, the token is valid for 3,600 seconds, which is one hour. After an hour, the requests you make return a response body like the following. ```json {     "status": "Failure",  "message": [], "codes": [], "payload": {  "error": "token is expired"     } } ``` If you get this response body later, return to the collection's **Start here** folder, open the **Get access token** request, and then send it again to get a new token for the collection. ## Next steps Create or recall your user accounts in [Manage new user accounts](/tutorials/user-accounts/tutorial_user_new_users).