Gate G2: card and guest AUTHORIZE
Does an Orders v2 AUTHORIZE flow work for wallet and guest card buyers in SDK v6? Method, evidence and limits.
Question
Does an Orders v2 intent AUTHORIZE flow work for card and guest-checkout buyers on the sandbox, so that registration can offer a card and not only a PayPal wallet?
Method
- There is no
gate-g2workflow. G2 runs on the owner's laptop, with sandbox credentials in the shell:PAYPAL_ENV=sandbox npm run gate:g2 -w @gavel/payments(scriptgates/g2/server.ts). - The script serves a JS SDK v6 page on localhost. A person approves one wallet order and one guest card order (a Card Generator Visa) in the SDK popup; the server then authorizes each order.
- Run
G2-20261105T115228Z, 5 Nov 2026.
Observed
| Path | Result |
|---|---|
wallet (createPayPalOneTimePaymentSession) | onApprove reached, authorize answered HTTP 201 COMPLETED with an authorization id |
guest card (createPayPalGuestOneTimePaymentSession, paypal-basic-card-button) | onApprove reached, authorize answered HTTP 201 COMPLETED with an authorization id |
Findings worth knowing:
- The first guest card attempt was cancelled at the card form (a US card with a UK billing country); a new order succeeded.
- The client token request with
domains[]=localhostanswers 401invalid_domain; withoutdomains[]it succeeds. isEligible('basic_card')throws "unsupported funding source"; the guest card needs no eligibility key.
Decision: the card path is on (g2_card_authorize is true in packages/payments/src/gates-result.json). The fallback, if it had failed, was to restrict registration to wallet buyers.
Evidence
- G2-20261105T115228Z.jsonl, sha256
2a0e9ee9...fdfe. - The two authorizations from this run are the ones the early G3 probe reads.
Limits
- Needs a person with a browser, so it cannot run in a headless workflow.
- US accounts and USD only.
- packages/payments/gates/g2/server.tsthe G2 page and server
- packages/payments/src/gates-result.jsong2_card_authorize flag
- docs/RUNBOOK-GATES.mdwhat to do if G2 fails
Last updated on
Gate G1: partial capture and remainder verified
Authorize 500.00, capture 350.00 with final_capture, then look at the 150.00 remainder. Method, evidence and limits.
Gate G3: honor period and reauthorize in progress
How long an authorization stays capturable, and whether reauthorize extends it. In progress, with a simulation beside it.