API

Recipient

A recipient account: create, list, get or deactivate one.

Operations

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

Method Route SDK operation Returns
POST /accounts/{accountId}/quotes/{quoteId}/compatibility create Returns the compatibility result, including any verification outcomes. See the Recipient verification guide for details about handling the confirmations object
POST /accounts create Recipient account created successfully
GET /accounts list Paginated list of recipient accounts
GET /accounts/{accountId} load Recipient account details
DELETE /accounts/{accountId} remove Recipient returned with active=false
PATCH /accounts/{accountId}/confirmations update Recipient with updated confirmation status

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:

recipients, err := client.Recipient(nil).List(nil, nil)
if err != nil {
    panic(err)
}
fmt.Println(recipients)
recipient, err := client.Recipient(nil).Load(map[string]any{"account_id": 1}, nil)
if err != nil {
    panic(err)
}
fmt.Println(recipient)
created, err := client.Recipient(nil).Create(map[string]any{"acceptedOutcomes": true, "ultimateBeneficiary": map[string]any{}}, nil)
if err != nil {
    panic(err)
}
fmt.Println(created)
updated, err := client.Recipient(nil).Update(map[string]any{"account_id": 1, "quote_id": "example"}, nil)
if err != nil {
    panic(err)
}
fmt.Println(updated)
removed, err := client.Recipient(nil).Remove(map[string]any{"account_id": 1}, nil)
if err != nil {
    panic(err)
}
fmt.Println(removed)

Lua

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

local recipients, err = client:Recipient():list()
local recipient, err = client:Recipient():load({ account_id = 1 })
local created, err = client:Recipient():create({ acceptedOutcomes = true, ultimateBeneficiary = {} })
local updated, err = client:Recipient():update({ account_id = 1, quote_id = "example" })
local removed, err = client:Recipient():remove({ account_id = 1 })

PHP

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

$recipients = $client->Recipient()->list();
$recipient = $client->Recipient()->load(["account_id" => 1]);
$created = $client->Recipient()->create(["acceptedOutcomes" => true, "ultimateBeneficiary" => []]);
$updated = $client->Recipient()->update(["account_id" => 1, "quote_id" => "example"]);
$client->Recipient()->remove(["account_id" => 1]);

Python

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

recipients = client.Recipient().list()
recipient = client.Recipient().load({"account_id": 1})
created = client.Recipient().create({ "acceptedOutcomes": True, "ultimateBeneficiary": {} })
updated = client.Recipient().update({"account_id": 1, "quote_id": "example"})
client.Recipient().remove({"account_id": 1})

Ruby

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

recipients = client.Recipient.list()
recipient = client.Recipient.load({ "account_id" => 1 })
created = client.Recipient.create({ "acceptedOutcomes" => true, "ultimateBeneficiary" => {} })
updated = client.Recipient.update({ "account_id" => 1, "quote_id" => "example" })
client.Recipient.remove({ "account_id" => 1 })

TypeScript

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

const recipients = await client.Recipient().list()
const recipient = await client.Recipient().load({ account_id: 1 })
const created = await client.Recipient().create({ acceptedOutcomes: true, ultimateBeneficiary: {} })
const updated = await client.Recipient().update({ account_id: 1, quote_id: "example" })
await client.Recipient().remove({ account_id: 1 })

Fields

Field Type Required Description
acceptedOutcomes boolean Yes Set to true to indicate the customer accepted the confirmation outcome.
accountHolderName string No Recipient full name.
accountId integer No Recipient account ID.
accountSummary string No Summary of account details for ease of lookup.
active boolean No Status of the recipient account.
commonFieldMap object No Map of key lookup fields for the account.
confirmations object No Contains verification results for the recipient's details.
country string No 2-character country code.
creatorId integer No Account entity that owns the recipient account.
currency string No 3-character currency code.
details object No Contains the details of the recipient account specific to its currency and type.
displayFields array No Lookup fields (key/label/value) for rendering in your front-end.
hash string No Account hash for tracking changes to recipient details.
id integer No ID of the recipient.
isInternal boolean No Indicates whether recipient is internal.
legalEntityType string No Entity type of recipient account.
longAccountSummary string No Longer account details summary.
name object No Recipient name details.
ownedByCustomer boolean No Inidicates if recipient account belongs to profile owner.
profile integer No Personal or business profile ID of the sender.
profileId integer No Specific profile that owns the recipient account.
quoteId string No Quote ID.
type string No Recipient account type.
ultimateBeneficiary one,object,null Yes The details for the ultimate beneficiary of this recipient.

create

POST /accounts/{accountId}/quotes/{quoteId}/compatibility

Operation ID: recipientCompatibilityCheck.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
accountId path integer (int64) Yes Recipient account ID.
quoteId path string (uuid) Yes Quote 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: Returns the compatibility result, including any verification outcomes. See the Recipient verification guide for details about handling the confirmations object

application/json

