Moyasar

Moyasar is a Saudi Arabian payment gateway that lets businesses accept online payments across mada, Visa, Mastercard, American Express, Apple Pay, Samsung Pay, and STC Pay. Its REST API (base https://api.moyasar.com/v1) covers payments (create, fetch, list, refund, capture, void), hosted invoices, card tokenization, webhooks, and payouts / disbursements. Authentication is HTTP Basic with a publishable or secret API key as the username and an empty password, in separate test and live modes.

Moyasar publishes 5 APIs on the APIs.io network, including Invoices API, Payments API, Payouts API, and 2 more. Tagged areas include Payments, Payment Gateway, Saudi Arabia, MENA, and mada.

Moyasar’s developer surface includes authentication, documentation, engineering blog, and 7 more developer resources.

34.2/100 thin ▬ flat Agent 48/100 agent ready Full breakdown ↓
scored 2026-07-23 · rubric v0.5
AccessPaidSelf serve
5 APIs
PaymentsPayment GatewaySaudi ArabiaMENAmadaCardsApple PaySTC PayInvoicesFintech

Kin Score

Kin Score Kin Score How this is scored →
scored 2026-07-23 · rubric v0.5
Composite quality — 34.2/100 · thin
Contract Quality 14.6 / 25
Developer Ergonomics 4.3 / 20
Commercial Clarity 5.8 / 20
Operational Transparency 4.1 / 13
Governance 0.0 / 12
Discoverability 6.8 / 10
Agent readiness — 48/100 · agent ready
Machine-Readable Contract 18 / 18
Agentic Access Contract 15 / 15
MCP Server 0 / 12
Machine-Readable Auth 10 / 10
Idempotency 0 / 9
Stable Error Semantics 0 / 8
Request/Response Examples 0 / 7
Rate-Limit Signaling 7 / 7
Typed Event Surface 0 / 6
Agent Skills 0 / 5
Well-Known Catalog 0 / 4
Consent & Bot Identity 0 / 3
Improve this rating by publishing the missing artifacts — every area above can be raised, and the full rubric is at apis.io/rating/. This rating is computed from github.com/api-evangelist/moyasar: open an issue to ask a question, or submit a pull request to add artifacts. Want it done for you? Prioritized profiling — $2,500 →

APIs 5

Individual APIs this provider publishes, each with its own machine-readable definition.

Moyasar Invoices API

Hosted invoices with a Moyasar-hosted checkout URL.

Moyasar Payments API

Create and manage card and wallet payments.

Moyasar Payouts API

Payout accounts and payouts / disbursements.

Moyasar Tokens API

Client-side card tokenization using a publishable key.

Moyasar Webhooks API

Server-to-server event notifications over HTTP POST.

Open Collections 1

Open, tool-agnostic API collections (OpenAPI-derived and Bruno).

Moyasar API

OPEN COLLECTION

Pricing Plans 1

Published pricing tiers and plan structures.

Moyasar Plans Pricing

2 plans

PLANS

Rate Limits 1

Documented rate limits and quota policies.

Moyasar Rate Limits

3 limits

RATE LIMITS

FinOps 1

Cost, billing, and metering signals for API financial operations.

Security Posture 2

Authentication, domain security, vulnerability disclosure, and trust-center signals.

Moyasar Authentication

http · 1 scheme

SECURITY

Moyasar Domain Security

TLSv1.3 · HSTS · DMARC

SECURITY

Agentic Access 1

Recommended x-agentic-access execution contracts for AI agents.

Moyasar Agentic Access

27 operations · 14 acting

27 operations · 14 acting

AGENTIC

Resources

Documentation 1

Reference material describing how the API behaves

Agent Surfaces 1

MCP servers, agent skills, and machine-readable catalogs

Access & Security 2

Authentication, authorization, and security posture

Operate 1

Status, limits, changes, and where to get help

Commercial 2

Pricing, plans, and the legal terms of use

Company 3

The organization behind the API

Source (apis.yml)

apis.yml Raw ↑
opencollection: 1.0.0
info:
  name: Moyasar API
  version: '1.0'
request:
  auth:
    type: basic
    username: '{{apiKey}}'
    password: ''
items:
- info:
    name: Payments
    type: folder
  items:
  - info:
      name: Create a payment
      type: http
    http:
      method: POST
      url: https://api.moyasar.com/v1/payments
      body:
        type: json
        data: "{\n  \"amount\": 10000,\n  \"currency\": \"SAR\",\n  \"description\": \"Order #1234\",\n  \"callback_url\"\
          : \"https://example.com/callback\",\n  \"source\": { \"type\": \"creditcard\", \"name\": \"John Doe\", \"number\"\
          : \"4111111111111111\", \"cvc\": \"123\", \"month\": \"12\", \"year\": \"2027\" }\n}"
    docs: Creates a payment. amount is in the smallest currency unit (halalas for SAR).
  - info:
      name: List payments
      type: http
    http:
      method: GET
      url: https://api.moyasar.com/v1/payments?page=1
      params:
      - name: page
        value: '1'
        type: query
        description: Page number.
    docs: Lists payments with filtering and pagination.
  - info:
      name: Fetch a payment
      type: http
    http:
      method: GET
      url: https://api.moyasar.com/v1/payments/:id
      params:
      - name: id
        value: ''
        type: path
        description: The payment UUID.
    docs: Retrieves a single payment by its ID.
  - info:
      name: Refund a payment
      type: http
    http:
      method: POST
      url: https://api.moyasar.com/v1/payments/:id/refund
      params:
      - name: id
        value: ''
        type: path
        description: The payment UUID.
      body:
        type: json
        data: "{\n  \"amount\": 5000\n}"
    docs: Refunds a paid payment, fully or partially. Omit amount for a full refund.
  - info:
      name: Capture a payment
      type: http
    http:
      method: POST
      url: https://api.moyasar.com/v1/payments/:id/capture
      params:
      - name: id
        value: ''
        type: path
        description: The payment UUID.
      body:
        type: json
        data: "{\n  \"amount\": 10000\n}"
    docs: Captures an authorized payment, fully or partially.
  - info:
      name: Void a payment
      type: http
    http:
      method: POST
      url: https://api.moyasar.com/v1/payments/:id/void
      params:
      - name: id
        value: ''
        type: path
        description: The payment UUID.
    docs: Voids an authorized, not-yet-captured payment.
- info:
    name: Invoices
    type: folder
  items:
  - info:
      name: Create an invoice
      type: http
    http:
      method: POST
      url: https://api.moyasar.com/v1/invoices
      body:
        type: json
        data: "{\n  \"amount\": 10000,\n  \"currency\": \"SAR\",\n  \"description\": \"Invoice #1234\",\n  \"callback_url\"\
          : \"https://example.com/callback\"\n}"
    docs: Creates a hosted invoice and returns a Moyasar-hosted checkout url.
  - info:
      name: Bulk create invoices
      type: http
    http:
      method: POST
      url: https://api.moyasar.com/v1/invoices/bulk
      body:
        type: json
        data: "{\n  \"invoices\": [ { \"amount\": 10000, \"currency\": \"SAR\", \"description\": \"Invoice A\" } ]\n}"
    docs: Creates multiple invoices in a single request.
  - info:
      name: List invoices
      type: http
    http:
      method: GET
      url: https://api.moyasar.com/v1/invoices?page=1
      params:
      - name: page
        value: '1'
        type: query
        description: Page number.
    docs: Lists invoices with pagination.
  - info:
      name: Fetch an invoice
      type: http
    http:
      method: GET
      url: https://api.moyasar.com/v1/invoices/:id
      params:
      - name: id
        value: ''
        type: path
        description: The invoice UUID.
    docs: Retrieves a single invoice by its ID.
  - info:
      name: Update an invoice
      type: http
    http:
      method: PUT
      url: https://api.moyasar.com/v1/invoices/:id
      params:
      - name: id
        value: ''
        type: path
        description: The invoice UUID.
      body:
        type: json
        data: "{\n  \"description\": \"Updated description\"\n}"
    docs: Updates an existing invoice.
  - info:
      name: Cancel an invoice
      type: http
    http:
      method: DELETE
      url: https://api.moyasar.com/v1/invoices/:id
      params:
      - name: id
        value: ''
        type: path
        description: The invoice UUID.
    docs: Cancels an invoice so it can no longer be paid.
- info:
    name: Tokens
    type: folder
  items:
  - info:
      name: Create a token
      type: http
    http:
      method: POST
      url: https://api.moyasar.com/v1/tokens
      body:
        type: json
        data: "{\n  \"name\": \"John Doe\",\n  \"number\": \"4111111111111111\",\n  \"cvc\": \"123\",\n  \"month\": \"12\"\
          ,\n  \"year\": \"2027\",\n  \"callback_url\": \"https://example.com/callback\"\n}"
    docs: Tokenizes a card from the client side using a publishable key (pk_).
  - info:
      name: Fetch a token
      type: http
    http:
      method: GET
      url: https://api.moyasar.com/v1/tokens/:id
      params:
      - name: id
        value: ''
        type: path
        description: The token ID.
    docs: Retrieves a single token by its ID.
- info:
    name: Webhooks
    type: folder
  items:
  - info:
      name: Create a webhook
      type: http
    http:
      method: POST
      url: https://api.moyasar.com/v1/webhooks
      body:
        type: json
        data: "{\n  \"url\": \"https://example.com/webhooks/moyasar\",\n  \"http_method\": \"post\",\n  \"shared_secret\"\
          : \"my-shared-secret\",\n  \"events\": [\"payment_paid\", \"payment_failed\", \"payment_refunded\"]\n}"
    docs: Registers an HTTPS endpoint to receive event notifications. Omit events for all events.
  - info:
      name: List webhooks
      type: http
    http:
      method: GET
      url: https://api.moyasar.com/v1/webhooks
    docs: Lists all registered webhooks.
  - info:
      name: Fetch a webhook
      type: http
    http:
      method: GET
      url: https://api.moyasar.com/v1/webhooks/:id
      params:
      - name: id
        value: ''
        type: path
        description: The webhook ID.
    docs: Retrieves a single webhook by its ID.
  - info:
      name: Delete a webhook
      type: http
    http:
      method: DELETE
      url: https://api.moyasar.com/v1/webhooks/:id
      params:
      - name: id
        value: ''
        type: path
        description: The webhook ID.
    docs: Removes a registered webhook.
  - info:
      name: List webhook attempts
      type: http
    http:
      method: GET
      url: https://api.moyasar.com/v1/webhooks/:id/attempts
      params:
      - name: id
        value: ''
        type: path
        description: The webhook ID.
    docs: Lists delivery attempts for a given webhook.
  - info:
      name: List available webhook events
      type: http
    http:
      method: GET
      url: https://api.moyasar.com/v1/webhooks/available_events
    docs: Lists the event types available for webhook subscription.
- info:
    name: Payouts
    type: folder
  items:
  - info:
      name: Create a payout account
      type: http
    http:
      method: POST
      url: https://api.moyasar.com/v1/payout_accounts
      body:
        type: json
        data: "{\n  \"account_type\": \"bank\",\n  \"properties\": { \"iban\": \"SA0000000000000000000000\" }\n}"
    docs: Registers a bank or wallet payout account.
  - info:
      name: List payout accounts
      type: http
    http:
      method: GET
      url: https://api.moyasar.com/v1/payout_accounts
    docs: Lists registered payout accounts.
  - info:
      name: Fetch a payout account
      type: http
    http:
      method: GET
      url: https://api.moyasar.com/v1/payout_accounts/:id
      params:
      - name: id
        value: ''
        type: path
        description: The payout account UUID.
    docs: Retrieves a single payout account by its ID.
  - info:
      name: Create a payout
      type: http
    http:
      method: POST
      url: https://api.moyasar.com/v1/payouts
      body:
        type: json
        data: "{\n  \"amount\": 50000,\n  \"currency\": \"SAR\",\n  \"payout_account_id\": \"\",\n  \"description\": \"Weekly\
          \ settlement\"\n}"
    docs: Sends a single payout / disbursement to a payout account.
  - info:
      name: Bulk create payouts
      type: http
    http:
      method: POST
      url: https://api.moyasar.com/v1/payouts/bulk
      body:
        type: json
        data: "{\n  \"payouts\": [ { \"amount\": 50000, \"currency\": \"SAR\", \"payout_account_id\": \"\" } ]\n}"
    docs: Sends multiple payouts in a single request.
  - info:
      name: List payouts
      type: http
    http:
      method: GET
      url: https://api.moyasar.com/v1/payouts
    docs: Lists payouts on the account.
  - info:
      name: Fetch a payout
      type: http
    http:
      method: GET
      url: https://api.moyasar.com/v1/payouts/:id
      params:
      - name: id
        value: ''
        type: path
        description: The payout UUID.
    docs: Retrieves a single payout by its ID.
bundled: true