PAYMENT-SIGNATURE header carrying a credit-scheme voucher. You submit that envelope to the SohoPay facilitator and poll. You do not settle on-chain yourself.
Base URL: https://staging.api.sohopay.xyz/api/v1/facilitator. Authenticate with a merchant JWT or sk_live_ key.
Capture
POST /capture is the money call. Body:
x402Version must be 2. paymentPayload is the standard x402 credit-scheme envelope the agent presented (scheme: "credit", plus the voucher and the agent’s Ed25519 signature). paymentRequirements is optional and should echo what you advertised on the 402.
Send a UUID v4 Idempotency-Key. A replay of the same key and body returns the original receipt with replayed: true while that receipt is still valid.
A successful response:
receipt.paymentId is the poll key from this moment. Amounts are strings in asset base units.
A Protocol V1 PaymentIntent is refused. If you see X402_AGENT_VOUCHER_REQUIRED, the client sent the old envelope.
POST /verify is the optional pre-check. It returns { "isValid": true } or { "isValid": false, "invalidReason": "…" }. Verify does not capture and does not start settlement.
There is no POST /settle.
Limits
Each merchant may call verify up to 120 times per minute and capture up to 30 times per minute. Burst limits still apply on top of those.Discovery
GET /supported lists the credit scheme, x402Version: 2, network eip155:84532 on staging, and the settlement asset. GET /health is liveness.
Next steps
Settlements
Poll statuses and when to fulfill.
Merchant onboarding
How a merchant account is created.

