Tokenised and delegated payment: Stripe Shared Payment Tokens, ACP’s delegated payment, what Adyen’s and PayPal’s documents describe, Visa’s Trusted Agent Protocol and AP2’s mandates.
An AI shopping agent that places an order also has to pay for it, with a card that belongs to the shopper. Stripe, ACP and Adyen document flows in which a token, not the card number, travels from the agent to the store. Visa's Trusted Agent Protocol lets a store check a signature on the agent's requests. The Agent Payments Protocol (AP2) uses signed records of what the user approved. This article goes through what each of those documents says, who handles the card details in four of the flows, what a store owner can ask their payment provider, and what the documents leave open.
Where we explain a term in plain words, the explanation is ours, not any specification's. Everything else comes from the documents linked in the text and listed under sources.
01Card numbers, tokens and delegation
A payment service provider (PSP) is the company that processes a store's card payments. ACP's draft Payment Handlers RFC describes it as a "Service processing payment transactions (e.g., Stripe, Adyen)". PCI DSS is the card industry's security standard for systems that handle card numbers.
The same draft gives a reason to avoid passing card data: "Handlers SHOULD leverage tokenization to avoid passing PCI-sensitive data." Adyen requires an agent platform that sends it card numbers to "meet PCI DSS Level 1 compliance". AP2's specification warns that when a role in the payment is agentic, which we read as run by a language model, "the Agent itself is a potential attacker."
A token, in our words, is a stand-in value that a PSP accepts in place of the card details. Tokenisation is the act of swapping the card details for one. A network token is a substitute card number issued through the card network; ACP's released file defines its field as "Whether the number is a raw card number (fpan) or a network token". A vault token is ACP's name for what its delegated payment endpoint returns. Delegated payment, as we read ACP, means the card is handed to a PSP together with limits, and what comes back is a token that works only within them.
The title names what these designs aim for, and who touches the card on the way differs by document. In Adyen's ACP flow the shopper enters their payment details in the agent platform, which sends the card number or network token to Adyen. ACP's draft has the agent send the card to delegate_payment as a raw card number or a network token. In AP2 the Shopping Agent receives "a payment credential", and the specification is agnostic to the payment instrument. What the Stripe, ACP and Adyen documents have the agent pass to the store is a token, and Stripe's resolve step can return the raw card number (fpan) to the seller.
02Stripe Shared Payment Tokens
Stripe's Shared Payment Tokens "grant sellers scoped access to customers' payment methods for agent-initiated purchases". They come under Stripe's preview terms, and every example sends Stripe-Version: 2026-09-30.preview. Stripe's agentic commerce index says: "Availability, launch stage, and supported countries vary by integration."
The agent page tells the agent to "Use the Payment Element to securely collect payment details", a payment form Stripe provides, and to load Stripe.js from js.stripe.com "to remain PCI compliant". When the customer submits the form, the agent creates a PaymentMethod, then issues a token "using your customer's payment method and the seller's Stripe profile", with usage limits for currency, maximum amount and expiry. Per the seller page, "The agent sets the maximum amount to match the total amount of the transaction." The agent can also revoke a token it issued.
The seller page covers the other side. The seller pays with the token on a PaymentIntent, Stripe's object for one payment, and can look up "limited information about the underlying payment method, such as the card brand", the last four digits and the usage limits. A seller that uses another processor can instead resolve the token into network credentials and pass them to that processor; Stripe names the types fpan, network_token, agentic_token and dpan. "You can only resolve an SPT one time." If the seller has not given Stripe its PCI Attestation of Compliance, "Stripe must encrypt credentials that fall within PCI scope", using a public key whose private key the seller cannot access.
A Stripe Shared Payment Token (preview), message by message
2Agent to StripeIssues SharedPaymentTokenThe agent issues the token with usage and expiration limits, setting the maximum amount to the transaction total. The examples send Stripe-Version: 2026-09-30.preview.Source: Stripe docs: Shared Payment Tokens (preview)
4Seller to StripePaymentIntent with the tokenThe seller creates a PaymentIntent with the token, paying with shared_payment_granted_token.Source: Stripe docs: Shared Payment Tokens (preview)
1Seller to StripePOST …/granted_tokens/{id}/resolveInstead of steps 4–5 of the main path, a seller using another processor resolves the token to network credentials (fpan, network_token, agentic_token or dpan) and submits them to that processor. A token can be resolved only once.Source: Stripe docs: Shared Payment Tokens (preview)
Neither Stripe page mentions ACP. ACP's draft, in turn, uses Stripe as its example PSP and calls the vault token an SPT.
03ACP delegated payment
ACP's released Delegate Payment API, version 2026-04-17, defines one endpoint, POST /agentic_commerce/delegate_payment. It "Tokenizes a credential for controlled usage by the merchant's PSP per the Allowance constraints", and "Exactly one credential type is currently supported: card". The allowance has six required fields: a reason, a maximum amount in minor units (cents, for dollars), a currency, the checkout session, the merchant and an expiry. The reason is "currently only one_time". The Delegate Payment RFC, labelled Draft, says the token "MUST ONLY be usable within the provided Allowance" and "MUST become invalid at or after allowance.expires_at". The response is the vault token, with an id that begins vt_.
The released file calls the two sides client and server and does not say who sends the request. The Payment Handlers RFC, labelled Draft at version 2026-01-22, does. Its credential vaulting example reads "Agent calls delegate_payment with the Seller's PSP (Stripe) using the merchant_id", then "PSP (Stripe) creates vault token (SPT) scoped to the Seller's merchant account", "Agent submits SPT to Seller" and "Seller unwraps and uses the SPT with their PSP (Stripe)". When a handler sets requires_delegate_payment to true, the "Agent MUST call /agentic_commerce/delegate_payment before checkout completion".
Each payment handler in a checkout session also carries requires_pci_compliance. The released checkout file describes it as "Whether this handler routes PCI DSS sensitive data". The draft recommends false, and says that if it is set to true, "Seller can route requests to PCI-compliant infrastructure". In our reading, the field says whether the handler itself carries card data; it does not say which parties see it. ACP explained has a figure that tries a charge against an allowance.
04What payment providers' own documents describe
Adyen has a guide for agent platforms using ACP and one for those using UCP. The ACP page sums it up: "Adyen stores the credential and returns an ACP token that your agent passes to the merchant. The merchant uses the token to process the payment with Adyen." Its six steps start with "The shopper enters their payment details in your agent platform" and end with Adyen returning the payment result to the merchant's checkout application, as Adyen's diagram labels it. The agent platform must meet PCI DSS Level 1, pass Adyen's security review, and ask Adyen for "Access to Delegated Payment".
The UCP page has the same six steps with POST /ucp/v1/handler/tokenize and "a UCP token that is associated with the specific checkout session and merchant identifier". It asks for the security review and names no PCI DSS level. It adds: "Each merchant must independently authorize your platform to tokenize on their behalf." UCP's own checkout capability says the business "remains the Merchant of Record (MoR), and they don't need to become PCI DSS compliant to accept card payments through this Capability". The merchant of record is the party that sells to the buyer and answers for the sale. UCP explained covers that capability.
An agent payment through Adyen, with ACP and with UCP
Adyen with ACP
1Shopper to Agent platformPayment detailsWhen the agent platform checks out with ACP. Step 1 on Adyen’s ACP page: the shopper enters their payment details in the agent platform.Source: Adyen docs: agentic payments with ACP
3Adyen to Agent platformMerchant-scoped ACP tokenAdyen validates the credentials and returns a merchant-scoped ACP token.Source: Adyen docs: agentic payments with ACP
4Agent platform to MerchantACP token to checkoutThe agent platform sends the ACP token to the merchant’s checkout application.Source: Adyen docs: agentic payments with ACP
5Merchant to Adyen/payments with the ACP tokenThe merchant’s checkout application makes a /payments request including the ACP token.Source: Adyen docs: agentic payments with ACP
6Adyen to MerchantPayment resultAdyen authorizes the payment and returns the payment result to the merchant’s checkout application.Source: Adyen docs: agentic payments with ACP
Adyen with UCP
1Shopper to Agent platformPayment detailsWhen the agent platform checks out with UCP. Adyen’s UCP page has the same six steps. Step 1: the shopper enters payment details.Source: Adyen docs: agentic payments with UCP
2Agent platform to AdyenPOST /ucp/v1/handler/tokenizeThe agent platform sends the payment data to Adyen with this request, in place of delegate_payment.Source: Adyen docs: agentic payments with UCP
4Agent platform to MerchantUCP token to checkoutThe agent platform sends the UCP token to the merchant’s checkout application.Source: Adyen docs: agentic payments with UCP
5Merchant to Adyen/payments with the UCP tokenThe merchant makes a /payments request including the UCP token.Source: Adyen docs: agentic payments with UCP
6Adyen to MerchantPayment resultAdyen authorizes the payment and returns the result to the merchant checkout application.Source: Adyen docs: agentic payments with UCP
Adyen's merchant page lists separate guides: Agentic Feed API, Agentic Cart API, Google Agentic Commerce (for "payments initiated by Google AI Mode or Gemini") and Embedded Commerce. None of these three Adyen pages carries a beta, pilot or preview label.
PayPal's Agent Ready overview lists three paths. For ACP, "Delegated payment tokens through Braintree", where "Customers authorize PayPal as their payment method. Your app receives a delegated token to process transactions through Braintree." For UCP with Braintree, "Google returns a single-use payment token that you process through Braintree." For UCP with PayPal, "Google sends an encrypted Google Pay credential in the checkout session. You forward it to PayPal through the Orders v2 API for decryption and processing." PayPal's agentic commerce page says Agent Ready "enables merchants to accept payments through AI assistants with minimal changes to their current payment setup."
05Visa's Trusted Agent Protocol
Visa describes its Trusted Agent Protocol as "a verifiable, cryptographic standard to help merchants differentiate legitimate agents from nefarious bots or web crawlers". What it defines is a set of signatures on the agent's requests. "A merchant's primary task is to validate this signature", the page says, meaning a signature the agent puts on its request. The specifications page bases that header signature on RFC 9421, HTTP Message Signatures, "aligned with web-bot-auth", the IETF draft that Bots, crawlers and agents walks through. An HTTP message signature, in our words, is a signature over chosen parts of a request that the receiver can check with the sender's public key.
The agent signs at two points, the product page and the checkout page, and the tag says which: agent-browser-auth or agent-payer-auth. The figure shows Visa's two sample requests. The page publishes no version or status label.
A Visa Trusted Agent Protocol signature, field by field
Visa’s sample requests, copied from its Trusted Agent Protocol specifications page. The samples also list empty Accept and User-Agent lines, left out here. Signature-Input is one header, split over several lines here for width.
Visa’s page publishes no version or status label. It bases this header signature on RFC 9421, HTTP Message Signatures.
Which public key to check the signature with. The merchant fetches it, or uses a copy it kept.
What the source says
Visa: “The identity of the public key that will be used to verify the signature. The Merchant may have cached the public key for the keyid.” “If the public key cannot be retrieved or the public key has expired, the message should be blocked”.
When the signature stops being valid. In Visa’s samples it is an hour after created, more than the 8 minutes its checks allow, so we read the values as illustrations.
What the source says
Visa: “The timestamp of when the message request will no longer be valid”. The merchant’s checks block a message whose timestamps are more than 8 minutes apart.
A value for this session. Seeing the same one twice within 8 minutes points to a replayed request.
What the source says
Visa: “A session identifier. If there are multiple message signatures in the header, the session identifier should be the same nonce used in other message signatures.”
Which of the two moments Visa names this is: browsing a product page, or paying at checkout.
What the source says
Visa: “Will contain the value of agent-browser-auth or agent-payer-auth based on the type of interaction”. Without either tag, “the message has not been signed by a trusted agent.”
Visa: “A Dictionary Structured Field containing a message signature generated from the signature context of the target message”. “If signature validation fails, the message should be blocked.”
Visa’s sample requests, copied from its Trusted Agent Protocol specifications page. The samples also list empty Accept and User-Agent lines, left out here. Signature-Input is one header, split over several lines here for width.
Visa’s page publishes no version or status label. It bases this header signature on RFC 9421, HTTP Message Signatures.
Which public key to check the signature with. The merchant fetches it, or uses a copy it kept.
What the source says
Visa: “The identity of the public key that will be used to verify the signature. The Merchant may have cached the public key for the keyid.” “If the public key cannot be retrieved or the public key has expired, the message should be blocked”.
When the signature stops being valid. In Visa’s samples it is an hour after created, more than the 8 minutes its checks allow, so we read the values as illustrations.
What the source says
Visa: “The timestamp of when the message request will no longer be valid”. The merchant’s checks block a message whose timestamps are more than 8 minutes apart.
A value for this session. Seeing the same one twice within 8 minutes points to a replayed request.
What the source says
Visa: “A session identifier. If there are multiple message signatures in the header, the session identifier should be the same nonce used in other message signatures.”
Which of the two moments Visa names this is: browsing a product page, or paying at checkout.
What the source says
Visa: “Will contain the value of agent-browser-auth or agent-payer-auth based on the type of interaction”. Without either tag, “the message has not been signed by a trusted agent.”
Visa: “A Dictionary Structured Field containing a message signature generated from the signature context of the target message”. “If signature validation fails, the message should be blocked.”
An agent recognition signature in the message header, the one shown above, “provided both during the browsing and payment interactions”.
A signed consumer or device identity in the request body, which “is provided during the browsing interaction and may be provided during the payment interaction”.
A signed payment container in the request body, which “is intended to provide information related to the payment credentials”.
Visa lists checks “The Merchant should perform”: block the message if a required field is missing, if the timestamps are more than 8 minutes apart, if the nonce was seen in the last 8 minutes, if the key cannot be retrieved, or if the signature fails. The checks “can be performed independently by the Merchant or by a Site Protection Provider on behalf of the Merchant.”
The header signature is one of three. The other two travel in the request body: a signed consumer or device identity, and "A linked and signed payment container", which "is intended to provide information related to the payment credentials". Visa's checks for the merchant are listed under the figure. We could not reach Visa's developer page for Visa Intelligent Commerce or Mastercard's documentation for its agent payments on 2026-10-22, so this article describes neither.
06AP2: mandates with the user present and not present
The Agent Payments Protocol (AP2), which Google donated to the FIDO Alliance, works with signed authorisations. Its specification is titled "Agentic Payment Protocol (v0.2)", with no draft or final label, and the GitHub release v0.2.0 is dated 2026-04-28. "Mandates are the core means that AP2 uses to authorize agents." A mandate, in our words, is a signed record of what the user authorised, which another party can check. AP2 secures them as SD-JWTs, a signed credential format.
There are two. "The Checkout Mandate is provided by the Shopping Agent and verified by the Merchant." "The Payment Mandate is provided by the Shopping Agent and verified by the Credential Provider, Network, and Merchant Payment Processor." The Credential Provider is "the source of Payment Credentials for the purchase". "The Payment Mandate is bound to a particular Checkout using the cryptographic hash of the Checkout JWT", the checkout the merchant signed. A Trusted Surface, the screen where the user gives consent, "MUST be non-agentic", which we read as: no language model handles it.
With the user present, the user approves the closed checkout and its payment on the Trusted Surface. With the user not present, "The User sees and approves a set of constraints", and the agent "assembles and approves a closed Checkout and Payment Mandate on their behalf using these open Mandates". Those open mandates "MUST include the agent's public key as a cnf claim", which in our reading lets a verifier check that the closed mandate was signed by the agent the user approved. "Verifiers of Mandates always receive a closed Payment and Checkout Mandate, regardless of the mode."
AP2 v0.2 mandates, with the user present and not present
SA
Shopping Agent
TS
Trusted Surface
M
Merchant
CP
Credential Provider
MPP
Merchant Payment Processor
Human present
1Merchant to Shopping AgentMerchant-signed Checkout JWTThe merchant must give the shopping agent a merchant-signed JWT containing the checkout; Human Present starts once the agent has it.Source: AP2 specification (v0.2)
2Shopping Agent to Trusted SurfaceMandate content to show and signThe agent builds the Checkout and Payment Mandate content and passes it to a Trusted Surface for display to the user and signing.Source: AP2 specification (v0.2)
3Shopping Agent to Credential ProviderPayment Mandate for verificationWith the mandates signed, the agent forwards the Payment Mandate to the Credential Provider (and possibly the network). It is bound to the checkout by the hash of the Checkout JWT.Source: AP2 specification (v0.2)
4Credential Provider to Shopping AgentPayment credentialUpon successful verification the agent receives a payment credential. The spec has the Credential Provider (or, if applicable, the network) return it after receiving the Payment Mandate.Source: AP2 specification (v0.2)
5Shopping Agent to MerchantCredential + Checkout MandateThe payment credential and the Checkout Mandate go to the merchant, which checks the checkout against the one it created.Source: AP2 specification (v0.2)
6Merchant to Merchant Payment ProcessorInitiate paymentFor a merchant-initiated charge, the merchant initiates payment with its Merchant Payment Processor. If the payment method pushes funds, the merchant instead confirms the funds it received.Source: AP2 specification (v0.2)
7Merchant to Shopping AgentCheckout ReceiptOnce it has accepted or rejected the Checkout Mandate, the merchant must return a Checkout Receipt. A Payment Receipt goes to the agent, the Credential Provider and, if applicable, the network.Source: AP2 specification (v0.2)
Human not present
1Shopping Agent to Trusted SurfaceOpen mandates to authorizeTo act autonomously the agent creates open Checkout and Payment Mandate content, constraints the user approves, and has the Trusted Surface authorize it. Open mandates must carry the agent’s public key as a cnf claim.Source: AP2 specification (v0.2)
2Shopping Agent to Credential ProviderOpen + closed Payment MandateThe agent must give verifiers both the user-signed open mandate and its closed one “as described in the Direct case”, which sends the Payment Mandate first. Its verifiers are the Credential Provider and, if applicable, the network and the Merchant Payment Processor.Source: AP2 specification (v0.2)
3Shopping Agent to MerchantOpen + closed Checkout Mandate, which the agent may sign itselfThen, as in the Direct case, the Checkout Mandate goes to the merchant. The agent may sign the closed mandate with its own key instead of getting approval on a Trusted Surface; verifiers always receive closed mandates.Source: AP2 specification (v0.2)
"AP2 is agnostic to the particular payment instrument used", and it "operates as a security feature within a Commerce Protocol". It is "designed explicitly to be compatible with the Universal Commerce Protocol (UCP)". UCP's checkout page says the checkout "has to be finalized manually by the user through a trusted UI unless the AP2 Mandates extension is supported." The ACP documents we searched do not mention AP2, and the AP2 specification mentions neither ACP nor Stripe.
07Who handles the card details
Each document draws its own flow, with its own names for the parties. The figure puts four of them side by side and marks where a document says nothing.
Who handles the card details, flow by flow
Each flow is one document’s own account, kept apart from the others. Not stated means we found nothing on it in that document, not that the party never receives the card details.
Stripe’s Shared Payment Tokens docs, agent and seller pages. Stripe offers them under preview terms, and the examples send Stripe-Version: 2026-09-30.preview.
Enters payment details in the agent’s form. Stripe’s agent page says to “Use the Payment Element to securely collect payment details”.
What it sends or checks
Submits a payment method to the agent, the first arrow of Stripe’s diagram.
Agent
Card details
Not stated whether the agent’s own systems see the card number. The page says to load Stripe.js from js.stripe.com “to remain PCI compliant” and, “When the customer submits your payment form, create a PaymentMethod”.
What it sends or checks
Issues the token to the seller’s Stripe profile with a currency, a maximum amount and an expiry, and shares the token’s ID with the seller. “The agent sets the maximum amount to match the total amount of the transaction.”
Seller
Card details
Can retrieve the card brand and last four digits. Resolving the token for another processor returns network credentials. Unless the seller has given Stripe its PCI Attestation of Compliance, Stripe encrypts those in PCI scope “with a public key whose corresponding private key you can’t access.”
What it sends or checks
Pays with the token on a PaymentIntent, or resolves it for a third-party processor. “You can only resolve an SPT one time.”
Stripe
Card details
When the seller confirms a PaymentIntent with the token, Stripe sets “a new PaymentMethod cloned from the customer’s original payment method.”
What it sends or checks
Receives the agent’s request to issue the token, and processes the transaction.
ACP’s Payment Handlers RFC, labelled Draft (2026-01-22), with the Delegate Payment API of the released 2026-04-17 spec. The released file does not say who calls the endpoint; the draft does.
Not stated. The agent acquires the credential at step 4 of the draft’s flow “(via user input, wallet, etc.)”; step 1 is the agent’s POST /checkout_sessions.
What it sends or checks
Not stated. No step of the draft’s flow comes from the buyer.
Agent
Card details
Sends the credential with the allowance to delegate_payment, as a raw card number (fpan) or a network token.
What it sends or checks
Receives the vault token and submits it to the seller as payment.
Seller
Card details
Not stated directly. Each payment handler sets requires_pci_compliance, “Whether this handler processes PCI DSS sensitive data.” The draft recommends false: “Handlers SHOULD leverage tokenization to avoid passing PCI-sensitive data.”
What it sends or checks
“Seller uses vault token with their PSP to charge payment”.
PSP
Card details
Receives the credential: the draft’s example reads “Agent calls delegate_payment with the Seller’s PSP (Stripe) using the merchant_id”.
What it sends or checks
Creates the vault token, scoped to the seller’s merchant account. The Delegate Payment RFC (Draft) says it “MUST ONLY be usable within the provided Allowance”.
Adyen’s own guide for agent platforms that check out with ACP. The page carries no beta, pilot or preview label.
Enters their payment details in the agent platform.
What it sends or checks
Not stated. No later step comes from the shopper.
Agent platform
Card details
Sends the card number or network token to Adyen. Adyen’s page says “your agent platform must meet PCI DSS Level 1 compliance” and pass Adyen’s security review.
What it sends or checks
Receives a merchant-scoped ACP token and sends it to the merchant’s checkout application.
Merchant
Card details
Not stated. In Adyen’s six steps the merchant’s checkout application receives the ACP token.
What it sends or checks
Makes a /payments request with the ACP token and receives the payment result.
Adyen
Card details
Validates the credentials. “Adyen stores the credential and returns an ACP token that your agent passes to the merchant.”
What it sends or checks
Returns the ACP token to the agent platform, then authorizes the payment.
The AP2 specification, titled “Agentic Payment Protocol (v0.2)”, in its Human Present mode.
Not stated. The mode starts once the agent has the merchant’s signed checkout.
What it sends or checks
Sees the Checkout and Payment Mandate content on a Trusted Surface, a role that “MUST be non-agentic”, and signs it there.
Shopping Agent
Card details
Receives a payment credential once the Payment Mandate is verified. “AP2 is agnostic to the particular payment instrument used”, so in our reading the spec leaves open whether that credential is a card number.
What it sends or checks
Forwards the Payment Mandate to the Credential Provider, then passes the credential and the Checkout Mandate to the merchant.
Merchant
Card details
Receives the payment credential with the Checkout Mandate, and initiates payment with its processor “if a Merchant-initiated charge”.
What it sends or checks
Verifies the checkout against the one it created and returns a Checkout Receipt.
Credential Provider
Card details
Is “the source of Payment Credentials for the purchase”. It scopes the credential and returns it after it receives the Payment Mandate.
What it sends or checks
Verifies the Payment Mandate, possibly together with the network.
Merchant Payment Processor
Card details
Checks “that the Payment Credential shared by the Credential Provider has been authorized to pay for this Checkout instance.”
What it sends or checks
Verifies the Payment Mandate.
Stripe's pages have the agent collect payment details in its own form, built with Stripe's Payment Element. The agent's own access to the number is not stated, and the seller can see the card brand and last four digits, or network credentials if it resolves the token. In ACP's draft the agent sends the card to the seller's PSP, and the seller receives a vault token. In Adyen's ACP guide the agent platform sends the card number or network token to Adyen and the merchant's checkout application receives an ACP token; the guide does not say whether card data reaches the merchant. AP2 passes a payment credential to the agent and then to the merchant, and leaves its form open.
08What you can ask your payment provider
Which agent payment flows it documents for merchants, and under which protocol. Adyen's ACP and UCP guides are written for agent platforms; its merchant guides are Agentic Feed API, Agentic Cart API, Google Agentic Commerce and Embedded Commerce. PayPal lists ACP through Braintree and two UCP paths through Google Pay.
If your checkout speaks ACP: what your payment handler declares for psp, requires_delegate_payment and requires_pci_compliance, and whether your PSP answers delegate_payment itself.
On Adyen with UCP: which agent platforms your merchant account has authorised to tokenise on your behalf, since each merchant must authorise each platform.
On Stripe: whether you will pay with Shared Payment Tokens on PaymentIntents or resolve them for another processor, and, if you resolve them, whether Stripe holds your PCI Attestation of Compliance, which decides whether you receive the credentials encrypted.
Whether your bot management or site protection provider can check Visa Trusted Agent Protocol signatures. Visa says the checks "can be performed independently by the Merchant or by a Site Protection Provider on behalf of the Merchant."
If an agent platform offers AP2: which companies would act as Credential Provider and Merchant Payment Processor. The specification allows "a single entity to play multiple (or even all) of the roles".
09What is not settled
Who calls delegate_payment is stated in a Draft RFC. The released Delegate Payment file does not say, and ACP as a whole "is currently in beta".
Stripe's tokens are under preview terms, AP2 is at v0.2 with no draft or final label, and Visa's page has no version label.
Several documents are silent on parts of the flow. Stripe's agent page does not say whether the agent's own systems see the card number, and Adyen's steps do not say whether card data reaches the merchant.
The documents mostly do not refer to each other. Stripe's pages do not mention ACP or AP2, the ACP documents do not mention AP2, and AP2's specification does not mention ACP.