Property Type Required Description
accountId integer (int64) No Recipient account ID.
confirmations object No Contains verification results for the recipient's details. Only populated for currencies with recipient verification enabled (CNY, KRW, INR, IDR, EUR). See the Recipient verification guides for details about how to handle this verification data by currency.
confirmations.acceptedAt string,null (date-time) No Timestamp indicating date and time of outcome acceptance. Value is null until acceptance received.
confirmations.acceptedOutcomes boolean No Indicates whether we've received an explicit customer acceptance.
confirmations.outcomes array of object No Array of confirmation outcomes. Currently, it is safe to assume there is only one element in the outcomes array.
confirmations.outcomes[].fieldsChecked array of string No Fields used to confirm the account.
confirmations.outcomes[].message string No Customer-facing message about the outcome of the check.
confirmations.outcomes[].outcome string No The actual outcome of the confirmation check. Possible values: SUCCESS, PARTIAL_FAILURE, FAILURE, COULD_NOT_CHECK.
confirmations.outcomes[].providedName string No The name the customer provided when creating the recipient account. Only populated for NAME_MATCHING and NAME_RESOLUTION types for certain outcomes.
confirmations.outcomes[].recommendedUpdates array of object No Shows the correct values for some of the fields checked.
confirmations.outcomes[].recommendedUpdates[].path string No The field path to update.
confirmations.outcomes[].recommendedUpdates[].value string No The recommended value for the field.
confirmations.outcomes[].requiresCustomerAcceptance boolean No Indicates whether we require customer acceptance. The value for this field (true or false) depends on the currency and the nature of the confirmation. If true, you must present your customer with the ability to accept or decline the confirmation result.
confirmations.outcomes[].resolvedName string No The name that we resolved during name matching or name resolution.
confirmations.outcomes[].timestamp string (date-time) No Timestamp of when the confirmation check was performed.
confirmations.outcomes[].type string No The type of confirmation. Possible values: ACCOUNT_EXISTENCE, NAME_MATCHING, NAME_RESOLUTION.
confirmations.quoteId string,null No If the confirmation check was run as part of a quote compatibility check, then the quoteId is included in the result. If quoteId is present, the outcome acceptance needs the quoteId to be specified as well.
quoteId string No Quote ID.

Example response:

{
  "accountId": 40000000,
  "confirmations": {
    "acceptedAt": null,
    "acceptedOutcomes": false,
    "outcomes": [
      {
        "fieldsChecked": [
          "name/fullName",
          "details/accountNumber"
        ],
        "message": "The name entered is slightly different to the name on the account.",
        "outcome": "PARTIAL_FAILURE",
        "providedName": "John Doe",
        "recommendedUpdates": [
          {
            "path": "name/fullName",
            "value": "Joe Doe"
          }
        ],
        "requiresCustomerAcceptance": true,
        "resolvedName": "Joe Doe",
        "type": "NAME_MATCHING"
      }
    ],
    "quoteId": "00000000-0000-0000-0000-000000000000"
  },
  "quoteId": "00000000-0000-0000-0000-000000000000"
}
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

POST /accounts

Operation ID: recipientCreate.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
refund query boolean No When true, the request creates a refund recipient account.
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
accountHolderName string No Recipient full name.
currency string No 3-character currency code.
details object No Contains the details of the recipient account specific to its currency and type. Common examples include legalType, sortCode, accountNumber, email, dateOfBirth, etc. Use the retrieve recipient account requirements endpoint to determine what is required for a specific recipient.
details.accountNumber string No Account number (GBP example).
details.dateOfBirth string No Date of birth in ISO 8601 date format. Only required for certain currency routes. Call the retrieve recipient account requirements endpoint to confirm.
details.legalType enum: PRIVATE, BUSINESS No Recipient legal type.
details.sortCode string No Sort code (GBP example).
ownedByCustomer boolean No Indicates whether the recipient account is owned by the profile owner. While optional, we recommend setting to true for self-transfers (such as a user sending money to their own account in another country or currency). Distinguishing self-transfers from third-party transfers improves routing and processing efficiency.
profile integer (int64) No Personal or business profile ID of the sender. We recommend passing the business profile ID if multiple users manage your business account so all users authorized on the business account can access the recipient.
type string No Recipient account type. These are currency/route-specific, for example, sort_code, iban, email.
ultimateBeneficiary object,null No The details about the ultimate beneficiary for this recipient, if present. If absent, the ultimate beneficiary is the recipient.
ultimateBeneficiary.accountNumber string,null No Ultimate beneficiary account number.
ultimateBeneficiary.address object,null No Ultimate beneficiary address.
ultimateBeneficiary.address.city string No
ultimateBeneficiary.address.country string No
ultimateBeneficiary.address.firstLine string No
ultimateBeneficiary.address.postCode string No
ultimateBeneficiary.address.state string No
ultimateBeneficiary.bankAddress object,null No Ultimate beneficiary bank address.
ultimateBeneficiary.bankAddress.city string No
ultimateBeneficiary.bankAddress.country string No
ultimateBeneficiary.bankAddress.firstLine string No
ultimateBeneficiary.bankAddress.postCode string No
ultimateBeneficiary.bankAddress.state string No
ultimateBeneficiary.bankCode string,null No Ultimate beneficiary bank code.
ultimateBeneficiary.bankName string,null No Ultimate beneficiary bank name.
ultimateBeneficiary.name object Yes Ultimate beneficiary name details.
ultimateBeneficiary.name.fullName string Yes Ultimate beneficiary full name.

Responses

200: Recipient account created successfully

application/json

