Skip to main content

Square

Square is a payments and point-of-sale platform used by retail and hospitality businesses to process in-person and online transactions. The Square API provides access to payment records, orders, customer profiles, invoices, and catalog data for reporting, reconciliation, and integration purposes.

Square icon

Power end-to-end data operations for your Square API with Nexla. Our bi-directional Square connector is purpose-built for Square, making it simple to ingest data, sync it across systems, and deliver it anywhere — all with no coding required. Nexla turns API-sourced data into ready-to-use, reusable data products and makes it easy to send data to Square or any other destination. With comprehensive monitoring, lineage tracking, and access controls, Nexla keeps your Square workflows fast, secure, and fully governed.

Features

Type: API

SourceDestination

  • Seamless API Integration: Connect to any endpoint as source or destination without coding, with automatic data product creation
  • Visual Composition & Chaining: Build complex integrations using visual templates, chain API calls, and compose workflows with data validation and filtering
  • API Proxy: Expose curated slices of your data securely with a secure and customizable API proxy that validates and transforms data on the fly
  • Request optimization with intelligent batching, retry, and caching to minimize API calls and costs

Prerequisites

Before creating a Square credential, you need administrator or team member access to your Square account with permission to authorize third-party applications. Square uses OAuth2 3-legged authentication for all API requests, and Nexla's pre-registered Square application handles the authorization flow—you do not need to register your own Square application to authenticate.

During the authorization process, you will be redirected to Square to sign in and grant a set of permission scopes to Nexla's application. Choose the scopes that match the data your flow needs:

  • Payments: PAYMENTS_READ for transaction and refund information
  • Orders: ORDERS_READ for itemized order data
  • Customers: CUSTOMERS_READ for customer profile information
  • Invoices: INVOICES_READ for billing invoice data
  • Items: ITEMS_READ for product catalog and inventory data
  • Merchant Profile: MERCHANT_PROFILE_READ for business and location information

After authorization, Square will provide an access token that is sent in the Authorization: Bearer {token} header for all API requests to the Square API. Every request also requires a Square-Version header, a date-stamped value (for example 2025-10-16) that pins the API version your integration is built against; Square recommends using the latest stable version for best compatibility. Square API requests are sent to https://connect.squareup.com for production accounts. If your credential is compromised, you should immediately revoke it from your Square account's application authorization settings and create a new credential in Nexla. For detailed information about Square OAuth authentication, permission scopes, and available endpoints, refer to the Square OAuth API documentation and OAuth Permissions Reference.

Authenticate

Credentials required

OAuth 2.0 authentication for Square API

FieldRequiredSecretDescription
API Access ScopeYesNoSquare API permissions scope. Allowed values: Payments & Orders (Read); Customers & Invoices (Read); Full Read Access; Full Read/Write Access.
Square API VersionYesNoSquare API version in YYYY-MM-DD format. Use latest stable version for best compatibility.
Square API Base URLYesNoSquare API base URL.

Create a credential in Nexla

  1. After selecting the data source/destination type, click the Add Credential tile to open the Add New Credential overlay.

  2. Enter a name for the credential in the Credential Name field and a short, meaningful description in the Credential Description field.

  3. Select the permission scope for the credential in the API Access Scope field. Choose the scope grouping that matches the data your flow needs—for example, Payments & Orders (Read) for transaction and order data, Customers & Invoices (Read) for customer and billing data, or Full Read Access to cover payments, orders, customers, invoices, and catalog items. This scope determines the permissions Nexla's application will request when you authorize with Square.

  4. Confirm the Square API Version field. This should be a date in YYYY-MM-DD format (for example, 2025-10-16) identifying the version of the Square API to call. Use the latest stable version listed in the Square API changelog unless your integration depends on an older version.

  5. Confirm the Square API Base URL field. This defaults to the production endpoint, https://connect.squareup.com.

  6. Square uses OAuth2 3-legged authentication for all API requests, handled through Nexla's pre-registered Square application. Click Authorize or Connect to initiate the OAuth2 authorization flow. You will be redirected to Square to authorize the application.

  7. Sign in to your Square account if prompted, review the permissions requested by the application, and select the business locations the credential should have access to.

  8. Click Allow to grant the application access to your Square account.

  9. After authorization, you will be redirected back to Nexla, and the access token will be automatically configured for your credential.

    Nexla's Square application handles the OAuth2 3-legged authorization flow automatically—you do not need to register your own Square application to authenticate. During credential creation, you will be redirected to Square to sign in and authorize the application. After authorization, Square will provide an access token that is used in the Authorization: Bearer {token} header for all API requests to the Square API, along with a Square-Version header identifying the API version.

    If your credential is compromised, you should immediately revoke it from your Square account's application authorization settings and create a new credential in Nexla. The credential provides access to your Square business data and should be treated as sensitive information.

    For detailed information about Square OAuth2 authentication, permission scopes, and available endpoints, see the Square OAuth API documentation and OAuth Permissions Reference.

  10. Click the Save button at the bottom of the overlay. The newly added credential will now appear in a tile on the Authenticate screen during data source/destination creation.

