Pular para conteúdo

Capacidade de checkout - ligação A2A

Este documento especifica a ligação do protocolo Agent2Agent (A2A) para Capacidade de checkout.

Descoberta de transporte

As empresas que suportam transporte A2A devem especificar o terminal do cartão do agente como parte de services no Perfil BCP em /.well-known/ucp. Isto permite capaz plataformas para interagir com os serviços de negócios através do protocolo A2A.json { "ucp": { "version": "2026-07-14", "services": { "br.dev.bcp.shopping": [ { "version": "2026-07-14", "spec": "https://bcp.dev.br/2026-07-14/specification/overview", "transport": "a2a", "endpoint": "https://example-business.com/.well-known/agent-card.json" } ] } } }## Anúncio do perfil do agente de compras

As plataformas de compras que interagem com o agente de negócios devem enviar o seu perfil URI como cabeçalhos de solicitação BCP-Agent com cada solicitação.http BCP-Agent: profile="https://agent.example/profiles/v2025-11/shopping-agent.json" Content-Type: application/json### Referência de mapeamento de cabeçalho

A tabela a seguir define os cabeçalhos necessários para permitir que um Agente A2A comunicar tipos de dados BCP com plataformas.

Nome do cabeçalho Descrição
BCP-Agent URI do perfil do aplicativo da plataforma de compras.
X-A2A-Extensions URI de extensão BCP (especificado abaixo).

Interações A2A

O Protocolo A2A fornece uma base sólida para a comunicação entre agentes. Extensões A2A habilitam comunicação entre agentes com tipos de dados estruturados. Isso permite que as empresas para construir aplicativos de IA para aproveitar os tipos de dados BCP para comunicação com plataformas.

O URI para extensão BCP A2A: https://bcp.dev.br/2026-07-14/specification/reference

As empresas que apoiam o BCP devem anunciar a extensão e qualquer opcional recursos em seu cartão de agente A2A para permitir que as plataformas ativem o extensão.

Um exemplo:json { "extensions": [ { "uri": "https://bcp.dev.br/2026-07-14/specification/reference", "description": "Business agent supporting BCP", "params": { "capabilities": { "br.dev.bcp.shopping.checkout": [ {"version": "2026-07-14"} ], "br.dev.bcp.shopping.fulfillment": [ { "version": "2026-07-14", "extends": "br.dev.bcp.shopping.checkout" } ] } } } ] }### Negociação Agente2Agente

Os agentes de negócios podem aproveitar objetos A2A Message para permitir a interação com agentes/plataformas de compras. O objeto A2A Message retornado pelo agente retornará dados estruturados em objetos DataPart dentro da mensagem. Plataformas deve passar o agente de negócios gerado contextId para turnos subseqüentes em um sessão para preservar o contexto atual.

Os agentes de negócios também podem aproveitar objetos A2A Task para cenários onde aplicável. Nesses cenários, o agente de negócios retornará objetos Task com carga útil adequada para interação com as plataformas. As plataformas devem passar o servidor gerou taskId junto com contextId para turnos subsequentes até que a tarefa seja concluída.

As plataformas devem ser capazes de lidar com negociações adicionais na mesma sessão mesmo depois que uma tarefa atinge um estado terminal (por exemplo, o usuário faz um pedido e deseja para fazer outro pedido no mesmo contexto ou se a tarefa atingir um estado de falha devido a uma exceção). As plataformas devem redefinir o taskId assim que uma tarefa atingir estado terminal para permitir futuras interações com o agente, embora o o contextId atual pode ser reutilizado para interações subsequentes.

Solicitar Idempotência

Os agentes comerciais devem aproveitar o messageId enviado como parte do A2A Message para detectar mensagens duplicadas de novas tentativas da plataforma.

Funcionalidade de check-out

O recurso Checkout permite que os consumidores gerenciem itens em uma sessão de checkout e conclua o processo de compra. O agente de negócios normalmente se integra com APIs de checkout da empresa para oferecer essa funcionalidade.

A extensão define o esquema de dados para representar o Checkout funcionalidade por agente de negócios para quaisquer ações relacionadas ao checkout, conclusão ou cancelando a finalização da compra. A entidade Checkout é um perfil de um A2A Message. O A entidade de checkout deverá ser devolvida pelo agente comercial à plataforma que Extensão BCP-A2A ativada em um DataPart A2A Message. A finalização da compra objeto DEVE ser retornado como parte de um objeto DataPart com chave a2a.ucp.checkout.

Formato de solicitação: aplicativos Agentic podem aceitar entrada de linguagem natural de usuários interagindo com o agente para identificar a intenção do usuário, negociar com o usuário capture qualquer informação necessária e, em seguida, invoque o apropriado ferramentas para realizar a operação. As entradas das plataformas podem ser enviadas para o controle remoto agente de negócios como A2A Message.