Property Type Required Description
accountSummary string No Summary of account details for ease of lookup. Can be used to display recipient details in your UI.
active boolean No Status of the recipient account.
commonFieldMap object No Map of key lookup fields for the account.
confirmations object No Contains verification results for the recipient's details. Only populated for currencies with recipient verification enabled (CNY, KRW, INR, IDR, EUR). See the Recipient verification guides for details about how to handle this verification data by currency.
confirmations.acceptedAt string,null (date-time) No Timestamp indicating date and time of outcome acceptance. Value is null until acceptance received.
confirmations.acceptedOutcomes boolean No Indicates whether we've received an explicit customer acceptance.
confirmations.outcomes array of object No Array of confirmation outcomes. Currently, it is safe to assume there is only one element in the outcomes array.
confirmations.outcomes[].fieldsChecked array of string No Fields used to confirm the account.
confirmations.outcomes[].message string No Customer-facing message about the outcome of the check.
confirmations.outcomes[].outcome string No The actual outcome of the confirmation check. Possible values: SUCCESS, PARTIAL_FAILURE, FAILURE, COULD_NOT_CHECK.
confirmations.outcomes[].providedName string No The name the customer provided when creating the recipient account. Only populated for NAME_MATCHING and NAME_RESOLUTION types for certain outcomes.
confirmations.outcomes[].recommendedUpdates array of object No Shows the correct values for some of the fields checked.
confirmations.outcomes[].recommendedUpdates[].path string No The field path to update.
confirmations.outcomes[].recommendedUpdates[].value string No The recommended value for the field.
confirmations.outcomes[].requiresCustomerAcceptance boolean No Indicates whether we require customer acceptance. The value for this field (true or false) depends on the currency and the nature of the confirmation. If true, you must present your customer with the ability to accept or decline the confirmation result.
confirmations.outcomes[].resolvedName string No The name that we resolved during name matching or name resolution.
confirmations.outcomes[].timestamp string (date-time) No Timestamp of when the confirmation check was performed.
confirmations.outcomes[].type string No The type of confirmation. Possible values: ACCOUNT_EXISTENCE, NAME_MATCHING, NAME_RESOLUTION.
confirmations.quoteId string,null No If the confirmation check was run as part of a quote compatibility check, then the quoteId is included in the result. If quoteId is present, the outcome acceptance needs the quoteId to be specified as well.
country string No 2-character country code.
creatorId integer (int64) No Account entity that owns the recipient account.
currency string No 3-character currency code.
details object No Contains the details of the recipient account specific to its currency and type. The fields required (in the request) or present (in the response) vary depending on currency route and recipient type (for example, sort code, IBAN, SWIFT, email).
details.accountNumber string No Recipient bank account number (GBP example).
details.hashedByLooseHashAlgorithm string No Recipient account hash.
details.reference string,null No Recipient reference (applies for some routes).
details.sortCode string No Recipient bank sort code (GBP example).
displayFields array of object No Lookup fields (key/label/value) for rendering in your front-end. Allows you to build a UI containing all the dynamic fields for a recipient individually.
displayFields[].key string No Account identifier key name.
displayFields[].label string No Account identifier display label.
displayFields[].value string No Account identifier value.
hash string No Account hash for tracking changes to recipient details. This is useful for re-running any validation checks on the recipient, for example against fraud engines. The hash remains constant unless the recipient's name or information in the details object changes.
id integer (int64) No ID of the recipient. Use the returned id as sourceAccount to specify the refund recipient when creating transfers.
isInternal boolean No Indicates whether recipient is internal.
legalEntityType string No Entity type of recipient account.
longAccountSummary string No Longer account details summary. Can be used to display recipient details in your UI.
name object No Recipient name details.
name.cannotHavePatronymicName boolean,null No Indicates if the recipient cannot have a patronymic name (when applicable).
name.familyName string,null No Recipient surname.
name.fullName string No Recipient full name.
name.givenName string,null No Recipient first name.
name.middleName string,null No Recipient middle name.
name.patronymicName string,null No Recipient patronymic name (when applicable).
ownedByCustomer boolean No Inidicates if recipient account belongs to profile owner.
profileId integer (int64) No Specific profile that owns the recipient account.
type string No Recipient account type.
ultimateBeneficiary object,null No The details for the ultimate beneficiary of this recipient.
ultimateBeneficiary.accountNumber string,null No Ultimate beneficiary account number.
ultimateBeneficiary.address object,null No Ultimate beneficiary address.
ultimateBeneficiary.address.city string No
ultimateBeneficiary.address.country string No
ultimateBeneficiary.address.firstLine string No
ultimateBeneficiary.address.postCode string No
ultimateBeneficiary.address.state string No
ultimateBeneficiary.bankAddress object,null No Ultimate beneficiary bank address.
ultimateBeneficiary.bankAddress.city string No
ultimateBeneficiary.bankAddress.country string No
ultimateBeneficiary.bankAddress.firstLine string No
ultimateBeneficiary.bankAddress.postCode string No
ultimateBeneficiary.bankAddress.state string No
ultimateBeneficiary.bankCode string,null No Ultimate beneficiary bank code.
ultimateBeneficiary.bankName string,null No Ultimate beneficiary bank name.
ultimateBeneficiary.name object Yes Ultimate beneficiary name.
ultimateBeneficiary.name.fullName string Yes Ultimate beneficiary's full name.
400: Bad Request, validation error

application/json

