curl -X POST https://pay.autorizou.dev/api/v1/products/51655469-5e1c-4356-bf9a-d593a7d61a0a/offers \
-H "Authorization: Bearer 4eC39HqLyjWDarjtT1zdp7dc" \
-H "Content-Type: application/json" \
-d '{
"type": "recurring",
"name": "Mensal Progressivo",
"interval": "monthly",
"trial_days": 7,
"cycles": [
{ "start": 1, "end": 3, "amount": 10000 },
{ "start": 4, "end": null, "amount": 12000 }
]
}'
curl -X POST https://pay.autorizou.dev/api/v1/products/51655469-5e1c-4356-bf9a-d593a7d61a0a/offers \
-H "Authorization: Bearer 4eC39HqLyjWDarjtT1zdp7dc" \
-H "Content-Type: application/json" \
-d '{
"type": "one_time",
"name": "Vitalício",
"amount": 39900
}'
{
"id": "b9af7796-ac98-47f2-b921-46b0415d7473",
"hash": "AUTOFRTNRV0QX5OYK8V6N5K4IZ",
"type": "recurring",
"name": "Mensal Progressivo",
"is_active": true,
"amount": 12000,
"currency": "BRL",
"interval": "monthly",
"trial_days": 7,
"cycles": [
{ "start": 1, "end": 3, "amount": 10000 },
{ "start": 4, "end": null, "amount": 12000 }
],
"checkout_url": "https://pay.autorizou.app/s/AUTOFRTNRV0QX5OYK8V6N5K4IZ",
"created_at": "2026-07-20T03:16:38.000000Z"
}
{
"message": "Os dados fornecidos são inválidos",
"errors": {
"cycles": ["A régua precisa começar no ciclo 1."],
"cycles.1.start": ["As faixas precisam ser contíguas, sem buraco."]
}
}
Produtos e Ofertas
Criar Oferta
Cria uma oferta no produto: única (um preço) ou recorrente (assinatura com régua de preços). Devolve o checkout_url pronto.
POST
/
api
/
v1
/
products
/
{id}
/
offers
curl -X POST https://pay.autorizou.dev/api/v1/products/51655469-5e1c-4356-bf9a-d593a7d61a0a/offers \
-H "Authorization: Bearer 4eC39HqLyjWDarjtT1zdp7dc" \
-H "Content-Type: application/json" \
-d '{
"type": "recurring",
"name": "Mensal Progressivo",
"interval": "monthly",
"trial_days": 7,
"cycles": [
{ "start": 1, "end": 3, "amount": 10000 },
{ "start": 4, "end": null, "amount": 12000 }
]
}'
curl -X POST https://pay.autorizou.dev/api/v1/products/51655469-5e1c-4356-bf9a-d593a7d61a0a/offers \
-H "Authorization: Bearer 4eC39HqLyjWDarjtT1zdp7dc" \
-H "Content-Type: application/json" \
-d '{
"type": "one_time",
"name": "Vitalício",
"amount": 39900
}'
{
"id": "b9af7796-ac98-47f2-b921-46b0415d7473",
"hash": "AUTOFRTNRV0QX5OYK8V6N5K4IZ",
"type": "recurring",
"name": "Mensal Progressivo",
"is_active": true,
"amount": 12000,
"currency": "BRL",
"interval": "monthly",
"trial_days": 7,
"cycles": [
{ "start": 1, "end": 3, "amount": 10000 },
{ "start": 4, "end": null, "amount": 12000 }
],
"checkout_url": "https://pay.autorizou.app/s/AUTOFRTNRV0QX5OYK8V6N5K4IZ",
"created_at": "2026-07-20T03:16:38.000000Z"
}
{
"message": "Os dados fornecidos são inválidos",
"errors": {
"cycles": ["A régua precisa começar no ciclo 1."],
"cycles.1.start": ["As faixas precisam ser contíguas, sem buraco."]
}
}
A oferta é o que o cliente compra. Ela nasce com um
checkout_url pronto para compartilhar. Uma oferta é de um dos dois tipos:
one_time: cobrança única. Só precisa denameeamount.recurring: assinatura. Precisa deintervale da régua de ciclos (cycles).
string
required
O
id (uuid) do produto que recebe a oferta.Parâmetros da Requisição
string
required
Tipo da oferta. Valores:
one_time, recurring.string
required
Nome da oferta (ex.: “Mensal”, “Anual”, “Vitalício”). Máximo: 80 caracteres.
integer
Valor em centavos. Obrigatório para
one_time. Mínimo: 100 (R$ 1,00).Exemplo: 39900 = R$ 399,00string
Cadência da assinatura. Obrigatório para
recurring.Valores: monthly, quarterly, half-yearly, yearly.integer
Dias de teste grátis antes da primeira cobrança. Mínimo:
1 | Máximo: 365.array
A régua de preços. Obrigatória para
recurring. Uma lista de faixas, de 1 a 50, contígua a partir do ciclo 1.A régua tem que ser uma escada válida, senão a resposta é 422:
- começa no ciclo 1;
- é contígua (cada faixa começa em
end + 1da anterior); - não se sobrepõe, e cada faixa tem
start <= end; - só a última faixa pode ter
end: null.
Resposta
string
UUID da oferta.
string
Hash público da oferta (base do
checkout_url).string
one_time ou recurring.string
Nome da oferta.
boolean
Se a oferta está ativa (ver arquivar/restaurar).
integer
O preço em centavos. Em
recurring, é a faixa estável (a última da régua), útil para exibir “a partir de”.string
Sempre
BRL.string
A cadência, em
recurring; null em one_time.integer
Dias de teste.
array
A régua devolvida faixa a faixa (vazia em
one_time). end: null na última = “em diante”.string
O link pronto de checkout.
/s/{hash} para recurring, /c/{hash} para one_time.curl -X POST https://pay.autorizou.dev/api/v1/products/51655469-5e1c-4356-bf9a-d593a7d61a0a/offers \
-H "Authorization: Bearer 4eC39HqLyjWDarjtT1zdp7dc" \
-H "Content-Type: application/json" \
-d '{
"type": "recurring",
"name": "Mensal Progressivo",
"interval": "monthly",
"trial_days": 7,
"cycles": [
{ "start": 1, "end": 3, "amount": 10000 },
{ "start": 4, "end": null, "amount": 12000 }
]
}'
curl -X POST https://pay.autorizou.dev/api/v1/products/51655469-5e1c-4356-bf9a-d593a7d61a0a/offers \
-H "Authorization: Bearer 4eC39HqLyjWDarjtT1zdp7dc" \
-H "Content-Type: application/json" \
-d '{
"type": "one_time",
"name": "Vitalício",
"amount": 39900
}'
{
"id": "b9af7796-ac98-47f2-b921-46b0415d7473",
"hash": "AUTOFRTNRV0QX5OYK8V6N5K4IZ",
"type": "recurring",
"name": "Mensal Progressivo",
"is_active": true,
"amount": 12000,
"currency": "BRL",
"interval": "monthly",
"trial_days": 7,
"cycles": [
{ "start": 1, "end": 3, "amount": 10000 },
{ "start": 4, "end": null, "amount": 12000 }
],
"checkout_url": "https://pay.autorizou.app/s/AUTOFRTNRV0QX5OYK8V6N5K4IZ",
"created_at": "2026-07-20T03:16:38.000000Z"
}
{
"message": "Os dados fornecidos são inválidos",
"errors": {
"cycles": ["A régua precisa começar no ciclo 1."],
"cycles.1.start": ["As faixas precisam ser contíguas, sem buraco."]
}
}
E agora?
Ocheckout_url já funciona: compartilhe e receba. Para vender por API (você já tem cliente e cartão), use o id da oferta como offer_id em POST /charges/subscriptions.