Ambiente de simulação — nenhuma cobrança real. Os pagamentos, Pix e cartões deste sandbox são sintéticos.
W Wolf Sandbox Docs Criar conta
Navegação

Referência da API

Offers

Catálogo: ofertas (preço de um produto).

get/v1/offers

Listar ofertas (listOffers)

Sem parâmetros de consulta a resposta é a lista completa legada ({data}); com qualquer parâmetro ela é paginada por cursor ({data, next_cursor}). Parâmetro desconhecido → 400 VALIDATION_FAILED.

rate limit: api_authenticated
  • Autenticação: API key (sk_test_...) ou sessão do app do seller
  • Escopos: offers:read
  • URL: https://api.v2.wolfpayteste.online/v1/offers

Parâmetros

NomeOndeTipoDetalhes
q consulta string

1 a 120 caracteres

status consulta string

Valores: draft, active, archived

limit consulta integer

de 1 a 100

Padrão: 50

cursor consulta string

Padrão ^c1_[0-9a-f]+$

até 2048 caracteres

product_id consulta string

Padrão ^prd_[A-Za-z0-9]+$

até 128 caracteres

wolf-organization-id cabeçalho string

Só para sessão do app do seller com mais de uma organização (senão 409 TENANT_SELECTION_REQUIRED). Ignorado para API keys.

Padrão ^org_

Resposta 200

Ofertas.

Um destes formatos:

Exemplo de resposta 200 json
{
  "data": [
    {
      "id": "off_1b2c3d4e5f60718293a4b5c6d7e8f901",
      "product_id": "prd_7e6d5c4b3a2918f7e6d5c4b3a2918f7e",
      "amount_minor": "9900",
      "currency": "BRL",
      "status": "active",
      "created_at": "2026-11-06T12:00:00.000Z",
      "accepted_methods": [
        "pix",
        "card"
      ]
    }
  ],
  "next_cursor": null
}

Erros

post/v1/offers

Criar oferta (createOffer)

Cria uma oferta em draft para um produto do seller; ela aceita Pix e cartão de teste até PATCH /v1/offers/{id} mudar accepted_methods. Repetir a requisição com a mesma Idempotency-Key e o mesmo corpo devolve a mesma resposta com idempotent-replayed: true; corpo diferente → 409 IDEMPOTENCY_CONFLICT.

Idempotency-Key obrigatória rate limit: api_authenticated
  • Autenticação: API key (sk_test_...) ou sessão do app do seller
  • Escopos: offers:read,offers:write
  • URL: https://api.v2.wolfpayteste.online/v1/offers

Parâmetros

NomeOndeTipoDetalhes
Idempotency-Keyobrigatório cabeçalho string

Chave escolhida pelo cliente (8 a 255 caracteres). Mesma chave + mesmo corpo = mesma resposta; corpo diferente = 409 IDEMPOTENCY_CONFLICT. Guardada por 24 h.

8 a 255 caracteres

wolf-organization-id cabeçalho string

Só para sessão do app do seller com mais de uma organização (senão 409 TENANT_SELECTION_REQUIRED). Ignorado para API keys.

Padrão ^org_

Corpo da requisição

Objeto CreateOfferRequest

Corpo de createOffer
Campo Tipo Detalhes
product_id obrigatório string

Começa com prd_

amount_minor obrigatório string

Padrão ^[1-9][0-9]*$

currency string

Padrão ^[A-Z]{3}$

Padrão: "BRL"

Exemplo de corpo json
{
  "product_id": "prd_7e6d5c4b3a2918f7e6d5c4b3a2918f7e",
  "amount_minor": "9900",
  "currency": "BRL"
}

Resposta 201

Oferta criada.

Objeto Offer

Resposta 201 de createOffer
Campo Tipo Detalhes
id obrigatório string

Começa com off_

product_id obrigatório string

Começa com prd_

amount_minor obrigatório string
currency obrigatório string

Padrão ^[A-Z]{3}$

status obrigatório string

Valores: draft, active, archived

created_at obrigatório string
accepted_methods obrigatório string[]

Valores: pix, card

1 a 2 itens

Exemplo de resposta 201 json
{
  "id": "off_1b2c3d4e5f60718293a4b5c6d7e8f901",
  "product_id": "prd_7e6d5c4b3a2918f7e6d5c4b3a2918f7e",
  "amount_minor": "9900",
  "currency": "BRL",
  "status": "draft",
  "created_at": "2026-11-06T12:00:00.000Z",
  "accepted_methods": [
    "pix",
    "card"
  ]
}

Erros

get/v1/offers/{id}

Consultar oferta (getOffer)