Property Type Required Description
errors array of object No List of validation errors.
errors[].arguments array of string No Field with error as well as input value.
errors[].code string No Error code (for example, NOT_VALID).
errors[].message string No Human-readable error message.
errors[].path string No Field associated with the error.
timestamp string No Timestamp of occurrence (ISO-8601 timestamp).
401: Unauthorized

application/json

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

application/json

The response is object.

list

GET /accounts

Operation ID: recipientList.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
creatorId query integer (int64) No Creator of the account.
profileId query integer (int64) No Filters by the personal or business profile that created the account. Defaults to the personal profile.
profile query integer (int64) No Alias for profileId.
currency query string No Filters the response by target currency. Useful for presenting a list of recipients to your customer when they have already indicated the target currency in your flow. Supports comma-separated values (for example, USD,GBP).
active query boolean No Filters by whether the selected profile is active. Defaults to true.
type query string No Filters the response by account type. Supports comma-separated values (for example, iban,swift_code).
ownedByCustomer query boolean No Filters the response by whether the account is owned by the customer. Leave out to retrieve all accounts.
size query integer (int32) No The number of accounts returned in a page of the response. Defaults to 20 (the maximum).
seekPosition query integer,null (int64) No For pagination, use the value from the seekPositionForNext field of the previous response to retrieve the next page.
sort query string No Controls the sorting strategy for the response. Uses comma-separated options (either id or currency first, followed by asc or desc for direction). - ?sort=id,asc sorts in ascending order by id. - ?sort=id,desc sorts in descending order by id. - ?sort=currency,asc sorts in ascending order by currency.
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: Paginated list of recipient accounts

application/json

Property Type Required Description
content array of object No List of recipient accounts returned for this page.
content[].accountSummary string No Summary of account details for ease of lookup. Can be used to display recipient details in your UI.
content[].active boolean No Status of the recipient account.
content[].commonFieldMap object No Map of key lookup fields for the account.
content[].confirmations object No Contains verification results for the recipient's details. Only populated for currencies with recipient verification enabled (CNY, KRW, INR, IDR, EUR). See the Recipient verification guides for details about how to handle this verification data by currency.
content[].confirmations.acceptedAt string,null (date-time) No Timestamp indicating date and time of outcome acceptance. Value is null until acceptance received.
content[].confirmations.acceptedOutcomes boolean No Indicates whether we've received an explicit customer acceptance.
content[].confirmations.outcomes array of object No Array of confirmation outcomes. Currently, it is safe to assume there is only one element in the outcomes array.
content[].confirmations.outcomes[].fieldsChecked array of string No Fields used to confirm the account.
content[].confirmations.outcomes[].message string No Customer-facing message about the outcome of the check.
content[].confirmations.outcomes[].outcome string No The actual outcome of the confirmation check. Possible values: SUCCESS, PARTIAL_FAILURE, FAILURE, COULD_NOT_CHECK.
content[].confirmations.outcomes[].providedName string No The name the customer provided when creating the recipient account. Only populated for NAME_MATCHING and NAME_RESOLUTION types for certain outcomes.
content[].confirmations.outcomes[].recommendedUpdates array of object No Shows the correct values for some of the fields checked.
content[].confirmations.outcomes[].recommendedUpdates[].path string No The field path to update.
content[].confirmations.outcomes[].recommendedUpdates[].value string No The recommended value for the field.
content[].confirmations.outcomes[].requiresCustomerAcceptance boolean No Indicates whether we require customer acceptance. The value for this field (true or false) depends on the currency and the nature of the confirmation. If true, you must present your customer with the ability to accept or decline the confirmation result.
content[].confirmations.outcomes[].resolvedName string No The name that we resolved during name matching or name resolution.
content[].confirmations.outcomes[].timestamp string (date-time) No Timestamp of when the confirmation check was performed.
content[].confirmations.outcomes[].type string No The type of confirmation. Possible values: ACCOUNT_EXISTENCE, NAME_MATCHING, NAME_RESOLUTION.
content[].confirmations.quoteId string,null No If the confirmation check was run as part of a quote compatibility check, then the quoteId is included in the result. If quoteId is present, the outcome acceptance needs the quoteId to be specified as well.
content[].country string No 2-character country code.
content[].creatorId integer (int64) No Account entity that owns the recipient account.
content[].currency string No 3-character currency code.
content[].details object No Contains the details of the recipient account specific to its currency and type. The fields required (in the request) or present (in the response) vary depending on currency route and recipient type (for example, sort code, IBAN, SWIFT, email).
content[].details.accountNumber string No Recipient bank account number (GBP example).
content[].details.hashedByLooseHashAlgorithm string No Recipient account hash.
content[].details.reference string,null No Recipient reference (applies for some routes).
content[].details.sortCode string No Recipient bank sort code (GBP example).
content[].displayFields array of object No Lookup fields (key/label/value) for rendering in your front-end. Allows you to build a UI containing all the dynamic fields for a recipient individually.
content[].displayFields[].key string No Account identifier key name.
content[].displayFields[].label string No Account identifier display label.
content[].displayFields[].value string No Account identifier value.
content[].hash string No Account hash for tracking changes to recipient details. This is useful for re-running any validation checks on the recipient, for example against fraud engines. The hash remains constant unless the recipient's name or information in the details object changes.
content[].id integer (int64) No ID of the recipient. Use the returned id as sourceAccount to specify the refund recipient when creating transfers.
content[].isInternal boolean No Indicates whether recipient is internal.
content[].legalEntityType string No Entity type of recipient account.
content[].longAccountSummary string No Longer account details summary. Can be used to display recipient details in your UI.
content[].name object No Recipient name details.
content[].name.cannotHavePatronymicName boolean,null No Indicates if the recipient cannot have a patronymic name (when applicable).
content[].name.familyName string,null No Recipient surname.
content[].name.fullName string No Recipient full name.
content[].name.givenName string,null No Recipient first name.
content[].name.middleName string,null No Recipient middle name.
content[].name.patronymicName string,null No Recipient patronymic name (when applicable).
content[].ownedByCustomer boolean No Inidicates if recipient account belongs to profile owner.
content[].profileId integer (int64) No Specific profile that owns the recipient account.
content[].type string No Recipient account type.
content[].ultimateBeneficiary object,null No The details for the ultimate beneficiary of this recipient.
content[].ultimateBeneficiary.accountNumber string,null No Ultimate beneficiary account number.
content[].ultimateBeneficiary.address object,null No Ultimate beneficiary address.
content[].ultimateBeneficiary.address.city string No
content[].ultimateBeneficiary.address.country string No
content[].ultimateBeneficiary.address.firstLine string No
content[].ultimateBeneficiary.address.postCode string No
content[].ultimateBeneficiary.address.state string No
content[].ultimateBeneficiary.bankAddress object,null No Ultimate beneficiary bank address.
content[].ultimateBeneficiary.bankAddress.city string No
content[].ultimateBeneficiary.bankAddress.country string No
content[].ultimateBeneficiary.bankAddress.firstLine string No
content[].ultimateBeneficiary.bankAddress.postCode string No
content[].ultimateBeneficiary.bankAddress.state string No
content[].ultimateBeneficiary.bankCode string,null No Ultimate beneficiary bank code.
content[].ultimateBeneficiary.bankName string,null No Ultimate beneficiary bank name.
content[].ultimateBeneficiary.name object Yes Ultimate beneficiary name.
content[].ultimateBeneficiary.name.fullName string Yes Ultimate beneficiary's full name.
seekPositionForCurrent integer (int64) No Seek position for the current page of the response. For pagination, use this value for the seekPosition query parameter of your next request to fetch this current page again.
seekPositionForNext integer (int64) No Seek position for the next page of the response. For pagination, use this value for the seekPosition query parameter of your next request to fetch the next page.
size integer (int32) No Page size returned.
sort object No Sort metadata.
sort.empty boolean No
sort.sorted boolean No
sort.unsorted boolean No

