The Dubai Compliance Date That Carries a Dh5,000 Monthly Fine

Every business registered in the Emirates now sits somewhere on a fixed compliance timetable. The UAE e-invoicing deadline that matters most is 1 January 2027 for companies with annual revenues of Dh50 million or more, and 1 July 2027 for everyone below that line. Missing it costs Dh5,000 a month.

The Ministry of Finance launched the pilot phase of the electronic invoicing system on 1 July 2026. Since then, any company or individual has been able to issue, exchange and report electronic invoices and credit notes voluntarily. The mandatory stages follow.

Invoices on a desk illustrating the UAE e-invoicing deadline for businesses
Invoices must move through an accredited provider in a structured format.

The UAE e-invoicing deadline schedule, tier by tier

The rollout splits taxpayers into three groups, each with two dates: one to appoint a provider, one to be fully live.

  • Revenue of Dh50 million or more: appoint an accredited service provider by 31 July 2026, and implement fully by 1 January 2027.
  • Revenue below Dh50 million: appoint a provider by 31 March 2027, and comply fully by 1 July 2027.
  • Government entities: appoint a provider by 31 March 2027, and complete implementation by 1 October 2027.

Note the first date has already passed. Larger companies that have not yet appointed a provider are late. The monthly penalty applies to that failure on its own, separately from the implementation deadline.

What an accredited e-invoicing provider actually does

Invoices must move through a provider the Ministry of Finance has accredited. That provider handles the exchange, converts your output into the required structured format, and reports the transaction data onward.

This is the practical bottleneck for small companies. Appointing a provider is not a signature; it is an integration between your accounting system and theirs. Firms running invoicing out of spreadsheets will need more lead time than firms already on a cloud accounting package.

Take an Egyptian founder running a small Dubai trading company on cloud accounting software and a shared drive. Their appointment date is 31 March 2027. Their go-live is 1 July 2027. The real work sits earlier: choosing a provider, mapping fields, testing credit notes. That is a first-quarter project, not a June one.

The e-invoicing penalties written into Cabinet Resolution 106

Cabinet Resolution No. 106 of 2025 sets out the administrative penalties. Two apply directly.

Failing to appoint an accredited service provider, or failing to implement the system on time, draws a fine of Dh5,000 per month. Each missing or delayed electronic invoice draws Dh100, capped at Dh5,000 per month. The two are separate exposures.

Voluntary adopters are exempt from penalties until mandatory implementation applies to them. That is the strongest argument for moving early: you can run the system, find your integration problems, and fix them while the penalty regime still does not reach you.

Why the e-invoicing pilot phase matters for smaller companies

The Ministry of Finance says the unified system will cut costs, improve operational efficiency and raise accuracy across the invoicing cycle. It also expects faster transaction processing, stronger cash flow and better working capital management. Small and medium-sized enterprises should benefit most, the ministry says. Those are its own projections. They describe an intended outcome rather than a measured one.

Younis Haji Al Khoori, undersecretary at the ministry, framed the initiative as a step towards an integrated digital financial ecosystem. Khalid Ali Al Bustani, director general of the Federal Tax Authority, said e-invoicing should improve voluntary tax compliance by automating the invoicing process. Both are describing a government programme they lead, which is worth holding in mind.

The independently checkable claim is narrower. Structured invoice data does make tax audits easier to conduct, and it does create a verifiable transaction record that lenders can use in credit assessment.

Steps worth taking before your e-invoicing deadline

Three actions are sensible now, whichever tier you fall into.

First, confirm which revenue band you are in for the relevant financial year. The Dh50 million line determines every date that follows. Second, shortlist accredited providers. Ask each one directly about integration with the accounting software you already run. Third, run a test cycle during the voluntary window. Include credit notes, which is where most implementations break.

Company owners still choosing a structure should read our guide to UAE free zone company formation, and our note on how free zone companies trade into the mainland. If you are weighing residency alongside the corporate structure, see our coverage of the company formation options we track.

Answers to the questions owners keep asking

Does this apply to free zone companies?

The timetable follows revenue band and taxpayer type rather than licence location. Free zone entities sit on the same schedule as mainland companies.

What if my revenue is just under Dh50 million?