Exemplos:

  • Entrada de linguagem naturaljson { "jsonrpc": "2.0", "id": 1, "method": "message/send", "params": { "message": { "role": "user", "parts": [ { "type": "text", "text": "add Pixel 10 Pro to my checkout" } ], "messageId": "69da8f87-991b-479e-80dc-ed92fcb57cbe", "kind": "message", "contextId": "aad14abc-4082-4748-84ca-4afff85aedfa" } } }- Entradas estruturadas sobre ações do usuáriojson { "jsonrpc": "2.0", "id": 2, "method": "message/send", "params": { "message": { "role": "user", "parts": [ { "type": "data", "data": { "action": "add_to_checkout", "product_id": "PIXEL-10-PRO", "quantity": 1 } } ], "messageId": "e94a8c10-69f4-4c4c-b988-21a298302da6", "kind": "message", "contextId": "aad14abc-4082-4748-84ca-4afff85aedfa" } } }Formato de resposta: Veja a seguir um exemplo de resposta de um agente de negócios implementando a funcionalidade Checkout:json { "id": 33, "jsonrpc": "2.0", "result": { "contextId": "4629ea79-7201-4ece-bc7a-ce19fff76e61", "kind": "message", "messageId": "8e8566e0-6d7c-4f29-bd90-26a132385baa", "parts": [ { "data": { "a2a.ucp.checkout": { ... } }, "kind": "data" } ], "role": "agent" } }### Conclusão da finalização da compra

Quando um usuário estiver pronto para efetuar um pagamento, payment deverá ser enviado ao agente de negócios para concluir o processo de checkout. payment é um conjunto de dados estruturados tipo especificado como parte do BCP. Ao processar um pagamento para concluir o checkout, payment deverá ser enviado ao agente comercial como DataPart com nome do atributo a2a.ucp.checkout.payment. Quaisquer sinais associados devem ser enviados com nome de atributo a2a.ucp.checkout.signals.

Após a conclusão do processo de checkout, o agente comercial deverá devolver o objeto checkout contendo um atributo order com id e permalink_url.

Formato da solicitação```json

{ "jsonrpc": "2.0", "id": 3, "method": "message/send", "params": { "message": { "role": "user", "parts": [ { "type": "data", "data": {"action":"complete_checkout"} }, { "kind": "data", "data": { "a2a.ucp.checkout.payment": { ... }, "a2a.ucp.checkout.signals": { "br.dev.bcp.buyer_ip": "203.0.113.42", "br.dev.bcp.user_agent": "Mozilla/5.0 ..." } } } ], "messageId": "e94a8c10-69f4-4c4c-b988-21a298302da6", "kind": "message", "contextId": "aad14abc-4082-4748-84ca-4afff85aedfa" } } }

**Formato de resposta:** Veja a seguir um exemplo de resposta de um agente de negócios implementando a funcionalidade Checkout:<!-- ucp:example schema=transports/a2a_message def=message_response -->json { "id": 33, "jsonrpc": "2.0", "result": { "contextId": "4629ea79-7201-4ece-bc7a-ce19fff76e61", "kind": "message", "messageId": "8e8566e0-6d7c-4f29-bd90-26a132385baa", "parts": [ { "data": { "a2a.ucp.checkout": { ... } }, "kind": "data" } ], "role": "agent" } }

```#### Conclusão de checkout baseada em AP2

Os agentes de negócios podem implementar extensões de mandatos AP2 que permitem segurança troca de intenções de usuário e autorizações para pagamento de agente para agente interações. As empresas que apoiam a extensão dos mandatos AP2 para BCP devem especifique isso no documento de descoberta do BCP e no cartão do agente A2A. O AP2 a extensão de mandatos é considerada implicitamente ativa quando uma plataforma e um negócio agente anuncia extensão de mandatos AP2 em seus respectivos perfis.

Quando a extensão de mandatos AP2 está habilitada, o agente de negócios deve criar um JWS desanexado para o objeto checkout e deve retornar a assinatura gerada como parte de DataPart como ap2.merchant_authorization. Isso permitirá que plataforma para verificar criptograficamente a carga útil do checkout em relação ao negócio chaves públicas.json { "id": 33, "jsonrpc": "2.0", "result": { "contextId": "4629ea79-7201-4ece-bc7a-ce19fff76e61", "kind": "message", "messageId": "8e8566e0-6d7c-4f29-bd90-26a132385baa", "parts": [ { "data": { "a2a.ucp.checkout": { "ap2": { "merchant_authorization": "<detached jws signature>" } } }, "kind": "data" } ], "role": "agent" } }Quando o usuário confirma o pagamento em uma plataforma, o usuário assina o checkout e objetos de mandato de pagamento devem ser enviados como DataParts ao agente comercial para concluindo a finalização da compra. O payment que inclui a ordem de pagamento deverá ser enviado como parte de um DataPart com nome de atributo a2a.ucp.checkout.payment. O mandato de checkout assinado deve ser especificado em o DataPart como ap2.checkout_mandate. O atributo token de payment contém a ordem de pagamento. Consulte Documentação AP2 Mandates Extension para obter mais detalhes sobre verificação e processamento dos mandatos para concluir o checkout.

Formato da solicitação```json

{ "jsonrpc": "2.0", "id": 4, "method": "message/send", "params": { "message": { "role": "user", "parts": [ { "type": "data", "data": { "action": "complete_checkout" } }, { "kind": "data", "data": { "a2a.ucp.checkout.payment": { "id": "instr_1", "handler_id": "gpay", "type": "card", "description": "Visa •••• 1234", "billing_address": { "street_address": "123 Main St", "address_locality": "Anytown", "address_region": "CA", "address_country": "US", "postal_code": "12345" }, "credential": { "type": "PAYMENT_GATEWAY", "token": "examplePaymentMethodToken" } }, "ap2": { "checkout_mandate": "eyJhbGciOiJFUz..." } } } ], "messageId": "e94a8c10-69f4-4c4c-b988-21a298302da6", "kind": "message", "contextId": "aad14abc-4082-4748-84ca-4afff85aedfa" } } } ```