API

BatchGroup

A batch group of transfers: create, get or update one, add a transfer, or fund it from a balance.

Operations

Every route this entity exposes. Each route links to its own reference on this page.

Method Route SDK operation Returns
POST /profiles/{profileId}/batch-payments/{batchGroupId}/payments create Batch group funded successfully
POST /profiles/{profileId}/batch-groups/{batchGroupId}/transfers create Transfer created successfully. Returns a transfer object
POST /profiles/{profileId}/batch-groups create Batch group created successfully. Note that payInDetails is empty for newly created batch groups.
GET /profiles/{profileId}/batch-groups/{batchGroupId} load Batch group retrieved successfully
PATCH /profiles/{profileId}/batch-groups/{batchGroupId} update Batch group updated successfully

Examples

One example per SDK, generated from the API model. The argument names are the parameters and fields of this entity, and the values are placeholders. The examples are not compiled or executed.

Golang

Construct client as shown in the Golang setup, then call the operations:

batch_group, err := client.BatchGroup(nil).Load(map[string]any{"id": "example_id", "profile_id": 1}, nil)
if err != nil {
    panic(err)
}
fmt.Println(batch_group)
created, err := client.BatchGroup(nil).Create(map[string]any{"profile_id": 1, "name": "example", "sourceCurrency": "example", "type": "example"}, nil)
if err != nil {
    panic(err)
}
fmt.Println(created)
updated, err := client.BatchGroup(nil).Update(map[string]any{"id": "example_id", "profile_id": 1, "status": "example"}, nil)
if err != nil {
    panic(err)
}
fmt.Println(updated)

Lua

Construct client as shown in the Lua setup, then call the operations:

local batch_group, err = client:BatchGroup():load({ id = "example_id", profile_id = 1 })
local created, err = client:BatchGroup():create({ profile_id = 1, name = "example", sourceCurrency = "example", type = "example" })
local updated, err = client:BatchGroup():update({ id = "example_id", profile_id = 1, status = "example" })

PHP

Construct client as shown in the PHP setup, then call the operations:

$batch_group = $client->BatchGroup()->load(["id" => "example_id", "profile_id" => 1]);
$created = $client->BatchGroup()->create(["profile_id" => 1, "name" => "example", "sourceCurrency" => "example", "type" => "example"]);
$updated = $client->BatchGroup()->update(["id" => "example_id", "profile_id" => 1, "status" => "example"]);

Python

Construct client as shown in the Python setup, then call the operations:

batch_group = client.BatchGroup().load({"id": "example_id", "profile_id": 1})
created = client.BatchGroup().create({ "profile_id": 1, "name": "example", "sourceCurrency": "example", "type": "example" })
updated = client.BatchGroup().update({"id": "example_id", "profile_id": 1, "status": "example"})

Ruby

Construct client as shown in the Ruby setup, then call the operations:

batch_group = client.BatchGroup.load({ "id" => "example_id", "profile_id" => 1 })
created = client.BatchGroup.create({ "profile_id" => 1, "name" => "example", "sourceCurrency" => "example", "type" => "example" })
updated = client.BatchGroup.update({ "id" => "example_id", "profile_id" => 1, "status" => "example" })

TypeScript

Construct client as shown in the TypeScript setup, then call the operations:

const batch_group = await client.BatchGroup().load({ id: "example_id", profile_id: 1 })
const created = await client.BatchGroup().create({ profile_id: 1, name: "example", sourceCurrency: "example", type: "example" })
const updated = await client.BatchGroup().update({ id: "example_id", profile_id: 1, status: "example" })

Fields

Field Type Required Description
alreadyPaid boolean No Not applicable to this use case.
fileName one,string,null No If this batch was submitted as a file, this is the given file name.
groupType string No Whether this batch was submitted over the API or as a file.
id string No Batch group ID.
name string No Descriptive name for the batch group.
payInDetails array No List of pay-in details describing how the batch group can be funded.
payinSessionId one,string,null No Optional ID of the payin session.
profileId integer No The ID of the profile this payment belongs to.
shortId integer No Not applicable to this use case.
sourceCurrency string No Source currency code (ISO 4217 Alphabetic Code).
status string No Current batch group status: - NEW , New batch group with zero or more transfers.
transferIds array No The IDs of all transfers successfully added to the group.
type string Yes The method of payment to use.
userId integer No The ID of the user who initiated this payment.
version integer No Batch version, used for concurrency control.

