POST
/
v1
/
discounts
/
Go (SDK)
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.CreateDiscountCreateDiscountPercentageOnceForeverDurationCreate(
        components.DiscountPercentageOnceForeverDurationCreate{
            Duration: components.DiscountDurationOnce,
            Type: components.DiscountTypeFixed,
            BasisPoints: 449604,
            Name: "<value>",
            OrganizationID: polargo.String("1dbfc517-0bbf-4301-9ba8-555ca42b9737"),
        },
    ))
    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": "1dbfc517-0bbf-4301-9ba8-555ca42b9737",
  "products": [
    {
      "metadata": {},
      "created_at": "2023-11-07T05:31:56Z",
      "modified_at": "2023-11-07T05:31:56Z",
      "id": "<string>",
      "name": "<string>",
      "description": "<string>",
      "recurring_interval": "day",
      "is_recurring": true,
      "is_archived": true,
      "organization_id": "<string>"
    }
  ]
}

Authorizations

Authorization
string
header
required

You can generate an Organization Access Token from your organization's settings.

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: 0 <= x <= 999999999999
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 floating-point number
  • 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<date-time> | null

Optional timestamp after which the discount is redeemable.

ends_at
string<date-time> | 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<uuid4>[] | null

List of product IDs the discount can be applied to.

organization_id
string<uuid4> | null

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

Examples:

"1dbfc517-0bbf-4301-9ba8-555ca42b9737"

Response

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<date-time>
required

Creation timestamp of the object.

modified_at
string<date-time> | null
required

Last modification timestamp of the object.

id
string<uuid4>
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<date-time> | null
required

Timestamp after which the discount is redeemable.

ends_at
string<date-time> | 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<uuid4>
required

The organization ID.

Examples:

"1dbfc517-0bbf-4301-9ba8-555ca42b9737"

products
DiscountProduct · object[]
required