Giftpack API 让你能够在全球范围内,以编程方式构建关系驱动赠礼流程(relationship-driven gifting workflows),覆盖礼品、品牌周边(swag)和奖励场景。
你无需单独搭建奖励门户,也不需要手动协调供应商;可以直接在现有企业系统(如 CRM、HRIS、内部运营平台)中编排赠礼事件(gifting events)。API 使你的应用能够以程序化方式触发、管理并监控互动时刻,而 Giftpack 负责履约执行(fulfillment)、可用性、物流与合规。
Giftpack 的结构并非传统电商 API。它不是围绕商品目录和结账交易,而是将赠礼流程(gifting)建模为关系事件。接收人的身份、时间点和业务上下文与所发送的商品一样,都是一等输入。这使集成能够自然映射到真实业务触发点,如入职、周年纪念、成交、留存活动或客户互动里程碑。
API 提供赠礼流程各阶段的生命周期可见性,包括 redemption 状态、fulfillment 进度和配送追踪(delivery tracking)。通过这些端点,你的系统可以衡量效果、自动化后续动作,并将赠礼流程(gifting)纳入报表与运营工作流。
在系统层面,Giftpack 遵循如下生命周期模型:
Intent → Campaign → Recipient → Redemption → Fulfillment → Tracking
每个阶段代表互动生命周期中的一次状态迁移:
Intent 定义业务触发或目标。Campaign 作为互动容器。Recipient 表示参与活动的对象身份。Redemption 记录接收人的行为。Fulfillment 处理运营履约流程。Tracking 提供后续可见性与分析。业务事件
│
▼
[ Intent ]
│
│ (同步 API)
▼
[ Campaign Created ]
│
│ (同步 API)
▼
[ Recipient Attached ]
│
│ (同步 API)
▼
[ Redemption Link Issued ]
│
│ ────── 用户行为(异步) ──────
▼
[ Redemption Claimed ]
│
│ (Webhook: giftee.preparing)
▼
[ Shipment Processing ]
│
│ (Webhook: giftee.shipped)
▼
[ Tracking / Delivered ]
│
│ (Webhook: giftee.delivered / giftee.failed / giftee.returned)
▼
[ Final Tracking State ]
│
│ (Webhook: giftee.reviewed)
●
生命周期前半段通过 API 调用同步发起;后半段通过接收人行为与运营履约事件(fulfillment events)异步推进。集成时应依赖状态字段与 webhook 事件,而不是假设会立即完成。
该模型可一致应用于智能赠礼(smart gifting)AutoMatch™ 活动、商城订单(marketplace orders)、品牌周边流程(swag workflows)及企业自动化场景。尤其在异步与事件驱动环境中,理解该模型是构建可靠集成的关键。

这些定义描述了 Giftpack API 集成中使用的核心领域对象。 在构建工作流之前,理解这些对象之间的关系非常关键。 Giftpack 主要运行在三层模型上:
互动层 (Engagement Layer)商业层 (Commerce Layer)供应与运营层 (Supply & Operations Layer)该层建模发送方与接收方之间的关系生命周期。 它是事件驱动(event-driven)且常常是异步的。
可能接收礼品或奖励的真实个体(员工、客户或合作伙伴)。在 API 语义中,Recipient 是 Giftpack 工作区内的持久身份。Recipient 可独立于 Campaign 存在,也可在不同时间参与多个 Campaign。
用于定向与批量分配的逻辑集合。分组是组织结构概念,不代表交易。
Campaign 表示一次独立的互动意图。
其定义内容包括:
Campaign 不是订单。 Campaign 是生命周期容器,redemption 与 fulfillment 事件在其中发生。
当 Recipient 被附加到 Campaign 时,会成为 Giftee。 Giftee 代表接收人在该 Campaign 中的参与状态。 这个区分非常重要:
Recipient = 身份Giftee = 活动绑定状态定义活动的展示层,包括:
模板影响沟通方式,不影响 fulfillment 逻辑。
Redemption 表示接收人执行领取礼品的动作。 可通过以下方式发生:
Redemption 将状态从 “invited” 转为 “claimed”。
允许 Giftee 领取礼品的唯一 URL。
使用 Campaign Template 发送 redemption 链接的邮件。
该层处理交易与 fulfillment 相关操作。 它可以独立于 Campaign 工作流运行。
由发送方直接选择的固定精选商品。 通常在下单后会立即 fulfilled。
面向一个或多个接收人的直接购买交易。 可跳过 Campaign 式 redemption,直接进入 fulfillment。 Marketplace Order ≠ Campaign。
在 Marketplace Order 中被指定为 fulfillment 目标的接收人。
通过 Giftpack 库存与仓储系统管理的可定制商品。 可能需要:
Marketplace 或 Swag 目录中的可售容器对象。
商品的具体可购买配置,例如:
交易始终发生在 Product Variant 层级。
该层支撑 fulfillment 与 vendor 管理。 对大多数集成来说通常被抽象,但对理解状态流转仍然重要。
负责以下内容的运营层:
向 Giftpack 生态提供商品的 vendor。
由 Procurement Office 监督的 Provider,用于目录质量、onboarding 与运营管控。
在 API 操作中引用 Provider 的唯一标识符。
以下结构展示了这些实体之间的关系:
Recipient
└─ may belong to Recipient Group
└─ becomes Giftee when attached to Campaign
Campaign (Engagement Container)
├─ defines Redemption rules
├─ manages Giftee states
└─ may generate Fulfillment Orders
Commerce Layer
├─ Marketplace Order (direct transaction)
└─ Swag Order (inventory-based transaction)
Redemption
├─ Link-based
├─ Email-based
└─ Transitions state before fulfillment

