metr-merchant-payments

v2026.09.24

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

GitHub
Install command
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

Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

Not specified

Source path

metr-merchant-payments

Default branch

main

Latest commit

d7b28f4

Tree SHA

9ab5759