Do More

Do More with Square APIs and SDKs

Use Square payment APIs with custom solutions to manage product catalogs and inventory, customer profiles, and track orders.

Non-payment APIs

  • Catalog is a Connect v2, server-side API that creates and maintains a collection of services and items (physical or digital) available for sale.

  • Customers is a Connect v2, server-side API that creates and manages customer information, including "card-on-file" payment information that can be used for future purchases with Square products and APIs (e.g., Transactions, Point of Sale).

  • Inventory is a Connect v2, server-side API that tracks inventory quantities through a set of predefined states (e.g., SOLD, WASTE).

  • Locations is a Connect v2, server-side API that returns information about business locations associated with a Square account.

  • Orders is a Connect v2, server-side API that creates itemized records of transactions involving Catalog and ad hoc items. The itemized records created by orders include the services of items purchased, any modifications made to those items (e.g., discounts), and applicable taxes.

  • Employees is a Connect v1, server-side API that creates and manages employee records used by the Square Point of Sale app.

  • Roles is a Connect v1, server-side API that creates and manages employee roles that grant or restrict access to the different workflows in the Square Point of Sale app.

  • Timecards is a Connect v1, server-side API that creates and manages employee shift records.

Connect v2 versus Connect v1

Connect v1 is an older version of Square APIs. Most of the Connect v1 functionality has moved to Connect v2, but v1 APIs may be required in certain situations.

  • The Connect v2 API Suite supports online payments, order creation for itemized transactions, product catalog management, and customer management.
  • The Connect v1 API Suite supports employee, role, and timecard management and webhooks. Payment and item management functionality in the v1 suite is still fully supported but provided primarily for backward compatibility. New applications should use the Connect v2 API Suite for payments and item management.

There are 5 functional differences between Connect v1 and Connect v2 to be aware of:

Monetary Amounts

In Connect v1, monetary amounts are negative if they represent money being paid out by a merchant (for example, a Square processing fee).

In Connect v2, all monetary amounts are positive.

Date format

In Connect v1, all dates must conform to ISO 8601 formatting requirements.

In Connect v2, all dates must conform to the stricter RFC 3339 formatting requirements.

An RFC 3339-compliant date is effectively an ISO 8601-compliant date with all the optional components provided. The one exception is fractional seconds, which can still be left out. For example, 2016-01-15T00:00:00Z is a valid ISO 8601 date and a valid RFC 3339 date, but 2016-01-15, which lacks all the required time elements, is only valid under ISO 8601 requirements.

Result Pagination

In Connect v1, pagination information is provided in the "Link" response header.

In Connect v2, endpoints that paginate their results return a cursor field in their response body that can be used in the query string of a follow-up request to get the next set of results.

Default Sort Order

In Connect v1, endpoints that return lists of records return the results in oldest-first order by default.

In Connect v2, endpoints that return lists of records return the results in newest-first order by default.

Error Format

In Connect v1, only one error is ever returned in a single response and the errors have a different format from v2 errors. See the Connect v1 API Reference docs for more information on Connect v1 errors.

In Connect v2, endpoints return an array of errors in the response body if an error occurred during the corresponding request. The formatting of error objects is consistent across all Connect v2 endpoints. See the Connect v2 API Reference docs for more information on Connect v2 errors.

FAQs

Do the product management APIs support shipping fees?

Indirectly.

At this time, none of the Square APIs support shipping fees with an explicit data type. Shipping is currently supported as an ad hoc line item through the Orders API (it is defined at the time the order is processed) and indirectly through the Checkout API. For more information on working with shipping fees, see the Orders API Overview.

Does the Customers API work with eCommerce, in-person, and mobile transactions?

Yes.

The Customers API can be used to capture customer information across platforms and all of Square’s payment APIs support card-on-file transactions.

Contact Developer Support, join our Slack channel, or ask for help on Stack Overflow