Pular para conteúdo

Referência de esquema

Esta página fornece uma referência para todos os modelos e tipos de dados de capacidade usados dentro do BCP.

Esquemas de capacidade

Cart

Nome Tipo Obrigatório Descrição
ucp any Sim Metadados BCP para respostas de cart. Não são necessários payment handlers antes do checkout.
id string Sim Identificador único do carrinho.
line_items Array[Line Item] Sim Itens de linha do carrinho. Mesma estrutura do checkout. Substituição total na atualização.
context Context Não Sinais do comprador para localização (country, region, postal_code). O lojista os usa para preço, disponibilidade e moeda. Recorre a geo-IP se omitidos.
signals Signals Não Dados de ambiente fornecidos pela plataforma para apoiar a autorização e a prevenção de abusos. Os valores NÃO DEVEM ser declarações afirmadas pelo comprador — as plataformas fornecem sinais com base em observação direta ou em atestações de terceiros verificáveis de forma independente. Todas as chaves de sinal DEVEM usar nomenclatura em domínio reverso para garantir a proveniência e prevenir colisões quando múltiplas extensões contribuem para o namespace compartilhado.
attribution Attribution Não Contexto de indicação e evento de conversão emitido pela plataforma — identificadores de campanha, IDs de clique, marcadores de source/medium, etc. Os mesmos parâmetros que as plataformas comunicam via parâmetros de consulta de URL em fluxos baseados em navegador.
buyer Buyer Não Informações opcionais do comprador para estimativas personalizadas.
currency string Sim Código de moeda ISO 4217. Determinado pelo lojista com base no contexto ou em geo-IP.
totals Totals Sim Detalhamento estimado de custos. Pode ser parcial se frete/imposto ainda não forem calculáveis.
messages Array[Message] Não Mensagens de validação, avisos ou notas informativas.
links Array[Link] Não Links opcionais do lojista (políticas, FAQs).
continue_url string Não URL para handoff do carrinho e recuperação de sessão. Habilita compartilhamento e fluxos com humano no circuito (human-in-the-loop).
expires_at string Não Timestamp de expiração do carrinho (RFC 3339). Opcional.

Catalog Lookup

Consulta de produto/variante por identificador. Suporta recuperação em lote (lookup_catalog) e detalhe de produto único (get_product).


Capability de busca no catálogo de produtos.


Checkout

Nome Tipo Obrigatório Descrição
ucp any Sim Metadados BCP para respostas de checkout.
id string Sim Identificador único da sessão de checkout.
line_items Array[Line Item] Sim Lista de itens de linha em checkout.
buyer Buyer Não Representação do comprador.
context Context Não Sinais provisórios do buyer para relevância e localização—não são dados autoritativos. Empresas DEVERIAM usar estes valores quando entradas verificadas (ex.: endereço de shipping) estiverem ausentes, e PODEM ignorá-los ou reduzir sua prioridade se inconsistentes com sinais de maior confiança (conta autenticada, detecção de risco) ou restrições regulatórias (controles de exportação). A elegibilidade e a aplicação de políticas DEVEM ocorrer no momento do checkout usando dados vinculantes da transação. O Context DEVERIA ser não identificável e pode ser divulgado progressivamente—sinais grosseiros no início, resolução mais fina à medida que a sessão avança. Dados de maior resolução (endereço de shipping, endereço de cobrança) têm precedência sobre o context.
signals Signals Não Dados de ambiente fornecidos pela plataforma para apoiar a autorização e a prevenção de abusos. Os valores NÃO DEVEM ser declarações afirmadas pelo comprador — as plataformas fornecem sinais com base em observação direta ou em atestações de terceiros verificáveis de forma independente. Todas as chaves de sinal DEVEM usar nomenclatura em domínio reverso para garantir a proveniência e prevenir colisões quando múltiplas extensões contribuem para o namespace compartilhado.
attribution Attribution Não Contexto de indicação e evento de conversão emitido pela plataforma — identificadores de campanha, IDs de clique, marcadores de source/medium, etc. Os mesmos parâmetros que as plataformas comunicam via parâmetros de consulta de URL em fluxos baseados em navegador.
status string Sim Estado do checkout indicando a fase atual e a ação requerida. Consulte a documentação do ciclo de vida de Checkout Status para detalhes de transição de estado.
Enum: incomplete, requires_escalation, ready_for_complete, complete_in_progress, completed, canceled
currency string Sim Código de moeda ISO 4217 refletindo a determinação de mercado do lojista. Derivado de address, context e geo-IP — os compradores fornecem sinais, os lojistas determinam a moeda.
totals Totals Sim Diferentes totais do carrinho.
messages Array[Message] Não Lista de mensagens com erro e informação sobre o estado da sessão de checkout.
links Array[Link] Sim Links a serem exibidos pela plataforma (Política de Privacidade, Termos de Uso). Obrigatórios para conformidade legal.
expires_at string Não Timestamp de expiração RFC 3339. O TTL padrão é de 6 horas a partir da criação, se não enviado.
continue_url string Não URL para handoff do checkout e recuperação de sessão. DEVE ser fornecida quando o status for requires_escalation. Consulte a especificação para os requisitos de formato e disponibilidade.
payment Payment Não Configuração de pagamento contendo handlers.
order Order Confirmation Não Detalhes sobre um pedido criado para esta sessão de checkout.

Order

Nome Tipo Obrigatório Descrição
ucp any Sim Metadados BCP para respostas de order. Não são necessários payment handlers após a compra.
id string Sim Identificador único do pedido.
label string Não Rótulo legível por humanos para identificar o pedido. DEVE ser fornecido apenas pela empresa.
checkout_id string Sim ID do checkout associado para conciliação.
permalink_url string Sim Permalink para acessar o pedido no site do lojista.
line_items Array[Order Line Item] Sim Itens de linha representando o que foi comprado — podem mudar após o pedido por meio de edições ou trocas.
fulfillment object Sim Dados de fulfillment: as expectativas do comprador e o que de fato ocorreu.
adjustments Array[Adjustment] Não Eventos pós-pedido (reembolsos, devoluções, créditos, disputas, cancelamentos, etc.) que existem independentemente do fulfillment.
currency string Sim Código de moeda ISO 4217. DEVE corresponder à moeda da sessão de checkout de origem.
totals Totals Sim Diferentes totais do pedido.
messages Array[Message] Não Mensagens de resultado da empresa (erros, avisos, informativas). Presentes quando a empresa precisa comunicar status ou problemas à plataforma.
attribution Attribution Não Snapshot da atribuição associada ao checkout de origem. Somente leitura no pedido.

Payment

Nome Tipo Obrigatório Descrição
instruments Array[Payment Instrument Selected Payment Instrument] Não Os instrumentos de pagamento disponíveis para este pagamento. Cada instrumento é associado a um handler específico por meio do campo handler_id. Os handlers podem estender o schema base payment_instrument para adicionar campos específicos do handler.

Esquemas de tipo

Payment Account Info

Nome Tipo Obrigatório Descrição
payment_account_reference string Não EMVCo PAR. Um identificador único que vincula um cartão de pagamento a uma conta específica, permitindo o rastreamento entre tokens (Apple Pay, cartão físico, etc).

Adjustment

Nome Tipo Obrigatório Descrição
id string Sim Identificador do evento de ajuste.
type string Sim Tipo de ajuste (string aberta). Normalmente relacionado a dinheiro, como: refund, return, credit, price_adjustment, dispute, cancellation. Pode ser qualquer valor que faça sentido para a empresa do merchant.
occurred_at string Sim Timestamp RFC 3339 de quando este ajuste ocorreu.
status string Sim Status do ajuste.
Enum: pending, completed, failed
line_items Array[object] Não Quais itens de linha e quantidades são afetados (opcional).
totals Array[Total] Não Detalhamento dos totais do ajuste. Valores com sinal - negativos para dinheiro devolvido ao buyer (reembolsos, créditos), positivos para cobranças adicionais (trocas).
description string Não Motivo ou descrição legível por humanos (ex.: 'Item defeituoso', 'Solicitado pelo cliente').

Amount

Valor monetário na menor unidade da moeda, conforme definido pela ISO 4217. Consulte o expoente da moeda para determinar a razão entre a menor e a maior unidade (ex.: 2 para BRL, 0 para JPY, 3 para KWD).


Attribution

Contexto de indicação e evento de conversão emitido pela plataforma — identificadores de campanha, IDs de clique, marcadores de source/medium, etc. Os mesmos parâmetros que as plataformas comunicam via parâmetros de consulta de URL em fluxos baseados em navegador.


Available Payment Instrument

Nome Tipo Obrigatório Descrição
type string Sim O identificador do tipo de instrumento (ex.: 'card', 'gift_card'). Referencia a constante type de um schema de instrumento.
constraints object Não Restrições sobre este tipo de instrumento. A estrutura depende do tipo de instrumento e das capabilities ativas.

Binding

Nome Tipo Obrigatório Descrição
checkout_id string Sim O identificador da sessão de checkout à qual este token está vinculado.
identity Payment Identity Não O participante ao qual este token está vinculado. Obrigatório ao agir em nome de outro participante (ex.: agente tokenizando para o merchant). Omita quando o chamador autenticado for o alvo da vinculação.

Business Fulfillment Config

Nome Tipo Obrigatório Descrição
allows_multi_destination object Não Permite múltiplos destinos por tipo de método.
allows_method_combinations Array[array] Não Combinações de tipos de método permitidas.

Buyer

Nome Tipo Obrigatório Descrição
first_name string Não Primeiro nome do buyer.
last_name string Não Sobrenome do buyer.
email string Não E-mail do buyer.
phone_number string Não Padrão E.164.

Card Credential

Nome Tipo Obrigatório Descrição
type string Sim O discriminador do tipo de credencial. Schemas específicos restringirão isto a um valor constante.
type any Sim Constant = card. O identificador do tipo de credencial para credenciais de cartão.
card_number_type string Sim O tipo do número do cartão. Network tokens são preferidos, com fallback para FPAN. Consulte PCI Scope para mais detalhes.
Enum: fpan, network_token, dpan
number string Não Número do cartão.
expiry_month integer Não O mês da data de expiração do cartão (1-12).
expiry_year integer Não O ano da data de expiração do cartão.
name string Não Nome do titular do cartão.
cvc string Não Número CVC do cartão.
cryptogram string Não Criptograma fornecido com network tokens.
eci_value string Não Electronic Commerce Indicator / Security Level Indicator fornecido com network tokens.

Card Payment Instrument

Nome Tipo Obrigatório Descrição
id string Sim Um identificador único para esta instância de instrumento, atribuído pela plataforma.
handler_id string Sim O identificador único da instância de handler que produziu este instrumento. Corresponde ao campo 'id' na definição do Payment Handler.
type string Sim A categoria ampla do instrumento (ex.: 'card', 'tokenized_card'). Schemas específicos restringirão isto a um valor constante.
billing_address Postal Address Não O endereço de cobrança associado a este método de pagamento.
credential Payment Credential Não A definição base para qualquer credencial de pagamento. Os handlers definem tipos específicos de credencial.
display object Não Informações de exibição para este instrumento de pagamento. Cada schema de instrumento de pagamento define suas propriedades de exibição específicas, conforme delineado pelo payment handler.
type string Sim Constant = card. Indica que este é um payment instrument de cartão.
display object Não Informações de exibição para este payment instrument de cartão.

