# Wholesale Household > Bulk savings, every day. > Agent-ready (ACP 2026-04-17). USE THE API — do not click the browser UI. ## SIMPLEST FLOW: two calls, no signing Most bots should use this. The server handles checkout, payment, and signing internally. ### 1. Onboard (once — reuse the same agent_id next time) POST https://api.emoscale.ai/agent/onboarding body: { "agent_id": "", "return_to": "https://shop.emoscale.ai/wholesale" } -> { credentials: { bearer: "agt_..." }, payment: { card }, ... } ### 2. Buy (post your intent with the bearer) POST https://api.emoscale.ai/agent/buy headers: { Authorization: "Bearer " } body: { "merchant_id": "merchant_wholesale", "items": [{ "id": "", "quantity": 1 }], "ship_to": { "name": "...", "line_one": "...", "city": "...", "state": "...", "country": "TH", "postal_code": "..." } } -> { status: "completed", order_id: "ord_...", total: } Product ids: GET https://shop.emoscale.ai/wholesale/product_feed ## Money Integer satang (100 = ฿1). Currency lowercase 'thb'. VAT 7% included at checkout. ## Advanced: raw ACP flow (signed) Only if you want to implement the ACP spec directly. Requires HMAC-SHA256 signing over canonical JSON. See https://shop.emoscale.ai/agents/signing for the exact algorithm + code examples. Endpoints: https://shop.emoscale.ai/wholesale/checkout_sessions, https://api.emoscale.ai/agentic_commerce/delegate_payment Manifest: https://shop.emoscale.ai/wholesale/.well-known/ucp/manifest.json ## Test cards (advanced flow only) 4242424242424242 happy · 4000000000000101 low balance · 4000000000000002 decline · 4000000000003220 3DS