Are you able to confirm what actions take a payment link status from Draft to Open, please?
We create payment links and check the status to work out whether someone has paid. DRAFT we treat as unpaid, OPEN as paid.
Just had one where that went wrong. Order created DRAFT, came back OPEN the next morning, but there’s no payment in our dashboard at all. The customer ended up paying us by bank transfer instead, so nothing was ever taken through Square.
Is just opening the checkout page enough to move it to OPEN? Or would an abandoned or declined attempt do it?
And if OPEN doesn’t mean paid, what should we be checking instead?
Cheers.
Short answer: OPEN doesn’t mean paid. An order moves from DRAFT to OPEN as soon as the buyer opens the checkout page so abandoned or declined attempts leave it OPEN too, with no payment taken. That’s what happened in your case.
The order state also stays OPEN after a successful payment (it never auto-moves to COMPLETED), so it’s not a payment signal in either direction. See Common Pitfalls — Orders stuck in OPEN status.
Instead, check for a payment with status: COMPLETED:
- Webhooks (recommended): subscribe to
payment.updated and match the payment’s order_id to your payment link’s order.
- If polling: retrieve the order and check
net_amount_due_money.amount == 0, or verify the tender’s payment via GetPayment.
Hope that helps!