所有对 Giftpack Integration API 的请求都必须使用有效 API Key 完成认证。
每个端点都强制执行认证,并以 workspace 边界进行访问控制。 未授权或认证不正确的请求会在业务逻辑执行前被拒绝。
每个 Giftpack workspace 都可以在 Giftpack 控制台创建一个或多个 API Key。
API Key 用于:
API Key 为 workspace-scoped。
无法访问其来源 workspace 之外的资源。
Giftpack 不会在不同 workspace 之间共享 API Key。
安全提示:API Key 可访问 workspace 级资源,请按机密凭证进行管理。
创建 API Key 步骤:
API Key 创建后立即生效。 系统会记录密钥创建事件以用于审计与追踪。
重要提示:请妥善保管 API Key,不要在 client-side 代码或公开仓库中暴露。
每次请求都必须在 X-API-KEY header 中携带 API Key。
GET /v1/recipients HTTP/1.1
Host: developer.giftpack.ai
X-API-KEY: YOUR_API_KEY
缺少有效 API Key 的请求将返回认证错误。 认证会在请求处理和资源评估前执行。
授权在 workspace 级别执行。 API Key 仅可访问:
严禁跨 workspace 访问。 授权决策在服务端执行,不能通过客户端参数覆盖。
企业集成应建立完善的密钥生命周期管理机制。
建议实践:
若 API Key 被吊销,后续使用该密钥的请求将被拒绝。
Giftpack 不会自动轮换 API Key。密钥管理由集成方负责。
所有 API 请求必须通过 HTTPS。
TLS 1.2所有传输中的数据均使用行业标准 TLS 加密。
包括:
Giftpack 不支持不安全传输连接。
为确保平台稳定与公平使用,API 请求受速率限制。 超限时 API 将返回:
429RATE_LIMIT_EXCEEDED 错误码集成方应:
对于高并发或突发企业负载,请联系 Giftpack 讨论速率配置。
Giftpack API 可能处理个人可识别信息(PII),包括:
开发者有责任:
Giftpack 仅为执行赠礼与奖励流程处理数据。 Giftpack 不会将收件人数据用于广告或无关画像分析。
在企业环境中,建议集成方:
Giftpack 内部会记录:
认证与授权错误采用一致结构。
{
"error_code": "UNAUTHORIZED",
"message": "Invalid or missing API key",
"action": "Verify your API key and include it in the X-API-KEY header"
}
常见认证相关错误码包括:
UNAUTHORIZEDFORBIDDENRATE_LIMIT_EXCEEDED生产环境建议:
若怀疑 API Key 泄露:

