Square

Connect your AI agents to Square.

Available Tools

create_booking

Create a booking/appointment. Requires start_at, location_id, and appointment_segments with service and team member.

list_bookings

List bookings. Filter by location, team member, or date range. Returns paginated list with status.

get_booking

Get a booking by ID. Returns full booking details including service, team member, and customer.

update_booking

Update a booking. Can reschedule, change team member, or update notes. Use version for concurrency.

cancel_booking

Cancel a booking. Booking status changes to CANCELLED. Use booking_version for concurrency.

list_team_member_booking_profiles

List team members available for booking. Filter by location or bookable status. Returns profiles with availability.

search_availability

Search for available booking time slots. Specify date range and service. Returns available times with team members.

list_cards

List cards on file. Filter by customer_id or reference_id. Returns cards with last 4 digits, brand, and expiration.

get_card

Get a card by ID. Returns card details including last 4 digits, brand, expiration, and billing address.

create_card

Save a card on file for a customer. Requires source_id (card nonce from Web Payments SDK) and customer_id. Returns saved card.

disable_card

Disable a card on file. The card can no longer be used for payments. This action is irreversible.

list_catalog

List catalog objects (items, categories, taxes, discounts). Filter by object types. Returns paginated list with cursor.

get_catalog_object

Get a catalog object by ID. Include related objects (variations, categories, images) with include_related_objects.

upsert_catalog_object

Create or update a catalog object. Object must include type and type-specific data (item_data, category_data, etc).

delete_catalog_object

Delete a catalog object by ID. Also deletes related objects (e.g., deleting item deletes its variations).

search_catalog_objects

Search catalog by text (name, description, SKU), exact match, or prefix. Filter by object types and include related objects.

batch_upsert_catalog_objects

Create or update multiple catalog objects in one request. More efficient than individual upserts.

batch_delete_catalog_objects

Delete multiple catalog objects in one request. Also deletes related objects.

create_customer_group

Create a customer group for segmentation. Groups help organize customers for marketing and reporting.

list_customer_groups

List all customer groups. Returns group names and IDs for segmentation.

get_customer_group

Get a customer group by ID. Returns group details including name and creation time.

update_customer_group

Update a customer group’s name. Returns the updated group.

delete_customer_group

Delete a customer group. Removes the group but not the customers in it.

add_customer_to_group

Add a customer to a group. Customer will be included in group-based reports and marketing.

remove_customer_from_group

Remove a customer from a group. Customer will no longer be included in group-based activities.

create_customer

Create a new customer profile. Provide name, email, phone, address. Returns customer with unique ID for future payments and orders.

list_customers

List all customers with optional sorting and pagination. Returns customers with their contact info and IDs.

get_customer

Get a customer by ID. Returns full customer profile including contact info, addresses, and group memberships.

update_customer

Update a customer’s profile. Provide fields to update (name, email, phone, address, etc). Returns updated customer.

delete_customer

Delete a customer by ID. Removes the customer profile. Use version for optimistic concurrency.

search_customers

Search customers by email, phone, reference_id, or fuzzy name match. Use to find existing customers before creating duplicates.

create_gift_card

Create a gift card. Specify PHYSICAL or DIGITAL type. Card starts with $0 balance until activated.

list_gift_cards

List gift cards. Filter by type, state, or linked customer. Returns cards with balances.

get_gift_card

Get a gift card by ID. Returns card details including balance, state, and linked customers.

get_gift_card_from_gan

Get a gift card by its GAN (gift card account number). Use when customer provides the card number.

link_customer_to_gift_card

Link a customer to a gift card. Customer can view and use the card in their account.

unlink_customer_from_gift_card

Unlink a customer from a gift card. Customer will no longer see the card in their account.

create_gift_card_activity

Create a gift card activity: ACTIVATE, LOAD, REDEEM, DEACTIVATE, or ADJUST balance. Each type has specific required details.

batch_retrieve_inventory_counts

Get inventory counts for catalog items at locations. Filter by item IDs, location IDs, or inventory states.

batch_change_inventory

Change inventory counts. Supports physical counts, adjustments, and transfers between locations. Requires idempotency_key.

retrieve_inventory_changes

Get history of inventory changes. Filter by item, location, change type, or time range.

create_invoice

Create an invoice for an order. Requires location_id, order_id. Invoice starts as DRAFT until published.

list_invoices

List invoices for a location. Returns paginated list with invoice status and amounts.

get_invoice

Get an invoice by ID. Returns full invoice details including payment requests and status.