rate limit: api_authenticated
  • Autenticação: API key (sk_test_...) ou sessão do app do seller
  • Escopos: offers:read
  • URL: https://api.v2.wolfpayteste.online/v1/offers/{id}

Parâmetros

NomeOndeTipoDetalhes
idobrigatório caminho string

Id da oferta (off_...).

mínimo 1 caractere(s)

wolf-organization-id cabeçalho string

Só para sessão do app do seller com mais de uma organização (senão 409 TENANT_SELECTION_REQUIRED). Ignorado para API keys.

Padrão ^org_

Resposta 200

Oferta.

Objeto Offer

Resposta 200 de getOffer
Campo Tipo Detalhes
id obrigatório string

Começa com off_

product_id obrigatório string

Começa com prd_

amount_minor obrigatório string
currency obrigatório string

Padrão ^[A-Z]{3}$

status obrigatório string

Valores: draft, active, archived

created_at obrigatório string
accepted_methods obrigatório string[]

Valores: pix, card

1 a 2 itens

Exemplo de resposta 200 json
{
  "id": "off_1b2c3d4e5f60718293a4b5c6d7e8f901",
  "product_id": "prd_7e6d5c4b3a2918f7e6d5c4b3a2918f7e",
  "amount_minor": "9900",
  "currency": "BRL",
  "status": "active",
  "created_at": "2026-11-06T12:00:00.000Z",
  "accepted_methods": [
    "pix",
    "card"
  ]
}

Erros

patch/v1/offers/{id}

Mudar os métodos aceitos da oferta (updateOffer)

accepted_methods define os métodos que o checkout da oferta oferece: pix, card (cartão de teste) ou ambos (padrão). O checkout mostra só esses métodos e pagar com outro → 409 PAYMENT_METHOD_NOT_ACCEPTED. Repetir a lista atual não muda nada; toda mudança é auditada.

rate limit: api_authenticated
  • Autenticação: API key (sk_test_...) ou sessão do app do seller
  • Escopos: offers:read,offers:write
  • URL: https://api.v2.wolfpayteste.online/v1/offers/{id}

Parâmetros

NomeOndeTipoDetalhes
idobrigatório caminho string

Id da oferta (off_...).

mínimo 1 caractere(s)

wolf-organization-id cabeçalho string

Só para sessão do app do seller com mais de uma organização (senão 409 TENANT_SELECTION_REQUIRED). Ignorado para API keys.

Padrão ^org_

Corpo da requisição

Objeto UpdateOfferRequest

Corpo de updateOffer
Campo Tipo Detalhes
accepted_methods obrigatório string[]

Valores: pix, card

1 a 2 itens

Exemplo de corpo json
{
  "accepted_methods": [
    "pix"
  ]
}

Resposta 200

Oferta atualizada.

Objeto Offer

Resposta 200 de updateOffer
Campo Tipo Detalhes
id obrigatório string

Começa com off_

product_id obrigatório string

Começa com prd_

amount_minor obrigatório string
currency obrigatório string

Padrão ^[A-Z]{3}$

status obrigatório string

Valores: draft, active, archived

created_at obrigatório string
accepted_methods obrigatório string[]

Valores: pix, card

1 a 2 itens

Exemplo de resposta 200 json
{
  "id": "off_1b2c3d4e5f60718293a4b5c6d7e8f901",
  "product_id": "prd_7e6d5c4b3a2918f7e6d5c4b3a2918f7e",
  "amount_minor": "9900",
  "currency": "BRL",
  "status": "active",
  "created_at": "2026-11-06T12:00:00.000Z",
  "accepted_methods": [
    "pix"
  ]
}

Erros

get/v1/offers/{id}/bumps

Listar order bumps da oferta (listOfferBumps)

Order bumps da oferta principal, na ordem de position, com o preço atual da oferta de cada bump.

rate limit: api_authenticated
  • Autenticação: API key (sk_test_...) ou sessão do app do seller
  • Escopos: offers:read
  • URL: https://api.v2.wolfpayteste.online/v1/offers/{id}/bumps

Parâmetros

NomeOndeTipoDetalhes
idobrigatório caminho string

Id da oferta principal (off_...).

mínimo 1 caractere(s)

wolf-organization-id cabeçalho string

Só para sessão do app do seller com mais de uma organização (senão 409 TENANT_SELECTION_REQUIRED). Ignorado para API keys.

Padrão ^org_

Resposta 200

Order bumps.

Objeto OfferBumpList

