# Fund a Transfer

This endpoint is SCA protected when it applies. If your profile is registered within the UK and/or EEA, SCA most likely applies to you.
Please read more about [implementing SCA](/guides/developer/auth-and-security/sca-and-2fa).
This API call is the final step for executing payouts when using a balance with Wise. Upon calling the endpoint, Wise will begin the processing of the transfer, depending on the status of funds.
When using the transfer by transfer settlement model, the following funding type(s) must be used:
* **BALANCE** — Funds are pulled from a multi-currency account held with Wise.

When funding through the Bulk Settlement model, the following funding type(s) must be used:
* **TRUSTED_PRE_FUND_BULK** — Funds for the transfer will be settled through a bulk payment at a later date. This method is not applicable for First Party partner account transfers.

If funding from `BALANCE`, and your multi-currency account does not have the required funds to complete the action, then this call will fail with an "insufficient funds" error. Once funds are added and available, you must call this endpoint again.

Endpoint: POST /profiles/{profileId}/transfers/{transferId}/payments
Version: 2027Q1
Security: UserToken, PersonalToken

## Security:

  - `UserToken` (unknown)
    http bearer JWT

  - `PersonalToken` (unknown)
    http bearer JWT

## Path parameters:

  - `profileId` (integer, required)
    Profile Id

  - `transferId` (integer, required)
    Transfer Id

## Header parameters:

  - `X-External-Correlation-Id` (string)
    Optional UUID for correlating requests across systems. If provided, Wise echoes it back in the response. Maximum 36 characters. [Learn more](/guides/developer/headers/correlation-id).

## Request fields (application/json):

  - `balanceId` (integer)
    ID of the balance to debit.
    Example: 45678901

  - `type` (string, required)

  - `partnerReference` (string)
    The transaction/payment identifier in your system. Required for the Cross Currency Bulk Settlement model.
    Example: PARTNER-REF-4711

  - `status` (string)
    Internal status field.
    Example: COMPLETE

## Request examples:

  - `BALANCE - Fund from a Wise balance (Pre-Funded Wise Balance)` (unknown)

  - `TRUSTED_PRE_FUND_BULK - Cross Currency Bulk Settlement` (unknown)

  - `TRUSTED_PRE_FUND_TX - Per-transaction trusted pre-fund` (unknown)

## Response 201:

  - `201` (unknown)
    FundTransfer 201 response

## Response 201 fields (application/json):

  - `status` (string)
    Outcome of a funding attempt.
    Enum: "CREATED", "COMPLETED", "REJECTED"

  - `errorCode` (string)
    Machine-readable error code returned with `status: REJECTED`. Each member's documentation notes the `type` values that can produce it and the underlying HTTP status.
This is the complete set of error codes the API can return today. Consumers should treat unknown codes defensively (new codes may be added); a wildcard fallback to a generic 'funding failed' UI is recommended.
    Enum: "transfer.not-found", "transfer.invalid-state", "payment.exists", "transfer.not-accessible-for-user", "balance.unauthorised.missing-security-role", "payment.not-found", "invalid.request", "unexpected.error", "payment.option-unavailable", "balance.payment-option-unavailable", "balance.account-not-found", "balance.account-inactive", "balance.insufficient-funds", "balance.no-balance-for-currency", "balance.currency-unsupported", "trustedprefundbulk.payment-option-unavailable", "trustedprefundtx.payment-option-unavailable"

  - `errorMessage` (string)
    Free-form human-readable explanation of a `REJECTED` outcome. Suitable for logging and developer-facing tools; not localised and not safe to surface to end users. May be absent.
    Example: Transfer not found

  - `balanceTransactionId` (integer)
    ID of the balance transaction created to settle the transfer.
    Example: 987654321

  - `type` (string, required)

  - `partnerReference` (string)
    Partner-supplied reference echoed back.
    Example: PARTNER-REF-4711

## Response 201 headers (application/json):

  - `X-External-Correlation-Id` (string)
    Echoed back when `X-External-Correlation-Id` was included in the request. [Learn more](/guides/developer/headers/correlation-id).
    Example: f47ac10b-58cc-4372-a567-0e02b2c3d479

  - `x-trace-id` (string)
    Unique trace identifier assigned by Wise. Useful when contacting support about a specific request.
    Example: fba501b6d453b96789f52338f019341f

