When a return is done via Square, the return object within the response of the webhook that is triggered contains each individual item that was refunded. However, it doesn’t contain correct quantities in cases where the quantity refunded is not equal to the quantity returned. Apparently it only returns the quantity refunded. It does not return the quantity returned.
Here is a video of exactly what I’m referring to; Square Dashboard
As you can see, in the video I purchase two items. In this example they are the same item.
Now, let’s image for a second that I want to make something right by the customer by refunding their entire order, but only one of their items is unopened, so only one item is eligible for return. Therefore, I want to refund both items, but only place one item back in inventory.
I go in, select to refund for both items in the order, I got to the next step and only select one item to return in order to place it back in inventory.
In Square this works exactly as intended. It places one item back in to inventory. However, the payload received from the webhook that is triggered does not have the returned quantity under the “return” object. It has the refunded quantity only.
In theory, you would think there would be a “refund” object, with seperate line items for the items that were refunded, along with quantities of refunds. Then a “return” object with seperate line items for the items that were returned, along with quantities of returns. But this is not the case.
Somehow Square knows how many items to place back in to inventory. However, it does not give us the same data to use via API or Webhook.
Does anyone know a good work around to be able to send the proper information back to my ERP when a refund/return is made so that I can return the proper amount of items back to inventory in my ERP?