---
title: "request(_:completion:)"
framework: callkit
role: symbol
role_heading: Instance Method
path: "callkit/cxcallcontroller/request(_:completion:)"
---

# request(_:completion:)

Requests that the actions in the specified transaction be asynchronously performed by the telephony provider.

## Declaration

```swift
func request(_ transaction: CXTransaction, completion: @escaping @Sendable ((any Error)?) -> Void)
```

```swift
func request(_ transaction: CXTransaction) async throws
```

## Parameters

- `transaction`: A transaction that contains actions to be performed.
- `completion`: Code to be executed after the transaction is completed. The callback is executed on the queue specified when the call controller was initialized.

## Discussion

Discussion important: You can call this method from synchronous code using a completion handler, as shown on this page, or you can call it as an asynchronous method that has the following declaration: func request(_ transaction: CXTransaction) async throws For information about concurrency and asynchronous code in Swift, see Calling Objective-C APIs Asynchronously.

## See Also

### Requesting Transactions

- [requestTransaction(with:completion:)](callkit/cxcallcontroller/requesttransaction(with:completion:)-ffme.md)
- [requestTransaction(with:completion:)](callkit/cxcallcontroller/requesttransaction(with:completion:)-4o1m4.md)