Use as a data source

To create a new data flow, navigate to the Integrate section, and click the New Data Flow button. Select the Square connector tile, then select the credential that will be used to connect to your Square account, and click Next; or, create a new Square credential for use in this flow.

Endpoint templates

Nexla provides pre-built templates that can be used to rapidly configure data sources to ingest data from common Square endpoints. Select the endpoint from which this source will fetch data from the Endpoint pulldown menu. Available endpoint templates are listed in the expandable boxes below.

List Payments

This endpoint template retrieves POS and online payment records from your Square account. Use this template when you need to access payment or transaction data for reconciliation, reporting, or integration purposes.

  • Enter the Start Date and End Date fields in RFC 3339 format (for example, 2024-01-01T00:00:00Z), or use Nexla date-time macros such as {now-30} and {now} for relative date ranges. These fields default to the last 30 days.
  • Enter the Page Size field to control the number of results returned per page, up to a maximum of 200. This field defaults to 100.

This endpoint returns payment records from your Square account, including payment IDs, amounts, statuses, and timestamps. The endpoint uses cursor-based pagination; Nexla will automatically follow the pagination cursor to fetch subsequent pages of data.

For detailed information about payments, response structures, and available fields, see the Square List Payments API documentation.

Search Orders

This endpoint template searches for itemized sales orders in your Square account. Use this template when you need to access order line items, fulfillment details, or sales data for analysis, reporting, or integration purposes.

  • Enter the Search Query Body field with the JSON search criteria for the request, including location_ids and query filters such as a date range or order state. This field defaults to a search for orders created in the last 30 days at a placeholder location ID, which you must replace with a valid Square location ID.

This endpoint sends a JSON request body to search for orders matching the specified criteria, including order IDs, line items, fulfillment state, and totals. The endpoint uses cursor-based pagination; Nexla will automatically follow the pagination cursor to fetch subsequent pages of data.

For detailed information about the search request body format, filters, and available fields, see the Square Search Orders API documentation.

List Customers

This endpoint template retrieves customer profiles from your Square account. Use this template when you need to access customer contact details or profile data for analysis, reporting, or integration purposes.

  • Enter the Page Size field to control the number of results returned per page, up to a maximum of 100. This field defaults to 100.

This endpoint returns customer profile information from your Square account, including customer IDs, contact details, and profile metadata. The endpoint uses cursor-based pagination; Nexla will automatically follow the pagination cursor to fetch subsequent pages of data.

For detailed information about customer profiles and available fields, see the Square List Customers API documentation.

List Invoices

This endpoint template retrieves billing invoices from your Square account. Use this template when you need to access invoice status, amounts, or billing data for reporting or reconciliation purposes.

  • Enter the Location ID field with the Square location ID to filter invoices by. You can find your location IDs using the Merchant Profile Read scope or in your Square Dashboard under Account & Settings > Locations.
  • Enter the Page Size field to control the number of results returned per page, up to a maximum of 200. This field defaults to 100.

This endpoint returns invoice records from your Square account, including invoice IDs, status, due dates, and amounts. The endpoint uses cursor-based pagination; Nexla will automatically follow the pagination cursor to fetch subsequent pages of data.

For detailed information about invoices and available fields, see the Square List Invoices API documentation.

List Catalog Items

This endpoint template retrieves products and inventory from your Square catalog. Use this template when you need to access product, category, discount, or tax data for analysis, reporting, or integration purposes.

  • Enter the Catalog Object Types field with a comma-separated list of catalog object types to retrieve, such as ITEM, CATEGORY, DISCOUNT, or TAX. This field defaults to ITEM,CATEGORY,DISCOUNT,TAX.

This endpoint returns catalog objects from your Square account matching the requested types, including item names, prices, categories, discounts, and tax rules. The endpoint uses cursor-based pagination; Nexla will automatically follow the pagination cursor to fetch subsequent pages of data.

For detailed information about catalog objects and available fields, see the Square List Catalog API documentation.

Once the selected endpoint template has been configured, click the Test button to the right of the endpoint selection menu to retrieve a sample of the data that will be fetched. Sample data will be displayed in the Endpoint Test Result panel on the right, allowing you to verify that the source is configured correctly before saving.

Manual configuration

Square data sources can also be manually configured to ingest data from any valid Square API endpoint, including endpoints not covered by the pre-built templates, chained API calls, or custom request parameters. Select the Advanced tab at the top of the configuration screen, and follow the instructions in Connect to Any API to configure the API method, endpoint URL, date/time and lookup macros, path to data, metadata, and request headers.

All Square API requests require a Square-Version header set to the date-stamped API version (for example, 2025-10-16). Square uses cursor-based pagination via a cursor parameter and a cursor value returned in the response for most list and search endpoints.

Once all of the relevant settings have been configured, click the Create button in the upper right corner of the screen to save and create the new Square data source. Nexla will now begin ingesting data from the configured endpoint and will organize any data that it finds into one or more Nexsets.