## Response 400:

  - `400` (unknown)
    InvalidRequestError 400 response

## Response 400 headers (text/plain):

  - `X-External-Correlation-Id` (string)
    Echoed back when `X-External-Correlation-Id` was included in the request. [Learn more](/guides/developer/headers/correlation-id).
    Example: f47ac10b-58cc-4372-a567-0e02b2c3d479

  - `x-trace-id` (string)
    Unique trace identifier assigned by Wise. Useful when contacting support about a specific request.
    Example: fba501b6d453b96789f52338f019341f

## Response 403:

  - `403` (unknown)
    UnauthorisedAccessError 403 response

## Response 403 headers (text/plain):

  - `X-External-Correlation-Id` (string)
    Echoed back when `X-External-Correlation-Id` was included in the request. [Learn more](/guides/developer/headers/correlation-id).
    Example: f47ac10b-58cc-4372-a567-0e02b2c3d479

  - `x-trace-id` (string)
    Unique trace identifier assigned by Wise. Useful when contacting support about a specific request.
    Example: fba501b6d453b96789f52338f019341f

## Response 404:

  - `404` (unknown)
    EntityNotFoundError 404 response

## Response 404 headers (text/plain):

  - `X-External-Correlation-Id` (string)
    Echoed back when `X-External-Correlation-Id` was included in the request. [Learn more](/guides/developer/headers/correlation-id).
    Example: f47ac10b-58cc-4372-a567-0e02b2c3d479

  - `x-trace-id` (string)
    Unique trace identifier assigned by Wise. Useful when contacting support about a specific request.
    Example: fba501b6d453b96789f52338f019341f

## Response 409:

  - `409` (unknown)
    PaymentAlreadyExistsError 409 response

## Response 409 headers (text/plain):

  - `X-External-Correlation-Id` (string)
    Echoed back when `X-External-Correlation-Id` was included in the request. [Learn more](/guides/developer/headers/correlation-id).
    Example: f47ac10b-58cc-4372-a567-0e02b2c3d479

  - `x-trace-id` (string)
    Unique trace identifier assigned by Wise. Useful when contacting support about a specific request.
    Example: fba501b6d453b96789f52338f019341f

## Response 422:

  - `422` (unknown)
    UnsupportedOperationError 422 response

## Response 422 headers (text/plain):

  - `X-External-Correlation-Id` (string)
    Echoed back when `X-External-Correlation-Id` was included in the request. [Learn more](/guides/developer/headers/correlation-id).
    Example: f47ac10b-58cc-4372-a567-0e02b2c3d479

  - `x-trace-id` (string)
    Unique trace identifier assigned by Wise. Useful when contacting support about a specific request.
    Example: fba501b6d453b96789f52338f019341f

## Response 429:

  - `429` (unknown)
    Rate limit exceeded. Retry after the number of seconds specified in the `Retry-After` header.

## Response 429 headers (application/json):

  - `Retry-After` (integer)
    Number of seconds to wait before retrying the request.
    Example: 5

  - `X-Rate-Limited-By` (string)
    Identifies the rate limiter that triggered the 429 response.
    Example: wise-public-api

  - `X-External-Correlation-Id` (string)
    Echoed back when `X-External-Correlation-Id` was included in the request. [Learn more](/guides/developer/headers/correlation-id).
    Example: f47ac10b-58cc-4372-a567-0e02b2c3d479

  - `x-trace-id` (string)
    Unique trace identifier assigned by Wise. Useful when contacting support about a specific request.
    Example: fba501b6d453b96789f52338f019341f

## Response 500:

  - `500` (unknown)
    UnexpectedError 500 response

## Response 500 headers (text/plain):

  - `X-External-Correlation-Id` (string)
    Echoed back when `X-External-Correlation-Id` was included in the request. [Learn more](/guides/developer/headers/correlation-id).
    Example: f47ac10b-58cc-4372-a567-0e02b2c3d479

  - `x-trace-id` (string)
    Unique trace identifier assigned by Wise. Useful when contacting support about a specific request.
    Example: fba501b6d453b96789f52338f019341f

## Response 201 examples:

  - `BALANCE - completed` (unknown)

  - `BALANCE - rejected (insufficient funds)` (unknown)

  - `TRUSTED_PRE_FUND_BULK - completed` (unknown)