Resposta 200 de listOfferBumps
Campo Tipo Detalhes
data obrigatório OfferBump[]
Exemplo de resposta 200 json
{
  "data": [
    {
      "id": "ob_7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a",
      "offer_id": "off_1b2c3d4e5f60718293a4b5c6d7e8f901",
      "bump_offer_id": "off_5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d",
      "headline": "Adicionar à compra: Guia bônus",
      "description": "Checklist em PDF com 40 poses para ensaios.",
      "position": 0,
      "status": "active",
      "bump_offer": {
        "product_id": "prd_3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f",
        "amount_minor": "2700",
        "currency": "BRL",
        "status": "active"
      },
      "created_at": "2026-11-06T12:00:00.000Z",
      "updated_at": "2026-11-06T12:00:00.000Z"
    }
  ]
}

Erros

post/v1/offers/{id}/bumps

Criar order bump (createOfferBump)

Oferece outra oferta do seller (bump_offer_id) como adicional no checkout desta oferta. Regras: mesma moeda; um bump active (padrão) exige a oferta do bump active; no máximo 3 bumps ativos por oferta e sem bump dentro de bump (409 INVALID_STATE_TRANSITION); a mesma oferta não entra duas vezes como bump (400). Auditado (offer_bump.created). Repetir a requisição com a mesma Idempotency-Key e o mesmo corpo devolve a mesma resposta com idempotent-replayed: true; corpo diferente → 409 IDEMPOTENCY_CONFLICT.

Idempotency-Key obrigatória rate limit: api_authenticated
  • Autenticação: API key (sk_test_...) ou sessão do app do seller
  • Escopos: offers:read,offers:write
  • URL: https://api.v2.wolfpayteste.online/v1/offers/{id}/bumps

Parâmetros

NomeOndeTipoDetalhes
idobrigatório caminho string

Id da oferta principal (off_...).

mínimo 1 caractere(s)

Idempotency-Keyobrigatório cabeçalho string

Chave escolhida pelo cliente (8 a 255 caracteres). Mesma chave + mesmo corpo = mesma resposta; corpo diferente = 409 IDEMPOTENCY_CONFLICT. Guardada por 24 h.

8 a 255 caracteres

wolf-organization-id cabeçalho string

Só para sessão do app do seller com mais de uma organização (senão 409 TENANT_SELECTION_REQUIRED). Ignorado para API keys.

Padrão ^org_

Corpo da requisição

Objeto CreateOfferBumpRequest

Corpo de createOfferBump
Campo Tipo Detalhes
bump_offer_id obrigatório string

Padrão ^off_[A-Za-z0-9]+$

até 128 caracteres

headline obrigatório string

1 a 80 caracteres

description string

até 280 caracteres

position integer

de 0 a 99

status string

Valores: active, inactive

Exemplo de corpo json
{
  "bump_offer_id": "off_5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d",
  "headline": "Adicionar à compra: Guia bônus",
  "description": "Checklist em PDF com 40 poses para ensaios.",
  "position": 0
}

Resposta 201

Order bump criado.

Objeto OfferBump

Resposta 201 de createOfferBump
Campo Tipo Detalhes
id obrigatório string

Padrão ^ob_[A-Za-z0-9]{1,64}$

offer_id obrigatório string

Começa com off_

bump_offer_id obrigatório string

Começa com off_

headline obrigatório string
description obrigatório string
position obrigatório integer

de 0 a 9007199254740991

status obrigatório string

Valores: active, inactive

bump_offer obrigatório object
bump_offer.product_id obrigatório string

Começa com prd_

bump_offer.amount_minor obrigatório string
bump_offer.currency obrigatório string

Padrão ^[A-Z]{3}$

bump_offer.status obrigatório string

Valores: draft, active, archived

created_at obrigatório string
updated_at obrigatório string
Exemplo de resposta 201 json
{
  "id": "ob_7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a",
  "offer_id": "off_1b2c3d4e5f60718293a4b5c6d7e8f901",
  "bump_offer_id": "off_5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d",
  "headline": "Adicionar à compra: Guia bônus",
  "description": "Checklist em PDF com 40 poses para ensaios.",
  "position": 0,
  "status": "active",
  "bump_offer": {
    "product_id": "prd_3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f",
    "amount_minor": "2700",
    "currency": "BRL",
    "status": "active"
  },
  "created_at": "2026-11-06T12:00:00.000Z",
  "updated_at": "2026-11-06T12:00:00.000Z"
}

Erros

patch/v1/offers/{id}/bumps/{bumpId}

Alterar order bump (updateOfferBump)

Muda headline, description, position e/ou status (active ↔ inactive; bumps nunca são apagados). Ativar respeita as mesmas regras da criação. Repetir os valores atuais não muda nada. Auditado (offer_bump.updated).

