June 19, 2026
Frame theme parameter documented — frames accept a
theme query parameter
set to dark or light to force a specific appearance. Omit it and the frame
follows the user’s system appearance. The parameter is now documented across
the frames that render UI.Updated references:June 17, 2026
Buy Button documentation — the buy button now has a full guide and frame
reference. The buy button renders a MoonPay-hosted express-checkout payment
button (Apple Pay, Google Pay, or card) and runs the same buy pipeline as the
headless buy frame.New pages:
- Pay with the buy button — guide
- Buy button frame — frame reference
setupBuyButton() reference
now documents the ready event, which the SDK emits once the button is rendered
and ready for the customer to tap.June 17, 2026
Credentials payload documented — the decrypted shape of the
credentials
string returned by the check and connect frames is now explicitly documented.
Once decrypted, credentials is a JSON object with accessToken,
clientToken, and expiresAt. See API and SDK
credentials.June 12, 2026
Customer geo fields on connection —
country, administrativeArea, and
area are now returned directly on the customer object in the complete
event payload (connect and check frames) and in the Connection type returned
by getConnection(). Use these fields to determine which payment disclosures
apply for the customer’s jurisdiction.capabilities.ramps.requirements.paymentDisclosures is deprecated. Read
geography from customer.country, customer.administrativeArea, and
customer.area instead.Updated references:June 12, 2026
React Native SDK is now available — the React Native
SDK
(
@moonpay/platform-sdk-react-native)
is published on npm and its reference is now in the Platform sidebar:- Provider and hook —
<MoonPayProvider>anduseMoonPay()give any descendant component access to the client. - Client methods — customer connection, email/OTP auth, payment methods, quotes, frame setup (widget, buy, buy button, add card, Apple Pay, Google Pay, challenge), and transactions — mirroring the Web SDK surface.
- Inline
components —
every frame also ships as a declarative component
(
<MoonPayApplePayButton>,<MoonPayConnect>,<MoonPayWidget>, and more) you render directly in your layout, with a reactivequoteprop that updates live frames without remounting. These replace the deprecatedsetupApplePay(),setupGooglePay(), andsetupBuyButton()client methods.
June 12, 2026
Web SDK reference — corrections and 1.0.0 coverage — the Web
SDK docs were audited against the
@moonpay/platform-sdk-web 1.0.0 source and corrected:getQuote()input shape — every example and parameter table now uses the nested request shape the SDK and API accept (source: { asset: { code }, amount },destination: { asset: { code } },wallet: { address, tag? },paymentMethod: { type, id? }). The previously documented flat shape (source: "USD",sourceAmount,walletAddress, stringpaymentMethod) is rejected by the API. Corrected across the SDK reference, allpay-with-*guides, and the introduction.- New:
setupAuth()— the lighter-weight email/OTP counterpart toconnect()for headless and Identity API integrations, added in SDK 1.0.0. - New: Identity methods —
createIdentity,getIdentity,updateIdentity,verifyIdentity,getIdentityUploadUrl, andsubmitIdentityFiles, added in SDK 1.0.0. getConnection()— now documents the optionalskipKycflag for headless integrations.setupChallenge()— the challenge URL no longer needs to carry achannelIdquery parameter; the SDK generates one automatically (SDK 1.0.0). Identity verification challenge URLs can be passed straight through.setupAddCard()— the Add Card frame does emit areadyevent; the docs previously said it didn’t.setupApplePay()andsetupGooglePay()— theSetupApplePayError/SetupGooglePayErrorunions are"configurationError" | "genericError"; quote problems and wallet availability surface throughonEventinstead. The Apple Pay page also gained the previously undocumentedchallengeevent.getPaymentMethods()— the response is{ data: { paymentMethodConfigs, paymentMethods } }; the previously documentedstoredCardsfield doesn’t exist on the wire.- Package name and
createClient()usage — remaining@moonpay/platformimports andResult-wrappedcreateClient()examples in the guides were updated to@moonpay/platform-sdk-weband the synchronousClientreturn.
June 12, 2026
June 10, 2026
Quotes now reject assets that aren’t available in the active mode —
In test mode, request quotes for assets on a
supported testnet, such as
POST /platform/v1/quotes/buy
returns a 400 invalid_request error when the destination asset doesn’t
support the mode of your session (test or live). Previously the endpoint
returned a quote even when the asset couldn’t be purchased in that mode. The
error includes a field-level detail identifying the asset:ETH or SOL.June 9, 2026
Platform SDK reference — Web — the Web
SDK (
@moonpay/platform-sdk-web) is
now fully documented and wired into the Platform sidebar:- Customer connection —
getConnection,connect,resetConnection. - Payment methods —
getPaymentMethods,deletePaymentMethod. - Quotes —
getQuote. - Frame setup —
setupWidget,setupBuyButton,setupBuy,setupAddCard,setupApplePay,setupGooglePay,setupChallenge. - Transactions —
getTransaction,listTransactions.
@moonpay/platform →
@moonpay/platform-sdk-web),
createClient() is now correctly
typed as returning a Client directly, API error tables use the real
DevPlatformApiError shape (code + message + optional errors[]),
success envelopes use { data } and { data, pageInfo }, and event and
error unions for every setup* method match what the SDK actually emits
(including the kind: "frame" discriminator on challenge events,
oneTapApplePaySecondFactorRequired for Apple Pay, and "unsupported"
rather than an error when Google Pay is unavailable).
getConnection documents the
full set of connection statuses (including termsAcceptanceRequired) and
CustomerCapabilities.Challenge frame error event guidance corrected — the
Handle challenges guide previously told
partners to surface the message payload from the Challenge frame’s error
event. That contradicts the Challenge frame
reference, which marks code and message as developer-facing and explicitly
not for end-user UI. Updated the guide to recommend logging the code and
message and showing the customer a generic next step (such as retry or
choose a different payment method) instead.June 9, 2026
Buy quotes now return payment disclosure IDs — the quote
response
includes a
paymentDisclosures array of { id, version } objects that
identifies exactly which disclosure(s) to render for a transaction. This
replaces the need to infer disclosure requirements from
capabilities.ramps.requirements.paymentDisclosures at connect time. The
capabilities.ramps.requirements.paymentDisclosures property is deprecated
and will be removed.Apple Pay frame failure codes documented — the Apple Pay
frame reference now lists the
failureCode values a failed complete event can return
(applePayMerchantUnavailable, transactionNotAllowed, validationError,
serviceUnavailable, authorizationDeclined, and unknown), each with its
default failureReason and recommended handling. The Pay with Apple
Pay guide shows how to branch on
failureCode to drive your error handling.Google Pay frame failure codes documented — the Google Pay
frame reference now lists the
failureCode values a failed complete event can return
(transactionNotAllowed, validationError, serviceUnavailable,
authorizationDeclined, and unknown), each with its default failureReason
and recommended handling. The Pay with Google
Pay guide shows how to branch on
failureCode to drive your error handling.June 3, 2026
Test mode documents challenge triggers — the Test
mode page now explains
how to force a challenge in test mode
by setting the buy amount to a specific value:
48 triggers a
wallet-ownership challenge (Apple Pay and card) and 49 triggers a CVV
re-entry challenge (card). These triggers only apply in test mode.June 1, 2026
Challenges and quotes docs corrected — refreshed the guides and SDK
reference to match how the SDK and API actually behave:
- Handle challenges is now a
flow-agnostic guide. Challenges are surfaced by frames — today the Apple
Pay, Google Pay, and buy (Pay with card) frames each emit a
challengeevent whose URL is loaded into the dedicated Challenge frame. The old example showingchallengenested inside a quote response was incorrect and has been removed. - Core concepts → Quotes no longer
describes “price quotes” and “executable quotes” as two types. There is a
single quote with an
executableboolean — see the quotes API reference for the request fields required to receiveexecutable: true. - The per-flow guides (Apple Pay,
Google Pay) and the
getQuote/ setup-method SDK reference pages now use this single-quote framing.
May 28, 2026
Challenge frame docs cover the identity flow — updated the Challenge
frame reference so the
complete, cancelled,
and error payloads describe both upstream flows (buy and identity):completeandcancelledpayloads are now documented as discriminated unions overflow: "buy" | "identity". Theidentityvariant carriesidentityIdoncompleteand no extra fields oncancelled.errorcodes refreshed to match the frame’s wire format (invalid_token,unsupported_flow,invalid_challenge) and the payload type loosened tocode: stringto reflect that additional codes can be propagated from the upstream flow.
May 26, 2026
Frame theming — every frame now accepts a
brandColor URL parameter that
seeds a runtime-derived palette across the entire UI, plus an optional
customTheme for border radius, color scheme lock, and granular palette
control. See the new theming guide for accepted
formats and examples per frame.May 21, 2026
Challenge events for Apple Pay and Google Pay — the Apple Pay
frame and Google Pay
frame now emit a
challenge event when
verification is required before a transaction can proceed. Challenge handling
added to the Apple Pay SDK
reference, Google Pay SDK
reference, and manual
integration guides for
web,
iOS, React
Native, and
Flutter.TransactionStatus fix — corrected the TransactionStatus enum value from
complete to completed in the Apple Pay
frame and Google Pay
frame references.May 20, 2026
Google Pay — new Pay with Google
Pay guide, Google Pay
frame reference, and
setupGooglePay SDK method.
Covers the standalone Google Pay frame integration and manual integration for
web,
Android, React
Native, and
Flutter.May 19, 2026
EEA disclosures — published the exact verbiage required above the Apple
Pay frame and the card Pay button for customers located in the EEA, with
separate text for standard crypto-assets and non-MiCA-compliant stablecoins
(USDT, cUSD, DAI, PYUSD). See Going
Live.
May 18, 2026
API key header — server-to-server requests now authenticate with the
X-Api-Key header. See Using the Platform
API
and API and SDK
credentials.May 13, 2026
Payment-disclosure geography —
paymentDisclosures now identifies the
customer’s geography. country is the ISO 3166-1 alpha-3 code,
administrativeArea is included for US state-level disclosures, and area
can identify broader regions such as "EEA".May 12, 2026
Going Live — documented the acceptance criteria for the global rollout
(except UK). Each requirement is now tagged with a geo, and new sections cover
Cards, Identity API, and EEA Apple Pay disclosures (verbiage pending). See
Going Live.
May 8, 2026
Preview removed — the Developer Platform is now generally available. The
“currently in preview” notice has been removed from all docs pages.
May 8, 2026
Card payments — new Pay with card guide
and frame references for Add Card,
Buy, and Challenge.
Covers the full integration: listing and managing stored cards, getting a card
quote, executing transactions via the headless buy frame, and handling
verification challenges (SCA, 3DS, CVC re-entry, KYC). Also adds the Delete
payment method API
endpoint.
May 5, 2026
Reset frame — new headless frame at
/platform/v1/reset that lets you log
a customer out by clearing their authentication state on MoonPay’s domain.
Reports completion via postMessage. See Reset.May 5, 2026
Unified docs site — Platform and Widget docs now live under a single
Mintlify site with separate top-level tabs. Legacy
/overview/*, /guides/*,
/frames/*, /sdk-reference/*, and /api-reference/* URLs redirect to their
new /platform/* paths.May 1, 2026
Manual integration fixes — corrected the WebView samples to post the
payload as a string, base64-decode credentials, and handle JS dialogs. Affects
web,
iOS,
Android, React
Native, and
Flutter guides.
May 1, 2026
Fee language updated across guides to clarify partner vs. ecosystem fees.
April 30, 2026
Revoke session —
DELETE /platform/v1/sessions invalidates an active
session token. See Revoke a
session.April 29, 2026
Sessions endpoint renamed —
POST /platform/v1/session is now POST /platform/v1/sessions (plural). The old path continues to work; new
integrations should use the plural form.April 28, 2026
Apple Pay going-live guide — added production-readiness details for the
Apple Pay frame, including merchant verification and domain registration
steps. See Pay with Apple Pay.
April 27, 2026
customerId in connect/check payload — the complete postMessage event
now documents customer.id, and the session-create request documents the
customerId field for returning users (skip the connect flow when you already
have one).April 20, 2026
Manual integration credentials — the manual integration guides now use
clientToken (not sessionToken) to initialize frames, matching the
early-credential-issuance flow.April 17, 2026
US payment-disclosure rails narrowed — the
paymentDisclosures capability
is now documented as scoped to NY and WA within the US. Customers in other US
states will not receive a paymentDisclosures requirement.April 17, 2026
HKDF examples — manual integration code samples consistently pass
undefined for the info parameter of hkdf().April 10, 2026
Acceptance criteria page — new compliance checklist outlining the
requirements for going live. See Going live.
April 10, 2026
Manual integration moved — the per-platform manual integration pages now
live under Guides → Manual
Integration.
April 10, 2026
Using agents — new page covering MCP client setup for Claude Code and
Codex, so you can wire your agent to MoonPay’s developer docs. See Using
agents.
April 10, 2026
Manual integration docs — initial documented integrations for web, iOS,
Android, React Native, and Flutter (graduated from hidden drafts).
April 9, 2026
Early credential issuance — the credentials-flow guide now reflects that
clientToken and accessToken are issued before authentication completes, so
partners can initialize sensitive frames sooner.April 9, 2026
Connect-flow low-friction callout — added guidance to the connect-flow
guide about minimizing handoffs back to MoonPay-hosted UI.
April 9, 2026
Apple Pay frame height — corrected the documented frame height for the
Apple Pay frame.
March 2026
Quote API:
fees.partner field renamed to fees.ecosystem.Apple Pay: documented test-mode and frame sandbox requirements, plus a
corrected frame size.Customer capabilities and payment-disclosure requirements expanded.New widget-fallback frame and integration guide.Frames protocol: documented version: 2 and added the versioning section.Frame URLs migrated from /v2/* to /platform/* across all docs.February 2026
OpenAPI now served live from
https://api.moonpay.com/platform/openapi.json
rather than checked into the repo.Removed historical pk_test / pk_live references in favor of the new
credential model.Initial Apple Pay frame size and frame sandbox requirements published.Mintlify upgrade and a content-style-guide pass across guides and frames docs.