Gate G0: sandbox connectivity
Does the sandbox app authenticate, and can it create an AUTHORIZE order? Method, evidence and limits.
Question
Does the PayPal app authenticate, and can it create an order with intent AUTHORIZE? Every later real-sandbox depends on this, so it runs first.
Method
- Workflow:
gate-g0, started by hand (workflow_dispatch). The job declares thesandbox-nightlyenvironment and runs only frommain. - Script:
gates/g0.tsinpackages/payments(package scriptgate:g0). It makes a client-credentials token request, then creates one order with intent AUTHORIZE, and checks that the approve link is present. - Secrets used, by name:
PAYPAL_CLIENT_IDandPAYPAL_CLIENT_SECRET. Values are never recorded. - Sandbox accounts behind the gates: one business account that owns the app and five personal US buyer accounts, all in USD.
| Check | Expected | Observed |
|---|---|---|
| G0.1 token | HTTP 200, payments scope | HTTP 200, payments scope |
| G0.2 create AUTHORIZE order | HTTP 201 CREATED | HTTP 201 CREATED, intent as sent |
| G0.3 approve link | present | present |
Evidence
A redacted evidence file is committed: docs/evidence/G0/G0-20261109T031839Z.jsonl (sha256 c85c66f3b2f016fae3f4105288fb4b35a59891572111cba3c8312dc757a8b073). It comes from a re-run of gate-g0 dispatched from main on 9 Nov 2026 03:17 UTC, run 42555610707: token HTTP 200, order HTTP 201 CREATED, approve link present, intent AUTHORIZE read back. Tokens, the app id and the nonce are redacted. The earlier record, run 41815593520 (4 Nov 2026, branch gate/g0, before the main-only guard), is a run log that expires and is not the evidence.
The result is stated in docs/GATES.md. The badge above is read from that file when the site is built.
Limits
- It proves connectivity, token scopes and order creation only.
- No buyer approval and no were part of G0.
- It says nothing about card or guest buyers (G2), partial capture (G1) or webhooks (G4).
If it fails
There is no fallback for payments. Hold G1 to G4 and demo on the , labelled as fake. See the operator runbook and gate runbook.
- docs/GATES.mdthe gate record this page reads
- docs/RUNBOOK-GATES.mdwhat to do when the gate fails
- packages/payments/gates/g0.tsthe G0 script
- .github/workflows/gate-g0.ymlthe workflow
Last updated on