- Invoices API (beta)
- InvoiceStatus enum. Added the
PAYMENT_PENDING
value. Previously, the Invoices API returned aPAID
orPARTIALLY_PAID
status for invoices in a payment pending state. Now, the Invoices API returns aPAYMENT_PENDING
status for all invoices in a payment pending state, including those previously returned asPAID
orPARTIALLY_PAID
.
- InvoiceStatus enum. Added the
- Payments API
- ListPayment. The endpoint now supports the
limit
parameter.
- ListPayment. The endpoint now supports the
- Refunds API
- ListPaymentRefunds. The endpoint now supports the
limit
parameter.
- ListPaymentRefunds. The endpoint now supports the
- DeviceDetails. The object now includes the
device_installation_id
field.
- Payment status. Added details about the
Payment.status
changes and how the status relates to the seller receiving the funds. - Refund status. Added details about the
PaymentRefund.status
changes and how the status relates to the cardholder receiving the funds. - CreateRefund errors. Added documentation for the
REFUND_DECLINED
error code.
- Orders API
- Order object. The
total_tip_money
field is now GA. - CreateOrder, UpdateOrder, and BatchRetrieveOrders. These APIs now support merchant-scoped endpoints (for example, the
CreateOrder
endpointPOST /v2/orders
). The location-scoped variants of these endpoints (for example, theCreateOrder
endpointPOST /v2/locations/{location_id}/orders
) continue to work, but these endpoints are now deprecated. You should use the merchant-scoped endpoints (you provide the location information in the request body).
- Order object. The
- Labor API
- Migrate from Employees to Team Members. The Employees API is now deprecated in this release. Accordingly, update references to the
Shift.employee_id
field to theShift.team_member_id
field of the Labor API.
- Migrate from Employees to Team Members. The Employees API is now deprecated in this release. Accordingly, update references to the
- v2 Employees API (deprecated)
- Migrate from the Square Employees API. The v2 Employees API is now deprecated. This topic provides information to migrate to the Team API.
- v1 Employees API (deprecated)
- Migrate from the v1 Employees API. The v1 Employees API is now deprecated. This topic provides information to migrate to the Team API.
- Point of Sale API
- Build on iOS. Corrected the Swift example code in step 7.
- Team API
- Team API Overview. Documented the limitation related to creating a team member in the Square Sandbox.
SDK technical reference documentation:
- Nulls in SDK documentation example code are replaced with example values.
Bug fixes:
- The
APIException.Errors
property was not set on instantiation. Behavior is now corrected to instantiate the class with an emptyErrors
list.
- Subscriptions API (beta):
- For an overview, see Square Subscriptions.
- For technical reference, see Subscriptions API.
- Catalog API
- CatalogSubscriptionPlan (beta). This catalog type is added in support of the Subscriptions API. Subscription plans are stored as catalog object of the
SUBSCRIPTION_PLAN
type. For more information, see Set Up and Manage a Subscription Plan.
- CatalogSubscriptionPlan (beta). This catalog type is added in support of the Subscriptions API. Subscription plans are stored as catalog object of the
- SqPaymentForm.masterpassImageURL. This function is updated to return a Secure Remote Commerce background image URL.
- Locations API
- About the main location. Added clarifying information about the main location concept.
- OAuth API
- Migrate to the Square API OAuth Flow. Added a new topic to document migration from a v1 location-scoped OAuth access token to the Square seller-scoped OAuth access token.
- Payment Form SDK
- Renamed the Add a Masterpass Button topic to Add a Secure Remote Commerce Button. Updated the instructions to add a Secure Remote Commerce button to replace a legacy Masterpass button.
- Payment form technical reference. Updated the reference to show code examples for adding a Secure Remote Commerce button.
- Invoices API (beta):
- For an overview, see Manage Invoices Using the Invoices API.
- For technical reference, see Invoices API.
-
Catalog API
- SearchCatalogItems. You can now call the new search endpoint to search for catalog items or item variations, with simplified programming experiences, using one or more of the supported query filters, including the custom attribute value filter.
-
Locations API
- Locations API Overview. Introduced the "main" location concept.
- RetrieveLocation. You can now specify "main" as the location ID to retrieve the main location information.
-
Merchants API
- RetrieveMerchant and ListMerchants. These endpoints now return a new field,
main_location_id
.
- RetrieveMerchant and ListMerchants. These endpoints now return a new field,
-
Orders API
- PricingOptions. You can now enable the
auto_apply_discounts
of the options to have rule-based discounts automatically applied to an Order that is pre-configured with a pricing rule.
- PricingOptions. You can now enable the
-
- Replaced 500 error on max string length exceeded with a max length error message. Max length attribute added to string type fields.
-
Terminal API (beta)
- TerminalCheckout object. The
TerminalCheckoutCancelReason
field is renamed toActionCancelReason
.
- TerminalCheckout object. The
-
Catalog API
- Search a catalog. New topics added to provide actionable guides to using the existing SearchCatalogObjects endpoint, in addition to the SearchCatalogItems endpoints.
-
Orders API
- Create Orders. Updated existing content with the new pricing option for the automatic application of rule-based discounts.
- Team API generally available (GA)
- For an overview, see Team API Overview.
- For technical reference, see Team API.
- Catalog API
- Pricing is now GA. It allows an application to configure catalog item pricing rules for the specified discounts to apply automatically.
- Payments API
- The CardPaymentDetails type now supports a new field, refund_requires_card_presence. When set to true, the payment card must be physically present to refund a payment.
- Loyalty API (beta):
- For an overview, see Loyalty Program Overview.
- For technical reference, see Loyalty API.
-
Orders API
- CalculateOrder (beta) endpoint. Use the endpoint to calculate adjustments (for example, taxes and discounts) to an order for preview purposes. In response, the endpoint returns the order showing the calculated totals. You can use this endpoint with an existing order or an order that has not been created.
The endpoint does not update an existing order. It only returns a calculated view of the order that you provided in the request. To create or update an order, use the CreateOrder and UpdateOrder endpoints, respectively.
- Order type. Two fields are added in support of the Loyalty API integration. For more information, see Deferred reward creation. For an example, see Redeem Points.
Order.rewards
represents rewards added to an order by calling the CreateLoyaltyReward endpoint.Order.discount.reward_ids
indicates that a discount is the result of the specified rewards that were added to an order using theCreateLoyaltyReward
endpoint.
-
Customers API
-
The Search Customers endpoint supports search by email address, phone number, and reference ID with the following additional query filters:
-
The
email_address
query filter (beta) supports an exact or fuzzy search for customer profiles by their email addresses. -
The
phone_number
query filter (beta) supports an exact or fuzzy search for customer profiles by their phone numbers. -
The
reference_id
query filter (beta) supports an exact or fuzzy search for customer profiles by their reference IDs.
-
-
The
created_at
,updated_at
, andid
attributes on the Customer resource are updated to be optional. As a result, they no longer are required input parameters when you call the Square SDKs to create aCustomer
object. You might need to update the dependent SDKs to the latest version to mediate breaking your existing code.
-
-
Square Webhooks (formerly v2 Webhooks). The status is changed from beta to general availability (GA).
-
v1 Webhooks. The v1 Inventory and Timecards webooks are now deprecated and replaced by inventory.count.updated and labor.shift.updated.
- OAuth API
- Obtain Token endpoint: Removed the
scopes
property from the request body.
- Obtain Token endpoint: Removed the
- Customer Segments API (beta).
limit
field removed from ListCustomerSegments endpoint.
Note: This release fixes a bug introduced on the April 22, 2020 release of the Square API.
-
Terminal API. The new Terminal API lets a custom third-party POS app integrate with the Square Terminal to send terminal checkout requests to collect payments.
- For an overview, see Overview.
- For technical reference, see Terminal API.
-
Devices API. The new Devices API lets a custom third-party POS app generate a code used to sign in to a Square Terminal to create a pairing that lets the POS app send terminal checkout requests. For technical reference, see Devices API.
-
Customer Groups API (beta). The new Customer Groups API (Beta) enables full CRUD management of customer groups, including the ability to list, retrieve, create, update, and delete customer groups. Previously, this functionality was only available through the Square dashboard and point-of-sale product interfaces.
- For an overview, see Overview
- For technical reference, see Customer Groups.
-
Customer Segments API (beta). The new Customer Segments API (Beta) lets you list and retrieve customer segment (also called smart groups) information. Coupled with the new
segment_ids
field on the customer resource, this API lets you better understand and track the customer segments to which a customer belongs.- For an overview, see Overview
- For technical reference, see Customer Segments.
-
New webhooks. v2 Webhooks (beta) now supports webhooks for the following APIs:
- Orders API.
order.created
,order.updated
, andorder.fulfillment.updated
- Terminal API.
terminal.checkout.created
andterminal.checkout.updated
- Devices API.
device.code.paired
For more information, see Subscribe to Events.
- Orders API.
-
Customers API
- AddGroupToCustomer endpoint. Added to add customer memberships to a customer group.
- RemoveGroupFromCustomer endpoint. Added to remove customer memberships from a customer group.
- Customer object. Updated as follows:
group_ids
field. Added to designate groups the customer is in.segment_ids
field. Added to designate segments the customer is in.groups
field. Deprecated to be replaced bygroup_ids
andsegment_ids
. It remains supported for one year from this release.
- CustomerQuery object's
filter
parameter. Updated as follows:group_ids
filter. Added to search for customers based on whether they belong to any, all, or none of the specified groups.
-
Orders API
- OrderFulfillmentPickupDetails type updated to support curbside pickup:
is_curbside_pickup
. This Boolean field indicates curbside pickup.CurbsidePickupDetails
. This type provides supporting information for curbside pickup, including a buyer description (for example, "buyer is in a red car") and a timestamp when the buyer arrived for the pickup.
- OrderFulfillmentPickupDetails type updated to support curbside pickup:
-
OAuth API
- RevokeToken endpoint. Added a new field called revoke_only_access_token. This field allows a client to revoke an access token but leave the parent authorization active.
- ObtainToken endpoint. Added a new field called scopes. This field lets a client change the set of permissions for an access token when making a request to refresh the token.
-
Catalog API
- CatalogQuickAmountsSettings type. Added to support predefined custom payment amounts in the Square Register checkout dialog box.
- ENUM
CatalogItemProductType
. The ENUM valueGIFT_CARD
is now deprecated.
-
Payments API. See Take Payments and Collect Fees for updated information about permission requirements, Square reporting of the application fee collected by an app, and how to collect fees internationally.
- Payments API. In support of the existing Delayed capture for payments, the following fields are added to the Payment type:
delay_duration
. In a CreatePayment request, you can setautocomplete
to false to get payment approval but not charge the payment source. You can now add this field to specify a time period to complete (or cancel) the payment. For more information, see Delay capture.delay_action
. Defines the action that Square takes on the payment when thedelay_duration
elapses. In this release, the API supports only the cancel payment action.delayed_until
. Provides the date and time on Square servers when Square appliesdelay_action
on the payment.
-
GA release: All SDKs have been updated to support the new Bank Accounts and CashDrawerShifts APIs.
-
Beta release: All SDKs have been updated to support the new Disputes API.
All SDKs have been updated to support the following changes:
-
Catalog API
- Batch upsert catalog objects endpoint — The
batches
field is now required and the array must have at least one element. - CatalogModifier — Two fields added:
ordinal
to support custom ordering in a modifier listmodifier_list_id
to reference the parent modifier list
- CatalogModifierList — New field added:
ordinal
to support custom ordering in a list of CatalogModifierList objects.
- Batch upsert catalog objects endpoint — The
-
Customers API changes
- SearchCustomers endpoint —
limit
size reduced from 1000 to 100 to improve the endpoint performance.
- SearchCustomers endpoint —
-
Orders API changes
- CreateOrderRequest — Previously these request fields were deprecated:
line_items
,taxes
,discounts
. These fields are no longer available. Instead you now use theOrder
object in the request. For example,Order.line_items
,Order.taxes
, andOrder.discounts
. - OrderLineItem type — There are two changes:
- The
taxes
field that was previously deprecated is no longer available. Instead, you now use theOrderLineItem.applied_taxes
field. This also now requires that you set theOrderLineItemTax.scope
field. - The
discounts
field that was previously deprecated is no longer available. Instead, you now use theOrderLineItem.applied_discounts
field. This also now requires that you set theOrderLineItemDiscount.scope
field.
- The
- CreateOrderRequest — Previously these request fields were deprecated:
-
Shared object updates
- Card object — New fields added:
card_type
,prepaid_type
. Currently, only the Payments API responses populate these fields.
- Card object — New fields added:
-
New field: The Employee object now has an
is_owner
field. -
New enumeration: The CardBrand enumeration has a new
SQUARE_CAPITAL_CARD
enum value to support a Square one-time Installments payment. -
New request body field constraint: The Refund Payment request now requires a payment_id.
-
Square is excited to announce the public release of customized SDK for Java
-
GA release: SDKs updated to support new
receipt_url
andreceipt_number
fields added to the Payment type. -
Beta release: SDKs updated to support the new CashDrawerShifts API.
-
Square now follows the semantic versioning scheme for all SDKs except PHP and Node.js. This versioning scheme uses three numbers to delineate MAJOR, MINOR, and PATCH versions of our SDK. In addition, the SDK version also includes the API version so you know what Square API version the SDK is related to. For more information, see Versioning and SDKs.
-
Java, .Net, Python, and Ruby SDKs are now version 4.0.0. Java and .Net SDKs have breaking changes in version 4.0.0. Ruby and Python do not have breaking changes.