QUICK START

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

🛍️No Code

I'm a Merchant

Using Salla, Zid, Shopify, or WooCommerce. No code required.

~15 minutes
API

I'm a Developer

Building a custom integration using the Zyrix REST API.

~2 hours

Merchant Quick Start — Plugin Setup

01

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

02

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

03

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

04

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

05

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

06

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

01

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_xxxxxxxxxxxxxxxxxxxx
02

Install 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-php
03

Create 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);
04

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 });
});
05

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);
06

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

Need Help?