VenddorDocumentação API
API atualAPI legada
Guia rápidoReferência completa
Carregando índice…
API atual/Referência completa

Cotações e preços B2B

Cotações (RFQ), negociação em rodadas e regras de preço de atacado do seller.

No atacado o preço quase nunca é o de tabela. O comprador pede uma cotação, o seller responde, os dois negociam, e regras de preço por quantidade já dão o preço certo sem conversa. Esta seção documenta o lado do seller dessas três coisas.

Pontos principais
  • Cotações e regras só mostram o que é do seller do token.
  • Dinheiro em centavos inteiros; desconto em pontos-base.
  • Toda rota exige o módulo b2b-pricing; negociação exige também enhanced-rfq.
  • respond precisa cobrir todas as linhas da cotação.

Como funciona

pending→quoted→negotiating→accepted→converted
  1. O comprador pede o preço

    O comprador cria a cotação pela loja (lado do cliente, fora desta seção). Ela nasce pending, sem total.

  2. O seller responde

    POST /vendor/quotes/{id}/respond informa o preço de cada linha. A cotação vira quoted e tem validade (7 dias por padrão).

  3. Aceite, negociação ou recusa

    O comprador aceita (accepted), o seller recusa (rejected), ou os dois trocam rodadas (negotiating). Passada a validade, a cotação vira expired.

  4. Conversão

    Uma cotação aceita é convertida pelo comprador em carrinho ou pedido (converted).

StatusSignificado
pendingRecebida, esperando resposta do seller.
quotedO seller respondeu com preços e validade.
negotiatingHá uma negociação em rodadas em andamento.
acceptedUma oferta foi aceita.
rejectedRecusada.
expiredA validade passou sem aceite.
convertedVirou carrinho ou pedido.

Conceitos-chave

Quem vê o quê

Estas rotas só enxergam o que é do seller do token. Uma cotação de outro seller responde 403 (não 404); uma regra de preço de produto alheio responde 404. O seller é descoberto pelo token, nunca por um parâmetro.

Dinheiro e identificadores

Valores em centavos inteiros (4000 = R$ 40,00). Desconto em pontos-base (1500 = 15%). Cotações e regras usam id inteiro; produtos, clientes, sellers e rodadas de negociação usam UUID.

Módulos

Tudo aqui depende de módulos da loja. Sem b2b-pricing toda rota responde 403 module_disabled. As quatro rotas de negociação exigem também enhanced-rfq.

Cotação versus regra de preço

A cotação é uma conversa pontual com um comprador. A regra de preço é permanente e vale para qualquer comprador que atinja a faixa, sem conversa.

Endpoints

MétodoCaminhoPara que serveAutenticaçãoPágina
GET/api/v1/vendor/quotesLista cotações.seller, b2b-pricingCotações
GET/api/v1/vendor/quotes/{id}Detalhe com linhas.seller, b2b-pricingCotações
POST/api/v1/vendor/quotes/{id}/respondResponde com preços.seller, b2b-pricingCotações
POST/api/v1/vendor/quotes/{id}/rejectRecusa a cotação.seller, b2b-pricingCotações
GET/api/v1/vendor/quotes/{id}/proposal/eventsTrilha da proposta pública.seller, b2b-pricingCotações
POST/api/v1/vendor/quotes/{id}/counterContraproposta.seller, enhanced-rfqNegociação
GET/api/v1/vendor/quotes/{id}/negotiationsHistórico de rodadas.seller, enhanced-rfqNegociação
POST/api/v1/vendor/quotes/{id}/accept-round/{roundId}Aceita uma rodada.seller, enhanced-rfqNegociação
POST/api/v1/vendor/quotes/{id}/reject-round/{roundId}Recusa uma rodada.seller, enhanced-rfqNegociação
GET/api/v1/vendor/b2b/rulesLista regras de preço.seller, b2b-pricingRegras de preço
POST/api/v1/vendor/b2b/rulesCria regra.seller, b2b-pricingRegras de preço
GET/api/v1/vendor/b2b/rules/{id}Detalhe da regra.seller, b2b-pricingRegras de preço
PUT/api/v1/vendor/b2b/rules/{id}Altera a regra.seller, b2b-pricingRegras de preço
DELETE/api/v1/vendor/b2b/rules/{id}Apaga a regra.seller, b2b-pricingRegras de preço

Erros comuns

  • Esperar 404 para cotação de outro seller. A resposta é 403 quote does not belong to this vendor.
  • Responder só algumas linhas. É recusado: todas as linhas precisam de preço.
  • Tratar 500 de respond como falha do servidor. Hoje regras de negócio violadas voltam como 500 com o motivo em detail.
  • Mandar price_cents junto com discount_bps maior que zero numa regra. O desconto vence e o preço fixo é ignorado.
  • Esquecer o módulo enhanced-rfq ao testar contrapropostas. Sem ele a resposta é 403 module_disabled.
  • Usar um UUID onde o id é inteiro (cotação, regra) ou o contrário (rodada). Id mal formado dá 400.

Próximos passos

Cotações
Ver, responder e recusar.
Negociação
Contrapropostas em rodadas.
Regras de preço
Tabela de preços de atacado.
Anterior
Assinaturas (painel antigo)
Próxima
Cotações
Nesta página
  • Como funciona
  • Conceitos-chave
  • Quem vê o quê
  • Dinheiro e identificadores
  • Módulos
  • Cotação versus regra de preço
  • Endpoints
  • Erros comuns
  • Próximos passos