Ofertas, planos e ofertas ocultas

Escolha entre usar o código de uma oferta e informar a oferta na hora da venda, e entenda o que é uma oferta oculta.

Produto, oferta, plano e oferta de plano

TermoO que éComo criar
ProdutoO que você vende. Pela API, nasce como produto digital (type: DIGITAL). Veja produtos físicos.POST /products
OfertaUm preço de venda do produto, com os meios de pagamento e o máximo de parcelas. Um produto pode ter várias ofertas. O preço vai em price.POST /offers
PlanoUm produto de assinatura (type: SUBSCRIPTION).POST /plans
Oferta de planoO preço recorrente do plano, com o ciclo de cobrança: WEEKLY, MONTHLY ou YEARLY. O preço vai em price.POST /plans/{id}/offers

A venda sempre aponta para uma oferta, não para o produto.

Em price e em offer.value, o valor que você envia é sempre em centavos, como número inteiro: 4990 = R$ 49,90. Nas respostas, o valor volta em reais. Veja Valores que você envia.

Meios de pagamento e valor mínimo

Na oferta e na oferta de plano, cada meio de pagamento tem um valor mínimo e é desligado ao salvar quando o preço fica abaixo dele. Veja a regra, os exemplos e a edição em Meios de pagamento e valor mínimo.

Duas formas de apontar a oferta numa cobrança

Nas rotas POST /payments/pix, POST /payments/boleto e POST /payments/credit-card, envie uma destas duas formas:

CampoQuando usar
offer_identifierVocê já criou a oferta e tem o código dela.
offerVocê quer informar produto, nome e valor na hora, sem criar a oferta antes.

Enviar as duas ou nenhuma responde 400:

Situaçãomessage
As duas juntasEnvie offer_identifier ou offer, nunca os dois
NenhumaEnvie offer_identifier ou offer

A resposta da cobrança traz offer_identifier com o código da oferta usada.

Os exemplos abaixo mostram só o campo da oferta. O restante do corpo, como customer, é o mesmo nas duas formas. Veja o corpo completo em Vender com PIX ou boleto.

Com offer_identifier

{
  "offer_identifier": "<CODIGO_DA_OFERTA>"
}

Com offer

{
  "offer": {
    "product_id": "c4d5e6f7-a8b9-4c0d-1e2f-3a4b5c6d7e8f",
    "name": "Consultoria avulsa",
    "value": 4990,
    "createOffer": false
  }
}
Campo de offerObrigatórioO que é
product_idSimid do produto. Precisa ser da sua conta, senão a resposta é 404.
nameSimNome da oferta, até 255 caracteres.
valueSimValor da oferta, na mesma unidade de price. Mínimo padrão: 500.
createOfferSimtrue ou false, como booleano. Veja Oferta oculta.

Oferta informada na hora: reaproveitar ou criar

Com offer, a API procura uma oferta ativa que tenha exatamente:

  • o mesmo produto;
  • o mesmo nome;
  • o mesmo valor;
  • a mesma visibilidade (oculta ou não).

Se encontrar, usa essa oferta. Se não encontrar, cria uma nova. Enviar a mesma offer várias vezes não cria ofertas repetidas.

Na criação, a oferta aceita cartão com o maior número de parcelas que respeita a parcela mínima, até 12. Veja A regra da parcela mínima.

Oferta oculta

createOffer decide se a oferta criada fica visível:

createOfferResultado
trueOferta comum, visível. Funciona com offer_identifier depois.
falseOferta oculta.

A oferta oculta só funciona pela API, enviando offer de novo. Ela não aparece nem funciona nestes lugares:

OndeO que acontece
GET /offers/by-product/{id}Não aparece na lista.
GET /offers/{identifier}404 Oferta não encontrada.
offer_identifier numa cobrança404 Oferta não encontrada.
POST /plans/offer/{id}/subscribe404 Oferta de plano não encontrada.

Use a oferta oculta quando o preço é decidido pelo seu sistema na hora, por exemplo um orçamento, e você não quer essa oferta nas listagens.

Regras conferidas em toda cobrança

Com qualquer uma das duas formas, a API confere a oferta antes de cobrar:

RegraResposta quando falha
A oferta está ativa.409 com Oferta inativa
A oferta não expirou.409 com Oferta expirada
O meio de pagamento está ligado na oferta.409 com Método de pagamento PIX não habilitado para esta oferta (ou BOLETO, CREDIT_CARD)
As parcelas não passam do máximo da oferta.400 com Número de parcelas acima do permitido para esta oferta (máximo N)
A quantidade respeita a oferta.400

Parcelas: oferta avulsa e oferta de plano

Na oferta avulsa, o máximo é o valor que você definir em max_credit_card_installments, respeitando a parcela mínima. Sem o campo, a API usa 12. Na oferta de plano, só 1: valor maior responde 400.

A assinatura pela API só aceita cartão. A oferta de plano precisa estar com o cartão ligado, senão a resposta é 409.

Guias relacionados