create

POST /profiles/{profileId}/batch-payments/{batchGroupId}/payments

Operation ID: batchGroupFund.

Authentication: bearer token (UserToken) or bearer token (PersonalToken).

Parameters

Parameter In Type Required Description
profileId path integer (int64) Yes The ID of the profile that the batch group is associated with.
batchGroupId path string (uuid) Yes The batch group ID.
X-External-Correlation-Id header string (uuid) No Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more.

Request body

application/json

Property Type Required Description
type enum: BALANCE Yes The method of payment to use.

Responses

200: Batch group funded successfully

application/json

Property Type Required Description
alreadyPaid boolean No Not applicable to this use case.
fileName string,null No If this batch was submitted as a file, this is the given file name.
groupType enum: API, FILE No Whether this batch was submitted over the API or as a file.
id string (uuid) No Unique batch group ID.
name string No Descriptive name.
profileId integer (int64) No The ID of the profile this payment belongs to.
shortId integer (int64) No Not applicable to this use case.
sourceCurrency string No The source currency of the batch. Note that if there are insufficient funds, an automatic conversion from another currency can occur.
status enum: NEW, COMPLETED, MARKED_FOR_CANCELLATION, PROCESSING_CANCEL, CANCELLED No Current batch group status.
transferIds array of integer (int64) No The IDs of all transfers in the group.
userId integer (int64) No The ID of the user who initiated this payment.
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

POST /profiles/{profileId}/batch-groups/{batchGroupId}/transfers

Operation ID: batchGroupTransferCreate.

Authentication: bearer token (UserToken) or bearer token (PersonalToken).

Parameters

Parameter In Type Required Description
profileId path integer (int64) Yes The ID of the profile that the batch group is associated with.
batchGroupId path string (uuid) Yes The batch group ID.
X-External-Correlation-Id header string (uuid) No Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more.

Request body

application/json

Property Type Required Description
customerTransactionId string (uuid) Yes Unique identifier you generate for this transfer attempt.
details object No
details.reference string No Recipient-facing reference (payment narrative).
details.sourceOfFunds string No Source of funds code.
details.transferPurpose string No Transfer purpose code.
details.transferPurposeSubTransferPurpose string No Sub-purpose code for the transfer.
quoteUuid string (uuid) Yes Quote ID.
sourceAccount integer (int64) No Refund recipient account ID.
targetAccount integer (int64) Yes Recipient account ID.

Responses

200: Transfer created successfully. Returns a transfer object

application/json

The response is object.

429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

POST /profiles/{profileId}/batch-groups

Operation ID: batchGroupCreate.

Authentication: bearer token (UserToken) or bearer token (PersonalToken).

Parameters

Parameter In Type Required Description
profileId path integer (int64) Yes The ID of the profile to create the batch group for.
X-External-Correlation-Id header string (uuid) No Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more.

Request body

application/json

Property Type Required Description
name string Yes Descriptive name for display purposes. Recommended to use a name that uniquely represents this batch. Maximum length of 100 characters.
sourceCurrency string Yes Source currency code (ISO 4217 Alphabetic Code). This currency is expected to be used for funding the batch group.

Responses

201: Batch group created successfully. Note that payInDetails is empty for newly created batch groups.

application/json

