TechnoMindsSaudi digital infrastructure

Saudi infrastructure for developers

Saudi infrastructure for the software your business runs on.

Add Fatoorah invoice operations, Saudi Address Operations, and shared API controls without replacing your ERP, POS, commerce stack, or platform. Create a verified account and start in the sandbox without manual provisioning.

Verified-email signupScoped sandbox keyRequest logs and usageNo routine sales gate

Availability, stated plainly

Know what you can use before you create an account.

Evaluation and production are different environments with different evidence. The public site, API, and console use the same boundary.

Fatoorah sandbox

Available

Synthetic/local validation, XML, QR, request logs, usage, keys and webhooks.

API Platform

Available

Organizations, scoped credentials, tenant resources, metering and evidence controls.

Address Operations

Technical preview

Local workflow and API surfaces; authoritative external-source activation is separately gated.

Production eligibility

Required

Sandbox signup never enables external ZATCA or SPL production traffic.

Three product wedges

Start with the rail your product needs now.

Each product has its own domain lifecycle. The account, credential, tenant, usage, evidence, and developer experience remain consistent.

01

E-invoicing infrastructure

Fatoorah API

Validate invoice data, generate Saudi invoice artifacts, inspect lifecycle state, and operate retries and evidence from one API surface.

02

Commerce and logistics

Address Operations

Capture, normalize, validate, recover, and hand off Saudi addresses as an operating workflow—not a thin lookup.

Developer first

From account to first request in one working session.

Use cURL, TypeScript, PHP, Python, or .NET. Every sandbox response says that it is synthetic and production access is false.

First sandbox request

Create a simplified invoice

curl "$TECHNOMINDS_API_URL/v1/zatca/invoices/generate/simplified" \
  -X POST \
  -H "Authorization: Bearer $TECHNOMINDS_API_KEY" \
  -H "Idempotency-Key: invoice-demo-001" \
  -H "Content-Type: application/json" \
  --data @- <<JSON
{
  "organization_id": "$TECHNOMINDS_ORGANIZATION_ID",
  "egs_unit_id": null,
  "taxpayer_profile_id": null,
  "tax_calculation_mode": "TECHNOMINDS_CALCULATES",
  "requested_invoice_type": "SIMPLIFIED_TAX_INVOICE",
  "seller": {
    "legal_name": "Synthetic Najd Retail",
    "vat_number": "310000000000003",
    "commercial_registration": null,
    "address": null,
    "branch": "Riyadh",
    "additional_identifiers": []
  },
  "buyer": {
    "legal_name": null,
    "vat_number": null,
    "commercial_registration": null,
    "address": null,
    "additional_identifiers": [],
    "buyer_type": "individual"
  },
  "supply": {
    "supply_date": "2026-08-10",
    "end_date": null,
    "purchase_order_reference": null,
    "contract_reference": null,
    "delivery_reference": null,
    "payment_terms": null,
    "payment_method": "card"
  },
  "line_items": [
    {
      "line_id": "line-1",
      "name_ar": "عنصر تجريبي",
      "name_en": "Synthetic sandbox item",
      "description": "Fictional developer fixture",
      "quantity": 1,
      "unit_code": "PCE",
      "unit_price": 10000,
      "discounts": [],
      "charges": [],
      "tax_category": "standard_rated",
      "tax_rate": 15,
      "tax_exemption_reason": null
    }
  ],
  "notes": {}
}
JSON

Synthetic response

201 created
{
  "invoice": {
    "id": "inv_01J...",
    "status": "GENERATED",
    "identity": {
      "invoice_type": "SIMPLIFIED_TAX_INVOICE"
    }
  },
  "classification": {
    "selected_type": "SIMPLIFIED_TAX_INVOICE"
  },
  "validation": {
    "internal_validation": { "valid": true, "issues": [] }
  },
  "tax_discrepancies": [],
  "xml": { "content": "<?xml ...", "mapping_report": [] }
}
Start building

One control plane

Product-specific behavior. Platform-wide control.

An ERP, SaaS platform, marketplace, or logistics product can add multiple Saudi rails without inventing a new organization and credential system for each one.

Explore the platform
01

Organization

A verified Saudi workspace owns subscriptions, resources, credentials, usage, and evidence.

02

Environment

Sandbox behavior and credentials remain structurally separate from production eligibility.

03

Request

Idempotency, correlation IDs, durable state, and tenant attribution travel with every operation.

04

Outcome

Success, failure, retry safety, unknown outcome, and reconciliation remain distinct states.

05

Operations

Request logs, metering, webhooks, audit history, and key lifecycle are visible in one console.

Operate the non-happy path

Infrastructure you can explain after something goes wrong.

Technical credibility is not a badge. It is the state and evidence available when a request times out, a worker retries, or a tenant context is wrong.

01

A timeout is not permission to retry

Preserve the operation and check authoritative state before creating a second external effect.

02

Every request gets an identity

Use a request ID and idempotency key to connect support, logs, usage, evidence, and outcome.

03

Tenant context stays explicit

Organization, resource, credential, entity, environment, and operation are not inferred from browser input.

04

Sandbox never impersonates production

Synthetic results are labeled in the response and console, with production traffic disabled.

Transparent paths

Evaluate the API before a sales conversation.

Inspect product capability, pricing, documentation, security boundaries, live service status, and the sandbox journey on your own. Contact sales only for enterprise scope.

Create your sandbox

Your first successful request should not need an employee.

Create a verified account, provision a Saudi organization, receive the first scoped key once, and continue in the Fatoorah quickstart.

Start building →