Keep invoice documents with the invoice
When a Sanity document is ready for a customer invoice, let Notis attach it to the corresponding Square invoice.
Trigger
Webhook received
Notis starts this workflow when an external tool or custom backend sends an HTTP request.
Action
Create Invoice Attachment
Upload and attach a file to a Square invoice. Use this action to add supplementary documents (receipts, contracts, supporting documentation) to an existing invoice. Attachments can only be added to invoices in DRAFT, SCHEDULED, UNPAID, or PARTIALLY_PAID state. Square supports up to 10 attachments per invoice with a combined maximum size of 25 MB in production (1 KB in Sandbox). Supported file formats: GIF, JPEG, PNG, TIFF, BMP, PDF. Creating an attachment increments the invoice version and triggers an invoice.updated webhook event.
Why this helps
Finding the right file and remembering to attach it later can turn simple invoice administration into a distracting scavenger hunt.
- Keep supporting documents alongside their invoice.
- Reduce time spent locating and attaching files.
- Make paperwork handoff a repeatable step.
Setup
Build it in a few focused steps.
- 1Connect Sanity and Square to Notis once through the portal.
- 2Create an automation in the portal or ask Notis conversationally.
- 3In one plain-language instruction, ask Notis to attach each ready Sanity document to its corresponding Square invoice.
- 4Select an incoming webhook trigger and set a channel for run reports.
- 5Send one real document and invoice example and verify the attachment.
Questions about this workflow
Can an attachment be added to any invoice?
Square allows attachments on DRAFT, SCHEDULED, UNPAID, or PARTIALLY_PAID invoices.
How does the file reach the workflow?
A backend or external tool sends the document-ready request to Notis with the information needed to identify the invoice and file.
When this happens · Trigger
Do this · Action
Supported Triggers and Actions
Notis builds workflows that link Sanity to Square. A trigger fires from one place; an action lands in another.
Sanity triggers
Square actions
Recurring trigger
Notis starts this workflow on a schedule, such as daily, weekly, or during business hours.
Accept Dispute
Accept a dispute and acknowledge liability, returning funds to the cardholder. When you accept a dispute, Square debits the disputed amount from your account and updates the dispute state to ACCEPTED. This action is irreversible - once accepted, a dispute cannot be challenged. Only use after reviewing all evidence and determining that challenging the dispute is not viable. Note: Requires DISPUTES_WRITE permission scope.
Webhook trigger
Notis starts this workflow when an external tool or custom backend sends an HTTP request.
Add Group to Customer
Tool to add a customer to a customer group. Use when you need to associate a customer with a specific group for targeted marketing, loyalty programs, or customer segmentation.
Calculate Order
Tool to preview order pricing without creating an order. Use when you need to calculate the total cost, taxes, discounts, and other pricing details for an order before finalizing it. Particularly useful for integrating rewards, discounts, and complex pricing scenarios.
Cancel Booking
Cancels an existing Square booking, terminating the reservation. Use this action when a customer or seller needs to cancel a scheduled appointment. The booking must be in a cancellable state, and the cancellation will update the booking status accordingly. This action is irreversible - once a booking is cancelled, it cannot be restored and must be rebooked if needed. Use the booking_version parameter to ensure safe concurrent updates.
Cancel Invoice
Cancels a Square invoice, preventing further payments from being collected. Requirements: - Invoice must be in SCHEDULED, UNPAID, or PARTIALLY_PAID state - Cannot cancel invoices in DRAFT state or terminal states (PAID, REFUNDED, CANCELED, FAILED) - Requires INVOICES_WRITE and ORDERS_WRITE OAuth scopes - Version number must match the current invoice version to prevent conflicts After cancellation, the associated order status is set to CANCELED and webhook events are triggered.
Cancel Payment
Cancels (voids) a payment that is in APPROVED status. This is typically used in delayed capture scenarios where a payment was authorized but not yet captured, allowing you to void the authorization before settlement. Important: Only payments with APPROVED status can be canceled. Attempting to cancel a payment in any other status (COMPLETED, PENDING, CANCELED, FAILED) will result in an error. Once canceled, the payment status changes to CANCELED and the card details status changes to VOIDED. Required permissions: PAYMENTS_WRITE
Batch Create Inventory Changes
Applies multiple inventory adjustments and physical counts in a single batch request. Returns the created changes and current inventory counts for all affected items. Use this action when you need to update inventory quantities for multiple items or locations at once, either through physical stock counts or adjustments (e.g., receiving stock, recording waste, or correcting discrepancies). Supports up to 100 inventory changes per request. Each change can be either a PHYSICAL_COUNT (setting absolute quantity) or an ADJUSTMENT (modifying quantity with state transitions). The ignore_unchanged_counts parameter controls whether calculated counts are returned in the response.
Create Bulk Customers
Tool to create multiple customer profiles in a single request. Use when you need to efficiently create up to 100 customers at once. Each customer is identified by a unique idempotency key.
Connect any two apps with Notis in the middle.
Sanity and Square, or any other combination from 1,000+ integrations.
When this happens · Trigger
Do this · Action
Save your first hour today.
7-day trial of any paid plan, with 20$ of usage included.
No card. Works with personal or business Square.