Category

Nome Tipo Obrigatório Descrição
value string Sim Valor ou caminho da categoria (ex.: 'Apparel > Shirts', '1604').
taxonomy string Não Taxonomia de origem. Valores conhecidos: google_product_category, shopify, merchant.

Context

Nome Tipo Obrigatório Descrição
address_country string Não O país. Recomendado no formato ISO 3166-1 alpha-2 de 2 letras, por exemplo "BR". Para compatibilidade retroativa, um código de país ISO 3166-1 alpha-3 de 3 letras como "BRA" ou um nome completo de país como "Brasil" também pode ser usado. Dica opcional para contexto de mercado (moeda, disponibilidade, precificação)—dados de maior resolução (ex.: endereço de shipping) têm precedência sobre este valor.
address_region string Não A região na qual a localidade está, e que fica no país. Por exemplo, São Paulo ou outra divisão administrativa de primeiro nível apropriada. Dica opcional para localização progressiva—dados de maior resolução (ex.: endereço de shipping) têm precedência sobre este valor.
postal_code string Não O código postal. Por exemplo, 01310-100. Dica opcional para refinamento regional—dados de maior resolução (ex.: endereço de shipping) têm precedência sobre este valor.
intent string Não Contexto de fundo descrevendo a intenção do buyer (ex.: 'procurando um presente abaixo de R$ 50', 'preciso de algo durável para uso externo'). Informa relevância, recomendações e personalização.
language string Não Idioma preferido para o conteúdo. Use tags de idioma IETF BCP 47 (ex.: 'pt-BR', 'en', 'zh-Hans'). Para REST, equivalente ao cabeçalho Accept-Language—as plataformas DEVERIAM recorrer ao Accept-Language quando este campo estiver ausente; quando fornecido, sobrepõe o Accept-Language. Empresas PODEM retornar conteúdo em outro idioma se este estiver indisponível.
currency string Não Moeda preferida (ISO 4217, ex.: 'BRL', 'USD'). Empresas determinam a moeda de apresentação a partir do context e de sinais autoritativos; esta dica PODE informar a seleção em mercados multimoeda. Também serve como denominação para os valores de filtro de preço — as plataformas DEVERIAM incluir este campo ao enviar filtros de preço. Os preços na resposta incluem a moeda explícita confirmando a resolução.
eligibility Array[Reverse Domain Name] Não Reivindicações do buyer sobre benefícios elegíveis, como participação em programa de fidelidade, vantagens de payment instrument e similares. Reivindicações reconhecidas PODEM informar a resposta da Empresa (ex.: disponibilidade de produto exclusiva para membros, precificação ajustada no catálogo, descontos provisórios no cart ou checkout). Empresas DEVEM ignorar valores não reconhecidos sem erro. Os valores DEVEM usar nomenclatura de domínio reverso (ex.: 'com.example.loyalty_gold', 'org.school.student') e DEVEM ser não identificáveis.

Description

Nome Tipo Obrigatório Descrição
plain string Não Conteúdo em texto puro.
html string Não Conteúdo formatado em HTML. Segurança: As plataformas DEVEM sanitizar antes de renderizar—remover scripts, event handlers e elementos não confiáveis. Trate todo rich text como entrada não confiável.
markdown string Não Conteúdo formatado em Markdown.

Detail Option Value

Nome Tipo Obrigatório Descrição
available boolean Não Se uma variante que corresponde a este valor e às seleções de opção atuais pode ser comprada.
exists boolean Não Se uma variante que corresponde a este valor e às seleções de opção atuais existe no catálogo.

Error Code

Código de erro que identifica o tipo de erro. Erros padrão são definidos na especificação (ver exemplos) e têm semântica padronizada; códigos de formato livre são permitidos.


Error Response

Nome Tipo Obrigatório Descrição
ucp any Sim Metadados do protocolo BCP. O status DEVE ser 'error' para uma resposta de erro.
messages Array[Message] Sim Array de mensagens descrevendo por que a operação falhou.
continue_url string Não URL para handoff do buyer ou recuperação da sessão.

Expectation

Nome Tipo Obrigatório Descrição
id string Sim Identificador da expectativa.
line_items Array[object] Sim Quais itens de linha e quantidades estão nesta expectativa.
method_type string Sim Tipo de método de entrega (shipping, pickup, digital).
Enum: shipping, pickup, digital
destination Postal Address Sim Endereço de destino da entrega.
description string Não Descrição de entrega legível por humanos (ex.: 'Chega em 5-8 dias úteis').
fulfillable_on string Não Quando esta expectativa pode ser cumprida: 'now' ou timestamp ISO 8601 para data futura (backorder, pré-venda).

Fulfillment

Nome Tipo Obrigatório Descrição
methods Array[Fulfillment Method] Não Métodos de fulfillment para os itens do cart.
available_methods Array[Fulfillment Available Method] Não Dicas de disponibilidade de estoque.

Fulfillment Available Method

Nome Tipo Obrigatório Descrição
type string Sim Tipo de método de fulfillment ao qual esta disponibilidade se aplica.
Enum: shipping, pickup
line_item_ids Array[string] Sim Itens de linha disponíveis para este método de fulfillment.
fulfillable_on ['string', 'null'] Não 'now' para disponibilidade imediata, ou data ISO 8601 para o futuro (pré-vendas, transferências).
description string Não Informação de disponibilidade legível por humanos (ex.: 'Disponível para pickup na Loja Centro hoje').

Fulfillment Destination

This object MUST be one of the following types: Shipping Destination, Retail Location.


Fulfillment Event

Nome Tipo Obrigatório Descrição
id string Sim Identificador do evento de fulfillment.
occurred_at string Sim Timestamp RFC 3339 de quando este evento de fulfillment ocorreu.
type string Sim Tipo de evento de fulfillment. Valores comuns incluem: processing (preparando para envio), shipped (entregue à transportadora), in_transit (na rede de entrega), delivered (recebido pelo buyer), failed_attempt (tentativa de entrega falhou), canceled (fulfillment cancelado), undeliverable (não pode ser entregue), returned_to_sender (devolvido ao merchant).
line_items Array[object] Sim Quais itens de linha e quantidades são cumpridos neste evento.
tracking_number string Não Número de rastreamento da transportadora (obrigatório se type != processing).
tracking_url string Não URL para rastrear este envio (obrigatório se type != processing).
carrier string Não Nome da transportadora (ex.: 'Correios', 'Jadlog').
description string Não Descrição legível por humanos do status do envio ou informação de entrega (ex.: 'Entregue na porta da frente', 'Saiu para entrega').

Fulfillment Group

Nome Tipo Obrigatório Descrição
id string Sim Identificador do grupo para referenciar grupos gerados pelo lojista em atualizações.
line_item_ids Array[string] Sim IDs dos itens de linha incluídos neste grupo/pacote.
options Array[Fulfillment Option] Não Opções de fulfillment disponíveis para este grupo.
selected_option_id ['string', 'null'] Não ID da opção de fulfillment selecionada para este grupo.

Fulfillment Method

Nome Tipo Obrigatório Descrição
id string Sim Identificador único do método de fulfillment.
type string Sim Tipo do método de fulfillment.
Enum: shipping, pickup
line_item_ids Array[string] Sim IDs dos itens de linha atendidos por este método.
destinations Array[Fulfillment Destination] Não Destinos disponíveis. Para shipping: endereços. Para pickup: locais de retirada.
selected_destination_id ['string', 'null'] Não ID do destino selecionado.
groups Array[Fulfillment Group] Não Grupos de fulfillment para selecionar opções. O agente define selected_option_id nos grupos para escolher o método de shipping.

Fulfillment Option

Nome Tipo Obrigatório Descrição
id string Sim Identificador único da opção de fulfillment.
title string Sim Rótulo curto (ex.: 'Frete Expresso', 'Retirada no Balcão').
description string Não Contexto completo para a decisão do comprador (ex.: 'Chega entre 12 e 15 de dez via FedEx').
carrier string Não Nome da transportadora (para shipping).
earliest_fulfillment_time string Não Data mais próxima de fulfillment.
latest_fulfillment_time string Não Data mais distante de fulfillment.
totals Array[Total] Sim Detalhamento dos totais da opção de fulfillment.

Info Code

Código informativo que identifica o tipo de mensagem informativa. Os códigos padrão são definidos nas specs de capability (ver exemplos) e têm semântica padronizada; códigos de forma livre são permitidos.


Input Correlation

Nome Tipo Obrigatório Descrição
id string Sim O identificador da requisição de lookup que foi resolvido para esta variante.
match string Não Como o identificador da requisição foi resolvido para esta variante. Valores conhecidos: exact (a entrada identifica diretamente esta variante, ex.: ID da variante, SKU), featured (o servidor selecionou esta variante como representativa, ex.: ID do produto resolvido para a melhor correspondência). As empresas PODEM implementar e fornecer estratégias adicionais de resolução.

Item

Nome Tipo Obrigatório Descrição
id string Sim O identificador do produto, muitas vezes o SKU, necessário para resolver os detalhes do produto associados a este item de linha. Deveria ser reconhecido tanto pela Plataforma quanto pelo Negócio.
title string Sim Título do produto.
price Amount Sim Preço unitário em unidades menores conforme ISO 4217.
image_url string Não URI da imagem do produto.

Line Item

Nome Tipo Obrigatório Descrição
id string Sim
item Item Sim
quantity integer Sim Quantidade do item sendo comprado.
totals Array[Total] Sim Detalhamento dos totais do item de linha.
parent_id string Não Identificador do item de linha pai para quaisquer estruturas aninhadas.

Nome Tipo Obrigatório Descrição
type string Sim Tipo do link. Valores conhecidos: privacy_policy, terms_of_service, refund_policy, shipping_policy, faq. Os consumidores DEVERIAM lidar de forma tolerante com valores desconhecidos, exibindo-os por meio do campo title ou omitindo o link.
url string Sim A URL efetiva que aponta para o conteúdo a ser exibido.
title string Não Texto de exibição opcional para o link. Quando fornecido, use-o em vez de gerar a partir do type.

Media

Nome Tipo Obrigatório Descrição
type string Sim Tipo de mídia. Valores conhecidos: image, video, model_3d.
url string Sim URL do recurso de mídia.
alt_text string Não Texto de acessibilidade que descreve a mídia.
width integer Não Largura em pixels (para imagens/vídeo).
height integer Não Altura em pixels (para imagens/vídeo).

Merchant Fulfillment Config

Nome Tipo Obrigatório Descrição
allows_multi_destination object Não Permite múltiplos destinos por tipo de método.
allows_method_combinations Array[array] Não Combinações de tipos de método permitidas.

Message

This object MUST be one of the following types: Message Error, Message Warning, Message Info.


Message Error

