Common Works Registration - Version 2.1, Revision 8

The previous revision of CWR 2.1, was released back in 2013. Ona major thing happened since 2013. Over 10 million IPI name numbers were issued, so, including two checksum digit, it takes 10 digits to show them. And there were only 9 digits for that in CWR 2.1, so something had to be done.

They (let us go with “they”, its complicated to explain who they are) chose to take also two preceding spaces, reserved for the sender type, and use it for the first two IPI name digits. Well, for societies and agencies, the IPI name numbers were not used here, so the sender using this “fix” can either be a writer or a publisher. And most societies will not accept writers’ submission of CWR files anyway.

They still presume that CWR generation requires expensive software. That is not true, as CWR generation can be found in several free open-source projects, including DMP (Django-Music-Publisher) - music metadata management solution for original publishers (

Over a year ago, I wrote a piece of code proving that taking 9 rightmost digits is enough, as the tenth can be calculated from the checksum.

So, nothing really had to be changed, except the explanation. But why not make it complicated: split one value over two fields, and make sure that the sender is responsible to check if a receiving society is able to process it.

In my new CWR processing code (for all versions, including conversions, see, this functionality is already included and will be included soon into DMP ( We can help with including it into your code.