Oferta pós-compra
Lê, aceita ou recusa a oferta de um clique que o seller faz ao cliente logo depois do pedido, paga com um Pix adicional.
O upsell pós-compra é uma oferta que o seller configura no painel: logo depois de um pedido, o cliente vê "leve também este produto com desconto, só por alguns minutos". As regras escolhem uma oferta por pedido no momento em que o pedido é criado, com preço e prazo congelados.
Na mini-loja o cliente não tem cartão salvo na hora, então aceitar cria um pedido filho pago com um Pix adicional. Estas rotas só atendem pedido do próprio cliente; para qualquer outro, respondem 404 order_not_found.
Ler a oferta
/api/v1/storefront/wa-coex/order/{token}/{orderID}/post-purchase-offerPúblicaOferta pós-compra vigente de um pedido
Quando não há o que mostrar (nenhuma regra serviu, venceu, já foi respondida ou a loja não usa upsell), a resposta é 200 com offer: null.
Parâmetros de caminho
tokenstringobrigatórioorderIDuuidobrigatórioResposta
{
"offer": {
"id": "e3c1c8f2-7c1d-4f2c-9b1a-5a3c9d1b7e10",
"product": {
"id": "3a872b9c-45e3-4307-85b2-e9a07ef7db06",
"name": "Mouse sem fio",
"image_url": "/uploads/exemplo/mouse.png"
},
"offer_price_cents": 4990,
"original_price_cents": 6990,
"expires_at": "2026-10-11T19:05:00Z",
"payment_mode": "pix"
}
}{ "offer": null }Campos da resposta
offerobjectA oferta, ou null.
iduuidproductobjectid, name, image_url.offer_price_centsintegeroriginal_price_centsintegerexpires_atstringpayment_modestringcardpixErros
| Status | Quando | Corpo |
|---|---|---|
| 404 | O pedido não existe ou não é deste cliente. | {"error":"order_not_found"} |
| 500 | Falha ao ler a oferta. | {"error":"offer_failed"} |
Aceitar a oferta
/api/v1/storefront/wa-coex/order/{token}/{orderID}/post-purchase-offer/acceptPúblicaAceita a oferta e gera o Pix do pedido filho
Cria o pedido filho com o produto da oferta e devolve o Pix para pagá-lo. A oferta só pode ser aceita uma vez e enquanto estiver vigente.
Parâmetros de caminho
tokenstringobrigatórioorderIDuuidobrigatórioNão tem corpo.
Exemplo de requisição
curl -X POST "$BASE_URL/api/v1/storefront/wa-coex/order/$TOKEN/9f4a6d2e-1b7c-4c53-8d21-5e0b6a7c1f33/post-purchase-offer/accept"Resposta
{
"payment_mode": "pix",
"pix_code": "00020126580014br.gov.bcb.pix0136123e4567-e89b-12d3-a456-4266141740005204000053039865802BR5913Loja Exemplo6009Sao Paulo62070503***6304ABCD",
"pix_qr_code": "iVBORw0KGgoAAAANSUhEUgAA...",
"expires_at": "2026-10-11T19:35:00Z"
}Campos da resposta
payment_modestringpix.pix_codestringpix_qr_codestringexpires_atstringErros
| Status | Quando | Corpo |
|---|---|---|
| 400 | A oferta não pôde ser aceita por outro motivo. | {"error":"accept_failed"} |
| 404 | O pedido não existe, não é deste cliente, ou a loja não usa upsell. | {"error":"order_not_found"} |
| 409 | A oferta já foi respondida, ou o produto acabou. | {"error":"offer_gone"} |
| 410 | A oferta venceu. | {"error":"offer_expired"} |
Recusar a oferta
/api/v1/storefront/wa-coex/order/{token}/{orderID}/post-purchase-offer/declinePúblicaRecusa a oferta
Fecha a oferta. Depois de recusada, GET volta offer: null.
Parâmetros de caminho
tokenstringobrigatórioorderIDuuidobrigatórioResposta
{ "status": "declined" }Erros
| Status | Quando | Corpo |
|---|---|---|
| 400 | A oferta não pôde ser recusada. | {"error":"accept_failed"} |
| 404 | O pedido não existe, não é deste cliente, ou a loja não usa upsell. | {"error":"order_not_found"} |
| 409 | A oferta já foi respondida. | {"error":"offer_gone"} |
| 410 | A oferta venceu. | {"error":"offer_expired"} |