You appoint a provider by 31 March 2027 and comply fully by 1 July 2027. Confirm the figure for the relevant financial year, because it sets every date.

Can I keep issuing PDF invoices?

Not once your mandatory phase begins. Invoices must be issued and exchanged through an accredited service provider in the required format.

What are the fines?

Dh5,000 per month for failing to appoint a provider or implement on time, and Dh100 per missing or delayed electronic invoice, capped at Dh5,000 per month.

Is there any benefit to adopting early?

Voluntary adopters are exempt from penalties until mandatory implementation applies to them, which allows a real test run without exposure.

When did the pilot start?

1 July 2026, on a voluntary basis for a selected group of taxpayers.

Sources

Featured image: Al Habtoor City – Noora Tower.jpg by Mohanan Oruvayalil, CC BY-SA 4.0.

NASA Just Launched a Telescope Aimed at Dark Energy

NASA’s newest observatory is on its way. The Roman Space Telescope lifted off at 7:26 a.m. EDT on Sunday 30 August 2026, riding a SpaceX Falcon Heavy from Launch Complex 39A at Kennedy Space Center in Florida. The spacecraft reached orbit about ten minutes later.

Named for Nancy Grace Roman, the astronomer who shaped NASA’s early space astronomy programme, the bus-sized observatory is built to look for things other telescopes cannot easily find. NASA has described it as a discovery machine.

Deep field of stars and galaxies the Roman Space Telescope will survey
The observatory will spend five years surveying faint and distant objects.

How the Roman Space Telescope reached orbit

The Falcon Heavy is the heaviest-lift rocket SpaceX currently flies. Its 27 Merlin engines generated more than five million pounds of thrust at liftoff, pushing the stack through the atmosphere and away from Florida’s spaceport.

The rocket’s first stage consists of a centre core and two side boosters. The second stage, mounted atop the centre core, carried the observatory itself. The side boosters began their return shortly after separation, following the pattern SpaceX has flown on previous Falcon Heavy missions.

Reaching orbit ten minutes after launch is the first of several milestones. It confirms the ascent worked. It does not confirm the observatory is healthy, which takes considerably longer to establish.

The Roman telescope’s hundred-day cruise to L2

The telescope is not staying in Earth orbit. It is heading for the Sun-Earth L2 point, roughly 1.5 million kilometres from Earth, on a cruise NASA expects to take about 100 days.

L2 is a gravitational balance point that lets a spacecraft hold a stable position relative to the Earth and Sun while keeping the Sun, Earth and Moon on the same side. That geometry makes it easier to shield sensitive instruments from heat and light. The James Webb Space Telescope operates from the same region.

Arrival is not the end of the sequence. Commissioning follows, and instruments have to be cooled, aligned and calibrated before the survey can begin in earnest.

The questions the Roman Space Telescope was built to answer

Over the next five years the telescope’s observations target two of the largest open problems in cosmology.

The first is dark energy, the effect driving the accelerating expansion of the universe. Nobody has explained it. Measuring how that expansion has changed over cosmic time is one route to narrowing the possibilities.

The second is dark matter, which appears to supply much of the structure of the cosmos while remaining invisible to direct observation. Mapping how matter is distributed across large volumes of sky helps constrain what dark matter can be.

Beyond that, the instrument is designed to detect faint objects that are otherwise hard to pick out. That capability has applications well outside cosmology, including the search for planets around other stars.

Why a wide survey is a different kind of instrument

Telescopes trade breadth against depth. An instrument tuned to stare at one target for a long time produces exquisite detail about that target and tells you nothing about the rest of the sky. A survey instrument does the opposite: it covers ground, repeatedly, and finds the objects worth staring at later.

Roman sits in the second camp. NASA built it to sweep across large areas and pick out faint objects that would otherwise go unrecorded. That design choice explains the science goals. Dark energy and dark matter are statistical problems, and you cannot solve a statistical problem from a handful of deep exposures.

It also explains why the results will arrive as catalogues rather than as single spectacular pictures. The value of a survey accumulates. Individual frames matter less than what the whole dataset shows once it is assembled and compared against models.

What comes after Roman’s commissioning

Expect a gap before the first images. A hundred-day cruise, followed by commissioning, puts early science well into 2027 on the current schedule. NASA typically releases a first-light image once instruments are performing to specification.