Giftpack API 使用标准 HTTP 状态码,并返回结构化错误 payload。
所有错误响应都包含机器可读错误码与 request_id。
联系支持团队时,请始终提供 request_id。
所有错误都遵循以下结构:
{
"error": {
"code": "invalid_request",
"message": "Recipient email is required.",
"request_id": "req_123"
}
}
code – 机器可读错误标识message – 人类可读错误说明request_id – 用于调试追踪的唯一请求标识建议在系统日志中保留 request_id,用于运维排障。
Giftpack 使用标准 HTTP 状态语义:
200 / 201 – 请求成功400 – 校验失败或请求格式错误401 – API Key 缺失或无效403 – 权限不足404 – 资源不存在409 – 冲突(如重复资源或状态冲突)429 – 超出速率限制5xx – 服务器内部错误并非所有错误都应该重试。
可安全重试
429(超出速率限制)5xx(服务器错误)重试时请使用 exponential backoff。 避免激进的立即重试。
不要重试
400(校验错误)401 / 403(认证或权限失败)404(资源引用无效)409(业务逻辑冲突)这些错误通常表示客户端需要先修正后再提交。
HTTP 成功并不等于履约完成。
例如:
201 Created 仅表示 campaign 已创建Giftpack 的多数操作是异步推进的。
要确定生命周期状态,请:
GET 端点查询资源状态请将 HTTP 成功视为“请求已被接受”,而非“业务已完成”。
若集成会进行重试,请确保重复请求不会产生非预期副作用。
适用时建议:
Giftpack 可能根据端点逻辑拒绝重复创建资源。
当触发速率限制时:
429集成应:
若遇到异常错误:
request_idrequest_id这将帮助支持团队快速在服务器日志中定位问题。

Giftpack 工作流是异步的。
API 成功响应仅表示请求已被接受。 redemption、fulfillment、shipping、delivery 等生命周期更新会通过 webhook 事件通知。
生产集成 必须将 webhook 作为主要状态更新机制。 状态端点轮询仅用于对账或恢复。
Webhook 事件类型由 Giftpack 控制台直接管理与展示。 查看或配置可用事件触发器:
https://giftpack.ai/app/developer/webhooks
控制台 UI 反映当前已支持且可用于生产的事件类型。 可用事件应以 UI 为准。
当前支持示例:
giftee.createdgiftee.launchedgiftee.preparinggiftee.shippedgiftee.deliveredgiftee.failedgiftee.returnedgiftee.reviewed事件可用性会随时间演进。生产配置请始终参考控制台。
Webhook 按 workspace 在控制台中配置。 每条配置包含:
nameendpointevent_typesactive 开关secret key配置示例:
{
"name": "Giftpack Delivery Updates",
"endpoint": "https://example.com/webhooks/giftpack",
"event_types": [
"giftee.created",
"giftee.shipped",
"giftee.delivered"
]
}
一个 workspace 可拥有多个 webhook 配置。
Webhook 采用 at-least-once delivery 模型。
意味着:
当你的端点返回任意 2xx HTTP 状态码,即视为投递成功。
非 2xx 响应会触发额外重试。
你的 webhook 端点必须:
POST + JSON payload2xx HTTP 状态确认成功确认示例:
HTTP/1.1 200 OK
Content-Type: application/json
{"ok": true}
建议使用 webhook event ID 作为去重键。
Giftpack 控制台提供完整 webhook 事件日志。 每条事件包含:
日志状态码:
0 – failed1 – processing2 – success事件详情 API 同时暴露:
事件详情对象示例:
{
"webhook_event_id": "wev_01H...",
"webhook_setting_id": "whs_01H...",
"webhook_event_type": "giftee.shipped",
"webhook_event_resource_type": "giftee",
"webhook_event_resource_id": "gft_01H...",
"webhook_event_status": 2,
"webhook_event_attempts": 1,
"webhook_event_data": "{...raw payload...}",
"webhook_event_created_at": "2026-02-20T02:00:00.000Z",
"webhook_event_updated_at": "2026-02-20T02:00:01.000Z"
}
每次尝试记录包含:
该日志提供完整可追踪性,便于集成排错。
Giftpack 在控制台提供内置 Webhook 测试控制台。 你可以:
可用于:
测试响应示例:
{
"event_data": {
"type": "giftee.created",
"resource_type": "giftee",
"resource_id": "gft_01H..."
},
"response_http_status": "200",
"response_http_headers": {"content-type": "application/json"},
"response_http_body": "{\"ok\":true}"
}
测试控制台用于生产启用前的开发与验证。
虽然当前 UI 可能允许配置 http 或 https,但生产集成应始终使用 HTTPS。
使用 HTTPS 可确保:
为确保 webhook 稳定处理:
Webhook 是生命周期更新的权威来源。 不要把同步 API 成功响应当作最终业务状态。
为确保 webhook 事件来自 Giftpack 且未被篡改,每个 webhook 请求都会使用 workspace 专属 secret 进行签名。
生产集成 必须校验 webhook 签名。
每个 webhook 请求都包含:
X-GIFTPACK-SIGNATURE: t=1708459200,v1=abcdef1234567890...
组成部分
t — Unix 时间戳(秒)v1 — HMAC SHA-256 签名签名生成方式:
HMAC_SHA256(secret, `${timestamp}.${raw_body}`)
必须使用原始请求体 raw_body,不能做任何改写。
校验 webhook 请求步骤:
X-GIFTPACK-SIGNATURE headert)和 signature(v1)expected_signature = HMAC_SHA256(secret, `${timestamp}.${raw_body}`)
expected_signature 与 v1为防止重放攻击:
时间窗口示例:
current_time - timestamp <= 300 seconds
示例(Node.js)
const crypto = require('crypto');
function verifySignature(rawBody, signatureHeader, secret) {
if (!signatureHeader) return false;
const elements = signatureHeader.split(',');
const timestamp = elements.find(e => e.startsWith('t='))?.split('=')[1];
const signature = elements.find(e => e.startsWith('v1='))?.split('=')[1];
if (!timestamp || !signature) return false;
const payload = `${timestamp}.${rawBody}`;
const expected = crypto
.createHmac('sha256', secret)
.update(payload, 'utf8')
.digest('hex');
const isValid = crypto.timingSafeEqual(
Buffer.from(expected),
Buffer.from(signature)
);
const currentTime = Math.floor(Date.now() / 1000);
const tolerance = 300; // 5 minutes
if (Math.abs(currentTime - Number(timestamp)) > tolerance) {
return false;
}
return isValid;
}
Express 示例:
app.post('/webhooks/giftpack',
express.raw({ type: 'application/json' }),
(req, res) => {
const signature = req.headers['x-giftpack-signature'];
const isValid = verifySignature(
req.body.toString(),
signature,
process.env.GIFTPACK_WEBHOOK_SECRET
);
if (!isValid) {
return res.status(400).send('Invalid signature');
}
const event = JSON.parse(req.body.toString());
// Process event safely
res.status(200).json({ ok: true });
});
Webhook secrets:
如 secret 已轮换,请立即更新你的集成。
如果签名校验失败:
2xx HTTP 状态重复签名失败可能表示:
Webhook 投递遵循 at-least-once。 可能存在重复事件。