Nome Tipo Obrigatório Descrição
type string Sim Constant = error. Discriminador do tipo de mensagem.
code Error Code Sim Código de erro que identifica o tipo de erro. Erros padrão são definidos na especificação (ver exemplos) e têm semântica padronizada; códigos de formato livre são permitidos.
path string Não JSONPath (RFC 9535) para o componente ao qual a mensagem se refere (ex.: $.items[1]).
content_type string Não Formato do conteúdo, default = plain.
Enum: plain, markdown
content string Sim Mensagem legível por humanos.
severity string Sim Reflete o estado do recurso e a ação recomendada. 'recoverable': a plataforma pode resolver modificando as entradas e repetindo via API. 'requires_buyer_input': o lojista exige informação que sua API não suporta coletar de forma programática (checkout incompleto). 'requires_buyer_review': o comprador DEVE autorizar antes da colocação do pedido devido a regras de política, regulatórias ou de elegibilidade. 'unrecoverable': não existe recurso válido sobre o qual agir; repita com novo recurso ou entradas. Erros com severidade 'requires_' contribuem para 'status: requires_escalation'.
Enum:* recoverable, requires_buyer_input, requires_buyer_review, unrecoverable

Message Info

Nome Tipo Obrigatório Descrição
type string Sim Constant = info. Discriminador do tipo de mensagem.
path string Não JSONPath (RFC 9535) para o componente ao qual a mensagem se refere.
code Info Code Não Código informativo que identifica o tipo de mensagem informativa. Os códigos padrão são definidos nas specs de capability (ver exemplos) e têm semântica padronizada; códigos de forma livre são permitidos.
content_type string Não Formato do conteúdo, default = plain.
Enum: plain, markdown
content string Sim Mensagem legível por humanos.

Message Warning

Nome Tipo Obrigatório Descrição
type string Sim Constant = warning. Discriminador do tipo de mensagem.
path string Não JSONPath (RFC 9535) para o campo relacionado (ex.: $.line_items[0]).
code Warning Code Sim Código de aviso que identifica o tipo de aviso. Códigos padrão são definidos nas specs de capabilities (veja os exemplos) e têm semântica padronizada; códigos de formato livre são permitidos.
content string Sim Mensagem de aviso legível por humanos que DEVE ser exibida.
content_type string Não Formato do conteúdo, default = plain.
Enum: plain, markdown
presentation string Não Contrato de renderização para este aviso. 'notice' (default): a plataforma DEVE exibir, PODE dispensar. 'disclosure': a plataforma DEVE exibir próximo ao componente referenciado pelo path, NÃO DEVE ocultar nem dispensar automaticamente. Ver a especificação para o contrato completo.
image_url string Não URL de um elemento visual obrigatório (ex.: símbolo de aviso, etiqueta de classe energética).
url string Não URL de referência para mais informações (ex.: site regulatório, entrada de registro, página de política).

NCM

Classificação fiscal Nomenclatura Comum do Mercosul (NCM) de um produto, 8 dígitos. Orienta o cálculo de tributos, a marcação de categoria do Imposto Seletivo e a emissão de NF-e (ex.: '33049910').

Padrão: ^[0-9]{8}$


Option Value

Nome Tipo Obrigatório Descrição
id string Não Identificador opcional atribuído pelo servidor para este valor de opção. Quando presente em um selected_option, o servidor DEVERIA usá-lo para correspondência em vez do label.
label string Sim Texto de exibição para este valor de opção (ex.: 'Pequeno', 'Azul').

Order Confirmation

Nome Tipo Obrigatório Descrição
id string Sim Identificador único do pedido.
label string Não Rótulo legível por humanos para identificar o pedido. DEVE ser fornecido apenas pela empresa.
permalink_url string Sim Permalink para acessar o pedido no site do lojista.

Order Line Item

Nome Tipo Obrigatório Descrição
id string Sim Identificador do item de linha.
item Item Sim Dados do produto (id, title, price, image_url).
quantity object Sim Rastreamento de quantidade para o item de linha.
totals Array[Total] Sim Detalhamento dos totais do item de linha.
status string Sim Status derivado: removed se quantity.total == 0, fulfilled se quantity.total > 0 e quantity.fulfilled == quantity.total, partial se quantity.total > 0 e quantity.fulfilled > 0, caso contrário processing.
Enum: processing, partial, fulfilled, removed
parent_id string Não Identificador do item de linha pai para quaisquer estruturas aninhadas.

Pagination

Paginação baseada em cursor para operações de listagem.


Payment Credential

Nome Tipo Obrigatório Descrição
type string Sim O discriminador do tipo de credencial. Schemas específicos restringirão isto a um valor constante.

Payment Identity

Nome Tipo Obrigatório Descrição
access_token string Sim Identificador único deste participante, obtido durante o onboarding com o tokenizer.

Payment Instrument

Nome Tipo Obrigatório Descrição
id string Sim Um identificador único para esta instância de instrumento, atribuído pela plataforma.
handler_id string Sim O identificador único da instância de handler que produziu este instrumento. Corresponde ao campo 'id' na definição do Payment Handler.
type string Sim A categoria ampla do instrumento (ex.: 'card', 'tokenized_card'). Schemas específicos restringirão isto a um valor constante.
billing_address Postal Address Não O endereço de cobrança associado a este método de pagamento.
credential Payment Credential Não A definição base para qualquer credencial de pagamento. Os handlers definem tipos específicos de credencial.
display object Não Informações de exibição para este instrumento de pagamento. Cada schema de instrumento de pagamento define suas propriedades de exibição específicas, conforme delineado pelo payment handler.

Platform Fulfillment Config

Nome Tipo Obrigatório Descrição
supports_multi_group boolean Não Habilita múltiplos grupos por método.

Postal Address

Nome Tipo Obrigatório Descrição
extended_address string Não Um complemento de endereço, como número de apartamento, A/C ou nome alternativo.
street_address string Não O logradouro.
address_locality string Não A localidade em que o logradouro está, e que está na região. Por exemplo, São Paulo.
address_region string Não A região em que a localidade está, e que está no país. Obrigatório para países aplicáveis (por exemplo, estado no BR, província no CA). Por exemplo, São Paulo ou outra divisão administrativa de primeiro nível apropriada.
address_country string Não O país. RECOMENDADO estar no formato ISO 3166-1 alpha-2 de 2 letras, por exemplo "BR". Para compatibilidade retroativa, também PODE ser usado um código de país ISO 3166-1 alpha-3 de 3 letras, como "BRA", ou o nome completo do país, como "Brasil".
postal_code string Não O código postal (CEP). Por exemplo, 01310-100.
first_name string Não Opcional. Nome do contato associado ao endereço.
last_name string Não Opcional. Sobrenome do contato associado ao endereço.
phone_number string Não Opcional. Número de telefone do contato associado ao endereço.

Price

Nome Tipo Obrigatório Descrição
amount Amount Sim Valor em unidades menores ISO 4217. Use 0 para itens gratuitos.
currency string Sim Código de moeda ISO 4217 (por exemplo, 'BRL', 'USD', 'EUR').

Price Filter

Nome Tipo Obrigatório Descrição
min Amount Não Preço mínimo em unidades menores ISO 4217.
max Amount Não Preço máximo em unidades menores ISO 4217.

Price Range

Nome Tipo Obrigatório Descrição
min Price Sim Preço mínimo da faixa.
max Price Sim Preço máximo da faixa.

Product

Nome Tipo Obrigatório Descrição
id string Sim ID Global (GID) que identifica exclusivamente este produto.
handle string Não Slug seguro para URL, para URLs amigáveis a SEO (por exemplo, 'blue-runner-pro'). Use id para referências de API estáveis.
title string Sim Título do produto.
description Description Sim Descrição do produto em um ou mais formatos.
url string Não URL canônica da página do produto.
categories Array[Category] Não Categorias do produto com identificadores de taxonomia opcionais.
price_range Price Range Sim Faixa de preço entre todas as variantes.
list_price_range Price Range Não Faixa de preço de tabela antes de descontos (para exibição riscada).
media Array[Media] Não Mídia do produto (imagens, vídeos, modelos 3D). O primeiro item é a mídia em destaque para as listagens.
options Array[Product Option] Não Opções do produto (Tamanho, Cor, etc.).
variants Array[Variant] Sim Variantes deste produto disponíveis para compra. O primeiro item é a variante em destaque para as listagens.
rating Rating Não Avaliação agregada do produto.
tags Array[string] Não Tags do produto para categorização e busca.
metadata object Não Dados personalizados definidos pela empresa que estendem o modelo de produto padrão.

Product Option

Nome Tipo Obrigatório Descrição
name string Sim Nome da opção (por exemplo, 'Tamanho', 'Cor').
values Array[Option Value] Sim Valores disponíveis para esta opção.

Rating

Nome Tipo Obrigatório Descrição
value number Sim Valor médio da avaliação.
scale_min number Não Valor mínimo na escala de avaliação (por exemplo, 1 para 1-5 estrelas).
scale_max number Sim Valor máximo na escala de avaliação (por exemplo, 5 para 5 estrelas).
count integer Não Número de avaliações que contribuem para a nota.

Retail Location

Nome Tipo Obrigatório Descrição
id string Sim Identificador único do local.
name string Sim Nome do local (por exemplo, nome da loja).
address Postal Address Não Endereço físico do local.

Business Returns Config

Nome Tipo Obrigatório Descrição
withdrawal_period_days integer Não Prazo de desistência em dias corridos a partir da entrega confirmada (o evento de fulfillment delivered). Os vendedores PODEM oferecer mais que o mínimo.
request_channel string Não Canal onde o consumidor exerce a devolução; DEVE incluir o mesmo canal usado para a compra. Formato livre: URL, e-mail ou identificador de canal.

Reverse Domain Name

Identificador em domínio reverso usado para namespacing seguro contra colisões de capabilities, serviços, handlers, declarações de elegibilidade e chaves contribuídas por extensões. Deve conter pelo menos dois segmentos separados por ponto (por exemplo, 'br.dev.bcp.shopping.checkout', 'com.example.loyalty_gold').

Padrão: ^[a-z][a-z0-9]*(?:\.[a-z][a-z0-9_]*)+$


Search Filters

Nome Tipo Obrigatório Descrição
categories Array[string] Não Filtra por categorias de produto (lógica OR — corresponde a produtos em qualquer das categorias listadas). Os valores correspondem ao campo value nas entradas de categoria do produto. Valores válidos podem ser descobertos a partir do campo categories nos resultados de busca, da documentação do lojista ou de taxonomias padrão às quais as empresas podem se alinhar.
price Price Filter Não Filtro de faixa de preço denominado em context.currency. Quando context.currency corresponde à moeda de apresentação, as empresas aplicam o filtro diretamente. Quando difere, as empresas DEVERIAM converter os valores do filtro para a moeda de apresentação antes de aplicar; se a conversão não for suportada, as empresas PODEM ignorar o filtro e DEVERIAM indicar isso por meio de uma mensagem. Quando context.currency está ausente, a denominação do filtro é ambígua e as empresas PODEM ignorá-lo.

Selected Option

Nome Tipo Obrigatório Descrição
name string Sim Nome da opção (por exemplo, 'Tamanho').
id string Não Identificador opcional do valor da opção, vindo de option_value.id. Quando presente, o servidor DEVERIA usá-lo para correspondência; name e label continuam obrigatórios para exibição.
label string Sim Rótulo da opção selecionada (por exemplo, 'Grande').

Shipping Destination