Property Type Required Description
id string (uuid) No Batch group ID.
name string No Descriptive name for the batch group.
payInDetails array of object No List of pay-in details describing how the batch group can be funded. Provided only when the batch group is in the COMPLETED state. Currently supported types: bank_transfer.
payInDetails[].accountNumber string,null No Bank account number.
payInDetails[].accountType string,null No Bank account type. Provided only when the currency route requires it.
payInDetails[].amount number (decimal) No The total pay-in amount for all transactions in the batch when paying in with this reference and method.
payInDetails[].bankAddress object,null No Address for the receiving bank. Provided only when the currency route requires it.
payInDetails[].bankAddress.city string No City.
payInDetails[].bankAddress.country string No Country name.
payInDetails[].bankAddress.firstLine string No Street address.
payInDetails[].bankAddress.name string No Bank name.
payInDetails[].bankAddress.postCode string No Postcode or ZIP code.
payInDetails[].bankAddress.stateCode string,null No State, province, or region code.
payInDetails[].bankCode string,null No Bank identifier or routing number, depending on pay-in type and currency.
payInDetails[].bban string,null No Basic Bank Account Number (BBAN). Provided only when the currency route requires it (such as NOK).
payInDetails[].beneficiaryBankBIC string,null No Beneficiary Bank Business Identifier Code (BIC). Provided only when the currency route requires it (such as CAD).
payInDetails[].branchName string,null No Name of the bank branch. Provided only when the currency route requires it (such as JPY).
payInDetails[].clearingNumber string,null No Clearing number. Provided only when the currency route requires it (such as SEK).
payInDetails[].currency string No Three-character ISO 4217 currency code.
payInDetails[].fpsIdentifier string,null No Faster Payment System identifier. Provided only when the currency route requires it (such as HKD).
payInDetails[].iban string,null No ISO 13616 International Bank Account Number (when available).
payInDetails[].institutionNumber string,null No Financial Institution number (3 digits). Provided only when the currency route requires it (such as CAD).
payInDetails[].intermediaryBankBIC string,null No Intermediary Bank Business Identifier Code (BIC). Provided only when the currency route requires it (such as CAD).
payInDetails[].name string No Name of the bank account holder.
payInDetails[].reference string No The reference that should be used when funding the transfers in the batch group. This reference should be treated as an opaque value and there should be no attempt to decode or decompose it.
payInDetails[].transferWiseAddress object,null No Wise's address. Provided only when the currency route requires it.
payInDetails[].transferWiseAddress.city string No City.
payInDetails[].transferWiseAddress.country string No Country name.
payInDetails[].transferWiseAddress.firstLine string No Street address.
payInDetails[].transferWiseAddress.name string No Wise's company name.
payInDetails[].transferWiseAddress.postCode string No Postcode or ZIP code.
payInDetails[].transferWiseAddress.stateCode string,null No State, province, or region code.
payInDetails[].transitNumber string,null No Branch Transit Number (5 digits). Provided only when the currency route requires it (such as CAD).
payInDetails[].type enum: bank_transfer No Method of payment.
payinSessionId string,null (uuid) No Optional ID of the payin session. Required if batch group funding is done using Payin Funding API.
sourceCurrency string No Source currency code (ISO 4217 Alphabetic Code). This currency is expected to be used for funding the batch group.
status enum: NEW, COMPLETED, MARKED_FOR_CANCELLATION, PROCESSING_CANCEL, CANCELLED No Current batch group status: - NEW , New batch group with zero or more transfers. Able to have more transfers added to it. Transfers in a NEW group cannot yet be funded and paid out. - COMPLETED , The batch group has had all desired transfers added and is now closed to further changes. Transfers in the group can now be funded and paid out. Note: COMPLETED does not imply 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 being cancelled. - CANCELLED , Transfers in the group have been cancelled.
transferIds array of integer (int64) No The IDs of all transfers successfully added to the group.
version integer (int64) No Batch version, used for concurrency control. This number is updated whenever there is a change to the batch group state (its status, the identity of the transfers in the batch, etc). Some API operations require this version in requests, and operations may be rejected when the requested version does not match the server's version. The version is a signed integer and is not ordered with respect to any previous version.

Example response:

{
  "id": "54a6bc09-cef9-49a8-9041-f1f0c654cd88",
  "name": "My batch group",
  "payInDetails": [],
  "payinSessionId": null,
  "sourceCurrency": "GBP",
  "status": "NEW",
  "transferIds": [],
  "version": 0
}
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

load

GET /profiles/{profileId}/batch-groups/{batchGroupId}

Operation ID: batchGroupGet.

Authentication: bearer token (UserToken) or bearer token (PersonalToken).

Parameters

Parameter In Type Required Description
profileId path integer (int64) Yes The ID of the profile that the batch group is associated with.
batchGroupId path string (uuid) Yes The batch group ID.
X-External-Correlation-Id header string (uuid) No Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more.

Responses

200: Batch group retrieved successfully

application/json

