Skip to main content

Square

Read and work a Square seller account - payments, refunds, orders, customers, catalogue and inventory - and create hosted payment links.

Connect a Square account with an access token to answer questions about takings and act on them: read payments with their tips, refunds and processing fees, search orders across locations, look up and maintain customer records with optimistic-locking safety, search the catalogue and read stock per location and state, record physical stock counts, refund payments fully or partially, and create Square-hosted payment links for a customer to pay. Amounts are handled in minor units with each location's own currency.

Connect

Credential fieldRequiredWhere it comes from
Access token (ACCESS_TOKEN)YesThe Square access token for the chosen environment, from developer.squareup.com. Its granted permissions are the ceiling for every tool here.
SettingRequiredWhat it is
Environment (ENVIRONMENT)YesWhich Square installation this connection talks to: production or sandbox. They have separate hosts, tokens and data, so this must match the token.
API version (API_VERSION)NoOptional. A dated Square API version such as 2026-01-22. Leave empty to use the version assigned to your Square application.

Tools

ToolAccessWhat it does
List locations (yekar.square.list-locations)ReadEvery location on this Square account, with the ids that payments, orders, inventory and payment links are all scoped to - and the environment (production or sandbox) this connection reads. Locations can trade in DIFFERENT currencies, so amounts from two locations are not directly comparable. Run this first to confirm a connection works.
List payments (yekar.square.list-payments)ReadA page of card and cash payments, newest first, optionally for one location or time window. Read the amounts carefully: amount is the charge WITHOUT the tip, tip is separate, total is what the customer paid, refunded is what has gone back, and processingFee is Square's cut - null while a payment is unsettled, which is not the same as zero. Amounts are in minor units of the location's currency.
Get payment (yekar.square.get-payment)ReadOne payment by id: status, amount, tip, total, how much has been refunded, Square's processing fee, the card brand and last four, and the receipt URL. This is the id Refund payment takes.
List refunds (yekar.square.list-refunds)ReadA page of refunds, newest first, optionally by location, status or time window. A PENDING refund has been accepted by Square but has not settled to the customer; REJECTED and FAILED mean the money stayed put. processingFeeReturned is the part of Square's fee that came back with it.
Search orders (yekar.square.search-orders)ReadOrders at one or more locations, filtered by state and creation window. Square requires the location ids, so nothing here silently searches only part of a multi-location business. Note an order's total does NOT drop when it is refunded - totalRefunded is reported beside it. Square's own default covers OPEN and COMPLETED orders only.
Get order (yekar.square.get-order)ReadOne order with its line items (up to 25; lineItemsOmitted counts the rest), taxes, discounts, tip and refunds. Line quantities are decimal STRINGS because Square sells by weight as well as by unit.
List customers (yekar.square.list-customers)ReadA page of customer records. Note creationSource: Square creates an INSTANT_PROFILE customer automatically the first time a card is used, so most rows on a busy seller are card profiles rather than people who signed up. To find someone specific, use Search customers.
Search customers (yekar.square.search-customers)ReadFind customers by EXACT email, phone or your own reference id. This is exact matching, not a contains-search: a partial email returns nothing rather than the closest thing. Square allows several customers to share an email, so more than one row is a normal result.
Get customer (yekar.square.get-customer)ReadOne customer by id, including the version that Update customer must send back - Square uses optimistic locking, so an update carrying a stale version is refused rather than overwriting someone else's change.
Search catalog items (yekar.square.search-catalog-items)ReadSearch the Square catalogue by text, category or stock level. An ITEM carries the name and description; its VARIATIONS carry the price, SKU and inventory tracking - and it is the VARIATION id that Get inventory counts and Set inventory count take. A variation with pricingType: VARIABLE_PRICING has no price by design (the cashier enters it), so a null price there is a fact rather than missing data.
Get inventory counts (yekar.square.get-inventory-counts)ReadStock counts for catalogue VARIATIONS, per location. Square returns one row per variation, location AND state - read only the IN_STOCK rows to answer 'how many can I sell'; SOLD, WASTE and RETURNED_BY_CUSTOMER are separate counts of other things and must not be summed with it. Quantities are decimal strings because Square sells by weight too.
Refund payment (yekar.square.refund-payment)WriteRefund a Square payment, fully or partially. Amounts are in MINOR units of the payment's own currency; omit the amount to refund whatever is left. This moves real money back to the customer and cannot be undone. The refund may come back PENDING - issued, but not yet settled to the customer.
Create customer (yekar.square.create-customer)WriteCreate a customer record. Square does NOT deduplicate on email or phone - running this twice for the same person creates two records. Search first with Search customers, and set referenceId to your own id so the duplicate is findable if one is ever made.
Update customer (yekar.square.update-customer)WriteUpdate a customer's name, company, email, phone, reference id or note. Only the fields you pass change. Pass the version from Get customer to make this a safe compare-and-set: Square refuses the write if someone else changed the record in between, rather than silently overwriting them.
Set inventory count (yekar.square.set-inventory-count)WriteRecord a physical stock count: set the ABSOLUTE quantity of catalogue variations at a location (not a delta). Square has no compare-and-set for inventory, so a sale that happens between reading the count and writing it WILL be overwritten - re-read immediately before writing. Takes VARIATION ids, not item ids.
Create payment link (yekar.square.create-payment-link)WriteCreate a Square-hosted checkout link for a one-off amount and return its URL - a page the customer pays on themselves. This charges nobody: it produces a link. The amount is in MINOR units and its currency must match the location's. (This is Square's Quick Pay: an ad-hoc item and price, not a catalogue sale, so catalogue taxes and modifiers do not apply.)

Notes

  • At developer.squareup.com create an application (or open an existing one), then copy the ACCESS TOKEN for the environment you want. Production and sandbox have different tokens and different data - a token from one never works against the other.
  • Set Environment to production or sandbox to match that token. This is required: pointing a production token at sandbox reads an empty seller account rather than failing loudly.
  • The token's permissions are the ceiling - grant the application PAYMENTS_READ, PAYMENTS_WRITE (for refunds), ORDERS_READ, CUSTOMERS_READ, CUSTOMERS_WRITE, ITEMS_READ, INVENTORY_READ and INVENTORY_WRITE as needed. Adding a permission means updating the application and re-issuing the token.
  • Leave API version empty unless you need a specific one: unset, Square uses the version assigned to your application, which is what your other integrations already see.
  • Amounts are in the currency's MINOR unit - 2050 means $20.50, but 2050 means ¥2050 because JPY has no minor unit. Currencies are per LOCATION, so amounts from two locations are not comparable without checking.
  • A payment's amount excludes the tip and total includes it; processingFee is Square's cut and is null (not zero) until the payment settles. Refunds and orders do not reduce the original totals - the refunded amount is reported beside them.
  • Refunding is real money leaving the account and cannot be undone; a refund can come back PENDING, meaning issued but not yet settled to the customer.
  • There is deliberately no tool that charges a card: the money-in path is Create payment link, which returns a page the customer completes.
  • Every action is attributed to this access token, not to the person who triggered the automation. Bind automations using this integration as a service connection.