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-mppThis skill is limited to using the following tools:
**Fetch live docs**:
Guides Payload CMS config (payload.config.ts), collections, fields, hooks, access control, APIs. Debugs validation errors, security, relationships, queries, transactions, hook behavior.
Acquire memory dumps from live systems/VMs and analyze with Volatility 3 for processes, networks, DLLs, injections in incident response or malware hunts.
Provides x86-64/ARM disassembly patterns, calling conventions, control flow recognition for static analysis of executables and compiled binaries.
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.