--- title: "Automate the management of your terminals" description: "Use APIs to order, assign, and configure payment terminals." url: "https://docs.adyen.com/point-of-sale/automating-terminal-management" source_url: "https://docs.adyen.com/point-of-sale/automating-terminal-management.md" canonical: "https://docs.adyen.com/point-of-sale/automating-terminal-management" last_modified: "2021-04-21T14:23:00+02:00" language: "en" --- # Automate the management of your terminals Use APIs to order, assign, and configure payment terminals. [View source](/point-of-sale/automating-terminal-management.md) In your Customer Area, you can [manually](/point-of-sale/managing-terminals) order, assign, and configure terminals, and schedule actions like installing Android apps. However, doing this manually can be too time-consuming or impractical. To automate the management of terminals you can make API requests to order, assign, and configure terminals. Then, when the configured terminal is delivered to the store that it is assigned to, store staff only need to [board the terminal](/point-of-sale/managing-terminals/board-terminal). You can also schedule terminal actions through API. ## API key and roles Using [Management API](https://docs.adyen.com/api-explorer/Management/latest/overview), you can order, assign, and configure terminals, and schedule terminal actions. To authenticate your requests, you need an [API credential](/development-resources/api-credentials). This API credential must have an [API key](/development-resources/api-credentials#generate-api-key). If you are using a Terminal API integration with [cloud-based communications](/point-of-sale/design-your-integration/choose-your-architecture#cloud-communications), you can use the existing API key that you use for Terminal API requests. Your API credential must also have specific [roles](/development-resources/api-credentials#api-permissions), depending on what you want to do. | Task | Roles | | ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | | Order terminals | Management API—Terminal ordering read Management API—Terminal ordering read and write | | Assign terminals | Management API—Stores read Management API—Stores read and write | | Configure terminals | Management API—Terminal settings read Management API—Terminal settings read and write Management API—Terminal settings Advanced read and write | | Schedule terminal actions | Management API—Terminal actions read Management API—Terminal actions read and write | ## Rate limits in the live environment To ensure the stability of the live environment, we enforce rate limits on live Management API endpoints related to payment terminal management and stores. This means that when the number of requests you send exceeds a threshold within a time frame, additional requests are blocked until the time frame ends. For example: if the rate limit is 160 requests per minute for a group of endpoints, things work as usual for the first 160 requests within the minute. But if you send another request to an endpoint in that same group in that same minute, the request fails. You need to wait until the minute ends before you retry the request. When a Management API request fails due to exceeding a rate limit, the response includes `"detail": "too many requests"`. ```json { "type": "https://docs.adyen.com/errors/internal", "title": "An internal error happened", "status": 500, "detail": "too many requests", "errorCode": "00_500" } ``` Expand the following sections to see the rate limits per endpoint level. Note that these limits are indicative and can change as needed to maintain the stability of the live environment. The live base URL for all these endpoints is `https://management-live.adyen.com/v{version_number}`. ** ### Company endpoints and rate limits | Total 160 requests/minute rate limit for the following endpoints combined | | | ------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Action** | **Endpoint** | | Upload Android app | POST [/companies/{companyId}/androidApps](https://docs.adyen.com/api-explorer/Management/latest/get/companies/\(companyId\)/androidApps) | | Upload Android certificate | POST [/companies/{companyId}/androidCertificates](https://docs.adyen.com/api-explorer/Management/latest/get/companies/\(companyId\)/androidCertificates) | | Total 2000 requests/minute rate limit for the following endpoints combined | | | -------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Action** | **Endpoint** | | Get a list of Android apps | GET [/companies/{companyId}/androidApps](https://docs.adyen.com/api-explorer/Management/latest/get/companies/\(companyId\)/androidApps) | | Get an Android app | GET [/companies/{companyId}/androidApps/{id}](https://docs.adyen.com/api-explorer/Management/latest/get/companies/\(companyId\)/androidApps/\(id\)) | | Reprocess an Android app | PATCH [/companies/{companyId}/androidApps/{id}](https://docs.adyen.com/api-explorer/Management/latest/patch/companies/\(companyId\)/androidApps/\(id\)) | | Get a list of Android certificates | GET [/companies/{companyId}/androidCertificates](https://docs.adyen.com/api-explorer/Management/latest/get/companies/\(companyId\)/androidCertificates) | | Get a list of billing entities | GET [/companies/{companyId}/billingEntities](https://docs.adyen.com/api-explorer/Management/latest/get/companies/\(companyId\)/billingEntities) | | Get a list of shipping locations | GET [/companies/{companyId}/shippingLocations](https://docs.adyen.com/api-explorer/Management/latest/get/companies/\(companyId\)/shippingLocations) | | Create a shipping location | POST [/companies/{companyId}/shippingLocations](https://docs.adyen.com/api-explorer/Management/latest/post/companies/\(companyId\)/shippingLocations) | | Get a list of terminal actions | GET [/companies/{companyId}/terminalActions](https://docs.adyen.com/api-explorer/Management/latest/get/companies/\(companyId\)/terminalActions) | | Get a terminal action | GET [/companies/{companyId}/terminalActions/{actionId}](https://docs.adyen.com/api-explorer/Management/latest/get/companies/\(companyId\)/terminalActions/\(actionId\)) | | Get the terminal logo | GET [/companies/{companyId}/terminalLogos](https://docs.adyen.com/api-explorer/Management/latest/get/companies/\(companyId\)/terminalLogos) | | Update the terminal logo | PATCH [/companies/{companyId}/terminalLogos](https://docs.adyen.com/api-explorer/Management/latest/patch/companies/\(companyId\)/terminalLogos) | | Get a list of terminal models | GET [/companies/{companyId}/terminalModels](https://docs.adyen.com/api-explorer/Management/latest/get/companies/\(companyId\)/terminalModels) | | Get a list of orders | GET [/companies/{companyId}/terminalOrders](https://docs.adyen.com/api-explorer/Management/latest/get/companies/\(companyId\)/terminalOrders) | | Create an order | POST [/companies/{companyId}/terminalOrders](https://docs.adyen.com/api-explorer/Management/latest/post/companies/\(companyId\)/terminalOrders) | | Get an order | GET [/companies/{companyId}/terminalOrders/{orderId}](https://docs.adyen.com/api-explorer/Management/latest/get/companies/\(companyId\)/terminalOrders/\(orderId\)) | | Update an order | PATCH [/companies/{companyId}/terminalOrders/{orderId}](https://docs.adyen.com/api-explorer/Management/latest/patch/companies/\(companyId\)/terminalOrders/\(orderId\)) | | Cancel an order | POST [/companies/{companyId}/terminalOrders/{orderId}/cancel](https://docs.adyen.com/api-explorer/Management/latest/post/companies/\(companyId\)/terminalOrders/\(orderId\)/cancel) | | Get a list of terminal products | GET [/companies/{companyId}/terminalProducts](https://docs.adyen.com/api-explorer/Management/latest/get/companies/\(companyId\)/terminalProducts) | | Get terminal settings | GET [/companies/{companyId}/terminalSettings](https://docs.adyen.com/api-explorer/Management/latest/get/companies/\(companyId\)/terminalSettings) | | Update terminal settings | PATCH [/companies/{companyId}/terminalSettings](https://docs.adyen.com/api-explorer/Management/latest/patch/companies/\(companyId\)/terminalSettings) | ** ### Merchant endpoints and rate limits | Total 160 requests/minute rate limit for the following endpoints combined | | | ------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Action** | **Endpoint** | | Create a store | POST [/merchants/{merchantId}/stores](https://docs.adyen.com/api-explorer/Management/latest/post/merchants/\(merchantId\)/stores) | | Update a store | PATCH [/merchants/{merchantId}/stores/{storeId}](https://docs.adyen.com/api-explorer/Management/latest/patch/merchants/\(merchantId\)/stores/\(storeId\)) | | Total 2000 requests/minute rate limit for the following endpoints combined | | | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Action** | **Endpoint** | | Get a list of billing entities | GET [/merchants/{merchantId}/billingEntities](https://docs.adyen.com/api-explorer/Management/latest/get/merchants/\(merchantId\)/billingEntities) | | Get a list of shipping locations | GET [/merchants/{merchantId}/shippingLocations](https://docs.adyen.com/api-explorer/Management/latest/get/merchants/\(merchantId\)/shippingLocations) | | Create a shipping location | POST [/merchants/{merchantId}/shippingLocations](https://docs.adyen.com/api-explorer/Management/latest/post/merchants/\(merchantId\)/shippingLocations) | | Get a list of stores | GET [/merchants/{merchantId}/stores](https://docs.adyen.com/api-explorer/Management/latest/get/merchants/\(merchantId\)/stores) | | Get a store | GET [/merchants/{merchantId}/stores/{storeId}](https://docs.adyen.com/api-explorer/Management/latest/get/merchants/\(merchantId\)/stores/\(storeId\)) | | Get the terminal logo | GET [/merchants/{merchantId}/terminalLogos](https://docs.adyen.com/api-explorer/Management/latest/get/merchants/\(merchantId\)/terminalLogos) GET [/merchants/{merchantId}/stores/{reference}/terminalLogos](https://docs.adyen.com/api-explorer/Management/latest/get/merchants/\(merchantId\)/stores/\(reference\)/terminalLogos) | | Update the terminal logo | PATCH [/merchants/{merchantId}/terminalLogos](https://docs.adyen.com/api-explorer/Management/latest/patch/merchants/\(merchantId\)/terminalLogos) PATCH [/merchants/{merchantId}/stores/{reference}/terminalLogos](https://docs.adyen.com/api-explorer/Management/latest/patch/merchants/\(merchantId\)/stores/\(reference\)/terminalLogos) | | Get a list of terminal models | GET [/merchants/{merchantId}/terminalModels](https://docs.adyen.com/api-explorer/Management/latest/get/merchants/\(merchantId\)/terminalModels) | | Get a list of orders | GET [/merchants/{merchantId}/terminalOrders](https://docs.adyen.com/api-explorer/Management/latest/get/merchants/\(merchantId\)/terminalOrders) | | Create an order | POST [/merchants/{merchantId}/terminalOrders](https://docs.adyen.com/api-explorer/Management/latest/post/merchants/\(merchantId\)/terminalOrders) | | Get an order | GET [/merchants/{merchantId}/terminalOrders/{orderId}](https://docs.adyen.com/api-explorer/Management/latest/get/merchants/\(merchantId\)/terminalOrders/\(orderId\)) | | Update an order | PATCH [/merchants/{merchantId}/terminalOrders/{orderId}](https://docs.adyen.com/api-explorer/Management/latest/patch/merchants/\(merchantId\)/terminalOrders/\(orderId\)) | | Cancel an order | POST [/merchants/{merchantId}/terminalOrders/{orderId}/cancel](https://docs.adyen.com/api-explorer/Management/latest/post/merchants/\(merchantId\)/terminalOrders/\(orderId\)/cancel) | | Get a list of terminal products | GET [/merchants/{merchantId}/terminalProducts](https://docs.adyen.com/api-explorer/Management/latest/get/merchants/\(merchantId\)/terminalProducts) | | Get terminal settings | GET [/merchants/{merchantId}/terminalSettings](https://docs.adyen.com/api-explorer/Management/latest/get/merchants/\(merchantId\)/terminalSettings) GET [/merchants/{merchantId}/stores/{reference}/terminalSettings](https://docs.adyen.com/api-explorer/Management/latest/patch/merchants/\(merchantId\)/stores/\(reference\)/terminalSettings) | | Update terminal settings | PATCH [/merchants/{merchantId}/terminalSettings](https://docs.adyen.com/api-explorer/Management/latest/patch/merchants/\(merchantId\)/terminalSettings) PATCH [/merchants/{merchantId}/stores/{reference}/terminalSettings](https://docs.adyen.com/api-explorer/Management/latest/patch/merchants/\(merchantId\)/stores/\(reference\)/terminalSettings) | ** ### Store endpoints and rate limits | Total 160 requests/minute rate limit for the following endpoints combined | | | ------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | | **Action** | **Endpoint** | | Create a store | POST [/stores](https://docs.adyen.com/api-explorer/Management/latest/post/stores) | | Update a store | PATCH [/stores/{storeId}](https://docs.adyen.com/api-explorer/Management/latest/patch/stores/\(storeId\)) | | Update the terminal logo | PATCH [/stores/{storeId}/terminalLogos](https://docs.adyen.com/api-explorer/Management/latest/patch/stores/\(storeId\)/terminalLogos) | | Total 2000 requests/minute rate limit for the following endpoints combined | | | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- | | **Action** | **Endpoint** | | Get a list of stores | GET [/stores](https://docs.adyen.com/api-explorer/Management/latest/get/stores) | | Get a store | GET [/stores/{storeId}](https://docs.adyen.com/api-explorer/Management/latest/get/stores/\(storeId\)) | | Get the terminal logo | GET [/stores/{storeId}/terminalLogos](https://docs.adyen.com/api-explorer/Management/latest/get/stores/\(storeId\)/terminalLogos) | | Get terminal settings | GET [/stores/{storeId}/terminalSettings](https://docs.adyen.com/api-explorer/Management/latest/get/stores/\(storeId\)/terminalSettings) | | Update terminal settings | PATCH [/stores/{storeId}/terminalSettings](https://docs.adyen.com/api-explorer/Management/latest/patch/stores/\(storeId\)/terminalSettings) | ** ### Terminal endpoints and rate limits | 160 requests/minute rate limit for the following endpoint | | | --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- | | **Action** | **Endpoint** | | Reassign a terminal | POST [/terminals/{terminalId}/reassign](https://docs.adyen.com/api-explorer/Management/latest/post/terminals/\(terminalId\)/reassign) | | Total 2000 requests/minute rate limit for the following endpoints combined | | | -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Action** | **Endpoint** | | Get a list of terminals | GET [/terminals](https://docs.adyen.com/api-explorer/Management/latest/get/terminals) | | Create a terminal action | POST [/terminals/scheduleActions](https://docs.adyen.com/api-explorer/Management/latest/post/terminals/scheduleActions) | | Get the terminal logo | GET [/terminals/{terminalId}/terminalLogos](https://docs.adyen.com/api-explorer/Management/latest/get/terminals/\(terminalId\)/terminalLogos) | | Update the terminal logo | PATCH [/terminals/{terminalId}/terminalLogos](https://docs.adyen.com/api-explorer/Management/latest/patch/terminals/\(terminalId\)/terminalLogos) | | Get terminal settings | GET [/terminals/{terminalId}/terminalSettings](https://docs.adyen.com/api-explorer/Management/latest/get/terminals/\(terminalId\)/terminalSettings) | | Update terminal settings | PATCH [/terminals/{terminalId}/terminalSettings](https://docs.adyen.com/api-explorer/Management/latest/patch/terminals/\(terminalId\)/terminalSettings) | ## What do you want to do? [![](/user/themes/adyen/images/illustrations/delivery.svg)](/point-of-sale/automating-terminal-management/order-terminals-api) ###### [Order terminals](/point-of-sale/automating-terminal-management/order-terminals-api) [Make API requests to order payment terminals and accessories.](/point-of-sale/automating-terminal-management/order-terminals-api) [![](/user/themes/adyen/images/illustrations/store.svg)](/point-of-sale/automating-terminal-management/assign-terminals-api) ###### [Assign terminals](/point-of-sale/automating-terminal-management/assign-terminals-api) [Make API requests to assign payment terminals to a store.](/point-of-sale/automating-terminal-management/assign-terminals-api) [![](/user/themes/adyen/images/illustrations/settings.svg)](/point-of-sale/automating-terminal-management/configure-terminals-api) ###### [Configure terminals](/point-of-sale/automating-terminal-management/configure-terminals-api) [Make API requests to configure payment terminals.](/point-of-sale/automating-terminal-management/configure-terminals-api) [![](/user/themes/adyen/images/illustrations/calendar-18.svg)](/point-of-sale/android-terminals/deploy-apps/terminal-actions-api) ###### [Schedule actions](/point-of-sale/android-terminals/deploy-apps/terminal-actions-api) [Make API requests to schedule actions on terminals.](/point-of-sale/android-terminals/deploy-apps/terminal-actions-api)