From Zero to
Live in 24 Hours.
Everything you need to start accepting payments with Zyrix — whether you're a merchant using a plugin or a developer building a custom integration.
Choose Your Path
I'm a Merchant
Using Salla, Zid, Shopify, or WooCommerce. No code required.
⏱ ~15 minutesI'm a Developer
Building a custom integration using the Zyrix REST API.
⏱ ~2 hoursMerchant Quick Start — Plugin Setup
Create Your Zyrix Account
Go to zyrix.co and click 'Start Free'. Fill in your business details and create your merchant account. It takes under 2 minutes.
You'll need: Business email, phone number, country of operation
Complete KYB Verification
Upload your commercial registration, tax document, and authorized signatory ID. Our team reviews submissions within 24 hours. You'll receive a confirmation email.
Saudi Arabia: Commercial registration (CR) + IBAN · Turkey: Vergi levhası + IBAN · UAE: Trade license + IBAN
Install the Plugin
From your Zyrix dashboard, navigate to Integrations and select your platform. For Salla and Zid, use the native plugin. For Shopify and WooCommerce, install from the respective app store.
Salla: Apps → Zyrix · Zid: Integrations → Zyrix · Shopify: Apps → Search 'Zyrix' · WooCommerce: Plugins → Add New → Zyrix
Configure Your Settings
Enter your Zyrix API keys (found in Dashboard → API Keys). Select your settlement currency (SAR, AED, TRY, IQD, or USD). Enable the payment methods you want to accept: fiat, USDT, BTC, and/or COD.
Start with test mode — flip to live mode only after completing a test transaction
Run a Test Transaction
Place a test order on your store using the sandbox card number 4111 1111 1111 1111. Verify the payment appears in your Zyrix dashboard. Check that webhooks are firing correctly.
If the test transaction succeeds, you're ready to go live
Go Live
Switch from test mode to live mode in your plugin settings. Remove any test API keys and replace them with your live keys. Your first real payment is ready to be accepted.
Average time from account creation to first live payment: 18 hours
Developer Quick Start — API Integration
Get Your API Keys
After account approval, navigate to Dashboard → API Keys. Copy your secret key (sk_live_...) and publishable key (pk_live_...). Store your secret key securely — never expose it client-side.
// Store in environment variables
ZYRIX_SECRET_KEY=sk_live_xxxxxxxxxxxxxxxxxxxx
ZYRIX_PUBLISHABLE_KEY=pk_live_xxxxxxxxxxxxxxxxxxxxInstall the SDK
Install the official Zyrix SDK for your language. Currently available in Node.js, Python, and PHP.
# Node.js
npm install @zyrix/node
# Python
pip install zyrix-python
# PHP
composer require zyrix/zyrix-phpCreate a Payment Intent
Initialize the SDK and create your first payment intent. The response includes a checkout_url to redirect your customer to.
const zyrix = require('@zyrix/node')(process.env.ZYRIX_SECRET_KEY);
const payment = await zyrix.payments.create({
amount: 15000, // Amount in smallest unit (e.g., 150.00 SAR)
currency: 'SAR', // SAR, AED, TRY, IQD, EGP, USD
method: 'auto', // auto, card, usdt, btc, cod
customer: {
name: 'Ahmed Al-Rashid',
email: 'ahmed@example.com',
phone: '+966501234567',
},
redirect_url: 'https://yourstore.com/order/confirmed',
webhook_url: 'https://yourstore.com/webhooks/zyrix',
metadata: { order_id: 'ORD-1234' },
});
// Redirect customer
res.redirect(payment.checkout_url);Handle Webhooks
Set up a webhook endpoint to receive real-time payment events. Verify the signature using your webhook secret to ensure authenticity.
const express = require('express');
const zyrix = require('@zyrix/node')(process.env.ZYRIX_SECRET_KEY);
app.post('/webhooks/zyrix', express.raw({ type: 'application/json' }), (req, res) => {
const signature = req.headers['x-zyrix-signature'];
let event;
try {
event = zyrix.webhooks.constructEvent(
req.body,
signature,
process.env.ZYRIX_WEBHOOK_SECRET
);
} catch (err) {
return res.status(400).send('Webhook signature verification failed');
}
switch (event.type) {
case 'payment.completed':
await fulfillOrder(event.data.metadata.order_id);
break;
case 'payment.failed':
await notifyCustomer(event.data.customer.email);
break;
case 'cod.confirmed':
await markOrderDelivered(event.data.metadata.order_id);
break;
}
res.json({ received: true });
});Test in Sandbox
Switch to your sandbox keys and run end-to-end tests. Use test card 4111 1111 1111 1111 for successful payments. Check your webhook endpoint receives events correctly.
// Switch to sandbox
const zyrix = require('@zyrix/node')(process.env.ZYRIX_TEST_SECRET_KEY, {
environment: 'sandbox'
});
// Test with sandbox card
const testPayment = await zyrix.payments.create({
amount: 10000,
currency: 'SAR',
method: 'card',
// ... rest of params
});
console.log('Sandbox checkout URL:', testPayment.checkout_url);Go Live
Replace sandbox keys with live keys in your environment variables. Remove the environment: 'sandbox' flag. Deploy and monitor your first live transactions from the Zyrix dashboard.
// Production — use live keys
const zyrix = require('@zyrix/node')(process.env.ZYRIX_SECRET_KEY);
// No 'environment' flag needed for production