New releases
Supported currencies and MoonPay Gateway overview. A new Supported
currencies page brings together MoonPay’s on-ramp and off-ramp currency table
with an overview of MoonPay Gateway, including its benefits, purchase flow, and
support for DeFi tokens on Solana, Ethereum, Base, and HyperCore.New pages:
New releasesImprovementsBug fixes
Payment presentation and fee behavior clarified. Going Live requirements
now distinguish the contextual quote summary from the required fee breakdown
across Apple Pay, Google Pay, cards, the buy button, and the widget. Core
concepts now includes an illustrative side-by-side fee-behavior comparison.Updated references:
Verification tiers documented. A new Verification tiers page is the public reference for what customers complete at each KYC tier, per region: the steps each tier adds, the regional tier ladders, and how higher tiers unlock higher purchase limits.New pages:
- Going Live
- Core concepts
- Pay with Apple Pay
- Pay with Google Pay
- Pay with card
- Pay with the buy button
- Pay with widget
Verification tiers documented. A new Verification tiers page is the public reference for what customers complete at each KYC tier, per region: the steps each tier adds, the regional tier ladders, and how higher tiers unlock higher purchase limits.New pages:
New releasesImprovementsBug fixes
DeFi tokens on the Platform API. You can now discover and buy DeFi tokens
through Gateway. The new list assets endpoint returns both CeFi and DeFi tokens,
each with its CAIP-19 identifier and on-chain metadata. To quote a DeFi token,
pass its
Manual integration guides accept
caip19 as the destination instead of a code, since a DeFi token’s
code is not unique. DeFi buys also surface the gateway-token payment
disclosure documented in Going Live.New pages:Updated references:blocks.moonpay.com references updated to platform.moonpay.com.
Frame URLs, iframe/WebView src examples, and reference implementation
snippets that still pointed at the deprecated blocks.moonpay.com domain now
use platform.moonpay.com, matching the SDK’s DEFAULT_FRAME_BASE_URL.Updated references:- Widget frame
- Buy frame
- Buy button frame
- Apple Pay frame
- Google Pay frame
- Add Card frame
- Connect frame
- Check frame
- Reset frame
- Configure frame appearance
- Handle challenges
- Test mode
- Manual integration — Web
- Manual integration — React Native
- Manual integration — Flutter
- Manual integration — Android
- Manual integration — iOS
- SDK reference implementation — Web
- SDK reference implementation — React Native
- SDK reference implementation — Flutter
gateway-token disclosure described in the API reference. The
Get a quote endpoint reference
now describes the gateway-token disclosure id inline with the other
disclosures, matching the Going Live copy.Updated references:Manual integration guides accept
externalTransactionId. The buy, Apple
Pay, Google Pay, and widget frame examples across every platform’s manual
integration guide now take an optional externalTransactionId and forward it
as an initialization parameter, matching the buy,
Apple Pay, Google
Pay, and widget
frame references.Updated references:ImprovementsBug fixes
Device and browser support for Apple Pay and Google Pay. The Pay with Apple
Pay and Pay with Google Pay guides now have Device and browser support
sections. They cover which browsers and devices each payment method works on,
what embedding the frame in a native app requires (
Supported testnet list corrected. Solana test transactions run on Devnet, not Testnet, and Binance Coin is no longer available in test mode. Bitcoin Cash and the XRP Ledger (
WKWebView dialog handling
on iOS, Payment Request API setup in Android WebView), and runtime detection
through the frame’s unsupported event. The Apple Pay guide also documents
that the Apple Pay frame doesn’t offer Apple’s cross-device flow, where the
customer scans a QR code with their iPhone, and that the widget does.Updated references:apple_pay quotes render Apple Pay in the widget. The Pay with widget
guide no longer says an apple_pay quote renders the card form. The widget
now renders Apple Pay for apple_pay quotes, including the cross-device QR
flow in browsers the headless frame doesn’t support.Updated references:Supported testnet list corrected. Solana test transactions run on Devnet, not Testnet, and Binance Coin is no longer available in test mode. Bitcoin Cash and the XRP Ledger (
XRP and RLUSD) are supported and now documented. The
test assets table
also lists asset codes, links the
MoonPayToken
contract that ERC-20 test transfers deliver in place of the real token, and
documents that test-mode purchases deliver 1/100th of the quoted amount.Updated references:ImprovementsBug fixes
Payment disclosure IDs documented. The
KYC data requirements and the Auth frame are now in the sidebar. The per-country KYC data requirements reference now appears in the Customers group and is indexed for search, and the Auth frame — the entry point for onboarding via API — now appears under Frames → Connections.Updated references:
Check frame documentation matches the SDK. The Check frame now documents the
Live API data called out as canonical. Pages that enumerate per-country requirements or regional availability now carry a callout pointing to the live API response —
paymentDisclosures[].id field on
a buy quote now lists every known disclosure identifier and what each one
means, instead of an undocumented plain string.Updated references:KYC data requirements and the Auth frame are now in the sidebar. The per-country KYC data requirements reference now appears in the Customers group and is indexed for search, and the Auth frame — the entry point for onboarding via API — now appears under Frames → Connections.Updated references:
Check frame documentation matches the SDK. The Check frame now documents the
skipKyc
initialization parameter used by Customer API integrations and the
termsAcceptanceRequired connection status, matching the SDK’s Connection
union. The Hosted onboarding guide’s
connection statuses section covers termsAcceptanceRequired too.Updated references:Live API data called out as canonical. Pages that enumerate per-country requirements or regional availability now carry a callout pointing to the live API response —
kyc.requirements on the customer, capabilities on the
connection — as the definitive answer for a given customer.Updated references:ImprovementsBug fixes
Per-partner capability enablement documented. Some Platform API
capabilities must be enabled on your account by MoonPay before you can call
them. Requests to an endpoint for a capability that is not enabled fail with a
plain
Leftover preview wording removed. The account setup callout on the requirements and credentials pages no longer refers to the preview program.Updated references:
404 (Cannot POST /...) rather than a permissions error. The API
reference now calls this out in a new
Capability enablement
note at the top of the Using the Platform API page, the introduction mentions
it, and every Platform API endpoint reference page carries a short reminder.Updated references:Leftover preview wording removed. The account setup callout on the requirements and credentials pages no longer refers to the preview program.Updated references:
Bug fixes
Pay with widget and payment method type corrections. The Pay with widget
guide no longer hardcodes a list of supported
paymentMethod.type values —
several were incorrect — and its example now uses the correct card type. The
guide and the SDK reference pages for quotes and payment methods now point to
the Get a quote API reference,
which renders the enum from the live OpenAPI spec, as the single source of
truth. The guide and the setupWidget SDK reference also state that the widget
requires an executable quote — pass both a paymentMethod and a wallet — and
that a non-executable quote will not render. The widget collects payment for
the method you pass; it does not present payment-method selection.Updated references:ImprovementsBug fixes
Provide the React Native session token after mount. The
Widget frame example accepts
sessionToken prop
on <MoonPayProvider> is now optional. Mount the provider without it and call
initialize() from useMoonPay() once your server returns the token — handy
when you fetch it after the customer signs in. A new isInitialized flag
reports when the SDK has a token; connection methods called before then return
an err() result. Passing the sessionToken prop still works unchanged.Updated references:Widget frame example accepts
externalTransactionId — the manual web
integration guide’s widget frame example now takes an optional
externalTransactionId and forwards it as an initialization parameter,
matching the buy frame example in the same guide and the
widget frame reference.Updated references:New releasesImprovements
Customer API in the API reference. The
Due-diligence questionnaires and reporting currency. The KYC data requirements reference now documents the
Terms acceptance — new guide for the API-driven path. Partners on the API-driven onboarding path must present MoonPay’s Terms of Use and Privacy Policy in their own UI before the customer’s first transaction. The new guide covers the two presentation methods, recording acceptance with
/platform/v1/customers endpoints
now have dedicated API reference pages: get a customer, submit KYC data, get
a file upload URL, confirm uploaded files, and export customer data. Two new
type pages document the Customer object (including KYC status and
requirements) and the customer export payload.New pages:- Get a customer
- Submit KYC data
- Get a file upload URL
- Confirm uploaded files
- Export customer data
- Customer
- Customer export
Due-diligence questionnaires and reporting currency. The KYC data requirements reference now documents the
questionnaires requirement
category: the Customer Due Diligence and Enhanced Due Diligence answer
fields, and the monetary-amount shape they share. Monetary answers such as
grossAnnualIncome, expectedTransactionAmountPerMonth, and netWorth are
denominated in the reporting currency for the customer’s
residentialAddress.country: GBP for GBR, AUD for AUS and NZL, EUR for EEA
countries, and USD everywhere else. The API rejects a mismatched currency
with a 400 validation error. The Onboarding via API guide now shows how to
submit questionnaire answers.requiredFields on requirement entries. The Onboarding via API guide now
documents which requirement categories populate requiredFields when
incomplete — basicDetails, residentialAddress, taxIdentifiers, and
questionnaires — and its get-a-customer example shows the questionnaires
entry naming the outstanding questionnaire types.Updated references:Terms acceptance — new guide for the API-driven path. Partners on the API-driven onboarding path must present MoonPay’s Terms of Use and Privacy Policy in their own UI before the customer’s first transaction. The new guide covers the two presentation methods, recording acceptance with
termsAcceptedAt when creating a session, handling
termsAcceptanceRequired, re-presenting the terms when they change, and the
related biometric-consent and phone-verification steps.New pages:Updated references:Improvements
externalTransactionId on the buy widget. The widget frame now accepts
an optional externalTransactionId — a partner-assigned identifier for the
transaction attempt, useful for reconciliation. It matches the field already
available on the buy, Google Pay, Apple Pay, and buy-button frames.
setupWidget() forwards it, and on the React Native <MoonPayWidget>
component the same value is exposed as a mount-time prop.Updated references:Improvements
externalTransactionId on payment-button setup. The Apple Pay and buy
button setup methods now accept an optional externalTransactionId — a
partner-assigned identifier for the transaction attempt, useful for
reconciliation. It matches the field already available on Google Pay. On the
React Native <MoonPayApplePayButton> and <MoonPayBuyButton> components the
same value is exposed as a mount-time prop.Updated references:New releasesImprovements
Platform guides reorganized around onboarding paths. The Platform tab now
groups guides into Onboard customers, Accept payments, and Integration
essentials. A new decision page explains the three ways customers can
onboard: the hosted connect flow, the Customer API, or guest checkout. The
Customer API guide now documents the Auth frame entry path
(
getConnection({ skipKyc: true }) + setupAuth()) instead of routing
through the hosted connect flow. Customer export moved to its own page, and
the per-country KYC data requirements reference is now in the sidebar.New pages:Updated references:ImprovementsDeprecations
buttonPressed frame event. The Apple Pay, Google Pay, and Buy Button
frames now emit a buttonPressed event the instant the customer taps the
native pay button, before the OS presents the payment sheet (PassKit on iOS,
the Google Pay sheet on Android). It is an intent-to-buy signal with no
payload, routed by channelId. It is distinct from complete: it fires
earlier and unconditionally on tap, and still fires if the customer opens the
payment sheet and then cancels. Listen for complete for the transaction
outcome.Updated references:feeBehavior on buy quotes. The buy-quote endpoint accepts an optional
feeBehavior field, "inclusive" or "exclusive", that controls how fees
relate to source.amount. With "inclusive" (the default) the customer
pays exactly source.amount and fees are carved out of it. With
"exclusive" fees are added on top, so the full source.amount is converted
and the customer receives more crypto. It applies only when you quote by
source.amount; quotes by destination.amount are always fees-inclusive. The
response echoes the effective feeBehavior. Omitting the field keeps the
existing behavior.Updated references:Identity SDK methods marked deprecated. The web SDK’s identity methods (
createIdentity, getIdentity, updateIdentity, verifyIdentity,
getIdentityUploadUrl, submitIdentityFiles) are deprecated in favor of
the customerId-keyed Customer API. Each method’s reference now links to
its Customer API replacement.Updated references:ImprovementsBug fixes
Terms acceptance instructions corrected for headless partners. The
Consent capture flow documented for customer export. The Customer API guide’s export section now covers how partners capture a customer’s consent with the web SDK’s
termsAcceptanceRequired handling docs referenced POST /platform/v1/terms/attestations, an endpoint that no longer exists. The
documented flow is now to capture the acceptance timestamp in your own UI,
pass it as termsAcceptedAt when you create a new session, and relaunch the
flow. This requires the Identity or Guest Checkout account capability.Updated references:Consent capture flow documented for customer export. The Customer API guide’s export section now covers how partners capture a customer’s consent with the web SDK’s
setupCustomerExport().Updated references:New releases
Customer API guide added — new guide for the customerId-keyed Customer
API: getting a customer’s KYC status, submitting outstanding requirements,
uploading identity files, verifying a customer, and exporting a customer’s
verified identity to another system with their consent.New pages:
ImprovementsBug fixes
Conflict signal on connection check — the check frame’s
complete event
now includes an optional mismatch field on the connectionRequired payload.
It is present and true when the session’s email and phone number resolve to
two different MoonPay customers, and absent when there is no conflict — never
false. Use it to route the customer through the connect flow proactively,
before rendering payment UI such as Apple Pay, instead of discovering the
conflict at purchase time.The CustomerCapabilities documentation is also corrected:
capabilities.oneTapApplePay was removed upstream and is replaced by
capabilities.guestCheckout, which is present when guest checkout is enabled
for the partner and the session is a guest-checkout session.Updated references:New releasesImprovements
WebView and sandboxed iframe embedding documented — the Google Pay and
Apple Pay frame reference pages are now the source of truth for embedding these
frames in a WebView or sandboxed iframe. The Google Pay frame documents the
Android WebView requirements for Payment Request API setup and the
Guest checkout with Apple Pay — new guide for letting customers buy crypto with Apple Pay before they have a MoonPay account. It covers creating a session with the customer’s identity, detecting the
sandbox
attribute values you need when embedding in a sandboxed iframe for PCI DSS v4
compliance. The Apple Pay frame documents the WKWebView requirement to handle
JavaScript dialogs. The Android and iOS manual-integration guides point to
these frame pages.Updated references:Guest checkout with Apple Pay — new guide for letting customers buy crypto with Apple Pay before they have a MoonPay account. It covers creating a session with the customer’s identity, detecting the
guestCheckout capability,
executing the purchase, handling verification challenges, and upgrading a guest
account.New pages:Improvements
Reset frame accepts
clientToken — the Reset
frame reference now documents clientToken (from the
connect flow) alongside apiKey. Either one authorizes your domain to embed
the frame via the frame-ancestors Content Security Policy; without one the
frame only loads on MoonPay-owned origins. channelId remains the only
required parameter.Bug fixes
Reset frame parameters corrected — removed the
language parameter from
the Reset frame reference. The frame is headless and
renders no UI, so the parameter had no effect.Improvements
HYPE sustainability indicators added — added Hyperliquid (HYPE) to the
Sustainability transparency page with
MiCA sustainability indicators provided by CCRI.
Bug fixes
Test payment cards updated — revised the test card tables on the Test
mode page. Removed all American Express test
cards, since Amex is not a supported payment method, and removed a duplicate
card entry that appeared in more than one table.
Improvements
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:New releasesImprovements
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:
Credentials payload documented — the decrypted shape of the
- 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.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.New releasesImprovementsBug fixesDeprecations
Customer geo fields on connection —
React Native SDK is now available — the React Native SDK (
Web SDK reference — corrections and 1.0.0 coverage — the Web SDK docs were audited against the
Check and Connect frame references corrected — resolved discrepancies in the Check and Connect frame references to ensure the correct event payloads are documented, and removed the retired
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:- Connect frame
- Check frame
- Web SDK —
getConnection() - React Native SDK —
getConnection() - Manual integration — Web
- Manual integration — React Native
- Manual integration — Flutter
- Manual integration — Android
- Manual integration — iOS
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.
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.
Check and Connect frame references corrected — resolved discrepancies in the Check and Connect frame references to ensure the correct event payloads are documented, and removed the retired
connection_required / connection_pending /
connection_unavailable error codes from the SDK references.Improvements
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.New releasesImprovementsBug fixesDeprecations
Platform SDK reference — Web — the Web
SDK (
Challenge frame
Buy quotes now return payment disclosure IDs — the quote response includes a
Apple Pay frame failure codes documented — the Apple Pay frame reference now lists the
Google Pay frame failure codes documented — the Google Pay frame reference now lists the
@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.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.Improvements
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.Bug fixes
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.
Improvements
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.
New releasesImprovements
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.ImprovementsBug fixes
Challenge events for Apple Pay and Google Pay — the Apple Pay
frame and Google Pay
frame now emit a
TransactionStatus fix — corrected the
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.New releases
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.Improvements
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.
Improvements
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.Improvements
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".Improvements
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.
New releasesImprovements
Preview removed — the Developer Platform is now generally available. The
“currently in preview” notice has been removed from all docs pages.
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.
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.
New releasesImprovements
Reset frame — new headless frame at
Unified docs site — Platform and Widget docs now live under a single Mintlify site with separate top-level tabs. Legacy
/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.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.ImprovementsBug fixes
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.
Fee language updated across guides to clarify partner vs. ecosystem fees.
Fee language updated across guides to clarify partner vs. ecosystem fees.
New releases
Revoke session —
DELETE /platform/v1/sessions invalidates an active
session token. See Revoke a
session.Improvements
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.Improvements
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.
Improvements
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).Bug fixes
Manual integration credentials — the manual integration guides now use
clientToken (not sessionToken) to initialize frames, matching the
early-credential-issuance flow.ImprovementsBug fixes
US payment-disclosure rails narrowed — the
HKDF examples — manual integration code samples consistently pass
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.HKDF examples — manual integration code samples consistently pass
undefined for the info parameter of hkdf().New releasesImprovements
Acceptance criteria page — new compliance checklist outlining the
requirements for going live. See Going live.
Manual integration moved — the per-platform manual integration pages now live under Guides → Manual Integration.
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.
Manual integration docs — initial documented integrations for web, iOS, Android, React Native, and Flutter (graduated from hidden drafts).
Manual integration moved — the per-platform manual integration pages now live under Guides → Manual Integration.
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.
Manual integration docs — initial documented integrations for web, iOS, Android, React Native, and Flutter (graduated from hidden drafts).
ImprovementsBug fixes
Early credential issuance — the credentials-flow guide now reflects that
Connect-flow low-friction callout — added guidance to the connect-flow guide about minimizing handoffs back to MoonPay-hosted UI.
Apple Pay frame height — corrected the documented frame height for the Apple Pay frame.
clientToken and accessToken are issued before authentication completes, so
partners can initialize sensitive frames sooner.Connect-flow low-friction callout — added guidance to the connect-flow guide about minimizing handoffs back to MoonPay-hosted UI.
Apple Pay frame height — corrected the documented frame height for the Apple Pay frame.
New releasesImprovementsBug fixes
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.Improvements
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.