Nome Tipo Obrigatório Descrição
extended_address string Não Um complemento de endereço, como número de apartamento, A/C ou nome alternativo.
street_address string Não O logradouro.
address_locality string Não A localidade em que o logradouro está, e que está na região. Por exemplo, São Paulo.
address_region string Não A região em que a localidade está, e que está no país. Obrigatório para países aplicáveis (por exemplo, estado no BR, província no CA). Por exemplo, São Paulo ou outra divisão administrativa de primeiro nível apropriada.
address_country string Não O país. RECOMENDADO estar no formato ISO 3166-1 alpha-2 de 2 letras, por exemplo "BR". Para compatibilidade retroativa, também PODE ser usado um código de país ISO 3166-1 alpha-3 de 3 letras, como "BRA", ou o nome completo do país, como "Brasil".
postal_code string Não O código postal (CEP). Por exemplo, 01310-100.
first_name string Não Opcional. Nome do contato associado ao endereço.
last_name string Não Opcional. Sobrenome do contato associado ao endereço.
phone_number string Não Opcional. Número de telefone do contato associado ao endereço.
id string Sim ID específico deste destino de envio.

Signals

Nome Tipo Obrigatório Descrição
br.dev.bcp.buyer_ip string Não Endereço IP do cliente (IPv4 ou IPv6).
br.dev.bcp.user_agent string Não Cabeçalho HTTP User-Agent do cliente ou equivalente.

Signed Amount

Valor monetário na unidade menor da moeda, conforme definido pela ISO 4217. Consulte o expoente da moeda para determinar a razão entre unidade menor e maior (por exemplo, 2 para BRL, 2 para USD, 0 para JPY, 3 para KWD). Pode ser negativo — o sinal é intrínseco ao valor (por exemplo, descontos são negativos, cobranças são positivas).


Token Credential

Nome Tipo Obrigatório Descrição
type string Sim O discriminador do tipo de credencial. Schemas específicos restringirão isto a um valor constante.
type string Sim O tipo específico de token produzido pelo handler (por exemplo, 'stripe_token').
token string Sim O valor do token.

Total

Nome Tipo Obrigatório Descrição
type string Sim Categoria de custo. Valores conhecidos: subtotal, items_discount, discount, fulfillment, tax, fee, total. As empresas PODEM usar valores adicionais.
display_text string Não Texto a exibir junto ao valor. Deveria refletir o método apropriado (por exemplo, 'Frete', 'Entrega').
amount Signed Amount Sim Valor monetário na unidade menor da moeda, conforme definido pela ISO 4217. Consulte o expoente da moeda para determinar a razão entre unidade menor e maior (por exemplo, 2 para BRL, 2 para USD, 0 para JPY, 3 para KWD). Pode ser negativo — o sinal é intrínseco ao valor (por exemplo, descontos são negativos, cobranças são positivas).

Totals

Detalhamento de preços fornecido pela empresa. DEVE conter exatamente uma entrada subtotal e uma entrada total. Tipos de detalhe (tax, fee, discount, fulfillment) podem aparecer várias vezes para itemização. As plataformas DEVEM renderizar todas as entradas em ordem usando display_text e amount.


Variant

Nome Tipo Obrigatório Descrição
id string Sim ID Global (GID) que identifica exclusivamente esta variante. Usado como item.id no checkout.
sku string Não Identificador atribuído pela empresa para estoque e fulfillment.
barcodes Array[object] Não Identificadores de produto padrão da indústria para referência cruzada e correlação.
handle string Não Handle/slug da variante seguro para URL.
title string Sim Título de exibição da variante (por exemplo, 'Azul / Grande').
description Description Sim Descrição da variante em um ou mais formatos.
url string Não URL canônica da página da variante.
categories Array[Category] Não Categorias da variante com identificadores de taxonomia opcionais.
price Price Sim Preço de venda atual.
list_price Price Não Preço de tabela antes de descontos (para exibição riscada).
unit_price object Não Preço por unidade padrão de medida. PODE ser omitido quando a precificação por unidade não se aplica.
availability object Não Disponibilidade da variante para compra.
options Array[Selected Option] Não Valores de opção que definem esta variante (por exemplo, Cor: Azul, Tamanho: Grande).
media Array[Media] Não Mídia da variante (imagens, vídeos, modelos 3D). O primeiro item é a mídia em destaque para as listagens.
rating Rating Não Avaliação da variante.
tags Array[string] Não Tags da variante para categorização e busca.
metadata object Não Dados personalizados definidos pela empresa que estendem o modelo de variante padrão.
seller object Não Contexto opcional do vendedor para esta variante.

Warning Code

Código de aviso que identifica o tipo de aviso. Códigos padrão são definidos nas specs de capabilities (veja os exemplos) e têm semântica padronizada; códigos de formato livre são permitidos.


Instrumento de pagamento selecionado

Um instrumento de pagamento com estado de seleção.

Nome Tipo Obrigatório Descrição
id string Sim Um identificador único para esta instância de instrumento, atribuído pela plataforma.
handler_id string Sim O identificador único da instância de handler que produziu este instrumento. Corresponde ao campo 'id' na definição do Payment Handler.
type string Sim A categoria ampla do instrumento (ex.: 'card', 'tokenized_card'). Schemas específicos restringirão isto a um valor constante.
billing_address object Não O endereço de cobrança associado a este método de pagamento.
credential object Não A definição base para qualquer credencial de pagamento. Os handlers definem tipos específicos de credencial.
display object Não Informações de exibição para este instrumento de pagamento. Cada schema de instrumento de pagamento define suas propriedades de exibição específicas, conforme delineado pelo payment handler.
selected boolean Não Se este instrumento está selecionado pelo usuário.

Solicitação de paginação

Parâmetros de paginação para requisições.

Nome Tipo Obrigatório Descrição
cursor string Não Cursor opaco da resposta anterior.
limit integer Não Tamanho de página solicitado. As implementações PODEM limitar a um máximo menor.

Resposta de paginação

Informações de paginação nas respostas.

Nome Tipo Obrigatório Descrição
cursor string Não Cursor para buscar a próxima página de resultados. DEVE estar presente quando has_next_page for true.
has_next_page boolean Sim Se há mais resultados disponíveis.
total_count integer Não Número total de itens correspondentes, se disponível.

Código de erro

Código de erro que identifica o tipo de erro. Erros padrão são definidos na especificação (ver exemplos) e têm semântica padronizada; códigos de formato livre são permitidos.

Código de aviso

Código de aviso que identifica o tipo de aviso. Códigos padrão são definidos nas specs de capabilities (veja os exemplos) e têm semântica padronizada; códigos de formato livre são permitidos.

Código de informação

Código informativo que identifica o tipo de mensagem informativa. Os códigos padrão são definidos nas specs de capability (ver exemplos) e têm semântica padronizada; códigos de forma livre são permitidos.

Esquemas de extensão

AP2 Mandate Extension

Merchant Authorization

Assinatura JWS Detached Content (RFC 7515 Appendix F) sobre o corpo da resposta do checkout (excluindo o campo ap2). Formato: <base64url-header>..<base64url-signature>. O cabeçalho DEVE conter as claims 'alg' (ES256/ES384/ES512) e 'kid'. A assinatura cobre tanto o cabeçalho quanto o payload do checkout canonizado por JCS.

Padrão: ^[A-Za-z0-9_-]+\.\.[A-Za-z0-9_-]+$

Checkout Mandate

Credencial SD-JWT+kb em ap2.checkout_mandate. Comprova a autorização do usuário para o checkout. Contém o checkout completo, incluindo ap2.merchant_authorization.

Padrão: ^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]*\.[A-Za-z0-9_-]+(~[A-Za-z0-9_-]+)*$

Ap2 With Merchant Authorization

Dados da extensão AP2, incluindo a autorização do lojista.

Nome Tipo Obrigatório Descrição
merchant_authorization string Não Assinatura do lojista comprovando que os termos do checkout são autênticos.

Ap2 With Checkout Mandate

Dados da extensão AP2, incluindo o mandato de checkout.

Nome Tipo Obrigatório Descrição
checkout_mandate string Não SD-JWT+kb comprovando que o usuário autorizou este checkout.

Checkout with AP2 Mandate

Checkout estendido com suporte a mandato AP2.

Nome Tipo Obrigatório Descrição
ucp any Sim Metadados BCP para respostas de checkout.
id string Sim Identificador único da sessão de checkout.
line_items Array[object] Sim Lista de itens de linha em checkout.
buyer object Não Representação do comprador.
context object Não Sinais provisórios do buyer para relevância e localização—não são dados autoritativos. Empresas DEVERIAM usar estes valores quando entradas verificadas (ex.: endereço de shipping) estiverem ausentes, e PODEM ignorá-los ou reduzir sua prioridade se inconsistentes com sinais de maior confiança (conta autenticada, detecção de risco) ou restrições regulatórias (controles de exportação). A elegibilidade e a aplicação de políticas DEVEM ocorrer no momento do checkout usando dados vinculantes da transação. O Context DEVERIA ser não identificável e pode ser divulgado progressivamente—sinais grosseiros no início, resolução mais fina à medida que a sessão avança. Dados de maior resolução (endereço de shipping, endereço de cobrança) têm precedência sobre o context.
signals object Não Dados de ambiente fornecidos pela plataforma para apoiar a autorização e a prevenção de abusos. Os valores NÃO DEVEM ser declarações afirmadas pelo comprador — as plataformas fornecem sinais com base em observação direta ou em atestações de terceiros verificáveis de forma independente. Todas as chaves de sinal DEVEM usar nomenclatura em domínio reverso para garantir a proveniência e prevenir colisões quando múltiplas extensões contribuem para o namespace compartilhado.
attribution object Não Contexto de indicação e evento de conversão emitido pela plataforma — identificadores de campanha, IDs de clique, marcadores de source/medium, etc. Os mesmos parâmetros que as plataformas comunicam via parâmetros de consulta de URL em fluxos baseados em navegador.
status string Sim Estado do checkout indicando a fase atual e a ação requerida. Consulte a documentação do ciclo de vida de Checkout Status para detalhes de transição de estado.
Enum: incomplete, requires_escalation, ready_for_complete, complete_in_progress, completed, canceled
currency string Sim Código de moeda ISO 4217 refletindo a determinação de mercado do lojista. Derivado de address, context e geo-IP — os compradores fornecem sinais, os lojistas determinam a moeda.
totals Array[Total] Sim Diferentes totais do carrinho.
messages Array[object] Não Lista de mensagens com erro e informação sobre o estado da sessão de checkout.
links Array[object] Sim Links a serem exibidos pela plataforma (Política de Privacidade, Termos de Uso). Obrigatórios para conformidade legal.
expires_at string Não Timestamp de expiração RFC 3339. O TTL padrão é de 6 horas a partir da criação, se não enviado.
continue_url string Não URL para handoff do checkout e recuperação de sessão. DEVE ser fornecida quando o status for requires_escalation. Consulte a especificação para os requisitos de formato e disponibilidade.
payment object Não Configuração de pagamento contendo handlers.
order object Não Detalhes sobre um pedido criado para esta sessão de checkout.
ap2 any Não

AP2 Error Code

Códigos de erro específicos da verificação de mandato AP2.

