PATCH
/
v1
/
discounts
/
{id}
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.Update(ctx, "<value>", components.DiscountUpdate{})
    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.

Path Parameters

id
string
required

The discount ID.

Body

application/json

Schema to update a discount.

metadata
object | null

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.

name
string | null

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

Minimum length: 1
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
duration
enum<string> | null
Available options:
once,
forever,
repeating
duration_in_months
integer | null

Number of months the discount should be applied.

For this to work on yearly pricing, you should multiply this by 12. For example, to apply the discount for 2 years, set this to 24.

Required range: x > 1
type
enum<string> | null
Available options:
fixed,
percentage
amount
integer | null

Fixed amount to discount from the invoice total.

Required range: x > 0
currency
string | null
default:
usd

The currency. Currently, only usd is supported.

basis_points
integer | null

Discount percentage in basis points.

A basis point is 1/100th of a percent. For example, to create a 25.5% discount, set this to 2550.

Required range: 1 < x < 10000
products
string[] | null

List of product IDs the discount can be applied to.

Response

200
application/json
Discount updated.

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