List transfer batches
Lists transfer batches for the authenticated organization or project scope.
GET/Run in dashboard
Requires an API key with the transfer_batches.read action.
Query parameters
-
sourceCustodyWalletId·string· min length 1 · examplecwlt_exampleFilter by exact source SDP Wallet ID.
-
token·string· exampleSOLFilter by token symbol or mint.
-
status·string· one ofpending,processing,confirmed,failed,partially_failed,archived· exampleprocessingFilter by transfer batch status.
-
externalId·string· min length 1 · max length 256 · examplepayroll_2026_06_30Filter by caller-provided batch correlation ID.
-
page·integer· greater than 0 · default1· example1Page number (1-based).
-
pageSize·integer· min 1 · max 100 · default20· example20Number of batches per page.
Headers
-
x-project-id·string· min length 1 · exampleprj_exampleRequired for dashboard sessions. API keys use their assigned project.
Responses
-
200Transfer batch list-
data·object[]· required-
id·string· required · examplexbatch_exampleTransfer batch identifier.
-
organizationId·string· required · min length 1 · exampleorg_exampleOrganization identifier.
-
projectId·string· required · min length 1 · exampleprj_exampleProject identifier for the transfer batch.
-
externalId·string | null· required · examplepayroll_2026_06_30Caller-provided batch correlation ID.
-
sourceCustodyWalletId·string | null· required · examplecwlt_exampleExact source SDP Wallet ID, or null for unresolved legacy batches.
-
sourceProviderWalletId·string· required · min length 1 · exampleprivy_wallet_123Source Provider wallet ID retained as evidence.
-
sourceAddress·string· required · min length 32 · max length 44 · exampleSo11111111111111111111111111111111111111112Source custody wallet address.
-
token·string· required · exampleSOLToken symbol or mint address.
-
status·string· required · one ofpending,processing,confirmed,failed,partially_failed,archived· exampleprocessingTransfer batch status.
-
totalAmount·string | null· required · example1000.00Total requested batch amount in UI units, when computed.
-
recipientCount·integer· required · example20Number of recipient rows in the batch.
-
transactionCount·integer· required · example1Number of Solana transaction chunks for the batch.
-
createdAt·string· required · formatdate-time· example2025-01-01T00:00:00.000ZISO 8601 timestamp.
-
updatedAt·string· required · formatdate-time· example2025-01-01T00:00:00.000ZISO 8601 timestamp.
-
-
meta·object· requiredPagination metadata.
-
total·integer· required · min 0Total items.
-
page·integer· required · greater than 0Current page number.
-
pageSize·integer· required · greater than 0Items per page.
-
hasMore·boolean· requiredWhether more pages exist.
-
requestId·string· required · min length 1 · examplereq_exampleRequest identifier for tracing.
-
-
-
400Bad Request-
error·object· requiredStandard error payload.
-
code·string· requiredMachine-readable error code.
-
message·string· requiredHuman-readable error message.
-
details·objectOptional error details for debugging.
*·any
-
-
meta·object-
requestId·string· min length 1 · examplereq_exampleRequest identifier for tracing.
-
-
-
401UnauthorizedSame fields as
400. -
403Forbidden. Requires thetransfer_batches.readaction: an API key must hold it (a module'smanageorexecutealso covers itsread), and a signed-in member's organization role must include it. Without it the error is INSUFFICIENT_PERMISSIONS anderror.details.actionnames the action. Any other 403 names its own reason.Same fields as
400. -
404Not FoundSame fields as
400. -
409ConflictSame fields as
400. -
500Internal Server ErrorSame fields as
400.
Example request
curl 'https://api.solana.com/v1/payments/transfer-batches' \
-H "Authorization: Bearer $SDP_API_KEY"Example responses
{
"data": [
{
"id": "xbatch_example",
"organizationId": "org_example",
"projectId": "prj_example",
"externalId": "payroll_2026_06_30",
"sourceCustodyWalletId": "cwlt_example",
"sourceProviderWalletId": "privy_wallet_123",
"sourceAddress": "So11111111111111111111111111111111111111112",
"token": "SOL",
"status": "processing",
"totalAmount": "1000.00",
"recipientCount": 20,
"transactionCount": 1,
"createdAt": "2025-01-01T00:00:00.000Z",
"updatedAt": "2025-01-01T00:00:00.000Z"
}
],
"meta": {
"total": 1,
"page": 1,
"pageSize": 1,
"hasMore": false,
"requestId": "req_example"
}
}Error responses use the standard error shape.