Property Type Required Description
id string (uuid) No Batch group ID.
name string No Descriptive name for the batch group.
payInDetails array of object No List of pay-in details describing how the batch group can be funded. Provided only when the batch group is in the COMPLETED state. Currently supported types: bank_transfer.
payInDetails[].accountNumber string,null No Bank account number.
payInDetails[].accountType string,null No Bank account type. Provided only when the currency route requires it.
payInDetails[].amount number (decimal) No The total pay-in amount for all transactions in the batch when paying in with this reference and method.
payInDetails[].bankAddress object,null No Address for the receiving bank. Provided only when the currency route requires it.
payInDetails[].bankAddress.city string No City.
payInDetails[].bankAddress.country string No Country name.
payInDetails[].bankAddress.firstLine string No Street address.
payInDetails[].bankAddress.name string No Bank name.
payInDetails[].bankAddress.postCode string No Postcode or ZIP code.
payInDetails[].bankAddress.stateCode string,null No State, province, or region code.
payInDetails[].bankCode string,null No Bank identifier or routing number, depending on pay-in type and currency.
payInDetails[].bban string,null No Basic Bank Account Number (BBAN). Provided only when the currency route requires it (such as NOK).
payInDetails[].beneficiaryBankBIC string,null No Beneficiary Bank Business Identifier Code (BIC). Provided only when the currency route requires it (such as CAD).
payInDetails[].branchName string,null No Name of the bank branch. Provided only when the currency route requires it (such as JPY).
payInDetails[].clearingNumber string,null No Clearing number. Provided only when the currency route requires it (such as SEK).
payInDetails[].currency string No Three-character ISO 4217 currency code.
payInDetails[].fpsIdentifier string,null No Faster Payment System identifier. Provided only when the currency route requires it (such as HKD).
payInDetails[].iban string,null No ISO 13616 International Bank Account Number (when available).
payInDetails[].institutionNumber string,null No Financial Institution number (3 digits). Provided only when the currency route requires it (such as CAD).
payInDetails[].intermediaryBankBIC string,null No Intermediary Bank Business Identifier Code (BIC). Provided only when the currency route requires it (such as CAD).
payInDetails[].name string No Name of the bank account holder.
payInDetails[].reference string No The reference that should be used when funding the transfers in the batch group. This reference should be treated as an opaque value and there should be no attempt to decode or decompose it.
payInDetails[].transferWiseAddress object,null No Wise's address. Provided only when the currency route requires it.
payInDetails[].transferWiseAddress.city string No City.
payInDetails[].transferWiseAddress.country string No Country name.
payInDetails[].transferWiseAddress.firstLine string No Street address.
payInDetails[].transferWiseAddress.name string No Wise's company name.
payInDetails[].transferWiseAddress.postCode string No Postcode or ZIP code.
payInDetails[].transferWiseAddress.stateCode string,null No State, province, or region code.
payInDetails[].transitNumber string,null No Branch Transit Number (5 digits). Provided only when the currency route requires it (such as CAD).
payInDetails[].type enum: bank_transfer No Method of payment.
payinSessionId string,null (uuid) No Optional ID of the payin session. Required if batch group funding is done using Payin Funding API.
sourceCurrency string No Source currency code (ISO 4217 Alphabetic Code). This currency is expected to be used for funding the batch group.
status enum: NEW, COMPLETED, MARKED_FOR_CANCELLATION, PROCESSING_CANCEL, CANCELLED No Current batch group status: - NEW , New batch group with zero or more transfers. Able to have more transfers added to it. Transfers in a NEW group cannot yet be funded and paid out. - COMPLETED , The batch group has had all desired transfers added and is now closed to further changes. Transfers in the group can now be funded and paid out. Note: COMPLETED does not imply 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 being cancelled. - CANCELLED , Transfers in the group have been cancelled.
transferIds array of integer (int64) No The IDs of all transfers successfully added to the group.
version integer (int64) No Batch version, used for concurrency control. This number is updated whenever there is a change to the batch group state (its status, the identity of the transfers in the batch, etc). Some API operations require this version in requests, and operations may be rejected when the requested version does not match the server's version. The version is a signed integer and is not ordered with respect to any previous version.
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

update

PATCH /profiles/{profileId}/batch-groups/{batchGroupId}

Operation ID: batchGroupUpdate.

Authentication: bearer token (UserToken) or bearer token (PersonalToken).

Parameters

Parameter In Type Required Description
profileId path integer (int64) Yes The ID of the profile that the batch group is associated with.
batchGroupId path string (uuid) Yes The batch group ID.
X-External-Correlation-Id header string (uuid) No Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. Learn more.

Request body

application/json

Property Type Required Description
status enum: COMPLETED, CANCELLED Yes Status to update to: - COMPLETED , Close the group and allow funding - CANCELLED , Cancel the group and all transfers
version integer (int64) Yes The expected batch group version for concurrency control. Must match the server's current version.

