title: PayPal IPN unique identifier
body: <p>I always assumed that <code>txn_id</code> sent with IPN message is unique. PayPal guidelines seem to support this idea - <a href="https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&amp;content_ID=developer/e_howto_admin_IPNIntro">https://cms.paypal.com/us/cgi-bin/?cmd=_render-content&amp;content_ID=developer/e_howto_admin_IPNIntro</a></p>
  
  <blockquote>
    <p>Avoid duplicate IPN messages. Check that you have not already processed the transaction identified by the transaction ID returned in the IPN message. You may need to store transaction IDs returned by IPN messages in a file or database so that you can check for duplicates. If the transaction ID sent by PayPal is a duplicate, you should not process it again.</p>
  </blockquote>
  
  <p>However I found that PayPal's eCheck payment IPN is sent twice with the same transaction ID. Once during initial payment with <code>payment_status</code> as "Pending" and again after couple days when eCheck is actually processes with <code>payment_status</code> as "Completed".</p>
  
  <p>I want to store both transactions, but still would like to avoid storing duplicates. There is another field in IPN called <code>ipn_track_id</code> and it's different for both transactions, but I can't find documentation for it, except this vague description: </p>
  
  <blockquote>
    <p>Internal; only for use by MTS and DTS</p>
  </blockquote>
  
  <p>Anyone else is using <code>ipn_track_id</code> to uniquely identify IPN messages? </p>