metr-merchant-payments

v2026.09.24

Claim and withdraw payments from Metr (metrpay.com) merchant account.

GitHub
安装命令
npx skhub add bankrbot/metr-merchant-payments
Markdown
SKILL.md

Metr Merchant Payments

Manage your Metr merchant account — start payment sessions, end (settle) them, and withdraw funds to your wallet.

What is Metr?

Metr is a multi-chain payment protocol that lets merchants accept crypto (USDC, SOL, POL, ETH, and custom SPL/ERC-20 tokens) via session-based checkout. Funds are held in escrow during a session and released when the session ends.

Prerequisites

  1. A Metr merchant account (sign up at https://metrpay.com)
  2. Your Merchant API Key — found in your Metr dashboard under Settings → API Keys
  3. (Optional) An Agent Key if you want to run agentic checkout sessions

Authentication

All API calls require headers:

HeaderValueWhen
x-api-keyYour merchant API keyAll merchant endpoints
x-agent-keyYour agent keyAgent session endpoints

Store your key securely in Bankr:

  • Open the Bankr terminal sidebar → click Advanced → click Env Vars
  • Add METR_MERCHANT_API_KEY = your merchant key
  • Add METR_AGENT_KEY = your agent key (if using agent sessions)

Core Operations

1. Start a Payment Session

Initiate a checkout session for a customer.

Endpoint: POST /v1/integrate/sessions/start

Headers:

  • Content-Type: application/json
  • x-api-key: <your-merchant-key>

Body:

{
  "amount": "10.00",
  "currency": "USDC",
  "chain": "base",
  "metadata": {
    "orderId": "order_12345",
    "customerEmail": "customer@example.com"
  }
}

Response:

{
  "sessionId": "sess_abc123",
  "paymentUrl": "https://pay.metr.app/sess_abc123",
  "status": "pending",
  "expiresAt": "2026-07-01T12:00:00Z"
}

Bankr CLI equivalent:

curl -X POST https://api.metr.app/v1/integrate/sessions/start \
  -H "Content-Type: application/json" \
  -H "x-api-key: $METR_MERCHANT_API_KEY" \
  -d '{
    "amount": "10.00",
    "currency": "USDC",
    "chain": "base",
    "metadata": {"orderId": "order_12345"}
  }'

2. End (Settle) a Session

Release escrowed funds to the merchant wallet once the order is fulfilled.

Endpoint: POST /v1/integrate/sessions/{sessionId}/end

Headers:

  • Content-Type: application/json
  • x-api-key: <your-merchant-key>

Body:

{
  "reason": "fulfillment_complete",
  "metadata": {
    "deliveredAt": "2026-07-01T10:30:00Z"
  }
}

Response:

{
  "sessionId": "sess_abc123",
  "status": "settled",
  "settledAt": "2026-07-01T10:30:05Z",
  "txHash": "0x..."
}

Bankr CLI equivalent:

curl -X POST "https://api.metr.app/v1/integrate/sessions/$SESSION_ID/end" \
  -H "Content-Type: application/json" \
  -H "x-api-key: $METR_MERCHANT_API_KEY" \
  -d '{"reason": "fulfillment_complete"}'

3. Start an Agent Session

For AI-agent-initiated payments (e.g., an agent buying a service on behalf of a user).

Endpoint: POST /v1/agents/sessions/start

Headers:

  • Content-Type: application/json
  • x-api-key: <your-merchant-key>
  • x-agent-key: <your-agent-key>

Body:

{
  "amount": "5.00",
  "currency": "USDC",
  "chain": "solana",
  "agentId": "agent_001",
  "metadata": {
    "service": "api_call",
    "tier": "premium"
  }
}

4. End an Agent Session

Endpoint: POST /v1/agents/sessions/{sessionId}/end

Headers:

  • Content-Type: application/json
  • x-api-key: <your-merchant-key>
  • x-agent-key: <your-agent-key>

Body:

{
  "reason": "service_delivered",
  "metadata": {}
}

Claim & Withdraw Funds

Metr does not expose a direct "claim" API endpoint. Instead:

  1. Settlement = Claim: Ending a session automatically releases the escrowed funds to your configured merchant wallet. The txHash in the end-session response is your on-chain proof.

  2. Withdraw from Dashboard: For bulk withdrawals or moving funds to a different wallet:

    • Log in to https://metrpay.com/dashboard
    • Go to Balances
    • Select the chain/token you want to withdraw
    • Enter your destination wallet address
    • Confirm the withdrawal (on-chain tx will be sent)
  3. Webhook Notifications: Set up a webhook in your Metr dashboard to receive real-time events:

    • session.settled — funds released to merchant wallet
    • withdrawal.completed — manual withdrawal finished

Supported Chains & Tokens

ChainNative TokenStablecoinsCustom Tokens
SolanaSOLUSDCSPL tokens
PolygonPOLUSDCERC-20 tokens
BaseETHUSDCERC-20 tokens

Error Handling

Common HTTP status codes from Metr API:

CodeMeaningAction
400Bad RequestCheck request body schema
401UnauthorizedVerify x-api-key is correct
403ForbiddenKey lacks permission for this action
404Session Not FoundDouble-check sessionId
409Session Already EndedIdempotency — session is already settled
422Validation ErrorAmount too small, unsupported chain, etc.
500Internal ErrorRetry or contact Metr support

Full Workflow Example

1. Customer places order on your site
2. You call POST /v1/integrate/sessions/start
3. You redirect customer to paymentUrl
4. Customer pays via Metr checkout
5. You fulfill the order (ship product, run service, etc.)
6. You call POST /v1/integrate/sessions/{id}/end
7. Funds are released to your merchant wallet
8. (Optional) You withdraw from dashboard to cold storage

References

发现
标签

此技能尚未发布标签。

版本
最新版本元数据

版本

v2026.09.24

发布时间

2026年9月24日

分类

未分类

许可证

未指定

源路径

metr-merchant-payments

默认分支

main

最新提交

d7b28f4

Tree SHA

9ab5759