update_invoice

Update a draft invoice. Can modify payment requests, recipient, title, etc. Requires current version.

delete_invoice

Delete a draft invoice. Cannot delete published invoices - cancel them instead.

publish_invoice

Publish a draft invoice to send to customer. Invoice status changes from DRAFT to UNPAID. Requires version.

cancel_invoice

Cancel a published invoice. Changes status to CANCELED. Cannot be undone. Requires version.

search_invoices

Search invoices by location and optionally by customer. Returns matching invoices with details.

list_locations

List all business locations. Returns location details including address, hours, and capabilities.

get_location

Get a location by ID. Returns full location details including address, hours, and social media links.

create_location

Create a new business location. Requires name. Can include address, hours, and contact info.

update_location

Update a location’s details. Can modify name, address, hours, contact info, and social links.

create_loyalty_account

Create a loyalty account for a customer. Link by phone number. Returns account with initial balance.

search_loyalty_accounts

Search loyalty accounts by phone, customer ID, or program. Returns accounts with points balances.

get_loyalty_account

Get a loyalty account by ID. Returns points balance, lifetime points, and expiring points.

accumulate_loyalty_points

Add points to a loyalty account from a purchase. Can link to order_id or add manual points.

adjust_loyalty_points

Manually adjust loyalty points. Positive to add, negative to subtract. Provide reason for audit.

redeem_loyalty_reward

Redeem a loyalty reward on an order. Deducts points from account. Returns reward with discount details.

list_loyalty_programs

List all loyalty programs. Returns program details including reward tiers and accrual rules.

list_merchants

List merchants associated with the access token. Usually returns a single merchant for the account.

get_merchant

Get merchant info by ID. Use ‘me’ for the current merchant. Returns business name, country, and main location.

create_order

Create an order with line items. Requires location_id and idempotency_key. Can include catalog items or custom items with prices.

search_orders

Search orders by location, customer, state, or date range. Returns matching orders with details.

get_order

Get an order by ID. Returns full order details including line items, totals, fulfillments, and payments.

update_order

Update an order. IMPORTANT: First call get_order to get current version. Add line items, update fulfillment, or change state.

pay_order

Pay for an order using payment IDs. Links payments to the order and completes the transaction.

clone_order

Clone an existing order to create a copy. Useful for repeat orders. Returns new order with same line items.

calculate_order

Calculate order totals without creating an order. Preview taxes, discounts, and final amounts before committing.

create_payment

Create a payment to charge a customer. Requires source_id (card nonce or card on file), idempotency_key (unique UUID), and amount_money. Returns payment with status and receipt URL.

list_payments

List payments with optional filters. Filter by time range, location, card details, or amount. Returns paginated list with cursor for next page.

get_payment

Get a payment by ID. Returns full payment details including status, amounts, card details, and receipt URL.

cancel_payment

Cancel a payment that has not been completed. Only works for payments in APPROVED or PENDING status.

complete_payment

Complete a delayed payment. Use for payments created with autocomplete=false. Captures the authorized amount.

create_refund

Refund a payment. Requires payment_id, idempotency_key, and amount_money. Can refund full or partial amounts. Returns refund with status.

list_refunds

List refunds with optional filters. Filter by time range, location, status, or source type. Returns paginated list.

get_refund

Get a refund by ID. Returns refund details including status, amount, and associated payment.

create_subscription

Create a subscription for recurring billing. Requires location, plan_variation_id, and customer_id. Returns subscription with status.

list_subscriptions

List subscriptions. Filter by location or customer. Returns paginated list with status and billing info.

get_subscription

Get a subscription by ID. Returns full subscription details including phases and scheduled actions.

update_subscription

Update a subscription. Can change card, tax percentage, or price override. Use version for concurrency.

cancel_subscription

Cancel a subscription. Schedules cancellation at end of current billing period.

pause_subscription

Pause a subscription. Can set pause duration or resume date. Customer won’t be billed during pause.

resume_subscription

Resume a paused subscription. Can specify when to resume. Billing resumes from resume date.

create_team_member

Create a team member. Provide name, email, phone. Assign to locations. Returns team member with ID.

list_team_members

List team members. Filter by location or status. Returns paginated list with contact info.

get_team_member

Get a team member by ID. Returns full profile including locations and status.

update_team_member

Update a team member. Can modify name, contact info, status, and location assignments.

search_team_members

Search team members by location, status, or owner flag. Returns matching members.

validate_credential

Validate Square API credentials by listing merchants. Returns {success, message}.