Example response:

{
  "content": [
    {
      "accountSummary": "(04-00-75) 37778842",
      "active": true,
      "commonFieldMap": {
        "accountNumberField": "accountNumber",
        "bankCodeField": "sortCode"
      },
      "country": "GB",
      "creatorId": 41000000,
      "currency": "GBP",
      "details": {
        "accountNumber": "37778842",
        "hashedByLooseHashAlgorithm": "ad245621b974efa3ef870895c3wer419a3f01af18a8a5790b47645dba6304194",
        "reference": null,
        "sortCode": "040075"
      },
      "displayFields": [
        {
          "key": "details/sortCode",
          "label": "UK sort code",
          "value": "04-00-75"
        },
        {
          "key": "details/accountNumber",
          "label": "Account number",
          "value": "37778842"
        }
      ],
      "hash": "666ef880f8aa6113fa112ba6531d3ed2c26dd9fgbd7de5136bfb827a6e800479",
      "id": 40000000,
      "isInternal": false,
      "legalEntityType": "PERSON",
      "longAccountSummary": "GBP account ending in 8842",
      "name": {
        "cannotHavePatronymicName": null,
        "familyName": null,
        "fullName": "John Doe",
        "givenName": null,
        "middleName": null,
        "patronymicName": null
      },
      "ownedByCustomer": false,
      "profileId": 30000000,
      "type": "SortCode"
    }
  ],
  "seekPositionForCurrent": 40000000,
  "seekPositionForNext": 40000001,
  "size": 20,
  "sort": {
    "empty": true,
    "sorted": false,
    "unsorted": true
  }
}
401: Unauthorized
403: Forbidden
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

load

GET /accounts/{accountId}

Operation ID: recipientGet.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
accountId path integer (int64) Yes Recipient account 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: Recipient account details

application/json

