> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mangopay.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create an IBAN Banking Alias

<Warning>
  **Deprecated – Decommissioning planned Q3 2026**

  Mangopay plans to decommission the Banking Alias endpoints in Q3 2026.

  Platforms using them should plan to re-integrate using the [Virtual Account](/api-reference/virtual-accounts/virtual-account-object) endpoints.

  Existing Banking Alias objects are available via the [GET View a Virtual Account](/api-reference/virtual-accounts/view-virtual-account) endpoint by using the Banking Alias `Id` and `WalletId` as path parameters.
</Warning>

<Warning>
  **Caution – Rely on `OwnerName` returned in response**

  Since September 15, 2025, Mangopay sets the `OwnerName` value by default based on the criteria [available here](/guides/vop/payins#banking-alias-categorization).

  Your platform must rely on the API response value (also available on the GET endpoints) and ensure it is easy to see and copy for the end user in your interfaces.
</Warning>

<Note>
  **Note - Payee confirmation in the UK**

  When the user sets up the payee with their bank, Mangopay UK or Mangopay SA is displayed as the account holder name. You should communicate this to them to avoid confusion.
</Note>

### Path parameters

<ParamField path="WalletId" type="string" required>
  The unique identifier of the wallet.
</ParamField>

### Body parameters

<ParamField body="OwnerName" type="string" required>
  Max. length: 255 characters

  The owner of the banking alias, which is set automatically by Mangopay since September 15, 2025 ([read more](/guides/vop/payins#banking-alias-categorization)).

  If the User owning the attached wallet has `UserCategory` of `OWNER` and the `KYCLevel` of `REGULAR`, then the `OwnerName` is set to the `FirstName` and `LastName` values for a [Natural User](/api-reference/users/natural-user-object-sca) or the `Name` value for a [Legal User](/api-reference/users/legal-user-object-sca). In this case, the `VirtualAccountPurpose` in the API response is `USER_OWNED` .

  If the User is not KYC verified and an `OWNER`, then the `OwnerName` is set to “MGP `PlatformTradingName`" in standard cases, or else “Mangopay” for Marketplace Payment Extension (MPE) workflows. In this case, the `VirtualAccountPurpose` in the API response is `COLLECTION`.

  **Caution:** Your platform must ensure that you use the `OwnerName` returned in the API response.
</ParamField>

<ParamField body="Country" type="string" required>
  **Allowed values:** DE, DK, ES, FR, GB, LU, PL

  The country of the banking alias. The country must correspond to the currency of the wallet.
</ParamField>

<ParamField body="Tag" type="string">
  Max. length: 255 characters

  Custom data that you can add to this object.
</ParamField>

### Responses

<AccordionGroup>
  <Accordion title="200 - FR">
    <ResponseField name="OwnerName" type="string">
      Max. length: 255 characters

      The owner of the banking alias, which is set automatically by Mangopay since September 15, 2025 ([read more](/guides/vop/payins#banking-alias-categorization)).

      If the User owning the attached wallet has `UserCategory` of `OWNER` and the `KYCLevel` of `REGULAR`, then the `OwnerName` is set to the `FirstName` and `LastName` values for a [Natural User](/api-reference/users/natural-user-object-sca) or the `Name` value for a [Legal User](/api-reference/users/legal-user-object-sca). In this case, the `VirtualAccountPurpose` in the API response is `USER_OWNED`.

      If the User is not KYC verified and an `OWNER`, then the `OwnerName` is set to “MGP `PlatformTradingName`" in standard cases, or else “Mangopay” for Marketplace Payment Extension (MPE) workflows. In this case, the `VirtualAccountPurpose` in the API response is `COLLECTION`.

      **Caution:** Your platform must ensure that you use the `OwnerName` returned in the API response.
    </ResponseField>

    <ResponseField name="IBAN" type="string">
      The IBAN (international bank account number) of the banking alias.
    </ResponseField>

    <ResponseField name="BIC" type="string">
      The BIC (international identifier of the bank) for the banking alias.
    </ResponseField>

    <ResponseField name="CreditedUserId" type="string">
      The unique identifier of the user whose wallet is credited, in other words, the Owner of the wallet for which the alias is created.\
      Note: Once the banking alias is created, it is not possible to change the `CreditedUserId`.
    </ResponseField>

    <ResponseField name="Country" type="string">
      **Returned values:** DE, DK, ES, FR, GB, LU, PL

      The country of the banking alias. The country must correspond to the currency of the wallet.
    </ResponseField>

    <ResponseField name="Tag" type="string">
      Max. length: 255 characters

      Custom data that you can add to this object.
    </ResponseField>

    <ResponseField name="CreationDate" type="Unix timestamp">
      The date and time at which the object was created.
    </ResponseField>

    <ResponseField name="Active" type="boolean">
      Whether or not the banking alias is active.

      **Caution:** Setting this value to `false` is irreversible.
    </ResponseField>

    <ResponseField name="Type" type="string">
      **Returned values:** `IBAN`, `GB`

      The type of banking alias.

      The `GB` value is only returned if the `Country` is `GB`.
    </ResponseField>

    <ResponseField name="Id" type="string">
      Max length: 128 characters (see [data formats](/api-reference/overview/data-formats) for details)

      The unique identifier of the object.
    </ResponseField>

    <ResponseField name="WalletId" type="string">
      The unique identifier of the wallet.
    </ResponseField>
  </Accordion>

  <Accordion title="200 - GB">
    <ResponseField name="OwnerName" type="string">
      Max. length: 255 characters

      The owner of the banking alias, which is set automatically by Mangopay since September 15, 2025 ([read more](/guides/vop/payins#banking-alias-categorization)).

      If the User owning the attached wallet has `UserCategory` of `OWNER` and the `KYCLevel` of `REGULAR`, then the `OwnerName` is set to the `FirstName` and `LastName` values for a [Natural User](/api-reference/users/natural-user-object-sca) or the `Name` value for a [Legal User](/api-reference/users/legal-user-object-sca). In this case, the `VirtualAccountPurpose` in the API response is `USER_OWNED`.

      If the User is not KYC verified and an `OWNER`, then the `OwnerName` is set to “MGP `PlatformTradingName`" in standard cases, or else “Mangopay” for Marketplace Payment Extension (MPE) workflows. In this case, the `VirtualAccountPurpose` in the API response is `COLLECTION`.

      **Caution:** Your platform must ensure that you use the `OwnerName` returned in the API response.
    </ResponseField>

    <ResponseField name="IBAN" type="string">
      The IBAN (international bank account number) of the banking alias.
    </ResponseField>

    <ResponseField name="BIC" type="string">
      The BIC (international identifier of the bank) for the banking alias.
    </ResponseField>

    <ResponseField name="LocalAccountDetails" type="object">
      The banking alias details in local format returned if applicable for the `Country` (e.g. `GB`), otherwise `null`

      <Expandable>
        <ResponseField name="SortCode" type="string">
          The sort code of the banking alias in local format.
        </ResponseField>

        <ResponseField name="AccountNumber" type="string">
          The account number of the banking alias in local format.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="CreditedUserId" type="string">
      The unique identifier of the user whose wallet is credited, in other words, the Owner of the wallet for which the alias is created.\
      Note: Once the banking alias is created, it is not possible to change the `CreditedUserId`.
    </ResponseField>

    <ResponseField name="Country" type="string">
      **Returned values:** DE, DK, ES, FR, GB, LU, PL

      The country of the banking alias. The country must correspond to the currency of the wallet.
    </ResponseField>

    <ResponseField name="Tag" type="string">
      Max. length: 255 characters

      Custom data that you can add to this object.
    </ResponseField>

    <ResponseField name="CreationDate" type="Unix timestamp">
      The date and time at which the object was created.
    </ResponseField>

    <ResponseField name="Active" type="boolean">
      Whether or not the banking alias is active.

      **Caution:** Setting this value to `false` is irreversible.
    </ResponseField>

    <ResponseField name="Type" type="string">
      **Returned values:** `IBAN`, `GB`

      The type of banking alias.

      The `GB` value is only returned if the `Country` is `GB`.
    </ResponseField>

    <ResponseField name="Id" type="string">
      Max length: 128 characters (see [data formats](/api-reference/overview/data-formats) for details)

      The unique identifier of the object.
    </ResponseField>

    <ResponseField name="WalletId" type="string">
      The unique identifier of the wallet.
    </ResponseField>
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="400 - Country not supported">
    ```json theme={null}
    {
        "Message": "One or several required parameters are missing or incorrect. An incorrect resource ID also raises this kind of error.",
        "Type": "param_error",
        "Id": "fd020620-8e5c-4b64-925c-aa980e42c237#1670340996",
        "Date": 1670340997.0,
        "errors": {
            "Country": "The requested country is not supported"
        }
    }
    ```
  </Accordion>

  <Accordion title="400 - Wallet already has a Banking Alias">
    ```json theme={null}
    {
        "Message": "There is already a banking alias existing for this wallet",
        "Type": "wallet_banking_alias_already_exists",
        "Id": "77b73aa3-e08e-4e04-9ffd-5c94ed4f73ff",
        "Date": 1732178114,
        "errors": null
    }
    ```
  </Accordion>

  <Accordion title="400 - Invalid country for wallet currency">
    ```json theme={null}
    {
        "Message": "Invalid country GB for EUR wallet. Possible value(s): LU/FR/ES/DE.",
        "Type": "country_not_associated_to_wallet_currency",
        "Id": "1eb1c947-bac2-4127-a636-fe7d811db9e7",
        "Date": 1725288513.0,
        "errors": null
    }
    ```
  </Accordion>
</AccordionGroup>

<AccordionGroup>
  <Accordion title="403 - Feature not activated">
    ```json theme={null}
    {
        "Message": "This endpoint is not available for your account",
        "Type": "forbidden_ressource",
        "Id": "441d156a-ebd1-421e-851b-460a25c6a53f#1670262779",
        "Date": 1670262780.0,
        "errors": null
    }  
    ```
  </Accordion>
</AccordionGroup>

<ResponseExample>
  ```json 200 - FR  theme={null}
  {
      "OwnerName": "Alex Smith",
      "IBAN": "FR7674521100005657670994474",
      "BIC": "MPAYFRP1PIN",
      "CreditedUserId": "user_m_01HSB23417BFG7YXR7E371JSEA",
      "Country": "FR",
      "Tag": "Created using Mangopay API Postman Collection",
      "CreationDate": 1710846581,
      "Active": true,
      "Type": "IBAN",
      "Id": "wltbank_m_01HSB6E769Y3ZBYDJACSP3THGA",
      "WalletId": "wlt_m_01HSB6DE1YT1EMTH0K7ASYPG96"
  }
  ```

  ```json 200 - GB theme={null}
  {
      "OwnerName": "Alex Smith",
      "IBAN": "GB78SAPY60838221394585",
      "BIC": null,
      "LocalAccountDetails": {
          "SortCode": "608382",
          "AccountNumber": "21394585"
      },
      "CreditedUserId": "user_m_01JADFDBCZS25REHAF6M0NJH5G",
      "Country": "GB",
      "Tag": "Created using Mangopay API Postman Collection",
      "CreationDate": 1730883439,
      "Active": true,
      "Type": "GB",
      "Id": "wltbank_01JC0B2JH632KTAGSM0ZBJYG7Q",
      "WalletId": "wlt_m_01JC0B1VZA7YG1J4YC21E60PZM"
  }
  ```
</ResponseExample>

<RequestExample>
  ```json REST   theme={null}
  {
      "OwnerName": "Alex Smith",
      "Country": "FR",
      "Tag": "Created using Mangopay API Postman Collection"
  }  
  ```

  ```php PHP theme={null}
  <?php 

  require_once 'vendor/autoload.php';

  use MangoPay\MangoPayApi;
  use MangoPay\Libraries\ResponseException as MGPResponseException;
  use MangoPay\Libraries\Exception as MGPException;

  $api = new MangoPayApi();

  $api->Config->ClientId = 'your-client-id';
  $api->Config->ClientPassword = 'your-api-key';
  $api->Config->TemporaryFolder = 'tmp/';

  try {
      $walletId = '194311530';

      $bankingAlias = new \MangoPay\BankingAliasIBAN();
      $bankingAlias->OwnerName = 'Alex Smith';
      $bankingAlias->Tag = 'Updated using Mangopay PHP SDK';
      $bankingAlias->Country ='FR';
      $bankingAlias->WalletId = $walletId;
      
      $response = $api->BankingAliases->Create($bankingAlias);

      print_r($response);
  } catch(MGPResponseException $e) {
      print_r($e);
  } catch(MGPException $e) {
      print_r($e);
  }  
  ```

  ```javascript NodeJS   theme={null}
  const mangopayInstance = require('mangopay4-nodejs-sdk')
  const mangopay = new mangopayInstance({
    clientId: 'your-client-id',
    clientApiKey: 'your-api-key',
  })

  let myBankingAlias = {
    OwnerName: 'John',
    Tag: 'Created with Mangopay NodeJS SDK',
    Country: 'FR',
    Type: 'IBAN',
    WalletId: '172463559',
  }

  const createBankingAlias = async (bankingAlias) => {
    return await mangopay.BankingAliases.create(bankingAlias)
      .then((response) => {
        console.info(response)
        return response
      })
      .catch((err) => {
        console.log(err)
        return false
      })
  }

  createBankingAlias(myBankingAlias)  
  ```

  ```ruby Ruby   theme={null}
  require 'mangopay'

  MangoPay.configure do |client|
      client.preproduction = true
      client.client_id = 'your-client-id'
      client.client_apiKey = 'your-api-key'
      client.log_file = File.join(Dir.pwd, 'mangopay.log')
  end

  def createBankingAlias(bankingAliasObject, walletId)
      begin
          response = MangoPay::BankingAliasesIBAN.create(bankingAliasObject, walletId)
          puts response
          return response
      rescue MangoPay::ResponseError => error
          puts "Failed to create banking alias: #{error.message}"
          puts "Error details: #{error.details}"
          return false
      end
  end


  myBankingAlias = {
      OwnerName: 'John',
      Tag: 'Created with Mangopay NodeJS SDK',
      Country: 'FR',
      Type: 'IBAN',
      WalletId: '194311640'
  }

  myWallet = {
      Id: '194311640'
  }

  createBankingAlias(myBankingAlias, myWallet[:Id])  
  ```

  ```java Java theme={null}
  import com.google.gson.Gson;
  import com.google.gson.GsonBuilder;
  import com.mangopay.MangoPayApi;
  import com.mangopay.core.enumerations.CountryIso;
  import com.mangopay.entities.BankingAlias;
  import com.mangopay.entities.UserNatural;

  public class CreateIbanBankingAlias {
      public static void main(String[] args) throws Exception {
          MangoPayApi mangopay = new MangoPayApi();
          mangopay.getConfig().setClientId("your-client-id");
          mangopay.getConfig().setClientPassword("your-api-key");

          UserNatural user = mangopay.getUserApi().getNatural("user_m_01HT2NFK7Z2BRQNGNHMY30VVTT");
          var walletId = "wlt_m_01J1YRFBF1EDX4TK2A5G0MNRSN";    

          BankingAlias bankingAlias = new BankingAlias();
          bankingAlias.setOwnerName(String.format("%s %s", user.getFirstName(), user.getLastName()));
          bankingAlias.setCountry(CountryIso.FR);

          BankingAlias createBankingAlias = mangopay.getBankingAliases().create(walletId, bankingAlias);

          Gson prettyPrint = new GsonBuilder().setPrettyPrinting().create();
          String prettyJson = prettyPrint.toJson(createBankingAlias);

          System.out.println(prettyJson);
      }
  }
  ```

  ```python Python   theme={null}
  from pprint import pprint
  import mangopay

  mangopay.client_id='your-client-id'
  mangopay.apikey='your-api-key'

  from mangopay.api import APIRequest
  handler = APIRequest(sandbox=True)

  from mangopay.api import APIRequest
  handler = APIRequest(sandbox=True)

  from mangopay.resources import NaturalUser, Wallet, BankingAliasIBAN

  natural_user = NaturalUser.get('213753890')

  user_wallet = Wallet.get('215029593')

  iban_alias = BankingAliasIBAN(
      owner_name = f'{natural_user.first_name} {natural_user.last_name}',
      credited_user = natural_user,
      wallet_id = user_wallet.id,
      tag = 'Create using the Mangopay Python SDK',
      country = 'FR' 
  )

  create_iban_alias = iban_alias.save()

  pprint(create_iban_alias)  
  ```

  ```csharp .NET  theme={null}
  using MangoPay.SDK;
  using MangoPay.SDK.Entities.PUT;
  using Newtonsoft.Json;

  class Program
  {
      static async Task Main(string[] args)
      {
          MangoPayApi api = new MangoPayApi();

          api.Config.ClientId = "your-client-id";
          api.Config.ClientPassword = "your-api-key";

          var userId = "user_m_01J2TZ261WZNDM0ZDRWGDYA4GN";
          UserNaturalDTO user = await api.Users.GetNaturalAsync(userId);
          var walletId = "wlt_m_01J3D02K6ETV3BDP88C7PD2NDB";
          
          var bankingAliasIban = new BankingAliasIbanPostDTO(
              user.FirstName + " " + user.LastName, 
              CountryIso.FR
          ) {
              Tag = "Created using the Mangopay .NET SDK"
          };

          var createBankingAlias = await api.BankingAlias.CreateIbanAsync(walletId, bankingAliasIban);

          string prettyPrint = JsonConvert.SerializeObject(createBankingAlias, Formatting.Indented);
          Console.WriteLine(prettyPrint);
      }
  }
  ```
</RequestExample>
