The Issue: We generate hosted payment links via the Checkout API (POST /v2/online-checkout/payment-links) with an inline order object.
- Pickup Orders:
- When the order has
fulfillments: [{ type: "PICKUP", pickup_details: { ... } }], the payment oncheckout.square.sitesucceeds cleanly (Apple Pay, Google Pay, and Card all complete and capture).
- When the order has
- Delivery Orders:
- When the order has
fulfillments: [{ type: "DELIVERY", delivery_details: { ... } }], the customer enters their card, receives a 3D Secure bank challenge, and approves it in their banking app (bank allows the transaction). - However, immediately after bank 3DS approval, the checkout page fails to complete the payment and voids/aborts the authorization.
- When the order has
Questions for Square:
- Does Square Online Checkout (
checkout.square.site) require a connected On-Demand Delivery courier integration (e.g. Uber/Stuart) to process payments for orders withtype: "DELIVERY"? - If a restaurant manages its own local delivery, what is the recommended way to model delivery orders in the Orders / Checkout API so payments capture without courier dispatch errors?