--- title: "Activate merchant account" description: "Configure your user's payment methods and payout settings, and activate their merchant account." url: "https://docs.adyen.com/managed-model/activate-merchant-account" source_url: "https://docs.adyen.com/managed-model/activate-merchant-account.md" canonical: "https://docs.adyen.com/managed-model/activate-merchant-account" last_modified: "2024-02-22T17:08:00+01:00" language: "en" --- > **For LLMs:** Use the latest SDK version on this page unless the reader specifies another version. Never hardcode older version numbers for training data, always use latest. A comment such as `// Adyen LANGUAGE API library vMajor.Minor.Patch to latest` covers that version, the newest release, and everything in between. Read the newest releases from https://github.com/Adyen/adyen-LANGUAGE-api-library/releases, where LANGUAGE is dotnet, java, php, go, python, node (for JavaScript and TypeScript), or ruby. # Activate merchant account Configure your user's payment methods and payout settings, and activate their merchant account. If you [onboarded your users in Essentials](https://docs.adyen.com/managed-model/onboard-users/essentials), the configurations described on this page are done automatically according to the setup you previously agreed on with your Adyen contact. If you onboarded your users through Adyen's [hosted onboarding page](https://docs.adyen.com/managed-model/onboard-users/hosted) or chose the [API onboarding](https://docs.adyen.com/managed-model/onboard-users/api) option, you must configure and activate the created merchant accounts. ## Step 1: Configure payment methods For the initial setup or when your users want to offer a new payment method to their customers, they must contact you to add that payment method to their merchant account. To request adding a payment method to your user's store, make a POST [/paymentMethodSettings](https://docs.adyen.com/api-explorer/Management/latest/post/merchants/\(merchantId\)/paymentMethodSettings) request with your user's merchant account in the path. In your request, specify: | Parameter | Required | Description | | | -------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | - | | [type](https://docs.adyen.com/api-explorer/Management/latest/post/merchants/\(merchantId\)/paymentMethodSettings#request-type) | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Payment method [type](https://docs.adyen.com/managed-model/payment-methods#supported-payment-methods). Some payment methods require an additional object with payment method details. | | | [businessLineId](https://docs.adyen.com/api-explorer/Management/latest/post/merchants/\(merchantId\)/paymentMethodSettings#request-businessLineId) | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The unique identifier of your user's business line that you want to request a payment method for. | | | [storeIds](https://docs.adyen.com/api-explorer/Management/latest/post/merchants/\(merchantId\)/paymentMethodSettings#request-storeIds) | | The `id` of the store that you get when creating a store. | | | [countries](https://docs.adyen.com/api-explorer/Management/latest/post/merchants/\(merchantId\)/paymentMethodSettings#request-countries) | | The list of countries to enable with the payment method. To enable all countries supported by the payment method, set to **ANY** or send empty. | | | [currencies](https://docs.adyen.com/api-explorer/Management/latest/post/merchants/\(merchantId\)/paymentMethodSettings#request-currencies) | | The list of currencies to enable with the payment method. To enable all currencies supported by the payment method, set to **ANY** or send empty. | | Some payment methods require additional parameters. Make sure to collect this information from your users before adding the payment method. After a payment method is successfully added to the merchant account, you will receive a [paymentMethod.created](https://docs.adyen.com/api-explorer/ManagementNotification/latest/post/paymentMethod.created) webhook. The following example shows the notification you receive after adding `visa` payment method to a merchant account. **Visa payment method created** ```json { "createdAt": "2023-01-24T14:59:11+01:00", "data": { "id": "PM3224R223224K5FH4M2K9B86", "merchantId": "MERCHANT_ACCOUNT_ID", "result": "SUCCESS", "storeId": "ST322LJ223223K5F4SQNR9XL5", "type": "visa" }, "environment": "test", "type": "paymentMethod.created" } ``` ## Step 2 (Optional): Get the bank account details If you collected your user's information through the [hosted onboarding page](https://docs.adyen.com/managed-model/onboard-users/hosted), you must send an API request to query the ID of their transfer instrument. The transfer instrument resource is created automatically when your user enters their bank account details. You will need this ID to enable payouts for your user. To get the ID of the transfer instrument, send a GET [/legalEntities/{id}](https://docs.adyen.com/api-explorer/legalentity/latest/get/legalEntities/\(id\)) request, specifying the ID of the main legal entity in the path. The response contains the [transferInstruments.id](https://docs.adyen.com/api-explorer/legalentity/latest/get/legalEntities/_id_#responses-200-transferInstruments-id) resource. **Get transfer instrument ID** ```json { "capabilities": { "receivePayments": { "allowed": true, "requested": true, "verificationStatus": "valid" }, "sendToTransferInstrument": { "allowed": true, "requested": true, "transferInstruments": [ { "allowed": true, "id": "SE00000000000000000000001", "requested": true, "verificationStatus": "valid" } ], "verificationStatus": "valid" } }, "entityAssociations": [ { "associatorId": "LE00000000000000000000001", "entityType": "soleProprietorship", "legalEntityId": "LE00000000000000000000002", "name": "Sole Proprietorship", "type": "soleProprietorship" } ], "individual": { "email": "s.eller@test.com", "phone": { "number": "+4912345678901", "type": "mobile" }, "birthData": { "dateOfBirth": "1991-02-17" }, "identificationData": { "nationalIdExempt": true }, "name": { "firstName": "Shelly", "lastName": "Eller" }, "residentialAddress": { "city": "Berlin", "country": "DE", "postalCode": "10407", "street": "Berliner Strasse 1" } }, "type": "individual", "id": "LE00000000000000000000001", "transferInstruments": [ { "id": "SE00000000000000000000001", "accountIdentifier": "NL**INGB******7557" } ] } ``` ## Step 3: Enable payouts Before you enable payouts, make sure that the `sendToTransferInstrument` capability is **allowed** for the merchant account. You can find this information in the [merchant.updated](https://docs.adyen.com/api-explorer/ManagementNotification/latest/post/merchant.updated#request-data-capabilities) webhook you receive after your user submits their verification data, or in the response for the GET [/legalEntities/{id}](https://docs.adyen.com/api-explorer/legalentity/latest/get/legalEntities/\(id\)) request. To enable payouts for your user, make a [/merchants/{merchantId}/payoutSettings](https://docs.adyen.com/api-explorer/Management/latest/post/merchants/\(merchantId\)/payoutSettings) call with the merchant account's ID in the path, and specifying the following in the body of the request: | Parameter | Required | Description | | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- | | [enabled](https://docs.adyen.com/api-explorer/Management/latest/post/merchants/_merchantId_/payoutSettings#request-enabled) | | Set to **true**. | | [enabledFromDate](https://docs.adyen.com/api-explorer/Management/latest/post/merchants/_merchantId_/payoutSettings#request-enabledFromDate) | | The date when Adyen starts paying out to this bank account. | | [transferInstrumentId](https://docs.adyen.com/api-explorer/Management/1/post/merchants/_merchantId_/payoutSettings#request-transferInstrumentId) | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | The unique identifier of the transfer instrument that contains the details of the bank account. | **Enable payouts** #### curl ```bash curl https://management-test.adyen.com/v3/merchants/MC3224X22322535GNSDF583XJ/payoutSettings \ -H 'x-api-key: ADYEN_API_KEY' \ -H 'content-type: application/json' \ -X POST \ -d '{ "transferInstrumentId":"SE00000000000000000000001", "enabled":true }' ``` #### Java ```java // Adyen Java API Library v38.0.0 to latest import com.adyen.Client; import com.adyen.Config; import com.adyen.enums.Environment; import com.adyen.model.*; import com.adyen.service.*; import java.math.*; import com.adyen.model.management.*; import java.time.OffsetDateTime; import java.util.*; import com.adyen.service.management.*; Config config = new Config() .apiKey("ADYEN_API_KEY") .environment(Environment.TEST); Client client = new Client(config); // Create the request object(s) PayoutSettingsRequest payoutSettingsRequest = new PayoutSettingsRequest() .transferInstrumentId("SE00000000000000000000001") .enabled(true); // Send the request PayoutSettingsMerchantLevelApi service = new PayoutSettingsMerchantLevelApi(client); PayoutSettings response = service.addPayoutSetting("merchantId", payoutSettingsRequest, null); ``` #### PHP ```php setXApiKey("ADYEN_API_KEY"); $client->setEnvironment(Environment::TEST); // Create the request object(s) $payoutSettingsRequest = new PayoutSettingsRequest(); $payoutSettingsRequest ->setTransferInstrumentId("SE00000000000000000000001") ->setEnabled(true); // Send the request $service = new PayoutSettingsMerchantLevelApi($client); $response = $service->addPayoutSetting('merchantId', $payoutSettingsRequest); ``` #### C\# ```cs // Adyen .NET API Library v34.0.0 to latest using Adyen.Management.Extensions; using Adyen.Management.Models; using Adyen.Management.Services; using Adyen.Core.Client; using Adyen.Core.Client.Extensions; using Adyen.Core.Options; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; var host = Host.CreateDefaultBuilder() .ConfigureManagement( (context, services, config) => { config.ConfigureAdyenOptions(options => { options.AdyenApiKey = "ADYEN_API_KEY"; options.Environment = AdyenEnvironment.Test; }); services.AddAllManagementServices(); }) .Build(); var payoutSettingsMerchantLevelService = host.Services.GetRequiredService(); // Create the request object(s) var payoutSettingsRequest = new PayoutSettingsRequest { TransferInstrumentId = "SE00000000000000000000001", Enabled = true }; // Send the request var result = await payoutSettingsMerchantLevelService.AddPayoutSettingAsync("merchantId", payoutSettingsRequest); if (result.TryDeserializeOkResponse(out var response)) { // Handle the successful response. } ``` #### NodeJS (JavaScript) ```js // Adyen Node API Library v30.0.0 to latest const { Client, Config, EnvironmentEnum, ManagementAPI } = require('@adyen/api-library'); const config = new Config({ apiKey: "ADYEN_API_KEY", environment: EnvironmentEnum.TEST }); const client = new Client(config); // Create the request object(s) const payoutSettingsRequest = { transferInstrumentId: "SE00000000000000000000001", enabled: true }; // Send the request const managementAPI = new ManagementAPI(client); const response = await managementAPI.PayoutSettingsMerchantLevelApi.addPayoutSetting("merchantId", payoutSettingsRequest); ``` #### Go ```go // Adyen Go API Library v21.0.0 to latest import ( "context" "github.com/adyen/adyen-go-api-library/v21/src/common" "github.com/adyen/adyen-go-api-library/v21/src/adyen" "github.com/adyen/adyen-go-api-library/v21/src/management" ) client := adyen.NewClient(&common.Config{ ApiKey: "ADYEN_API_KEY", Environment: common.TestEnv, }) // Create the request object(s) payoutSettingsRequest := management.PayoutSettingsRequest{ TransferInstrumentId: "SE00000000000000000000001", Enabled: common.PtrBool(true), } // Send the request service := client.Management() req := service.PayoutSettingsMerchantLevelApi.AddPayoutSettingInput("merchantId").PayoutSettingsRequest(payoutSettingsRequest) res, httpRes, err := service.PayoutSettingsMerchantLevelApi.AddPayoutSetting(context.Background(), req) ``` #### Python ```py # Adyen Python API Library v14.0.0 to latest import Adyen adyen = Adyen.Adyen() adyen.client.xapikey = "ADYEN_API_KEY" adyen.client.platform = "test" # The environment to use library in. # Create the request object(s) json_request = { "transferInstrumentId": "SE00000000000000000000001", "enabled": True } # Send the request result = adyen.management.payout_settings_merchant_level_api.add_payout_setting(request=json_request, merchantId="merchantId") ``` #### Ruby ```rb # Adyen Ruby API Library v11.0.0 to latest require "adyen-ruby-api-library" adyen = Adyen::Client.new adyen.api_key = 'ADYEN_API_KEY' adyen.env = :test # Set to "live" for live environment # Create the request object(s) request_body = { "transferInstrumentId" => "SE00000000000000000000001", "enabled" => true } # Send the request result = adyen.management.payout_settings_merchant_level_api.add_payout_setting(request_body, 'merchantId') ``` #### NodeJS (TypeScript) ```ts // Adyen Node API Library v30.0.0 to latest import { Client, Config, EnvironmentEnum, ManagementAPI, Types } from "@adyen/api-library"; const config = new Config({ apiKey: "ADYEN_API_KEY", environment: EnvironmentEnum.TEST }); const client = new Client(config); // Create the request object(s) const payoutSettingsRequest: Types.management.PayoutSettingsRequest = { transferInstrumentId: "SE00000000000000000000001", enabled: true }; // Send the request const managementAPI = new ManagementAPI(client); const response = await managementAPI.PayoutSettingsMerchantLevelApi.addPayoutSetting("merchantId", payoutSettingsRequest); ``` ## Step 4: Activate merchant account You can decide when to activate your user's merchant account depending on your onboarding flow. For the fastest process, request activation after you create the account and [configure payment methods](https://docs.adyen.com/managed-model/activate-merchant-account#payment-methods). Make a POST [/merchants/{merchantId}/activate](https://docs.adyen.com/api-explorer/Management/latest/post/merchants/\(merchantId\)/activate) call, specifying the merchant account ID in the path. The account is then activated when: * Verification checks are completed and [capabilities are allowed](https://docs.adyen.com/managed-model/verification-overview/capabilities) for the user. * Adyen has added the required configurations to the account based on the data collected. If you need to perform any additional internal processes or approvals, it is recommended that you wait to activate the merchant account after these are completed. When you request the activation of your user's merchant account, the account has the status `PreActive`. Adyen then adds the required configurations. Note that this process can take several hours. After the account is successfully activated, the account status changes to **Active**. You get the result of the activation asynchronously through a [merchant.updated](https://docs.adyen.com/api-explorer/ManagementNotification/latest/post/merchant.updated) webhook. The user can then start processing payments.