Property Type Required Description
accountSummary string No Summary of account details for ease of lookup. Can be used to display recipient details in your UI.
active boolean No Status of the recipient account.
commonFieldMap object No Map of key lookup fields for the account.
confirmations object No Contains verification results for the recipient's details. Only populated for currencies with recipient verification enabled (CNY, KRW, INR, IDR, EUR). See the Recipient verification guides for details about how to handle this verification data by currency.
confirmations.acceptedAt string,null (date-time) No Timestamp indicating date and time of outcome acceptance. Value is null until acceptance received.
confirmations.acceptedOutcomes boolean No Indicates whether we've received an explicit customer acceptance.
confirmations.outcomes array of object No Array of confirmation outcomes. Currently, it is safe to assume there is only one element in the outcomes array.
confirmations.outcomes[].fieldsChecked array of string No Fields used to confirm the account.
confirmations.outcomes[].message string No Customer-facing message about the outcome of the check.
confirmations.outcomes[].outcome string No The actual outcome of the confirmation check. Possible values: SUCCESS, PARTIAL_FAILURE, FAILURE, COULD_NOT_CHECK.
confirmations.outcomes[].providedName string No The name the customer provided when creating the recipient account. Only populated for NAME_MATCHING and NAME_RESOLUTION types for certain outcomes.
confirmations.outcomes[].recommendedUpdates array of object No Shows the correct values for some of the fields checked.
confirmations.outcomes[].recommendedUpdates[].path string No The field path to update.
confirmations.outcomes[].recommendedUpdates[].value string No The recommended value for the field.
confirmations.outcomes[].requiresCustomerAcceptance boolean No Indicates whether we require customer acceptance. The value for this field (true or false) depends on the currency and the nature of the confirmation. If true, you must present your customer with the ability to accept or decline the confirmation result.
confirmations.outcomes[].resolvedName string No The name that we resolved during name matching or name resolution.
confirmations.outcomes[].timestamp string (date-time) No Timestamp of when the confirmation check was performed.
confirmations.outcomes[].type string No The type of confirmation. Possible values: ACCOUNT_EXISTENCE, NAME_MATCHING, NAME_RESOLUTION.
confirmations.quoteId string,null No If the confirmation check was run as part of a quote compatibility check, then the quoteId is included in the result. If quoteId is present, the outcome acceptance needs the quoteId to be specified as well.
country string No 2-character country code.
creatorId integer (int64) No Account entity that owns the recipient account.
currency string No 3-character currency code.
details object No Contains the details of the recipient account specific to its currency and type. The fields required (in the request) or present (in the response) vary depending on currency route and recipient type (for example, sort code, IBAN, SWIFT, email).
details.accountNumber string No Recipient bank account number (GBP example).
details.hashedByLooseHashAlgorithm string No Recipient account hash.
details.reference string,null No Recipient reference (applies for some routes).
details.sortCode string No Recipient bank sort code (GBP example).
displayFields array of object No Lookup fields (key/label/value) for rendering in your front-end. Allows you to build a UI containing all the dynamic fields for a recipient individually.
displayFields[].key string No Account identifier key name.
displayFields[].label string No Account identifier display label.
displayFields[].value string No Account identifier value.
hash string No Account hash for tracking changes to recipient details. This is useful for re-running any validation checks on the recipient, for example against fraud engines. The hash remains constant unless the recipient's name or information in the details object changes.
id integer (int64) No ID of the recipient. Use the returned id as sourceAccount to specify the refund recipient when creating transfers.
isInternal boolean No Indicates whether recipient is internal.
legalEntityType string No Entity type of recipient account.
longAccountSummary string No Longer account details summary. Can be used to display recipient details in your UI.
name object No Recipient name details.
name.cannotHavePatronymicName boolean,null No Indicates if the recipient cannot have a patronymic name (when applicable).
name.familyName string,null No Recipient surname.
name.fullName string No Recipient full name.
name.givenName string,null No Recipient first name.
name.middleName string,null No Recipient middle name.
name.patronymicName string,null No Recipient patronymic name (when applicable).
ownedByCustomer boolean No Inidicates if recipient account belongs to profile owner.
profileId integer (int64) No Specific profile that owns the recipient account.
type string No Recipient account type.
ultimateBeneficiary object,null No The details for the ultimate beneficiary of this recipient.
ultimateBeneficiary.accountNumber string,null No Ultimate beneficiary account number.
ultimateBeneficiary.address object,null No Ultimate beneficiary address.
ultimateBeneficiary.address.city string No
ultimateBeneficiary.address.country string No
ultimateBeneficiary.address.firstLine string No
ultimateBeneficiary.address.postCode string No
ultimateBeneficiary.address.state string No
ultimateBeneficiary.bankAddress object,null No Ultimate beneficiary bank address.
ultimateBeneficiary.bankAddress.city string No
ultimateBeneficiary.bankAddress.country string No
ultimateBeneficiary.bankAddress.firstLine string No
ultimateBeneficiary.bankAddress.postCode string No
ultimateBeneficiary.bankAddress.state string No
ultimateBeneficiary.bankCode string,null No Ultimate beneficiary bank code.
ultimateBeneficiary.bankName string,null No Ultimate beneficiary bank name.
ultimateBeneficiary.name object Yes Ultimate beneficiary name.
ultimateBeneficiary.name.fullName string Yes Ultimate beneficiary's full name.
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

remove

DELETE /accounts/{accountId}

Operation ID: recipientDeactivate.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
accountId path integer (int64) Yes Recipient account 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: Recipient returned with active=false

application/json

