# CTI_DownloadReport() This subprocedure is used to download a report from the CyberSource REST reporting APIs. 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 report will be downloaded to an IFS file in the download directory specified in your CTICFGMCH record. For the CTI_REPORT_BATCHDETAIL and CTI_REPORT_EXCEPTIONDETAIL reports, this file can be parsed with the corresponding parsing subprocedure. If you are downloading a custom report, please reach out to our support team at isupport@katointegrations.com for guidance on parsing the downloaded report. 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_DownloadReport... D PR N Extproc('CTI_DownloadReport')` | 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 pDownloadReportDS... D LikeDS(CTI_DownloadReportDS_t)` | A data structure containing configuration information for the report to be downloaded **Required** | | ` D pErrorDS LikeDS(CTI_ErrorDS_t)` | Error data structure used to capture subprocedure and CyberSource errors **Required** | ## Data Structures ### CTI_DownloadReportDS_t | Field | Description | |---|---| | ` D CTI_DownloadReportDS_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 Inz(CTI_DEFAULT)` | Unique label to identify the security key in CTICFGRPT to be used **Default Value:** `CTI_DEFAULT` | | ` D OrganizationId... D Like(CTI_MerchantId_t)` | Organization under which the report was generated in the CyberSource business center | | ` D ReportName Like(CTI_ReportName_t)` | Name of the report to be downloaded. This can be one of the pre-defined constants, or any custom report name **Valid Values:** `CTI_REPORT_BATCHDETAIL`, `CTI_REPORT_EXCEPTIONDETAIL`, `text` | | ` D ReportDate D` | End date for the report | | ` 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 | |