Preços de oferta do Merchant
Gerencie as variantes de preço das ofertas de um merchant — crie preços em diferentes moedas, defina o padrão e exclua ou restaure um de forma reversível.
Um preço de oferta (offer price) é o valor de uma oferta em uma moeda: um valor em unidades menores inteiras (integer minor units) mais sua moeda ISO 4217. Uma oferta pode ter vários preços para que o mesmo plano seja vendido em vários mercados.
Um preço por oferta é o padrão (default) — o usado quando uma cobrança não indica um preço específico. Os preços são excluídos de forma reversível (soft-deleted), então um preço ainda referenciado por uma assinatura ativa pode ser restaurado em vez de perdido.
Esses endpoints alimentam a interface do Tokeflow Dashboard. Eles são autenticados por sessão (JWT bearer) — o token vem do login no Dashboard, não de uma chave de API sk_/pk_. As requisições também carregam o header x-merchant-id identificando o merchant no contexto, e o usuário autenticado precisa ser um membro com acesso a ele.
O objeto offer price
Retornado pelos endpoints de listagem e consulta desta página.
| Campo | Tipo | Descrição |
|---|---|---|
id | string | — |
offer_id | string | — |
currency | string | Código de moeda ISO 4217. |
amount | number | Valor em unidades menores (centavos). |
first_charge_amount | number | null | Valor do primeiro ciclo em unidades menores (usado quando offer.setup_charge = true). 0 = validação de cartão. |
is_default | boolean | — |
created_at | string | (ISO 8601 UTC). |
updated_at | string | (ISO 8601 UTC). |
Endpoints
DELETE/api/v1/merchant/offer-prices/:id
Auth: Dashboard session (JWT bearer). Merchant membership required.
Exclui um preço de oferta de forma reversível (soft-delete).
Parâmetros de caminho
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | string | Sim | — |
Exemplo de requisição
curl -X DELETE https://api.tokeflow.com/api/v1/merchant/offer-prices/obj_1a2b3c4d \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…" \
-H "x-merchant-id: mrc_8a3f12d9"Exemplo de resposta — 204 No Content
Um corpo vazio é retornado em caso de sucesso.
GET/api/v1/merchant/offer-prices/:id
Auth: Dashboard session (JWT bearer). Merchant membership required.
Obtém um preço de oferta pelo ID.
Parâmetros de caminho
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | string | Sim | — |
Exemplo de requisição
curl https://api.tokeflow.com/api/v1/merchant/offer-prices/obj_1a2b3c4d \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…" \
-H "x-merchant-id: mrc_8a3f12d9"Exemplo de resposta — 200
{
"id": "opr_b1c2d3e4f5",
"offer_id": "ofr_a1b2c3d4e5",
"currency": "BRL",
"amount": 9900,
"first_charge_amount": 0,
"is_default": true,
"created_at": "2026-05-19T12:00:00Z",
"updated_at": "2026-05-19T12:00:00Z"
}PATCH/api/v1/merchant/offer-prices/:id
Auth: Dashboard session (JWT bearer). Merchant membership required.
Atualiza um preço de oferta.
Parâmetros de caminho
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | string | Sim | — |
Exemplo de requisição
curl -X PATCH https://api.tokeflow.com/api/v1/merchant/offer-prices/obj_1a2b3c4d \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…" \
-H "x-merchant-id: mrc_8a3f12d9" \
-H "Content-Type: application/json" \
-d '{}'Exemplo de resposta — 200
{
"id": "opr_b1c2d3e4f5",
"offer_id": "ofr_a1b2c3d4e5",
"currency": "BRL",
"amount": 9900,
"first_charge_amount": 0,
"is_default": true,
"created_at": "2026-05-19T12:00:00Z",
"updated_at": "2026-05-19T12:00:00Z"
}POST/api/v1/merchant/offer-prices/:id/restore
Auth: Dashboard session (JWT bearer). Merchant membership required.
Restaura um preço de oferta excluído de forma reversível.
Parâmetros de caminho
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
id | string | Sim | — |
Exemplo de requisição
curl -X POST https://api.tokeflow.com/api/v1/merchant/offer-prices/obj_1a2b3c4d/restore \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…" \
-H "x-merchant-id: mrc_8a3f12d9"Exemplo de resposta — 201
{
"id": "opr_b1c2d3e4f5",
"offer_id": "ofr_a1b2c3d4e5",
"currency": "BRL",
"amount": 9900,
"first_charge_amount": 0,
"is_default": true,
"created_at": "2026-05-19T12:00:00Z",
"updated_at": "2026-05-19T12:00:00Z"
}GET/api/v1/merchant/offers/:offerId/prices
Auth: Dashboard session (JWT bearer). Merchant membership required.
Lista os preços de uma oferta.
Parâmetros de caminho
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
offerId | string | Sim | — |
Parâmetros de consulta
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
page | number | Não | Número da página (indexado a partir de 1). Padrão 1, mín. 1. |
limit | number | Não | Número de itens por página. Padrão 20, mín. 1, máx. 100. |
currency | string | Não | Código de moeda ISO 4217 |
is_default | boolean | Não | Filtra apenas o preço padrão |
Exemplo de requisição
curl -G https://api.tokeflow.com/api/v1/merchant/offers/ofr_5e2b8c14/prices \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…" \
-H "x-merchant-id: mrc_8a3f12d9" \
--data-urlencode "page=1" \
--data-urlencode "limit=20" \
--data-urlencode "currency=BRL" \
--data-urlencode "is_default=True"Exemplo de resposta — 200
{
"data": [
{
"id": "opr_b1c2d3e4f5",
"offer_id": "ofr_a1b2c3d4e5",
"currency": "BRL",
"amount": 9900,
"first_charge_amount": 0,
"is_default": true,
"created_at": "2026-05-19T12:00:00Z",
"updated_at": "2026-05-19T12:00:00Z"
}
],
"meta": {
"page": 1,
"limit": 20,
"total": 42,
"total_pages": 3,
"has_next": true,
"has_prev": false
}
}POST/api/v1/merchant/offers/:offerId/prices
Auth: Dashboard session (JWT bearer). Merchant membership required.
Adiciona um preço a uma oferta.
Parâmetros de caminho
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
offerId | string | Sim | — |
Campos da requisição
| Campo | Tipo | Obrigatório | Descrição |
|---|---|---|---|
currency | string | Sim | Código de moeda ISO 4217. |
amount | number | Sim | Valor em unidades menores (centavos). Ex: R$99,00 = 9900. |
first_charge_amount | number | Não | Valor do primeiro ciclo em unidades menores. Usado quando offer.setup_charge = true. 0 = validação de cartão. |
is_default | boolean | Não | Moeda padrão desta oferta. |
Exemplo de requisição
curl -X POST https://api.tokeflow.com/api/v1/merchant/offers/ofr_5e2b8c14/prices \
-H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9…" \
-H "x-merchant-id: mrc_8a3f12d9" \
-H "Content-Type: application/json" \
-d '{
"currency": "BRL",
"amount": 9900,
"first_charge_amount": 0,
"is_default": true
}'Exemplo de resposta — 201
{
"id": "opr_b1c2d3e4f5",
"offer_id": "ofr_a1b2c3d4e5",
"currency": "BRL",
"amount": 9900,
"first_charge_amount": 0,
"is_default": true,
"created_at": "2026-05-19T12:00:00Z",
"updated_at": "2026-05-19T12:00:00Z"
}Erros
Os erros usam o envelope padrão. Os casos mais comuns aqui:
| HTTP | Significado |
|---|---|
400 | Parâmetros inválidos ou um estado que não permite essa operação. |
401 | Token de sessão do Dashboard ausente, expirado ou inválido. |
403 | Autenticado, mas o usuário autenticado não tem acesso a essa entidade. |
404 | O registro não existe ou não é visível para essa entidade. |