--- title: "Handle the final state" url: "https://docs.adyen.com/point-of-sale/classic-library-deprecation/classic-library-integrations/ios-integration/key-steps-ios/process-a-basic-transaction-ios/handle-the-final-state-ios" source_url: "https://docs.adyen.com/point-of-sale/classic-library-deprecation/classic-library-integrations/ios-integration/key-steps-ios/process-a-basic-transaction-ios/handle-the-final-state-ios.md" canonical: "https://docs.adyen.com/point-of-sale/classic-library-deprecation/classic-library-integrations/ios-integration/key-steps-ios/process-a-basic-transaction-ios/handle-the-final-state-ios" last_modified: "2026-05-24T12:54:31+02:00" language: "en" --- # Handle the final state [View source](/point-of-sale/classic-library-deprecation/classic-library-integrations/ios-integration/key-steps-ios/process-a-basic-transaction-ios/handle-the-final-state-ios.md) ## Delegate The `transactionComplete` delegate is called when the transaction completes from the library perspective. Completion does not necessarily mean that a payment has been made - the transaction may also have been declined or cancelled. This can be determined by examining the given `transaction`'s status via the `finalState` property. In case of a technical problem the `finalState` property will have value UNKNOWN.  After this method has been called, no other methods on the delegate will be called. ### Parameters | Name | Type | Required | Description | | ------------- | ------------------ | ------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | | `transaction` | ADYTransactionData | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Object containing referral data, and method to continue transaction processing with auth code. | ### Declaration code example #### Objective-C ```objectivec - (void)transactionComplete:(ADYTransactionData *)transaction; ``` #### Swift ```swift func transactionComplete(_ transaction: ADYTransactionData!) ``` Receiving the transactionComplete delegate does not necessarily mean that the payment was successful. To determine this, inspect the `finalState` property of the given `ADYTransactionData`.