Square integration

POS & payments: orders, invoices, customers, inventory, catalog

Help CentreConnectors

Overview

Square is a POS + payments platform popular with brick-and-mortar retailers. The Automize Square connector covers customers, catalog (products), orders, payments, and invoices.

  • Regions: US, CA, UK, AU, JP, IE, FR, ES. Different sandbox + live URLs per region – connector picks based on the account's home country.
  • Plans: Free POS. Paid feature add-ons (Square for Restaurants, Retail, Appointments). API access on all plans.

Setting up the connection

Auth type: OAuth 2.0 (Authorization Code).

  1. Sign in to developer.squareup.com → Create Application.
  2. Set OAuth Redirect URL to the one in the Automize Square connector dialog.
  3. Set scopes: MERCHANT_PROFILE_READ, CUSTOMERS_READ, CUSTOMERS_WRITE, ITEMS_READ, ITEMS_WRITE, ORDERS_READ, ORDERS_WRITE, PAYMENTS_READ, PAYMENTS_WRITE, INVOICES_READ, INVOICES_WRITE.
  4. Copy Application ID + Application Secret.
  5. In Automize, open Settings → Connectors → Square → Add connection. Choose Sandbox or Production, paste credentials, connect.

Find your credentials at https://developer.squareup.com/apps.


Rate limits

Square enforces per-merchant rate limits (~700/min on most endpoints). Connector retries 429 with Retry-After.


Data model

Square primitives:

    Merchant ─┬─ Locations (physical stores)
              │     ├─ Orders ─── Line Items ─── Catalog Items
              │     ├─ Payments
              │     └─ Invoices
              ├─ Customers
              └─ Catalog (Items + Variations + Categories + Modifiers)

Available operations

11 operations available. Click any row to jump to its detail.

OperationCategoryWhat it does
Create CustomerGeneralCreate a new customer
Create InvoiceGeneralCreate a new invoice
Create OrderGeneralCreate a new order
Create PaymentGeneralCreate a new payment
Get PaymentGeneralGet payment details by ID
List CatalogGeneralList catalog objects
List CustomersGeneralList all customers
List InvoicesGeneralList invoices for a location
List OrdersGeneralSearch orders
List PaymentsGeneralList all payments
Search CatalogGeneralSearch catalog objects

Operations

Create Customer

Create a new customer

ParameterRequiredTypeDescription
Given Name given_nameYestext
Family Name family_nameYestext
Email Address email_addressYestext
Phone Number phone_numberYestext

Tips

  • given_name + family_name + email_address + phone_number.
  • Square dedupes by email – duplicate emails return existing customer.

Create Invoice

Create a new invoice

ParameterRequiredTypeDescription
Invoice invoiceYestext
Idempotency Key idempotency_keyYestext

Tips

  • invoice: {order_id, primary_recipient:{customer_id}, payment_requests:[{request_type:'BALANCE'}], delivery_method:'EMAIL'}.
  • idempotency_key required.

Create Order

Create a new order

ParameterRequiredTypeDescription
Order orderYestext

Tips

  • order: {location_id, line_items:[{catalog_object_id, quantity}], state}.
  • Returns order_id used for Create Payment.

Create Payment

Create a new payment

ParameterRequiredTypeDescription
Source Id source_idYestext
Amount Money amount_moneyYestext
Idempotency Key idempotency_keyYestext

Tips

  • source_id: card nonce from Web Payments SDK OR saved card_id.
  • amount_money: {amount: 1000, currency: 'USD'} – amount in smallest unit (cents).
  • idempotency_key: REQUIRED – UUID for retry safety.

Errors

  • INVALID_PAYMENT – Card declined / invalid source. Check source_id is fresh.

Get Payment

Get payment details by ID

ParameterRequiredTypeDescription
Payment Id payment_idYestext

Tips

  • Returns payment + status (APPROVED, COMPLETED, CANCELED, FAILED).

List Catalog

List catalog objects

No input parameters.

Tips

  • Filter by types (ITEM, ITEM_VARIATION, CATEGORY, MODIFIER, TAX, DISCOUNT).

List Customers

List all customers

No input parameters.

Tips

  • Page via cursor. Filter by sort_field, sort_order.

List Invoices

List invoices for a location

No input parameters.

Tips

  • Filter by location_id, customer_id, status.

List Orders

Search orders

ParameterRequiredTypeDescription
Location Ids location_idsYestext
Query queryYestext

Tips

  • location_ids[] required + query filters (state, created_at, total_money range).

List Payments

List all payments

No input parameters.

Tips

  • Filter by begin_time, end_time, sort_order, location_id.

Search Catalog

Search catalog objects

ParameterRequiredTypeDescription
Object Types object_typesYestext
Query queryYestext

Tips

  • Body: {object_types:['ITEM'], query: {prefix_query: {attribute_name:'name', attribute_prefix:'pizza'}}}.

FAQ

Sandbox vs production?
Different OAuth URLs + credentials. Sandbox uses test cards (4111 1111 1111 1111). Set environment on connection.
Why is my payment failing with 'idempotency key reused'?
Square requires unique idempotency_key per logical operation. Generate a new UUID per call (NOT per retry – retries reuse the same key intentionally for idempotency).
Multi-location stores?
One Square account can have multiple locations. Pass location_id per operation. List Locations (not exposed here) returns all available.
Web Payments SDK – what's that?
Client-side card tokenisation. Browser → Square gets a card nonce → server passes nonce as source_id to Create Payment. Avoids handling card numbers server-side (PCI scope).

Related connectors

See it working on your own data

Everything documented here ships with the platform – try the document tools free, or go live in 7 days.