Search docs

Are you looking for test card numbers?

Would you like to contact support?

Start searching Adyen's documentation...


Handle the final state callback

Implement the tender finished callback

Implement the tender_finished_cb, assign to the function pointer status_tender_final. For more information on how to do this, see Implement callbacks with register_device_request


Finally, the system returns the tender_finished_cb callback that contains the final transaction result. Another transaction can only be started when the final transaction result is received.


Name Description
final_strct Pointer to a final_strct struct that defines the final outcome of the transaction. For included parameters and more information, see the final_strctpage.
ped_device_info Pointer to a ped_device_info struct that defines the status and details of the PED. For included parameters and more information, see the ped_device_info page.
echo_struct Pointer to a struct set by the POS in the device_callbacks struct is echoed back in this struct.

Transaction information is returned in the response_header struct.

The state is an enum of type TENDER_STATE and defines the final outcome of the transaction, it can be one of the following:


This is different from ped_result_code APPROVED.

The pos_result_code, an enum of type POS_RESULT_CODE, represents the response from the issuer. If the state is FINAL_STATE_DECLINEDFINAL_STATE_CANCELLED or FINAL_STATE_ERROR, additional information is available.  

Additional information might also be available in refusal_reason and/or error_message

As card approval is still required, the POS result code is not the final result of the transaction.