Find the answer to your question
Why am I getting back a ShippingAddress with just the Zip and Country when I call GetSellerTransactions or GetItemTransactions?
There can be several reasons why an incomplete ShippingAddress is returned by GetItemTransactions and GetSellerTransactions.
The first thing to understand is that unless the Buyer has explicity chosen or entered a ShippingAddress through the Checkout Flow on eBay, the ShippingAddress for a transaction will likely return the Zip and Country from the registration address of the buyer. What this means is that unless eBay Checkout is completed the ShippingAddress as returned in GetItemTransactions and GetSellerTransactions should be considered "invalid". The field in these 2 API calls that indicate if the ShippingAddress is valid is Transaction.Status.BuyerSelectedShipping. If the value is 1 then that means the Buyer has explicity chosen a ShippingAddress in the eBay Checkout flow. If the value is 0 then the ShippingAddress should be considered "invalid".
When a transaction is part of a multi-payment order, the GetItemTransactions and GetSellerTransactions calls will not show the correct ShippingAddress that the Buyer indicated when going through eBay Checkout for that order. This is a missing feature which will be added sometime in the future.
This is an inconvenience that should not keep API applications from getting the ShippingAddress for orders. The following details how you should use the eBay API to get information for all transactions:
Please note that if your application handles end of auction activity for sellers that allow buyers to pay for more than 1 transaction in a single Checkout flow, the correct API calling order to use is
1. GetOrders with OrderStatus = 2 (active/open orders)
2. GetOrders with OrderStatus = 3 (completed orders) .... this is where the ShippingAddress will be
GetOrders will return the ShippingAddress that the Buyer indicated for completed orders.
If the ShippingAddress you are seeing in GetItemTransactions or GetSellerTransactions does not look complete, then you need to make the GetOrders calls as indicated above to handle transactions that were processed through a multi-payment Checkout. If the transaction was not part of a multi-payment transaction, then the reason for the incomplete ShippingAddress is that the Buyer has not completed eBay Checkout, and thus no ShippingAddress has been indicated by the Buyer, which will be indicated by the Transaction.Status.BuyerSelectedShipping field.