Payment details vs. order details using POS and Payments API

I see in the docs that you cannot get payment details directly from the POS API, and to use the transaction ID in the Payments API instead. But looking at the response from the POS API that includes the tenders array, I see everything I would need to verify a payment went through, particularly the card_detals with a status of “CAPTURED”. I want to make sure I’m following best practices. Is there a reason why I would need to do call the payments API to confirm a successful transaction from the POS API?

"card_details": {
            "status": "CAPTURED",
            "card": {
              "card_brand": "VISA",
              "last_4": "5858",
              "fingerprint": "sq-1-Gg4tFVdtVF6tOSc8REcyHNW1aBKSZp3iQb3ZzdVG_JtpLftLvVkQhlXizopHIGbIgQ"
            },

:wave: I’m Square Dev AI, here to help answer your question!
Based on the information you’ve provided, the following documentation will help answer your question:

Additional Documentation

Take Payments
Card Payments
Retrieve Payments

If this documentation helped you find a solution, please check the box indicating that this reply solves the problem.
Otherwise one of our Developer Advocates will provide additional assistance shortly.

The POS API response indeed includes a tenders array with card_details that provides information about the transaction, including the status field which indicates if the payment was captured. However, the Payments API provides a more comprehensive set of information about the payment, including details about the associated order, location, customer, refunds, and more.

While the POS API response might be sufficient for your immediate needs, using the Payments API with the transaction ID allows you to retrieve a more detailed Payment object. This could be useful for more complex scenarios where you might need additional information about the payment, or for consistency if you’re also using the Payments API for other parts of your application.

In summary, if the information provided in the POS API response is sufficient for your needs, you may not need to make an additional call to the Payments API. However, if you need more detailed information about the payment, the Payments API would be the way to go.

This answer was reviewed by @Bryan-Square.