POST
/
v1
/
discounts
package main

import(
	"context"
	"os"
	polargo "github.com/polarsource/polar-go"
	"github.com/polarsource/polar-go/models/components"
	"log"
)

func main() {
    ctx := context.Background()
    
    s := polargo.New(
        polargo.WithSecurity(os.Getenv("POLAR_ACCESS_TOKEN")),
    )

    res, err := s.Discounts.Create(ctx, components.CreateDiscountCreateDiscountFixedRepeatDurationCreate(
        components.DiscountFixedRepeatDurationCreate{
            Duration: components.DiscountDurationForever,
            DurationInMonths: 417458,
            Type: components.DiscountTypeFixed,
            Amount: 69025,
            Name: "<value>",
        },
    ))
    if err != nil {
        log.Fatal(err)
    }
    if res.Discount != nil {
        // handle response
    }
}
{
  "duration": "once",
  "type": "fixed",
  "amount": 123,
  "currency": "<string>",
  "created_at": "2023-11-07T05:31:56Z",
  "modified_at": "2023-11-07T05:31:56Z",
  "id": "<string>",
  "metadata": {},
  "name": "<string>",
  "code": "<string>",
  "starts_at": "2023-11-07T05:31:56Z",
  "ends_at": "2023-11-07T05:31:56Z",
  "max_redemptions": 123,
  "redemptions_count": 123,
  "organization_id": "<string>",
  "products": [
    {
      "created_at": "2023-11-07T05:31:56Z",
      "modified_at": "2023-11-07T05:31:56Z",
      "id": "<string>",
      "name": "<string>",
      "description": "<string>",
      "recurring_interval": "month",
      "is_recurring": true,
      "is_archived": true,
      "organization_id": "<string>"
    }
  ]
}

Authorizations

Authorization
string
header
required

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Body

application/json

Schema to create a fixed amount discount that is applied once or forever.

duration
enum<string>
required
Available options:
once,
forever,
repeating
type
enum<string>
required

Type of the discount.

Available options:
fixed,
percentage
amount
integer
required

Fixed amount to discount from the invoice total.

Required range: x > 0
name
string
required

Name of the discount. Will be displayed to the customer when the discount is applied.

Minimum length: 1
currency
string
default:
usd

The currency. Currently, only usd is supported.

metadata
object

Key-value object allowing you to store additional information.

The key must be a string with a maximum length of 40 characters. The value must be either:

  • A string with a maximum length of 500 characters
  • An integer
  • A boolean

You can store up to 50 key-value pairs.

code
string | null

Code customers can use to apply the discount during checkout. Must be between 3 and 256 characters long and contain only alphanumeric characters.If not provided, the discount can only be applied via the API.

starts_at
string | null

Optional timestamp after which the discount is redeemable.

ends_at
string | null

Optional timestamp after which the discount is no longer redeemable.

max_redemptions
integer | null

Optional maximum number of times the discount can be redeemed.

Required range: x > 1
products
string[] | null

List of product IDs the discount can be applied to.

organization_id
string | null

The ID of the organization owning the discount. Required unless you use an organization token.

Response

201
application/json
Discount created.

Schema for a fixed amount discount that is applied once or forever.

duration
enum<string>
required
Available options:
once,
forever,
repeating
type
enum<string>
required
Available options:
fixed,
percentage
amount
integer
required
currency
string
required
created_at
string
required

Creation timestamp of the object.

modified_at
string | null
required

Last modification timestamp of the object.

id
string
required

The ID of the object.

metadata
object
required
name
string
required

Name of the discount. Will be displayed to the customer when the discount is applied.

code
string | null
required

Code customers can use to apply the discount during checkout.

starts_at
string | null
required

Timestamp after which the discount is redeemable.

ends_at
string | null
required

Timestamp after which the discount is no longer redeemable.

max_redemptions
integer | null
required

Maximum number of times the discount can be redeemed.

redemptions_count
integer
required

Number of times the discount has been redeemed.

organization_id
string
required

The organization ID.

products
object[]
required