The wider context is a busy period for large space science missions flown on commercial rockets. This launch is another data point in that shift, and the economics of it are part of why SpaceX’s valuation has drawn so much attention this year.

The computing side matters too. Wide surveys generate enormous data volumes, and processing them at speed depends on hardware supply chains that are under real strain, as our report on the AI chip interconnect bottleneck set out. Astronomy is now downstream of the same constraints as everything else in computing, a theme running through our reporting on how large institutions are buying compute.

Reader questions about the Roman Space Telescope

When did the telescope launch?

At 7:26 a.m. EDT on 30 August 2026, aboard a SpaceX Falcon Heavy from Launch Complex 39A at Kennedy Space Center.

Where is it going?

To the Sun-Earth L2 point, about 1.5 million kilometres from Earth, on a cruise expected to take roughly 100 days.

How long is the mission?

NASA has described a five-year period of observations following commissioning.

Who was Nancy Grace Roman?

An astronomer whose work shaped NASA’s early space astronomy programme. The observatory is named after her.

Is this a replacement for Hubble or Webb?

No. It is a separate observatory with its own survey mission, operating from the same general region of space as Webb.

When will we see the first images?

Not immediately. The cruise and commissioning phases come first, which puts early results well after arrival at L2.

Sources

The German Scholarship That Rewards Work Experience

Most fully funded master’s programmes screen on grades first. The DAAD EPOS scholarship screens on grades and on work. Germany’s Development-Related Postgraduate Courses programme will not consider you without at least two years of professional experience after your first degree, which changes who realistically competes for it.

The scheme funds graduates from developing and newly industrialised countries to take a postgraduate or master’s degree at a state or state-recognised German university. In exceptional cases it funds a doctorate. It is administered by the DAAD, Germany’s academic exchange service.

Postgraduate students in a lecture hall on a DAAD EPOS scholarship course
EPOS funds postgraduate study across a wide range of disciplines.

Who the DAAD EPOS scholarship is built for

The DAAD describes a typical holder plainly. That person works for a public authority, or for a state or private company in a developing country. They plan or execute projects with a development-policy bearing, whether technological, economic or social.

Think of a Vietnamese public-health officer who has spent three years running district immunisation logistics. That profile fits the programme far better than a stronger academic record with no working history behind it. The scheme is explicitly training specialists to return home, not recruiting talent to stay.

Eligibility rests on four things. You hold a bachelor’s degree, normally from a four-year course, in a relevant subject. Your results sit in the upper third. You have at least two years of relevant professional experience after that degree, counted at the time of application. Your degrees are normally no more than six years old.

What the EPOS scholarship actually pays

Funding runs for 12 to 42 months, depending on the study programme. The monthly payment is 934 euros for graduates and 1,300 euros for doctoral candidates.

The stipend is not the whole package. The award also covers payments towards health, accident and personal liability insurance, a travel allowance unless your home country or another funder already covers it, a monthly rent subsidy, and a monthly allowance for accompanying family members. That last item matters for mid-career applicants, who are more likely to move with a partner or children.

The EPOS eligibility bar that trips most applicants

Language requirements catch people out more often than grades. For courses taught in German, you must pass DSH 2 or TestDaF 4 before the course begins. The scholarship includes a six-month preparatory German course in Germany, but you still need a current certificate showing at least B1 German at the time of application.

The DAAD is direct about why. You cannot reach DSH or TestDaF level from nothing, even with the six-month intensive course, and passing the test is a formal condition of enrolling at the university. For English-taught courses you supply IELTS or TOEFL results. The institutional TOEFL is not accepted.

Applicants from the People’s Republic of China must also submit an APS certificate. Applications must be complete and written in English or German. Incomplete files are not considered, and there is no correction round.

How the EPOS application route works, and why deadlines differ

This is the part most guides get wrong. You do not apply to the DAAD. You apply directly to the postgraduate course you want, using that course’s own procedure and its own deadline. Applications sent to the DAAD are not forwarded.

Each course sets its own application deadline. There is no single closing date for the programme, which means two courses in the same intake year can close months apart. Check the deadline on the page of every course you are targeting, and check it again close to submission.

