In your Customer Area, you can manually 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. You can also schedule terminal actions through API.
API key and roles
Using Management API, you can order, assign, and configure terminals, and schedule terminal actions. To authenticate your requests, you need an API credential. This API credential must have an API key.
If you are using a Terminal API integration with cloud-based communications, you can use the existing API key that you use for Terminal API requests.
Your API credential must also have specific roles, 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"
.
{
"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 |
Upload Android certificate | POST /companies/{companyId}/androidCertificates |
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 |
Update a store | PATCH /merchants/{merchantId}/stores/{storeId} |
Store endpoints and rate limits
Total 160 requests/minute rate limit for the following endpoints combined | |
---|---|
Action | Endpoint |
Create a store | POST /stores |
Update a store | PATCH /stores/{storeId} |
Update the terminal logo | PATCH /stores/{storeId}/terminalLogos |
Total 2000 requests/minute rate limit for the following endpoints combined | |
---|---|
Action | Endpoint |
Get a list of stores | GET /stores |
Get a store | GET /stores/{storeId} |
Get the terminal logo | GET /stores/{storeId}/terminalLogos |
Get terminal settings | GET /stores/{storeId}/terminalSettings |
Update terminal settings | 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 |
Total 2000 requests/minute rate limit for the following endpoints combined | |
---|---|
Action | Endpoint |
Get a list of terminals | GET /terminals |
Create a terminal action | POST /terminals/scheduleActions |
Get the terminal logo | GET /terminals/{terminalId}/terminalLogos |
Update the terminal logo | PATCH /terminals/{terminalId}/terminalLogos |
Get terminal settings | GET /terminals/{terminalId}/terminalSettings |
Update terminal settings | PATCH /terminals/{terminalId}/terminalSettings |