Enum: mandate_required, agent_missing_key, mandate_invalid_signature, mandate_expired, mandate_scope_mismatch, merchant_authorization_invalid, merchant_authorization_missing


Estados de consentimento do usuário para o processamento de dados

Nome Tipo Obrigatório Descrição
analytics boolean Não Consentimento para analytics e rastreamento de desempenho.
preferences boolean Não Consentimento para armazenar as preferências do usuário.
marketing boolean Não Consentimento para comunicações de marketing.
sale_of_data boolean Não Consentimento para venda de dados a terceiros (CCPA).

Objeto buyer estendido com rastreamento de consentimento.

Nome Tipo Obrigatório Descrição
first_name string Não Primeiro nome do buyer.
last_name string Não Sobrenome do buyer.
email string Não E-mail do buyer.
phone_number string Não Padrão E.164.
consent object Não Campos de rastreamento de consentimento.

Checkout estendido com rastreamento de consentimento por meio do objeto buyer.

Nome Tipo Obrigatório Descrição
ucp any Sim Metadados BCP para respostas de checkout.
id string Sim Identificador único da sessão de checkout.
line_items Array[object] Sim Lista de itens de linha em checkout.
buyer object Não Representação do comprador.
context object Não Sinais provisórios do buyer para relevância e localização—não são dados autoritativos. Empresas DEVERIAM usar estes valores quando entradas verificadas (ex.: endereço de shipping) estiverem ausentes, e PODEM ignorá-los ou reduzir sua prioridade se inconsistentes com sinais de maior confiança (conta autenticada, detecção de risco) ou restrições regulatórias (controles de exportação). A elegibilidade e a aplicação de políticas DEVEM ocorrer no momento do checkout usando dados vinculantes da transação. O Context DEVERIA ser não identificável e pode ser divulgado progressivamente—sinais grosseiros no início, resolução mais fina à medida que a sessão avança. Dados de maior resolução (endereço de shipping, endereço de cobrança) têm precedência sobre o context.
signals object Não Dados de ambiente fornecidos pela plataforma para apoiar a autorização e a prevenção de abusos. Os valores NÃO DEVEM ser declarações afirmadas pelo comprador — as plataformas fornecem sinais com base em observação direta ou em atestações de terceiros verificáveis de forma independente. Todas as chaves de sinal DEVEM usar nomenclatura em domínio reverso para garantir a proveniência e prevenir colisões quando múltiplas extensões contribuem para o namespace compartilhado.
attribution object Não Contexto de indicação e evento de conversão emitido pela plataforma — identificadores de campanha, IDs de clique, marcadores de source/medium, etc. Os mesmos parâmetros que as plataformas comunicam via parâmetros de consulta de URL em fluxos baseados em navegador.
status string Sim Estado do checkout indicando a fase atual e a ação requerida. Consulte a documentação do ciclo de vida de Checkout Status para detalhes de transição de estado.
Enum: incomplete, requires_escalation, ready_for_complete, complete_in_progress, completed, canceled
currency string Sim Código de moeda ISO 4217 refletindo a determinação de mercado do lojista. Derivado de address, context e geo-IP — os compradores fornecem sinais, os lojistas determinam a moeda.
totals Array[Total] Sim Diferentes totais do carrinho.
messages Array[object] Não Lista de mensagens com erro e informação sobre o estado da sessão de checkout.
links Array[object] Sim Links a serem exibidos pela plataforma (Política de Privacidade, Termos de Uso). Obrigatórios para conformidade legal.
expires_at string Não Timestamp de expiração RFC 3339. O TTL padrão é de 6 horas a partir da criação, se não enviado.
continue_url string Não URL para handoff do checkout e recuperação de sessão. DEVE ser fornecida quando o status for requires_escalation. Consulte a especificação para os requisitos de formato e disponibilidade.
payment object Não Configuração de pagamento contendo handlers.
order object Não Detalhes sobre um pedido criado para esta sessão de checkout.
buyer any Não Comprador com rastreamento de consentimento.

Discount Extension

Allocation

Detalhamento de como um valor de desconto foi alocado a um alvo específico.

Nome Tipo Obrigatório Descrição
path string Sim JSONPath para o alvo da alocação (ex.: '$.line_items[0]', '$.totals.shipping').
amount integer Sim Valor alocado a este alvo em unidades menores ISO 4217.

Applied Discount

Um desconto que foi aplicado com sucesso.

Nome Tipo Obrigatório Descrição
code string Não O código de desconto. Omitido para descontos automáticos.
title string Sim Nome do desconto legível por humanos (ex.: 'Summer Sale 20% Off').
amount integer Sim Valor total do desconto em unidades menores ISO 4217.
automatic boolean Não Verdadeiro se aplicado automaticamente por regras do lojista (sem necessidade de código).
method string Não Método de alocação. 'each' = aplicado independentemente por item. 'across' = dividido proporcionalmente por valor.
Enum: each, across
priority integer Não Ordem de empilhamento para o cálculo do desconto. Números menores são aplicados primeiro (1 = primeiro).
provisional boolean Não Verdadeiro se este desconto requer verificação adicional.
eligibility string Não A claim de elegibilidade aceita pela Empresa para este desconto. Corresponde a um valor de context.eligibility. Omitida para descontos baseados em código e automáticos não relacionados a elegibilidade.
allocations Array[object] Não Detalhamento de onde este desconto foi alocado. A soma dos valores de alocação é igual ao valor total.

Discounts Object

Entrada de códigos de desconto e saída de descontos aplicados.

Nome Tipo Obrigatório Descrição
codes Array[string] Não Códigos de desconto a aplicar. Não diferencia maiúsculas de minúsculas. Substitui os códigos enviados anteriormente. Envie um array vazio para limpar.
applied Array[object] Não Descontos aplicados com sucesso (baseados em código e automáticos).

Cart with Discount

Carrinho estendido com a capability de desconto.

Nome Tipo Obrigatório Descrição
ucp any Sim Metadados BCP para respostas de cart. Não são necessários payment handlers antes do checkout.
id string Sim Identificador único do carrinho.
line_items Array[object] Sim Itens de linha do carrinho. Mesma estrutura do checkout. Substituição total na atualização.
context object Não Sinais do comprador para localização (country, region, postal_code). O lojista os usa para preço, disponibilidade e moeda. Recorre a geo-IP se omitidos.
signals object Não Dados de ambiente fornecidos pela plataforma para apoiar a autorização e a prevenção de abusos. Os valores NÃO DEVEM ser declarações afirmadas pelo comprador — as plataformas fornecem sinais com base em observação direta ou em atestações de terceiros verificáveis de forma independente. Todas as chaves de sinal DEVEM usar nomenclatura em domínio reverso para garantir a proveniência e prevenir colisões quando múltiplas extensões contribuem para o namespace compartilhado.
attribution object Não Contexto de indicação e evento de conversão emitido pela plataforma — identificadores de campanha, IDs de clique, marcadores de source/medium, etc. Os mesmos parâmetros que as plataformas comunicam via parâmetros de consulta de URL em fluxos baseados em navegador.
buyer object Não Informações opcionais do comprador para estimativas personalizadas.
currency string Sim Código de moeda ISO 4217. Determinado pelo lojista com base no contexto ou em geo-IP.
totals Array[Total] Sim Detalhamento estimado de custos. Pode ser parcial se frete/imposto ainda não forem calculáveis.
messages Array[object] Não Mensagens de validação, avisos ou notas informativas.
links Array[object] Não Links opcionais do lojista (políticas, FAQs).
continue_url string Não URL para handoff do carrinho e recuperação de sessão. Habilita compartilhamento e fluxos com humano no circuito (human-in-the-loop).
expires_at string Não Timestamp de expiração do carrinho (RFC 3339). Opcional.
discounts object Não Entrada de códigos de desconto e saída de descontos aplicados.

Checkout with Discount

Checkout estendido com a capability de desconto.

Nome Tipo Obrigatório Descrição
ucp any Sim Metadados BCP para respostas de checkout.
id string Sim Identificador único da sessão de checkout.
line_items Array[object] Sim Lista de itens de linha em checkout.
buyer object Não Representação do comprador.
context object Não Sinais provisórios do buyer para relevância e localização—não são dados autoritativos. Empresas DEVERIAM usar estes valores quando entradas verificadas (ex.: endereço de shipping) estiverem ausentes, e PODEM ignorá-los ou reduzir sua prioridade se inconsistentes com sinais de maior confiança (conta autenticada, detecção de risco) ou restrições regulatórias (controles de exportação). A elegibilidade e a aplicação de políticas DEVEM ocorrer no momento do checkout usando dados vinculantes da transação. O Context DEVERIA ser não identificável e pode ser divulgado progressivamente—sinais grosseiros no início, resolução mais fina à medida que a sessão avança. Dados de maior resolução (endereço de shipping, endereço de cobrança) têm precedência sobre o context.
signals object Não Dados de ambiente fornecidos pela plataforma para apoiar a autorização e a prevenção de abusos. Os valores NÃO DEVEM ser declarações afirmadas pelo comprador — as plataformas fornecem sinais com base em observação direta ou em atestações de terceiros verificáveis de forma independente. Todas as chaves de sinal DEVEM usar nomenclatura em domínio reverso para garantir a proveniência e prevenir colisões quando múltiplas extensões contribuem para o namespace compartilhado.
attribution object Não Contexto de indicação e evento de conversão emitido pela plataforma — identificadores de campanha, IDs de clique, marcadores de source/medium, etc. Os mesmos parâmetros que as plataformas comunicam via parâmetros de consulta de URL em fluxos baseados em navegador.
status string Sim Estado do checkout indicando a fase atual e a ação requerida. Consulte a documentação do ciclo de vida de Checkout Status para detalhes de transição de estado.
Enum: incomplete, requires_escalation, ready_for_complete, complete_in_progress, completed, canceled
currency string Sim Código de moeda ISO 4217 refletindo a determinação de mercado do lojista. Derivado de address, context e geo-IP — os compradores fornecem sinais, os lojistas determinam a moeda.
totals Array[Total] Sim Diferentes totais do carrinho.
messages Array[object] Não Lista de mensagens com erro e informação sobre o estado da sessão de checkout.
links Array[object] Sim Links a serem exibidos pela plataforma (Política de Privacidade, Termos de Uso). Obrigatórios para conformidade legal.
expires_at string Não Timestamp de expiração RFC 3339. O TTL padrão é de 6 horas a partir da criação, se não enviado.
continue_url string Não URL para handoff do checkout e recuperação de sessão. DEVE ser fornecida quando o status for requires_escalation. Consulte a especificação para os requisitos de formato e disponibilidade.
payment object Não Configuração de pagamento contendo handlers.
order object Não Detalhes sobre um pedido criado para esta sessão de checkout.
discounts object Não Entrada de códigos de desconto e saída de descontos aplicados.

Fiscal Identity Extension

Taxpayer Id

Identificador de contribuinte brasileiro do comprador (o destinatário da NF-e). Obrigatório para a emissão da nota (NF-e).

