externalReferenceId 與 accountId。沒有每位使用者的上限 — 使用 nextCursor 分頁即可遍歷視窗內所有目標使用者的每筆交易。
若未提供日期篩選,預設為最近 90 天。
重大變更。 此查詢先前會回傳
results,每個目標使用者一筆條目,且各自最多含 20 筆交易。現在改為回傳扁平的 transactions 清單並以游標分頁。請參見從每目標回應遷移。Requirements
Authorization: Basic <API_KEY>(你的應用程式 API 金鑰)- 你的應用程式啟用批次 API 能力
- 每個目標使用者的授權需具備
LIST_PAYMENT與LIST_PURCHASES範圍
Query
Variables
Response
Arguments
日期視窗界定資料範圍;
limit 則界定單一頁面。視窗最長可跨 365 天。 交易以月份分區儲存,而視窗內的每個分區都會針對每個目標進行掃描,因此視窗越寬,每頁成本越高——並非免費。若需更長期的歷史,請使用匯出功能。
Targeting
targetSpec.mode 可為 SELECTED(在 targets 中列出使用者,使用你連接時的 externalReferenceId)或 ALL_CONNECTED(你的應用程式上所有具有效授權的使用者)。重複的 targets 會被移除。
此查詢最多接受1,000 位目標使用者。若超過,請使用非同步匯出。
Response fields
BulkTransaction
需注意的四個行為:
transactionType是人類可讀的標籤,並非穩定的列舉——其值看起來像"Account Transfer - In",而非TRANSFER。請勿在程式碼中以此欄位進行分支;請以recordId與金額/正負號處理邏輯,並將此欄位視為顯示用文字。- 僅回傳
PENDING與SETTLED的交易——被拒與其他非基準記錄會被排除,與單一使用者交易介面一致。 - 排序為全串流的最新在前(
createdAt遞減,若同時則以recordId,再以使用者打破平手)。 - 共享帳戶上的同一筆交易,對每個可見授權各出現一次——會有兩筆擁有相同
recordId但不同externalReferenceId的歸屬列。
BulkTransaction 是目的明確且精簡的型別。它不是單一使用者交易查詢所回傳的完整 Transaction 型別——以上欄位即為完整集合。若需更豐富的逐筆交易資料,請使用非同步匯出。
BulkTargetFailure
失敗的目標不會使請求失敗。
同時選擇兩種識別碼。 對於你在連接授權時未提供
externalReferenceId 的授權,其值將為 null,因此單獨使用它可能無法識別出哪位使用者失敗。當目標已解析時,accountId 會被填入——這適用於 INSUFFICIENT_SCOPE 與 ACCOUNT_NOT_PERMITTED——而僅在 TARGET_NOT_CONNECTED 與 INVALID_TARGET_IDENTIFIER(無法解析)時為 null。查詢 errors { externalReferenceId accountId code message } 可確保每筆條目至少能由兩者之一識別。
Request-level errors
以上皆為每目標錯誤。以下則會拒絕整體請求,回傳data.getBulkTransactions: null 並伴隨 GraphQL 錯誤。請以 extensions.code 分支,不要依賴錯誤訊息文字——措辭可能變更,代碼不會。
上述兩個日期錯誤共用代碼——兩者皆表示「你要求的區間不可用」——而
message 會加以區分:
APPLICATIONS-0010 失敗。請將其視為「從第一頁重新開始」,而非可重試的錯誤。
Paging
讀取第一頁,接著沿用nextCursor,直到 hasMore 為 false。除游標外,跨頁請保持其他引數完全相同——游標編碼了該特定查詢排序中的位置。
Migrating from the per-target response
When to use the export instead
getBulkTransactions 可以透過分頁走訪完整歷史,因此匯出適用於你不想逐頁讀取的情境——超過 1,000 位使用者、超過一年以上的視窗、排程批次作業,或當你需要超出 BulkTransaction 所載欄位的更豐富逐筆資料。提交 GET_TRANSACTIONS_EXPORT 至 submitBulkOperation,輪詢 getBulkOperationJob,並從短效的 resultUrl 下載 NDJSON。請參見 Bulk Operations。