Help us improve
Share bugs, ideas, or general feedback.
From stripe-mpp
Configures Stripe as MPP payment method for card/wallet payments via Shared Payment Tokens, integrating MPP HTTP 402 challenges with Stripe PaymentIntents.
npx claudepluginhub orcaqubits/agentic-commerce-skills-plugins --plugin stripe-mppHow this skill is triggered — by the user, by Claude, or both
Slash command
/stripe-mpp:mpp-stripe-methodThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
**Fetch live docs**:
Manages Stripe Shared Payment Token (SPT) lifecycle in MPP: creation, usage via PaymentIntents, deactivation, webhook events, and reconciliation for fiat/card payments.
Implements ACP delegated payment flow with Stripe SharedPaymentTokens for secure token provisioning, lifecycle management, and checkout completion in agentic commerce.
Implements x402 (paid APIs via OZ Channels) and MPP (Machine Payments Protocol) for AI-agent-to-agent payments on Stellar, supporting Charge and Channel modes with USDC.
Share bugs, ideas, or general feedback.
Fetch live docs:
https://docs.stripe.com/agentic-commerce/concepts/shared-payment-tokens for the latest SPT APIhttps://docs.stripe.com/payments/machine/mpp for MPP + Stripe integrationsite:docs.stripe.com shared_payment granted_token for SPT creation and usage APImppx stripe payment method server configuration for mppx Stripe adapter setupThe Stripe payment method enables fiat/card payments within the MPP protocol. Instead of on-chain crypto transactions, the payment proof is a Shared Payment Token (SPT) — a one-time, merchant-scoped, amount-limited token that Stripe processes as a standard charge.
1. Agent → Server: GET /resource
2. Server → Agent: 402 with Stripe payment challenge
3. Agent → Stripe: Create SPT (or use pre-provisioned SPT)
4. Agent → Server: GET /resource with SPT credential
5. Server → Stripe: PaymentIntent.create with shared_payment_granted_token
6. Stripe → Server: Payment confirmed
7. Server → Agent: 200 OK with Payment-Receipt
{
"id": "spt_...",
"usage_limits": {
"currency": "usd",
"max_amount": 1000,
"expires_at": 1711234567
},
"deactivated_at": null,
"deactivated_reason": null
}
POST https://api.stripe.com/v1/test_helpers/shared_payment/granted_tokens
Parameters:
payment_method: pm_card_visa
usage_limits[currency]: usd
usage_limits[max_amount]: 1000
usage_limits[expires_at]: <unix_timestamp>
seller_details[network_id]: <seller_network_id>
seller_details[external_id]: <optional_external_id>
POST https://api.stripe.com/v1/payment_intents
Parameters:
amount: 500
currency: usd
shared_payment_granted_token: spt_...
confirm: true
import { Mppx, stripe } from 'mppx/server';
const mppx = Mppx.create({
secretKey: process.env.MPP_SECRET_KEY,
methods: [
stripe.charge({
// Stripe configuration for MPP
// Automatically creates PaymentIntents when valid SPT credentials arrive
}),
],
});
network_id isolates tokens to specific merchants| Event | Recipient | Trigger |
|---|---|---|
shared_payment.granted_token.used | Seller | SPT successfully consumed |
shared_payment.granted_token.deactivated | Seller | SPT revoked or expired |
shared_payment.issued_token.used | Agent | Seller consumed the SPT |
shared_payment.issued_token.deactivated | Agent | SPT no longer valid |
Combine Stripe with Tempo for maximum flexibility:
const mppx = Mppx.create({
secretKey: process.env.MPP_SECRET_KEY,
methods: [
tempo.charge({ /* Tempo config */ }),
stripe.charge({ /* Stripe config */ }),
],
});
Clients choose their preferred method when fulfilling the challenge.
max_amount to the exact payment amount (not higher)Fetch the latest Stripe SPT API documentation and mppx Stripe adapter docs for exact endpoint paths, request schemas, and configuration options before implementing.