You may apply for up to three courses. If you do, list them in priority order in the DAAD application forms and keep that order consistent across every form. Submit one motivation letter that explains why you chose those specific courses and that ranking. The DAAD warns that ignoring this can void an application, or even an award already made.

The selection sequence runs in four steps. You send complete applications to the courses. A selection committee proposes candidates for a scholarship. Proposed candidates are contacted by the DAAD and upload their full file to the DAAD Portal. The process is then finalised and candidates are informed. Keep a PDF copy of every document, because you will need to upload them again at step three.

Getting your file ready before your course closes

Work backwards from the course deadline rather than forward from today. Employment certificates and certified translations are the slowest items, and neither is under your control.

The required documents run in a set order: the signed checklist, the DAAD application for a research or study scholarship, a Europass CV in reverse chronological order with no unexplained gaps, one letter of motivation, employment certificates proving two years of relevant post-degree experience, recent language certificates, copies of higher education certificates with certified translations where needed, and a full transcript with an explanation of the grading system.

If EPOS does not fit your profile, the DAAD runs a separate general route for master’s applicants without the professional-experience requirement, which we covered in our guide to the DAAD Study Scholarship for master’s students. Applicants comparing European options should also look at Erasmus Mundus deadlines. And if you are not sure which study or work route fits your profile, our visa eligibility checker is a sensible first stop.

Questions EPOS applicants ask most

Is there one deadline for the whole programme?

No. Each postgraduate course sets its own application deadline. Check the deadline published by the specific course you are applying to.

How much professional experience do I need?

At least two years of relevant experience gained after your first degree, counted at the time of application.

Can I apply for more than one course?

Yes, up to three. List them in priority order in the DAAD forms and submit one motivation letter explaining the ranking.

Do I need German to apply?

Only for German-taught courses, which require at least B1 at application and DSH 2 or TestDaF 4 before the course starts. English-taught courses require IELTS or TOEFL instead.

Does the scholarship cover family members?

There is a monthly allowance for accompanying members of family, alongside a rent subsidy and insurance contributions.

Where do I send my application?

Directly to the postgraduate course. Applications sent to the DAAD are not forwarded to the university.

Sources

ChatGPT Just Landed on the EU’s Strictest Regulatory List

The European Commission has placed ChatGPT in the top tier of its online platform rulebook. The ChatGPT DSA designation, announced on 31 August 2026, classifies OpenAI’s chatbot search function as a Very Large Online Search Engine under the Digital Services Act. Reddit and Roblox were designated Very Large Online Platforms on the same day. All three now face the strictest obligations the law contains.

Twenty-eight services now carry that status in Europe. Until this week, the list read mostly as a roll call of social networks, marketplaces and app stores. A general-purpose chatbot and a children’s gaming platform did not sit on it.

Phone screen with apps affected by the ChatGPT DSA designation
ChatGPT, Reddit and Roblox now sit in the same DSA tier as Europe’s largest social platforms.

What the ChatGPT DSA designation actually means

The Digital Services Act sets a single numerical trigger. A service that averages at least 45 million monthly users inside the European Union crosses into the highest compliance tier. Platforms report those figures themselves, and the Commission then verifies and acts on them.

ChatGPT’s search function averaged roughly 159 million monthly active users in the bloc over the six months ending March 2026, according to the figures the Commission relied on. Reddit reported 57.2 million. Roblox reported around 48 million. Each number sits above the threshold, so each triggered a designation.

The split in labels matters. ChatGPT was designated as a search engine rather than a platform, because the Commission assessed its search feature. Reddit and Roblox were designated as platforms. The obligations overlap heavily, but the framing tells you which part of each product Brussels is looking at.

Why Reddit and Roblox met the DSA threshold too

Reddit’s European audience has grown steadily as its content surfaced more often in general web search. Roblox has a different profile: a very young user base, user-generated worlds, and an in-game economy. Regulators have paid close attention to both characteristics.

Roblox’s designation is the one to watch. The DSA’s minor-protection provisions were written with exactly this kind of service in mind, and the company must now assess and document how its design choices affect children in Europe. That is a heavier lift than a policy update.

The obligations that follow a top-tier designation