Nome Tipo Obrigatório Descrição
kind string Sim Tipo de identificador de contribuinte. Conjunto fechado espelhando a identificação do destinatário na NF-e: cpf (pessoa física), cnpj (pessoa jurídica), id_estrangeiro (comprador estrangeiro sem CPF/CNPJ; mapeia para o campo idEstrangeiro da NF-e).
Enum: cpf, cnpj, id_estrangeiro
value string Sim Valor do identificador, sem pontuação. O formato depende de kind: CPF 11 dígitos, CNPJ 14 (alfanumérico a partir de 2026), id_estrangeiro em formato livre.

Seller Identity

Identidade da empresa vendedor. DEVE estar presente em toda resposta de checkout e de order para que o consumidor possa identificar e contatar o vendedor.

Nome Tipo Obrigatório Descrição
cnpj string Sim CNPJ do vendedor, 14 caracteres, sem pontuação (alfanumérico a partir de 2026). Emissor da nota.
legal_name string Sim Razão social registrada da empresa.
address object Não Endereço físico da empresa.

Buyer with Taxpayer ID

Objeto buyer estendido com o identificador de contribuinte brasileiro.

Nome Tipo Obrigatório Descrição
first_name string Não Primeiro nome do buyer.
last_name string Não Sobrenome do buyer.
email string Não E-mail do buyer.
phone_number string Não Padrão E.164.
taxpayer_id object Não Identificador de contribuinte do comprador. Fornecido na conclusão quando uma NF-e for emitida para a venda.

Checkout with Fiscal Identity

Checkout estendido com o identificador de contribuinte do comprador e a identidade obrigatória do vendedor.

Nome Tipo Obrigatório Descrição
ucp any Sim Metadados BCP para respostas de checkout.
id string Sim Identificador único da sessão de checkout.
line_items Array[object] Sim Lista de itens de linha em checkout.
buyer object Não Representação do comprador.
context object Não Sinais provisórios do buyer para relevância e localização—não são dados autoritativos. Empresas DEVERIAM usar estes valores quando entradas verificadas (ex.: endereço de shipping) estiverem ausentes, e PODEM ignorá-los ou reduzir sua prioridade se inconsistentes com sinais de maior confiança (conta autenticada, detecção de risco) ou restrições regulatórias (controles de exportação). A elegibilidade e a aplicação de políticas DEVEM ocorrer no momento do checkout usando dados vinculantes da transação. O Context DEVERIA ser não identificável e pode ser divulgado progressivamente—sinais grosseiros no início, resolução mais fina à medida que a sessão avança. Dados de maior resolução (endereço de shipping, endereço de cobrança) têm precedência sobre o context.
signals object Não Dados de ambiente fornecidos pela plataforma para apoiar a autorização e a prevenção de abusos. Os valores NÃO DEVEM ser declarações afirmadas pelo comprador — as plataformas fornecem sinais com base em observação direta ou em atestações de terceiros verificáveis de forma independente. Todas as chaves de sinal DEVEM usar nomenclatura em domínio reverso para garantir a proveniência e prevenir colisões quando múltiplas extensões contribuem para o namespace compartilhado.
attribution object Não Contexto de indicação e evento de conversão emitido pela plataforma — identificadores de campanha, IDs de clique, marcadores de source/medium, etc. Os mesmos parâmetros que as plataformas comunicam via parâmetros de consulta de URL em fluxos baseados em navegador.
status string Sim Estado do checkout indicando a fase atual e a ação requerida. Consulte a documentação do ciclo de vida de Checkout Status para detalhes de transição de estado.
Enum: incomplete, requires_escalation, ready_for_complete, complete_in_progress, completed, canceled
currency string Sim Código de moeda ISO 4217 refletindo a determinação de mercado do lojista. Derivado de address, context e geo-IP — os compradores fornecem sinais, os lojistas determinam a moeda.
totals Array[Total] Sim Diferentes totais do carrinho.
messages Array[object] Não Lista de mensagens com erro e informação sobre o estado da sessão de checkout.
links Array[object] Sim Links a serem exibidos pela plataforma (Política de Privacidade, Termos de Uso). Obrigatórios para conformidade legal.
expires_at string Não Timestamp de expiração RFC 3339. O TTL padrão é de 6 horas a partir da criação, se não enviado.
continue_url string Não URL para handoff do checkout e recuperação de sessão. DEVE ser fornecida quando o status for requires_escalation. Consulte a especificação para os requisitos de formato e disponibilidade.
payment object Não Configuração de pagamento contendo handlers.
order object Não Detalhes sobre um pedido criado para esta sessão de checkout.
buyer any Não Comprador com identificador de contribuinte.
seller_identity object Sim Identidade da empresa vendedor. DEVE estar presente em toda resposta de checkout e de order para que o consumidor possa identificar e contatar o vendedor.

Order with Fiscal Identity

Order estendido com a identidade obrigatória do vendedor, congelando a identidade do fornecedor no registro durável da transação.

Nome Tipo Obrigatório Descrição
ucp any Sim Metadados BCP para respostas de order. Não são necessários payment handlers após a compra.
id string Sim Identificador único do pedido.
label string Não Rótulo legível por humanos para identificar o pedido. DEVE ser fornecido apenas pela empresa.
checkout_id string Sim ID do checkout associado para conciliação.
permalink_url string Sim Permalink para acessar o pedido no site do lojista.
line_items Array[object] Sim Itens de linha representando o que foi comprado — podem mudar após o pedido por meio de edições ou trocas.
fulfillment object Sim Dados de fulfillment: as expectativas do comprador e o que de fato ocorreu.
adjustments Array[object] Não Eventos pós-pedido (reembolsos, devoluções, créditos, disputas, cancelamentos, etc.) que existem independentemente do fulfillment.
currency string Sim Código de moeda ISO 4217. DEVE corresponder à moeda da sessão de checkout de origem.
totals Array[Total] Sim Diferentes totais do pedido.
messages Array[object] Não Mensagens de resultado da empresa (erros, avisos, informativas). Presentes quando a empresa precisa comunicar status ou problemas à plataforma.
attribution object Não Snapshot da atribuição associada ao checkout de origem. Somente leitura no pedido.
seller_identity object Sim Identidade da empresa vendedor. DEVE estar presente em toda resposta de checkout e de order para que o consumidor possa identificar e contatar o vendedor.

Fulfillment Extension

Fulfillment Option

Uma opção de fulfillment dentro de um grupo (ex.: Frete Padrão R$ 5, Expresso R$ 15).

Nome Tipo Obrigatório Descrição
id string Sim Identificador único da opção de fulfillment.
title string Sim Rótulo curto (ex.: 'Frete Expresso', 'Retirada no Balcão').
description string Não Contexto completo para a decisão do comprador (ex.: 'Chega entre 12 e 15 de dez via FedEx').
carrier string Não Nome da transportadora (para shipping).
earliest_fulfillment_time string Não Data mais próxima de fulfillment.
latest_fulfillment_time string Não Data mais distante de fulfillment.
totals Array[object] Sim Detalhamento dos totais da opção de fulfillment.

Fulfillment Group

Um pacote/grupo de itens de linha gerado pelo lojista, com opções de fulfillment.

Nome Tipo Obrigatório Descrição
id string Sim Identificador do grupo para referenciar grupos gerados pelo lojista em atualizações.
line_item_ids Array[string] Sim IDs dos itens de linha incluídos neste grupo/pacote.
options Array[object] Não Opções de fulfillment disponíveis para este grupo.
selected_option_id ['string', 'null'] Não ID da opção de fulfillment selecionada para este grupo.

Fulfillment Method

Um método de fulfillment (shipping ou pickup) com destinos e grupos.

Nome Tipo Obrigatório Descrição
id string Sim Identificador único do método de fulfillment.
type string Sim Tipo do método de fulfillment.
Enum: shipping, pickup
line_item_ids Array[string] Sim IDs dos itens de linha atendidos por este método.
destinations Array[object] Não Destinos disponíveis. Para shipping: endereços. Para pickup: locais de retirada.
selected_destination_id ['string', 'null'] Não ID do destino selecionado.
groups Array[object] Não Grupos de fulfillment para selecionar opções. O agente define selected_option_id nos grupos para escolher o método de shipping.

Fulfillment Available Method

Dica de disponibilidade de estoque para um tipo de método de fulfillment.

Nome Tipo Obrigatório Descrição
type string Sim Tipo de método de fulfillment ao qual esta disponibilidade se aplica.
Enum: shipping, pickup
line_item_ids Array[string] Sim Itens de linha disponíveis para este método de fulfillment.
fulfillable_on ['string', 'null'] Não 'now' para disponibilidade imediata, ou data ISO 8601 para o futuro (pré-vendas, transferências).
description string Não Informação de disponibilidade legível por humanos (ex.: 'Disponível para pickup na Loja Centro hoje').

Fulfillment

Contêiner para métodos de fulfillment e disponibilidade.

Nome Tipo Obrigatório Descrição
methods Array[object] Não Métodos de fulfillment para os itens do cart.
available_methods Array[object] Não Dicas de disponibilidade de estoque.

Checkout with Fulfillment

Checkout estendido com fulfillment hierárquico.

Nome Tipo Obrigatório Descrição
ucp any Sim Metadados BCP para respostas de checkout.
id string Sim Identificador único da sessão de checkout.
line_items Array[object] Sim Lista de itens de linha em checkout.
buyer object Não Representação do comprador.
context object Não Sinais provisórios do buyer para relevância e localização—não são dados autoritativos. Empresas DEVERIAM usar estes valores quando entradas verificadas (ex.: endereço de shipping) estiverem ausentes, e PODEM ignorá-los ou reduzir sua prioridade se inconsistentes com sinais de maior confiança (conta autenticada, detecção de risco) ou restrições regulatórias (controles de exportação). A elegibilidade e a aplicação de políticas DEVEM ocorrer no momento do checkout usando dados vinculantes da transação. O Context DEVERIA ser não identificável e pode ser divulgado progressivamente—sinais grosseiros no início, resolução mais fina à medida que a sessão avança. Dados de maior resolução (endereço de shipping, endereço de cobrança) têm precedência sobre o context.
signals object Não Dados de ambiente fornecidos pela plataforma para apoiar a autorização e a prevenção de abusos. Os valores NÃO DEVEM ser declarações afirmadas pelo comprador — as plataformas fornecem sinais com base em observação direta ou em atestações de terceiros verificáveis de forma independente. Todas as chaves de sinal DEVEM usar nomenclatura em domínio reverso para garantir a proveniência e prevenir colisões quando múltiplas extensões contribuem para o namespace compartilhado.
attribution object Não Contexto de indicação e evento de conversão emitido pela plataforma — identificadores de campanha, IDs de clique, marcadores de source/medium, etc. Os mesmos parâmetros que as plataformas comunicam via parâmetros de consulta de URL em fluxos baseados em navegador.
status string Sim Estado do checkout indicando a fase atual e a ação requerida. Consulte a documentação do ciclo de vida de Checkout Status para detalhes de transição de estado.
Enum: incomplete, requires_escalation, ready_for_complete, complete_in_progress, completed, canceled
currency string Sim Código de moeda ISO 4217 refletindo a determinação de mercado do lojista. Derivado de address, context e geo-IP — os compradores fornecem sinais, os lojistas determinam a moeda.
totals Array[Total] Sim Diferentes totais do carrinho.
messages Array[object] Não Lista de mensagens com erro e informação sobre o estado da sessão de checkout.
links Array[object] Sim Links a serem exibidos pela plataforma (Política de Privacidade, Termos de Uso). Obrigatórios para conformidade legal.
expires_at string Não Timestamp de expiração RFC 3339. O TTL padrão é de 6 horas a partir da criação, se não enviado.
continue_url string Não URL para handoff do checkout e recuperação de sessão. DEVE ser fornecida quando o status for requires_escalation. Consulte a especificação para os requisitos de formato e disponibilidade.
payment object Não Configuração de pagamento contendo handlers.
order object Não Detalhes sobre um pedido criado para esta sessão de checkout.
fulfillment object Não Detalhes de fulfillment.

