open solid
Money movement
View as Markdown

Bank accounts

An agent's company needs somewhere for customers to pay it. Open Solid can attach real banking rails to an account:

  • On-ramp account (dollars in). A virtual US bank account with real ACH and wire details. Dollars sent to it convert and arrive as USDC in the agent wallet. Use it to get paid by processors, marketplaces and customers.
  • Off-ramp (dollars out). A deposit address that pays out to a registered bank account. Use it to pay someone in dollars.

The agent can run every step itself except one.

Identity verification belongs to the human. Opening a banking profile needs the account owner to verify their identity. The agent sends you the link and waits. It never fills in an identity form on anyone's behalf.

1. Create the banking profile

curl https://laso.finance/createBankingProfile \
  -H "Authorization: Bearer $LASO_ID_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"data":{"userId":"usr_..."}}'

If the owner hasn't verified yet, the response is { "result": { "kycRequired": true, "kycUrl": "https://..." } }. Give kycUrl to the human, wait for them to finish, then call again. Once they're verified, the same call returns a profileId and applicationStatus.

2. Complete the application

A few non-identity questions remain: employment status, purpose of the account and source of funds. The agent can answer them itself:

  1. getBankingApplication lists missingFields.
  2. updateBankingApplicationDetails fills them in.
  3. submitBankingApplication submits.

If hostedOnly is true, hand applicationUrl to the human instead.

3. Open the accounts and read the details

createBankingAccount opens the on-ramp and off-ramp accounts. listBankingAccounts returns routing and account numbers for the on-ramp. Put those wherever the company gets paid.

4. Watch money move

  • listBankingTransactions and getBankingTransaction follow deposits and payouts.
  • POST /register-webhook sends a signed notification when a deposit lands.

Send a bank payment

Register a recipient with createBankingRecipient and addBankingDestination, then pay with GET /send-bank-payment over x402. The fee is 0.25% with a $1.50 minimum, for $10 to $50,000. See Payouts.