Getting off of V1 Payments API

Currently

  • We are using the Payments V1 to fetch transactions made on POS, Virtual terminal, and Online store.
  • The V1 API gives us the payment info plus details on the line items .
  • We use a V1 webhook to be notified of new sales in real time.
  • Because payments v1 is deprecated, we need to migrate off of it. But I am not sure what the path is is.

Options

  • Payments V2 does not have a way of getting the line items from the sale.
  • Payments V2 only fires for credit cards.
  • Transactions is deprecated.
  • It seems like the best option is the Orders API but the Orders API includes very minimal information on the line item (i.e., we need the SKU number).

Questions

  • If v2 payments is to be the replacement, will it eventually include line items? Or will we always need to use Orders API for fetch details about the sale now?
  • If payments v2 worked with non-card payments, I still really don’t see a reason to use it over the Orders API.
  • Does the Orders API fire for invoices?

Welcome to the forums, @sheamus! Copying/pasting from Slack:

V1 Payments has not been deprecated yet (See here: https://developer.squareup.com/docs/migrate-from-v1). If you do want to move forward, the Orders API is definitely the way to do. If you want the SKU, then you would need to look up the item (it should have a catalog_object_id within a line item so you can retrieve it from the Catalog API).

  • There are webhooks for orders, but wouldn’t work in this scenario. They only fire when explicitly calling CreateOrder endpoints, so this wouldn’t really be applicable unfortunately.
  • You would need to fetch the catalog items
  • Yes. order_id and payment_id are different, although the order should have the payment_id in it (under tenders ).