~5 minutes · 1st receipt

First MOR receipt in 6 steps

Follow this guided path to create your first MOR-compliant fiscal receipt using sandbox in under 5 minutes.

What you'll need

  • A computer with Python 3.8+ or Node.js 18+ installed
  • A code editor (VS Code, PyCharm, or similar)
  • 5 minutes of your time
1

Create your account

1 min

Sign up for a free developer account. No credit card needed.

Head to the Developer Portal and create your account. You'll need:

  • A valid email address
  • A password (minimum 8 characters)
2

Get your API key

30 sec

Generate a test API key to start building in sandbox mode.

Once logged in, go to your dashboard and create an API key:

  1. Click API Keys in the sidebar
  2. Click Create New Key
  3. Give it a name like "Development"
  4. Copy your key — you'll need it in the next step

Keep it secret! Your API key is like a password. Never share it or commit it to version control.

3

Install the SDK

30 sec

Add the MOR SDK to your project with your package manager.

Choose your language and install the official SDK:

Python
pip install mor-sdk
JavaScript / Node.js
npm install @mor-api/sdk
4

Register a device

30 sec

Every receipt needs a fiscal device. Register one in sandbox.

Before creating receipts, you need a registered fiscal device. In sandbox, this takes one API call:

# Register a Virtual Fiscal Device (VFD)
device = client.devices.register(
    merchant_id="your-merchant-uuid",
    device_name="My POS Terminal",
    signing_algorithm="ECDSA-P256",
)

# Save the device ID — you'll need it for receipts
device_id = device["id"]
print(f"Device registered: {device_id}")

In sandbox mode, devices are auto-approved. In production, devices go through Ministry approval before they can sign receipts.

VFD vs EFD: Most developers start with a Virtual Fiscal Device (cloud signing). For hardware devices (EFDs), see the EFD enrollment guide.

5

Create your first receipt

2 min

Make your first API call and see a real receipt response.

Now the fun part — let's create a receipt:

from mor_sdk import MorClient

# Initialize with your API key
client = MorClient(api_key="sk_test_your_key_here")

# Create a simple receipt
receipt = client.receipts.create(
    device_id=device_id,  # From step 4
    items=[
        {
            "name": "Coffee",
            "quantity": 1,
            "unit_price": 80.00,
            "tax_category": "STANDARD"
        },
        {
            "name": "Breakfast Special",
            "quantity": 1,
            "unit_price": 250.00,
            "tax_category": "STANDARD"
        }
    ],
    payment_method="CASH"
)

# Print the fiscal code
print(f"Success! Fiscal code: {receipt.fiscal_code}")

Run this code and you'll see a response like:

Success! Fiscal code: MOR-2026-SANDBOX-123456
6

View your receipt

30 sec

Check your dashboard to see the receipt you just created.

Go back to your dashboard and click Receiptsin the sidebar. You'll see the receipt you just created, complete with:

  • Unique fiscal code
  • Itemized breakdown with totals
  • VAT calculated automatically (for Category A merchants)
  • QR code for verification

Congratulations!

You've created your first MOR receipt. You're now ready to build tax-compliant applications for Ethiopian businesses.

Stuck? Check out our error codes reference or contact support. We're here to help.

Was this page helpful?