{"title":"Integration and go-live checklist","category":"default","creationDate":1557888420,"content":"<p>On this page you learn the steps for developing an Adyen Issuing integration and for taking your integration live.<\/p>\n<div class=\"additional-info-block output-inline\">\n<h5 class=\"article__heading additional-info-block__title\">Adyen APIs Postman collections<\/h5><div class=\"additional-info-block__body\"><p><img style=\"width: 20px;\" alt=\"\" src=\"\/user\/pages\/reuse\/pfs-general\/link-to-postman-collections\/postman-icon.svg?decoding=auto&amp;fetchpriority=auto\" \/> Fork our <a href=\"https:\/\/www.postman.com\/adyendev\/workspace\/adyen-apis\/overview\" target=\"_blank\" rel=\"nofollow noopener noreferrer\" class=\"external-link no-image\">Postman collections<\/a> in your private workspace to start testing API calls with your own credentials.<\/p><\/div><\/div>\n\n<p>Before you start building your integration, make sure that you have already:<\/p>\n<ul>\n<li><a href=\"\/pt\/issuing\/get-started#design-implementation\">Designed your implementation<\/a>.<\/li>\n<li><a href=\"\/pt\/issuing\/get-started#step-3-get-an-issuing-test-account\">Received your Issuing test account and API credential<\/a> from your Adyen contact.<\/li>\n<\/ul>\n<h2 id=\"verify-your-test-credentials\">Verify your test credentials<\/h2>\n<p>To verify that your test API credentials are working, make your first requests.<\/p>\n<p>You need the API keys of the following credentials to make these requests:<\/p>\n<ul>\n<li><span translate=\"no\"><strong>ws_[123456]@BalancePlatform.[YourBalancePlatform]<\/strong><\/span>: use this API key to make requests to the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/balanceplatform\/latest\/overview\" class=\" external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Configuration API<\/a> and the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/transfers\/latest\/overview\" class=\" external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Transfers API<\/a>.<\/li>\n<li><span translate=\"no\"><strong>ws_[123456]@Scope.Company_[YourCompanyAccount]<\/strong><\/span>: use this API key to make requests to the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/legalentity\/latest\/overview\" class=\" external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Legal Entity Management API<\/a>.<\/li>\n<\/ul>\n<p>Try out the requests below.<\/p>\n\n<div id=\"tabPvwFr\">\n    <div data-component-wrapper=\"tabs\">\n        <tabs\n                        :items=\"[{&quot;title&quot;:&quot;Balance Platform&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;Use the API key for your &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;ws_[123456]@BalancePlatform.[YourBalancePlatform]&lt;\\\/strong&gt;&lt;\\\/span&gt; API credential.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Try it out!&#039;\\&quot; :id=\\&quot;&#039;get-balanceplatform-request&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;curl&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/balanceplatform-api-test.adyen.com\\\\\\\/bcl\\\\\\\/v2\\\\\\\/balancePlatforms\\\\\\\/{id} \\\\\\\\\\\\n-H &#039;x-api-key: ADYEN_BALANCE_PLATFORM_API_KEY&#039; \\\\\\\\\\\\n-H &#039;content-type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-X GET&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;java&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Java&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Java API Library v25.0.0\\\\nimport com.adyen.Client;\\\\nimport com.adyen.enums.Environment;\\\\nimport com.adyen.service.balancePlatform.*;\\\\n\\\\nClient client = new Client(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, Environment.TEST);\\\\n\\\\\\\/\\\\\\\/ Make the API call\\\\nPlatformApi service = new PlatformApi(client);\\\\nBalancePlatform response = service.getBalancePlatform(\\\\&amp;quot;id\\\\&amp;quot;, null);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;php&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;PHP&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen PHP API Library v17.4.0\\\\nuse Adyen\\\\\\\\Client;\\\\nuse Adyen\\\\\\\\Environment;\\\\nuse Adyen\\\\\\\\Service\\\\\\\\BalancePlatform\\\\\\\\PlatformApi;\\\\n\\\\n$client = new Client();\\\\n$client-&amp;gt;setXApiKey(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;);\\\\n$client-&amp;gt;setEnvironment(Environment::TEST);\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the API call\\\\n$service = new PlatformApi($client);\\\\n$response = $service-&amp;gt;getBalancePlatform(&#039;id&#039;);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;cs&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;C#&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen .net API Library v14.4.0\\\\nusing Adyen;\\\\nusing Environment = Adyen.Model.Environment;\\\\nusing Adyen.Service.BalancePlatform;\\\\n\\\\nvar config = new Config()\\\\n{\\\\n    XApiKey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n    Environment = Environment.Test\\\\n};\\\\nvar client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the API call\\\\nvar service = new PlatformService(client);\\\\nvar response = service.GetBalancePlatform(\\\\&amp;quot;id\\\\&amp;quot;);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;js&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (JavaScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v16.2.0\\\\n\\\\\\\/\\\\\\\/ Require the parts of the module you want to use\\\\nconst { Client, BalancePlatformAPI } = require(&#039;@adyen\\\\\\\/api-library&#039;);\\\\n\\\\\\\/\\\\\\\/ Initialize the client object\\\\nconst client = new Client({apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, environment: \\\\&amp;quot;TEST\\\\&amp;quot;});\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the API call\\\\nconst balancePlatformAPI = new BalancePlatformAPI(client);\\\\nconst response = balancePlatformAPI.PlatformApi.getBalancePlatform(\\\\&amp;quot;id\\\\&amp;quot;);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;go&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Go&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Go API Library v9.3.0\\\\nimport (\\\\n  \\\\&amp;quot;context\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/common\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/adyen\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/balancePlatform\\\\&amp;quot;\\\\n)\\\\nclient := adyen.NewClient(&amp;amp;common.Config{\\\\n  ApiKey:      \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  Environment: common.TestEnv,\\\\n})\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the API call\\\\nservice := client.BalancePlatform()\\\\nreq := service.PlatformApi.GetBalancePlatformInput(\\\\&amp;quot;id\\\\&amp;quot;)\\\\nres, httpRes, err := service.PlatformApi.GetBalancePlatform(context.Background(), req)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;py&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Python&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Python API Library v12.2.0\\\\nimport Adyen\\\\n\\\\nadyen = Adyen.Adyen()\\\\nadyen.client.xapikey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;\\\\nadyen.client.platform = \\\\&amp;quot;test\\\\&amp;quot; # The environment to use library in.\\\\n\\\\n# Make the API call\\\\nresult = adyen.balancePlatform.platform_api.get_balance_platform(id=\\\\&amp;quot;id\\\\&amp;quot;)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;rb&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Ruby&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Ruby API Library v9.3.0\\\\nrequire \\\\&amp;quot;adyen-ruby-api-library\\\\&amp;quot;\\\\n\\\\nadyen = Adyen::Client.new\\\\nadyen.api_key = &#039;ADYEN_API_KEY&#039;\\\\nadyen.env = :test # Set to \\\\&amp;quot;live\\\\&amp;quot; for live environment\\\\n\\\\n# Make the API call\\\\nresult = adyen.balancePlatform.platform_api.get_balance_platform(&#039;id&#039;)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;ts&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (TypeScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v16.2.0\\\\n\\\\\\\/\\\\\\\/ Require the parts of the module you want to use\\\\nimport { Client, BalancePlatformAPI, Types } from \\\\&amp;quot;@adyen\\\\\\\/api-library\\\\&amp;quot;;\\\\n\\\\\\\/\\\\\\\/ Initialize the client object\\\\nconst client = new Client({apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, environment: \\\\&amp;quot;TEST\\\\&amp;quot;});\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the API call\\\\nconst balancePlatformAPI = new BalancePlatformAPI(client);\\\\nconst response = balancePlatformAPI.PlatformApi.getBalancePlatform(\\\\&amp;quot;id\\\\&amp;quot;);&amp;quot;}]\\&quot; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;If the call is successful, you receive an &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;HTTP 200&lt;\\\/strong&gt;&lt;\\\/span&gt; result code along with the &lt;code&gt;id&lt;\\\/code&gt; and &lt;code&gt;status&lt;\\\/code&gt; of your balance platform.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Response&#039;\\&quot; :id=\\&quot;&#039;get-balanceplatform-response&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;json\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;{\\\\n    \\\\\\&quot;id\\\\\\&quot;: \\\\\\&quot;YOUR_BALANCE_PLATFORM_ID\\\\\\&quot;,\\\\n    \\\\\\&quot;status\\\\\\&quot;: \\\\\\&quot;Active\\\\\\&quot;\\\\n}\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:&quot;balance_platform_0_1&quot;,&quot;relation&quot;:&quot;&quot;},{&quot;title&quot;:&quot;Legal Entity&quot;,&quot;content&quot;:&quot;\\n&lt;p&gt;Use the API key for your &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;ws_[123456]@Scope.Company_[YourCompanyAccount]&lt;\\\/strong&gt;&lt;\\\/span&gt; API credential.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Try it out!&#039;\\&quot; :id=\\&quot;&#039;create-legalentity-request&#039;\\&quot; :code-data=\\&quot;[{&amp;quot;language&amp;quot;:&amp;quot;bash&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;curl&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;curl https:\\\\\\\/\\\\\\\/kyc-test.adyen.com\\\\\\\/lem\\\\\\\/v1\\\\\\\/legalEntities \\\\\\\\\\\\n-H &#039;x-api-key: ADYEN_LEGAL_ENTITY_MANAGEMENT_API_KEY&#039; \\\\\\\\\\\\n-H &#039;content-type: application\\\\\\\/json&#039; \\\\\\\\\\\\n-d &#039;{\\\\n    \\\\&amp;quot;type\\\\&amp;quot;: \\\\&amp;quot;individual\\\\&amp;quot;,\\\\n    \\\\&amp;quot;individual\\\\&amp;quot;:\\\\n    {\\\\n        \\\\&amp;quot;residentialAddress\\\\&amp;quot;: {\\\\n            \\\\&amp;quot;city\\\\&amp;quot;: \\\\&amp;quot;San Francisco\\\\&amp;quot;,\\\\n            \\\\&amp;quot;country\\\\&amp;quot;: \\\\&amp;quot;US\\\\&amp;quot;,\\\\n            \\\\&amp;quot;postalCode\\\\&amp;quot;: \\\\&amp;quot;94678\\\\&amp;quot;,\\\\n            \\\\&amp;quot;stateOrProvince\\\\&amp;quot;: \\\\&amp;quot;CA\\\\&amp;quot;,\\\\n            \\\\&amp;quot;street\\\\&amp;quot;: \\\\&amp;quot;Brannan Street\\\\&amp;quot;,\\\\n            \\\\&amp;quot;street2\\\\&amp;quot;: \\\\&amp;quot;274\\\\&amp;quot;\\\\n        },\\\\n        \\\\&amp;quot;name\\\\&amp;quot;: {\\\\n            \\\\&amp;quot;firstName\\\\&amp;quot;: \\\\&amp;quot;Simone\\\\&amp;quot;,\\\\n            \\\\&amp;quot;lastName\\\\&amp;quot;: \\\\&amp;quot;Hopper\\\\&amp;quot;\\\\n        },\\\\n        \\\\&amp;quot;email\\\\&amp;quot;: \\\\&amp;quot;s.hopper@example.com\\\\&amp;quot;\\\\n    }\\\\n}&#039;&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;java&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Java&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Java API Library v25.0.0\\\\nimport com.adyen.Client;\\\\nimport com.adyen.enums.Environment;\\\\nimport com.adyen.model.legalEntityManagement.*;\\\\nimport java.time.OffsetDateTime;\\\\nimport java.util.*;\\\\nimport com.adyen.service.legalEntityManagement.*;\\\\n\\\\nClient client = new Client(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, Environment.TEST);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nAddress address = new Address()\\\\n  .country(\\\\&amp;quot;US\\\\&amp;quot;)\\\\n  .stateOrProvince(\\\\&amp;quot;CA\\\\&amp;quot;)\\\\n  .city(\\\\&amp;quot;San Francisco\\\\&amp;quot;)\\\\n  .street(\\\\&amp;quot;Brannan Street\\\\&amp;quot;)\\\\n  .postalCode(\\\\&amp;quot;94678\\\\&amp;quot;)\\\\n  .street2(\\\\&amp;quot;274\\\\&amp;quot;);\\\\n\\\\nName name = new Name()\\\\n  .firstName(\\\\&amp;quot;Simone\\\\&amp;quot;)\\\\n  .lastName(\\\\&amp;quot;Hopper\\\\&amp;quot;);\\\\n\\\\nIndividual individual = new Individual()\\\\n  .residentialAddress(address)\\\\n  .name(name)\\\\n  .email(\\\\&amp;quot;s.hopper@example.com\\\\&amp;quot;);\\\\n\\\\nLegalEntityInfoRequiredType legalEntityInfoRequiredType = new LegalEntityInfoRequiredType()\\\\n  .individual(individual)\\\\n  .type(LegalEntityInfoRequiredType.TypeEnum.INDIVIDUAL);\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the API call\\\\nLegalEntitiesApi service = new LegalEntitiesApi(client);\\\\nLegalEntity response = service.createLegalEntity(legalEntityInfoRequiredType, null);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;php&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;PHP&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen PHP API Library v17.4.0\\\\nuse Adyen\\\\\\\\Client;\\\\nuse Adyen\\\\\\\\Environment;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\LegalEntityManagement\\\\\\\\Address;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\LegalEntityManagement\\\\\\\\Name;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\LegalEntityManagement\\\\\\\\Individual;\\\\nuse Adyen\\\\\\\\Model\\\\\\\\LegalEntityManagement\\\\\\\\LegalEntityInfoRequiredType;\\\\nuse Adyen\\\\\\\\Service\\\\\\\\LegalEntityManagement\\\\\\\\LegalEntitiesApi;\\\\n\\\\n$client = new Client();\\\\n$client-&amp;gt;setXApiKey(\\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;);\\\\n$client-&amp;gt;setEnvironment(Environment::TEST);\\\\n\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\n$address = new Address();\\\\n$address\\\\n  -&amp;gt;setCountry(\\\\&amp;quot;US\\\\&amp;quot;)\\\\n  -&amp;gt;setStateOrProvince(\\\\&amp;quot;CA\\\\&amp;quot;)\\\\n  -&amp;gt;setCity(\\\\&amp;quot;San Francisco\\\\&amp;quot;)\\\\n  -&amp;gt;setStreet(\\\\&amp;quot;Brannan Street\\\\&amp;quot;)\\\\n  -&amp;gt;setPostalCode(\\\\&amp;quot;94678\\\\&amp;quot;)\\\\n  -&amp;gt;setStreet2(\\\\&amp;quot;274\\\\&amp;quot;);\\\\n\\\\n$name = new Name();\\\\n$name\\\\n  -&amp;gt;setFirstName(\\\\&amp;quot;Simone\\\\&amp;quot;)\\\\n  -&amp;gt;setLastName(\\\\&amp;quot;Hopper\\\\&amp;quot;);\\\\n\\\\n$individual = new Individual();\\\\n$individual\\\\n  -&amp;gt;setResidentialAddress($address)\\\\n  -&amp;gt;setName($name)\\\\n  -&amp;gt;setEmail(\\\\&amp;quot;s.hopper@example.com\\\\&amp;quot;);\\\\n\\\\n$legalEntityInfoRequiredType = new LegalEntityInfoRequiredType();\\\\n$legalEntityInfoRequiredType\\\\n  -&amp;gt;setIndividual($individual)\\\\n  -&amp;gt;setType(\\\\&amp;quot;individual\\\\&amp;quot;);\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the API call\\\\n$service = new LegalEntitiesApi($client);\\\\n$response = $service-&amp;gt;createLegalEntity($legalEntityInfoRequiredType);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;cs&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;C#&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen .net API Library v14.4.0\\\\nusing Adyen;\\\\nusing Environment = Adyen.Model.Environment;\\\\nusing Adyen.Model;\\\\nusing Adyen.Model.LegalEntityManagement;\\\\nusing Adyen.Service.LegalEntityManagement;\\\\n\\\\nvar config = new Config()\\\\n{\\\\n    XApiKey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n    Environment = Environment.Test\\\\n};\\\\nvar client = new Client(config);\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nAddress address = new Address\\\\n{\\\\n  Country = \\\\&amp;quot;US\\\\&amp;quot;,\\\\n  StateOrProvince = \\\\&amp;quot;CA\\\\&amp;quot;,\\\\n  City = \\\\&amp;quot;San Francisco\\\\&amp;quot;,\\\\n  Street = \\\\&amp;quot;Brannan Street\\\\&amp;quot;,\\\\n  PostalCode = \\\\&amp;quot;94678\\\\&amp;quot;,\\\\n  Street2 = \\\\&amp;quot;274\\\\&amp;quot;\\\\n};\\\\n\\\\nName name = new Name\\\\n{\\\\n  FirstName = \\\\&amp;quot;Simone\\\\&amp;quot;,\\\\n  LastName = \\\\&amp;quot;Hopper\\\\&amp;quot;\\\\n};\\\\n\\\\nIndividual individual = new Individual\\\\n{\\\\n  ResidentialAddress = address,\\\\n  Name = name,\\\\n  Email = \\\\&amp;quot;s.hopper@example.com\\\\&amp;quot;\\\\n};\\\\n\\\\nLegalEntityInfoRequiredType legalEntityInfoRequiredType = new LegalEntityInfoRequiredType\\\\n{\\\\n  Individual = individual,\\\\n  Type = LegalEntityInfoRequiredType.TypeEnum.Individual\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the API call\\\\nvar service = new LegalEntitiesService(client);\\\\nvar response = service.CreateLegalEntity(legalEntityInfoRequiredType);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;js&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (JavaScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v16.2.0\\\\n\\\\\\\/\\\\\\\/ Require the parts of the module you want to use\\\\nconst { Client, LegalEntityManagementAPI } = require(&#039;@adyen\\\\\\\/api-library&#039;);\\\\n\\\\\\\/\\\\\\\/ Initialize the client object\\\\nconst client = new Client({apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, environment: \\\\&amp;quot;TEST\\\\&amp;quot;});\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst legalEntityInfoRequiredType = {\\\\n  type: \\\\&amp;quot;individual\\\\&amp;quot;,\\\\n  individual: {\\\\n    residentialAddress: {\\\\n      city: \\\\&amp;quot;San Francisco\\\\&amp;quot;,\\\\n      country: \\\\&amp;quot;US\\\\&amp;quot;,\\\\n      postalCode: \\\\&amp;quot;94678\\\\&amp;quot;,\\\\n      stateOrProvince: \\\\&amp;quot;CA\\\\&amp;quot;,\\\\n      street: \\\\&amp;quot;Brannan Street\\\\&amp;quot;,\\\\n      street2: \\\\&amp;quot;274\\\\&amp;quot;\\\\n    },\\\\n    name: {\\\\n      firstName: \\\\&amp;quot;Simone\\\\&amp;quot;,\\\\n      lastName: \\\\&amp;quot;Hopper\\\\&amp;quot;\\\\n    },\\\\n    email: \\\\&amp;quot;s.hopper@example.com\\\\&amp;quot;\\\\n  }\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the API call\\\\nconst legalEntityManagementAPI = new LegalEntityManagementAPI(client);\\\\nconst response = legalEntityManagementAPI.LegalEntitiesApi.createLegalEntity(legalEntityInfoRequiredType);&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;go&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Go&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Go API Library v9.3.0\\\\nimport (\\\\n  \\\\&amp;quot;context\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/common\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/adyen\\\\&amp;quot;\\\\n  \\\\&amp;quot;github.com\\\\\\\/adyen\\\\\\\/adyen-go-api-library\\\\\\\/v9\\\\\\\/src\\\\\\\/legalEntityManagement\\\\&amp;quot;\\\\n)\\\\nclient := adyen.NewClient(&amp;amp;common.Config{\\\\n  ApiKey:      \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;,\\\\n  Environment: common.TestEnv,\\\\n})\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\naddress := legalEntityManagement.Address{\\\\n  Country: \\\\&amp;quot;US\\\\&amp;quot;,\\\\n  StateOrProvince: common.PtrString(\\\\&amp;quot;CA\\\\&amp;quot;),\\\\n  City: common.PtrString(\\\\&amp;quot;San Francisco\\\\&amp;quot;),\\\\n  Street: common.PtrString(\\\\&amp;quot;Brannan Street\\\\&amp;quot;),\\\\n  PostalCode: common.PtrString(\\\\&amp;quot;94678\\\\&amp;quot;),\\\\n  Street2: common.PtrString(\\\\&amp;quot;274\\\\&amp;quot;),\\\\n}\\\\n\\\\nname := legalEntityManagement.Name{\\\\n  FirstName: \\\\&amp;quot;Simone\\\\&amp;quot;,\\\\n  LastName: \\\\&amp;quot;Hopper\\\\&amp;quot;,\\\\n}\\\\n\\\\nindividual := legalEntityManagement.Individual{\\\\n  ResidentialAddress: address,\\\\n  Name: name,\\\\n  Email: common.PtrString(\\\\&amp;quot;s.hopper@example.com\\\\&amp;quot;),\\\\n}\\\\n\\\\nlegalEntityInfoRequiredType := legalEntityManagement.LegalEntityInfoRequiredType{\\\\n  Individual: &amp;amp;individual,\\\\n  Type: \\\\&amp;quot;individual\\\\&amp;quot;,\\\\n}\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the API call\\\\nservice := client.LegalEntityManagement()\\\\nreq := service.LegalEntitiesApi.CreateLegalEntityInput().LegalEntityInfoRequiredType(legalEntityInfoRequiredType)\\\\nres, httpRes, err := service.LegalEntitiesApi.CreateLegalEntity(context.Background(), req)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;py&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Python&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Python API Library v12.2.0\\\\nimport Adyen\\\\n\\\\nadyen = Adyen.Adyen()\\\\nadyen.client.xapikey = \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;\\\\nadyen.client.platform = \\\\&amp;quot;test\\\\&amp;quot; # The environment to use library in.\\\\n\\\\n# Create the request object(s)\\\\njson_request = {\\\\n  \\\\&amp;quot;type\\\\&amp;quot;: \\\\&amp;quot;individual\\\\&amp;quot;,\\\\n  \\\\&amp;quot;individual\\\\&amp;quot;: {\\\\n    \\\\&amp;quot;residentialAddress\\\\&amp;quot;: {\\\\n      \\\\&amp;quot;city\\\\&amp;quot;: \\\\&amp;quot;San Francisco\\\\&amp;quot;,\\\\n      \\\\&amp;quot;country\\\\&amp;quot;: \\\\&amp;quot;US\\\\&amp;quot;,\\\\n      \\\\&amp;quot;postalCode\\\\&amp;quot;: \\\\&amp;quot;94678\\\\&amp;quot;,\\\\n      \\\\&amp;quot;stateOrProvince\\\\&amp;quot;: \\\\&amp;quot;CA\\\\&amp;quot;,\\\\n      \\\\&amp;quot;street\\\\&amp;quot;: \\\\&amp;quot;Brannan Street\\\\&amp;quot;,\\\\n      \\\\&amp;quot;street2\\\\&amp;quot;: \\\\&amp;quot;274\\\\&amp;quot;\\\\n    },\\\\n    \\\\&amp;quot;name\\\\&amp;quot;: {\\\\n      \\\\&amp;quot;firstName\\\\&amp;quot;: \\\\&amp;quot;Simone\\\\&amp;quot;,\\\\n      \\\\&amp;quot;lastName\\\\&amp;quot;: \\\\&amp;quot;Hopper\\\\&amp;quot;\\\\n    },\\\\n    \\\\&amp;quot;email\\\\&amp;quot;: \\\\&amp;quot;s.hopper@example.com\\\\&amp;quot;\\\\n  }\\\\n}\\\\n\\\\n# Make the API call\\\\nresult = adyen.legalEntityManagement.legal_entities_api.create_legal_entity(request=json_request)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;rb&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;Ruby&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;# Adyen Ruby API Library v9.3.0\\\\nrequire \\\\&amp;quot;adyen-ruby-api-library\\\\&amp;quot;\\\\n\\\\nadyen = Adyen::Client.new\\\\nadyen.api_key = &#039;ADYEN_API_KEY&#039;\\\\nadyen.env = :test # Set to \\\\&amp;quot;live\\\\&amp;quot; for live environment\\\\n\\\\n# Create the request object(s)\\\\nrequest_body = {\\\\n  :type =&amp;gt; &#039;individual&#039;,\\\\n  :individual =&amp;gt; {\\\\n    :residentialAddress =&amp;gt; {\\\\n      :city =&amp;gt; &#039;San Francisco&#039;,\\\\n      :country =&amp;gt; &#039;US&#039;,\\\\n      :postalCode =&amp;gt; &#039;94678&#039;,\\\\n      :stateOrProvince =&amp;gt; &#039;CA&#039;,\\\\n      :street =&amp;gt; &#039;Brannan Street&#039;,\\\\n      :street2 =&amp;gt; &#039;274&#039;\\\\n    },\\\\n    :name =&amp;gt; {\\\\n      :firstName =&amp;gt; &#039;Simone&#039;,\\\\n      :lastName =&amp;gt; &#039;Hopper&#039;\\\\n    },\\\\n    :email =&amp;gt; &#039;s.hopper@example.com&#039;\\\\n  }\\\\n}\\\\n\\\\n# Make the API call\\\\nresult = adyen.legalEntityManagement.legal_entities_api.create_legal_entity(request_body)&amp;quot;},{&amp;quot;language&amp;quot;:&amp;quot;ts&amp;quot;,&amp;quot;tabTitle&amp;quot;:&amp;quot;NodeJS (TypeScript)&amp;quot;,&amp;quot;content&amp;quot;:&amp;quot;\\\\\\\/\\\\\\\/ Adyen Node API Library v16.2.0\\\\n\\\\\\\/\\\\\\\/ Require the parts of the module you want to use\\\\nimport { Client, LegalEntityManagementAPI, Types } from \\\\&amp;quot;@adyen\\\\\\\/api-library\\\\&amp;quot;;\\\\n\\\\\\\/\\\\\\\/ Initialize the client object\\\\nconst client = new Client({apiKey: \\\\&amp;quot;ADYEN_API_KEY\\\\&amp;quot;, environment: \\\\&amp;quot;TEST\\\\&amp;quot;});\\\\n\\\\n\\\\\\\/\\\\\\\/ Create the request object(s)\\\\nconst address: Types.legalEntityManagement.Address = {\\\\n  country: \\\\&amp;quot;US\\\\&amp;quot;,\\\\n  stateOrProvince: \\\\&amp;quot;CA\\\\&amp;quot;,\\\\n  city: \\\\&amp;quot;San Francisco\\\\&amp;quot;,\\\\n  street: \\\\&amp;quot;Brannan Street\\\\&amp;quot;,\\\\n  postalCode: \\\\&amp;quot;94678\\\\&amp;quot;,\\\\n  street2: \\\\&amp;quot;274\\\\&amp;quot;\\\\n};\\\\n\\\\nconst name: Types.legalEntityManagement.Name = {\\\\n  firstName: \\\\&amp;quot;Simone\\\\&amp;quot;,\\\\n  lastName: \\\\&amp;quot;Hopper\\\\&amp;quot;\\\\n};\\\\n\\\\nconst individual: Types.legalEntityManagement.Individual = {\\\\n  residentialAddress: address,\\\\n  name: name,\\\\n  email: \\\\&amp;quot;s.hopper@example.com\\\\&amp;quot;\\\\n};\\\\n\\\\nconst legalEntityInfoRequiredType: Types.legalEntityManagement.LegalEntityInfoRequiredType = {\\\\n  individual: individual,\\\\n  type: Types.legalEntityManagement.LegalEntityInfoRequiredType.TypeEnum.Individual\\\\n};\\\\n\\\\n\\\\\\\/\\\\\\\/ Make the API call\\\\nconst legalEntityManagementAPI = new LegalEntityManagementAPI(client);\\\\nconst response = legalEntityManagementAPI.LegalEntitiesApi.createLegalEntity(legalEntityInfoRequiredType);&amp;quot;}]\\&quot; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&lt;p&gt;If the call is successful, you receive an &lt;span translate=\\&quot;no\\&quot;&gt;&lt;strong&gt;HTTP 200&lt;\\\/strong&gt;&lt;\\\/span&gt; result code along with the &lt;code&gt;id&lt;\\\/code&gt; and &lt;code&gt;type&lt;\\\/code&gt; of the legal entity you created.&lt;\\\/p&gt;\\n&lt;div data-component-wrapper=\\&quot;code-sample\\&quot;&gt;\\n    &lt;code-sample :title=\\&quot;&#039;Response&#039;\\&quot; :id=\\&quot;&#039;post-legalentity-response&#039;\\&quot; :code-data=&#039;[{\\&quot;language\\&quot;:\\&quot;json\\&quot;,\\&quot;tabTitle\\&quot;:\\&quot;\\&quot;,\\&quot;content\\&quot;:\\&quot;{\\\\n    \\\\\\&quot;individual\\\\\\&quot;: {\\\\n        \\\\\\&quot;email\\\\\\&quot;: \\\\\\&quot;s.hopper@example.com\\\\\\&quot;,\\\\n        \\\\\\&quot;name\\\\\\&quot;: {\\\\n            \\\\\\&quot;firstName\\\\\\&quot;: \\\\\\&quot;Simone\\\\\\&quot;,\\\\n            \\\\\\&quot;lastName\\\\\\&quot;: \\\\\\&quot;Hopper\\\\\\&quot;\\\\n        },\\\\n        \\\\\\&quot;residentialAddress\\\\\\&quot;: {\\\\n            \\\\\\&quot;city\\\\\\&quot;: \\\\\\&quot;San Francisco\\\\\\&quot;,\\\\n            \\\\\\&quot;country\\\\\\&quot;: \\\\\\&quot;US\\\\\\&quot;,\\\\n            \\\\\\&quot;postalCode\\\\\\&quot;: \\\\\\&quot;94678\\\\\\&quot;,\\\\n            \\\\\\&quot;stateOrProvince\\\\\\&quot;: \\\\\\&quot;CA\\\\\\&quot;,\\\\n            \\\\\\&quot;street\\\\\\&quot;: \\\\\\&quot;Brannan Street\\\\\\&quot;,\\\\n            \\\\\\&quot;street2\\\\\\&quot;: \\\\\\&quot;274\\\\\\&quot;\\\\n        }\\\\n    },\\\\n    \\\\\\&quot;type\\\\\\&quot;: \\\\\\&quot;individual\\\\\\&quot;,\\\\n    \\\\\\&quot;id\\\\\\&quot;: \\\\\\&quot;LE322JC223222D5CR2PHBG46C\\\\\\&quot;\\\\n}\\&quot;}]&#039; :enable-copy-link-to-code-block=\\&quot;true\\&quot; :code-sample-card-size=\\&quot;&#039;fullsize&#039;\\&quot;&gt;&lt;\\\/code-sample&gt;\\n&lt;\\\/div&gt;\\n&quot;,&quot;altTitle&quot;:null,&quot;oldTabId&quot;:&quot;legal_entity_1_2&quot;,&quot;relation&quot;:&quot;&quot;}]\"\n            :should-update-when-url-changes='false'>\n        <\/tabs>\n    <\/div>\n<\/div>\n\n<h2>Onboard legal entities<\/h2>\n<p>Before you can start issuing cards, your account holders need to go through verification checks. Adyen performs the checks against the legal entity of the account holder.<\/p>\n<ol>\n<li><strong>Identify the required information<\/strong>.<br \/>\n<a href=\"\/pt\/issuing\/verification-requirements\/required-kyc-information\">Check the required information<\/a> based on the location where the account holder is operating in.<\/li>\n<li><strong>Create legal entities<\/strong>.<br \/>\n<a href=\"\/pt\/issuing\/onboard-users\/onboarding-steps\">Create a legal entity resource<\/a> for the account holder's organization and for the individuals associated to the organization.<\/li>\n<li><strong>Add transfer instruments<\/strong>.<br \/>\nFor use cases that involve moving funds between balance accounts and bank accounts, <a href=\"\/pt\/issuing\/onboard-users\/onboarding-steps\">add a transfer instrument<\/a> to represent the account holder's bank account.<\/li>\n<li><strong>Upload additional documents<\/strong>.<br \/>\nAdyen may also require you to <a href=\"\/pt\/issuing\/onboard-users\/onboarding-steps\">upload additional documents<\/a> if needed.<\/li>\n<\/ol>\n<h2>Create account holders and balance accounts<\/h2>\n<p>Create an account holder and one or more balance accounts.<\/p>\n<ol>\n<li><strong>Create account holders<\/strong>.<br \/>\n<a href=\"\/pt\/issuing\/onboard-users\/onboarding-steps\">Create an account holder<\/a> and link it to their legal entity.<\/li>\n<li><strong>Create balance accounts<\/strong>.<br \/>\n<a href=\"\/pt\/issuing\/onboard-users\/onboarding-steps\">Create balance accounts<\/a> and link the accounts to the account holder(s).<\/li>\n<\/ol>\n<h2>Manage your platform<\/h2>\n<p>Learn how to update manage account holders and balance accounts to view details or update statuses.<\/p>\n<ul>\n<li><strong>Manage account holders<\/strong>.<br \/>\n<a href=\"\/pt\/issuing\/manage-account-holders#get-account-holders\">View<\/a> and <a href=\"\/pt\/issuing\/manage-account-holders#update-account-holder\">update<\/a> account holders in your platform.<\/li>\n<li><strong>Manage balance accounts<\/strong>.<br \/>\n<a href=\"\/pt\/issuing\/manage-balance-accounts#view-balance-accounts\">View<\/a> and <a href=\"\/pt\/issuing\/manage-balance-accounts#update-balance-account\">update<\/a> balance accounts in your platform.<\/li>\n<\/ul>\n<h2>Create cards<\/h2>\n<p><a href=\"\/pt\/issuing\/create-cards\">Create virtual or physical cards<\/a> depending on your use case.<\/p>\n<p>When you successfully create virtual cards in the test environment, you receive the card number, expiry date, and CVC. You use these card details to make a test payment.<\/p>\n<h2>Manage card status<\/h2>\n<p>Depending on your use case, you can change a card's status.<\/p>\n<ul>\n<li>\n<p><strong>Suspend a single-use card after it has been used.<\/strong><br \/>\nIf a single-use card has been used, <a href=\"\/pt\/issuing\/manage-cards#suspend-card\">suspend the card<\/a> to temporarily prevent payments.<\/p>\n<\/li>\n<li>\n<p><strong>Close a card.<\/strong><br \/>\nIf a card should no longer be used, <a href=\"\/pt\/issuing\/manage-cards#close-card\">close the card<\/a>. Closing a card is a permanent action and cannot be reversed.<\/p>\n<\/li>\n<\/ul>\n<h2>Add and manage funds<\/h2>\n<p>To make test payments with an Adyen-issued card, you need to make sure the balance accounts have funds.<\/p>\n<ul>\n<li><strong>Add funds to your liable balance account<\/strong>.<br \/>\nReach out to your Adyen contact to help you <a href=\"\/pt\/issuing\/add-manage-funds#fund-liable\">add funds to your liable balance account<\/a> in the test environment.<\/li>\n<\/ul>\n<p>When you have the funds on your liable balance account, you can then:<\/p>\n<ul>\n<li><strong>Manage funds<\/strong>.<br \/>\n<a href=\"\/pt\/issuing\/add-manage-funds#transfer\">Transfer funds<\/a> to other balance accounts. The flow of funds between the liable balance account and other balance accounts depends your business logic and on how you designed your account structure.<\/li>\n<\/ul>\n<h2 id=\"approve-or-decline-payments\">Approve or decline payments<\/h2>\n<p>With <a href=\"#use-relayed-authorisation\">relayed authorisation<\/a>, you approve or decline a payment by responding to a webhook. With <a href=\"#use-transaction-rules\">transaction rules<\/a>, payments are approved or declined based on conditions. You can use relayed authorisation, transaction rules, or both.<\/p>\n<p>When combined, transaction rules are applied first, serving as a filtering mechanism for payment attempts before sending you the relayed authorisation webhook.<\/p>\n<h3 id=\"use-relayed-authorisation\">Use relayed authorisation<\/h3>\n<p>If you decide to use relayed authorisation to approve or decline payments within 2000 milliseconds of the payment attempt, you have to:<\/p>\n<ol>\n<li><strong>Expose an endpoint to handle relayed authorisation webhooks<\/strong>.<br \/>\nConfigure an endpoint to receive <a href=\"\/pt\/issuing\/authorisation\/relayed-authorisation\">relayed authorisation<\/a> webhooks. To differentiate relayed authorisation webhooks from webhooks for other platform events, make sure this a separate endpoint from your <a href=\"#process-webhooks\">webhooks<\/a>.<\/li>\n<li><strong>Configure the relayed authorisation webhook in Adyen<\/strong>.<\/li>\n<li><strong>Respond to relayed authorisation webhooks<\/strong>.<br \/>\nRespond to the webhook within 2000 milliseconds of the payment attempt, specifying if you want to <a href=\"\/pt\/issuing\/authorisation\/relayed-authorisation\">allow or decline<\/a> the payment.<br>You can define default fallback logic for Adyen to apply to the payment attempt in cases when Adyen does not receive a response, or receives an invalid response, from you.<\/li>\n<\/ol>\n<h3>Use transaction rules<\/h3>\n<p>Before you start creating transaction rules, make sure that you have already clearly defined your business logic and requirements when approving or declining payments. You turn these requirements into rule conditions.<\/p>\n<ol>\n<li><strong>Create payment instrument groups<\/strong>.<br \/>\nGrouping together payment instruments is useful if you want to apply a transaction rule to multiple cards. Create a <a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/balanceplatform\/latest\/post\/paymentInstrumentGroups\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">payment instrument group<\/a>, assign cards to the group, and assign a transaction rule to the group.<\/li>\n<li><strong>Create transaction rules<\/strong>.<br \/>\nDefine <a href=\"\/pt\/issuing\/authorisation\/transaction-rules\/create-and-manage\">rule conditions<\/a>. A payment is automatically approved or declined depending on the conditions in the transaction rule. A transaction rule must be linked to one payment instrument, payment instrument group, or the whole balance platform.<\/li>\n<\/ol>\n<h2>Make test payments<\/h2>\n<p>Ask your Adyen contact for your online payments API credential. This API credential is different from the one that you use with the Balance Platform or Legal Entity Management APIs.<\/p>\n<p>You use your online payments API credentials to simulate payments in the test environment using the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/Checkout\/latest\/post\/payments\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">\/payments<\/a> endpoint.<\/p>\n<p>For example, to make a <strong>EUR&nbsp;10<\/strong> payment, replace the <code>number<\/code>, <code>expiryMonth<\/code>, <code>expiryYear<\/code>, and <code>cvc<\/code> with the card details you received when you <a href=\"#create-cards\">created the card<\/a>.<\/p>\n<div data-component-wrapper=\"code-sample\">\n    <code-sample :title=\"'Make a test payment'\" :id=\"'create-payment-request'\" :code-data=\"[{&quot;language&quot;:&quot;bash&quot;,&quot;tabTitle&quot;:&quot;curl&quot;,&quot;content&quot;:&quot;curl https:\\\/\\\/checkout-test.adyen.com\\\/v68\\\/payments \\\\\\n-H 'x-api-key: ADYEN_API_KEY' \\\\\\n-H 'content-type: application\\\/json' \\\\\\n-X POST \\\\\\n-d '{\\n    \\&quot;merchantAccount\\&quot;: \\&quot;YourCompanyECOM\\&quot;,\\n    \\&quot;reference\\&quot;: \\&quot;My first Adyen test payment\\&quot;,\\n    \\&quot;amount\\&quot;: {\\n      \\&quot;value\\&quot;: 1000,\\n      \\&quot;currency\\&quot;: \\&quot;EUR\\&quot;\\n    },\\n    \\&quot;paymentMethod\\&quot;: {\\n      \\&quot;type\\&quot;: \\&quot;scheme\\&quot;,\\n      \\&quot;number\\&quot;: \\&quot;4111111111111111\\&quot;,\\n      \\&quot;expiryMonth\\&quot;: \\&quot;03\\&quot;,\\n      \\&quot;expiryYear\\&quot;: \\&quot;2030\\&quot;,\\n      \\&quot;cvc\\&quot;: \\&quot;737\\&quot;\\n    }\\n}'&quot;},{&quot;language&quot;:&quot;java&quot;,&quot;tabTitle&quot;:&quot;Java&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Java API Library v25.0.0\\nimport com.adyen.Client;\\nimport com.adyen.enums.Environment;\\nimport com.adyen.model.checkout.*;\\nimport java.time.OffsetDateTime;\\nimport java.util.*;\\nimport com.adyen.model.RequestOptions;\\nimport com.adyen.service.checkout.*;\\n\\n\\\/\\\/ For the live environment, additionally include your liveEndpointUrlPrefix.\\nClient client = new Client(\\&quot;ADYEN_API_KEY\\&quot;, Environment.TEST);\\n\\n\\\/\\\/ Create the request object(s)\\nAmount amount = new Amount()\\n  .currency(\\&quot;EUR\\&quot;)\\n  .value(1000L);\\n\\nCardDetails cardDetails = new CardDetails()\\n  .number(\\&quot;4111111111111111\\&quot;)\\n  .cvc(\\&quot;737\\&quot;)\\n  .expiryMonth(\\&quot;03\\&quot;)\\n  .expiryYear(\\&quot;2030\\&quot;)\\n  .type(CardDetails.TypeEnum.SCHEME);\\n\\nPaymentRequest paymentRequest = new PaymentRequest()\\n  .reference(\\&quot;My first Adyen test payment\\&quot;)\\n  .amount(amount)\\n  .merchantAccount(\\&quot;YourCompanyECOM\\&quot;)\\n  .paymentMethod(new CheckoutPaymentMethod(cardDetails));\\n\\n\\\/\\\/ Make the API call\\nPaymentsApi service = new PaymentsApi(client);\\nPaymentResponse response = service.payments(paymentRequest, new RequestOptions().idempotencyKey(\\&quot;UUID\\&quot;));&quot;},{&quot;language&quot;:&quot;php&quot;,&quot;tabTitle&quot;:&quot;PHP&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen PHP API Library v17.4.0\\nuse Adyen\\\\Client;\\nuse Adyen\\\\Environment;\\nuse Adyen\\\\Model\\\\Checkout\\\\Amount;\\nuse Adyen\\\\Model\\\\Checkout\\\\CheckoutPaymentMethod;\\nuse Adyen\\\\Model\\\\Checkout\\\\PaymentRequest;\\nuse Adyen\\\\Service\\\\Checkout\\\\PaymentsApi;\\n\\n$client = new Client();\\n$client-&gt;setXApiKey(\\&quot;ADYEN_API_KEY\\&quot;);\\n\\\/\\\/ For the live environment, additionally include your liveEndpointUrlPrefix.\\n$client-&gt;setEnvironment(Environment::TEST);\\n\\n\\n\\\/\\\/ Create the request object(s)\\n$amount = new Amount();\\n$amount\\n  -&gt;setCurrency(\\&quot;EUR\\&quot;)\\n  -&gt;setValue(1000);\\n\\n$checkoutPaymentMethod = new CheckoutPaymentMethod();\\n$checkoutPaymentMethod\\n  -&gt;setNumber(\\&quot;4111111111111111\\&quot;)\\n  -&gt;setCvc(\\&quot;737\\&quot;)\\n  -&gt;setExpiryMonth(\\&quot;03\\&quot;)\\n  -&gt;setExpiryYear(\\&quot;2030\\&quot;)\\n  -&gt;setType(\\&quot;scheme\\&quot;);\\n\\n$paymentRequest = new PaymentRequest();\\n$paymentRequest\\n  -&gt;setReference(\\&quot;My first Adyen test payment\\&quot;)\\n  -&gt;setAmount($amount)\\n  -&gt;setMerchantAccount(\\&quot;YourCompanyECOM\\&quot;)\\n  -&gt;setPaymentMethod($checkoutPaymentMethod);\\n\\n$requestOptions['idempotencyKey'] = 'UUID';\\n\\n\\\/\\\/ Make the API call\\n$service = new PaymentsApi($client);\\n$response = $service-&gt;payments($paymentRequest, $requestOptions);&quot;},{&quot;language&quot;:&quot;cs&quot;,&quot;tabTitle&quot;:&quot;C#&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen .net API Library v14.4.0\\nusing Adyen;\\nusing Environment = Adyen.Model.Environment;\\nusing Adyen.Model;\\nusing Adyen.Model.Checkout;\\nusing Adyen.Service.Checkout;\\n\\n\\\/\\\/ For the live environment, additionally include your liveEndpointUrlPrefix.\\nvar config = new Config()\\n{\\n    XApiKey = \\&quot;ADYEN_API_KEY\\&quot;,\\n    Environment = Environment.Test\\n};\\nvar client = new Client(config);\\n\\n\\\/\\\/ Create the request object(s)\\nAmount amount = new Amount\\n{\\n  Currency = \\&quot;EUR\\&quot;,\\n  Value = 1000\\n};\\n\\nCardDetails cardDetails = new CardDetails\\n{\\n  Number = \\&quot;4111111111111111\\&quot;,\\n  Cvc = \\&quot;737\\&quot;,\\n  ExpiryMonth = \\&quot;03\\&quot;,\\n  ExpiryYear = \\&quot;2030\\&quot;,\\n  Type = CardDetails.TypeEnum.Scheme\\n};\\n\\nPaymentRequest paymentRequest = new PaymentRequest\\n{\\n  Reference = \\&quot;My first Adyen test payment\\&quot;,\\n  Amount = amount,\\n  MerchantAccount = \\&quot;YourCompanyECOM\\&quot;,\\n  PaymentMethod = new CheckoutPaymentMethod(cardDetails)\\n};\\n\\n\\\/\\\/ Make the API call\\nvar service = new PaymentsService(client);\\nvar response = service.Payments(paymentRequest, requestOptions: new RequestOptions { IdempotencyKey = \\&quot;UUID\\&quot;});&quot;},{&quot;language&quot;:&quot;js&quot;,&quot;tabTitle&quot;:&quot;NodeJS (JavaScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nconst { Client, CheckoutAPI } = require('@adyen\\\/api-library');\\n\\\/\\\/ Initialize the client object\\n\\\/\\\/ For the live environment, additionally include your liveEndpointUrlPrefix.\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request object(s)\\nconst paymentRequest = {\\n  merchantAccount: \\&quot;YourCompanyECOM\\&quot;,\\n  reference: \\&quot;My first Adyen test payment\\&quot;,\\n  amount: {\\n    value: 1000,\\n    currency: \\&quot;EUR\\&quot;\\n  },\\n  paymentMethod: {\\n    type: \\&quot;scheme\\&quot;,\\n    number: \\&quot;4111111111111111\\&quot;,\\n    expiryMonth: \\&quot;03\\&quot;,\\n    expiryYear: \\&quot;2030\\&quot;,\\n    cvc: \\&quot;737\\&quot;\\n  }\\n}\\n\\n\\\/\\\/ Make the API call\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentsApi.payments(paymentRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;},{&quot;language&quot;:&quot;go&quot;,&quot;tabTitle&quot;:&quot;Go&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Go API Library v9.3.0\\nimport (\\n  \\&quot;context\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/common\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/adyen\\&quot;\\n  \\&quot;github.com\\\/adyen\\\/adyen-go-api-library\\\/v9\\\/src\\\/checkout\\&quot;\\n)\\n\\\/\\\/ For the live environment, additionally include your liveEndpointUrlPrefix.\\nclient := adyen.NewClient(&amp;common.Config{\\n  ApiKey:      \\&quot;ADYEN_API_KEY\\&quot;,\\n  Environment: common.TestEnv,\\n})\\n\\n\\\/\\\/ Create the request object(s)\\namount := checkout.Amount{\\n  Currency: \\&quot;EUR\\&quot;,\\n  Value: 1000,\\n}\\n\\ncardDetails := checkout.CardDetails{\\n  Number: common.PtrString(\\&quot;4111111111111111\\&quot;),\\n  Cvc: common.PtrString(\\&quot;737\\&quot;),\\n  ExpiryMonth: common.PtrString(\\&quot;03\\&quot;),\\n  ExpiryYear: common.PtrString(\\&quot;2030\\&quot;),\\n  Type: common.PtrString(\\&quot;scheme\\&quot;),\\n}\\n\\npaymentRequest := checkout.PaymentRequest{\\n  Reference: \\&quot;My first Adyen test payment\\&quot;,\\n  Amount: amount,\\n  MerchantAccount: \\&quot;YourCompanyECOM\\&quot;,\\n  PaymentMethod: checkout.CardDetailsAsCheckoutPaymentMethod(&amp;cardDetails),\\n}\\n\\n\\\/\\\/ Make the API call\\nservice := client.Checkout()\\nreq := service.PaymentsApi.PaymentsInput().IdempotencyKey(\\&quot;UUID\\&quot;).PaymentRequest(paymentRequest)\\nres, httpRes, err := service.PaymentsApi.Payments(context.Background(), req)&quot;},{&quot;language&quot;:&quot;py&quot;,&quot;tabTitle&quot;:&quot;Python&quot;,&quot;content&quot;:&quot;# Adyen Python API Library v12.2.0\\nimport Adyen\\n\\nadyen = Adyen.Adyen()\\nadyen.client.xapikey = \\&quot;ADYEN_API_KEY\\&quot;\\n# For the live environment, additionally include your liveEndpointUrlPrefix.\\nadyen.client.platform = \\&quot;test\\&quot; # The environment to use library in.\\n\\n# Create the request object(s)\\njson_request = {\\n  \\&quot;merchantAccount\\&quot;: \\&quot;YourCompanyECOM\\&quot;,\\n  \\&quot;reference\\&quot;: \\&quot;My first Adyen test payment\\&quot;,\\n  \\&quot;amount\\&quot;: {\\n    \\&quot;value\\&quot;: 1000,\\n    \\&quot;currency\\&quot;: \\&quot;EUR\\&quot;\\n  },\\n  \\&quot;paymentMethod\\&quot;: {\\n    \\&quot;type\\&quot;: \\&quot;scheme\\&quot;,\\n    \\&quot;number\\&quot;: \\&quot;4111111111111111\\&quot;,\\n    \\&quot;expiryMonth\\&quot;: \\&quot;03\\&quot;,\\n    \\&quot;expiryYear\\&quot;: \\&quot;2030\\&quot;,\\n    \\&quot;cvc\\&quot;: \\&quot;737\\&quot;\\n  }\\n}\\n\\n# Make the API call\\nresult = adyen.checkout.payments_api.payments(request=json_request, idempotency_key=\\&quot;UUID\\&quot;)&quot;},{&quot;language&quot;:&quot;rb&quot;,&quot;tabTitle&quot;:&quot;Ruby&quot;,&quot;content&quot;:&quot;# Adyen Ruby API Library v9.3.0\\nrequire \\&quot;adyen-ruby-api-library\\&quot;\\n\\nadyen = Adyen::Client.new\\nadyen.api_key = 'ADYEN_API_KEY'\\n# For the live environment, additionally include your liveEndpointUrlPrefix.\\nadyen.env = :test # Set to \\&quot;live\\&quot; for live environment\\n\\n# Create the request object(s)\\nrequest_body = {\\n  :merchantAccount =&gt; 'YourCompanyECOM',\\n  :reference =&gt; 'My first Adyen test payment',\\n  :amount =&gt; {\\n    :value =&gt; 1000,\\n    :currency =&gt; 'EUR'\\n  },\\n  :paymentMethod =&gt; {\\n    :type =&gt; 'scheme',\\n    :number =&gt; '4111111111111111',\\n    :expiryMonth =&gt; '03',\\n    :expiryYear =&gt; '2030',\\n    :cvc =&gt; '737'\\n  }\\n}\\n\\n# Make the API call\\nresult = adyen.checkout.payments_api.payments(request_body, headers: { 'Idempotency-Key' =&gt; 'UUID' })&quot;},{&quot;language&quot;:&quot;ts&quot;,&quot;tabTitle&quot;:&quot;NodeJS (TypeScript)&quot;,&quot;content&quot;:&quot;\\\/\\\/ Adyen Node API Library v16.2.0\\n\\\/\\\/ Require the parts of the module you want to use\\nimport { Client, CheckoutAPI, Types } from \\&quot;@adyen\\\/api-library\\&quot;;\\n\\\/\\\/ Initialize the client object\\n\\\/\\\/ For the live environment, additionally include your liveEndpointUrlPrefix.\\nconst client = new Client({apiKey: \\&quot;ADYEN_API_KEY\\&quot;, environment: \\&quot;TEST\\&quot;});\\n\\n\\\/\\\/ Create the request object(s)\\nconst amount: Types.checkout.Amount = {\\n  currency: \\&quot;EUR\\&quot;,\\n  value: 1000\\n};\\n\\nconst cardDetails: Types.checkout.CardDetails = {\\n  number: \\&quot;4111111111111111\\&quot;,\\n  cvc: \\&quot;737\\&quot;,\\n  expiryMonth: \\&quot;03\\&quot;,\\n  expiryYear: \\&quot;2030\\&quot;,\\n  type: Types.checkout.CardDetails.TypeEnum.Scheme\\n};\\n\\nconst paymentRequest: Types.checkout.PaymentRequest = {\\n  reference: \\&quot;My first Adyen test payment\\&quot;,\\n  amount: amount,\\n  merchantAccount: \\&quot;YourCompanyECOM\\&quot;,\\n  paymentMethod: cardDetails\\n};\\n\\n\\\/\\\/ Make the API call\\nconst checkoutAPI = new CheckoutAPI(client);\\nconst response = checkoutAPI.PaymentsApi.payments(paymentRequest, { idempotencyKey: \\&quot;UUID\\&quot; });&quot;}]\" :enable-copy-link-to-code-block=\"true\" :code-sample-card-size=\"'fullsize'\"><\/code-sample>\n<\/div>\n<p>The response depends on whether you <a href=\"#approve-or-decline-payments\">approved or declined the payment<\/a>.<\/p>\n<h2>Process webhooks<\/h2>\n<p>Adyen sends webhooks to communicate asynchronous events in your platform such as payments, captures, refunds, and fund transfers.<\/p>\n<ol>\n<li><strong>Configure a webhook endpoint on your server<\/strong>.<br \/>\n<a href=\"\/pt\/development-resources\/webhooks\/configure-and-manage\">Set up a webhook endpoint<\/a> in your system to receive webhooks from Adyen. If you are also accepting <a href=\"\/pt\/issuing\/integration-checklist#use-relayed-authorisation\">relayed authorisation webhooks<\/a>, make sure to use separate endpoints.<\/li>\n<li><strong>Configure the endpoint in Adyen<\/strong>.\n<ul>\n<li><a href=\"\/pt\/development-resources\/webhooks\/configure-and-manage\">Configure regular webhooks<\/a><\/li>\n<li><a href=\"\/pt\/issuing\/authorisation\/relayed-authorisation#step-2-configure-the-relayed-authorisation-webhook\">Configure relayed authorisation webhooks<\/a><\/li>\n<\/ul><\/li>\n<li><strong>Receive and accept webhooks<\/strong>.<br \/>\n<a href=\"\/pt\/development-resources\/webhooks\/handle-webhook-events#accept-webhooks\">Accept and process<\/a> different webhook types.<\/li>\n<\/ol>\n<h2 id=\"reports\">Download reports<\/h2>\n<p>You can use reports to reconcile payments and balances in your system.<\/p>\n<ol>\n<li><strong>Set up your reports credentials<\/strong>.<br \/>\nYour Adyen contact will provide you with a reports credential, which you need if you want to programmatically download reports.<\/li>\n<li><strong>Download reports<\/strong>.<br \/>\nListen to the  <a href=\"https:\/\/docs.adyen.com\/api-explorer\/report-webhooks\/latest\/post\/balancePlatform.report.created\" class=\"codeLabel  external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">balancePlatform.report.created<\/a> webhook to know when a report was generated and is ready to be downloaded. To download a report, you must authenticate your GET requests with your report credentials.<\/li>\n<\/ol>\n<h2>Going live<\/h2>\n<p>To start issuing cards in the live environment, you need to apply for a <a href=\"\/pt\/issuing\/get-started#apply-live\">live account<\/a>. When you have your live account, follow the steps below to take your integration live.<\/p>\n<ol>\n<li>\n<p><strong>Replicate your test account setup<\/strong>.<\/p>\n<p>The setup from your test Adyen Issuing account is <em>not<\/em> replicated to your live Adyen Issuing account. If you created the following resources in your test environment, make sure that you replicate your setup in your live account:<\/p>\n<ul>\n<li><a href=\"\/pt\/issuing\/onboard-users\/onboarding-steps\">Account holders<\/a><\/li>\n<li><a href=\"\/pt\/issuing\/onboard-users\/onboarding-steps\">Balance accounts<\/a><\/li>\n<li><a href=\"\/pt\/issuing\/authorisation\/transaction-rules\">Transaction rules<\/a><\/li>\n<li><a href=\"https:\/\/docs.adyen.com\/api-explorer\/#\/balanceplatform\/latest\/post\/paymentInstrumentGroups\" class=\"codeLabel external-link no-image\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Payment instrument groups<\/a><br \/>\n<br><\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>Update your code base<\/strong>.<br \/>\nUpdate your code base and Issuing account settings.<\/p>\n<ol>\n<li>\n<p><strong>Switch to live Balance Platform and Legal Entity Management API credentials<\/strong>.<br \/>\nGet your live API credentials from your Adyen contact. Copy these keys to your live platform.<\/p>\n<\/li>\n<li>\n<p><strong>Switch from test to live endpoints<\/strong>.<br \/>\nChange the test endpoint <code>https:\/\/balanceplatform-api-test.adyen.com\/<\/code> to live<br \/>\n<code>https:\/\/balanceplatform-api-live.adyen.com\/<\/code>.<br \/>\n<br><\/p>\n<\/li>\n<\/ol>\n<\/li>\n<li>\n<p><strong>Run end-to-end tests<\/strong>.<\/p>\n<ul>\n<li>Live Balance Platform and Legal Entity Management API credentials: Make your <a href=\"#verify-your-test-credentials\">first live API request<\/a> to make sure that your live API credentials are working.<\/li>\n<li><a href=\"\/pt\/issuing\/manage-account-holders\">Account holders<\/a> and <a href=\"\/pt\/issuing\/onboard-users\/onboarding-steps\">balance accounts<\/a>: Confirm you can create and retrieve account holders and balance accounts.<\/li>\n<li><a href=\"\/pt\/issuing\/create-cards\">Cards<\/a>: Confirm that you can create cards.<\/li>\n<li><a href=\"\/pt\/issuing\/authorisation\/transaction-rules\">Transaction rules<\/a>: Confirm that you can create and manage transaction rules.<\/li>\n<li><a href=\"\/pt\/issuing\/authorisation\/relayed-authorisation\">Relayed authorisation<\/a>: Confirm that you can receive relayed authorisation webhooks, and that you can successfully respond to approve or decline payments.<\/li>\n<li>Payments:\n<ul>\n<li>Test the happy flow by making payments with cards you created in the live environment.<\/li>\n<li>Test non-happy payment flows where payments are declined through relayed authorisation or transaction rules.<\/li>\n<\/ul><\/li>\n<li><a href=\"\/pt\/development-resources\/webhooks\/configure-and-manage\">Webhooks<\/a>: Confirm that you can receive and accept webhooks in the live environment.<\/li>\n<li><a href=\"\/pt\/issuing\/test-verification-errors\">Verification errors<\/a>: Test your error handling scenarios when onboarding users.<\/li>\n<li><a href=\"\/pt\/issuing\/generate-download-reports\">Reports<\/a>: Confirm that you can download reports for transactions in the live environment.<\/li>\n<\/ul>\n<\/li>\n<\/ol>","url":"https:\/\/docs.adyen.com\/pt\/issuing\/integration-checklist","articleFields":{"description":"Checklist for building and taking your Issuing integration live.","feedback_component":true,"last_edit_on":"22-10-2021 09:36","cache_enable":false,"page_id":"c53bfadf-de3d-45d8-8cee-2568786bac29","filters_component":false,"decision_tree":"[]","parameters":{"directoryPath":"\/issuing"}},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/issuing\/integration-checklist","title":"Integration and go-live checklist","content":"On this page you learn the steps for developing an Adyen Issuing integration and for taking your integration live.\n\nAdyen APIs Postman collections Fork our Postman collections in your private workspace to start testing API calls with your own credentials.\n\nBefore you start building your integration, make sure that you have already:\n\nDesigned your implementation.\nReceived your Issuing test account and API credential from your Adyen contact.\n\nVerify your test credentials\nTo verify that your test API credentials are working, make your first requests.\nYou need the API keys of the following credentials to make these requests:\n\nws_[123456]@BalancePlatform.[YourBalancePlatform]: use this API key to make requests to the  Configuration API and the  Transfers API.\nws_[123456]@Scope.Company_[YourCompanyAccount]: use this API key to make requests to the  Legal Entity Management API.\n\nTry out the requests below.\n\n\n    \n        \n        \n    \n\n\nOnboard legal entities\nBefore you can start issuing cards, your account holders need to go through verification checks. Adyen performs the checks against the legal entity of the account holder.\n\nIdentify the required information.\nCheck the required information based on the location where the account holder is operating in.\nCreate legal entities.\nCreate a legal entity resource for the account holder's organization and for the individuals associated to the organization.\nAdd transfer instruments.\nFor use cases that involve moving funds between balance accounts and bank accounts, add a transfer instrument to represent the account holder's bank account.\nUpload additional documents.\nAdyen may also require you to upload additional documents if needed.\n\nCreate account holders and balance accounts\nCreate an account holder and one or more balance accounts.\n\nCreate account holders.\nCreate an account holder and link it to their legal entity.\nCreate balance accounts.\nCreate balance accounts and link the accounts to the account holder(s).\n\nManage your platform\nLearn how to update manage account holders and balance accounts to view details or update statuses.\n\nManage account holders.\nView and update account holders in your platform.\nManage balance accounts.\nView and update balance accounts in your platform.\n\nCreate cards\nCreate virtual or physical cards depending on your use case.\nWhen you successfully create virtual cards in the test environment, you receive the card number, expiry date, and CVC. You use these card details to make a test payment.\nManage card status\nDepending on your use case, you can change a card's status.\n\n\nSuspend a single-use card after it has been used.\nIf a single-use card has been used, suspend the card to temporarily prevent payments.\n\n\nClose a card.\nIf a card should no longer be used, close the card. Closing a card is a permanent action and cannot be reversed.\n\n\nAdd and manage funds\nTo make test payments with an Adyen-issued card, you need to make sure the balance accounts have funds.\n\nAdd funds to your liable balance account.\nReach out to your Adyen contact to help you add funds to your liable balance account in the test environment.\n\nWhen you have the funds on your liable balance account, you can then:\n\nManage funds.\nTransfer funds to other balance accounts. The flow of funds between the liable balance account and other balance accounts depends your business logic and on how you designed your account structure.\n\nApprove or decline payments\nWith relayed authorisation, you approve or decline a payment by responding to a webhook. With transaction rules, payments are approved or declined based on conditions. You can use relayed authorisation, transaction rules, or both.\nWhen combined, transaction rules are applied first, serving as a filtering mechanism for payment attempts before sending you the relayed authorisation webhook.\nUse relayed authorisation\nIf you decide to use relayed authorisation to approve or decline payments within 2000 milliseconds of the payment attempt, you have to:\n\nExpose an endpoint to handle relayed authorisation webhooks.\nConfigure an endpoint to receive relayed authorisation webhooks. To differentiate relayed authorisation webhooks from webhooks for other platform events, make sure this a separate endpoint from your webhooks.\nConfigure the relayed authorisation webhook in Adyen.\nRespond to relayed authorisation webhooks.\nRespond to the webhook within 2000 milliseconds of the payment attempt, specifying if you want to allow or decline the payment.You can define default fallback logic for Adyen to apply to the payment attempt in cases when Adyen does not receive a response, or receives an invalid response, from you.\n\nUse transaction rules\nBefore you start creating transaction rules, make sure that you have already clearly defined your business logic and requirements when approving or declining payments. You turn these requirements into rule conditions.\n\nCreate payment instrument groups.\nGrouping together payment instruments is useful if you want to apply a transaction rule to multiple cards. Create a payment instrument group, assign cards to the group, and assign a transaction rule to the group.\nCreate transaction rules.\nDefine rule conditions. A payment is automatically approved or declined depending on the conditions in the transaction rule. A transaction rule must be linked to one payment instrument, payment instrument group, or the whole balance platform.\n\nMake test payments\nAsk your Adyen contact for your online payments API credential. This API credential is different from the one that you use with the Balance Platform or Legal Entity Management APIs.\nYou use your online payments API credentials to simulate payments in the test environment using the  \/payments endpoint.\nFor example, to make a EUR&nbsp;10 payment, replace the number, expiryMonth, expiryYear, and cvc with the card details you received when you created the card.\n\n    \n\nThe response depends on whether you approved or declined the payment.\nProcess webhooks\nAdyen sends webhooks to communicate asynchronous events in your platform such as payments, captures, refunds, and fund transfers.\n\nConfigure a webhook endpoint on your server.\nSet up a webhook endpoint in your system to receive webhooks from Adyen. If you are also accepting relayed authorisation webhooks, make sure to use separate endpoints.\nConfigure the endpoint in Adyen.\n\nConfigure regular webhooks\nConfigure relayed authorisation webhooks\n\nReceive and accept webhooks.\nAccept and process different webhook types.\n\nDownload reports\nYou can use reports to reconcile payments and balances in your system.\n\nSet up your reports credentials.\nYour Adyen contact will provide you with a reports credential, which you need if you want to programmatically download reports.\nDownload reports.\nListen to the  balancePlatform.report.created webhook to know when a report was generated and is ready to be downloaded. To download a report, you must authenticate your GET requests with your report credentials.\n\nGoing live\nTo start issuing cards in the live environment, you need to apply for a live account. When you have your live account, follow the steps below to take your integration live.\n\n\nReplicate your test account setup.\nThe setup from your test Adyen Issuing account is not replicated to your live Adyen Issuing account. If you created the following resources in your test environment, make sure that you replicate your setup in your live account:\n\nAccount holders\nBalance accounts\nTransaction rules\nPayment instrument groups\n\n\n\n\nUpdate your code base.\nUpdate your code base and Issuing account settings.\n\n\nSwitch to live Balance Platform and Legal Entity Management API credentials.\nGet your live API credentials from your Adyen contact. Copy these keys to your live platform.\n\n\nSwitch from test to live endpoints.\nChange the test endpoint https:\/\/balanceplatform-api-test.adyen.com\/ to live\nhttps:\/\/balanceplatform-api-live.adyen.com\/.\n\n\n\n\n\nRun end-to-end tests.\n\nLive Balance Platform and Legal Entity Management API credentials: Make your first live API request to make sure that your live API credentials are working.\nAccount holders and balance accounts: Confirm you can create and retrieve account holders and balance accounts.\nCards: Confirm that you can create cards.\nTransaction rules: Confirm that you can create and manage transaction rules.\nRelayed authorisation: Confirm that you can receive relayed authorisation webhooks, and that you can successfully respond to approve or decline payments.\nPayments:\n\nTest the happy flow by making payments with cards you created in the live environment.\nTest non-happy payment flows where payments are declined through relayed authorisation or transaction rules.\n\nWebhooks: Confirm that you can receive and accept webhooks in the live environment.\nVerification errors: Test your error handling scenarios when onboarding users.\nReports: Confirm that you can download reports for transactions in the live environment.\n\n\n","type":"page","locale":"pt","boost":18,"hierarchy":{"lvl0":"Home","lvl1":"Adyen Issuing","lvl2":"Integration and go-live checklist"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/issuing","lvl2":"\/pt\/issuing\/integration-checklist"},"levels":3,"category":"Issuing","category_color":"green","tags":["Integration","go-live","checklist"]},"articleFiles":{"create-legalentity-request.js":"<p alt=\"\">create-legalentity-request.js<\/p>","create-payment-request.js":"<p alt=\"\">create-payment-request.js<\/p>","get-balanceplatform-request.js":"<p alt=\"\">get-balanceplatform-request.js<\/p>"}}