Br.Dev.Bcp.Shopping.Fulfillment

Nenhuma propriedade definida.


NF-e Extension

Nfe

Referência ao documento fiscal emitido: apenas os identificadores do documento.

Nome Tipo Obrigatório Descrição
access_key string Sim Chave de acesso da NF-e, 44 dígitos. Identifica o documento de forma única na SEFAZ.
danfe_url string Não URL do DANFE (documento auxiliar legível por humanos, PDF).
xml_url string Não URL do documento XML autorizado.
issued_at string Não Timestamp de emissão RFC 3339.

Order with NF-e

Order estendido com a referência do documento fiscal.

Nome Tipo Obrigatório Descrição
ucp any Sim Metadados BCP para respostas de order. Não são necessários payment handlers após a compra.
id string Sim Identificador único do pedido.
label string Não Rótulo legível por humanos para identificar o pedido. DEVE ser fornecido apenas pela empresa.
checkout_id string Sim ID do checkout associado para conciliação.
permalink_url string Sim Permalink para acessar o pedido no site do lojista.
line_items Array[object] Sim Itens de linha representando o que foi comprado — podem mudar após o pedido por meio de edições ou trocas.
fulfillment object Sim Dados de fulfillment: as expectativas do comprador e o que de fato ocorreu.
adjustments Array[object] Não Eventos pós-pedido (reembolsos, devoluções, créditos, disputas, cancelamentos, etc.) que existem independentemente do fulfillment.
currency string Sim Código de moeda ISO 4217. DEVE corresponder à moeda da sessão de checkout de origem.
totals Array[Total] Sim Diferentes totais do pedido.
messages Array[object] Não Mensagens de resultado da empresa (erros, avisos, informativas). Presentes quando a empresa precisa comunicar status ou problemas à plataforma.
attribution object Não Snapshot da atribuição associada ao checkout de origem. Somente leitura no pedido.
nfe object Não Referência à NF-e emitida para este pedido. Ausente enquanto ainda não emitida, ou quando o vendedor é isento (MEI vendendo a pessoa física).

Returns Extension

Return Adjustment

Um ajuste pós-pedido do tipo return estendido com os timestamps legais brasileiros e os dados de logística reversa.

Nome Tipo Obrigatório Descrição
id string Sim Identificador do evento de ajuste.
type string Sim Tipo de ajuste (string aberta). Normalmente relacionado a dinheiro, como: refund, return, credit, price_adjustment, dispute, cancellation. Pode ser qualquer valor que faça sentido para a empresa do merchant.
occurred_at string Sim Timestamp RFC 3339 de quando este ajuste ocorreu.
status string Sim Status do ajuste.
Enum: pending, completed, failed
line_items Array[object] Não Quais itens de linha e quantidades são afetados (opcional).
totals Array[object] Não Detalhamento dos totais do ajuste. Valores com sinal - negativos para dinheiro devolvido ao buyer (reembolsos, créditos), positivos para cobranças adicionais (trocas).
description string Não Motivo ou descrição legível por humanos (ex.: 'Item defeituoso', 'Solicitado pelo cliente').
type any Sim Constant = return.
reason string Não Motivo da devolução. Valores conhecidos: withdrawal (arrependimento, sem necessidade de justificativa), defect (defeito do produto), wrong_product. Vocabulário aberto.
acknowledged_at string Não Timestamp RFC 3339 de quando o vendedor confirmou o recebimento da solicitação.
reverse_shipping_code string Não Código de postagem da logística reversa (ex.: autorização de postagem reversa dos Correios) para o consumidor devolver o produto.
carrier string Não Transportadora responsável pelo envio reverso.
deadline string Não Prazo para o consumidor entregar o produto à transportadora.

Refund Adjustment

Um ajuste pós-pedido do tipo refund. Seus totais são sempre negativos, representando dinheiro devolvido ao comprador.

Nome Tipo Obrigatório Descrição
id string Sim Identificador do evento de ajuste.
type string Sim Tipo de ajuste (string aberta). Normalmente relacionado a dinheiro, como: refund, return, credit, price_adjustment, dispute, cancellation. Pode ser qualquer valor que faça sentido para a empresa do merchant.
occurred_at string Sim Timestamp RFC 3339 de quando este ajuste ocorreu.
status string Sim Status do ajuste.
Enum: pending, completed, failed
line_items Array[object] Não Quais itens de linha e quantidades são afetados (opcional).
totals Array[object] Não Detalhamento dos totais do ajuste. Valores com sinal - negativos para dinheiro devolvido ao buyer (reembolsos, créditos), positivos para cobranças adicionais (trocas).
description string Não Motivo ou descrição legível por humanos (ex.: 'Item defeituoso', 'Solicitado pelo cliente').
type any Sim Constant = refund.
totals any Não

Order Adjustment with Return Support

Ajuste pós-pedido. Ajustes de devolução carregam os campos legais e de logística reversa brasileiros; ajustes de reembolso carregam totais negativos; qualquer ajuste pode referenciar outros relacionados por causalidade.

Nome Tipo Obrigatório Descrição
id string Sim Identificador do evento de ajuste.
type string Sim Tipo de ajuste (string aberta). Normalmente relacionado a dinheiro, como: refund, return, credit, price_adjustment, dispute, cancellation. Pode ser qualquer valor que faça sentido para a empresa do merchant.
occurred_at string Sim Timestamp RFC 3339 de quando este ajuste ocorreu.
status string Sim Status do ajuste.
Enum: pending, completed, failed
line_items Array[object] Não Quais itens de linha e quantidades são afetados (opcional).
totals Array[object] Não Detalhamento dos totais do ajuste. Valores com sinal - negativos para dinheiro devolvido ao buyer (reembolsos, créditos), positivos para cobranças adicionais (trocas).
description string Não Motivo ou descrição legível por humanos (ex.: 'Item defeituoso', 'Solicitado pelo cliente').
related_adjustment_ids Array[string] Não Identificadores de ajustes relacionados por causalidade. Um reembolso causado por uma devolução referencia aqui o ajuste de devolução.

Order with Returns

Order cujos ajustes pós-pedido carregam os campos brasileiros de devolução.

Nome Tipo Obrigatório Descrição
ucp any Sim Metadados BCP para respostas de order. Não são necessários payment handlers após a compra.
id string Sim Identificador único do pedido.
label string Não Rótulo legível por humanos para identificar o pedido. DEVE ser fornecido apenas pela empresa.
checkout_id string Sim ID do checkout associado para conciliação.
permalink_url string Sim Permalink para acessar o pedido no site do lojista.
line_items Array[object] Sim Itens de linha representando o que foi comprado — podem mudar após o pedido por meio de edições ou trocas.
fulfillment object Sim Dados de fulfillment: as expectativas do comprador e o que de fato ocorreu.
adjustments Array[object] Não Eventos pós-pedido (reembolsos, devoluções, créditos, disputas, cancelamentos, etc.) que existem independentemente do fulfillment.
currency string Sim Código de moeda ISO 4217. DEVE corresponder à moeda da sessão de checkout de origem.
totals Array[Total] Sim Diferentes totais do pedido.
messages Array[object] Não Mensagens de resultado da empresa (erros, avisos, informativas). Presentes quando a empresa precisa comunicar status ou problemas à plataforma.
attribution object Não Snapshot da atribuição associada ao checkout de origem. Somente leitura no pedido.
adjustments Array[Adjustment] Não Eventos pós-pedido. Ajustes de devolução carregam os dados legais e de logística reversa; os demais tipos de ajuste mantêm sua forma base.

Br.Dev.Bcp.Shopping.Returns

Nenhuma propriedade definida.


Tax Extension

Tax Detail

Uma única incidência tributária sobre um item de linha.

Nome Tipo Obrigatório Descrição
type string Sim Tipo de imposto. Valores conhecidos: icms, icms_st, difal, fcp, iss, ipi, pis, cofins (sistema atual); ibs, cbs, is (reforma tributária de 2026+). Vocabulário aberto: os clientes DEVEM tolerar valores desconhecidos à medida que a transição (2026-2033) altera a composição.
rate number Não Alíquota aplicada como fração decimal (ex.: 0.009 para 0,9%). Indicativa: amount é autoritativo, e os clientes NÃO DEVEM recalculá-lo a partir de base e rate.
base integer Não Base de cálculo para esta incidência. PODE diferir do preço do item de linha, já que um imposto calculado sobre uma base líquida ainda chega ao consumidor dentro de um preço com imposto incluso.
amount integer Sim Valor de imposto devido para esta incidência.
authority string Não Nível federativo que este imposto financia, exposto para que o consumidor veja quanto do preço vai para cada nível. Valores conhecidos: federal, state, municipal. Um imposto compartilhado entre níveis (ex.: IBS) DEVE ser reportado como uma entrada por nível, cada uma com sua própria alíquota e valor. Vocabulário aberto: os clientes DEVEM tolerar valores desconhecidos à medida que a transição de 2026-2033 altera a composição.
behavior string Sim Onde o valor se situa em relação ao preço do item de linha, que é o que permite a um cliente conciliar totals. Valores conhecidos: inclusive (o valor já está contido no preço, portanto NÃO DEVE ser somado ao subtotal) e exclusive (o valor é cobrado sobre o preço). As empresas DEVEM declará-lo em cada entrada: um item de linha pode carregar ambos os comportamentos ao mesmo tempo durante a transição. Vocabulário aberto: os clientes DEVEM tolerar valores desconhecidos.

Line Item with Taxes

Item de linha do checkout estendido com classificação fiscal e detalhamento tributário.

Nome Tipo Obrigatório Descrição
id string Sim
item object Sim
quantity integer Sim Quantidade do item sendo comprado.
totals Array[object] Sim Detalhamento dos totais do item de linha.
parent_id string Não Identificador do item de linha pai para quaisquer estruturas aninhadas.
ncm string Não Classificação fiscal Nomenclatura Comum do Mercosul (NCM) de um produto, 8 dígitos. Orienta o cálculo de tributos, a marcação de categoria do Imposto Seletivo e a emissão de NF-e (ex.: '33049910').
taxes Array[object] Não Detalhamento tributário para este item de linha. Uma entrada por incidência tributária.

Order Line Item with Taxes

Item de linha do pedido estendido com classificação fiscal e detalhamento tributário.

