# Individual Wallet

Wallets allow you to hold funds of your users and the users are able to send those funds to other wallet holders within the system or externally to a receiver.&#x20;

## Integration Recommendations

This section will guide you through the API endpoints for the individual wallet use case which includes creating wallets, loading wallets, unloading wallets and creating transfers and transactions using wallets. Please note that these are recommendations for standard flow and can be customized as per your needs.&#x20;

### 1. User Registration

The first step in creating the user flow is to [register the user](/api-references/user/registration-1.md#register-a-user) in our system. Individual users need to be registered with the business field as false. Users can only be registered from the country which has been enabled for you as per your agreement with Machnet. Fields outlined as mandatory in the user object are required during registration.&#x20;

### 2. User KYC Verification

You will have to provide user information so that necessary KYC checks can be conducted on the sender. In order to run KYC on the sender, you will have to:&#x20;

1. Know what [KYC information is required for the sender](/api-references/data-population/spec-sheet.md)&#x20;
2. Collect and[ send the required information to Machnet](/api-references/user/user-kyc.md#update-kyc-information).&#x20;
3. [Initiate KYC process for the user](/api-references/user/initiate-verification.md#post-users-user_id-kyc)

User's KYC verification is conducted using the following information:&#x20;

* Name
* Date of birth
* Gender
* Address
* Email
* Phone number

Once you have submitted the information, [you check what KYC information has been provided by a user and its verification status](/api-references/user/get-verification-status.md). Each information required for KYC verification is referred to as a CIP tag and each CIP tag has their own verification status. Only when all CIP tags required for KYC verification (listed above) are verified will the KYC status of the user be verified.

### 3. User Tier Verification

Users may be placed in different tiers based on the user information (CIP tags) they provide. The tiers dictate the following limits for each user:

* Load limit: Annual, monthly and daily limit for transfers from linked bank/card to wallet
* Unload limit: Annual, monthly and daily limit for transfers from wallet to linked bank/card&#x20;
* Transfer limit: Annual, monthly and daily limit for wallet to wallet transfers
* External transaction limit: Annual, monthly and daily limit for external transactions
* Hold limit: Amount of funds that can be held in a wallet at a certain time&#x20;

The tiers, their corresponding information requirements and eligibility limits are outlined in your spec sheet. Our APIs also provide the following:&#x20;

1. [Current KYC status of the user](/api-references/user/get-verification-status.md)
2. [Current tier of the user ](/api-references/transaction-wallet/get-limits.md)
3. [Remaining transaction limits of the user in the current tier](/api-references/transaction-wallet/get-limits.md)
4. [Submitted CIP information and verification status of the user](/api-references/user/get-verification-status.md)
5. [Transaction limits per tier and corresponding CIP information for all users of the Client](/api-references/data-population/spec-sheet.md)

You can submit the additional information of the user and update existing information collected from the user using the [Update KYC information API](/api-references/user/user-kyc.md#update-kyc-information). Each time new information is submitted, make sure to [initiate KYC](/api-references/user/initiate-verification.md) on the user to ensure verification of all submitted information.&#x20;

### 4. Create a Wallet

You can [create a designated wallet](/api-references/funds/create-a-wallet.md) for a VERIFIED user to hold funds. You can view the wallet details and balances using [this API.](/api-references/funds/get-wallet-details.md) Once the wallet status is VERIFIED, users can perform wallet related transfers and transactions.

### 5. Create Wallet Transfers and Transactions&#x20;

Users can create transfers from and to wallets and also use wallets as funding sources for external transactions.&#x20;

The following are the different types of [wallet transfers that users can create](/api-references/transaction-wallet/create-transfers.md).&#x20;

1. Load: Adding funds to the wallet from a linked bank account or card.
2. Unload: Withdrawing funds from the wallet to a linked bank account or card.
3. Transfer: Send funds to another VERIFIED user's wallet.&#x20;

Along with this, users can [create external transactions using wallet as a funding source](/api-references/transaction/create-1.md). These are international remittance and business payments transactions. The user flow is the same as that outlined in the [Remittance](/use-cases/remittance.md) and [Business Payments](broken://pages/DAW945hokisNvmKTi4pV) use case section but in this particular case, the funding source will be the created wallet instead of a bank account or card.&#x20;


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://paas.docs.machnetinc.com/use-cases/individual-wallet.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
