An open protocol for AI agents to access financial services

Support agent-led account opening, lending, and payments with explicit customer consent and institution-defined controls

The problem

For people

Someone asks an assistant to check a balance, pay a bill, or connect an account, and the assistant drives a browser to do it. That browser runs in a datacenter and is often modified to evade CAPTCHAs and fingerprinting.

Those modifications can make a legitimate agent look malicious and get blocked. The person did nothing wrong, and their agent cannot finish the task.

For financial institutions

The institution has to know who is acting on an account, whether the customer agreed, and what they agreed to, and it has to be able to show that later. A session from a cloud browser carries none of that, so blocking it is the only defensible choice, even when it is a customer’s own agent.

Having agents announce themselves on every request does not help, because a signature any site can read is a flag any site can block on, and identity alone says nothing about consent or permissions.

Use cases

  • Banking and payments

    A person asks an assistant to check balances, download statements, or pay a bill. The bank admits the agent for those actions, with a per-transaction limit and payments only to existing payees.

  • Account linking and onboarding

    A person connects a bank account to another product, or opens a new one. The site keeps a record of the disclosures the person saw and the acknowledgements they gave before the agent acted.

  • Lending and insurance

    An agent gathers documents and completes an application on a person’s behalf. The person sees every required disclosure in their own app and acknowledges it before the agent may act, and the site keeps that record.

  • Commerce and subscriptions

    An agent buys, books, or manages a subscription for a person, and the site can tell it apart from scripted abuse of the same checkout.

Try it yourself

Your role

Open an account with Acme Bank.

aap · step 1 of 6
aap --profile site policies create \
  --origin bank.example --scopes application:write,identity:verify --max-age-days 1 \
  --data '{
  "disclosures": {
    "bundle": "onboarding-2026-09",
    "presentation": "app",
    "documents": [
      {
        "id": "terms",
        "title": "Agent access terms",
        "url": "https://bank.example/legal/agent-access-terms",
        "format": "text/html",
        "sha256": "6a32b87e9f1c04d5e8a763b2019dfc45a67e12b3980cd6f154ba8e2793d05c61",
        "render": "link"
      },
      {
        "id": "privacy",
        "title": "Privacy policy",
        "url": "https://bank.example/legal/privacy",
        "format": "text/html",
        "sha256": "b91f4c6a8023de75f19b04a86c2e730d9a65f81c4b0e39d275ac16f8e42b9307",
        "render": "link"
      }
    ],
    "acknowledgements": [
      {
        "id": "authorize",
        "text": "I authorize onboarding-assistant to use the information I provide to complete and submit an account application to Acme Bank on my behalf."
      }
    ],
    "retain": "none"
  },
  "customer_actions": [
    {
      "scope": "identity:verify",
      "mode": "complete",
      "url": "https://bank.example/agent/confirm?aap_customer_action={id}",
      "expires_in": 600
    }
  ]
}'
RESPONSE EXCERPT
{
  "object": "policy",
  "origin": "bank.example",
  "scopes": [
    "application:write",
    "identity:verify"
  ],
  "max_age_s": 86400,
  "constraints": {},
  "customer_actions": [
    {
      "scope": "identity:verify",
      "mode": "complete",
      "url": "https://bank.example/agent/confirm?aap_customer_action={id}",
      "expires_in": 600
    }
  ]
}

What the specification covers

  • Agent identity

    Operator and agent certificates under one root of trust, with a vetting level and third-party attestations.

  • Site policy

    Which agents a site admits, how far they may go, and what a person must be shown before an agent acts.

  • Permissions

    Explicit scopes for each action, with institution-defined limits on amounts, totals, counts, and payees.

  • Consent and disclosures

    Terms served to the agent’s app, the documents and acknowledgements a person must give, and where acceptance may happen.

  • User and agent intent

    The customer’s task is bound to their authorization and carried into the verified browser session.

  • Authorization

    One time-limited authorization, from the permissions and disclosures shown to the customer through acceptance, browser access, and revocation.

  • Presentation and binding

    A challenge only participating sites trigger, a header only the verifier sees, and detection that keeps running after admission.

  • Optional evidence

    Institutions can accept W3C Verifiable Credentials from identity and risk providers or an application’s own checks. Attestations are not required by the core protocol.

  • Handoff, revocation, and records

    Steps the person completes on the site, revocation by the site or the person, and a signed record kept for compliance.

Stay in the loop

Leave your email and we will write when the specification changes or there is something to test.