Nome Tipo Obrigatório Descrição
id string Sim Identificador do item de linha.
item object Sim Dados do produto (id, title, price, image_url).
quantity object Sim Rastreamento de quantidade para o item de linha.
totals Array[object] Sim Detalhamento dos totais do item de linha.
status string Sim Status derivado: removed se quantity.total == 0, fulfilled se quantity.total > 0 e quantity.fulfilled == quantity.total, partial se quantity.total > 0 e quantity.fulfilled > 0, caso contrário processing.
Enum: processing, partial, fulfilled, removed
parent_id string Não Identificador do item de linha pai para quaisquer estruturas aninhadas.
ncm string Não Classificação fiscal Nomenclatura Comum do Mercosul (NCM) de um produto, 8 dígitos. Orienta o cálculo de tributos, a marcação de categoria do Imposto Seletivo e a emissão de NF-e (ex.: '33049910').
taxes Array[object] Não Detalhamento tributário para este item de linha. Uma entrada por incidência tributária.

Checkout with Tax

Checkout estendido com o detalhamento tributário brasileiro. Quando esta capability está ativa, as respostas DEVEM incluir ao menos uma entrada tax em totals com o valor total aproximado de imposto.

Nome Tipo Obrigatório Descrição
ucp any Sim Metadados BCP para respostas de checkout.
id string Sim Identificador único da sessão de checkout.
line_items Array[object] Sim Lista de itens de linha em checkout.
buyer object Não Representação do comprador.
context object Não Sinais provisórios do buyer para relevância e localização—não são dados autoritativos. Empresas DEVERIAM usar estes valores quando entradas verificadas (ex.: endereço de shipping) estiverem ausentes, e PODEM ignorá-los ou reduzir sua prioridade se inconsistentes com sinais de maior confiança (conta autenticada, detecção de risco) ou restrições regulatórias (controles de exportação). A elegibilidade e a aplicação de políticas DEVEM ocorrer no momento do checkout usando dados vinculantes da transação. O Context DEVERIA ser não identificável e pode ser divulgado progressivamente—sinais grosseiros no início, resolução mais fina à medida que a sessão avança. Dados de maior resolução (endereço de shipping, endereço de cobrança) têm precedência sobre o context.
signals object Não Dados de ambiente fornecidos pela plataforma para apoiar a autorização e a prevenção de abusos. Os valores NÃO DEVEM ser declarações afirmadas pelo comprador — as plataformas fornecem sinais com base em observação direta ou em atestações de terceiros verificáveis de forma independente. Todas as chaves de sinal DEVEM usar nomenclatura em domínio reverso para garantir a proveniência e prevenir colisões quando múltiplas extensões contribuem para o namespace compartilhado.
attribution object Não Contexto de indicação e evento de conversão emitido pela plataforma — identificadores de campanha, IDs de clique, marcadores de source/medium, etc. Os mesmos parâmetros que as plataformas comunicam via parâmetros de consulta de URL em fluxos baseados em navegador.
status string Sim Estado do checkout indicando a fase atual e a ação requerida. Consulte a documentação do ciclo de vida de Checkout Status para detalhes de transição de estado.
Enum: incomplete, requires_escalation, ready_for_complete, complete_in_progress, completed, canceled
currency string Sim Código de moeda ISO 4217 refletindo a determinação de mercado do lojista. Derivado de address, context e geo-IP — os compradores fornecem sinais, os lojistas determinam a moeda.
totals Array[Total] Sim Diferentes totais do carrinho.
messages Array[object] Não Lista de mensagens com erro e informação sobre o estado da sessão de checkout.
links Array[object] Sim Links a serem exibidos pela plataforma (Política de Privacidade, Termos de Uso). Obrigatórios para conformidade legal.
expires_at string Não Timestamp de expiração RFC 3339. O TTL padrão é de 6 horas a partir da criação, se não enviado.
continue_url string Não URL para handoff do checkout e recuperação de sessão. DEVE ser fornecida quando o status for requires_escalation. Consulte a especificação para os requisitos de formato e disponibilidade.
payment object Não Configuração de pagamento contendo handlers.
order object Não Detalhes sobre um pedido criado para esta sessão de checkout.
line_items Array[Line Item] Sim

Order with Tax

Order estendido com o detalhamento tributário brasileiro, congelando o detalhe de imposto no registro durável da transação. As respostas DEVEM incluir ao menos uma entrada tax em totals.

Nome Tipo Obrigatório Descrição
ucp any Sim Metadados BCP para respostas de order. Não são necessários payment handlers após a compra.
id string Sim Identificador único do pedido.
label string Não Rótulo legível por humanos para identificar o pedido. DEVE ser fornecido apenas pela empresa.
checkout_id string Sim ID do checkout associado para conciliação.
permalink_url string Sim Permalink para acessar o pedido no site do lojista.
line_items Array[object] Sim Itens de linha representando o que foi comprado — podem mudar após o pedido por meio de edições ou trocas.
fulfillment object Sim Dados de fulfillment: as expectativas do comprador e o que de fato ocorreu.
adjustments Array[object] Não Eventos pós-pedido (reembolsos, devoluções, créditos, disputas, cancelamentos, etc.) que existem independentemente do fulfillment.
currency string Sim Código de moeda ISO 4217. DEVE corresponder à moeda da sessão de checkout de origem.
totals Array[Total] Sim Diferentes totais do pedido.
messages Array[object] Não Mensagens de resultado da empresa (erros, avisos, informativas). Presentes quando a empresa precisa comunicar status ou problemas à plataforma.
attribution object Não Snapshot da atribuição associada ao checkout de origem. Somente leitura no pedido.
line_items Array[Order Line Item] Sim

Esquemas de manipulador de pagamento

Metadados BCP

Os esquemas a seguir definem a estrutura dos metadados BCP usados na descoberta e respostas.

Perfil de descoberta de plataforma

A estrutura de nível superior de um documento de perfil de plataforma (hospedado em um URI anunciado pela plataforma).

Metadados BCP completos para configuração em nível de plataforma. Hospedados em uma URI anunciada pela plataforma nos cabeçalhos da requisição.

Nome Tipo Obrigatório Descrição
version string Sim Versão BCP no formato YYYY-MM-DD.
status string Não Status em nível de aplicação da operação BCP.
Enum: success, error
services object Sim Registro de serviços indexado por reverse-domain name.
capabilities object Não Registro de capabilities indexado por reverse-domain name.
payment_handlers object Sim Registro de payment handlers indexado por reverse-domain name.
services any Sim
capabilities any Não
payment_handlers any Sim

Perfil de descoberta de negócios

A estrutura de nível superior de um documento de descoberta de negócios (/.well-known/bcp).

Metadados BCP para configuração em nível de empresa/lojista. Subconjunto do schema de plataforma com configurações específicas da empresa.

Nome Tipo Obrigatório Descrição
version string Sim Versão BCP no formato YYYY-MM-DD.
status string Não Status em nível de aplicação da operação BCP.
Enum: success, error
services object Sim Registro de serviços indexado por reverse-domain name.
capabilities object Não Registro de capabilities indexado por reverse-domain name.
payment_handlers object Sim Registro de payment handlers indexado por reverse-domain name.
supported_versions object Não Versões anteriores de protocolo que esta empresa suporta, mapeadas para URIs de perfil. Empresas que suportam versões de protocolo mais antigas DEVERIAM anunciar cada versão e vincular ao seu perfil. Cada URI aponta para um perfil completo e autocontido daquela versão. Quando omitido, apenas version é suportada.
services any Sim
capabilities any Não
payment_handlers any Sim

Metadados de resposta de checkout

O objeto ucp incluído nas respostas de checkout.

Metadados BCP para respostas de checkout.

Nome Tipo Obrigatório Descrição
version string Sim Versão BCP no formato YYYY-MM-DD.
status string Não Status em nível de aplicação da operação BCP.
Enum: success, error
services object Não Registro de serviços indexado por reverse-domain name.
capabilities object Não Registro de capabilities indexado por reverse-domain name.
payment_handlers object Sim Registro de payment handlers indexado por reverse-domain name.
services any Não
capabilities any Não
payment_handlers any Sim

Metadados de resposta do carrinho

O objeto ucp incluído nas respostas do carrinho.

Metadados BCP para respostas de cart. Não são necessários payment handlers antes do checkout.

Nome Tipo Obrigatório Descrição
version string Sim Versão BCP no formato YYYY-MM-DD.
status string Não Status em nível de aplicação da operação BCP.
Enum: success, error
services object Não Registro de serviços indexado por reverse-domain name.
capabilities object Não Registro de capabilities indexado por reverse-domain name.
payment_handlers object Não Registro de payment handlers indexado por reverse-domain name.
capabilities any Não

Metadados de resposta do catálogo

O objeto ucp incluído nas respostas do catálogo.

Metadados BCP para respostas de catálogo.

Nome Tipo Obrigatório Descrição
version string Sim Versão BCP no formato YYYY-MM-DD.
status string Não Status em nível de aplicação da operação BCP.
Enum: success, error
services object Não Registro de serviços indexado por reverse-domain name.
capabilities object Não Registro de capabilities indexado por reverse-domain name.
payment_handlers object Não Registro de payment handlers indexado por reverse-domain name.
capabilities any Não

Metadados de resposta do pedido

O objeto ucp incluído em respostas de pedidos ou eventos.

Metadados BCP para respostas de order. Não são necessários payment handlers após a compra.

Nome Tipo Obrigatório Descrição
version string Sim Versão BCP no formato YYYY-MM-DD.
status string Não Status em nível de aplicação da operação BCP.
Enum: success, error
services object Não Registro de serviços indexado por reverse-domain name.
capabilities object Não Registro de capabilities indexado por reverse-domain name.
payment_handlers object Não Registro de payment handlers indexado por reverse-domain name.
capabilities any Não

Capacidade

Este objeto descreve um único recurso ou extensão. Aparece na matriz capabilities em perfis de descoberta e respostas, com campos obrigatórios ligeiramente diferentes em cada contexto.

Capacidade (descoberta)

Conforme visto nos perfis de descoberta.

Declaração completa de capability para discovery em nível de plataforma. Inclui URLs de spec/schema para busca pelo agente.

Nome Tipo Obrigatório Descrição
version string Sim Versão da entidade no formato YYYY-MM-DD.
spec string Sim URL para o documento de especificação legível por humanos.
schema string Sim URL para o JSON Schema que define a estrutura e os payloads desta entidade.
id string Não Identificador único para esta instância de entidade. Usado para desambiguar quando existem múltiplas instâncias.
config object Não Configuração específica da entidade. Estrutura definida pelo schema de cada entidade.
extends OneOf[string, array] Não Capability(s) pai que esta estende. Presente para extensões, ausente para capabilities raiz. Use um array para extensões com múltiplos pais.

Capacidade (resposta)

Conforme visto nas mensagens de resposta.

Referência de capability em respostas. Apenas name/version são necessários para confirmar as capabilities ativas.

Nome Tipo Obrigatório Descrição
version string Sim Versão da entidade no formato YYYY-MM-DD.
spec string Não URL para o documento de especificação legível por humanos.
schema string Não URL para o JSON Schema que define a estrutura e os payloads desta entidade.
id string Não Identificador único para esta instância de entidade. Usado para desambiguar quando existem múltiplas instâncias.
config object Não Configuração específica da entidade. Estrutura definida pelo schema de cada entidade.
extends OneOf[string, array] Não Capability(s) pai que esta estende. Presente para extensões, ausente para capabilities raiz. Use um array para extensões com múltiplos pais.