The Internet Open Trading Protocol (IOTP) is an electronic commerce protocol being developed by the Internet Engineering Task Force as Request For Comments (RFC) 2801. The core of IOTP is a set of electronic transactions that reflect the most common trading activities in the real world, such as purchasing goods or depositing funds. We use Coloured Petri Nets (CPNs) to construct an improved specification of IOTP by refining the structure of our previous specifications to better reflect IOTP's definition and to improve modularity and re-use. We also include IOTP's procedures for error handling and arbitrary transaction cancellation, which are essential for a complete specification. The improved specification conforms to the narrative description of IOTP in RFC 2801 and allows us to conduct a thorough analysis of the protocol.