Square API Integration for Externally Hosted Website

Hi Square Support,

We’re currently building a client’s website externally rather than using Square Online, but we want to continue using the client’s existing Square account for payments, orders, and fulfillment.

Before we finalize the setup, we’d like to confirm the correct way to integrate the external website with Square and make sure we don’t lose any important Square functionality.

Could you please advise on the following?

  1. External website + Square payments
    Can we host the main website outside of Square and process payments through the client’s existing Square account using Square’s APIs or SDKs?
  2. Payments in the Square Dashboard
    When a customer places an order and pays through the external website, will the completed payment appear correctly in the client’s Square Dashboard, including the transaction details?
  3. Linking payments to orders
    Can payments made through the external website be properly associated with a Square Order so that the order, payment, customer information, and transaction remain connected within Square?
  4. New-order notifications
    Since the website will no longer be running through Square Online, how would the store receive notifications when a new order is placed? Can Square’s existing order notifications still be triggered for orders created through the API?
  5. Pickup and delivery
    Can we use Square’s APIs to create orders from the external website while still supporting the client’s pickup and delivery options and having those fulfillment details reflected correctly in Square?
  6. Order workflow
    Is there a recommended Square API/SDK setup for an externally hosted website where Square remains the payment processor and order management system?
  7. Square Online limitations
    Are there any Square Online features that we would lose by moving the customer-facing website to an external platform while continuing to use Square for payments, orders, and fulfillment?

Most importantly, could you confirm the recommended technical architecture/workflow for this type of setup? We want to make sure payments, orders, fulfillment, notifications, and reporting all remain properly connected to the client’s Square account.

If there are specific APIs, SDKs, webhooks, permissions, or Square settings we need to use, please point us toward those as well.

Thank you!

Welcome to the Developer Forum!

Yes, this is a well-supported pattern. The recommended architecture is: Web Payments SDK (tokenize cards client-side) → your server calls Orders API (create order with line items + fulfillment) → Payments API (pay the order) → Webhooks (get notified of changes). All under one Square application using the client’s existing account credentials. Please find the answers below:

  1. Yes. As noted above, you can use the Web Payments SDK to tokenize card details on your site, then call CreatePayment server-side against the client’s access token.
  2. Yes. API-created payments appear in the Seller Dashboard and in the POS Transactions tab, provided the location_id on the payment matches the location the seller is viewing. You can use the Orders API (not bare payments) to get itemized receipts.
  3. Yes. Create the order first via CreateOrder with line items, then pass the order_id in CreatePayment. The order, payment, and customer stay linked in Square. amount_money on the payment must exactly match the order’s net_amount_due.
  4. Subscribe to these webhooks: order.created, order.updated, payment.updated (status=COMPLETED signals payment completion).
  5. Pickup: fully supported. Include an OrderFulfillment of type PICKUP with pickup_details (recipient, pickup time) in CreateOrder. The order will appear in POS/KDS and auto-print kitchen tickets. Delivery: first-party DELIVERY fulfillment is gated to certified partners only. On-Demand Delivery courier dispatch (DoorDash/Uber) is exclusive to Square Online. You can find more information about the requirements and restrictions here.
  6. The order-ahead use case guide documents exactly this pattern. The flow is:
    • Sync the client’s catalog via Catalog API
    • Create customers via Customers API
    • Build orders via Orders API (with fulfillment)
    • Tokenize cards via Web Payments SDK, pay via Payments API
    • Listen for order.created, order.updated, payment.updated webhooks
  7. There are a handful set of features that wouldn’t inherit automatically including On-Demand Delivery courier dispatch, Square Online’s built-in buyer-facing order notifications and tracking pages, Square Online fulfillment-hours configuration (no API for this — it’s Dashboard-only), and the hosted checkout UI itself. You still keep payments, orders, fulfillment visibility in POS/KDS, reporting, receipts (with Orders API), and kitchen printing.

Hope this helps!