--- title: "Handle signatures" 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-signatures-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-signatures-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-signatures-ios" last_modified: "2026-05-25T12:55:00+02:00" language: "en" --- # Handle signatures [View source](/point-of-sale/classic-library-deprecation/classic-library-integrations/ios-integration/key-steps-ios/process-a-basic-transaction-ios/handle-signatures-ios.md) ## Delegate The `transactionRequiresSignature` delegate is called when a signature must be confirmed as part of processing a transaction. Handle the `transactionRequiresSignature` delegate by writing the POS app to call either `[ADYSignatureRequest submitConfirmedSignature:]` or `[ADYSignatureRequest submitUnconfirmedSignature:]`. After this method has been called, the transaction will be paused until either `submitConfirmedSignature:` or `submitUnconfirmedSignature:` has been called on the given `signatureRequest`. This method must be implemented in two different ways, depending on the presence of a printer on the payment-device (as determined by the `paymentDeviceHasPrinter` method on the Adyen class). If the device has a printer: 1. The device prints a receipt, which must be signed by the customer. 2. The attendant compares this signature to the signature on the card, and either confirm that they are identical, or not. 3. Implement the method to show a user-interface where the attendant can choose between Confirmed or Not confirmed, for example by pressing a button. 4. The method must call either `submitConfirmedSignature:` or `submitUnconfirmedSignature:` on the `signatureRequest`, both with `nil` as the `signatureImage` parameter, to continue transaction processing. If the device does not have a printer: 1. Implement the method to display a user-interface on which the customer can draw a signature. 2. Implement the method to allow the attendant to confirm or deny the drawn signature after comparing it to the signature on the card - for example, by pressing a button. 3. The method must call either `submitConfirmedSignature:` or `submitUnconfirmedSignature:` on the given `signatureRequest`, both with the drawn image as `signatureImage` parameter. Instead of calling `submitConfirmedSignature:` or `submitUnconfirmedSignature:`, it is also possible to cancel the transaction at this point as usual, by calling `[ADYTransactionRequest requestCancel]`. After a transaction has been cancelled, subsequent calls to `submitConfirmedSignature:` or `submitUnconfirmedSignature:` will have no effect. ### Parameters | Name | Type | Required | Description | | ------------------ | ------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------- | | `signatureRequest` | ADYSignatureRequest | ![-white\_check\_mark-](/user/data/smileys/emoji/white_check_mark.png "-white_check_mark-") | Request-object used to continue transaction processing. | ### Declaration code example #### Objective-C ```objectivec - (void)transactionRequiresSignature:(ADYSignatureRequest *)signatureRequest; ``` #### Swift ```swift func transactionRequiresSignature(_ signatureRequest: ADYSignatureRequest!) ```