PaygateDeveloper documentation
409checkout.link_unavailablecheckoutRule C3

This payment link can no longer be used

The link is past expires_at, has reached max_uses, or has been disabled. uses is incremented inside the same transaction that reads max_uses, so concurrent opens can never take a link past its limit — which is why the last concurrent opener sees this rather than a successful payment.

Why the API refuses

WHEN a payment link past expires_at, at max_uses or disabled is opened, THE SYSTEM SHALL reject the open and report the reason, and SHALL increment uses inside the transaction that read max_uses so concurrent opens never exceed it.

What to do

Show the payer a clear end-of-life message rather than a generic error, and check expires_at, uses, max_uses and status before publishing a link anywhere it will be clicked later. The detail says which of the three applied.

Operations that can return it