Hosted payment page
A compliant checkout in your brand, hosted by Aslan — card data never touches your servers.
An agnostic payment API: one integration for every way you get paid online — hosted payment page, links, QR codes, cash to web.
↓See the channelsAslan Payment is an online payment gateway for businesses in Morocco. One API lets you get paid through a hosted checkout page, payment links, QR codes and cash-to-web, in dirhams. Card details are entered on hosted pages and never touch your servers. Aslan is Principal Agent of a payment institution licensed by Bank Al-Maghrib.
A compliant checkout in your brand, hosted by Aslan — card data never touches your servers.
Create a link, share it over WhatsApp, email or an invoice — get paid without a website.
Display, scan, paid — at the counter or on screen.
Your customers pay their online orders in cash, through a network of payment points.

A card payment completed online — one API behind it
Aslan Payment runs on licensed rails — Aslan is Principal Agent of a payment institution licensed by Bank Al-Maghrib.
Payment pages, receipts and emails in your colors — your customers only ever see your brand.
A single integration, independent of the underlying rails — your flows don't change when the infrastructure evolves.
Every payment notifies your backend in real time — created, paid, failed, refunded.
Hosted pages and fields: card compliance stays with us, not in your code.
Transaction tracking, refunds, exports — for your teams, not just your developers.
Test keys create sandbox transactions where no real money moves; live keys process real payments. Secret keys stay on your server.
Your server sends an amount in centimes and your return URLs. Aslan answers with a hosted payment URL — or a shareable link with its QR code.
On a hosted page in your colours, by card or cash-to-web. With cash, the customer gets a reference and pays at a cash agent counter.
A signed webhook confirms the outcome: payment.succeeded, payment.failed or payment.expired, and payment.pending_cash while a cash payment is awaited.
Transactions, full or partial refunds and exports live in the dashboard — no developer needed for day-to-day operations.
Both run on the same API and the same security model. The difference is where the payment starts.
| Payment link | Hosted payment page | |
|---|---|---|
| Website needed | No — share the link by WhatsApp, email, SMS or on an invoice | Yes — your site or app redirects the customer |
| Set up from | The dashboard or one API call | Your backend, through the API or an SDK |
| Amount | Fixed when the link is created | Set per order by your server |
| Reuse | Single or multiple payments, optional expiry date | One session per order |
| Best for | Invoices, social selling, deposits, services | E-commerce checkouts and mobile apps |
| Card data | Entered on an Aslan-hosted page | Entered on an Aslan-hosted page |
Create a payment link from the Aslan dashboard or the API, then share it by WhatsApp, email, SMS or on an invoice. Your customer opens it and pays on a secure hosted page; you can also print the link's QR code. You get the same notifications and reporting as with a full website integration.
A payment gateway is the layer between your business and the payment networks. It shows the customer a secure payment form, sends the transaction for authorisation and returns the result to your system. Aslan Payment adds hosted pages, payment links, cash-to-web and webhooks behind a single API.
Any language that can call a REST API. Official SDKs exist for Node.js (TypeScript), PHP — with a dedicated Laravel package — Python, Go, Ruby and React Native. The React Native SDK opens the hosted checkout in a WebView, so it needs no native setup.
Card details are typed on Aslan-hosted pages, so they never pass through your servers. That keeps your scope at SAQ A, the lightest PCI DSS self-assessment questionnaire, instead of a full audit of your infrastructure. You remain responsible for securing your own site and API keys.
Cash-to-web lets customers who do not want to pay by card settle an online order in cash. The checkout page gives them a reference code; they pay at a cash agent counter, and your backend receives payment.pending_cash when the code is issued, then payment.succeeded once the cash is confirmed.
Yes. Test keys create sandbox transactions where no real money moves, with the same API, hosted pages and webhooks as production. Once your integration is validated, you switch to live keys without changing your code.
Yes. Refunds can be full or partial, from the dashboard or the API, and several partial refunds can be issued until the original amount is reached. Each refund triggers refund.created and refund.updated webhooks so your system stays in sync.
One integration, every channel — let's talk about yours.