rate limit: api_authenticated
  • Autenticação: API key (sk_test_...) ou sessão do app do seller
  • Escopos: offers:read,offers:write
  • URL: https://api.v2.wolfpayteste.online/v1/offers/{id}/bumps/{bumpId}

Parâmetros

NomeOndeTipoDetalhes
idobrigatório caminho string

Id da oferta principal (off_...).

mínimo 1 caractere(s)

bumpIdobrigatório caminho string

Id do order bump (ob_...).

mínimo 1 caractere(s)

wolf-organization-id cabeçalho string

Só para sessão do app do seller com mais de uma organização (senão 409 TENANT_SELECTION_REQUIRED). Ignorado para API keys.

Padrão ^org_

Corpo da requisição

Objeto UpdateOfferBumpRequest

Corpo de updateOfferBump
Campo Tipo Detalhes
headline string

1 a 80 caracteres

description string

até 280 caracteres

position integer

de 0 a 99

status string

Valores: active, inactive

Exemplo de corpo json
{
  "status": "inactive"
}

Resposta 200

Order bump atualizado.

Objeto OfferBump

Resposta 200 de updateOfferBump
Campo Tipo Detalhes
id obrigatório string

Padrão ^ob_[A-Za-z0-9]{1,64}$

offer_id obrigatório string

Começa com off_

bump_offer_id obrigatório string

Começa com off_

headline obrigatório string
description obrigatório string
position obrigatório integer

de 0 a 9007199254740991

status obrigatório string

Valores: active, inactive

bump_offer obrigatório object
bump_offer.product_id obrigatório string

Começa com prd_

bump_offer.amount_minor obrigatório string
bump_offer.currency obrigatório string

Padrão ^[A-Z]{3}$

bump_offer.status obrigatório string

Valores: draft, active, archived

created_at obrigatório string
updated_at obrigatório string
Exemplo de resposta 200 json
{
  "id": "ob_7d8e9f0a1b2c3d4e5f6a7b8c9d0e1f2a",
  "offer_id": "off_1b2c3d4e5f60718293a4b5c6d7e8f901",
  "bump_offer_id": "off_5a6b7c8d9e0f1a2b3c4d5e6f7a8b9c0d",
  "headline": "Adicionar à compra: Guia bônus",
  "description": "Checklist em PDF com 40 poses para ensaios.",
  "position": 0,
  "status": "inactive",
  "bump_offer": {
    "product_id": "prd_3c4d5e6f7a8b9c0d1e2f3a4b5c6d7e8f",
    "amount_minor": "2700",
    "currency": "BRL",
    "status": "active"
  },
  "created_at": "2026-11-06T12:00:00.000Z",
  "updated_at": "2026-11-06T12:00:00.000Z"
}

Erros

patch/v1/offers/{id}/status

Mudar status da oferta (setOfferStatus)

Ativar uma oferta exige o produto active (409 PRODUCT_NOT_ACTIVE).

rate limit: api_authenticated
  • Autenticação: API key (sk_test_...) ou sessão do app do seller
  • Escopos: offers:read,offers:write
  • URL: https://api.v2.wolfpayteste.online/v1/offers/{id}/status

Parâmetros

NomeOndeTipoDetalhes
idobrigatório caminho string

Id da oferta (off_...).

mínimo 1 caractere(s)

wolf-organization-id cabeçalho string

Só para sessão do app do seller com mais de uma organização (senão 409 TENANT_SELECTION_REQUIRED). Ignorado para API keys.

Padrão ^org_

Corpo da requisição

Objeto CatalogStatusRequest

Corpo de setOfferStatus
Campo Tipo Detalhes
status obrigatório string

Valores: draft, active, archived

Exemplo de corpo json
{
  "status": "active"
}

Resposta 200

Oferta atualizada.

Objeto Offer

Resposta 200 de setOfferStatus
Campo Tipo Detalhes
id obrigatório string

Começa com off_

product_id obrigatório string

Começa com prd_

amount_minor obrigatório string
currency obrigatório string

Padrão ^[A-Z]{3}$

status obrigatório string

Valores: draft, active, archived

created_at obrigatório string
accepted_methods obrigatório string[]

Valores: pix, card

1 a 2 itens

Exemplo de resposta 200 json
{
  "id": "off_1b2c3d4e5f60718293a4b5c6d7e8f901",
  "product_id": "prd_7e6d5c4b3a2918f7e6d5c4b3a2918f7e",
  "amount_minor": "9900",
  "currency": "BRL",
  "status": "active",
  "created_at": "2026-11-06T12:00:00.000Z",
  "accepted_methods": [
    "pix",
    "card"
  ]
}

Erros