Moyasar Payment Integration v1.0
Accept payments on GoHighLevel using Moyasar โ Saudi Arabia's leading payment gateway. Supports mada, Visa, Mastercard, Apple Pay, STC Pay, and more.
Overview
This integration connects your GoHighLevel sub-accounts to Moyasar, letting you accept online payments directly inside GHL โ for one-time charges, subscriptions, free trials, and saved-card flows.
Once installed, every GHL location can configure its own Moyasar test and live API keys. Customers see a branded checkout in your funnels, order forms, calendar bookings, and invoices.
What's included
๐ณ All major cards
mada, Visa, Mastercard, AMEX. 3D Secure included.
๐ Apple Pay
One-tap checkout on Safari (iOS, macOS).
๐ฑ STC Pay
Wallet payments for Saudi customers.
๐ Subscriptions
Recurring billing with stored card-on-file.
๐ Free trials
Activate trials at 0 SAR, charge later.
๐ Multi-currency
SAR, USD, AED, EUR, GBP, KWD, BHD, INR.
โฉ๏ธ Refunds
Full or partial refunds from the GHL UI.
๐ PCI-compliant
Cards never touch your server. Moyasar handles tokenization.
Installation
Install from the GHL Marketplace
Go to the GoHighLevel Marketplace, search for Moyasar, and click Install. Choose the location (sub-account) you want to enable payments for.
Get your Moyasar API keys
Sign in to your Moyasar dashboard โ Developers โ API Keys. You will need:
- Publishable key โ starts with
pk_test_(test) orpk_live_(live) - Secret key โ starts with
sk_test_orsk_live_
Keep your secret key private. Never paste it into emails, Slack, or chat.
Connect inside GHL
Open the Moyasar app inside your GHL location โ Payments โ Integrations โ Moyasar โ Connect. Paste your publishable key and secret key for both test and live mode. Save.
Start accepting payments
Moyasar will now appear as a payment option on your funnels, order forms, calendars, and invoices. Test mode is enabled by default โ use test cards before going live.
Configuration
Test vs Live mode
Each location supports both modes simultaneously. Test mode uses Moyasar's sandbox โ no real money moves. Switch to live by entering live keys (sk_live_) and toggling Live mode in the app.
Multi-currency
Supported currencies โ your Moyasar account must be enabled for each currency you charge in. Live-mode currency support is granted per account by Moyasar.
| Code | Currency | Test mode | Live mode |
|---|---|---|---|
| SAR | Saudi Riyal | โ Default | โ Default |
| USD | US Dollar | โ | Request from Moyasar |
| AED | UAE Dirham | โ | Request from Moyasar |
| EUR / GBP / KWD / BHD / INR | โ | โ | Request from Moyasar |
Payment methods
By default, customers see card payment (mada, Visa, Mastercard). Optional wallets are configured per location in the app's Settings tab.
Apple Pay & STC Pay
Apple Pay
- In your Moyasar dashboard โ Apple Pay โ Add a domain. Register the domain your checkout runs on.
- In the Moyasar GHL app โ Settings โ Apple Pay โ toggle on, set a label (e.g. "Acme Co.").
- Customers on Safari (iOS / macOS) will see the Apple Pay button at checkout.
STC Pay
Toggle on in Settings โ STC Pay. Customer enters their STC Pay number and approves via SMS.
Subscriptions
Create recurring subscriptions in GHL โ daily, weekly, monthly, yearly, or custom intervals. The customer's card is securely saved on the first charge and reused for renewals automatically.
- Renewals run automatically on the scheduled date.
- Failed renewals are retried per GHL's dunning settings.
- Customers and admins can cancel anytime from the GHL UI.
Free trials
Supported. When GHL activates a 0 SAR trial subscription, the integration records the trial without charging. When the trial period ends, GHL automatically triggers the first real charge against the saved card.
The customer must enter a valid card during trial signup so renewals can succeed. Cards added during trial are validated when the first real charge runs.
Saved cards (card-on-file)
Once a customer pays, their card is tokenized by Moyasar and saved to their GHL contact. Future charges (subscription renewals, one-click checkouts) use the stored token โ no card re-entry needed.
Cards can be listed and managed per contact via GHL's payment methods UI.
Refunds
Issue refunds from GHL โ Payments โ Transactions. Both full and partial refunds are supported. The refund is processed instantly against Moyasar; the customer's bank usually returns funds within 5โ10 business days.
Test cards
Use these in test mode to simulate scenarios. All test cards work with any future expiry date and any 3-digit CVV.
| Card number | Brand | Result |
|---|---|---|
4111 1111 1111 1111 | Visa | โ Success |
5123 4500 0000 0008 | Mastercard | โ Success |
4242 4242 4242 4242 | Visa | โ Success |
4000 0000 0000 0002 | Visa | โ Declined |
For 3D Secure flows, Moyasar's test environment will prompt with a sandbox OTP page โ confirm to simulate authentication.
Webhooks Developer
The integration listens for Moyasar webhook events and forwards relevant updates to GHL:
payment.paidโ payment capturedpayment.failedโ payment failedpayment.refundedโ refund completed
Webhook endpoint:
POST https://your-api-domain/webhooks/moyasar
Signature verification uses HMAC-SHA256 with your Moyasar webhook secret. Configure the webhook in your Moyasar dashboard under Developers โ Webhooks.
Troubleshooting
Apple Pay button doesn't show
- Confirm you registered the domain in your Moyasar dashboard.
- Apple Pay only renders in Safari on devices with Apple Pay set up.
- Check that the domain verification file is reachable at
https://your-domain/.well-known/apple-developer-merchantid-domain-association.
Payment fails with "amount must be at least 1 SAR"
Moyasar's minimum charge is 1 SAR. Free trials (0 SAR) are handled separately โ the integration won't reject them.
Live currency charge fails
Test mode supports all currencies, but live mode requires Moyasar to enable each currency on your account. Contact Moyasar support to enable USD/AED/etc for live charges.
Subscription renewal fails
- Verify the customer's saved card hasn't expired.
- Check GHL's dunning settings โ failed renewals retry on a schedule.
- If the card is declined, GHL notifies the customer to update payment info.
FAQ
Does this work for non-Saudi customers?
Yes. Cards from anywhere in the world work for card payments. mada cards are Saudi-only. Wallets like Apple Pay work globally; STC Pay is Saudi-only.
What fees does Moyasar charge?
Pricing is set by Moyasar โ see moyasar.com/pricing. Standard mada rates differ from international cards.
Can I use one Moyasar account for multiple GHL locations?
Yes โ but each location should configure its own keys. The integration scopes credentials per location.
Are payments PCI compliant?
Yes. Card details are entered in Moyasar's PCI-DSS Level 1 iframe and never reach your servers. The integration only handles tokens, never raw card data.
Does it support 3D Secure?
Yes, automatically. Moyasar handles 3DS authentication via redirect; the integration handles the return-flow and finalizes the payment.
Support
- ๐ง Email: [email protected]
- ๐ Moyasar docs: docs.moyasar.com
- ๐ GHL marketplace: open a support ticket from the app listing