---
title: "Execute a batch of wallet transfers"
method: POST
path: "/eclipse-conductor/rest/v1/global/bulk-transfers"
tags: ["z) Global Functionality"]
---

# Execute a batch of wallet transfers

`POST /eclipse-conductor/rest/v1/global/bulk-transfers`

Processes a list of wallet transfers either atomically (all-or-nothing, max 500) or non-atomically in the background (max 500,000, results emailed to caller). A uniqueId per transfer prevents duplicates; if omitted the system assigns a GUID.

## Query parameters

- `atomic` boolean
- `callbackUrl` string

## Request body

- EclipseBulkTransferFromAnySource[]
  - `amount` number — Amount in the major currency unit e.g. 50.80 for 50 GBP and 80 pence
  - `description` string
  - `externalId` string — External identifier for the transfer which can be used for reconciliation. Need not be unique
  - `externalUniqueId` string, required — Unique identifier for the transfer (idempotency key). Duplicates are rejected to ensure double transactions are impossible
  - `fromAccountNumber` string — fromAccountNumber for source wallet
  - `fromWalletId` integer — Source wallet id
  - `ignoreLimits` boolean — Optional. If true then the transfer will ignore the wallets transfer limits and any positive minimum balance setting. Requires special permissions
  - `onlyCheck` boolean — Optional. If true then the transfer wont actually be done but only validated to see if it could have been done
  - `sessionId` string — Optional: Used for 2-step reserve/transfer transactions. The sessionId of a reservation in order to make this transfer first remove the reservation and then do the transfer atomically
  - `toAccountNumber` string — toAccountNumber for destination wallet
  - `toPan` string — toPan for wallet to credit
  - `toWalletFriendlyId` string — toWalletFriendlyId for wallet to credit
  - `toWalletId` integer — Destination wallet id

## Response `200`

OK

- BulkTransferResult
  - `bulkTransferId` string
  - `inProgress` boolean
  - `percentageComplete` integer
  - `secondsTillComplete` integer
  - `transfersDone` integer
  - `transfersFailed` integer
  - `transfersPerSecond` integer
  - `transfersSucceeded` integer
  - `transfersTotal` integer

## Other responses

- `400` — Bad Request
- `500` — Internal Server Error

---

[API](https://skmtc.dev/eftcorp/apis/eclipse-rest-api.md) · [All operations](https://skmtc.dev/eftcorp/apis/eclipse-rest-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/eftcorp/eclipse-rest-api/revisions/9213d52d49a3/schema)
