External purchase tokens confusion

Hi,

I'm trying to understand how the external purchase token reporting flow is supposed to work.

The documentation says:

At launch and before every potential transaction, call the token(for:) function to request the external purchase tokens, using the token types ACQUISITION and SERVICES. Associate these tokens with a customer account on your server.

Doc

In another article, Apple says:

To send a report, call the Send External Purchase Report endpoint for each token. Send reports in all of the following cases:

  1. To report a token, with line items, when a customer completes one or more transactions.
  2. To report a token, without line items, when a customer doesn’t complete any transactions.
  3. To report an unrecognized token, when you receive an App Store Server Notification about a token that you don’t have recorded in your system.
  4. To report duplicate ACQUISITION and SERVICES tokens.

Doc

I'm having trouble reconciling these requirements and would appreciate some clarification.

My questions are:

  1. If I receive ACQUISITION and SERVICES tokens at app launch, but the user never attempts a purchase, should I eventually report those tokens without line items (case #2)? If so, when should that report be sent?

  2. If a user starts the purchase flow but abandons it (for example, closes the browser or cancels payment), should that token be reported without line items under case #2?

  3. If I receive a new SERVICES token that covers the same validity period as a previously stored token, should it be treated as a duplicate and reported immediately under case #4? Should I still store that token on my server?

  4. The documentation says to call the Send External Purchase Report endpoint "for each token." Does that mean every transaction must be reported against all relevant tokens, or only against the specific token associated with that transaction?

An end-to-end example of the expected token lifecycle (request → store → use for transactions → report) would be very helpful.

Any guidance or examples of the intended workflow would be greatly appreciated.

External purchase tokens confusion
 
 
Q