Criar plano
Cria um plano de assinatura — internamente é um produto com type=SUBSCRIPTION, por
isso a resposta usa o mesmo formato de Product.
O plano é criado sem imagem e sem categoria — ambos podem ser preenchidos depois pelo
painel. warranty_time também não é aceito no corpo: é resolvido automaticamente a
partir da configuração mínima de garantia da sua conta.
Este endpoint só cria o plano. Para vender, crie também uma oferta recorrente para ele —
consulte POST /plans/{id}/offers.
Sem campo de autorização: o portal autentica por você com a sua chave de Homologação e as requisições rodam só no ambiente de testes.
Token de acesso devolvido por POST /auth/token. Envie como "Authorization: Bearer ". Vale 24 horas.
In: header
length <= 255Response Body
curl -X POST "https://pagpolar-api.creativecode.dev.br/v1/plans" \ -H "Content-Type: application/json" \ -d '{ "name": "Assinatura Premium", "description": "Acesso completo à plataforma, renovação mensal" }'{
"data": {
"id": "a8b9c0d1-e2f3-4a4b-5c6d-7e8f9a0b1c2d",
"name": "Assinatura Premium",
"description": "Acesso completo à plataforma, renovação mensal",
"author": null,
"promotional_text": null,
"is_active": true,
"image": null,
"type": "SUBSCRIPTION",
"content_type": "DEFAULT",
"warranty_time": 7,
"category": null,
"created_at": "2026-01-15T12:00:00.000Z",
"updated_at": "2026-01-15T12:00:00.000Z"
}
}{
"error": {
"code": "invalid_request",
"message": "string",
"request_id": "string"
}
}{
"error": {
"code": "invalid_request",
"message": "string",
"request_id": "string"
}
}{
"error": {
"code": "invalid_request",
"message": "string",
"request_id": "string"
}
}{
"error": {
"code": "invalid_request",
"message": "string",
"request_id": "string"
}
}Criar oferta de plano POST
Cria uma oferta **recorrente** para um plano já existente do seu catálogo. `cycle` é obrigatório — `WEEKLY`, `MONTHLY` ou `YEARLY` (`DAILY` não é aceito pela API pública). **Isso cria só a oferta (o preço recorrente) do plano — não cria uma assinatura de verdade para um cliente.** Para assinar um cliente de fato nesta oferta, use `POST /plans/offer/{id}/subscribe`.
Consultar plano GET
Próxima