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 workspace 內的持久身分。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 timestamp(秒)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為防止 replay attack:
時間視窗範例:
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 驗證與簽章處理細節,請參考 Webhooks 與非同步事件 章節。
業務情境
你想要:
此流程屬於以 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 詳細資訊請參考 Webhooks 與非同步事件章節:
業務情境
你想要:
此流程屬於 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 詳細資訊請參考 Webhooks 與非同步事件章節:
業務情境
你想要:
此流程屬於 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 詳細資訊請參考 Webhooks 與非同步事件章節: