**Last updated**: 14 May 2025 | [**Change log**](/products/transfers/changelog/)

# Account Transfers API

Transfer funds between your currency accounts.

Important
Make yourself familiar with our [API Principles](/products/reference/api-principles) to ensure a resilient integration.

## Get started

Ready to integrate? Use our [API Reference](/products/transfers/openapi) and set your headers.

## Request

`POST`  `https://try.access.worldpay-bsh.securedataplatform.com/accounts/transfer/`

### Example request


```json
{
  "sourceAccountNumber": "0000001212121212",
  "targetAccountNumber": "1212121212121415",
  "amount": "77.22",
  "narrative": "A narrative",
  "quoteId": "string"
}
```

br
### Request schema:


```json
{
  "$ref": "#/components/schemas/TransferRequest",
  "components": {
    "schemas": {
      "TransferRequest": {
        "required": [
          "amount",
          "narrative",
          "sourceAccountNumber",
          "targetAccountNumber"
        ],
        "type": "object",
        "properties": {
          "sourceAccountNumber": {
            "maxLength": 16,
            "minLength": 16,
            "type": "string",
            "description": "The source account number.",
            "example": "1111550000000001"
          },
          "targetAccountNumber": {
            "maxLength": 16,
            "minLength": 16,
            "type": "string",
            "description": "The target account number.",
            "example": "1111550000000002"
          },
          "amount": {
            "type": "number",
            "description": "The amount. A maximum of seven digits before the decimal place. A maximum of two decimal places.",
            "format": "double",
            "example": "77.22"
          },
          "narrative": {
            "maxLength": 34,
            "minLength": 6,
            "pattern": "^[a-zA-Z0-9\\s-]",
            "type": "string",
            "description": "You can use this to describe what the transfer is for.",
            "example": "A narrative"
          },
          "quoteId": {
            "type": "string",
            "description": "The `quoteId` returned by the [FX API](/products/fx/create-fxquote).",
            "nullable": true,
            "example": "QuoteId"
          }
        },
        "additionalProperties": false
      }
    }
  }
}
```

br
## Response

### Response examples

Successful response
**Body of the response**

There is **no body** for a successful response. Only HTTP status **202** will be returned.

Error response

```json
{
  "errorName": "bodyDoesNotMatchSchema",
  "message": "The json body provided does not match the expected schema",

  "validationErrors": [
    {
      "errorName": "fieldHasInvalidValue",
      "message": "Target account number must be 16 characters",
      "jsonPath": "$.targetAccountNumber"
    },
    {
      "errorName": "fieldHasInvalidValue",
      "message": "Source account number must be 16 characters",
      "jsonPath": "$.sourceAccountNumber"
    },
    {
      "errorName": "fieldIsNull",
      "message": "Amount is mandatory and  should be greater than 0",
      "jsonPath": "$.amount"
    }
  ]  
}
```

#### Errors

Check out our API reference for the full [error code schema](/products/transfers/openapi).