Property Type Required Description
accountSummary string No Summary of account details for ease of lookup. Can be used to display recipient details in your UI.
active boolean No Status of the recipient account.
commonFieldMap object No Map of key lookup fields for the account.
confirmations object No Contains verification results for the recipient's details. Only populated for currencies with recipient verification enabled (CNY, KRW, INR, IDR, EUR). See the Recipient verification guides for details about how to handle this verification data by currency.
confirmations.acceptedAt string,null (date-time) No Timestamp indicating date and time of outcome acceptance. Value is null until acceptance received.
confirmations.acceptedOutcomes boolean No Indicates whether we've received an explicit customer acceptance.
confirmations.outcomes array of object No Array of confirmation outcomes. Currently, it is safe to assume there is only one element in the outcomes array.
confirmations.outcomes[].fieldsChecked array of string No Fields used to confirm the account.
confirmations.outcomes[].message string No Customer-facing message about the outcome of the check.
confirmations.outcomes[].outcome string No The actual outcome of the confirmation check. Possible values: SUCCESS, PARTIAL_FAILURE, FAILURE, COULD_NOT_CHECK.
confirmations.outcomes[].providedName string No The name the customer provided when creating the recipient account. Only populated for NAME_MATCHING and NAME_RESOLUTION types for certain outcomes.
confirmations.outcomes[].recommendedUpdates array of object No Shows the correct values for some of the fields checked.
confirmations.outcomes[].recommendedUpdates[].path string No The field path to update.
confirmations.outcomes[].recommendedUpdates[].value string No The recommended value for the field.
confirmations.outcomes[].requiresCustomerAcceptance boolean No Indicates whether we require customer acceptance. The value for this field (true or false) depends on the currency and the nature of the confirmation. If true, you must present your customer with the ability to accept or decline the confirmation result.
confirmations.outcomes[].resolvedName string No The name that we resolved during name matching or name resolution.
confirmations.outcomes[].timestamp string (date-time) No Timestamp of when the confirmation check was performed.
confirmations.outcomes[].type string No The type of confirmation. Possible values: ACCOUNT_EXISTENCE, NAME_MATCHING, NAME_RESOLUTION.
confirmations.quoteId string,null No If the confirmation check was run as part of a quote compatibility check, then the quoteId is included in the result. If quoteId is present, the outcome acceptance needs the quoteId to be specified as well.
country string No 2-character country code.
creatorId integer (int64) No Account entity that owns the recipient account.
currency string No 3-character currency code.
details object No Contains the details of the recipient account specific to its currency and type. The fields required (in the request) or present (in the response) vary depending on currency route and recipient type (for example, sort code, IBAN, SWIFT, email).
details.accountNumber string No Recipient bank account number (GBP example).
details.hashedByLooseHashAlgorithm string No Recipient account hash.
details.reference string,null No Recipient reference (applies for some routes).
details.sortCode string No Recipient bank sort code (GBP example).
displayFields array of object No Lookup fields (key/label/value) for rendering in your front-end. Allows you to build a UI containing all the dynamic fields for a recipient individually.
displayFields[].key string No Account identifier key name.
displayFields[].label string No Account identifier display label.
displayFields[].value string No Account identifier value.
hash string No Account hash for tracking changes to recipient details. This is useful for re-running any validation checks on the recipient, for example against fraud engines. The hash remains constant unless the recipient's name or information in the details object changes.
id integer (int64) No ID of the recipient. Use the returned id as sourceAccount to specify the refund recipient when creating transfers.
isInternal boolean No Indicates whether recipient is internal.
legalEntityType string No Entity type of recipient account.
longAccountSummary string No Longer account details summary. Can be used to display recipient details in your UI.
name object No Recipient name details.
name.cannotHavePatronymicName boolean,null No Indicates if the recipient cannot have a patronymic name (when applicable).
name.familyName string,null No Recipient surname.
name.fullName string No Recipient full name.
name.givenName string,null No Recipient first name.
name.middleName string,null No Recipient middle name.
name.patronymicName string,null No Recipient patronymic name (when applicable).
ownedByCustomer boolean No Inidicates if recipient account belongs to profile owner.
profileId integer (int64) No Specific profile that owns the recipient account.
type string No Recipient account type.
ultimateBeneficiary object,null No The details for the ultimate beneficiary of this recipient.
ultimateBeneficiary.accountNumber string,null No Ultimate beneficiary account number.
ultimateBeneficiary.address object,null No Ultimate beneficiary address.
ultimateBeneficiary.address.city string No
ultimateBeneficiary.address.country string No
ultimateBeneficiary.address.firstLine string No
ultimateBeneficiary.address.postCode string No
ultimateBeneficiary.address.state string No
ultimateBeneficiary.bankAddress object,null No Ultimate beneficiary bank address.
ultimateBeneficiary.bankAddress.city string No
ultimateBeneficiary.bankAddress.country string No
ultimateBeneficiary.bankAddress.firstLine string No
ultimateBeneficiary.bankAddress.postCode string No
ultimateBeneficiary.bankAddress.state string No
ultimateBeneficiary.bankCode string,null No Ultimate beneficiary bank code.
ultimateBeneficiary.bankName string,null No Ultimate beneficiary bank name.
ultimateBeneficiary.name object Yes Ultimate beneficiary name.
ultimateBeneficiary.name.fullName string Yes Ultimate beneficiary's full name.
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.

update

PATCH /accounts/{accountId}/confirmations

Operation ID: recipientConfirmationsAccept.

Authentication: bearer token (UserToken).

Parameters

Parameter In Type Required Description
accountId path integer (int64) Yes Recipient account ID.
quoteId query string (uuid) No Required if the confirmation result contained a quoteId.
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
acceptedOutcomes boolean Yes Set to true to indicate the customer accepted the confirmation outcome.

Responses

200: Recipient with updated confirmation status

application/json

