{"title":"Determine the current and final tender state","category":"default","creationDate":1776961627,"content":"<p>Use the following methods to retrieve the current or final state of a tender.<\/p>\n<div class=\"sc-notice note\"><div>\n<p>The <code>pos_result_code<\/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.<\/p>\n<\/div><\/div>\n<h2 id=\"method\">Method<\/h2>\n<table style=\"width:100%;\"><colgroup><col style=\"width: 11%\"><col style=\"width: 88%\"><\/colgroup><thead><tr class=\"header\"><th><p>Name<\/p><\/th><th><p>Description<\/p><\/th><\/tr><\/thead><tbody><tr><td>\n<p><code>GetTenderState<\/code><\/p>\n<\/td><td>\n<p>Returns the current state result code. The first status to be checked during the transaction. If the tender state is not <code>OK<\/code>, something went wrong.<\/p>\n<\/td><\/tr><\/tbody><\/table>\n<h2 id=\"object\">Object<\/h2>\n<table>\n<thead>\n<tr>\n<th>Name<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>finalObj<\/code><\/td>\n<td>Run <code>GetFinalStateCode<\/code> against this object to get the final state of the transaction. Do this after the final transaction callback.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"method-1\">Method<\/h2>\n<table>\n<thead>\n<tr>\n<th>Name<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>GetResponseHeader<\/code><\/td>\n<td>Return the response header of the final object.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><code>GetResponseHeader<\/code> returns:<\/p>\n<h2 id=\"object-1\">Object<\/h2>\n<table>\n<thead>\n<tr>\n<th>Name<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>ResponseHdr<\/code><\/td>\n<td>Run <code>GetFinalStateCode<\/code> against this object to get the final state of the transaction. Do this after the final transaction callback<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"method-2\">Method<\/h2>\n<table>\n<thead>\n<tr>\n<th>Name<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td><code>GetTenderState<\/code><\/td>\n<td>Apply this to the response header of the final callback to return the final state of the transaction.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2 id=\"tenderstate-states\">In-progress tender states<\/h2>\n<table><thead><tr class=\"header\"><th><p>State<\/p><\/th><th><p>Description<\/p><\/th><\/tr><\/thead><tbody>\n<tr><td>\n<p>ACCOUNT_TYPE_SELECTED<\/p>\n<\/td><td>\n<p>The shopper has selected their preferred account type.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>ACKNOWLEDGED<\/p>\n<\/td><td>\n<p>The transaction is acknowledged, but not approved, declined, cancelled or failed in error.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>ADDITIONAL_DATA_AVAILABLE<\/p>\n<\/td><td>\n<p>Additional data (like card alias (token), card type and issuer country code) are available.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>APPLICATION_SELECTED<\/p>\n<\/td><td>\n<p>The shopper has selected their preferred payment application.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>ASK_CHARITY<\/p>\n<\/td><td>\n<p>The terminal is waiting for a possible donation.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>ASK_DCC<\/p>\n<\/td><td>\n<p>The terminal is checking if the shopper requires dynamic currency conversion.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>ASK_GRATUITY<\/p>\n<\/td><td>\n<p>The terminal is waiting for a possible gratuity.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>ASK_SIGNATURE<\/p>\n<\/td><td>\n<p>The terminal has requested a signature from the shopper.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>BALANCE_QUERY_ACQUIRED<\/p>\n<\/td><td>\n<p>Confirms the acquired balance and allows the user to take next steps.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>BALANCE_QUERY_COMPLETED<\/p>\n<\/td><td>\n<p>The request for card balance has completed.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>BALANCE_QUERY_STARTED<\/p>\n<\/td><td>\n<p>The terminal is requesting the balance on a card.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>CANCEL_OR_REFUND_COMPLETED<\/p>\n<\/td><td>\n<p>The cancellation or refund has completed.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>CARD_ACQ_COMPLETED<\/p>\n<\/td><td>\n<p>The terminal has acquired the card details.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>CARD_DETAILS_PROVIDED<\/p>\n<\/td><td>\n<p>The card details have been entered.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>CARD_INSERTED<\/p>\n<\/td><td>\n<p>A card was inserted.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>CARD_METHOD_SELECTED<\/p>\n<\/td><td>\n<p>A card is presented to the terminal for a contactless\/NFC transaction<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>CARD_MKE<\/p>\n<\/td><td>\n<p>The terminal is waiting for card details to be entered using <a href=\"\/get-started-with-adyen\/adyen-glossary\/#manual-keyed-entry-mke-keyed\">Manual Keyed Entry<\/a> (MKE). This is used as a fall back if chip and magnetic stripe are not working.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>CARD_PRESENTED<\/p>\n<\/td><td>\n<p>The shopper has presented the card to the terminal's contactless reader.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>CARD_REMOVED<\/p>\n<\/td><td>\n<p>A card was removed from the terminal.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>CARD_SWIPED<\/p>\n<\/td><td>\n<p>A card was swiped.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>CHARITY_ENTERED<\/p>\n<\/td><td>\n<p>The shopper responded to the donation prompt.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>CHECK_SIGNATURE<\/p>\n<\/td><td>\n<p>The terminal is waiting for the cashier to approve or decline the signature.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>DCC_ACCEPTED<\/p>\n<\/td><td>\n<p>The shopper accepted Dynamic Currency Conversion.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>DCC_REJECTED<\/p>\n<\/td><td>\n<p>The shopper rejected Dynamic Currency Conversion.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>GRATUITY_ENTERED<\/p>\n<\/td><td>\n<p>The gratuity amount was entered.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>INITIAL<\/p>\n<\/td><td>\n<p>A transaction was initiated.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>LOAD_COMPLETED<\/p>\n<\/td><td>\n<p>Loading a value on the card has completed.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>LOAD_STARTED<\/p>\n<\/td><td>\n<p>Loading a value on the card has started.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>PIN_ENTERED<\/p>\n<\/td><td>\n<p>The whole PIN was entered.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>PRINT_RECEIPT<\/p>\n<\/td><td>\n<p>the terminal is printing the receipt.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>PROCESSING_TENDER<\/p>\n<\/td><td>\n<p>The payment is being processed. The terminal shows a progress bar.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>PROVIDE_CARD_DETAILS<\/p>\n<\/td><td>\n<p>The terminal is waiting for card details.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>RECEIPT_PRINTED<\/p>\n<\/td><td>\n<p>A receipt was printed.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>REFERRAL<\/p>\n<\/td><td>\n<p>The acquirer sends a referral status.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>REFERRAL_CHECKED<\/p>\n<\/td><td>\n<p>The referral code was checked.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>SIGNATURE_CHECKED<\/p>\n<\/td><td>\n<p>The cashier has checked and confirmed the signature.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>TENDER_CREATED<\/p>\n<\/td><td>\n<p>The tender was created successfully.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>TENDER_FINAL<\/p>\n<\/td><td>\n<p>The tender was completed.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>WAIT_FOR_ACCOUNT_TYPE_SELECTION<\/p>\n<\/td><td>\n<p>The terminal is waiting for the shopper to select an account type.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>WAIT_FOR_AMOUNT_ADJUSTMENT<\/p>\n<\/td><td>\n<p>Waiting for an amount to be adjusted based on the gratuity.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>WAIT_FOR_APP_SELECTION<\/p>\n<\/td><td>\n<p>The terminal is waiting for the shopper to select a payment application.<\/p>\n<\/td><\/tr>\n<tr><td>\n<p>WAIT_FOR_PIN<\/p>\n<\/td><td>\n<p>A PIN is requested at the terminal.<\/p>\n<\/td><\/tr>\n<\/tbody><\/table>\n<h2 id=\"final-states\">Tender result<\/h2>\n<table><thead><tr class=\"header\"><th>State<\/th><th>Description<\/th><\/tr><\/thead><tbody>\n<tr><td>APPROVED<\/td><td>The transaction was approved.<\/td><\/tr>\n<tr><td>CANCELLED<\/td><td>The transaction was cancelled.<\/td><\/tr>\n<tr><td>DECLINED<\/td><td>The transaction was declined.<\/td><\/tr>\n<tr><td>ERROR<\/td><td>The transaction did not go through because an error occurred.<\/td><\/tr>\n<\/tbody><\/table>","url":"https:\/\/docs.adyen.com\/pt\/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","articleFields":{"id":"25151876","type":"page","_expandable":{"operations":""},"status":"current"},"algolia":{"url":"https:\/\/docs.adyen.com\/pt\/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","title":"Determine the current and final tender state","content":"Use the following methods to retrieve the current or final state of a tender.\n\nThe 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.\n\nMethod\nNameDescription\nGetTenderState\n\nReturns the current state result code. The first status to be checked during the transaction. If the tender state is not OK, something went wrong.\n\nObject\n\n\n\nName\nDescription\n\n\n\n\nfinalObj\nRun GetFinalStateCode against this object to get the final state of the transaction. Do this after the final transaction callback.\n\n\n\nMethod\n\n\n\nName\nDescription\n\n\n\n\nGetResponseHeader\nReturn the response header of the final object.\n\n\n\nGetResponseHeader returns:\nObject\n\n\n\nName\nDescription\n\n\n\n\nResponseHdr\nRun GetFinalStateCode against this object to get the final state of the transaction. Do this after the final transaction callback\n\n\n\nMethod\n\n\n\nName\nDescription\n\n\n\n\nGetTenderState\nApply this to the response header of the final callback to return the final state of the transaction.\n\n\n\nIn-progress tender states\nStateDescription\n\nACCOUNT_TYPE_SELECTED\n\nThe shopper has selected their preferred account type.\n\n\nACKNOWLEDGED\n\nThe transaction is acknowledged, but not approved, declined, cancelled or failed in error.\n\n\nADDITIONAL_DATA_AVAILABLE\n\nAdditional data (like card alias (token), card type and issuer country code) are available.\n\n\nAPPLICATION_SELECTED\n\nThe shopper has selected their preferred payment application.\n\n\nASK_CHARITY\n\nThe terminal is waiting for a possible donation.\n\n\nASK_DCC\n\nThe terminal is checking if the shopper requires dynamic currency conversion.\n\n\nASK_GRATUITY\n\nThe terminal is waiting for a possible gratuity.\n\n\nASK_SIGNATURE\n\nThe terminal has requested a signature from the shopper.\n\n\nBALANCE_QUERY_ACQUIRED\n\nConfirms the acquired balance and allows the user to take next steps.\n\n\nBALANCE_QUERY_COMPLETED\n\nThe request for card balance has completed.\n\n\nBALANCE_QUERY_STARTED\n\nThe terminal is requesting the balance on a card.\n\n\nCANCEL_OR_REFUND_COMPLETED\n\nThe cancellation or refund has completed.\n\n\nCARD_ACQ_COMPLETED\n\nThe terminal has acquired the card details.\n\n\nCARD_DETAILS_PROVIDED\n\nThe card details have been entered.\n\n\nCARD_INSERTED\n\nA card was inserted.\n\n\nCARD_METHOD_SELECTED\n\nA card is presented to the terminal for a contactless\/NFC transaction\n\n\nCARD_MKE\n\nThe terminal is waiting for card details to be entered using Manual Keyed Entry (MKE). This is used as a fall back if chip and magnetic stripe are not working.\n\n\nCARD_PRESENTED\n\nThe shopper has presented the card to the terminal's contactless reader.\n\n\nCARD_REMOVED\n\nA card was removed from the terminal.\n\n\nCARD_SWIPED\n\nA card was swiped.\n\n\nCHARITY_ENTERED\n\nThe shopper responded to the donation prompt.\n\n\nCHECK_SIGNATURE\n\nThe terminal is waiting for the cashier to approve or decline the signature.\n\n\nDCC_ACCEPTED\n\nThe shopper accepted Dynamic Currency Conversion.\n\n\nDCC_REJECTED\n\nThe shopper rejected Dynamic Currency Conversion.\n\n\nGRATUITY_ENTERED\n\nThe gratuity amount was entered.\n\n\nINITIAL\n\nA transaction was initiated.\n\n\nLOAD_COMPLETED\n\nLoading a value on the card has completed.\n\n\nLOAD_STARTED\n\nLoading a value on the card has started.\n\n\nPIN_ENTERED\n\nThe whole PIN was entered.\n\n\nPRINT_RECEIPT\n\nthe terminal is printing the receipt.\n\n\nPROCESSING_TENDER\n\nThe payment is being processed. The terminal shows a progress bar.\n\n\nPROVIDE_CARD_DETAILS\n\nThe terminal is waiting for card details.\n\n\nRECEIPT_PRINTED\n\nA receipt was printed.\n\n\nREFERRAL\n\nThe acquirer sends a referral status.\n\n\nREFERRAL_CHECKED\n\nThe referral code was checked.\n\n\nSIGNATURE_CHECKED\n\nThe cashier has checked and confirmed the signature.\n\n\nTENDER_CREATED\n\nThe tender was created successfully.\n\n\nTENDER_FINAL\n\nThe tender was completed.\n\n\nWAIT_FOR_ACCOUNT_TYPE_SELECTION\n\nThe terminal is waiting for the shopper to select an account type.\n\n\nWAIT_FOR_AMOUNT_ADJUSTMENT\n\nWaiting for an amount to be adjusted based on the gratuity.\n\n\nWAIT_FOR_APP_SELECTION\n\nThe terminal is waiting for the shopper to select a payment application.\n\n\nWAIT_FOR_PIN\n\nA PIN is requested at the terminal.\n\n\nTender result\nStateDescription\nAPPROVEDThe transaction was approved.\nCANCELLEDThe transaction was cancelled.\nDECLINEDThe transaction was declined.\nERRORThe transaction did not go through because an error occurred.\n","type":"page","locale":"pt","boost":13,"hierarchy":{"lvl0":"Home","lvl1":"Terminais","lvl2":"Deprecation of classic libraries","lvl3":"Library integrations","lvl4":"COM extension for Windows integration","lvl5":"Key steps","lvl6":"Process a basic transaction","lvl7":"Determine the current and final tender state"},"hierarchy_url":{"lvl0":"https:\/\/docs.adyen.com\/pt","lvl1":"https:\/\/docs.adyen.com\/pt\/point-of-sale","lvl2":"https:\/\/docs.adyen.com\/pt\/point-of-sale\/classic-library-deprecation","lvl3":"https:\/\/docs.adyen.com\/pt\/point-of-sale\/classic-library-deprecation\/classic-library-integrations","lvl4":"https:\/\/docs.adyen.com\/pt\/point-of-sale\/classic-library-deprecation\/classic-library-integrations\/com-extension-for-windows-integration","lvl5":"https:\/\/docs.adyen.com\/pt\/point-of-sale\/classic-library-deprecation\/classic-library-integrations\/com-extension-for-windows-integration\/key-steps-com-extension","lvl6":"https:\/\/docs.adyen.com\/pt\/point-of-sale\/classic-library-deprecation\/classic-library-integrations\/com-extension-for-windows-integration\/key-steps-com-extension\/process-a-basic-transaction-com-extension","lvl7":"\/pt\/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"},"levels":8,"category":"In-person payments","category_color":"green","tags":["Determine","current","final","tender","state"]}}
