Find the answer to your question
Advanced Search
Why does GetSellerTransactions return the same transaction for more than 1 time period?
Why does GetSellerTransactions return the same transaction for more than 1 time period?
Summary
The transactions that are returned by GetSellerTransactions depend on whether the last time they were modified fall in the ModTime filter. It is possible for a transaction to be modified at different time periods and cause it to show up multiple times in the response with the current state of the transaction. The intention of this design is to help you keep track of changes to the state of the transaction.
Detailed Description
Lets take the following example:
Item1 is purchased on July 28th 2022, 4:00 pm GMT, but no payment is made as yet.
You make a call to GetSellerTransactions with the following ModTimeFilter at 2022-07-28T01:00:00.000Z :
<?xml version="1.0" encoding="utf-8"?>
<GetSellerTransactionsRequest xmlns="urn:ebay:apis:eBLBaseComponents">
<ModTimeFrom>2022-07-25T00:00:00.000Z</ModTimeFrom>
<ModTimeTo>2022-07-28T00:00:00.000Z</ModTimeTo>
<Version>1173</Version>
<RequesterCredentials>
<eBayAuthToken>*****</eBayAuthToken>
</RequesterCredentials>
</GetSellerTransactionsRequest>
The transaction for this item will be returned since the LastTimeModified is 2022-07-28T16:00:00.000Z with the following Status:<Status>
<Status>
<eBayPaymentStatus>NoPaymentFailure</eBayPaymentStatus>
<CheckoutStatus>CheckoutIncomplete</CheckoutStatus>
<LastTimeModified>2022-07-28T16:00:00.000Z</LastTimeModified>
<PaymentMethodUsed>None</PaymentMethodUsed>
<CompleteStatus>Incomplete</CompleteStatus>
<BuyerSelectedShipping>false</BuyerSelectedShipping>
</Status>
Subsequently, after getting the necessary details from the seller, the buyer completes checkout and pays for it on July 29th 2022 3:00 GMT
LastTimeModified for the transaction now becomes 2022-07-29T15:00:00.000Z
Now you make a call to GetSellerTransactions with the following ModTimeFilter :
<ModTimeFrom>2022-07-29T00:00:00.000Z</ModTimeFrom>
<ModTimeTo>2022-07-30T00:00:00.000Z</ModTimeTo>
Since the LastTimeModified falls in the ModTime filter range, the transaction is returned in this call also with the following status:
<Status>
<eBayPaymentStatus>NoPaymentFailure</eBayPaymentStatus>
<CheckoutStatus>CheckoutComplete</CheckoutStatus>
<LastTimeModified>2022-07-30T15:00:00.000Z</LastTimeModified>
<PaymentMethodUsed>CreditCard</PaymentMethodUsed>
<CompleteStatus>Complete</CompleteStatus>
<BuyerSelectedShipping>true</BuyerSelectedShipping>
</Status>
It will no longer be returned for the following filter:
<ModTimeFrom>2022-07-28T00:00:00.000Z</ModTimeFrom>
<ModTimeTo>2022-07-29T00:00:00.000Z</ModTimeTo>
When designing your application, you need to account for this to happen and build your application accordingly.
Version Info
The code example above was based on the versions specified below:
API Schema Version | 1173 |
Additional Resources
- Documentation: Working with Checkout
- Knowledge Base article: Managing Checkout, Payment, Shipping, and Feedback status with ReviseCheckoutStatus and CompleteSale