跳转到主要内容
POST
/
grants
/
{grant_id}
/
license-key
`POST /grants/{grant_id}/license-key` — merchant fulfills a pending manual license-key grant by supplying the key value.
curl --request POST \
  --url https://test.dodopayments.com/grants/{grant_id}/license-key \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "key": "<string>",
  "activations_limit": 123,
  "expires_at": "2023-11-07T05:31:56Z"
}
'
{
  "business_id": "<string>",
  "created_at": "2023-11-07T05:31:56Z",
  "customer_id": "<string>",
  "entitlement_id": "<string>",
  "id": "<string>",
  "metadata": {},
  "updated_at": "2023-11-07T05:31:56Z",
  "delivered_at": "2023-11-07T05:31:56Z",
  "digital_product_delivery": {
    "files": [
      {
        "download_url": "<string>",
        "expires_in": 123,
        "file_id": "<string>",
        "filename": "<string>",
        "content_type": "<string>",
        "file_size": 123
      }
    ],
    "external_url": "<string>",
    "instructions": "<string>"
  },
  "error_code": "<string>",
  "error_message": "<string>",
  "license_key": {
    "activations_used": 123,
    "key": "<string>",
    "activations_limit": 123,
    "expires_at": "2023-11-07T05:31:56Z"
  },
  "oauth_expires_at": "2023-11-07T05:31:56Z",
  "oauth_url": "<string>",
  "payment_id": "<string>",
  "revocation_reason": "<string>",
  "revoked_at": "2023-11-07T05:31:56Z",
  "subscription_id": "<string>"
}
仅对在具有 fulfillment_mode: manual 的许可证密钥授权下创建的授予使用此端点。授予必须处于 pending 状态且没有附加密钥。有关完整流程,请参阅手动履行手动许可证密钥履行集成指南

授权

Authorization
string
header
必填

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

路径参数

grant_id
string
必填

Grant ID

请求体

application/json

Request body for manually fulfilling a pending license-key grant.

key
string
必填

The license key string to deliver to the customer.

activations_limit
integer<int32> | null

Optional per-key activation limit; falls back to the entitlement config.

expires_at
string<date-time> | null

Optional per-key expiry; falls back to the entitlement config's duration.

响应

Detailed view of a single entitlement grant: who it's for, its lifecycle state, and any integration-specific delivery payload.

business_id
string
必填

Identifier of the business that owns the grant.

created_at
string<date-time>
必填

Timestamp when the grant was created.

customer_id
string
必填

Identifier of the customer the grant was issued to.

entitlement_id
string
必填

Identifier of the entitlement this grant was issued from.

id
string
必填

Unique identifier of the grant.

integration_type
enum<string>
必填

The integration type of the grant's entitlement (e.g. license_key).

可用选项:
discord,
telegram,
github,
figma,
framer,
notion,
digital_files,
license_key
metadata
object
必填

Arbitrary key-value metadata recorded on the grant.

status
enum<string>
必填

Lifecycle status of the grant.

可用选项:
Pending,
Delivered,
Failed,
Revoked
updated_at
string<date-time>
必填

Timestamp when the grant was last modified.

delivered_at
string<date-time> | null

Timestamp when the grant transitioned to delivered, when applicable.

digital_product_delivery
Digital Product Delivery · object

Digital-product-delivery payload, present when the entitlement integration is digital_files.

error_code
string | null

Machine-readable code reported when delivery failed, when applicable.

error_message
string | null

Human-readable message reported when delivery failed, when applicable.

license_key
object

License-key delivery payload, present when the entitlement integration is license_key.

oauth_expires_at
string<date-time> | null

Timestamp when oauth_url stops being valid, when applicable.

oauth_url
string | null

Customer-facing OAuth URL for OAuth-style integrations. Populated during the customer-portal accept flow; null until the customer completes that step, and on grants for non-OAuth integrations.

payment_id
string | null

Identifier of the payment that triggered this grant, when applicable.

revocation_reason
string | null

Reason recorded when the grant was revoked, when applicable.

revoked_at
string<date-time> | null

Timestamp when the grant transitioned to revoked, when applicable.

subscription_id
string | null

Identifier of the subscription that triggered this grant, when applicable.

Last modified on June 9, 2026