Skip to main content
Experimental. Use one sandbox provider. Offline simulation is for local development only and cannot represent a Shopper Payment. The current interface does not yet persist explicit Payment Connections or establish a production-ready Checkout-to-Order path. See maturity levels.
The Payments Module records payment intents, saved payment methods, and refunds in the Store Runtime database. Provider calls go through the current PaymentProvider interface. This Module is not 86d Payments. Using it does not waive Cloud management fees. See How commerce records relate and How Connections route provider work before you evaluate this Module. Source: modules/payments · npm: @86d-store/payments

Installation

Install the Payments Module alongside a Third-party Payment Module:

Configuration

Set provider secrets in the server environment. The current generator creates the provider instance from those values. Do not put a secret key in source, config.json, browser variables, or Store Admin fields.
PaymentProvider
default:"undefined"
A provider implementation. When omitted, the current module stores simulated local intents and handles status transitions in memory. This is not an available Payment method for Shoppers.
string
default:"\"USD\""
Default currency code for new payment intents. Individual intents can override this by passing currency to controller.createIntent().

PaymentProvider interface

To connect any payment processor, implement this interface and pass an instance to the provider option:
ProviderIntentResult contains providerIntentId, status, and an optional providerMetadata bag. For Stripe, providerMetadata.clientSecret holds the value you pass to the frontend PaymentElement.

Store endpoints

Admin endpoints

Payment intent statuses

Checkout integration

In sandbox evaluation, the CheckoutPayment component can call createIntent when the Shopper reaches the payment step. You do not need to call the payments API from your Checkout templates; the runtime context connects the two modules. This path is sandbox evaluation only. It is not a live Shopper purchase. A typical sandbox evaluation flow looks like this:

Financial safety guards

The Payments controller enforces these rules regardless of which provider Integration you use:

Provider event security

Each provider uses its own event authentication protocol. Keep event endpoints private until valid, invalid, repeated, and out-of-order provider events pass your tests. Follow Third-party Payment integrations for the current sandbox setup and verification checklist.

Current Third-party Payment modules

Each provider has its own reference page: Stripe, PayPal, Square, and Braintree. The packages exist in the first-party catalog, but each one still needs its own maturity evidence. You can also implement the current PaymentProvider interface for evaluation. The contract may change before 1.0 as explicit Connection routing ships.

Types