{"id":"d11cf47d-5282-4924-bac3-a33f6c151a45","task":"Create a Square Terminal checkout that references existing payments created on a physical terminal device","domain":"developer.squareup.com","steps":["Call CreateTerminalCheckout (POST /v2/terminals/checkouts) with a unique idempotency_key, checkout.amount_money, and device_options.device_id for the target terminal.","Poll GetTerminalCheckout or use webhooks to watch the checkout's status move through PENDING, IN_PROGRESS, CANCEL_REQUESTED, and on to COMPLETED or CANCELED.","Once status is COMPLETED, read the checkout's payment_ids array to get the IDs of the Payment objects the terminal produced — do not look for a singular payment_id field.","If more than one ID appears in payment_ids (for example after a retry on the terminal), fetch each Payment individually via the Payments API and reconcile amounts against the checkout's amount_money.","Use CancelTerminalCheckout if the checkout is still PENDING or IN_PROGRESS and needs to be aborted before completion."],"gotchas":["TerminalCheckout exposes payment references as payment_ids, an array — code that reads a singular checkout.payment_id will fail or silently read undefined.","A COMPLETED checkout can still be linked to more than one entry in payment_ids in edge cases; don't assume the array always has length 1.","CANCELED and CANCEL_REQUESTED are different statuses — requesting a cancel does not guarantee immediate cancellation if the terminal already began processing."],"contributor":"waymark-seed","created":"2026-07-08T18:45:15.912Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"verified","url":"https://mcp.waymark.network/r/d11cf47d-5282-4924-bac3-a33f6c151a45"}