Responses

200: Batch group updated successfully

application/json

Property Type Required Description
id string (uuid) No Batch group ID.
name string No Descriptive name for the batch group.
payInDetails array of object No List of pay-in details describing how the batch group can be funded. Provided only when the batch group is in the COMPLETED state. Currently supported types: bank_transfer.
payInDetails[].accountNumber string,null No Bank account number.
payInDetails[].accountType string,null No Bank account type. Provided only when the currency route requires it.
payInDetails[].amount number (decimal) No The total pay-in amount for all transactions in the batch when paying in with this reference and method.
payInDetails[].bankAddress object,null No Address for the receiving bank. Provided only when the currency route requires it.
payInDetails[].bankAddress.city string No City.
payInDetails[].bankAddress.country string No Country name.
payInDetails[].bankAddress.firstLine string No Street address.
payInDetails[].bankAddress.name string No Bank name.
payInDetails[].bankAddress.postCode string No Postcode or ZIP code.
payInDetails[].bankAddress.stateCode string,null No State, province, or region code.
payInDetails[].bankCode string,null No Bank identifier or routing number, depending on pay-in type and currency.
payInDetails[].bban string,null No Basic Bank Account Number (BBAN). Provided only when the currency route requires it (such as NOK).
payInDetails[].beneficiaryBankBIC string,null No Beneficiary Bank Business Identifier Code (BIC). Provided only when the currency route requires it (such as CAD).
payInDetails[].branchName string,null No Name of the bank branch. Provided only when the currency route requires it (such as JPY).
payInDetails[].clearingNumber string,null No Clearing number. Provided only when the currency route requires it (such as SEK).
payInDetails[].currency string No Three-character ISO 4217 currency code.
payInDetails[].fpsIdentifier string,null No Faster Payment System identifier. Provided only when the currency route requires it (such as HKD).
payInDetails[].iban string,null No ISO 13616 International Bank Account Number (when available).
payInDetails[].institutionNumber string,null No Financial Institution number (3 digits). Provided only when the currency route requires it (such as CAD).
payInDetails[].intermediaryBankBIC string,null No Intermediary Bank Business Identifier Code (BIC). Provided only when the currency route requires it (such as CAD).
payInDetails[].name string No Name of the bank account holder.
payInDetails[].reference string No The reference that should be used when funding the transfers in the batch group. This reference should be treated as an opaque value and there should be no attempt to decode or decompose it.
payInDetails[].transferWiseAddress object,null No Wise's address. Provided only when the currency route requires it.
payInDetails[].transferWiseAddress.city string No City.
payInDetails[].transferWiseAddress.country string No Country name.
payInDetails[].transferWiseAddress.firstLine string No Street address.
payInDetails[].transferWiseAddress.name string No Wise's company name.
payInDetails[].transferWiseAddress.postCode string No Postcode or ZIP code.
payInDetails[].transferWiseAddress.stateCode string,null No State, province, or region code.
payInDetails[].transitNumber string,null No Branch Transit Number (5 digits). Provided only when the currency route requires it (such as CAD).
payInDetails[].type enum: bank_transfer No Method of payment.
payinSessionId string,null (uuid) No Optional ID of the payin session. Required if batch group funding is done using Payin Funding API.
sourceCurrency string No Source currency code (ISO 4217 Alphabetic Code). This currency is expected to be used for funding the batch group.
status enum: NEW, COMPLETED, MARKED_FOR_CANCELLATION, PROCESSING_CANCEL, CANCELLED No Current batch group status: - NEW , New batch group with zero or more transfers. Able to have more transfers added to it. Transfers in a NEW group cannot yet be funded and paid out. - COMPLETED , The batch group has had all desired transfers added and is now closed to further changes. Transfers in the group can now be funded and paid out. Note: COMPLETED does not imply 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 being cancelled. - CANCELLED , Transfers in the group have been cancelled.
transferIds array of integer (int64) No The IDs of all transfers successfully added to the group.
version integer (int64) No Batch version, used for concurrency control. This number is updated whenever there is a change to the batch group state (its status, the identity of the transfers in the batch, etc). Some API operations require this version in requests, and operations may be rejected when the requested version does not match the server's version. The version is a signed integer and is not ordered with respect to any previous version.
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.