<!--
{
  "availability" : [
    "iOS: 26.2.0 -",
    "iPadOS: 26.2.0 -",
    "macCatalyst: 26.2.0 -",
    "macOS: 26.2.0 -",
    "tvOS: 26.2.0 -",
    "visionOS: 26.2.0 -",
    "watchOS: 26.2.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "Matter",
  "identifier" : "/documentation/Matter/MTRCommissioningOperation/init(parameters:setupPayload:delegate:queue:)",
  "metadataVersion" : "0.1.0",
  "role" : "Initializer",
  "symbol" : {
    "kind" : "Initializer",
    "modules" : [
      "Matter"
    ],
    "preciseIdentifier" : "c:objc(cs)MTRCommissioningOperation(im)initWithParameters:setupPayload:delegate:queue:"
  },
  "title" : "init(parameters:setupPayload:delegate:queue:)"
}
-->

# init(parameters:setupPayload:delegate:queue:)

Prepare to commission a device with the given parameters and the given setup
payload (QR code, manual pairing code, etc).  Returns nil if the payload is
not valid.

```
init?(parameters: MTRCommissioningParameters, setupPayload payload: String, delegate: any MTRCommissioningDelegate, queue: dispatch_queue_t)
```

## Discussion

The deviceAttestationDelegate property of MTRCommissioningParameters will be
ignored. Device attestation notifications will be delivered to the
MTRCommissioningDelegate instead.  The failSafeTimeout property of
MTRCommissioningParameters will be respected.

The provided delegate will be notified about various things as commissioning
proceeds.  The calls into the delegate will happen on the provided queue.

Modifying the parameters after this call will have no effect on the behavior
of the MTRCommissioningOperation.

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)