Update Discount

Update a discount in your account.

Request

use dodopayments_rust::{models::PatchDiscountRequest, to_pretty_json, DodoPaymentsClientBuilder};

#[tokio::main]

async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let api_key = std::env::var("DODO_API_KEY")?;

    let client = DodoPaymentsClientBuilder::new()
        .bearer_token(&api_key)
        .enviroment("test_mode")
        .build()?;

    let discount_id = "dis_xxxxxxxxxx";

    let resp = client
        .discounts()
        .id(discount_id)
        .update()
        .body(PatchDiscountRequest {
            amount: Some(15),
            ..Default::default()
        })
        .send()
        .await?;

    println!("{}", to_pretty_json(&resp)?);

    Ok(())
}

Path Parameters

ParameterTypeDescription
discount_idstringDiscount Id

Body

FieldTypeDescription
amountobjectIf present, update the discount amount: - If discount_type is percentage, this represents basis points (e.g., 540 = 5.4%). - Otherwise, this represents USD cents (e.g., 100 = $1.00). Must be at least 1 if provided.
codeobjectIf present, update the discount code (uppercase).
expires_atobject
nameobject
preserve_on_plan_changeobjectWhether this discount should be preserved when a subscription changes plans. If not provided, the existing value is kept.
restricted_toobjectIf present, replaces all restricted product IDs with this new set. To remove all restrictions, send empty array
subscription_cyclesobjectNumber of subscription billing cycles this discount is valid for. If not provided, the discount will be applied indefinitely to all recurring payments related to the subscription.
typeobject
usage_limitobject

Responses

200 Status

FieldTypeDescription
amountintegerThe discount amount. - If discount_type is percentage, this is in basis points (e.g., 540 => 5.4%). - Otherwise, this is USD cents (e.g., 100 => $1.00).
business_idstringThe business this discount belongs to.
codestringThe discount code (up to 16 chars).
created_atstringTimestamp when the discount is created
discount_idstringThe unique discount ID
expires_atobjectOptional date/time after which discount is expired.
nameobjectName for the Discount
preserve_on_plan_changebooleanWhether this discount should be preserved when a subscription changes plans. Default: false (discount is removed on plan change)
restricted_toarray<string>List of product IDs to which this discount is restricted.
subscription_cyclesobjectNumber of subscription billing cycles this discount is valid for. If not provided, the discount will be applied indefinitely to all recurring payments related to the subscription.
times_usedintegerHow many times this discount has been used.
typeDiscountTypeThe type of discount, e.g. percentage, flat, or flat_per_unit.
usage_limitobjectUsage limit for this discount, if any.
  • If discount_type is percentage, this is in basis points (e.g., 540 => 5.4%). If not provided, the discount will be applied indefinitely to

  • If discount_type is percentage, this is in basis points (e.g., 540 => 5.4%). If not provided, the discount will be applied indefinitely to

  • If discount_type is percentage, this is in basis points (e.g., 540 => 5.4%). If not provided, the discount will be applied indefinitely to

  • If discount_type is percentage, this is in basis points (e.g., 540 => 5.4%). If not provided, the discount will be applied indefinitely to

Updated discount

  • If discount_type is percentage, this is in basis points (e.g., 540 => 5.4%). If not provided, the discount will be applied indefinitely to

404 Status

Discount not found or soft-deleted

500 Status

Something went wrong :(