01
Merchant sends basics

Provide project details

The merchant only needs a project name and the wallet that should receive funds. No login required.

{
  "merchantName": "Milady BSC",
  "projectName": "API",
  "payTo": "0xMerchantWallet"
}
02
Operator provisions project

Create project via CLI

The facilitator operator creates the project and returns a project API key once.

npm run provision:prod -- create-project \
  --merchant-slug milady-bsc \
  --merchant-name "Milady BSC" \
  --project-slug api \
  --project-name "API" \
  --pay-to 0xMerchantWallet
03
Merchant stores API key

Bearer token auth

No session or browser login is required. The backend just uses the project key on all business endpoints.

Authorization: Bearer <PROJECT_API_KEY>
04
Quote + verify + settle

Same three API calls

The merchant backend integrates the same three calls as the console path.

POST /v2/quote
POST /verify
POST /settle
05
Real-time visibility

Live platform stream

Public platform activity appears on the live rail and SSE stream in near-real-time, publishing snapshots every 10 seconds.

GET /platform/activity
GET /platform/stream
QA
Operator smoke test

End-to-end verification

Once the project exists, smoke test the full payment route with the issued API key.

npm run smoke:payment -- \
  --facilitator-url https://x402.milady-app.com \
  --api-key <PROJECT_API_KEY> \
  --payer-private-key 0x... \
  --resource-id https://merchant.example/api/credits \
  --amount-atomic 1000000000000000000

What the merchant needs from us

Just three things: a provisioned project, a project API key, and confirmation that their payTo wallet is correct.