# Add a new Passcode payload configuration to an existing profile To create Mac Passcode policy ## Endpoint **POST** `/api/v1/mdm/profiles/{profile_id}/payloads/macpasscodepolicy` ## Request URL `https://{server-hostname}:8383/api/v1/mdm/profiles/{profile_id}/payloads/macpasscodepolicy` ## Scope `MDMDeviceMgmt.CREATE` ## Header `Authorization: d92d4xxxxxxxxxxxxx15f52` ## Request Parameters ### Request Headers - **Content-Type** `string` — Mandatory: `application/json` - **Accept** `string` — Mandatory: `application/json` ### Path Parameters - **profile_id** `string` — Mandatory Unique identifier of the profile. Obtain from the [Create Profile](https://www.manageengine.com/products/desktop-central/help/api/onpremise/mdm-profiles-create-profile.html) or [Get Profiles](https://www.manageengine.com/products/desktop-central/help/api/onpremise/mdm-profiles-get-profile.html) response ### Request Body `application/json` - **JSON Object** - **allow_simple_value** `boolean` — Optional Allow Simple Value. Default: true - **require_alphanumeric** `boolean` — Optional Require Alphanumeric. Default: false - **min_passcode_length** `integer` — Optional Minimum passcode length. Allowed values: 0-16. Default: 0 - **min_complex_chars** `integer` — Optional Minimum number of complex (non-alphanumeric) characters. Allowed values: 0-4. Default: 0 - **max_passcode_age** `integer` — Optional Maximum number of days a passcode can remain unchanged. Allowed values: 0-730. Default: 0 - **auto_lock_idle_for** `integer` — Optional Auto-lock idle time in minutes. Allowed values: 0-15. Default: 0 - **no_of_passcode_maintained** `integer` — Optional Number of unique passcodes before reuse is allowed. Allowed values: 0-50. Default: 0 - **max_grace_period** `integer` — Optional Maximum grace period in minutes before passcode is required. - **max_failed_attempts** `integer` — Optional Maximum number of failed passcode attempts before device wipe. Allowed values: 2-11. Default: 11 - **restrict_passcode** `boolean` — Optional Restrict Passcode. Default: false - **force_passcode** `boolean` — Optional Force Passcode. Default: true - **change_at_next_auth** `boolean` — Optional Change At Next Auth. Default: false - **mins_failed_login_reset** `integer` — Optional Minutes after which failed login count resets. 0 means no reset. Default: 0 ## Sample Request ```curl curl --request POST \ --url https://appdomain/api/v1/mdm/profiles/{profile_id}/payloads/macpasscodepolicy \ --header 'Accept: application/json' \ --header 'Authorization: d92d4xxxxxxxxxxxxx15f52' \ --header 'Content-Type: application/json' \ --data '{"min_passcode_length":-1,"max_passcode_age":0,"require_alphanumeric":false,"min_complex_chars":-1,"restrict_passcode":false,"no_of_passcode_maintained":0,"allow_simple_value":true,"auto_lock_idle_for":-1,"max_grace_period":-1,"max_failed_attempts":-1}' ``` ## Sample Request Body Add Passcode payload to the profile ```json { "min_passcode_length": -1, "max_passcode_age": 0, "require_alphanumeric": false, "min_complex_chars": -1, "restrict_passcode": false, "no_of_passcode_maintained": 0, "allow_simple_value": true, "auto_lock_idle_for": -1, "max_grace_period": -1, "max_failed_attempts": -1 } ``` ## Response Parameters ### HTTP Code 200 Response Body — `application/json` - **JSON Object** - **payload_id** `long` Unique identifier for the created payload item - **allow_simple_value** `boolean` Allow Simple Value. Default: true - **require_alphanumeric** `boolean` Require Alphanumeric. Default: false - **min_passcode_length** `string` Minimum passcode length. Allowed values: 0-16. Default: 0 - **min_complex_chars** `string` Minimum number of complex (non-alphanumeric) characters. Allowed values: 0-4. Default: 0 - **max_passcode_age** `string` Maximum number of days a passcode can remain unchanged. Allowed values: 0-730. Default: 0 - **auto_lock_idle_for** `string` Auto-lock idle time in minutes. Allowed values: 0-15. Default: 0 - **no_of_passcode_maintained** `string` Number of unique passcodes before reuse is allowed. Allowed values: 0-50. Default: 0 - **max_grace_period** `string` Maximum grace period in minutes before passcode is required. - **max_failed_attempts** `string` Maximum number of failed passcode attempts before device wipe. Allowed values: 2-11. Default: 11 - **restrict_passcode** `boolean` Restrict Passcode. Default: false - **force_passcode** `boolean` Force Passcode. Default: true - **change_at_next_auth** `boolean` Change At Next Auth. Default: false - **mins_failed_login_reset** `string` Minutes after which failed login count resets. 0 means no reset. Default: 0 ## Possible Response Codes - **200** `HTTP code` ## Sample Response: HTTP 200 Passcode payload successfully added ```json { "min_passcode_length": -1, "max_passcode_age": 0, "payload_id": 9007199254741000, "require_alphanumeric": false, "min_complex_chars": -1, "restrict_passcode": false, "no_of_passcode_maintained": 0, "allow_simple_value": true, "auto_lock_idle_for": -1, "max_grace_period": -1, "max_failed_attempts": -1 } ``` **Duration:** 1 minute | **Threshold:** 30 | **Lock period:** 5 minutes Duration - Time window for the threshold. Threshold - Number of API calls allowed within the specified duration. Lock Period - Wait time before consecutive API requests.