Skip to main content

From Staging to Production with Embedded Checkout

Crossmint provides two developer environments: staging and production. It is recommended to test end-to-end on staging before moving to production.
Production access requires a signed Order Form and successful KYB.Crossmint operates as a regulated entity, so production access is not self-serve. Staging is unrestricted — you can build and test against the staging environment without any approval.To move to production:
  1. Work with Crossmint's sales team to sign an Order Form. The Order Form is the commercial agreement and includes the KYB obligation.
  2. Complete KYB (Know Your Business) verification. The Crossmint compliance team handles this as part of onboarding and reviews entity formation, beneficial ownership, and business purpose.
  3. Production access is enabled once KYB passes. There is no separate request — a successful KYB unlocks the production environment for your account.
See the account verification documentation for which Crossmint products require KYB.

General Launch Checklist

Complete the following general steps on each tab to launch your checkout in production:

Order Form

Production Checkout access requires a signed Order Form with Crossmint. The Order Form is the commercial agreement between you and Crossmint and includes the obligation to complete KYB. Reach out to the sales team to get the Order Form started.
Staging is self-serve. The Order Form is only required to move from staging to production — you can integrate end-to-end against staging without one.

Launch Checklist

  1. Change your API keys to the production versions. Ensure your production API key has the appropriate scopes enabled, such as orders.create.
  2. Update your collection ID to the production one.
  3. As needed, change your passed-in props to be production ready (e.g. make email, payment, lineItems programmatically filled).
<CrossmintProvider apiKey="YOUR_PROD_API_KEY">
    <CrossmintEmbeddedCheckout
        lineItems={{
            collectionLocator: "crossmint:YOUR_PROD_COLLECTION_ID",
            callData: {
                totalPrice: "0.25",
                quantity: 1,
            },
        }}
        payment={{
            crypto: { enabled: true },
            fiat: { enabled: true },
        }}
        recipient={{
            email: "steve@gmail.com",
        }}
    />
</CrossmintProvider>