Events
Events describe activity that has already happened in Mitu. Your application can receive them through webhooks to update internal records, notify customers, reconcile payments or react to wallet activity.
Every event uses the same top-level envelope. The contents of event_data depend on the event type.
Event envelope
When customer context is present, customer_id identifies the Mitu customer and customer_ref carries the reference associated with that customer in your own system.
Event categories
The main distinction is between money your business receives and money belonging to customers through Agent Wallets.
payment.* events describe payments received by your business. wallet.* events describe activity on Agent Wallets issued to customers. These are separate perspectives on money movement and should not be treated as interchangeable.
payment.completed
payment.completed is emitted when your business successfully receives a payment.
The fields present depend on the source of the payment. For example, an MCP payment can include endpoint information, while a payment created through a payment experience can include the corresponding payment resource instead.
delivered indicates whether the paid request was successfully fulfilled by your API after payment. A completed payment and successful fulfilment are separate states, so delivered: false can mean your business has received the money even though the downstream operation did not complete successfully.
See Agent payments for handling payments where settlement completed but fulfilment did not.
payment.failed
payment.failed is emitted when a payment attempt does not complete successfully.
wallet.created
wallet.created is emitted when an Agent Wallet is created for a customer.
This event describes a wallet that has come into existence. Wallet creation is idempotent, so a repeated creation request that returns an existing wallet does not raise another wallet.created event.
wallet.credited
wallet.credited is emitted when funds are credited to an Agent Wallet and become part of its available balance.
balance_after represents the balance of that Agent Wallet rather than a combined balance across every wallet belonging to the customer.
wallet.debited
wallet.debited is emitted when funds leave an Agent Wallet.
When one of your own Agent Wallet customers pays your business, a wallet.debited event describes the wallet side while payment.completed describes the payment received by your business. Treat them as separate event records representing different sides of the same movement, and use tx_hash when you need to associate the two. Their transaction_id values differ because each event identifies a record in a different system.
wallet.frozen
wallet.frozen is emitted when an Agent Wallet is frozen with Freeze a wallet. The agent’s payments from it are refused until it is unfrozen; deposits still credit.
Freezing a wallet that is already frozen does not raise another wallet.frozen event.
wallet.unfrozen
wallet.unfrozen is emitted when a frozen Agent Wallet is unfrozen and the agent may spend from it again.
Payment link events
link.created is emitted when a payment link is created and can include the reference and payer entry points associated with the link.
link.viewed can be used when your application needs to know that a hosted checkout was opened.
Invoice and subscription events
Invoices and subscriptions have their own lifecycle events so your backend can react to billing state changes without polling every resource continuously.
refund.completed, settlement.completed and customer.status.changed exist in the underlying event model but are not currently emitted. Do not build application logic that depends on an event until it is listed as supported in this documentation.
Invoice events
Every invoice event describes the invoice and who it is addressed to.
An overdue invoice can still be paid. See Invoices.
invoice.paid
invoice.paid is emitted when an invoice is paid. payment.completed is emitted for the same payment with the same event_data, with source set to invoice.