Skip to main content

Saleor

Accept payments through MONEI in your Saleor store using the official MONEI Payment App. The app follows the Saleor payment app architecture and supports Cards (Visa, Mastercard, Amex), Bizum, Apple Pay, and Google Pay.

Features

  • Supported payment methods — Cards via MONEI.js secure iframe, Bizum via redirect, Apple Pay and Google Pay via MONEI.js components
  • Full lifecycle support, (manual or auto), refund, and cancel
  • Multi-acquirer routing — Intelligent routing for optimal authorization rates
  • Native Bizum — Direct Bizum acquiring, Spain's dominant mobile payment method
  • compliant — Card data handled via MONEI.js secure iframes, keeping your store out of PCI scope
  • Webhook-driven — Payment status updates via signed MONEI webhooks

Supported payment methods

MethodIntegrationCaptureRefundCancel
Cards (Visa, Mastercard, Amex)MONEI.js secure iframeManual / AutoYesYes
BizumRedirectAutoYesYes
Apple PayMONEI.js componentAutoYesYes
Google PayMONEI.js componentAutoYesYes

Requirements

DependencyVersion
Node.js18.17+ (LTS recommended)
Saleor3.13+ (Cloud or self-hosted)

Before you begin

To test your integration:

Install

Step 1: Clone and configure

git clone https://github.com/MONEI/saleor-monei.git
cd saleor-monei
cp .env.example .env

Edit .env with your MONEI credentials:

MONEI_API_KEY=your_api_key
MONEI_ACCOUNT_ID=your_account_id
NEXT_PUBLIC_APP_URL=http://localhost:3000

Step 2: Install and run

npm install
npm run dev

Step 3: Install in Saleor

  1. Open Saleor Dashboard → Apps → Install External App
  2. Enter your manifest URL: http://localhost:3000/api/manifest
  3. The app registers its webhooks automatically

Configure

VariableDescriptionRequiredDefault
MONEI_API_KEYAPI key from MONEI DashboardYes
MONEI_ACCOUNT_IDMerchant account IDYes
MONEI_WEBHOOK_SECRETHMAC key for webhook signature verificationNo
MONEI_ENVIRONMENTtest or liveNotest
APLAuth persistence layer: file (dev) or upstash (prod)Nofile
NEXT_PUBLIC_APP_URLPublic URL where this app is hostedYes

How it works

The app handles three Saleor synchronous webhooks:

WebhookPurpose
PAYMENT_GATEWAY_INITIALIZE_SESSIONReturns available payment methods and MONEI.js configuration
TRANSACTION_INITIALIZE_SESSIONCreates a MONEI payment and returns the result or redirect URL
TRANSACTION_PROCESS_SESSIONChecks payment status after customer action (3D Secure, Bizum)

Payment flow

  1. Customer initiates checkout → Saleor calls PAYMENT_GATEWAY_INITIALIZE_SESSION
  2. App returns available MONEI payment methods and MONEI.js config
  3. Customer selects a payment method → Saleor calls TRANSACTION_INITIALIZE_SESSION
  4. App creates a MONEI payment and returns the redirect URL or MONEI.js data
  5. Customer completes payment (3D Secure, Bizum redirect, etc.)
  6. Saleor calls TRANSACTION_PROCESS_SESSION → App checks final payment status

Deployment

Deploy to Vercel, Railway, or any platform that supports Next.js:

npm run build
npm start

For production multi-tenant deployments, set APL=upstash and configure Upstash Redis for auth token storage.

Before you go live

  • Make sure that you are using live (production) mode API Key.
  • Make sure that you have at least one active payment method.
  • Set MONEI_ENVIRONMENT=live in your environment variables.