checkout

SKILL.md

Credpay Checkout Skill

API Base URL: https://checkout-agent.credpay.xyz

Trigger this skill whenever the user wants to purchase, order, or checkout a product from any online store.

What you need from the user

Collect these before starting (ask if missing):

Field Example
Product URL https://example.com/products/tee
Quantity 1
Size / Color (if applicable) "Size": "M", "Color": "Black"
Email customer@example.com
Goods total (USD) "49.99" — item price as a USD string, no currency symbol
Shipping address firstName, lastName, line1, city, state, postalCode, country, phone

Step 1 — Get a quote (no payment needed)

POST https://checkout-agent.credpay.xyz/v1/quote
Content-Type: application/json

{
  "items": [
    {
      "url": "<product URL>",
      "quantity": 1,
      "options": { "Size": "M", "Color": "Black" }
    }
  ],
  "email": "<email>",
  "shippingAddress": {
    "firstName": "Jane",
    "lastName": "Doe",
    "line1": "123 Main St",
    "city": "Austin",
    "state": "TX",
    "postalCode": "78701",
    "country": "United States",
    "countryCode": "US",
    "phone": "+15125551234"
  },
  "goodsTotal": "<item price in USD as string, e.g. \"49.99\">"
}

→ Save maxAmount from the response. This is the USDC amount you will pay via x402.

Step 2 — Submit checkout (x402 payment required)

POST https://checkout-agent.credpay.xyz/v1/checkout
Content-Type: application/json
X-PAYMENT: <x402 payment payload for maxAmount on Base chainId 8453>

<same body as Step 1>

→ On 202: save requestId and go to Step 3. → On 402: re-read the payment requirements from the response and retry with a correct X-PAYMENT header.

Step 3 — Poll for completion

GET https://checkout-agent.credpay.xyz/v1/checkout/{requestId}

Poll every 5 seconds. Stop when status is completed or failed. Timeout after 10 minutes.

Status Action
processing Keep polling
authorization_required See Step 4
completed Done — return result to user
failed Report errorCode + errorMessage to user

Step 4 — Handle extra payment (if needed)

If status is authorization_required, the order total exceeded the quoted amount:

POST https://checkout-agent.credpay.xyz/v1/checkout/{requestId}/authorize
X-PAYMENT: <x402 payment for extraOwed amount>

Then resume polling from Step 3.

Rules

  • Works with any online store — just pass the product page URL.
  • Never create a second checkout for the same intent while a requestId is active.
  • Retry transient network errors with exponential backoff. Never blind-retry failed status.
  • Default chainId is 8453 (Base).

Success response

{
  "requestId": "req_abc123",
  "status": "completed",
  "success": true,
  "orderNumber": "1234"
}

Failure response

{
  "requestId": "req_abc123",
  "status": "failed",
  "success": false,
  "errorCode": "payment_failed",
  "errorMessage": "Card declined"
}
Weekly Installs
5
First Seen
Feb 27, 2026
Installed on
github-copilot5
codex5
kimi-cli5
gemini-cli5
cursor5
opencode5