Skip to content

PayPal sandbox only. No real money moves.

ProveProof

Gate G0: sandbox connectivity

Does the sandbox app authenticate, and can it create an AUTHORIZE order? Method, evidence and limits.

Passa real sandbox run passed

Verified againstGate G0: PASS. Read from docs/GATES.md when the site is built.

Page last changed 7 Nov 2026 (from the git history)

G0 PASS

Question

Does the PayPal sandbox app authenticate, and can it create an order with intent AUTHORIZE? Every later real-sandbox gate depends on this, so it runs first.

Method

  • Workflow: gate-g0, started by hand (workflow_dispatch). The job declares the sandbox-nightly environment and runs only from main.
  • Script: gates/g0.ts in packages/payments (package script gate: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_ID and PAYPAL_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.
CheckExpectedObserved
G0.1 tokenHTTP 200, payments scopeHTTP 200, payments scope
G0.2 create AUTHORIZE orderHTTP 201 CREATEDHTTP 201 CREATED, intent as sent
G0.3 approve linkpresentpresent

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 capture 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 fake PayPal, labelled as fake. See the operator runbook and gate runbook.

Edit on GitHub

Last updated on