ShegerPay for Shopify
Quick Answer: Shopify merchants in Ethiopia integrate ShegerPay through a webhook + custom-app pattern (since Shopify doesn't natively expose Ethiopian payment gateways) to accept CBE Birr, Telebirr, Visa, PayPal, and USDT — verified and reconciled into Shopify's order system automatically. Non-custodial settlement means funds land directly in your accounts and the integration requires no merchant license.
The problem Shopify merchants in Ethiopia face today
Shopify's payment gateway list is geographically restrictive. Ethiopia isn't a supported region for Shopify Payments, Stripe, or most of Shopify's certified third-party gateways. The handful of local processors that have built Shopify integrations are custodial, charge percentage fees on top of Shopify's transaction fee, and don't support PayPal or crypto.
The pragmatic workaround most Ethiopian Shopify stores use today is "Manual Payment" — Shopify shows a "bank transfer" option, the customer pays you via CBE Birr or Telebirr separately, then you log into Shopify admin and manually mark each order as paid. Multiply by daily order volume and you have a reconciliation team. Cart abandonment also spikes because the manual-payment UX feels uncertain ("did the merchant actually receive it?").
International customers face an even uglier choice: PayPal isn't easily wireable into a Shopify checkout for Ethiopian merchants without a foreign business entity, and Shopify rejects crypto entirely. So your diaspora and international buyers either don't convert or get bounced to a separate payment page.
How ShegerPay solves it
ShegerPay integrates with Shopify through a hybrid pattern: a custom app (or Shopify webhook + private app) that listens for orders/create, generates a ShegerPay payment link with the order's amount and reference, and either redirects the customer to the hosted ShegerPay checkout or surfaces the rail options on an order-confirmation page.
When the customer pays — through any rail — ShegerPay verifies via the rail's source of truth and fires a webhook back to your middleware, which uses Shopify's Admin API to mark the order paid (POST /orders/{id}/transactions). The customer sees their Shopify order flip to "Paid" automatically, gets the standard Shopify fulfillment email, and your inventory decrements as normal.
For merchants who don't want to host middleware, we provide a Cloudflare Worker template that runs the bridge for free at the edge.
Code example (Shopify ↔ ShegerPay bridge in Node)
import express from 'express';
import ShegerPay from '@shegerpay/sdk';
import Shopify from 'shopify-api-node';
const sp = new ShegerPay({ apiKey: 'sk_test_demo' });
const shopify = new Shopify({
shopName: 'mystore',
accessToken: process.env.SHOPIFY_ADMIN_TOKEN,
});
const app = express();
// 1. Shopify fires orders/create webhook → we generate a ShegerPay link
app.post('/shopify/order-created', express.json(), async (req, res) => {
const order = req.body;
const link = await sp.paymentLinks.create({
amount: parseFloat(order.total_price),
currency: order.currency,
reference: String(order.id),
rails: ['cbe', 'telebirr', 'visa', 'paypal', 'usdt_tron'],
successUrl: `https://mystore.myshopify.com/orders/${order.token}`,
webhookUrl: 'https://bridge.mystore.com/sp/verified',
});
// Email or SMS the link to the customer
await mailer.send(order.email, 'Complete your payment', link.url);
res.sendStatus(200);
});
// 2. ShegerPay verified webhook → mark Shopify order paid
app.post('/sp/verified', express.json({ verify: (r,_,b)=>{r.rawBody=b} }), async (req, res) => {
if (!sp.webhooks.verify(req.rawBody, req.headers['x-shegerpay-signature'])) {
return res.sendStatus(401);
}
const { event, data } = req.body;
if (event !== 'payment.verified') return res.json({ skipped: true });
await shopify.transaction.create(data.reference, {
kind: 'capture',
status: 'success',
amount: data.amount,
gateway: 'ShegerPay',
authorization: data.txId,
});
res.json({ ok: true });
});
app.listen(3000);
The middleware is ~80 lines total; deployable to Cloudflare Workers, Vercel, Render, or a tiny VPS.
Why non-custodial matters for Shopify merchants
A custodial bridge would put your customer's payment into a third-party processor balance for days before settling — exactly the experience that drove you away from Manual Payment in the first place. It would also reintroduce the merchant-license question (you're effectively running a custodial gateway for your own store) and add a percentage fee on top of Shopify's existing transaction fee.
ShegerPay's non-custodial bridge means CBE Birr lands in your CBE account, Telebirr lands in your Telebirr wallet, PayPal lands in your PayPal, USDT lands in your wallet — all in real time, all directly. The bridge is just a verification and order-marking layer. Your Shopify store gets the modern auto-paid UX without giving up custody of your own revenue.
Workflow features used
- Shopify orders/create webhook trigger
- ShegerPay hosted payment links
- Multi-rail support at checkout
- Shopify Admin API transaction.create for auto-paid
- HMAC-SHA256 signed verification webhooks
- Cloudflare Worker bridge template (free tier deployment)
Pricing fit
Shopify stores in pilot or low volume fit Free. Active Shopify stores doing 100-1,000 orders/month sit on Starter $9. High-volume Shopify shops with international traffic fit Growth $29. Custom integrations (Shopify Plus, custom checkout) talk Enterprise.
FAQ
Does Shopify natively support ShegerPay as a payment gateway? No — Ethiopia isn't a supported gateway region. Integration is via a custom app / webhook bridge, which is well-documented and lightweight.
Can I still use Shopify's own checkout? The customer uses Shopify checkout to place the order; payment is completed on the ShegerPay page; Shopify then shows "Paid" status automatically.
Will my Shopify abandoned-cart emails still work? Yes — abandoned-cart logic fires from Shopify's order events as usual. ShegerPay only handles the payment step.
Can I use this with Shopify Plus / headless? Yes — the same webhook bridge works for Plus and headless storefronts.
What's the cheapest way to host the bridge? A Cloudflare Worker (free tier handles thousands of orders/day) — we provide a template repo.
Does this work with Shopify subscriptions? Yes, via Shopify's subscription contracts API combined with ShegerPay's subscription engine.
Related: Pricing · API Docs · ShegerPay vs Chapa · Verify Telebirr · Non-custodial payments explained