Property Type Required Description
accountSummary string No Summary of account details for ease of lookup. Can be used to display recipient details in your UI.
active boolean No Status of the recipient account.
commonFieldMap object No Map of key lookup fields for the account.
confirmations object No Contains verification results for the recipient's details. Only populated for currencies with recipient verification enabled (CNY, KRW, INR, IDR, EUR). See the Recipient verification guides for details about how to handle this verification data by currency.
confirmations.acceptedAt string,null (date-time) No Timestamp indicating date and time of outcome acceptance. Value is null until acceptance received.
confirmations.acceptedOutcomes boolean No Indicates whether we've received an explicit customer acceptance.
confirmations.outcomes array of object No Array of confirmation outcomes. Currently, it is safe to assume there is only one element in the outcomes array.
confirmations.outcomes[].fieldsChecked array of string No Fields used to confirm the account.
confirmations.outcomes[].message string No Customer-facing message about the outcome of the check.
confirmations.outcomes[].outcome string No The actual outcome of the confirmation check. Possible values: SUCCESS, PARTIAL_FAILURE, FAILURE, COULD_NOT_CHECK.
confirmations.outcomes[].providedName string No The name the customer provided when creating the recipient account. Only populated for NAME_MATCHING and NAME_RESOLUTION types for certain outcomes.
confirmations.outcomes[].recommendedUpdates array of object No Shows the correct values for some of the fields checked.
confirmations.outcomes[].recommendedUpdates[].path string No The field path to update.
confirmations.outcomes[].recommendedUpdates[].value string No The recommended value for the field.
confirmations.outcomes[].requiresCustomerAcceptance boolean No Indicates whether we require customer acceptance. The value for this field (true or false) depends on the currency and the nature of the confirmation. If true, you must present your customer with the ability to accept or decline the confirmation result.
confirmations.outcomes[].resolvedName string No The name that we resolved during name matching or name resolution.
confirmations.outcomes[].timestamp string (date-time) No Timestamp of when the confirmation check was performed.
confirmations.outcomes[].type string No The type of confirmation. Possible values: ACCOUNT_EXISTENCE, NAME_MATCHING, NAME_RESOLUTION.
confirmations.quoteId string,null No If the confirmation check was run as part of a quote compatibility check, then the quoteId is included in the result. If quoteId is present, the outcome acceptance needs the quoteId to be specified as well.
country string No 2-character country code.
creatorId integer (int64) No Account entity that owns the recipient account.
currency string No 3-character currency code.
details object No Contains the details of the recipient account specific to its currency and type. The fields required (in the request) or present (in the response) vary depending on currency route and recipient type (for example, sort code, IBAN, SWIFT, email).
details.accountNumber string No Recipient bank account number (GBP example).
details.hashedByLooseHashAlgorithm string No Recipient account hash.
details.reference string,null No Recipient reference (applies for some routes).
details.sortCode string No Recipient bank sort code (GBP example).
displayFields array of object No Lookup fields (key/label/value) for rendering in your front-end. Allows you to build a UI containing all the dynamic fields for a recipient individually.
displayFields[].key string No Account identifier key name.
displayFields[].label string No Account identifier display label.
displayFields[].value string No Account identifier value.
hash string No Account hash for tracking changes to recipient details. This is useful for re-running any validation checks on the recipient, for example against fraud engines. The hash remains constant unless the recipient's name or information in the details object changes.
id integer (int64) No ID of the recipient. Use the returned id as sourceAccount to specify the refund recipient when creating transfers.
isInternal boolean No Indicates whether recipient is internal.
legalEntityType string No Entity type of recipient account.
longAccountSummary string No Longer account details summary. Can be used to display recipient details in your UI.
name object No Recipient name details.
name.cannotHavePatronymicName boolean,null No Indicates if the recipient cannot have a patronymic name (when applicable).
name.familyName string,null No Recipient surname.
name.fullName string No Recipient full name.
name.givenName string,null No Recipient first name.
name.middleName string,null No Recipient middle name.
name.patronymicName string,null No Recipient patronymic name (when applicable).
ownedByCustomer boolean No Inidicates if recipient account belongs to profile owner.
profileId integer (int64) No Specific profile that owns the recipient account.
type string No Recipient account type.
ultimateBeneficiary object,null No The details for the ultimate beneficiary of this recipient.
ultimateBeneficiary.accountNumber string,null No Ultimate beneficiary account number.
ultimateBeneficiary.address object,null No Ultimate beneficiary address.
ultimateBeneficiary.address.city string No
ultimateBeneficiary.address.country string No
ultimateBeneficiary.address.firstLine string No
ultimateBeneficiary.address.postCode string No
ultimateBeneficiary.address.state string No
ultimateBeneficiary.bankAddress object,null No Ultimate beneficiary bank address.
ultimateBeneficiary.bankAddress.city string No
ultimateBeneficiary.bankAddress.country string No
ultimateBeneficiary.bankAddress.firstLine string No
ultimateBeneficiary.bankAddress.postCode string No
ultimateBeneficiary.bankAddress.state string No
ultimateBeneficiary.bankCode string,null No Ultimate beneficiary bank code.
ultimateBeneficiary.bankName string,null No Ultimate beneficiary bank name.
ultimateBeneficiary.name object Yes Ultimate beneficiary name.
ultimateBeneficiary.name.fullName string Yes Ultimate beneficiary's full name.
429: Rate limit exceeded. Retry after the number of seconds specified in the Retry-After header

application/json

The response is object.