Giftpack API 围绕真实业务工作流设计。
与其直接逐个查端点,不如先选择你要实现的业务案例。每个案例都说明:
Webhook 验签与签名处理细节请参考 Webhook 与异步事件 章节。
业务场景
你希望:
这是基于 Campaign 的 Giftee 流程。
生命周期概览
Create Campaign
↓
Add Giftee
↓
Generate Redemption Link
↓
Recipient Claims
↓
Order Processing
↓
Shipped
↓
Delivered / Failed / Returned
POST /v1/campaigns
定义:
POST /v1/giftees
每个 giftee 代表该 campaign 内的一位收件人。
POST /v1/campaigns/{campaignId}/giftees/{gifteeId}/redeemlink
返回:
share_claim_link你可以:
该案例建议订阅 giftee 生命周期:
giftee.created
giftee.launched
giftee.preparing
giftee.shipped
giftee.delivered
giftee.failed
giftee.returned
giftee.reviewed
这些事件代表每位 giftee 的运营状态。 详见 Webhook 与异步事件章节:
业务场景
你希望:
这是 Direct Marketplace Order 流程。
生命周期概览
Select Product
↓
Create Marketplace Order
↓
Preparing
↓
Shipped
↓
Delivered / Failed / Returned
GET /v1/providers/{providerCode}/products
使用该端点浏览可用商品。 如需完整详情:
GET /v1/providers/{providerCode}/products/{productId}
选择:
POST /v1/marketplaceorders
提供:
订单会被异步受理并开始履约。
Marketplace 履约最终映射为 giftee 生命周期事件:
giftee.preparing
giftee.shipped
giftee.delivered
giftee.failed
giftee.returned
详见 Webhook 与异步事件章节:
业务场景
你希望:
这是 Points-based gifting 流程。
生命周期概览
Enable Points
↓
Allocate Points
↓
Recipient Redeems
↓
Giftee Created
↓
Fulfillment Lifecycle
POST /v1/pointrecipients/{memberId}/enablepointfeature
该操作允许收件人持有并兑换积分。
PATCH /v1/pointrecipients/{memberId}/points
提供:
收件人余额会立即更新。
当收件人兑换积分后:
积分兑换最终会映射为 giftee 生命周期事件:
giftee.created
giftee.preparing
giftee.shipped
giftee.delivered
giftee.failed
giftee.returned
详见 Webhook 与异步事件章节: