> **Can't find what you're looking for?** Use `search_docs` on the docs MCP server at `https://mpp.dev/api/mcp` to find what you need.

# Payment methods \[Available methods and how to choose one]

Payment methods define how a buyer pays a seller for a resource protected by the Machine Payments Protocol. Each method specifies its payment rails, Credential format, and verification logic.

## Status and capabilities

| Method                                       | Intents                       | SDKs                                                | Status     | Maintainer        |
| -------------------------------------------- | ----------------------------- | --------------------------------------------------- | ---------- | ----------------- |
| [Tempo](/payment-methods/tempo)              | Charge, session, subscription | TypeScript (`mppx`), Rust, Python, Go, Ruby         | Production | Tempo             |
| [Stripe](/payment-methods/stripe)            | Charge, session (Tempo)       | TypeScript (`mppx`), Rust, Python, Ruby             | Production | Stripe            |
| [Card](/payment-methods/card)                | Charge                        | TypeScript (`mpp-card`)                             | Production | Visa              |
| [Lightning](/payment-methods/lightning)      | Charge, session               | TypeScript (`@buildonspark/lightning-mpp-sdk`)      | Production | Spark             |
| [EVM](/payment-methods/evm)                  | Charge                        | TypeScript (`mppx`)                                 | Available  | Tempo             |
| [Solana](/payment-methods/solana)            | Charge, session               | TypeScript (`@solana/mpp`)                          | Available  | Solana Foundation |
| [XRPL](/payment-methods/xrpl)                | Charge, session               | TypeScript (`xrpl-mpp-sdk`)                         | Available  | Ripple            |
| [Stellar](/payment-methods/stellar)          | Charge, session               | TypeScript (`@stellar/mpp`)                         | Available¹ | Stellar           |
| [Monad](/payment-methods/monad)              | Charge                        | TypeScript (`@monad-crypto/mpp`)                    | Available  | Monad             |
| [NEAR Intents](/payment-methods/nearintents) | Charge                        | TypeScript (`@defuse-protocol/nearintents-mpp-sdk`) | Available  | Defuse Protocol   |
| [RedotPay](/payment-methods/redotpay)        | Charge                        | TypeScript (`@redotpay/mpp`)                        | Available  | RedotPay          |
| [Custom](/payment-methods/custom)            | Any                           | TypeScript (`mppx`)                                 | Custom     | You               |

* **Production**: used for live payments today.
* **Available**: SDK published by its maintainer; ask the maintainer about production readiness.
* **¹ Session experimental**: Stellar's session intent (`channel` in its SDK) uses an unaudited contract and a draft spec.

## Overview

When a server responds with `402` Payment Required, the `WWW-Authenticate` header includes a `method` parameter indicating which payment method to use. If supported, the client can then use the corresponding payment method to generate a Credential and retry the request.

### Tempo

```http
HTTP/1.1 402 Payment Required
WWW-Authenticate: Payment method="tempo", intent="charge", ...
```

### Stripe

```http
HTTP/1.1 402 Payment Required
WWW-Authenticate: Payment method="stripe", intent="charge", ...
```

### EVM

```http
HTTP/1.1 402 Payment Required
WWW-Authenticate: Payment method="evm", intent="charge", ...
```

### Card

```http
HTTP/1.1 402 Payment Required
WWW-Authenticate: Payment method="card", intent="charge", ...
```

### Lightning

```http
HTTP/1.1 402 Payment Required
WWW-Authenticate: Payment method="lightning", intent="charge", ...
```

### Solana

```http
HTTP/1.1 402 Payment Required
WWW-Authenticate: Payment method="solana", intent="charge", ...
```

### XRPL

```http
HTTP/1.1 402 Payment Required
WWW-Authenticate: Payment method="xrpl", intent="charge", ...
```

### Stellar

```http
HTTP/1.1 402 Payment Required
WWW-Authenticate: Payment method="stellar", intent="charge", ...
```

### Monad

```http
HTTP/1.1 402 Payment Required
WWW-Authenticate: Payment method="monad", intent="charge", ...
```

### NEAR Intents

```http
HTTP/1.1 402 Payment Required
WWW-Authenticate: Payment method="nearintents", intent="charge", ...
```

### RedotPay

```http
HTTP/1.1 402 Payment Required
WWW-Authenticate: Payment method="redotpay", intent="charge", ...
```

## Available methods

[Tempo](/payment-methods/tempo) — Web scale payments with TIP-20 stablecoins on Tempo with sub second settlement

[EVM](/payment-methods/evm) — Stablecoin payments on EVM chains with inline x402 exact compatibility

[Stripe](/payment-methods/stripe) — Traditional payment methods through Stripe

[Card](/payment-methods/card) — Card payments via encrypted network tokens

[Lightning](/payment-methods/lightning) — Bitcoin payments over the Lightning Network

[Solana](/payment-methods/solana) — Native SOL and SPL token payments on Solana

[Stellar](/payment-methods/stellar) — Smart contract payments on Stellar

[XRPL](/payment-methods/xrpl) — Payments in XRP and tokens, Payment Channels in XRP

[Monad](/payment-methods/monad) — ERC-20 token payments on Monad

[NEAR Intents](/payment-methods/nearintents) — Cross-chain payments settled by NEAR Intents

[RedotPay](/payment-methods/redotpay) — Payments with RedotPay balance and stablecoin rails

[Custom](/payment-methods/custom) — Build your own method or extend existing methods with the SDK.
