Pedidos (Orders)
Um pedido registra a venda de uma oferta — produto e preço — e liga os pagamentos a ela. O checkout hospedado cria o pedido sozinho; pela API você cria e paga pedidos no seu próprio fluxo.
Operações
- post
/v1/orders— Criar pedido - get
/v1/orders— Listar pedidos - get
/v1/orders/{id}— Consultar pedido - post
/v1/orders/{id}/payment-intents— Criar PaymentIntent do pedido - post
/v1/orders/{id}/cancel— Cancelar pedido - post
/v1/orders/{id}/expire— Expirar pedido
Fluxo pela API
- Crie o pedido de uma oferta
active:POST /v1/orderscom{"offer_id": "off_..."}. O valor e a moeda vêm da oferta. - Crie o pagamento do pedido:
POST /v1/orders/{id}/payment-intents. O PaymentIntent nasce com o valor do pedido eorder_idpreenchido; um pedido tem no máximo um pagamento vivo. - Confirme o PaymentIntent (Pix ou cartão de teste). Quando ele vira
succeeded, a Wolf processa o evento do pagamento e marca o pedido comopaid— exatamente uma vez, mesmo com eventos repetidos — e emiteorder.paid.
Cancelar ou expirar só funciona em pending_payment sem pagamento em andamento (409 INVALID_STATE_TRANSITION caso contrário). Criar, pagar, cancelar e expirar exigem Idempotency-Key.
Pedidos do checkout hospedado
Ao pagar uma sessão de checkout (inclusive as abertas por Payment Links), a Wolf cria um pedido da oferta da sessão — um por sessão — com checkout_session_id preenchido.
Estados
| Estado | Significado | Pode ir para |
|---|---|---|
pending_payment | Criado a partir de uma oferta; aguarda um pagamento. | paid,canceled,expired |
paidfinal | Um PaymentIntent do pedido foi pago. Acontece exatamente uma vez e emite order.paid. | — |
canceledfinal | Cancelado pelo seller antes do pagamento. | — |
expiredfinal | Expirado antes do pagamento. | — |
O objeto Order
Objeto Order
| Campo | Tipo | Detalhes |
|---|---|---|
id obrigatório | string | Começa com |
offer_id obrigatório | string | Começa com |
product_id obrigatório | string | Começa com |
checkout_session_id obrigatório | string | null | |
amount_minor obrigatório | string | |
currency obrigatório | string | Padrão |
status obrigatório | string | Valores: |
paid_payment_intent_id obrigatório | string | null | |
paid_charge_id obrigatório | string | null | |
created_at obrigatório | string | |
updated_at obrigatório | string | |
paid_at obrigatório | string | null | |
canceled_at obrigatório | string | null | |
expired_at obrigatório | string | null | |
items obrigatório | object[] | |
items[].id obrigatório | string | Começa com |
items[].kind obrigatório | string | Valores: |
items[].offer_id obrigatório | string | Começa com |
items[].product_id obrigatório | string | Começa com |
items[].offer_bump_id obrigatório | string | null | |
items[].amount_minor obrigatório | string | |
items[].currency obrigatório | string | Padrão |
items[].position obrigatório | integer | de 0 a 3 |