Metr Merchant Payments
Gérez votre compte marchand Metr — lancez des sessions de paiement, terminez-les (réglez-les), et retirez les fonds vers votre portefeuille.
Qu'est-ce que Metr ?
Metr est un protocole de paiement multi-chaîne qui permet aux commerçants d'accepter des cryptomonnaies (USDC, SOL, POL, ETH et des tokens SPL/ERC-20 personnalisés) via une caisse basée sur les sessions. Les fonds sont maintenus en séquestre pendant une session et libérés à la fin de celle-ci.
- Site web : https://metrpay.com
- API Base :
https://api.metr.app/v1
Prérequis
- Un compte marchand Metr (inscrivez-vous sur https://metrpay.com)
- Votre Clé API Marchand — disponible dans votre tableau de bord Metr sous Paramètres → Clés API
- (Optionnel) Une Clé Agent si vous souhaitez exécuter des sessions de caisse agentic
Authentification
Tous les appels API nécessitent les en-têtes :
| En-tête | Valeur | Quand |
|---|---|---|
x-api-key |
Votre clé API marchand | Tous les endpoints marchands |
x-agent-key |
Votre clé agent | Endpoints de session agent |
Stockez votre clé de manière sécurisée dans Bankr :
- Ouvrez la barre latérale du terminal Bankr → cliquez sur Advanced → cliquez sur Env Vars
- Ajoutez
METR_MERCHANT_API_KEY= votre clé marchand - Ajoutez
METR_AGENT_KEY= votre clé agent (si vous utilisez des sessions agent)
Opérations Principales
1. Lancer une Session de Paiement
Lancez une session de caisse pour un client.
Endpoint : POST /v1/integrate/sessions/start
En-têtes :
Content-Type: application/jsonx-api-key: <your-merchant-key>
Corps :
{
"amount": "10.00",
"currency": "USDC",
"chain": "base",
"metadata": {
"orderId": "order_12345",
"customerEmail": "customer@example.com"
}
}
Réponse :
{
"sessionId": "sess_abc123",
"paymentUrl": "https://pay.metr.app/sess_abc123",
"status": "pending",
"expiresAt": "2026-07-01T12:00:00Z"
}
Équivalent CLI Bankr :
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. Terminer (Régler) une Session
Libérez les fonds en séquestre vers le portefeuille marchand une fois la commande exécutée.
Endpoint : POST /v1/integrate/sessions/{sessionId}/end
En-têtes :
Content-Type: application/jsonx-api-key: <your-merchant-key>
Corps :
{
"reason": "fulfillment_complete",
"metadata": {
"deliveredAt": "2026-07-01T10:30:00Z"
}
}
Réponse :
{
"sessionId": "sess_abc123",
"status": "settled",
"settledAt": "2026-07-01T10:30:05Z",
"txHash": "0x..."
}
Équivalent CLI Bankr :
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. Lancer une Session Agent
Pour les paiements initiés par agent IA (par ex., un agent achetant un service au nom d'un utilisateur).
Endpoint : POST /v1/agents/sessions/start
En-têtes :
Content-Type: application/jsonx-api-key: <your-merchant-key>x-agent-key: <your-agent-key>
Corps :
{
"amount": "5.00",
"currency": "USDC",
"chain": "solana",
"agentId": "agent_001",
"metadata": {
"service": "api_call",
"tier": "premium"
}
}
4. Terminer une Session Agent
Endpoint : POST /v1/agents/sessions/{sessionId}/end
En-têtes :
Content-Type: application/jsonx-api-key: <your-merchant-key>x-agent-key: <your-agent-key>
Corps :
{
"reason": "service_delivered",
"metadata": {}
}
Réclamer et Retirer des Fonds
Metr n'expose pas directement un endpoint API « claim ». À la place :
-
Règlement = Réclamation : Terminer une session libère automatiquement les fonds en séquestre vers votre portefeuille marchand configuré. Le
txHashdans la réponse end-session est votre preuve on-chain. -
Retrait depuis le Tableau de Bord : Pour les retraits en masse ou le déplacement de fonds vers un portefeuille différent :
- Connectez-vous à https://metrpay.com/dashboard
- Allez à Balances
- Sélectionnez la chaîne/le token que vous souhaitez retirer
- Entrez votre adresse de portefeuille de destination
- Confirmez le retrait (une tx on-chain sera envoyée)
-
Notifications Webhook : Configurez un webhook dans votre tableau de bord Metr pour recevoir des événements en temps réel :
session.settled— fonds libérés vers le portefeuille marchandwithdrawal.completed— retrait manuel terminé
Chaînes et Tokens Supportés
| Chaîne | Token Natif | Stablecoins | Tokens Personnalisés |
|---|---|---|---|
| Solana | SOL | USDC | Tokens SPL |
| Polygon | POL | USDC | Tokens ERC-20 |
| Base | ETH | USDC | Tokens ERC-20 |
Gestion des Erreurs
Codes de statut HTTP courants de l'API Metr :
| Code | Signification | Action |
|---|---|---|
| 400 | Bad Request | Vérifiez le schéma du corps de la requête |
| 401 | Unauthorized | Vérifiez que x-api-key est correct |
| 403 | Forbidden | La clé n'a pas les permissions pour cette action |
| 404 | Session Not Found | Double-vérifiez le sessionId |
| 409 | Session Already Ended | Idempotence — la session est déjà réglée |
| 422 | Validation Error | Montant trop faible, chaîne non supportée, etc. |
| 500 | Internal Error | Réessayez ou contactez le support Metr |
Exemple de Flux Complet
1. Un client passe une commande sur votre site
2. Vous appelez POST /v1/integrate/sessions/start
3. Vous redirigez le client vers paymentUrl
4. Le client paie via la caisse Metr
5. Vous exécutez la commande (livrez le produit, lancez le service, etc.)
6. Vous appelez POST /v1/integrate/sessions/{id}/end
7. Les fonds sont libérés vers votre portefeuille marchand
8. (Optionnel) Vous retirez depuis le tableau de bord vers le stockage froid
Références
- Site Metr : https://metrpay.com
- API Base : https://api.metr.app/v1
- Tableau de Bord : https://metrpay.com/dashboard