--- title: "Determine the current and final tender state" url: "https://docs.adyen.com/point-of-sale/classic-library-deprecation/classic-library-integrations/com-extension-for-windows-integration/key-steps-com-extension/process-a-basic-transaction-com-extension/determine-the-current-and-final-tender-state-com-extension" source_url: "https://docs.adyen.com/point-of-sale/classic-library-deprecation/classic-library-integrations/com-extension-for-windows-integration/key-steps-com-extension/process-a-basic-transaction-com-extension/determine-the-current-and-final-tender-state-com-extension.md" canonical: "https://docs.adyen.com/point-of-sale/classic-library-deprecation/classic-library-integrations/com-extension-for-windows-integration/key-steps-com-extension/process-a-basic-transaction-com-extension/determine-the-current-and-final-tender-state-com-extension" last_modified: "2026-05-23T12:56:20+02:00" language: "en" --- # Determine the current and final tender state [View source](/point-of-sale/classic-library-deprecation/classic-library-integrations/com-extension-for-windows-integration/key-steps-com-extension/process-a-basic-transaction-com-extension/determine-the-current-and-final-tender-state-com-extension.md) Use the following methods to retrieve the current or final state of a tender. The `pos_result_code` visible in your logs refers to the result of communication between the library and the PED and does not represent the final state of a transaction. ## Method | Name | Description | | ---------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | | `GetTenderState` | Returns the current state result code. The first status to be checked during the transaction. If the tender state is not `OK`, something went wrong. | ## Object | Name | Description | | ---------- | ------------------------------------------------------------------------------------------------------------------------------------ | | `finalObj` | Run `GetFinalStateCode` against this object to get the final state of the transaction. Do this after the final transaction callback. | ## Method | Name | Description | | ------------------- | ----------------------------------------------- | | `GetResponseHeader` | Return the response header of the final object. | `GetResponseHeader` returns: ## Object | Name | Description | | ------------- | ----------------------------------------------------------------------------------------------------------------------------------- | | `ResponseHdr` | Run `GetFinalStateCode` against this object to get the final state of the transaction. Do this after the final transaction callback | ## Method | Name | Description | | ---------------- | ----------------------------------------------------------------------------------------------------- | | `GetTenderState` | Apply this to the response header of the final callback to return the final state of the transaction. | ## In-progress tender states | State | Description | | ----------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | ACCOUNT\_TYPE\_SELECTED | The shopper has selected their preferred account type. | | ACKNOWLEDGED | The transaction is acknowledged, but not approved, declined, cancelled or failed in error. | | ADDITIONAL\_DATA\_AVAILABLE | Additional data (like card alias (token), card type and issuer country code) are available. | | APPLICATION\_SELECTED | The shopper has selected their preferred payment application. | | ASK\_CHARITY | The terminal is waiting for a possible donation. | | ASK\_DCC | The terminal is checking if the shopper requires dynamic currency conversion. | | ASK\_GRATUITY | The terminal is waiting for a possible gratuity. | | ASK\_SIGNATURE | The terminal has requested a signature from the shopper. | | BALANCE\_QUERY\_ACQUIRED | Confirms the acquired balance and allows the user to take next steps. | | BALANCE\_QUERY\_COMPLETED | The request for card balance has completed. | | BALANCE\_QUERY\_STARTED | The terminal is requesting the balance on a card. | | CANCEL\_OR\_REFUND\_COMPLETED | The cancellation or refund has completed. | | CARD\_ACQ\_COMPLETED | The terminal has acquired the card details. | | CARD\_DETAILS\_PROVIDED | The card details have been entered. | | CARD\_INSERTED | A card was inserted. | | CARD\_METHOD\_SELECTED | A card is presented to the terminal for a contactless/NFC transaction | | CARD\_MKE | The terminal is waiting for card details to be entered using [Manual Keyed Entry](/get-started-with-adyen/adyen-glossary/#manual-keyed-entry-mke-keyed) (MKE). This is used as a fall back if chip and magnetic stripe are not working. | | CARD\_PRESENTED | The shopper has presented the card to the terminal's contactless reader. | | CARD\_REMOVED | A card was removed from the terminal. | | CARD\_SWIPED | A card was swiped. | | CHARITY\_ENTERED | The shopper responded to the donation prompt. | | CHECK\_SIGNATURE | The terminal is waiting for the cashier to approve or decline the signature. | | DCC\_ACCEPTED | The shopper accepted Dynamic Currency Conversion. | | DCC\_REJECTED | The shopper rejected Dynamic Currency Conversion. | | GRATUITY\_ENTERED | The gratuity amount was entered. | | INITIAL | A transaction was initiated. | | LOAD\_COMPLETED | Loading a value on the card has completed. | | LOAD\_STARTED | Loading a value on the card has started. | | PIN\_ENTERED | The whole PIN was entered. | | PRINT\_RECEIPT | the terminal is printing the receipt. | | PROCESSING\_TENDER | The payment is being processed. The terminal shows a progress bar. | | PROVIDE\_CARD\_DETAILS | The terminal is waiting for card details. | | RECEIPT\_PRINTED | A receipt was printed. | | REFERRAL | The acquirer sends a referral status. | | REFERRAL\_CHECKED | The referral code was checked. | | SIGNATURE\_CHECKED | The cashier has checked and confirmed the signature. | | TENDER\_CREATED | The tender was created successfully. | | TENDER\_FINAL | The tender was completed. | | WAIT\_FOR\_ACCOUNT\_TYPE\_SELECTION | The terminal is waiting for the shopper to select an account type. | | WAIT\_FOR\_AMOUNT\_ADJUSTMENT | Waiting for an amount to be adjusted based on the gratuity. | | WAIT\_FOR\_APP\_SELECTION | The terminal is waiting for the shopper to select a payment application. | | WAIT\_FOR\_PIN | A PIN is requested at the terminal. | ## Tender result | State | Description | | --------- | ------------------------------------------------------------- | | APPROVED | The transaction was approved. | | CANCELLED | The transaction was cancelled. | | DECLINED | The transaction was declined. | | ERROR | The transaction did not go through because an error occurred. |