Designated services have four months to comply. That clock runs to the end of November 2026. In that window each company must build out a compliance programme covering several areas.

  • Annual systemic risk assessments covering illegal content, the protection of minors, effects on users’ mental and physical wellbeing, fundamental rights, electoral processes and public security.
  • Risk mitigation measures that respond to whatever those assessments find.
  • Independent audits of compliance, paid for by the company and conducted by an outside firm.
  • Data access for regulators and vetted researchers, so outside parties can study how the service behaves.

The Commission supervises this tier directly rather than leaving it to national regulators. That is a deliberate design choice in the law, and it removes the forum-shopping that shaped earlier EU tech enforcement.

How the DSA designation sits alongside the EU AI Act

Two separate European laws now touch the same product. The DSA governs how a service handles content, risk and users. The AI Act governs how an AI system is built, documented and disclosed. OpenAI has to satisfy both, and the requirements do not map onto each other neatly.

We covered the transparency provisions that took effect this summer in our report on the EU AI Act transparency rules. Read alongside this designation, the direction is consistent: Europe is regulating AI products through general platform law as well as through AI-specific law.

The commercial context matters too. AI companies are raising and spending at a scale that makes European compliance costs a rounding error, as the DeepSeek funding round illustrated this week. Compliance is a schedule problem for these firms, not a budget problem.

Where the DSA compliance clock goes from here

Expect three things before December. First, published risk assessments, which tend to arrive close to the deadline. Second, product changes in Europe that arrive quietly, particularly around age assurance on Roblox. Third, a period in which the Commission decides whether what it received is adequate.

Enforcement, if it comes, follows later. The DSA allows fines of up to 6% of global annual turnover for serious breaches, and the Commission has shown it will open proceedings against designated services. Nothing suggests that is imminent here. The immediate story is a deadline, not a penalty.

For anyone building on these platforms, the practical effect is narrower than the headlines suggest. Users in Europe should see more reporting options, clearer explanations of recommendation systems, and stronger defaults for younger accounts. Users elsewhere may see some of the same changes, because splitting a product by region is expensive.

Questions readers are asking about the DSA designation

Does the ChatGPT DSA designation apply outside the EU?

No. The Digital Services Act applies to services offered in the European Union. Companies often roll changes out globally for simplicity, but the legal obligation stops at the EU border.

Why was ChatGPT designated a search engine rather than a platform?

The Commission assessed ChatGPT’s search function, which retrieves and presents information from the web. That fits the DSA’s definition of an online search engine, so the Very Large Online Search Engine label applied.

When exactly does compliance start?

Designated services get four months from designation. For these three, that runs to the end of November 2026.

What happens if a company misses the deadline?

The Commission can open formal proceedings, request information, and ultimately fine a service up to 6% of global annual turnover for serious infringements. In practice, enforcement usually begins with information requests.

How many services are now designated?

Twenty-eight services are designated as very large online platforms or search engines following this announcement.

Sources

More of our technology and regulation coverage: the Pentagon’s new generative AI platform.

The PHP Signup Step That Stops Codes Going Missing

You do not need an SDK or a WhatsApp Business Platform build to verify a phone number. This guide walks a working WhatsApp OTP API PHP flow using cURL: send the code, verify what the user submitted, and branch on the errors that matter.

This guide uses Replio’s WhatsApp OTP endpoint because it is a single JSON POST with no SDK to install. The shape of the flow is the same whichever provider you use, so the structure transfers.

WhatsApp OTP API PHP flow from send through verify
The four steps of a WhatsApp OTP API PHP integration.

Before you write any PHP code

Three things need to exist first. A WhatsApp number connected to your provider account. At least one approved Authentication template on the WhatsApp Business Account. An API key.

Keep the key server-side. It sends from your verified business number, so a leaked key means someone else messaging your customers under your brand.

WhatsApp OTP API PHP: sending the code

One POST sends the code. You can pass a code you generated yourself, or omit it and let the provider generate, hash and store one for you.

$ch = curl_init("https://engine-production-2647.up.railway.app/api/otp/send");
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST           => true,
  CURLOPT_HTTPHEADER     => [
    "Authorization: Bearer " . getenv("REPLIO_OTP_KEY"),
    "Content-Type: application/json",
  ],
  CURLOPT_POSTFIELDS => json_encode([
    "phone"           => "447911123456",
    "idempotency_key" => "signup-" . $signupId,
  ]),
]);

