Batch groups allow you to group up to 1000 transfers under a single reference, which means all the payments within the batch group can be funded at once.
This option is useful if you have customers who need to make multiple payments at once, like paying all monthly invoices or performing monthly or quarterly payment runs.
The flow for creating batch transfers includes the following basic steps, described in detail below:
Many batch group endpoints return a batch group resource. The key properties to take note of are the status and payInDetails properties.
See the Batch group schema for full details on the structure and fields.
| Status | Description |
|---|---|
NEW | New batch group with zero or more transfers. Can have more transfers added to it. Any transfers in a NEW group cannot yet be funded and paid out. |
COMPLETED | The batch group has had all the desired transfers added to it and can no longer accept changes. The transfers in the group can now be funded and paid out. Note: COMPLETED does not mean that payouts have been successfully completed. |
MARKED_FOR_CANCELLATION | Cancellation of the transfers in the batch group was requested. |
PROCESSING_CANCEL | Transfers in the group are in the process of being cancelled. |
CANCELLED | Transfers in the group have been cancelled. |
The payInDetails object describe how the batch group can be funded. This object is only populated when a batch group is in the COMPLETED status.
See the payInDetails property in the schema for full details.
Send a create batch group request to create the group that will hold the transfers.
Set the sourceCurrency field to the ISO 4217 currency code of the currency that will be used to fund the group, and provide a descriptive name (max 100 characters) in the name field.
- Production Environmenthttps://api.wise.com/2026Q4/profiles/{profileId}/batch-groups
- Sandbox Environmenthttps://api.wise-sandbox.com/2026Q4/profiles/{profileId}/batch-groups
curl -i -X POST \
https://api.wise.com/2026Q4/profiles/12345678/batch-groups \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-H 'X-External-Correlation-Id: f47ac10b-58cc-4372-a567-0e02b2c3d479' \
-d '{
"sourceCurrency": "GBP",
"name": "My batch group"
}'The batch group id from the response is used in the next request.
Next, send a create batch transfer request.
- Use the
idfrom the create batch group response as thebatchGroupIdin the endpoint path. - Set the
targetAccountvalue to the recipientidfrom a previously created recipient account. - Set the
quoteUuidvalue to the quoteidfrom a previously created authenticated quote.
The request body follows the create standard transfer request.
- Production Environmenthttps://api.wise.com/2026Q4/profiles/{profileId}/batch-groups/{batchGroupId}/transfers
- Sandbox Environmenthttps://api.wise-sandbox.com/2026Q4/profiles/{profileId}/batch-groups/{batchGroupId}/transfers
curl -i -X POST \
https://api.wise.com/2026Q4/profiles/12345678/batch-groups/54a6bc09-cef9-49a8-9041-f1f0c654cd88/transfers \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-H 'X-External-Correlation-Id: f47ac10b-58cc-4372-a567-0e02b2c3d479' \
-d '{
"targetAccount": 67890,
"sourceAccount": 12345,
"quoteUuid": "bd244a95-dcf8-4c31-aac8-bf5e2f3e54c0",
"customerTransactionId": "a]1b2c3d4-e5f6-7890-abcd-ef1234567890",
"details": {
"reference": "to my friend",
"transferPurpose": "verification.transfers.purpose.pay.bills",
"transferPurposeSubTransferPurpose": "verification.sub.transfers.purpose.pay.interpretation.service",
"sourceOfFunds": "verification.source.of.funds.other"
}
}'Update the batch group by setting the status property to COMPLETED. Completing the group allows funding to proceed. This action prevents any further modification of the batch group.
- Production Environmenthttps://api.wise.com/2026Q4/profiles/{profileId}/batch-groups/{batchGroupId}
- Sandbox Environmenthttps://api.wise-sandbox.com/2026Q4/profiles/{profileId}/batch-groups/{batchGroupId}
curl -i -X PATCH \
https://api.wise.com/2026Q4/profiles/12345678/batch-groups/54a6bc09-cef9-49a8-9041-f1f0c654cd88 \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-H 'X-External-Correlation-Id: f47ac10b-58cc-4372-a567-0e02b2c3d479' \
-d '{
"status": "COMPLETED",
"version": 1234
}'Once the batch group is completed, you can fund all transfers at once either from your multi-currency account balance or via direct debit from a linked external bank account.
To fund the batch group from your MCA balance, send a fund batch group request. With this option, transfers are paid out immediately.
- Production Environmenthttps://api.wise.com/2026Q4/profiles/{profileId}/batch-payments/{batchGroupId}/payments
- Sandbox Environmenthttps://api.wise-sandbox.com/2026Q4/profiles/{profileId}/batch-payments/{batchGroupId}/payments
curl -i -X POST \
https://api.wise.com/2026Q4/profiles/12345678/batch-payments/54a6bc09-cef9-49a8-9041-f1f0c654cd88/payments \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-H 'X-External-Correlation-Id: f47ac10b-58cc-4372-a567-0e02b2c3d479' \
-d '{
"type": "BALANCE"
}'To fund via direct debit, send a fund batch group via direct debit request. To use this funding method, you must link an external bank account first. See the create a direct debit account reference for more information.
- Production Environmenthttps://api.wise.com/2026Q4/profiles/{profileId}/batch-groups/{batchGroupId}/payment-initiations
- Sandbox Environmenthttps://api.wise-sandbox.com/2026Q4/profiles/{profileId}/batch-groups/{batchGroupId}/payment-initiations
curl -i -X POST \
https://api.wise.com/2026Q4/profiles/12345678/batch-groups/54a6bc09-cef9-49a8-9041-f1f0c654cd88/payment-initiations \
-H 'Authorization: Bearer <YOUR_JWT_HERE>' \
-H 'Content-Type: application/json' \
-H 'X-External-Correlation-Id: f47ac10b-58cc-4372-a567-0e02b2c3d479' \
-d '{
"type": "DIRECT_DEBIT",
"accountId": 1,
"reference": "B1234567"
}'You can use the retrieve a payment initiation request and the batch payment initiations state change webhook to keep informed about the batch group status.
Use our Postman collection to test your workflow. It includes:
- Sandbox environment:
https://api.wise-sandbox.com - Common requests with dynamic responses
- Workflows that copy response data across calls