# `Rapyd.Services.Wallet`
[🔗](https://github.com/iamkanishka/rapyd/blob/v1.0.0/lib/rapyd/services/wallet.ex#L1)

Rapyd Wallet — manage eWallets, contacts, virtual accounts, KYC/KYB.

Covers: Wallets, Contacts, Wallet Accounts, Transactions, Transfers,
Virtual Accounts, and Identity Verification.

# `add_funds`

```elixir
@spec add_funds(Rapyd.Client.t(), map()) :: {:ok, map()} | {:error, Rapyd.Error.t()}
```

Add funds to a wallet account (sandbox).

# `add_sandbox_funds`

```elixir
@spec add_sandbox_funds(Rapyd.Client.t(), String.t(), float(), String.t()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Add funds to a wallet in the sandbox environment.

# `change_wallet_status`

```elixir
@spec change_wallet_status(Rapyd.Client.t(), String.t(), String.t()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Change a wallet's status (enable, disable, close, delete_never_used).

# `close_virtual_account`

```elixir
@spec close_virtual_account(Rapyd.Client.t(), String.t()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Close a virtual account.

# `create_contact`

```elixir
@spec create_contact(Rapyd.Client.t(), String.t(), map()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Create a contact on a wallet.

# `create_identity_verification`

```elixir
@spec create_identity_verification(Rapyd.Client.t(), map()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Create a KYC identity verification for a wallet contact.

# `create_virtual_account`

```elixir
@spec create_virtual_account(Rapyd.Client.t(), map()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Issue a virtual bank account tied to a wallet.

# `create_wallet`

```elixir
@spec create_wallet(Rapyd.Client.t(), map()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Create a wallet.

# `delete_account_limit`

```elixir
@spec delete_account_limit(Rapyd.Client.t(), String.t()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Remove the account limit from a wallet.

# `delete_contact`

```elixir
@spec delete_contact(Rapyd.Client.t(), String.t(), String.t()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Delete a wallet contact.

# `delete_wallet`

```elixir
@spec delete_wallet(Rapyd.Client.t(), String.t()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Delete a wallet.

# `get_compliance_profile`

```elixir
@spec get_compliance_profile(Rapyd.Client.t(), String.t(), String.t()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Get the compliance profile for a wallet contact.

# `get_contact`

```elixir
@spec get_contact(Rapyd.Client.t(), String.t(), String.t()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Retrieve a wallet contact.

# `get_identity_verification`

```elixir
@spec get_identity_verification(Rapyd.Client.t(), String.t()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Retrieve a KYC identity verification.

# `get_virtual_account`

```elixir
@spec get_virtual_account(Rapyd.Client.t(), String.t()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Retrieve a virtual account.

# `get_wallet`

```elixir
@spec get_wallet(Rapyd.Client.t(), String.t()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Retrieve a wallet.

# `get_wallet_accounts`

```elixir
@spec get_wallet_accounts(Rapyd.Client.t(), String.t()) ::
  {:ok, list()} | {:error, Rapyd.Error.t()}
```

Get account balances for a wallet.

# `get_wallet_transaction`

```elixir
@spec get_wallet_transaction(Rapyd.Client.t(), String.t(), String.t()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Retrieve a single wallet transaction.

# `list_contacts`

```elixir
@spec list_contacts(Rapyd.Client.t(), String.t(), map()) ::
  {:ok, list()} | {:error, Rapyd.Error.t()}
```

List contacts on a wallet.

# `list_virtual_accounts`

```elixir
@spec list_virtual_accounts(Rapyd.Client.t(), map()) ::
  {:ok, list()} | {:error, Rapyd.Error.t()}
```

List virtual accounts.

# `list_virtual_accounts_by_wallet`

```elixir
@spec list_virtual_accounts_by_wallet(Rapyd.Client.t(), String.t()) ::
  {:ok, list()} | {:error, Rapyd.Error.t()}
```

List all virtual accounts issued to a specific wallet.

# `list_wallet_transactions`

```elixir
@spec list_wallet_transactions(Rapyd.Client.t(), String.t(), map()) ::
  {:ok, list()} | {:error, Rapyd.Error.t()}
```

List transactions on a wallet.

# `list_wallets`

```elixir
@spec list_wallets(Rapyd.Client.t(), map()) ::
  {:ok, list()} | {:error, Rapyd.Error.t()}
```

List wallets.

# `put_funds_on_hold`

```elixir
@spec put_funds_on_hold(Rapyd.Client.t(), map()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Put funds on hold in a wallet account.

# `release_funds`

```elixir
@spec release_funds(Rapyd.Client.t(), map()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Release held funds in a wallet account.

# `remove_funds`

```elixir
@spec remove_funds(Rapyd.Client.t(), map()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Remove funds from a wallet account (sandbox).

# `remove_sandbox_funds`

```elixir
@spec remove_sandbox_funds(Rapyd.Client.t(), String.t(), float(), String.t()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Remove funds from a wallet in the sandbox environment.

# `set_account_limit`

```elixir
@spec set_account_limit(Rapyd.Client.t(), String.t(), map()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Set a spending or balance limit on a wallet account.

# `set_transfer_response`

```elixir
@spec set_transfer_response(Rapyd.Client.t(), map()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Set response to a wallet-to-wallet transfer request.

# `simulate_deposit`

```elixir
@spec simulate_deposit(Rapyd.Client.t(), map()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Simulate an inbound deposit (sandbox only).

# `transfer_funds`

```elixir
@spec transfer_funds(Rapyd.Client.t(), map()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Transfer funds between two wallets.

# `update_contact`

```elixir
@spec update_contact(Rapyd.Client.t(), String.t(), String.t(), map()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Update a wallet contact.

# `update_virtual_account`

```elixir
@spec update_virtual_account(Rapyd.Client.t(), String.t(), map()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Update a virtual account.

# `update_wallet`

```elixir
@spec update_wallet(Rapyd.Client.t(), String.t(), map()) ::
  {:ok, map()} | {:error, Rapyd.Error.t()}
```

Update a wallet.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