$body   = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);

$data = json_decode($body, true);
if ($status >= 400) { throw new RuntimeException($data["detail"]["code"]); }

A success looks like this:

{
  "ok": true,
  "sent_to": "+447911123456",
  "template": "verify_code",
  "credits_charged": 1,
  "verify_enabled": false
}

Read verify_enabled carefully. It is true only when you omitted the code. That flag tells you whether the verify endpoint has anything to check.

Verifying what the user typed back

If you let the provider generate the code, check what the user typed with a second call.

$ch = curl_init("https://engine-production-2647.up.railway.app/api/otp/verify");
curl_setopt_array($ch, [
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST           => true,
  CURLOPT_HTTPHEADER     => [
    "Authorization: Bearer " . getenv("REPLIO_OTP_KEY"),
    "Content-Type: application/json",
  ],
  CURLOPT_POSTFIELDS => json_encode([
    "phone" => "447911123456",
    "code"  => $userInput,
  ]),
]);

$body   = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
$data = json_decode($body, true);

if ($status < 400 && !empty($data["verified"])) { return completeSignup(); }

switch ($data["detail"]["code"]) {
  case "incorrect_code":    return show("That code is not right.");
  case "code_expired":      return show("That code expired. Send a new one.");
  case "too_many_attempts": return forceResend();
}

A correct code returns { "ok": true, "verified": true }. A wrong or expired one is a normal 400, not a 200 with a false flag. Handle it as an error branch.

Where this fits in your signup flow

Treat the send and the verify as two separate states in your own model, not one blocking call. Send the code, store the signup attempt, and return control to the user. Verify runs later, when they submit the form.

That separation matters when things go wrong. If the verify call fails, you still hold the signup attempt and can offer a resend without losing the user’s progress. If you couple the two, a network blip drops them back to the start.

Rate limits sit on the recipient as well as the account. Five codes to one number per hour, and ten verify attempts per number per ten minutes. Surface a clear message when you hit those rather than a generic failure, because a user who resends four times in a minute will hit them.

One detail trips people up on the first run. The phone number goes in international format as digits. A leading plus sign, spaces and dashes are accepted and stripped, but a local-format number without a country code is rejected as invalid_phone. Normalise before you send.

Only a delivered send costs a credit. Rejected requests, rate limits and test-mode calls are free, so strict validation on your side costs nothing.

Handling the errors that actually happen

Branch on the machine-readable code field, never on the human-readable message. The message wording can change at any time; the codes are the contract.

  • incorrect_code — wrong digits. Let the user retry.
  • code_expired — past its time to live. Offer a resend.
  • too_many_attempts — five wrong guesses burn the code. Force a new one.
  • recipient_rate_limited — five codes to one number in an hour. Back off.
  • upstream_error — WhatsApp was unreachable. Safe to retry.

Two habits that save you money and credits

Pass an idempotency key. Networks time out after a send has already happened, and a blind retry sends a second code and spends a second credit. With a key tied to the signup attempt, a retry returns the original result instead.

Then build against a test key. A test credential validates the whole request and applies every rule, but sends nothing and bills nothing.

Hardening the flow before launch

Set a short time to live. Five minutes is the common default and it limits the window for a stolen code. Cap wrong guesses. Never log the code itself.

If you are weighing this against your current SMS provider, we compared the two channels in WhatsApp OTP vs SMS. The full parameter list and error table live in the Replio WhatsApp OTP API reference, and Meta documents the template rules in its message template guide. For context on running WhatsApp as a support channel too, see our piece on answering WhatsApp and Instagram without working nights.

Frequently asked questions

Do I need an SDK for PHP?

No. It is one JSON POST with a bearer token, so your language’s standard HTTP client is enough.

Should I generate the code myself?

Either works. Pass your own code and the provider only delivers it. Omit it and the provider generates one, stores a hash, and gives you a verify endpoint.

How long does a code stay valid?

Five minutes by default, configurable between 60 and 1800 seconds when the provider generates the code.

What if the user never receives it?

Check the error code on the send. If the number has no WhatsApp account the send fails, which is your cue to fall back to SMS.

Is the code stored anywhere?

Replio stores only a sha256 hash of codes it generates, never the code itself. Codes you supply are not stored at all.

Related Guides