Runtime Unreal Engine plugin for MakePay checkout flows in games, creator tools, and server-authoritative digital goods.
The plugin exposes Blueprint nodes and C++ helpers for:
- creating checkout sessions through your own backend;
- opening trusted MakePay checkout URLs;
- building mobile/desktop return deep links;
- parsing return URLs for UI state;
- keeping durable entitlements server-authoritative.
MakePay credentials, webhook verification, and item grants must stay on your backend. The plugin never calls authenticated MakePay APIs from a packaged game.
From your Unreal project root:
mkdir -p Plugins
git submodule add https://github.com/makecryptoio/makepay-unreal.git Plugins/MakePayRegenerate project files, rebuild the project, then enable MakePay in Edit > Plugins if it is not already enabled.
- Build a
MakePayCheckoutSessionRequest. - Call Create MakePay Checkout Session with your backend endpoint.
- On success, call Open Checkout Url with the returned checkout URL.
- Parse return/deep-link URLs with Parse Checkout Return Url.
- Unlock credits, ranks, skins, or donations only after your backend verifies the paid webhook.
sequenceDiagram
participant Game as Unreal game
participant Backend as Game backend
participant MakePay
Game->>Backend: POST checkout request
Backend->>MakePay: Create checkout
MakePay-->>Backend: checkoutUrl
Backend-->>Game: checkoutUrl
Game->>MakePay: Launch checkout
MakePay-->>Game: Return deep link
MakePay-->>Backend: Paid webhook
Backend-->>Game: Entitlement available
FMakePayCheckoutSessionRequest Request;
Request.ExternalId = TEXT("order_123");
Request.AmountMinor = 999;
Request.Currency = TEXT("USD");
Request.Description = TEXT("Starter credit pack");
Request.SuccessUrl = UMakePayBlueprintLibrary::BuildReturnUrl(TEXT("mygame"), TEXT("makepay/return"), Request.ExternalId);
Request.CancelUrl = UMakePayBlueprintLibrary::BuildReturnUrl(TEXT("mygame"), TEXT("makepay/cancel"), Request.ExternalId);The async checkout node posts that payload to your backend. Your backend response should include:
{
"checkoutUrl": "https://checkout.makepay.io/pay/example",
"sessionId": "session_123",
"externalId": "order_123",
"expiresAt": "2026-05-29T12:00:00Z"
}- Do not store MakePay credentials in plugin source, config, Blueprints, cooked content, or client save data.
- Do not call authenticated MakePay APIs from Unreal clients.
- Treat return URLs as UI hints only.
- Grant durable goods only after backend webhook verification.
- Use
ExternalIdto connect a player, order, SKU, amount, and entitlement record.
This repository includes static validation for descriptor shape, module layout, and client-side safety constraints:
node scripts/validate.mjsFull compilation requires an Unreal Engine 5.x installation. In CI, the lightweight validator prevents layout regressions and credential leaks.