> ## 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.

# Deactivate a Bank Account

<Note>
  **Note – Replaced by Recipients feature**

  The Bank Account object and endpoints have been replaced by the Recipients feature, which all platforms should integrate instead.

  Legacy active Bank Accounts (`Active` is `true`) have been migrated to the new feature and their data is retrievable via the [GET View a Recipient](/api-reference/recipients/view-recipient) endpoint using the same `BankAccountId`. Read more about [legacy bank account migration](/guides/payouts#migration-of-legacy-bank-accounts).
</Note>

### Path parameters

<ParamField path="UserId" type="string" required>
  The unique identifier of the User (natural or legal) who owns the bank account.
</ParamField>

<ParamField path="BankAccountId" type="string" required>
  The unique identifier of the bank account.
</ParamField>

### Body parameters

<ParamField body="Active" type="boolean" required>
  Whether or not the Bank Account is active.
  Mangopay automatically sets this parameter to `false` if the bank account is closed or does not exist anymore.
</ParamField>

### Responses

<AccordionGroup>
  <Accordion title="200 - IBAN-type Bank Account example">
    <ResponseField name="OwnerAddress" type="object">
      Information about the address of residence of the bank account owner.

      <Expandable title="properties">
        <ResponseField name="AddressLine1" type="string">
          Max. length: 255 characters

          The first line of the address.
        </ResponseField>

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

          The second line of the address.
        </ResponseField>

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

          The city of the address.
        </ResponseField>

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

          The region of the address. This field is optional except if the `Country` is US, CA, or MX.
        </ResponseField>

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

          The postal code of the address. The postal code can contain the following characters: alphanumeric, dashes, and spaces.
        </ResponseField>

        <ResponseField name="Country" type="string">
          Format: Two-letter country code ([ISO 3166-1 alpha-2 format](/api-reference/overview/data-formats))

          The country of the address.
        </ResponseField>
      </Expandable>
    </ResponseField>

    <ResponseField name="IBAN" type="string">
      Max. length: 34 characters

      The IBAN (international bank account number) of the bank account.
      It follows the CCDDBBAN format in which:

      * CC represents the country code (ISO 3166-1 alpha 2)
      * DD represents two check digits used by banking systems to avoid simple errors
      * BBAN stands for the Basic Bank Account Number which is up to 30 alphanumeric characters that are country-specific.\
        Note: You will need a valid IBAN (i.e., existing in real life) when testing on a Sandbox account even if no actual payout will be processed.
    </ResponseField>

    <ResponseField name="BIC" type="string">
      The BIC (international identifier of the bank) for IBAN or OTHER-type bank accounts.

      The BIC can have one of the two following formats:

      * BIC8 – 8-character BIC (AAAABBCC)
      * BIC11 – 11-character BIC (AAAABBCCDDD)

      In which:

      * AAAA represents the bank code: 4 characters defining the bank
      * BB represents the country code: 2 characters forming the country ISO code (ISO 3166 format)
      * CC represents the location code: 2 localization characters (alphabetical or numeric) to distinguish banks from the same country
      * DDD represents the branch code: 3 characters used to define the branch of the bank (sometimes replaced with XXX)
    </ResponseField>

    <ResponseField name="UserId" type="string">
      The unique identifier of the User (natural or legal) who owns the bank account.
    </ResponseField>

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

      The full name of the owner of the bank account. (Format: FirstName LastName)
    </ResponseField>

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

      The type of the bank account, indicating the country where the real-life account is registered\
      The values are:

      * `IBAN` – For accounts registered in countries that use IBAN 
      * `US` – For accounts registered in the United States 
      * `CA` – For accounts registered in Canada
      * `GB` – For accounts registered in the United Kingdom
      * `OTHER` – For accounts registered in countries that do not use IBAN (and are not US, CA, 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="Tag" type="string">
      Max. length: 255 characters

      Custom data that you can add to this object.\
      For bank accounts, you can use this parameter to identify the bank account by currency or usage (personal or professional for instance).
    </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 Bank Account is active.
      Mangopay automatically sets this parameter to `false` if the bank account is closed or does not exist anymore.
    </ResponseField>
  </Accordion>
</AccordionGroup>

<ResponseExample>
  ```json 200 - IBAN-type Bank Account example   theme={null}
  {
      "OwnerAddress":{
          "AddressLine1":"The Oasis",
          "AddressLine2":"Rue des plantes",
          "City":"Paris",
          "Region":"Ile de France",
          "PostalCode":"75010",
          "Country":"FR"
      },
      "IBAN":"FR7630004000031234567890143",
      "BIC":"CRLYFRPP",
      "UserId":"142036728",
      "OwnerName":"John Doe",
      "Type":"IBAN",
      "Id":"142036878",
      "Tag":"Custom meta",
      "CreationDate":1654073079,
      "Active":false
  }  
  ```
</ResponseExample>

<RequestExample>
  ```json REST   theme={null}
  {
      "Active":false
  }  
  ```

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

  let user = {
    Id: '165863393',
  }

  let bankAccount = {
    Id: '172327870',
  }

  const deactivateBankAccount = async (userId, bankAccountId) => {
    return await mangopay.Users.deactivateBankAccount(userId, bankAccountId)
      .then((response) => {
        console.info(response)
        return response
      })
      .catch((err) => {
        console.log(err)
        return false
      })
  }

  deactivateBankAccount(user.Id, bankAccount.Id)  
  ```

  ```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 deactivateBankAccount(userId, bankAccountId, params)
      begin
          response = MangoPay::BankAccount.update(userId, bankAccountId, params)
          puts response
          return response
      rescue MangoPay::ResponseError => error
          puts "Failed to deactivate bank account: #{error.message}"
          puts "Error details: #{error.details}"
          return false
      end
  end

  myUser = {
      Id: '165863393'
  }

  myBankAccount = {
      Id: '194239783',
  }

  myParams = {
      Active: false,
  }

  deactivateBankAccount(myUser[:Id], myBankAccount[:Id], myParams)  
  ```

  ```java Java  theme={null}
  import com.google.gson.Gson;
  import com.google.gson.GsonBuilder;
  import com.mangopay.MangoPayApi;
  import com.mangopay.entities.BankAccount;

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

          var userId = "user_m_01J29D5XMKKNPX72AR5HRV804X";
          var bankAccountId = "bankacc_m_01J29HTDKMX1P4Z8251CEV81K7";
          BankAccount bankAccount = mangopay.getUserApi().getBankAccount(userId, bankAccountId);

          bankAccount.setActive(false);

          BankAccount deactivateBankAccount = mangopay.getUserApi().updateBankAccount(userId, bankAccount, bankAccountId);

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

          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.resources import NaturalUser, BankAccount

  natural_user = NaturalUser.get('213753890')

  bank_account = BankAccount(
      user_id = natural_user.id,
      id = '214328750',
      active = False
  )

  deactivate_bank_account = bank_account.save()

  pprint(deactivate_bank_account)  
  ```

  ```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";
          var bankAccountId = "bankacc_m_01J536KTRQFK9GBMNBNJXRCCRM";

          var bankAccount =  new DisactivateBankAccountPutDTO
          {
              Active = false
          };

          var deactivateCard = await api.Users.UpdateBankAccountAsync(userId, bankAccount, bankAccountId);

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