Transaction Retry

An XML TransactionRetryRequest allows a vendor to retry a previous transaction (for example, to give a customer another chance to print a music file). For each transaction that needs to be retried, the vendor must supply a TransactionItem element containing the Transaction ID from a previous TransactionOpenRequest and an optional Quantity value. The Quantity is assumed to be 1 if not present and must not exceed the quantity of the original purchase.

The format of the TransactionRetryRequest and TransactionRetryResponse is the same for digital assets that are sold separately or as part of a package, i.e., there is no concept of a "Package" TransactionRetryRequest or TransactionRetryResponse. Each TransactionRetryRequest can contain multiple retry transaction request for one or more digital assets and each retry request specified by the TransactionItem element will correspond to one and only one digital asset. This digital asset can be a part of a package or a separately sold single digital sheet.

The contents of the XML TransactionRetryResponse is similar to the Sheet TransactionOpenResponse, i.e., for each transaction, a StatusCode, a new Transaction ID, and file-specific information will be specified in the response. A new Transaction ID will be specified by the TransactionId element and the Transaction ID from the previous TransactionOpenRequest will be the ParentTransactionId element.

Noteflight Vendors

See the Noteflight Vendors section on the Transaction Open page. The same information applies to the Transaction Retry. The important thing to keep in mind is that the "view" and "download" URLs in a TransactionOpenResponse are very short-lived and expire after only a few minutes. Therefore, anytime you want to display a customer's purchase, it is recommended that you issue a TransactionRetry request against the original sales transaction ID to get a fresh set of URLs.

Request / Response Examples

TransactionRetryRequest Example:

<?xml version="1.0"?>
<!DOCTYPE DAMRequest SYSTEM "https://haldms.halleonard.com/dam_dtd/DAMRequestVersion5.dtd">
<DAMRequest>
    <RequestHdr>
        <DAMVersion>5.0</DAMVersion>
        <VendorId>123</VendorId>
        <VendorKey>theKey123</VendorKey>
    </RequestHdr>
    <TransactionRetryRequest>
        <TransactionItem>
            <TransactionId>1122333</TransactionId>
            <Personalization>custname:John Customer</Personalization>
        </TransactionItem>
    </TransactionRetryRequest>
</DAMRequest>

TransactionRetryResponse Example:

<?xml version="1.0"?>
<!DOCTYPE DAMResponse SYSTEM "https://haldms.halleonard.com/dam_dtd/DAMResponseVersion5.dtd">
<DAMResponse>
    <ResponseHdr>
        <DAMVersion>5.0</DAMVersion>
        <VendorId>123</VendorId>
    </ResponseHdr>
    <TransactionRetryResponse>
        <TransactionItem>
            <AssetId>4000</AssetId>
            <OrderNumber>12345</OrderNumber>
            <OrderLineId>56789</OrderLineId>
            <TransactionId>1122444</TransactionId>
            <FileName>A_B_4000.sco</FileName>
            <FileType>SCORCH</FileType>
            <MimeType>application/x-sibelius-score</MimeType>   
            <FileURL>https://haldms.halleonard.com/sf/A_B_4000.sco</FileURL>
            <ParentTransactionId>1122333</ParentTransactionId>
            <ViewURL mimeType="text/xml">haldms.halleonard.com/nf/viewer/A39NVEXG5TPJ2TNUQ12DRJ8JX27X5WF6</ViewURL>
            <DownloadURL mimeType="application/pdf">haldms.halleonard.com/nf/download/F1U8PFF8RL2F5L2FHHQC8WJ65A7KK9YW</DownloadURL>
            <StatusCode>1</StatusCode>
            <StatusDescription>OK.</StatusDescription>
        </TransactionItem>
    </TransactionRetryResponse>
</DAMResponse>