Skip to navigation

Issue wallets to customers

Give your customers Agent Wallets their AI agents can use to make payments on their behalf, with spending limits and approval controls you configure.
View as Markdown

Agent Wallets let you give your customers wallets that their AI agents can use to make payments on their behalf. Your business decides which customers receive wallets and configures how those wallets can be used, while the customer owns the funds.

Once a wallet is funded, the customer’s AI agent can use the available balance for permitted payments without receiving unrestricted control over the customer’s money. Customers can also have multiple wallets for different purposes, such as Travel, Office or Research.

Wallets are issued explicitly

Creating a customer or connecting them through MCP does not automatically create an Agent Wallet. You decide which customers should receive wallets and when those wallets should be issued.

Before you begin

You need a Mitu account, a server-side API key and a customer who should receive the wallet. If your customers already exist in Mitu, you can use their existing customer records rather than creating them again.

If you have not created customers yet, start with Create your first customer.

1

Identify the customer

Every Agent Wallet belongs to a customer. Use the customer’s Mitu ID when issuing the wallet so the wallet remains associated with the correct customer record.

If you manage customers through the API, keep your own customer identifier in client_reference_id so you can map the Mitu customer back to the corresponding record in your system. If customers connect through OAuth, use the customer record associated with their existing account rather than creating another customer because they started using an AI agent.

Learn more about Customers and Connect customer accounts.

2

Issue the Agent Wallet

Create a wallet for the customer and give it a name that describes how it should be used.

curl --request POST \
--url https://api.mitu.ai/v1/customers/cus_ds9hazr8jd3l/wallets \
--header "x-api-key: $MITU_API_KEY" \
--header "Content-Type: application/json" \
--data '{
"name": "Travel",
"limits": {
"per_payment": 250,
"monthly": 2000,
"approve_above": 150
}
}'

A successful response returns the wallet and its configuration.

{
"id": "wal_fc2ff966abc04de09c22",
"customer_id": "cus_ds9hazr8jd3l",
"name": "Travel",
"currency": "USDC",
"status": "active",
"frozen_at": null,
"frozen_reason": null,
"limits": {
"per_payment": 250,
"session": 0,
"daily": 0,
"monthly": 2000,
"approve_above": 150,
"currency": "USD"
}
}

Give the wallet a name that both the customer and their AI agent can understand. Names such as Travel, Office, Groceries or Research make the purpose clear and become especially useful when a customer has several wallets.

Learn more about Agent Wallets and Multiple wallets.

3

Configure spending controls

Configure the wallet’s spending controls based on how you expect the customer and their AI agent to use it. These controls let you place boundaries around agent spending without giving the agent unrestricted authority over the customer’s funds.

ControlPurpose
per_paymentControls how much can be spent on an individual payment.
sessionControls how much the agent can spend in one session.
dailyControls how much can be spent from the wallet in a UTC day.
monthlyControls how much can be spent from the wallet during a month.
approve_aboveSets the amount above which customer approval is required.

Different wallets can have different controls. A customer might have a Travel wallet designed for occasional larger purchases and an Office wallet with different limits for routine business spending.

Keep the detailed behaviour and enforcement rules in Limits and controls so your integration can rely on the current platform behaviour without duplicating those rules here.

4

Fund the wallet

The customer needs to add funds before their AI agent can spend from the wallet. Agent Wallets can be funded using supported stablecoins or local bank transfers, and the resulting balance belongs to the customer.

For stablecoin funding, use one of the addresses from Get wallet addresses and always present the network together with the address. For local currency funding, use the supported bank transfer flow available for the customer’s funding currency.

Once the funding transaction is confirmed, the wallet balance becomes available for permitted payments.

Learn more about Funding.

5

Connect the customer

Before an AI agent can use the customer’s Agent Wallets, Mitu needs to identify which customer the AI client is acting for. Customers can connect using a customer key or through your existing OAuth sign in flow.

With a customer key, the customer connects using their mcpk_... credential. With OAuth, they sign in using the account they already have with your product. In either case, the connected identity needs to resolve to the same customer that owns the wallet.

Customer authentication does not give the AI agent ownership of the wallet or its funds. It establishes which customer’s wallet capabilities can be made available during the connected session.

Learn more about MCP authentication and Connect customer accounts.

6

Make wallet capabilities available

Once the customer is connected, their AI agent can use the wallet capabilities available to that customer. These capabilities let the agent view available wallets, check balances, retrieve funding information and make supported payments.

The agent cannot create a wallet, change spending controls, withdraw the customer’s funds or use wallets belonging to another customer. If the customer has several wallets, the agent can work with the wallet appropriate for the task rather than treating all of the customer’s funds as one unrestricted balance.

For example, a customer with separate Travel and Office wallets can tell their agent which wallet should be used when a payment is required.

See Wallet tools for the current tool schemas and Multiple wallets for wallet selection behaviour.

7

Let the agent make payments

When the customer’s AI agent reaches a point where payment is required, it can use an available Agent Wallet to complete the payment on the customer’s behalf. Mitu checks the wallet and applies its configured controls before allowing the payment to proceed.

The agent does not receive wallet keys or direct control over the customer’s funds. It uses the payment capabilities made available to it, while the wallet remains under the controls configured for that customer.

If a payment requires customer approval or cannot proceed because of the wallet’s current state, the agent can surface that result to the customer and take the appropriate next action.

To build the agent-side payment flow, continue with Build agents that can pay.

8

Track wallet activity

Configure webhooks so your backend stays updated when activity occurs on a customer’s wallet. Wallet events can notify your application when a wallet is created, when funds are added and when funds are spent.

Use these events to keep your own customer experience and records in sync with Agent Wallet activity. For example, you can update a displayed balance after funding or record a payment made by the customer’s AI agent without relying on the dashboard as your only source of wallet activity.

Learn more about Webhooks and Events.

9

Retrieve the customer's wallets

You can retrieve the wallets belonging to a customer when you need to display them in your own product or check which wallets have already been issued.

curl --request GET \
--url https://api.mitu.ai/v1/customers/cus_ds9hazr8jd3l/wallets \
--header "x-api-key: $MITU_API_KEY"

The response gives you the customer’s wallets and their current configuration, allowing your application to present the wallets you have issued without maintaining a separate wallet catalogue.

Learn more about Agent Wallets.

Keep wallet ownership separate from agent access

Issuing an Agent Wallet does not mean giving an AI agent a wallet credential or unrestricted access to customer funds. The wallet belongs to the customer, while the agent receives only the capabilities it needs to make permitted payments on that customer’s behalf.

Your business decides which customers receive wallets and configures the controls that apply to them. The customer provides the funds, and Mitu applies the wallet controls when their AI agent attempts to spend.

This separation lets you add agent spending to your product without turning the AI agent itself into the custodian of the customer’s money.

Continue building