One API for every Mauritanian bank app — SDKs for TypeScript, Dart, Flutter and React Native, signed webhooks, and a free sandbox to test it all.
1import { Moosyl } from "moosyl-sdk";23const moosyl = new Moosyl(process.env.MOOSYL_SECRET_KEY!);45const session = await moosyl.createCheckoutSession({6transactionId: "txn_123",7amount: 5000,8successUrl: "https://example.com/success",9cancelUrl: "https://example.com/cancel",10});
Create a checkout session on your server and redirect customers to a Moosyl payment page.
Checkout sessionsDrop MoosylView into your Flutter or React Native app for a native payment screen.
Flutter SDKUse the TypeScript or Dart SDK, or call the REST API directly.
API referencepayment-created and payment-updated events, signed with HMAC-SHA256.
Test keys and test phone numbers that simulate every payment outcome.
Client-safe keys for your app, secret keys for your server.
Products, prices, customers and subscriptions over REST.
Live service status for the API and dashboard.
Browse the SDK source on GitHub.
Construct typed events from the payload and reject anything that isn’t signed by Moosyl.
Webhooks guide1import { Moosyl, WebhookSignatureError } from "moosyl-sdk";23const moosyl = new Moosyl(process.env.MOOSYL_PUBLISHABLE_KEY);45app.post("/webhook", express.raw({ type: "application/json" }), (req, res) => {6try {7const { event, data } = moosyl.constructWebhookEvent(8req.body,9req.headers["x-webhook-signature"],10process.env.WEBHOOK_SECRET11);12handleWebhookEvent(event, data);13return res.json({ received: true });14} catch (error) {15if (error instanceof WebhookSignatureError) {16return res.status(401).json({ error: "Invalid signature" });17}18throw error;19}20});
Create an account in minutes and test for free in the sandbox — or book a call and we’ll set it up with you.
1% per successful payment. No monthly fees.
Pricing detailsSDKs, webhooks and guides to go live.
Read the docs