# CTI_QueryTransaction() This subprocedure is used to query a transaction using the CyberSource REST Transaction Query API. This subprocedure requires a record for your merchant ID in CTICFGRPT, and you must populate the record with a shared and secret key pair for use with CyberSource's HTTP Signature Authentication. For more information on generating these keys, please see this guide from CyberSource: [Create a Shared Secret Key for HTTP Signature Authentication](https://developer.cybersource.com/api/developer-guides/dita-gettingstarted/authentication/createSharedKey.html) The [ADDRPTKEY](https://isupport.katointegrations.com/cti/addrptkey.md) command can be used to easily create a record for your merchant ID and generated security keys in CTICFGRPT. The query response will be downloaded to an IFS file in the download directory specified in your CTICFGMCH record. This file can be parsed with the [CTI_ParseTransactionQuery()](https://isupport.katointegrations.com/cti/cti_parsetransactionquery.md) subprocedure. If an error occurs, this subprocedure will return *OFF, and information about the error will be present in the pErrorDS parameter which contains a CTI_ErrorDS_t data structure. ## Subprocedure Prototype | Field | Description | |---|---| | ` D CTI_QueryTransaction... D PR N Extproc('CTI_QueryTransaction')` | Returns *OFF if an error occurs during processing, *ON otherwise. | | ` D pUniqueId Const Like(CTI_UniqueId_t)` | Unique ID generated with CTI_NextUniqueID() **Required** | | ` D pQueryTransactionDS... D LikeDS(CTI_QueryTransactionDS_t)` | A data structure containing configuration information for the query to be performed **Required** | | ` D pErrorDS LikeDS(CTI_ErrorDS_t)` | Error data structure used to capture subprocedure and CyberSource errors **Required** | ## Data Structures ### CTI_QueryTransactionDS_t | Field | Description | |---|---| | ` D CTI_QueryTransactionDS_t... D DS Qualified Template Inz` | | | ` D MerchantId Like(CTI_MerchantId_t)` | Merchant ID used to process the transaction **Required** | | ` D Environment 5A` | CyberSource environment where the report will be retrieved from **Required** **Valid Values:** `CTI_ENV_PROD`, `CTI_ENV_TEST` | | ` D KeyLabel 50A Varying` | Unique label to identify the security key in CTICFGRPT to be used **Default Value:** `CTI_DEFAULT` | | ` D TransactionId 50A Varying` | CyberSource unique identifier for the transaction to be queried | | ` D Filepath Like(CTI_FilePath_t)` | Name of the file where the report will be downloaded. This file will be saved in the default download directory set for the specified merchant ID in CTICFGMCH | ### CTI_ErrorDS_t | Field | Description | |---|---| | ` D CTI_ErrorDS_t DS Qualified Template Inz` | | | ` D Subproc 132A Varying` | Name of subprocedure returning error | | ` D MessageId 7A` | Message ID of error message | | ` D Message 1024A Varying` | Error message text | | ` D Source 10A` | Error message source | | ` D LogFile Like(CTI_FilePath_t)` | IFS filepath of generated log file | ## Input Table Files ### CTICFGRPT | Field Name | Long Field Name | Data Type | Field Title | Comments | |---|---|---|---|---| | `MERCHANTID` | `MERCHANTID` | `VARCHAR(30)` | Merchant ID | | | `ENV` | `ENVIRONMENT` | `VARCHAR(5)` | CyberSource Environment | | | `KEYLABEL` | `KEYLABEL` | `VARCHAR(50)` | Key Label | | | `SHAREDKEY` | `SHAREDKEY` | `VARCHAR(36)` | Shared Key | | | `SECRETKEY` | `SECRETKEY` | `VARCHAR(50)` | Secret Key | |