For general API and SDK changelogs, see Square APIs and SDKs Release Notes.
-
Invoices API:
-
The Invoices API now supports seller accounts in France. For more information, see International availability and considerations.
-
France only:
Invoice
object. Added a newpayment_conditions
field, which contains payment terms and conditions that are displayed on the invoice. This field is available only for sellers in France. For more information, see Payment conditions.Square version 2021-12-15 or higher is required to set this field, but it is returned in
ListInvoices
andRetrieveInvoice
requests for all Square versions.
-
-
Cards API
- Added the
CARD_DECLINED_VERIFICATION_REQUIRED
error code to the list of error codes returned by CreateCard.
- Added the
-
Catalog API:
-
CreateCatalogImage endpoint
- Updated to support attaching multiple images to a Catalogbject instance.
- Added
is_primary
option to let the caller choose to attach an image as the primary image on the object for display with the Square Point of Sale and other first-party Square applications. For more information, see Upload and Attach Images.
-
CatalogObject object
- Retired the
image_id
field, used to hold a single image object attached to an image-supporting object of theITEM
,ITEM_VARIATION
,CATEGORY
, orMODIFIER_LIST
type, in Square API version 2021-12-15 and later, which supports attachment of multiple images. Theimage_id
field is still supported in Square API version prior to 2021-12-15. For more information, see Work with Images: Overview.
- Retired the
-
CatalogItem, CatalogItemVariation, CatalogCategory or CatalogModifierList object
- Added
image_ids
list to hold attached image objects. The first element ofimage_ids
list refers to the primary image attached to the catalog object. For more information, see Work with Images: Overview.
- Added
-
UpdateCatalogImage endpoint
- Added to support replacing the image file encapsulated by an existing CatalogImage object. For more information, see Replace image file on a CatalogImage object.
-
CatalogPricingRule object
- Added minimum_order_subtotal_money field to require that the minimum order subtotal be reached before the pricing rule may be applied.
-
- Added a new top-level node for Developer Tools. This node includes such features as Sandbox, API Logs, and Webhooks.
- Added Webhook Event Logs (beta) documentation to the Developer Tools node.
-
Cards API. The Card object and webhook response body for all webhooks are updated updated with fields.
- Added the Card.merchant_id field to identify the Square seller that stored the payment card on file.
- Added a Card object to the response bodies of all Cards API webhooks. The
Card
is added as a child of thedata.object
field in all webhook responses.
-
Bookings API. The new ListBookings endpoint supports browsing a collection of bookings of a seller. For more information, see Use the Bookings API: list bookings.
-
Subscriptions API. Introduced the new actions framework representing scheduled, future changes to subscriptions.
- The new PauseSubscription endpoint supports temporarily pausing a subscription. Calling this endpoint schedules a new
PAUSE
action. - The new SwapPlan endpoint supports changing the subscription plan associated with a single customer. Calling this endpoint schedules a new
SWAP_PLAN
action. - The new DeleteSubscriptionAction endpoint supports deleting a scheduled action.
- The ResumeSubscription endpoint has been updated to support resuming a paused subscription. Calling this endpoint schedules a new
RESUME
action. - The CancelSubscription endpoint now schedules a new
CANCEL
action. - Added an optional
include
body parameter to the SearchSubscriptions endpoint. Includeactions
in the request to return all actions associated with the subscriptions.
- The new PauseSubscription endpoint supports temporarily pausing a subscription. Calling this endpoint schedules a new
-
Migration Guides.
- Migrate from the Connect V1 Refunds API. The topic is updated to include information to migrate from the v1 ListRefunds endpoint to the appropriate Square API counterparts.
- Migrate from the Connect V1 Payments API. The topic provides developers information to migrate from the Connect V1 Payments API to the appropriate Square API counterparts.
Code that relies on these V1 API endpoints must be updated to avoid breaking when these APIs reach retirement.
-
Transactions API. Three previously deprecated endpoints (
ListRefunds
,Charge
, andCreateRefund
) in the Transactions API are removed from Square API version 2021-10-20 and later. These endpoints will work if you are using Square API versions prior to 2021-10-20. However, these endpoints will eventually be retired from all Square versions.- Instead of the Transactions API
Charge
endpoint, use the Payments API CreatePayment endpoint. - Instead of the Transactions API
CreateRefund
endpoint, use the Refunds API RefundPayment endpoint. - Instead of the Transactions API
ListRefunds
endpoint, use the Refunds API ListPaymentRefund endpoint.
- Instead of the Transactions API
-
Payments API:
- Payment object.
-
Added the device_details read-only field to view details of the device used to take a payment. This
Payment
-level field provides device information for all types of payments. Previously, device details were only available for card payments (Payment.card_details.device_details
), which is now deprecated. -
Added the team_member_id that applications can use to view the ID of the TeamMember associated with the payment. Use this field instead of the
Payment.employee_id
field, which is now deprecated. -
Added the application_details read-only field to view details of the application that took the payment.
-
These
Payment
fields have moved to the general availability (GA) state:tip_money, delay_duration, statement_description_identifier, delay_duration, delay_action, delayed_until, and statement_description_identifier. -
The ACH Bank Transfer Payments feature has moved to the GA state. Accordingly, the bank_account_details field (and its BankAccountPaymentDetails type) are moved to the GA state.
-
- CreatePayment endpoint.
- Added the team_member_id request field to record the ID of the team member associated with the payment.
- The accept_partial_authorization request field has moved to the GA state.
- CompletePayment endpoint. Added the
version_token
request field to support optimistic concurrency. For more information, see Delayed capture of a card payment.
- Payment object.
-
Refunds API:
- RefundPayment endpoint.
- Added the
team_member_id
request field to record the ID of the team member associated with the refund. - Added the
payment_version_token
request field to support optimistic concurrency. For more information, see Refund Payment.
- Added the
- RefundPayment endpoint.
-
Customers API:
-
Customer object. Added a new
tax_ids
field of the CustomerTaxIds type, which can contain the EU VAT ID of the customer. This field is available only for customers of sellers in France, Ireland, or the United Kingdom. For more information, see Customer tax IDs. -
UpdateCustomer endpoint. The Customers API now returns a
400 BAD_REQUEST
error if the request body does not contain any fields. For earlier Square versions, the Customers API will continue to return a200 OK
response along with the customer profile. For more information, see Migration notes.
-
-
Invoices API:
- InvoiceRecipient object. Added a new, read-only
tax_ids
field of the InvoiceRecipientTaxIds type, which can contain the EU VAT ID of the invoice recipient. This field is available only for customers of sellers in Ireland or the United Kingdom. If defined,tax_ids
is returned for all Square API versions. For more information, see Invoice recipient tax IDs. - Square now sends emails for test invoices that are published in the Sandbox environment.
- InvoiceRecipient object. Added a new, read-only
-
Catalog API:
- CatalogSubscriptionPlan.name can be updated after the subscription plan is created. The change is retroactively applicable to prior versions of the Square API.
-
Subscriptions API:
- The new SubscriptionSource data type is introduced to encapsulate the source where a subscription is created. The new
SubscriptionSource.name
value is propagated to theOrder.source
attribute when an order is made on the subscription. The new feature is retroactively applicable to prior versions of the Square API. - The new Subscription.source attribute is introduced to indicate the source where the subscription was created. This new feature is retroactively applicable to prior versions of the Square API.
- The new SearchSubscriptionsFilter.source_names query expression is introduced to enable search for subscriptions by the subscription source name. This new feature is retroactively applicable to prior versions of the Square API.
- The new SubscriptionSource data type is introduced to encapsulate the source where a subscription is created. The new
-
Invoices API:
- Invoice object. Added a new, optional
sale_or_service_date
field used to specify the date of the sale or the date that the service is rendered. If specified, this date is displayed on the invoice.
- Invoice object. Added a new, optional
-
Orders API:
- CreateOrder. The endpoint now supports creating temporary, draft orders. For more information, see Create a draft order.
- CloneOrder. The Orders API supports this new endpoint to clone an existing order. For more information, see Clone an order.
- These fields have moved to the general availability (GA) state: OrderLineItem.item_type, OrderServiceCharge.type, and
catalog_version
field on every order type that contains this field.
-
Team API:
- SearchTeamMembersFilter object now has an
is_owner
field that when set, causes a team member search to return only the seller who owns a Square account.
- SearchTeamMembersFilter object now has an
-
Terminal API:
- TerminalCheckout object. The
customer_id
field is now GA.
- TerminalCheckout object. The
- OAuth API:
- Revised API descriptions for the ObtainToken and Authorize endpoints. Clarified that the Authorize endpoint is not a callable API but is used to direct the seller to the Square authorization page. For more information about the Authorize endpoint, see Create the Redirect URL and Square Authorization Page URL.
-
Customers API:
- Customer object. The
version
field has moved to the general availability (GA) state. This field represents the current version of the customer profile and enables optimistic concurrency control. For more information, see Customer profile versions and optimistic concurrency support. - ListCustomers endpoint. The new, optional
limit
query parameter can be used to specify the maximum number of results in a paginated response.
- Customer object. The
-
Customer Groups API:
- ListCustomerGroups endpoint. The new, optional
limit
query parameter can be used to specify the maximum number of results in a paginated response.
- ListCustomerGroups endpoint. The new, optional
-
Customer Segments API:
- ListCustomerSegments endpoint. The new, optional
limit
query parameter can be used to specify the maximum number of results in a paginated response.
- ListCustomerSegments endpoint. The new, optional
-
Invoices API:
- Square Invoices Plus is a monthly subscription plan that allows access to premium invoice features. After Invoices Plus is launched in September 2021, a subscription will be required to create invoices with custom fields and installment payments. For more information, including how to handle new errors, see Premium features available with Invoices Plus.
-
Loyalty API:
- LoyaltyAccount object. Added a new
expiring_point_deadlines
field that specifies when points in the account balance are scheduled to expire. This field contains a list of LoyaltyAccountExpiringPointDeadline objects. For more information, see Expiring points.
- LoyaltyAccount object. Added a new
-
App Marketplace. Added the following topics:
- How to apply. Documented the process to list an application on the Square App Marketplace.
- App Marketplace API Usage Requirements. Added a topic that describes a set of API usage requirements and recommendations for partner applications.
-
Automatic communications from Square about invoices. Documented the invoice-related communications sent from Square to customers and sellers.
-
Snippets best practices. Documented best practices and additional requirements for snippets and applications that integrate with the Snippets API.
-
Orders API:
-
OrderServiceCharge object. Added a new field,
type
. It identifies the service charge type. -
OrderQuantityUnit, OrderLineItem, OrderLineItemDiscount, OrderLineItemModifier, OrderLineItemTax, OrderServiceCharge, OrderReturnLineItem, OrderReturnLineItemModifier, OrderReturnServiceCharge, OrderReturnTax, and OrderReturnDiscount objects. Added a new field,
catalog_version
.
-
-
Locations API:
- Location object. Added a new field
tax_ids
of typeTaxIds
. In the current implementation, sellers in Ireland and France can configure tax IDs during the onboarding process. They can also provide the information later by updating the location information in the Seller Dashboard. These tax IDs appear in this field.
- Location object. Added a new field
-
Loyalty API:
- As of July 15, 2021, the country in which the seller’s Square account is activated determines whether Square uses pretax or post-tax purchase amounts to calculate accrued points. This change supports consumption tax models, such as value-added tax (VAT). Previously, point accrual was based on pretax purchase amounts only. This change does not affect the existing point balance of loyalty accounts. For more information, see Availability of Square Loyalty.
-
Payments API:
- UpdatePayment. The endpoint has moved to the general availability (GA) state. Also, you can now update gift card payments (similar to card, cash, and external payments).
-
Subscriptions API:
- The Subscriptions API has moved to the general availability (GA) state.
- CatalogSubscriptionPlan object. The
name
andprice
are now write-once fields. You specify these values at the time of creating a plan. After the plan is created, these fields cannot be updated. This makes a subscription plan immutable.
-
Inventory API:
- RetrieveInventoryTransfer. This new endpoint is introduced to support the retrieval of inventory transfer.
- RetrieveInventoryChanges. This endpoint is deprecated. Its support ends when it is retired in about 12 months.
- The following endpoints have updated URLs to conform to the standard REST API convention. For more information about migrating deprecated URLs to updated URLs in your application, see Inventory API: Migrate to Updated API Entities.
- Webhooks. Revised the steps and descriptions for creating and using webhooks. For more information, see Webhooks Overview.
-
Gift Cards API and Gift Card Activities API. Gift card support is integrated in the Square Seller Dashboard and the Square Point of Sale application. Sellers can sell, redeem, track, and reload Square gift cards. Now developers can use the Gift Cards API and the Gift Card Activities API to integrate Square gift cards into third-party applications. For more information, see Gift Cards API Overview.
-
Cards API. The Cards API replaces the deprecated
CreateCustomerCard
andDeleteCustomerCard
endpoints and lets an application save a customer payment card on file along with other card management operations. For more information, see Cards API Overview.
-
Catalog API:
- CatalogPricingRule. Support of the customer group discount becomes GA. For more information, see CreateCustomerGroupDiscounts.
- CatalogItemVariation. Offers Beta support of the stockable and stockable_conversion attributes to enable sales of a product in multiple measurement units.
- UpsertCatalogObject and BatchUpsertCatalogObjects. Support creating an item with stockable and non-stockable variations with a specified stock conversion between the two. For more information, see Enable Stock Conversion.
- UpsertCatalogObject and BatchUpsertCatalogObjects. Require that an item be created with at least one variation. Otherwise, an
INVALID_REQUEST
error is returned.
-
Customers API:
- Using the Customers API to manage cards on file is deprecated:
-
The CreateCustomerCard endpoint is deprecated and replaced by the CreateCard and LinkCustomerToGiftCard endpoints.
-
The DeleteCustomerCard endpoint is deprecated and replaced by the DisableCard and UnlinkCustomerFromGiftCard endpoints.
-
The
cards
field in the Customer object is deprecated and replaced by the following endpoints:- ListCards to retrieve credit and debit cards on file.
- ListGiftCards to retrieve gift cards on file.
For more information, see Migrate to the Cards API and Gift Cards API.
-
Customer object. In the
cards
field, the IDs for gift cards now have agftc:
prefix followed by the card number. This is a service-level change that applies to all Square API versions.
-
- Using the Customers API to manage cards on file is deprecated:
-
Disputes API:
- The Disputes API is now GA.
RemoveDisputeEvidence
. Renamed to DeleteDisputeEvidence.- CreateDisputeEvidenceFile. The URL is changed from
/v2/disputes/{dispute_id}/evidence_file
to/v2/disputes/{dispute_id}/evidence-files
. - CreateDisputeEvidenceText. The URL is changed from
/v2/disputes/{dispute_id}/evidence_text
to/v2/disputes/{dispute_id}/evidence-text
. - ListDisputeEvidence. The endpoint now returns a pagination cursor and accepts a pagination cursor in requests.
DISPUTES_READ
andDISPUTES_WRITE
permissions are required for all Disputes API endpoints instead ofPAYMENTS_READ
andPAYMENTS_WRITE
.- DisputeEvidence. The
evidence_id
field is deprecated and replaced by theid
field. - The
dispute.state.changed
webhook is renamed todispute.state.updated
. - Dispute object. The following breaking changes are made:
- The
dispute_id
field is deprecated and replaced by theid
field. - The
reported_date
field is deprecated and replaced by thereported_at
field. - The
evidence_ids
field is deprecated with no replacement.
- The
For more information about the GA release of the Disputes API, see Disputes Overview.
-
Inventory API:
- CatalogStockConversion (Beta). Enables selling a product in multiple measurement units and lets Square sellers manage inventory counts of the product's stockable and a non-stockable variations in a self-consistent manner. For more information, see Enable Stock Conversion.
-
Invoices API:
- CreateInvoice. The
location_id
field is now optional and defaults to the location ID of the associated order. If specified in the request, the value must match the location ID of the associated order. This is a service-level change that applies to all Square API versions.
- CreateInvoice. The
-
Loyalty API:
- LoyaltyProgramAccrualRule object. New
excluded_category_ids
andexcluded_item_variation_ids
fields that represent any categories and items that are excluded from accruing points in spend-based loyalty programs.
- LoyaltyProgramAccrualRule object. New
-
Subscriptions API:
-
Subscription. The
paid_until_date
field is renamed tocharge_through_date
. -
UpdateSubscription. The
version
field is now optional because it can update only the latest version of a subscription. -
CreateSubscription. The
idempotency_key
field is now optional in the request. If you do not provide it, eachCreateSubscription
assumes a unique (never used before) value and creates a subscription for each call.
-
- Order fee structure. Documented the transaction fee related to using the Orders API with a non-Square payments provider.
-
Sites API. The Sites API lets you retrieve basic details about the Square Online sites that belong to a Square seller. For more information, see Sites API Overview.
-
Snippets API. The Snippets API lets you manage snippets that provide custom functionality on Square Online sites. A snippet is a script that is injected into all pages on a site, except for checkout pages. For more information, see Snippets API Overview.
The Sites API and Snippets API are publicly available to all developers as part of an early access program (EAP). For more information, see Early access program for Square Online APIs.
-
Payments API.
- CreatePayment. The endpoint now supports ACH bank transfer payments. For more information, see ACH Payment.
-
Loyalty API:
-
The Loyalty API has moved to the general availability (GA) state.
-
The ListLoyaltyPrograms endpoint is deprecated and replaced by the RetrieveLoyaltyProgram endpoint when used with the
main
keyword. -
LoyaltyAccount object. The
mappings
field is retired and replaced bymapping
. -
LoyaltyAccountMapping object. The
type
andvalue
fields are retired and replaced byphone_number
.Starting in Square version 2021-05-13:
mappings
is not accepted inCreateLoyaltyAccount
requests or returned in responses.type
andvalue
are not accepted inCreateLoyaltyAccount
orSearchLoyaltyAccounts
requests or returned in responses.
For more information, see Migration notes.
-
- Getting Started Added step that shows how to use the API Logs to examine a transaction.
-
Subscriptions API:
- ResumeSubscription. This new endpoint enables applications to resume deactivated subscriptions. After a subscription is created, there are events that can make a subscription non-billable, causing Square to deactivate the subscription. A seller can also resume deactivated subscriptions in the Seller Dashboard. Applications can call ListSubscriptionEvents to determine why Square deactivated a subscription.
-
Customers API:
-
Customer object:
- New
version
field (beta). This field represents the current version of the customer profile. You can include it in yourUpdateCustomer
andDeleteCustomer
requests to enable optimistic concurrency. For more information, see Customer profile versions and optimistic concurrency support. - The
groups
field and correspondingCustomerGroupInfo
object are retired.
- New
-
Customer webhooks have moved to the general availability (GA) state. Event notifications now include the
version
field (beta).
-
-
Invoices API:
-
The Invoices API has moved to the GA state.
-
Invoice object:
- A new required
accepted_payment_methods
field that defines the methods of payment that customers can use to pay an invoice on the Square-hosted invoice page. Valid values are defined in the new InvoiceAcceptedPaymentMethods enum. For more information, see the migration notes. - A new
subscription_id
field, which is included in invoices created for subscription billing.
- A new required
-
-
Loyalty API: (beta)
-
RetrieveLoyaltyProgram endpoint. This new endpoint accepts a program ID or the
main
keyword and returns the loyalty program in a seller's account. For more information, see Retrieve a loyalty program. This endpoint is preferred over theListLoyaltyPrograms
endpoint. -
Introduced a new mapping implementation for loyalty accounts:
- LoyaltyAccount object. Added the
mapping
field (of typeLoyaltyAccountMapping
), which is used to associate the loyalty account with a buyer. This field is recommended over themappings
field. - LoyaltyAccountMapping object. Added the
phone_number
field to represent a phone number mapping. This field is recommended over thetype
andvalue
fields.
- LoyaltyAccount object. Added the
-
A new loyalty.program.created webhook. Square now publishes an event notification when a loyalty program is created in the Square Seller Dashboard.
-
-
Inventory API:
- InventoryChange can now have its own measurement unit.
-
Catalog API:
- CatalogItem introduces the
sort_name
attribute that can take Japanese writing scripts to sort items by. When it is unspecified, the regularname
attribute is used for sorting. - CatalogPricingRule has the new
customer_group_ids_any
attribute included to support automatic application of discounts to specified product set purchased by members of any of the customer groups identified by thecustomer_group_ids_any
attribute values.
- CatalogItem introduces the
-
Team API
- New Team webhooks:
team_member.created
,team_member.updated
,team_member.wage_setting.updated
to notify on created and updated team members and wage settings.
- New Team webhooks:
-
Payments API:
- CreatePayment. Until now, the
CreatePayment
endpoint supported only taking card payments. In this release, the API now supports cash and external payments. For more information, see Take Payments. - UpdatePayment. This new endpoint enables developers to change the payment amount and tip amount after a payment is created. For more information, see Update Payments.
- CreatePayment. Until now, the
-
Invoices API:
- InvoiceDeliveryMethod enum. Added the read-only
SMS
value. - InvoiceRequestMethod enum (deprecated). Added the read-only
SMS
,SMS_CHARGE_CARD_ON_FILE
, andSMS_CHARGE_BANK_ON_FILE
values for backward compatibility.
These values direct Square to send invoices and receipts to customers using SMS (text message). SMS settings can be configured from first-party Square applications only; they cannot be configured from the Invoices API. Square does not send invoice reminders when using SMS to communicate with customers.
- InvoiceDeliveryMethod enum. Added the read-only
-
Terminal API:
- TerminalCheckout. Previously,
TerminalCheckout
only supported tapped, dipped, or swiped credit cards. It now supports manual card entry and e-money. Added thepayment_type
field to denote a request for a manually entered payment card or an e-money payment. - TerminalCheckoutPaymentType. A new enum for the Terminal checkout payment types that can be requested.
- E-money support is now available for Terminal checkout requests in Japan.
- TerminalCheckout. Previously,
- Square Java SDK:
- Updated the OkHttp dependency to version 4.9.0.
- Fixed a
NullPointerException
when passing an empty order ID to theUpdateOrder
method.
-
Multi-language code examples. Previously, various topics showed only cURL examples for the REST API operations. These topics now show examples in multiple languages. You can use the language drop-down list to choose a language.
-
When to Use Connect V1. Content is revised to reflect the most current information about when to use the Connect V1 API.
-
Customers API:
- New webhooks (beta). Square now sends notifications for the following events:
-
Orders API:
- CreateOrder. Removed the
location_id
field from the request. It was an unused field.
- CreateOrder. Removed the
-
Payments API:
- Payment. This type now returns the
card_payment_timeline
(CardPaymentTimeline) as part of thecard_details
field.
- Payment. This type now returns the
-
v1 Items API:
- The following endpoints are retired:
AdjustInventory
: Use the Square Inventory API BatchChangeInventory endpoint.ListInventory
: Use the Square Inventory API BatchRetrieveInventoryCounts endpoint.
- The following endpoints are retired:
-
v1 Employees.Timecards:
- The following endpoints are retired:
CreateTimecard
: Use the Square Labor API CreateShift endpoint.DeleteTimecard
: Use the Square Labor API DeleteShift endpoint.ListTimecards
: Use the Square Labor API SearchShift endpoint.RetrieveTimecards
: Use the Square Labor API GetShift endpoint.UpdateTimecard
: Use the Square Labor API UpdateShift endpoint.ListTimecardEvents
: No direct replacement. To learn about replacing the v1 functionality, see the migration guide.
- The following endpoints are retired:
-
v1 Employees.CashDrawers:
- The following endpoints are retired:
ListCashDrawerShifts
: Use the Square CashDrawerShifts API ListCashDrawerShifts endpoint.RetrieveCashDrawerShift
: Use the Square CashDrawerShifts API RetrieveCashDrawerShift endpoint.
- The following endpoints are retired:
-
v1 Transactions.BankAccounts:
- The following endpoints are retired:
ListBankAccounts
: Use the Square Bank Accounts API ListBankAccounts endpoint.RetrieveBankAccount
: Use the Square Bank Accounts API GetBankAccount endpoint.
- The following endpoints are retired:
-
All Square SDKs:
By default, all SDKs send requests to Square's production (https://connect.squareup.com) or sandbox (https://connect.squareupsandbox.com) hosts based on the client's
environment
parameter.You now have the option to use a custom URL instead. To use a custom URL, follow the example for your language to set the
environment
parameter tocustom
and thecustomUrl
parameter to your URL:-
Java
new SquareClient.Builder() .environment(Environment.CUSTOM) .customUrl("https://example.com")
-
.NET
new Square.SquareClient.Builder() .Environment(Environment.Custom) .CustomUrl("https://example.com")
-
Node.js
new Client({ environment: Environment.Custom, customUrl: 'https://example.com' });
-
PHP
new Square\SquareClient([ 'environment' => Environment::CUSTOM, 'customUrl' => 'https://example.com', ]);
-
Python
Client( environment = 'custom', custom_url = 'https://example.com',)
-
Ruby
Square::Client.new( environment: 'custom', custom_url: 'https://example.com' });
-
-
Square .NET SDK:
Square has overridden the
Equals
andGetHashCode
methods for models:- In the
Equals
override, Square has implemented a field-level comparison. - The Square
GetHashCode
override now ensures that hashes are deterministic and unique for each object.
- In the
-
Square Node.js SDK:
Endpoints that return 64-bit integers now return a
BigInt
object instead of aNumber
object. -
Connect Node.js SDK: (deprecated)
The deprecated Connect Node.js SDK is in the security maintenance state. It does not receive any bug fixes or API updates from the Square version 2021-02-26 release. However, the SDK will receive support and security patches until it is retired (end of life) in the second quarter of 2021. For more information, including steps for migrating to the Square Node.js SDK, see the Connect SDK README.
-
Catalog API:
- Update Catalog Objects. Provides programming guidance to update catalog objects.
-
Inventory API:
- List or retrieve inventory. Migrate the retired v1 endpoint of
ListInventory
to the v2 endpoint ofBatchRetrieveInventoryCounts
. Compare and contrast the programming patterns between the v1 endpoint ofListInventory
and its v2 counterparts of BatchRetrieveInventoryCounts or RetrieveInventoryCount. - Adjust or change inventory. Migrate the retired v1 endpoint of
AdjustInventory
to the v2 endpoint ofBatchChangeInventory
. Compare and contrast the programming patterns between the v1 endpoint ofAdjustInventory
and its v2 counterparts of BatchChangeInventory.
- List or retrieve inventory. Migrate the retired v1 endpoint of
-
Get Started topic. Revised the Get Started experience. In addition to clarifications, it now includes the use of the Square Sandbox and API Explorer. These are the tools and environments developers use to explore Square APIs.
-
Invoices API: (beta)
The
InvoicePaymentRequest.request_method
field is deprecated, and its current options are separated into two new fields that better represent their scope:Invoice.delivery_method
specifies how Square should send invoices, reminders, and receipts to the customer.InvoicePaymentRequest.automatic_payment_source
specifies the payment method for an automatic payment.
As part of this change, the InvoiceDeliveryMethod and InvoiceAutomaticPaymentSource enums are added and the
InvoiceRequestMethod
enum is deprecated.The Invoices API will continue to accept
request_method
in create and update requests until the field is retired, but starting in this version,request_method
is not included in returnedInvoice
objects. For more information, see the migration notes. -
Locations API:
- The Locations.MCC field is now updatable (beta). You can use the
UpdateLocation
endpoint to update the merchant category code (MCC) associated with a seller location. For more information, see Initialize a merchant category code.
- The Locations.MCC field is now updatable (beta). You can use the
-
Connect Node.js SDK: (deprecated)
The deprecated Connect Node.js SDK is in the security maintenance state. It will not receive any bug fixes or API updates from the Square version 2021-01-21 release. However, the SDK will receive support and security patches until it is retired (EOL) in Q2, 2021. For more information, including steps for migrating to the Square Node.js SDK, see the Connect SDK README.
-
Catalog API:
- The Use Item Options to Manage Item Variations topic is added. It demonstrates how item variations are usually used and how item options can be used to enable random access to item variations.
-
Inventory API:
- The Inventory API content is updated. It provides clearer guidance about how to use the API, with a task-oriented TOC and improved code examples.
-
Orders API:
-
OrderLineItemPricingBlocklists. You can explicitly specify taxes and discounts in an order or automatically apply preconfigured taxes and discounts to an order. In addition, you can now block applying these taxes and discounts to a specific OrderLineItem in an order. You add the
pricing_blocklists
attribute to individual line items and specify theblocked_discounts
andblocked_taxes
that you do not want to apply. For more information, see Apply Taxes and Discounts. For example walkthroughs, see Automatically Apply Discounts and Automatically Apply Taxes. -
OrderPricingOptions. Previously, the
pricing_options
field in an order supported onlyauto_apply_discounts
to enable the automatic application of preconfigured discounts. Now it also supportsauto_apply_taxes
to enable the automatic application of preconfigured taxes. For more information, see Automatically apply preconfigured catalog taxes or discounts. -
OrderLineItemTax. It now includes the new
auto_applied
field. It indicates whether the tax was automatically applied using a preconfigured CatalogTax.
-
-
Bookings API:
- The CancelBooking endpoint supports canceling an accepted or pending booking.
- The booking.created webhook event notifies when a new booking is created by calling the CreateBooking endpoint.
- The booking.updated webhook event notifies when an existing booking is updated.
-
Catalog API:
- ListCatalog, RetrieveCatalogObject, and BatchRetrieveCatalogObjects now support the
catalog_version
filter to return catalog objects of the specified version.
- ListCatalog, RetrieveCatalogObject, and BatchRetrieveCatalogObjects now support the
-
Customers API:
- SearchCustomers endpoint. The
email_address
,group_ids
,phone_number
, andreference_id
query filters are now generally available (GA). - The Customer Groups API is now GA.
- The Customer Segments API is now GA.
- SearchCustomers endpoint. The
-
Invoices API: (beta)
- Invoice object. Added the
custom_fields
field, which contains up to two customer-facing, seller-defined fields to display on the invoice. For more information, see Custom fields. As part of this change, the following objects are added:- InvoiceCustomField object
- InvoiceCustomFieldPlacement enum
- InvoiceRequestMethod enum. Added the read-only CHARGE_BANK_ON_FILE value, which represents a bank transfer automatic payment method for a recurring invoice.
- Invoice object. Added the
-
Loyalty API: (beta)
- LoyaltyProgramRewardTier object. The
definition
field in this type is deprecated and replaced by the newpricing_rule_reference
field. You can usepricing_rule_reference
fields to retrieve catalog objects that define the discount details for the reward tier. For more information, see Get discount details for a reward tier. As part of this change, the following APIs are deprecated:
- LoyaltyProgramRewardTier object. The
-
Square Node.js SDK:
The new Square Node.js SDK is now GA and replaces the deprecated Connect Node.js SDK. For migration information, see the Connect SDK README.
- Get Right-Sized Permissions with Down-Scoped OAuth Tokens. This new OAuth API topic shows how to get an additional reduced-scope OAuth token with a 24-hour expiration by using the refresh token from the Square account authorization OAuth flow.
- Bookings API (beta). This API enables you, as an application developer, to create applications to set up and manage bookings for appointments of fixed duration in which selected staff members of a Square seller provide specified services in supported locations for particular customers.
- For an overview, see Manage Bookings for Square Sellers.
- For technical reference, see Bookings API.
- Payments API:
- Payment. The object now includes the
risk_evaluation
field to identify the Square-assigned risk level associated with the payment. Sellers can use this information to provide the goods and services or refund the payment.
- Payment. The object now includes the
-
New Square Node.js SDK (beta)
The new Square Node.js SDK is available in beta and will eventually replace the deprecated Connect Node.js SDK. For migration information, see the Connect SDK README. The following topics are updated to use the new SDK:
- The Testing topics are moved from the end of the table of contents to the top, in the Home section under Testing your App.
- [Pay for orders.]](https://developer.squareup.com/docs/orders-api/pay-for-order) Topic revised to add clarity when to use Payments API and Orders API to pay for an order. The [Orders Integration]](https://developer.squareup.com/docs/payments-api/take-payments?preview=true#orders-integration) topic in Payments API simplified accordingly.
-
Terminal API. New endpoints to enable sellers in Canada refund Interac payments.
-
New endpoints:
-
New webhooks:
terminal.refund.created
. Notification of a new Terminal refund request.terminal.refund.updated
. Notification that a Terminal refund request state is changed.
-
New topic Refund Interac Payments.. Describes how to refund Interac payments.
-
-
Loyalty API (beta):
- SearchLoyaltyAccounts. The endpoint supports a new query parameter to search by customer ID.
-
Locations API:
- Location object. Has a new read-only field,full_format_logo_url, which provides URL of a full-format logo image for the location.
- Webhooks The Locations API now supports notifications for when a location is created and when a location is updated.
-
Orders API:
- RetrieveOrder, new endpoint. For more information, see the Retrieve Orders overview.
-
Invoices API (beta):
- Invoice object. The payment_requests field can now contain up to 13 payment requests, with a maximum of 12
INSTALLMENT
request types. This is a service-level change that applies to all Square API versions. For more information, see Payment requests.
- Invoice object. The payment_requests field can now contain up to 13 payment requests, with a maximum of 12
- 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]](https://developer.squareup.com/docs/payments-api/take-payments) 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]](https://developer.squareup.com/docs/payments-api/take-payments).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 .NET
-
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.