Fatoorah sandbox
AvailableSynthetic/local validation, XML, QR, request logs, usage, keys and webhooks.

Saudi infrastructure for developers
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.
Availability, stated plainly
Evaluation and production are different environments with different evidence. The public site, API, and console use the same boundary.
Fatoorah sandbox
AvailableSynthetic/local validation, XML, QR, request logs, usage, keys and webhooks.
API Platform
AvailableOrganizations, scoped credentials, tenant resources, metering and evidence controls.
Address Operations
Technical previewLocal workflow and API surfaces; authoritative external-source activation is separately gated.
Production eligibility
RequiredSandbox signup never enables external ZATCA or SPL production traffic.
Three product wedges
Each product has its own domain lifecycle. The account, credential, tenant, usage, evidence, and developer experience remain consistent.
01
E-invoicing infrastructure
Validate invoice data, generate Saudi invoice artifacts, inspect lifecycle state, and operate retries and evidence from one API surface.
02
Commerce and logistics
Capture, normalize, validate, recover, and hand off Saudi addresses as an operating workflow—not a thin lookup.
03
For software platforms
One organization, credential, usage, webhook, evidence, and tenant model across TechnoMinds product rails.
Developer first
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": {}
}
JSONSynthetic 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 buildingOne control plane
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 platformA verified Saudi workspace owns subscriptions, resources, credentials, usage, and evidence.
Sandbox behavior and credentials remain structurally separate from production eligibility.
Idempotency, correlation IDs, durable state, and tenant attribution travel with every operation.
Success, failure, retry safety, unknown outcome, and reconciliation remain distinct states.
Request logs, metering, webhooks, audit history, and key lifecycle are visible in one console.
Operate the non-happy path
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.
Preserve the operation and check authoritative state before creating a second external effect.
Use a request ID and idempotency key to connect support, logs, usage, evidence, and outcome.
Organization, resource, credential, entity, environment, and operation are not inferred from browser input.
Synthetic results are labeled in the response and console, with production traffic disabled.
Transparent paths
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
Create a verified account, provision a Saudi organization, receive the first scoped key once, and continue in the Fatoorah quickstart.