Skip to main content
PATCH
/
entitlements
/
{id}
JavaScript
import DodoPayments from 'dodopayments';

const client = new DodoPayments({
  bearerToken: process.env['DODO_PAYMENTS_API_KEY'], // This is the default and can be omitted
});

const entitlement = await client.entitlements.update('ent_jt7jcvI79Xh8eehqgWdcm');

console.log(entitlement.id);
import os
from dodopayments import DodoPayments

client = DodoPayments(
bearer_token=os.environ.get("DODO_PAYMENTS_API_KEY"), # This is the default and can be omitted
)
entitlement = client.entitlements.update(
id="ent_jt7jcvI79Xh8eehqgWdcm",
)
print(entitlement.id)
package main

import (
"context"
"fmt"

"github.com/dodopayments/dodopayments-go"
"github.com/dodopayments/dodopayments-go/option"
)

func main() {
client := dodopayments.NewClient(
option.WithBearerToken("My Bearer Token"),
)
entitlement, err := client.Entitlements.Update(
context.TODO(),
"ent_jt7jcvI79Xh8eehqgWdcm",
dodopayments.EntitlementUpdateParams{},
)
if err != nil {
panic(err.Error())
}
fmt.Printf("%+v\n", entitlement.ID)
}
package com.dodopayments.api.example;

import com.dodopayments.api.client.DodoPaymentsClient;
import com.dodopayments.api.client.okhttp.DodoPaymentsOkHttpClient;
import com.dodopayments.api.models.entitlements.Entitlement;
import com.dodopayments.api.models.entitlements.EntitlementUpdateParams;

public final class Main {
private Main() {}

public static void main(String[] args) {
DodoPaymentsClient client = DodoPaymentsOkHttpClient.fromEnv();

Entitlement entitlement = client.entitlements().update("ent_jt7jcvI79Xh8eehqgWdcm");
}
}
package com.dodopayments.api.example

import com.dodopayments.api.client.DodoPaymentsClient
import com.dodopayments.api.client.okhttp.DodoPaymentsOkHttpClient
import com.dodopayments.api.models.entitlements.Entitlement
import com.dodopayments.api.models.entitlements.EntitlementUpdateParams

fun main() {
val client: DodoPaymentsClient = DodoPaymentsOkHttpClient.fromEnv()

val entitlement: Entitlement = client.entitlements().update("ent_jt7jcvI79Xh8eehqgWdcm")
}
require "dodopayments"

dodo_payments = Dodopayments::Client.new(
bearer_token: "My Bearer Token",
environment: "test_mode" # defaults to "live_mode"
)

entitlement = dodo_payments.entitlements.update("ent_jt7jcvI79Xh8eehqgWdcm")

puts(entitlement)
<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Dodopayments\Client;
use Dodopayments\Core\Exceptions\APIException;
use Dodopayments\Entitlements\FeatureType;

$client = new Client(
bearerToken: getenv('DODO_PAYMENTS_API_KEY') ?: 'My Bearer Token',
environment: 'test_mode',
);

try {
$entitlement = $client->entitlements->update(
'ent_jt7jcvI79Xh8eehqgWdcm',
description: 'description',
integrationConfig: [
'featureID' => 'feature_id', 'featureType' => FeatureType::BOOLEAN
],
metadata: ['foo' => 'string'],
name: 'name',
);

var_dump($entitlement);
} catch (APIException $e) {
echo $e->getMessage();
}
using System;
using DodoPayments.Client;
using DodoPayments.Client.Models.Entitlements;

DodoPaymentsClient client = new();

EntitlementUpdateParams parameters = new() { ID = "ent_jt7jcvI79Xh8eehqgWdcm" };

var entitlement = await client.Entitlements.Update(parameters);

Console.WriteLine(entitlement);
use dodopayments::Client;

#[tokio::main]
async fn main() -> dodopayments::Result<()> {
let client = Client::from_env()?;
let id = "id";
let result = client
.entitlements()
.update()
.id(id)
.body(Default::default())
.await?;
println!("{result:?}");
Ok(())
}
curl --request PATCH \
--url https://test.dodopayments.com/entitlements/{id} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"description": "<string>",
"integration_config": {
"feature_id": "<string>",
"feature_type": "boolean"
},
"metadata": {},
"name": "<string>"
}
'
{
  "business_id": "<string>",
  "created_at": "2023-11-07T05:31:56Z",
  "id": "<string>",
  "integration_config": {
    "feature_id": "<string>",
    "feature_type": "boolean"
  },
  "is_active": true,
  "metadata": {},
  "name": "<string>",
  "updated_at": "2023-11-07T05:31:56Z",
  "description": "<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

Entitlement ID

Body

application/json
description
string | null
integration_config
Feature Flag Config · object

Integration-specific configuration supplied when creating or updating an entitlement. The shape required matches the entitlement's integration_type.

Untagged enum: variants are matched in order. FeatureFlag must precede LicenseKey, whose fields are all optional and would otherwise match a feature_flag config.

metadata
null | Metadata · object

Arbitrary key-value metadata. Values can be string, integer, number, or boolean.

name
string | null

Response

Detailed view of a single entitlement: identity, integration type, integration-specific configuration, and metadata.

business_id
string
required

Identifier of the business that owns this entitlement.

created_at
string<date-time>
required

Timestamp when the entitlement was created.

id
string
required

Unique identifier of the entitlement.

integration_config
Feature Flag Config · object
required

Integration-specific configuration. For digital_files entitlements this includes presigned download URLs for each attached file.

integration_type
enum<string>
required

Platform integration this entitlement uses.

Available options:
discord,
telegram,
github,
figma,
framer,
notion,
digital_files,
license_key,
feature_flag
is_active
boolean
required

Always true for entitlements returned by the public API; soft-deleted entitlements are not returned.

metadata
Metadata · object
required

Arbitrary key-value metadata supplied at creation or via PATCH.

name
string
required

Display name supplied at creation.

updated_at
string<date-time>
required

Timestamp when the entitlement was last modified.

description
string | null

Optional description supplied at creation.

Last modified on May 6, 2026