This version 3.0 of the Flat File Variant has been developed in response to concerns regarding the file size and computational complexity of the XML Variant, and will lead to reduced implementation and running cost for Licensees and Licensors
This standard defines the principles of the Flat File Variant of the Digital Sales Reporting Message Suite Standard. It is accompanied by a series of standards that define Profile-specific messages based on this standard.
Any organisation wishing to implement this (or any other DDEX standard) is required to apply for an Implementation Licence. The terms of the licence and an application form can be found on https://ddex.net/implementation/implementation-licence-and-ddex-party-identifiers.
The Flat File Variant is intended to provide a format for reporting information about the level of usage, revenue or sales generated from the exploitation of Releases and Resources for companies that do not wish to handle XML-formatted sales/usage reports.
This Part defines the architecture of the Flat File Variant of the Digital Sales Reporting Message Suite Standard. Specific Sales Report Messages, for well-defined Profiles, are defined in separate DDEX standards.
Clause 7 then provides information on how to communicate sales/usage reports for different Profiles in accordance with this standard. Finally, defines how to transmit a Flat File Sales Reporting Message using SFTP.
Version 1.1 of the Architecture for this 3rd version of the Digital Sales Reporting Message Suite Standard allows communicating the version of Parts 2 (Allowed Value Sets) and 8 (Record Type Definition) that has been used to create a sales/usage report and strengthened the choreography and acknowledgement process.
Version 1.2 of the Architecture for this 3rd version of the Digital Sales Reporting Message Suite Standard allows sender and recipients to agree a different file size limit than defined in this standard. Version 1.2 also makes handling of secondary delimiters easier.
3 Normative References
The following normative documents contain provisions, which through reference in this text constitute provisions of this standard. For dated references, subsequent amendments to, or revisions of, any of these publications do not apply. For undated references, the latest version applies.
- DDEX Data Dictionary Standard. Latest Version
- DDEX Party Identifier (DPID) Standard. Latest Version
- DDEX, Digital Sales Reporting Message Suite Standard - Part 8: Record Type Definitions
- IETF. RfC2026. SSH File Transfer Protocol. October 2001
- IFPI. Global Release Identifier (GRid) Standard. Latest Version
- ISO 639-1:2002. Codes for the representation of names of languages — Part 1: Alpha-2 code. 2002
- ISO 3166-1:1997. Codes for the representation of names of countries and their subdivisions – Part 1: Country codes. 1997
- ISO 3901:2001. Information and documentation – International Standard Recording Code (ISRC). 2001
- ISO 4217:2001. Codes for the representation of currencies and funds. Latest Version
- ISO 8601: Data elements and interchange formats – Information interchange – Representation of dates and times. Latest Version
- ISO 15707:2001. Information and documentation -- International Standard Musical Work Code (ISWC). 2001
- ISO/IEC 10646, Information technology — Universal multiple-octet coded character set (UCS). Latest Version
4 Terms and Abbreviations
A group of Records in a Sales Report Message created in accordance with this standard, comprising the description of a “head” Release or Resource, its constituent Resource(s), any Releases that were created by the Message Sender based on the head Release (including single-track Releases), plus any associated Usage, Revenue or Sales Records. All Records in a Block carry the same Block Identifier and all Records with the same Record Identifier belong to the same Block.
All Records of a Block are contiguously provided in the Sales Report Message created in accordance with this standard.
A Block collates all Records within a report created in accordance with this standard that describe all Usage, Revenue or Sales of the “head” Release and its constituent parts or “head” Resource (notwithstanding summary Records and information contained in the header record,
The identifier of a Block shall be unique within a Sales Report Message created in accordance with this standard.
An individual data element in a Record. Cells are separated by Delimiters.
An entity in a DDEX Message that has the technical cardinality of 0-1 or 0-n but that is mandatory when a DDEX message is sent in a specific commercial context.
Contractually Mandatory fields may, however, be mandatory when a DDEX message is sent in a specific commercial context. In such circumstances, a message is deemed conformant only if and when it contains all the “contractually mandatory” fields as agreed by Message Sender and Message Recipient.
A character that delineates, in a flat file, either one Record from another Record or one Cell from another Cell.
Note: there are also Secondary Delimiters used in this standard.
Flat File Sales Report Messages (DSRF)
A Sales Report Message created in accordance with the Digital Sales Reporting Message Suite Standards (Architecture and Profiles). A Flat File Sales Report Message may be split into several individual files.
A Release, originally communicated by the owner (or its agent) of a sound recording or audio-visual recording to a Licensee who then distributed that Release to consumers, whose Usage, Revenue or Sales are described in a Sales Report Message created in accordance with this standard.
A Resource whose Usage, Revenue or Sales are described in a Sales Report Message created in accordance with this standard. Head Resources are not communicated as part of a Head Release.
A Party that is granted a Licence in respect of rights in one or more Creations, by a Licensor. The Licensee may be a human being or other legal person or corporate entity. The Licensee may or may not be the Message Sende or Message Recipient of a message in a specific information exchange defined by a DDEX Standard.
A Party that grants a Licence in respect of rights in one or more Creations to one or more Licensees in accordance with the authorities it has been granted to do so by one or more Rights Controller(s), Rights Administrator(s) (where applicable), Licensing Agent(s) (where applicable) or Rights Holder(s). The Licensor may be a human being or other legal person or corporate entity. The Licensor may or may not also be the Rights Controller, the Rights Administrator, the Licensing Agent or the Rights Holder in the Creation(s) that are the subject of the Licence granting the rights. The Licensor may or may not be the Message Sender or Message Recipient of a message in a specific information exchange defined by a DDEX Standard.
A variant of a Sales/Usage report in accordance with this standard where descriptive metadata and sales/usage figures are provided in Blocks of (usually) comprising multiple Records. Multi-Record-Block Variant is the default variant for sales/usage reports in accordance with this standard.
A Work intended to be perceivable as a combination of sounds, with or without accompanying text.
Any words that are intended to be expressed with a MusicalWork (often termed Lyrics) form part of that MusicalWork; not all MusicalWorks have Lyrics.
A MusicalWork may be expressed and fixed to become part of a SoundRecording or a Video Recording, or may be used to create notated music (sheet music, scores, instrumental parts) or sound generation codes (such as MIDI files).
In some cases, the MusicalWork comes into existence simultaneously with its expression. This is common in extemporised forms such as jazz music.
A subset of a DDEX standard. Profiles define how to use the capabilities of a DDEX standard in a specific commercial context.
A Release is an abstract entity representing a bundle of one or more Resources compiled by an Issuer. The Resources in Releases are normally primarily sound recordings or music audio-visual recordings, but this is not invariably the case. The Release is not itself the item of trade (or “Product”). Products have more extensive attributes than Releases; one Release may be disseminated in many different Products.
A digital fixation of an expression of an abstract Work (such as a sound recording, a video, an image, software or a passage of text). Resources are individual assets that make up a Release. Typical Resources are sound recordings, video clips and cover art images.
The amount of money generated in accordance with the commercial relationship between Licensee and Licensor for the distribution of Releases to consumers.
- MultiExcerpt named 'RightsController' was not found
Distribution of a product to end consumers. For the avoidance of doubt, the term “sales” includes all forms of distribution of products, whether revenue was generated, or not and, where revenue is generated, regardless of the business model used to do so.
Sales/Usage Report Message
See Flat File Sales Report Messages (DSRF).
The combination of one or more territories, one or more currencies, one or more use types, one or more commercial model types and/or one or more service descriptions for which a sales/usage report is being created.
The combination of one territory, one currency, one use types, one commercial model types and one service descriptions for which a sales/usage report is being created. It is permissible, subject to both parties agreeing, to communicate multiple Sales Contexts in one sales/usage report.
Delimiter used to separate data elements within a single Cell.
A variant of a Sales/Usage report in accordance with this standard where all descriptive metadata as well as sales/usage figures for each sales "line" into a single Record. Each Single-Record-Block Variant has been derived from a Multi-Record Block Variant by collapsing Blocks into single
SRxx Records. The base Multi-Record Block Variant does not have to be published as a DDEX standard.
A Release that is being created from one or more of the primary Resources of a Head Release, typically by the Message Sender.
For the purpose of this standard these Sub-Releases are being created by the Message Sender who is making Releases, and tracks from such Releases, available to consumers. These “unbundled tracks”, that is, all the tracks from a Release each made available separately, are the simplest form of Sub-Releases.
The identification of the Releases and Resources that actually get exploited by Licensees exercising a range of business and delivery models for the distribution of Releases to consumers, including the amount of use of each Release or Resource.
|AMEP||Automated Message Exchange Protocol|
|ACA||Appointed Certification Agency|
|AVS||Allowed Value Set|
Confédération internationale des sociétés d'auteurs et compositeurs, the International Confederation of Societies of Authors and Composers (see cisac.org)
|DAW||Digital Audio Workstation|
Digital Data Exchange
|DSP||Digital Service Provider (incudes Mobile Service Providers)|
|DSR||Digital Sales Reporting|
|ERN||Electronic Release Notification|
|FTP||File Transfer Protocol (FTP specifically includes SFTP)|
|GRid||Global Release Identifier|
|HTTP||Hypertext Transport Protocol (HTTP specifically includes HTTPS)|
|HTTPS||Secure Hypertext Transport Protocol|
|IEC||International Electrotechnical Commission (see iec.ch)|
|ISO||International Organisation for Standardisation (see iso.org)|
|MIME||Multipurpose Internet Mail Extensions|
|MLC||Music Licensing Company|
|MWL||Musical Works Licensing|
|MWN||Musical Works Notification|
|PCA||Private Certification Agency|
|Portable Document Format|
|RIN||Recording Information Notification|
|TIS||Territory Information System (a CISAC Standard)|
|TLS||Transport Layer Security|
|URL||Uniform Resource Locator|
|XML||eXtensible Markup Language|
|XSD||XML Schema Definition|
|W3C||World Wide Web Consortium (see w3c.org)|
The use of the Acknowledgement Message as defined in this standard is optional and the invoice message, although shown in Figure 1 and Table 1 is not defined in this standard.
Figure 1 – Choreography of the Flat File Variant of the Digital Sales Reporting Message Suite Standard
Table 1 – Messages in the Flat File Variant of the Digital Sales Reporting Message Suite Standard
|Message Name||Initiating Event||Sender||Recipient|
Sales Report Message
Usage or sale of Releases, and/or the generation of revenues related to the usage or sale of Releases
Licensee, typically a DSP
Works Licensor (typically a Music Rights Society or Licensor) or Release Creator, typically a Record Company or Music Licensing Company
Automated acknowledgement of receipt of a Sales Report Message file; the acknowledgement message does not acknowledge the validity or quality of the Sales Report Message file(s) received.
This message is optional.
If a Sales Report is communicated in multiple files, one Acknowledgement Message should be sent for each file.
Works Licensor (typically a Music Rights Society or Music Publisher) or Release Creator, typically a Record Company or Music Licensing Company
Licensee (typically a DSP)
Invoice in reply to the Sales Report Message; the invoice message is out of scope for this standard.
Works Licensor (typically a Music Rights Society or Licensor) or Release Creator, typically a Record Company or Music Licensing Company
Licensee (typically a DSP)
Note that the Record Types of the Sales Report Message are defined in two places: Common Record Types are defined in this standard whereas all other Record Types are defined in separate standards.
In that case these Sales Report Messages are considered independent from each other and shall each be communicated in accordance with the choreography defined in Clause 5.1.
- Exactly one header Record of type
HEADas defined in Part 8 of this standard.;
- One or more Records in accordance with the relevant Profile Standard that provide summary information about the transactions listed in item 3 below ;
- None, one or more Blocks of Records in accordance to the relevant Profile Standard that provide detailed information about transacted Releases/Resources/Works and the Usage, Revenue or Sales of such transacted Releases/Resources/Works; and
- Exactly one Footer Record of type
FOOTas defined in Part 8 of this standard.
This structure is shown in the Figure 2 (note: the indentation is for illustration purposes only).
Figure 2 – Overall structure of a Sales/Usage Report Message created in accordance with this standard
It is permissible to send a Sales Report Message with just a header Record of type
HEAD and a Footer Record of type
FOOT and no other Records. This would indicate that no Usage, Revenue or Sales are being reported.
- All files shall start with a header record of type
HEADas defined in Part 8 of this standard. Some data in some of the Cells in the header record will vary between the various files;
- All files shall have the same set of Summary Records containing summary information for the entire multi-file Sales Report Message (for the avoidance of doubt: the sets in the various files shall all contain the same data);
- All files shall have one or more Blocks;
- All files shall end with a footer record of type
FOOTas defined in Part 8 of this standard. Some data in some of the Cells in the footer record will vary between the various files.
Blocks may not be split between files and may not be repeated in different files of the same Sales Report Message.
The last file can be determined in the
HEAD record by comparing the
This structure is shown in the diagram below (note: the indentation and spacing is for illustration purposes only).
Figure 3 – Overall structure of a Multi-file Sales/Usage Report Message in accordance with this standard
The main portion of a Sales Report Messages created in accordance with this standard is organised in Blocks. Each Block contains all the information about the “item of trade” that allows the Message Recipient to identify the content used, followed by the usage, revenue or sales information.
All Records of a Block are contiguously provided in the Sales Report Message created in accordance with this standard; it is not permitted to "interlace" Blocks.
All Blocks contain a
BlockID Cell. The first Block in the Sales Report Messages shall have a
BlockID containing the value 1, the next Block shall have a
BlockID containing the value 2, etc.
This mechanism allows all Records in a Block to be associated with one another. If, for instance, a Block contains a Head Release, a number or Resources and a few Sub-Releases, the
BlockID can be used to link the Sub-Releases to the Head Release. Together with the
ReleaseRecord Cell, the
BlockID also allows to unambiguously link a Sub-Release to its containing Resources.
6.4.4 Linking Sales/Usage Records to Release and Resource Records
In cases where a Block can contain more than one Release or Resource that might have been used or transacted, the Sales/Usage Record needs to indicate the Release (or Resource) it provides Usages, Revenues or Sales for. This is effected by providing the content of the
ReleaseReference Cell (or
ResourceReference Cell) of the used Release (or Resource) in the
TransactedRelease Cell (or
TransactedResource Cell) of a Sales/Usage Record.
6.4.5 Linking Blocks to Summary Records
All Blocks contain Records that report Usages, Revenues or Sales. It is essential for a Message Recipient to be able determine to which Summary Record such Usage/Revenue/Sales Records contribute. To allow this, all Summary Records contain a
SummaryRecordId Cell that Usage/Revenue/Sales Records can point to. Figure 4 shows an excerpt from a Sales Report Message in which two different types of exploitation (see Clause 6.5 for details) are being reported with respect to two different Releases (reported in Records of Type
Figure 4 – Linking Blocks to Summary Records (Example)
 In some profiles it may be valid to send Blocks without any such Records.
Where more than one sales context is reported in a single Sales Report Message, Message Sender and Message Recipient both must agree how this is managed. Specifically, if either Message Sender or Message Recipient is unable to either create or ingest such multi-featured Sales Report Messages, it is not permitted to use that approach. In that case only one sales context, which would either be evident from the relevant Summary Record or agreed between Sender and Recipient, shall be contained in a Sales Report Message.
188.8.131.52 Record Delimiter
Each Record is being placed into one line terminated by a line feed (Unicode U+000A) or a carriage return and line feed pair (Unicode U+000D 000A).
184.108.40.206 Primary (Cell) Delimiter
Cells within a Record are separated by tab characters (Unicode U+0009).
220.127.116.11 Secondary Delimiter
Should a Cell contain two or more data elements, these data elements shall be separated by a pipe character (Unicode U+007C). This is referred to as a Secondary Delimiter.
All data elements in a multi-value Cell shall be of the same primitive data type.
18.104.22.168 Namespace Delimiter
Should a Cell contain a data element whose providence needs to be provided, the data element shall be preceded by a string that provides a "namespace" and two colon characters (Unicode U+003A). The double colon is referred to as a Namespace Delimiter.
Examples include specifically identifiers where, e.g., a party ID can be communicated as "
ISNI::0000000081266409", indicating that the identifier (0000000081266409) is an International Standard Name Identifier (ISNI).
22.214.171.124 Spaces and Delimiters (I)
Delimiters shall not be surrounded by extra space characters. The same principle applies to the Secondary Delimiter.
Example: The writer pair Lennon/McCartney should be communicated as "
Lennon|McCartney" and not as "
Lennon | McCartney".
126.96.36.199 Spaces and Delimiters (II)
If a Message Sender has received data with extra white spaces, they are encouraged to trim any such extra white space characters when compiling a Sales/Usage Report. They may, however, also use the data with these extra white space characters in such cases. The same principle applies to the Secondary Delimiter.
Example: When the Message Sender received Lennon as “Lennon “ and McCartney as “McCartney “, then the writer pair may be communicated as “
Lennon |McCartney “).
To escape a primary Delimiter, the escaping code is the backslash character (Unicode U+005C). Therefore the string A[TAB]B would have to be communicated as
[TAB] representing the tabulator).
To escape a secondary Delimiter, the escaping code is a double backslash character (Unicode U+005C). Therefore the string A|B would have to be communicated as
To communicate a backslash character, three
two backslash characters need to be communicated. Therefore the string A\B would have to be communicated as
This “escaping mechanism” must be used for all special characters in all Cells, whether those Cells allow multiple values or not. A non-escaped pipe character in a single-value cell is, consequently, an error.
For the avoidance of doubt, escaping a character that should not be escaped, or not escaping a character that should have been escaped, will lead to an invalid sales/usage report.
Table 2 – Primitive Data Types
A sequence of characters with a length of at least one character. This standard does not define a maximum length. Strings may not contain non-printable characters (Unicode U+0000 to U+001F).
A string containing either “true” or “false”
A sequence of digits to represent positive or negative integer numbers, or zero.
Details on the range of integers are provided in Clause 6.6.11.
A sequence of digits to represent positive or negative integer numbers, positive or negative decimal fractions or zero.
The character used to separate the integers from fractions is the dot (“.”, Unicode U+002E).
Thousands separators or any other digit grouping shall not be used.
Details on the precision of decimals are provided in Clause 6.6.11.
Note, this was referred to as "float" in previous versions.
A date in the ISO 6801 format to indicate a single year (YYYY), month (YYYY-MM) or day (YYYY-MM-DD).
A duration in the ISO 6801 format (P[nY][nM][nD][T[nH][nM]nS]).
Elements including their designator may be omitted if their value is zero.
Note that the expressions “PT3M2S” (three minutes and two seconds) and “PT182S” (182 seconds) are both permitted and are equivalent.
|PartyID||A string in the form IdType::ID where IdType identifies the identification scheme. Examples are ISNI for an ISO 27729 International Standard Name Identifietr, IPI for a CISAC Interested Party Identifier or IPN for a SCAPR International Performer Number. The ID element then contains the identifier in the format defined by the Identificaiton scheme. Only one identifier can be communicated for each party in a PartyID field.||ISNI::0000000081266409|
DDEX Party ID
A string of 18 characters in accordance with the DDEX Party ID standard.
Note that the DDEX Party ID standard defines that DDEX Party IDs do not contain dashes in computer-to-computer communications. Therefore, DDEX Party IDs, when included in a Sales Report Message, shall not contain dashes.
A sequence of 0-n strings in accordance with a defined data type separated by Secondary Delimiters.
If only one data item is to be provided, no Secondary Delimiter shall be included.
If the cardinality of such an element is "M", at least one such data item must be provided.
Cells that may contain multiple values may be related related. For example one Multiple-String Cell may be for names of composers/lyricists and it may be followed by a Multiple-String Cell for identifiers of these composers/lyricists. In those cases, both Cells must contain the same number of Secondary Delimiters and there may only be 0-1 data items between the Secondary Delimiters.
"12" or "12|54|123" or "12||123" (without the quotes)
- All files shall carry the header Record(s) defined in Part 8 of this standard; and
- All files shall carry the footer Record(s) defined in Part 8 of this standard.
It is not permissible to split a Block. Therefore, a Block will always be in a single file.
It is not permitted to split a file in accordance with a Single Record Block Variant.
The semantics of an empty cell is determined by the commercial relationship between Message Sender and Message Recipient, unless specifically defined in this standard.
Implementers are reminded that some accounting applications may only be able to handle six, or even four, decimal places.
When a field of type “decimal” is to communicate an integer, the number may be represented with a trailing decimal point, a trailing “.0” or with no trailing characters. For example, the number five can be represented as “5”, “5.” for “5.0”.
When the number 0 (zero) is to be communicated in a Cell for decimal values, this shall be represented as
0 (and not
Note: this has an implication for developers using databases with field length limitations. Such developers will be forced to shorten fields if the data received exceeds their databases’ capabilities.
To override a DDEX-defined value, the DDEX-defined value “
UserDefined” shall be used, followed by single space character and a string representing the term to be communicated. This string shall only comprise lower case letters, upper case letters or digits, e.g.
Such user-defined values will need to be agreed between Message Sender and Message Recipient and users are encouraged to raise these issues with DDEX (e.g. via http://www.ddex.net/implementers-forum) with a view to having these values added to the list of DDEX-defined allowed values.
ReleaseReferenceCell in the Records describing Releases and
ResourceReferencein Records describing Resources. These references must be unique within the Block they appear in. As a consequence, the combination of a Record’s
BlockIdand reference is unique within a Sales Report Message created in accordance with this standard.
To allow linking Usage/Revenue/Sales Records to the Summary Record they contribute, all Summary Records and Usage/Revenue/Sales Records contain a
Some records, such as the
SalesTransactionID in the Sales/Usage Records need to be referenced from other messages such as an invoice message. In that case the combination of MessageId (as communicated in the
BlockId and reference are globally unique.
Other than references to a summary Summary Record, all references shall be pointing to a Record in the same Block.
When choosing a reference, users are strongly recommended to limit themselves to letters and digits, i.e. A-Z, a-z and 0-9.
3.2, shall be communicated in the Header Record
HEADin accordance with Clause 5.1.1 of Part 8 (even if the version of the architecture part of this standard is 1.2).
It is therefore recommended, for each Record Type used in a Sales Report Message created in accordance with this standard, to include a Record that provide Cell “headings” for that Record once. The first Cell of such Records is populated with the relevant Record Type and shall be preceded by a hash symbol (“#”) in accordance with Clause 6.6.9 and as shown in Figure 4 in blue.
Note, that if such headings are over-used and/or repeated too often, they could unnecessarily inflate the file size (especially for large Sales Report Messages).
Figure 5 – Human readable layout of a Sales Report Message
Figure 5 shows the Sales Report Message loaded into a spreadsheet application, with some rows coloured to aid readability.
- One Header Record (
HEAD) in accordance with Part 8 of this standard;
- One or more summary records in accordance with the relevant Profile. The number of summary records would depend on the contractual relationship between Licensor and licensee (see below).
- No Record to describe Usages, Revenues or Sales; and
- One Footer Record (
FOOT) in accordance with Part 8 of this standard.
If the "empty" sales/usage report is the first report ever sent from licensee to Licensor, it is recommended that one summary record is provided for each sales/usage context that the licensee is licensed for by the Licensor. Licensee and Licensor may, however, agree a different approach.
For an "empty" sales/usage report following a non-"empty" sales/usage report, it is recommended to provide a summary record for each of the contexts provided in the preceding sales/usage report. Licensee and Licensor may, however, agree a different approach.
The image below shows such an empty sales/usage report:
Figure 6 – "Empty" Sales/Usage Report.
This standard defines the architecture for all flat file sale/usage reports, It also defines common Record Types used in all sales/usage reports formatted in accordance with this standard but does not define Record Types for specific Profiles.
These Record Types are defined in Profile-specifc standards which are, in turn, built upon this standard. At the time of writing this Part, these Profiles have been defined by DDEX:
- Basic Audio Profile
- UGC Profile
- AV Profile
- Royalty Reporting Profile
- Broadcast Reporting Profile
DDEX expects to add further Profile standards over time. They will be published on the DDEX Knowledge Base where a complete list of Profiles defined for Version 3 of the Flat File Variant can be found.
8 Transfer of Sales Report Messages
The Party Name or DDEX Party ID (DPID) of the Message Recipient.
The MessageRecipient may be omitted if the Sales Report Message is sent to more than one recipient. This information shall be the same as the information conveyed in the file Header (
The Party Name or DDEX Party ID (DPID) of the
This information shall be the same as the information conveyed in the appropriate Record. Note: DDEX Party IDs do not contain special characters.
A description of the service name (e.g. a service tier) to be reported on. Multiple tiers can be communicated by separating them with dashes.
This information shall be the same as the information conveyed in the file Header (
The reporting Period covered by the Message in accordance with ISO 8601:2004. The only allowed syntaxes are:
The territory for which the Usage, Revenue or Sale transactions in this message are reported.
The TerritoryOfUseOrSale shall be provided as a single ISO Territory Code if one territory is to be communicated. Otherwise, the MessageSender and MessageRecipient(s) shall agree a value acceptable to both/all.
The file counter.
For example, the 7th file of a 9-file Sales Report Message would be
The date and time on which the Message was created (the only allowed format is the full basic ISO 8601:2004 format without a time zone designator:
The file extension, to be “
The following constraints apply:
- None of the file name elements may contain an underscore character.
- None of the file name elements may contain an space character.
- When a file name element is to be omitted, the two underscore characters to the left and right follow each other immediately.
- Other file naming conventions may be agreed on a bilateral basis (specifically for testing).
The third example file name is for a single-file report sent from Apple iTunes to SACEM for a download in the FR covering the period from 15th January to 15th February 2015 could be:
Message Sender and Message Recipient may use the following approach to exchanging (and acknowledging) Sales/Usage Reports created in accordance with this standard.
- The Message Sender shall upload the file containing the Sales/Usage Report to a mutually-agreed folder on a mutually-agreed SFTP server;
- Once the Sales/Usage Report has been uploaded completely, the Message Sender shall place a zero-byte semaphore into a sub-folder of the folder containing the sales/usage report file.
The sub-folder shall be called
file_available/and the semaphore file shall have the same file name as the Sales/Usage Report file, albeit with a underscore prefix and a file extension of
- Should a Sales/Usage Report comprise of more than one file in accordance with Clause 6.3 , the Message Sender shall repeat Steps 1 and 2 for each constituent file.
- The Message Recipient shall download a Sales/Usage Report file once it has seen the relevant semaphore file;
- Once the Message Recipient has successfully downloaded the file it shall delete the relevant semaphore file from the SFTP server;
- The Message Recipient may also delete the sales/usage report file from the SFTP server at this stage; and
- Should a Sales/Usage Report be comprised of more than one file in accordance with Clause 6.3 , the Message Recipient shall repeat Steps 1, 2 and potentially 3 for each constituent file.
- Should Message Sender and Message Recipient agree to communicate acknowledgements for Sales/Usage Reports, these should be placed, by the Message Recipient into a sub-folder of the folder containing the Sales/Usage Report file(s) called
acknowledgements/. The name of the acknowledgement file shall be the name of the acknowledged Sales/Usage Report, albeit with three changes:
- The name of the acknowledgement shall be preceded by
xofypart of the filename shall be omitted (in case the acknowledged Sales/Usage Report was provided in more than one file); and
- The time stamp shall be replaced with a time stamp of the acknowledgement, expressed in the same syntax as the time stamp used in the file name of the Sales Report Message file.
- The name of the acknowledgement shall be preceded by
DDEX may define the syntax of the acknowledgement message in a separate Part of this standard at a later time,
The box below shows how the structure of the SFTP server after the Message Recipient has downloaded the single file Sales/Usage Report and has removed the semaphore file:
The box below shows how the structure of the SFTP server after the Message Sender has uploaded a multi-file file Sales/Usage Report. Message Sender and Recipient have agreed that the Recipient provides an acknowledgement on Sales/Usage Report level:
The box below shows how the structure of the SFTP after the Message Recipient has downloaded all files of the multi-file file Sales/Usage Report and subsequently acknowledged the entire Sales/Usage Report:
Evaluation Licence for DDEX Standards
Subject to your compliance with the terms and conditions of this Agreement, DDEX™ grants you a limited, nonexclusive, non-transferable, non-sublicenseable, royalty-free licence solely to reproduce, distribute within your organisation, and use the DDEX standard specifications (“DDEX Standards”) solely for the purpose of your internal evaluation. You may not make any commercial use of the DDEX Standards under this agreement. No other licences are granted under this agreement.
No representations or warranties (either express or implied) are made or offered by DDEX with regard to the DDEX Standards. In particular, but without limitation, no representations or warranties are made in relation to:
- The suitability or fitness of the standards for any particular purpose;
- The merchantability of the standards;
- The accuracy, completeness, relevance or validity of the standards; or
- The non-infringement of any third party intellectual property rights related to the DDEX Standards.
Accordingly, DDEX and/or its members shall not be liable for any direct, indirect, special, consequential or punitive loss or damages howsoever arising out of or in connection with the use of the standards. IN THE EVENT THAT ANY COURT OF COMPETENT JURISDICTION RENDERS JUDGEMENT AGAINST DDEX AND/OR ITS MEMBERS NOTWITHSTANDING THE ABOVE LIMITATION, THE AGGREGATE LIABILITY TO YOU IN CONNECTION WITH THIS AGREEMENT SHALL IN NO EVENT EXCEED THE AMOUNT OF ONE HUNDRED U.S. DOLLARS (US$ 100.00).
Users of the DDEX Standards are cautioned that it is subject to revision. Users are recommended to use the latest versions, which are available at http://www.ddex.net. The use of outdated versions of the standards is not recommended but may be required by agreement between implementers in particular cases.