NotAfter Support

Renewal week is the wrong time to be stuck. If something isn't working, tell us and we'll help.

Contact us

Email: support@notafter.app

That's the whole system. There is no ticket portal, no account to log into, and no chatbot.

Response timeWe aim to reply within three business days, and usually sooner.
If your certification deadline is within 14 daysPut URGENT: deadline [date] in the subject line. We triage by how close your deadline is, not by who wrote first.
LanguagesEnglish.
Privacy questions and data requestsThe same address. support@notafter.app is the only one we run. Privacy requests are passed to the operator named in our Privacy Policy, who answers them.

What helps us help you faster:

Please never send us:


Security & privacy

Why doesn't NotAfter™ submit my credits for me?

Short answer: doing so would make NotAfter a worse, less trustworthy product, and the risk would land on your account, not ours.

Longer answer, since you probably want the actual reasoning:

  1. Auto-submission requires your credentials, or a stored session. There is no version of "the app submits for you" that doesn't involve NotAfter holding something that can act as you. Once that exists, it can be stolen, subpoenaed, or leaked. We'd rather not be a target worth attacking. The most reliable way to never lose your password is to never have it.
  2. Scripted access to a certification portal puts your account at risk, not ours. Scraping and bot access are the categories that get accounts flagged and suspended, and the account in question is your certification account. We're not going to characterise your provider's terms for you. CompTIA®, ISC2®, and EC-Council each publish their own, and yours is the one that binds you. Our own position doesn't depend on reading them: assisted fill happens inside your own session, at human speed, and you press the button. It is not merely indistinguishable from you doing it by hand. It is you doing it by hand.
  3. You're the one accountable for what you submit. CEU/CPE/ECE claims are attestations. If an automated tool files a wrong credit amount or the wrong activity type against your record, you own that with your certification body. During an audit, "the app did it" is not a defence. A five-second review before you tap Submit is cheap insurance.
  4. It's what keeps the privacy claims honest. There is no NotAfter account and no server that holds user data, because nothing the app does needs either. What it records, including the cycle totals and dates you can capture off your own provider page, stays on your device. The App Store privacy label and our privacy policy say what they say because the architecture makes them true, not because we promise to behave.

What NotAfter actually does is the tedious part: it remembers what you owe and by when, keeps your evidence together, opens the provider's real form, and fills the fields so you're not re-typing a course title and a date for the eleventh time. You read it and press Submit.

Full details: see our Privacy Policy.


Getting started

  1. Add your certification. Pick your provider and certification, and enter your cycle dates: the certification's expiry date, and when your current cycle started. Your provider's portal is the authoritative source for these dates. Copy them from there, or open your portal inside the app and tap Capture This Page to read them off your own account page (see Syncing from your provider's portal, below).
  2. See what you owe. NotAfter shows your remaining credits and days remaining. This is the screen the whole app exists for.
  3. Log credits as you earn them, by importing a photo of the certificate or entering them by hand. Logging one thing right after you finish it takes twenty seconds; reconstructing three years of it takes an afternoon.
  4. Report them to your provider when you're ready. NotAfter opens the provider's own form and fills what it can; you check it and tap Submit. The Assisted fill section below walks through it.

Nothing here requires a NotAfter account. There's no sign-up because there's nothing to sign up to.

Which certifications does NotAfter track?

Today: certifications from CompTIA®, ISC2®, and EC-Council. That covers things like CompTIA Security+®, CISSP®, CC®, and Certified Ethical Hacker®. If your certification isn't from one of these three bodies, NotAfter can't track its cycle yet.

Where do I find things?

Four tabs along the bottom.

Standing is the overview. The deadline that matters most sits at the top, and everything else is listed under one of two headers: ACTIVE, meaning the window is still running, and ENDED, meaning it closed. ENDED is about the window, not about you. A cycle sits there because its dates are in the past.

Certifications gives each certification its own card: the counts, the fee line, and the doors to its older records.

Activities is everything you've logged. It groups by what you have to do next, not by date: TO COMPLETE, TO SUBMIT, SUBMITTED. Two buttons at the top start a new entry, Import a photo and Enter manually.

Settings opens on Reminders, then Progress, Providers, Appearance, Subscription, and the app's own information.

If you've read an older version of this page: the tab called Submit is now Activities, and the headers that read OPEN and CLOSED now read ACTIVE and ENDED. Same screens, different words.

How do I add a certification?

From the Certifications tab, tap Add Certification, then pick your certification and enter (or sync, see below) your cycle dates. The free tier tracks one certification. Adding a second is a Pro feature.

What's free, and what needs NotAfter Pro?

One certification, manual logging, the full deadline math, and reminders are free forever, whether or not you ever pay for anything. NotAfter Pro adds: tracking more than one certification, importing certificate photos, assisted form filling on your provider's site, and syncing your totals from your provider's portal. None of this changes what you can already see: if you've logged or synced data, you keep seeing all of it (your cycle dates, your totals, your submission history) whether or not you're subscribed. A subscription unlocks new things you can do. It never hides something you already entered.

I don't want to give any app my provider password. Is that a problem here?

No. NotAfter never asks for your provider password, and won't accept it if you try to hand it over anyway (our support is instructed to refuse it too, see the reporting section below). You sign in to your provider's own site, in your own session, when you choose to. See "Assisted fill" and "Syncing from your provider's portal" below for exactly what that looks like.


Tracking your credits

What is a "cycle"?

A cycle is one requirement: an amount of credit, a start date, and an end date, for one obligation. Some certifications share a single pool across a family of related credentials (some EC-Council certifications work this way): NotAfter tracks that as one cycle, not one per certificate, so you don't get double-counted or double-tracked. A few certifications also carry an annual minimum living inside a longer cycle. NotAfter shows that as its own line, because it can fail even when the bigger total looks fine.

How does NotAfter decide if I'm "on track" or "behind"?

Only if it actually has a real deadline and a real total to compare. If it does, the pace judgment assumes credit should land evenly across the time you have left, which is an assumption, not a fact about how you actually work. If that assumption doesn't fit how you do your CE (a lot of people cram most of it in near the end), you can turn the pace verdict off entirely: Settings, then Progress, then the Pace tracking switch. Turning it off doesn't hide your numbers, your deadline, or your requirement. It only removes the "on track / behind" opinion.

What does ISC2's Group A and Group B split mean in the app?

ISC2 splits CPE credit into Group A and Group B. ISC2's CPE form describes Group A credits as activities directly related to a domain and certification, and Group B credits as educational development activities that aren't directly related to a domain and certification. Group B counts only up to a set part of your requirement, and for some certifications not at all. NotAfter shows your countable total, which is what actually applies toward your requirement, separately from anything logged that's over the Group B cap or otherwise doesn't count. If a chunk of your credit isn't counting, you'll see a "not counted" figure with a tap-through explanation of why, not just a smaller number with no reason given.

Why does one of my activities show as "not counted"?

A few different reasons can produce this, and NotAfter tells you which one applies rather than using one vague label for all of them:

Tap the figure to see which of these applies to your specific entry.

I changed an activity's date and one of my certifications switched itself off. What happened?

When you log an activity, every certification you hold gets a row, and each row has its own Include toggle. If the completion date you entered falls outside every cycle that certification has, the row is marked "NO CYCLE COVERS THE COMPLETION DATE · WORTH 0 HERE" and its Include toggle starts off. An activity can't count toward a window it didn't happen in. The row stays on screen rather than vanishing, because the date is often the thing that's wrong, not the certification, and you can't fix what you can't see. Put the date back inside a cycle and the marking clears and that toggle comes back on by itself. If you were the one who turned that toggle off, it stays off. NotAfter only undoes the default it set itself.

Why does a credit category say "Decided by [Provider]" instead of a number?

Some providers don't publish a fixed credit value for a category. They review the submission and decide the award themselves. Where that's the case, the credit slot carries "Decided by [Provider]" and a placeholder mark where the number would be. NotAfter prints no turnaround time there, even for a provider that states one somewhere in its own policy, because how long a review takes isn't something the app can promise on that provider's behalf. It shows the honest state instead of guessing a number the provider hasn't actually given you. If a provider publishes a range instead of a fixed value, NotAfter shows the range as published, never a made-up midpoint.

A number says "Worked out from 3 hours." Why can't I just type in the credit amount?

Where NotAfter can compute your credit from a duration you enter, it asks you for the duration and computes the number for you, rather than asking for both and risking the two disagreeing. If you want to change the result, change the duration; the underlying category rate is a fact about the provider's rule, not something we're guessing at.

What does "SYNCED" or "YOUR NUMBER" mean under a total?

It tells you who's asserting that figure. SYNCED · [date] means NotAfter read it from your provider's own portal, either live or from a screenshot you imported. YOUR NUMBER · [date] means you typed it in yourself. If both exist for the same window, the synced figure is what's shown, but your own typed figure is never thrown away, only set aside in favor of the provider's more current one. Tapping a synced figure opens the detail behind it, and for a number read from your account it says exactly that: this is the provider's own figure, from your account. It doesn't claim the provider published that number somewhere you could go and check it, because a number sitting behind your login isn't published.


When a cycle ends

What happens when my cycle ends?

It depends on one thing: whether the app could see that you finished.

If your countable total reached the requirement, NotAfter closes that window, stores its final figures, and opens the next one from the provider's published rule. New dates, zero credits, the same certification card you already had. You don't set anything up again, and the app doesn't announce it. The new window is simply what the card shows now.

If the window closed short, or the app never had enough to measure it, nothing opens by itself. The closed window keeps its own figures, and one quiet line appears on the certification's card: Do you still hold CISSP? That's the whole prompt. No badge, no red, no count on the tab bar, no notification, and it looks the same on the day it appears and four hundred days later.

A closed window's figures are frozen on purpose. They're what was true at the close, under the rules the app held at the time, and a later rule change doesn't reach back and rewrite your history.

Why is the app asking whether I still hold it? Can't it look?

No, and that's the honest answer rather than a limitation we're embarrassed about. NotAfter has no view into your provider's record. There's no account on our side, no stored login, and nothing that reads your member record on a schedule. The only facts the app has are the ones you entered and the ones you imported yourself from your own account page.

So when a window closes short, the app has two choices: guess, or ask. It asks, once, in a line you can ignore forever.

What does each answer do?

You get three answers, plus a way out. None of them is styled as the expected one, because we don't have a preference.

You tapWhat NotAfter does
YesOpens your next cycle from the provider's rule, starting at zero. Nothing is written about your provider's decision, only that you told us you still hold it
NoOpens nothing. The card carries one sentence instead: "You told us on 19 Sep 2026 that you no longer hold CISSP." Reminders for that certification stop. If an earlier answer had opened an empty window that holds nothing of yours, that window goes with the answer; any window the portal reported, or one you've filed a record to, stays
I'm not sureOpens the next cycle and records that you weren't sure, with the date. The card says so in the same one-sentence form
Not now, or swiping the sheet awayRecords that you dismissed it and nothing else. A dismissal is never read as a "no." The question stays on the card, and the app won't raise it again by itself

Where the provider is one NotAfter can read, the sheet also offers a sync. If your account page shows a cycle that starts after the one that closed, that answers the question without you having to state anything.

Every answer is reversible. Tap the line again and answer differently. The new answer is what the card shows; the earlier ones stay on the record, each with its own date, in Earlier cycles. We keep them because the entire value of that field is that you said it, and a field that silently overwrites what you said isn't worth much.

The app never says my certification expired. Why not?

Because we'd be asserting something we can't know. Your provider decides what your credential's status is, and that decision lives in their system, not ours. What NotAfter can honestly say is what a window did (it ended on a date, with these figures) and what you told us (on a date, in your words). You'll never see NotAfter print a status word over your certification as though it had checked.

If you need your actual standing, your provider's own portal is the authority. Ask them, in their vocabulary: "What is the current status of my CISSP, and does your record show my next CPE cycle as open?"

Where did my old cycle go? Is anything deleted?

Nothing is deleted. Closed records move behind three doors, all of them named the same way:

The lists you use every day only show what's live. That's deliberate, and it's the one thing about this design we expect people to dislike at first: a cycle you completed is no longer on Standing once the next one opens, it's a tap away. A cycle that ended short stays on Standing under ENDED until you answer the question on its card. If you went looking for it and thought it was gone, it isn't.

One more place this shows up. If one trip to a provider's site filed to two certifications and one of those windows has since closed, the Activities row still shows the open one, with a quiet line underneath naming the other and saying its record is in Earlier activities. The row isn't split, because it was one afternoon's work, not two.

Can I reopen a closed cycle?

Yes. Open Earlier cycles, find the window, and tap Reopen this cycle. You'll get a confirmation first, because it's destructive in a specific way:

The stored figures are replaced by a fresh count from your records. The count may differ, because the rules NotAfter holds can change.

The second sentence is there because it's the reason the freeze exists at all. The frozen figures are what your total was under the rules the app held at the close. A reopened window recounts from your entries under today's rules, and if a provider's rule changed in between, the number can move. The old frozen figures don't come back.

Two things to know before you do it. The control only appears on a closed window that hasn't already been followed by a new one, because reopening a window that's already rolled would leave one certification with two live cycles. And you don't have to reopen anything just to fix an entry: the entries themselves stay editable.

If your records no longer add up to the frozen figure, the window's line says so plainly, for example "Your records for this cycle now add up to 62 CEU. The cycle closed at 60." Two statements, no verdict. A disagreement between the two is worth seeing, not worth hiding.


Provider fees

This section is about the fee your certification body charges you, the annual maintenance fee or CE fee. Your NotAfter subscription is further down, under Billing.

How does NotAfter track my provider's fee?

As a fee period: a due date and a payment note, both of them yours to set. NotAfter never looks up a balance, never reads an amount off a provider's page, and never sends a payment. The amount, if you enter one, is your own figure from your own invoice.

Where the fee covers your whole membership rather than one certification (ISC2 and most EC-Council credentials work this way), there's one record shared by every certification you hold with that provider, reachable both from the certification's Fee section and from the provider's page. Both doors say so.

I marked it Paid last year and it's asking again. Is that a bug?

No, and this is the part worth reading twice. Paid belongs to one fee year. When a fee period ends and the next one starts, that new period's payment status begins at Not stated, because nobody has told us anything about the new year yet.

The alternative would be worse: a Paid you ticked in 2025 quietly standing in for 2026, and a reminder that never fires for a fee you never paid. The dates of the period are on screen next to the question, so you can see which year you're answering for.

Will it keep reminding me after the due date has passed?

No. A fee reminder never fires past its due date, in any state. If you've marked the period Paid, the reminder for that date doesn't fire at all. If it's Unpaid or Not stated, you get the reminders before the date and nothing after it.

That's a deliberate choice: the app can't see whether you paid, so a "past due" nag would be the app telling you off for something it has no evidence about.

My fee reminder doesn't name my certification any more

If the fee covers more than one of your certifications, the reminder reads "Your annual fee: due date 30 Sep 2026" and names none of them. Naming one would be false, because the fee isn't that one certification's. Naming all of them would put a list of every credential you hold on a lock screen, which is a different thing entirely from showing one code.

A fee that covers exactly one certification still uses the certification's own code, as before.

My ISC2 fee year rolled over and there's no date

Your date wasn't lost. ISC2 doesn't publish a rule the app could use to work out a due date, so a new fee year starts with no date at all, and the card says exactly that: FEE ○ DUE DATE NOT SET.

The app won't invent one. What it will do is save you the typing: open the certification's Fee section, turn on Set a fee due date, and the picker starts from last year's date plus a year. You're confirming an offer, and until you do, nothing is stored. Change it to whatever your own record says.

Same principle everywhere else in this section. Where a provider does publish a rule, the caption tells you the app worked the date out and from what, and invites you to change it if your own record differs. Where NotAfter is showing your own date, it says you set it.

Why didn't the app move my expiration date when the new cycle opened?

Because the expiration date is your provider's fact, not ours. A new tracking window opening in NotAfter doesn't change what your provider's record says, and moving that date on our own would be the app quietly inventing a provider decision.

So it stays where it is until a sync reports a new one or you change it yourself. If your open cycle now runs past the stored expiration date, the Edit Certification screen says so under the date row, tells you plainly that NotAfter never changes an expiration date on its own, and leaves the change to you.

One consequence to expect if you hold a CompTIA certification: its CE fee is anchored to the expiration date, so once that date passes, the fee falls back to asking you for a date rather than showing one. The app is declining to guess at a date no provider has stated.


The certificate photo

How does NotAfter read a certificate photo?

You pick an existing photo from your device's photo library. On-device text recognition, using iOS's own OCR, reads the course name, date, and credit hours off it, and shows you what it found so you can check and correct anything before saving.

Does NotAfter use my camera?

No. There's no camera feature anywhere in the app, and no camera permission request. You always pick an existing image; NotAfter never captures a live photo of anything.

What happens to the photo after I import it?

NotAfter holds it only while you're reviewing what was read off it, keeps no copy, and lets go of it when you close that review screen. What actually gets saved is the text you confirm (course, date, credit hours), not the image itself.

Can I import a PDF?

Not directly. NotAfter reads images. If your certificate is a PDF, take a screenshot of it or export it as an image first, then import that.

Picking a photo that reads well

The photo does most of the work here, and all of it happens before you import. If the certificate is digital, a screenshot usually beats a photo of a screen.

ProblemTry this
Blurry, or only part of the certificate is in the pictureImport a photo where the whole page is in frame and the text is sharp. If the one you have isn't, lay the paper flat, photograph it square on, and import that instead.
Glare across the textTurn the paper away from overhead light before you photograph it, and tilt the paper rather than leaning over it. A screenshot of a digital certificate has no glare to deal with.
Too darkTake the new photo somewhere brighter. Text recognition runs out of contrast before it runs out of sharpness.
Unusual layoutSome providers issue certificates that are mostly a logo and a signature. If the fields aren't there to read, they can't be extracted. Enter it manually and move on.
Wrong values read off the pictureCorrect them before saving. Everything is editable, and fixing the text costs less than hunting for a better photo.

If a photo keeps failing to read

Email us with the provider name and the certificate layout: for example, "ISC2 CPE completion certificate from [training vendor], landscape, credits in the bottom right." That description is usually enough for us to reproduce it.

Do not send us the certificate itself if it contains personal details you'd rather not share. If you do want to send a sample, black out your name and any ID number first. We can almost always work from a redacted copy.


Syncing from your provider's portal

What does Sync from Provider actually read?

Sync from Provider (a Pro feature) reads your own account page on your provider's site, once, when you tap Capture This Page, and copies your credit totals and cycle dates into the app. It reads the one page you're looking at, in your own signed-in session, and nothing else: no other page, no other member's record. What it keeps from that page is your totals and your cycle dates; it doesn't build a per-activity history out of it. It runs once, on your tap. There's no background or scheduled reading of your provider's site.

I don't want to sign in through NotAfter's browser. Do I have another option?

Yes, and you're offered the choice up front, before you're ever taken to a login page. When you tap Sync from Provider, you get two options presented equally: sign in and let NotAfter read your account page directly, or import a screenshot of that page that you already have or take yourself. If you pick the screenshot option, NotAfter never opens your provider's site at all; it just reads the picture you hand it, the same on-device way it reads a certificate photo. Either path ends with you reviewing every value before anything saves.

What happens to a number after it's synced?

You review it before it's applied. Any field that changed shows the old value struck through next to the new one, so you can see exactly what's about to change and by how much before you confirm it.

A capture is a snapshot of that page at that moment. If your portal changes later, say after you submit more credits, capture again.


Assisted fill

How does assisted fill work?

Once you're on your provider's own submission form, inside NotAfter's own in-app browser, NotAfter can pre-fill the fields from an entry you already have logged: title, date, credit hours, and so on. You review what got filled, correct anything that's wrong, and press Submit yourself, on the provider's own page. NotAfter has no way to press it for you.

Assisted fill, step by step

This is the part that saves the most time and causes the most questions. Assisted fill is part of NotAfter Pro, so the first tap on an entry under TO SUBMIT raises the paywall if you're on the free tier. Pro adds unlimited certifications, Capture This Page, certificate image import, and assisted form filling, with a free trial; one certification, manual logging, full deadline and credit math, fee due dates, and reminders are free forever.

  1. On the Activities screen, tap the entry under TO SUBMIT. That tap is the report action: NotAfter opens the provider's own website in a browser inside the app, at the same page you would use in Safari. (An entry still under TO COMPLETE opens its editor instead. Finish it first.)
  2. Sign in yourself. This is the provider's real sign-in page, in your own session. NotAfter does not perform the login, and it refuses to read any page it recognizes as a sign-in page or where it finds a visible password box. The refusal happens before the read, and the banner tells you it happened.
  3. Work through the provider's own steps to the submission form. NotAfter never clicks Continue, Next, or any other button that takes you from one step of the provider's site to the next. Getting to the form is yours. While that browser is open, NotAfter checks the page each time it loads or its address changes, and again when you tap Fill, to see whether the provider is blocking you. There's no timer, and a page NotAfter recognizes as a sign-in page isn't checked at all. The answer below, "While I'm on a provider's site, is NotAfter reading the page?", has the rest.
  4. Tap "Fill this page". Nothing fills on its own. Fill writes into the fields NotAfter recognizes from your entry, on whichever page you are actually on, and you can tap it again after a correction. Fill goes away only when the provider is showing a message that blocks you or its site can't be reached. On a page NotAfter won't read, the provider's sign-in page included, Fill stays where it is, and tapping Fill there changes nothing on the page. On the provider's own pages, a banner says why.
  5. Read the banners, then check every field. When NotAfter could not fill something, it says which field and why: the field is not on this page, the page declined the value, NotAfter collects no value for it yet, or NotAfter has the fact but will not guess the format. The fields it could not fill are outlined on the page itself. Check the credit category or activity type in particular. Providers classify activities differently, and the classification is what an audit looks at.
  6. You tap Submit, on the provider's page, always. The line above the form says so for the whole visit. NotAfter's fill scripts never call the form's submit function and never press Enter, and automated tests fail if they do.
  7. Tell NotAfter what you filed. Tap "I Submitted This". That is what moves the entry out of TO SUBMIT; closing the browser on its own records nothing.
  8. If the entry covered more than one certification, NotAfter asks which ones. You chose that on the provider's own form, where NotAfter cannot see it, so it asks rather than guesses: "Which certs did you apply this to?", nothing pre-ticked. Tick only the ones that took. "Nothing yet" is a real answer and records nothing. Anything you leave unticked stays in TO SUBMIT, and you can change the answer later by tapping the trip under SUBMITTED.

Does NotAfter ever see or store my password?

No. You log in yourself, on the provider's real page, in your own session. NotAfter doesn't perform the login, doesn't watch it, and has no code path anywhere that reads a password field. Before NotAfter reads any content from the page you're on, whether during a fill or during a sync, it checks for a visible password box or a frame it can't see inside. If it finds either, the read is refused before it happens. Not read and then thrown away: refused, full stop.

What does "you always press Submit" actually mean?

Literally that. NotAfter's fill scripts write values into the form's own fields, and to choose from the form's own menus and radio buttons they open the menu if they have to and click the choice. They never call the form's submit function, never simulate a keystroke, and never read a value back out of a field once they've written it, and automated tests fail if a fill script does any of those. The persistent banner on the fill screen ("You always press [Provider]'s Submit button. NotAfter never will.") describes that design.

A field came back empty after I tapped Fill. Why?

A few different, honestly-labeled reasons, and the app tries to tell you which:

None of these use alarm styling, because none of them is NotAfter failing at something it promised. They're the honest edge of what a given build currently does.

Why did the Fill button disappear on this page?

Fill goes away only while the provider is showing a message that blocks you, such as a maintenance notice, or while its site can't be reached. On a page NotAfter can't safely read (a sign-in page, a page showing a visible password box, an open pop-up or chat panel it can't look inside, or a page where the check itself didn't finish), Fill stays on the screen. A banner says what NotAfter saw, and tapping Fill there fills nothing. For example: "NotAfter checks each page before reading it; the check didn't finish here, so nothing was read. Assist is off on this page. You can keep going yourself." When the cause is gone (you've signed in, say, or closed the pop-up), tap Fill again.


When a provider's page changes

A provider redesigned their site and assisted fill stopped working. What do I do?

Log the activity manually and submit it yourself on the provider's site, the same way you would without NotAfter at all. Tracking, deadlines, and certificate reading never depend on a provider connection working, so nothing else in the app is affected. We watch for redesigns and update NotAfter's form definitions to catch up. If Fill is consistently broken on a page for you, use Report a Problem (below) so we can see it.

What do CHECKED, DEGRADED, UNDER REPAIR and NOT CHECKED YET mean?

They're the state of assisted fill for that provider, not the state of your account. Settings, Providers, then tap a provider to open its page; the state sits beside Form filling, with the time of the check:

BadgeWhat it means
● CHECKEDThe public pages the app relies on looked unchanged at the time shown
◆ DEGRADEDSomething about those pages has moved, and fill may not do everything it usually does
▲ UNDER REPAIRWe know fill is broken there and are updating the form rules. The page also offers you a direct route to the provider's own site, so you can file by hand in the meantime
○ NOT CHECKED YETNo check has reached this device yet

The check runs on our server against the provider's public pages. It is not a check of the signed-in form, and it involves nothing of yours: the app downloads the result the same way it downloads its form rules, carrying nothing about you.

None of these affect tracking. Your deadlines, credits, and records are yours and don't depend on a provider connection working.

Can I turn a provider off?

Yes, with the switch beside its name in Settings, under Providers. Turning one off changes nothing about certifications you already hold: their deadlines, credits, and history stay exactly as they are. The off mark shows up wherever the app is offering you that provider as a choice: the Add Certification picker, the Sync from Provider menu, and the rows you pick from when you file an imported photo. In those places it stays in the list with (off) beside the name, never dropped from it. Where the provider's name is simply part of a record you already hold, such as a certification's own card, it prints plain with no mark, because there is nothing there to pick and nothing about that certification has changed. What being off gates is anything new: adding a certification under that provider, or filing a fresh photo-read entry for one. Either of those asks you to turn it back on first. Nothing is deleted, so turning it back on just removes the mark.

Do you publish a list of known quirks for each provider's portal?

No, and that's deliberate. A quirks list that's slightly out of date is worse than no list, because it tells you something confidently that might already be wrong. If assisted fill isn't working the way you expect on a specific provider today, Report a Problem is the accurate, current answer, not a document that ages the moment a provider ships a redesign.

What follows holds across CompTIA, ISC2, and EC-Council alike.

What are form rules, and what is the Form rules screen telling me?

Form rules are how NotAfter matches an entry you've logged to the boxes on a provider's submission form. A set of them comes with the app, and the Form rules screen says they can be updated without a new app version, so a provider's redesign doesn't always have to wait for a new release.

Settings has a Form rules row. Once a check has run, a line under it says when and how that check went. It reads "Checked today", or "Checked" and a date, and then usually a phrase after a dot. The same line also sits on the Form rules screen, under the list of providers. This is what the phrases say:

After the dotWhat it means
rules up to dateThe app counts the rules in use as current
some rules need a newer app versionPart of the form rules on your device need a newer version of NotAfter. The rest are in use
newer rules need a newer app versionNotAfter is using the form rules that came with your version of the app
built-in rules in useThe rules in use are the built-in ones
a config was refusedA check refused at least one provider's update. This line doesn't say which
server unreachableThe check couldn't reach the rules server
(nothing after the date)A check ran and the line has nothing more to add

The Form rules screen also lists each provider with a version number and a label, "built-in" or "OTA", beside it.

One state gets extra text on that screen. When the app is asking for a newer version, the screen says: "NotAfter is using the form rules that came with this version of the app. Newer form rules need a newer version of NotAfter." Below it there can be a link, "View NotAfter in the App Store". The link appears only once the app knows the address of its listing, and the sentence stands without it. The sentence says newer rules need a newer version. It doesn't say one is out.

I tapped Check for updates now and got a message back. What does it mean?

The message is the answer to the check you just asked for, and it only appears after you tap the button. Here is what each one says and what, if anything, it asks of you. Where the message is a list of providers and version numbers, yours will name your own.

The message saysWhat it tells youWhat to do
"Your form rules are already up to date."Nothing newer than what you haveNothing
"NotAfter found no new form rules. Some of the form rules on this device need a newer version of NotAfter. The rest are in use."Nothing new arrived, and part of what's on your device needs a newer app versionNothing the message asks of you
"Form rules updated:" followed by a provider code and version, such as "comptia v9"Those rules were updatedNothing
"Updated N provider(s); refused N (provider codes)."Some providers' rules were updated, and the ones in brackets were refusedThe message names no next step
"NotAfter kept the form rules that came with this version of the app. Newer form rules need a newer version of NotAfter." or "NotAfter is using the form rules that came with this version of the app. Newer form rules need a newer version of NotAfter."The rules that came with the app stay in use, and newer ones need a newer app versionNothing in the app. A newer version is the way to newer rules
"NotAfter didn't accept the update it downloaded, and kept the form rules already in use. There's nothing for you to do right now. If this keeps happening, the Form rules screen will say what to do next."The download wasn't accepted and your current rules stayNothing now. If it keeps happening, open the Form rules screen
"NotAfter downloaded an update it couldn't use, and kept the form rules already in use. If this keeps happening, check the Form rules screen."The download arrived and couldn't be used. Your current rules stayIf it keeps happening, open the Form rules screen
"NotAfter couldn't reach the form rules server, so nothing was downloaded. The form rules already on this device stay in use, and you can try again later."No connection to the rules serverTry again later
"No rules server is configured in this version of the app." or "Rule sync is unavailable in this version of the app."This version of the app can't run the checkNothing the message asks of you

Sometimes a sentence about categories follows the message. Categories are what you log an activity under, the ones in the Category picker. When a check downloads updated categories, the message includes either "downloaded updated categories and is using them now" or "downloaded updated categories and will start using them after it fully restarts." The second one means the app has to end and start again. Switching back to it from another app doesn't do that.

If assisted fill stops matching a provider's form, the redesign answer above is the one you want, and Report a Problem is how we hear about it.


Reminders

How do reminders work?

NotAfter schedules deadline reminders locally, on your own device, from the cycle dates already in the app. There's no push server and nothing about your certifications leaves your device to produce a reminder. Reminders are part of the free tier and work whether or not you ever upgrade.

Settings opens on the Reminders section, where you'll find the switch, the delivery time, and which certifications are included.

Can I keep my certification off the lock screen?

Yes. Settings, Reminders, then Certification name on lock screen. It's on by default, because a reminder that doesn't say what it's about isn't much of a reminder. Turn it off and every delivered reminder reads "A certification" instead of the code.

What reminders never show, in either state: your credit counts, your standing, whether you're behind, your provider's name, and any money figure. A lock screen is a public surface and we treat it as one.

Does NotAfter notify me when a cycle ends?

No. Nothing fires when a window closes, when the next one opens, or while the "Do you still hold it?" question is sitting unanswered. Those all live in the app, on the card, where you'll see them when you open it.

The new cycle's own deadline reminders work exactly like any other deadline: dated, from your own data, and saying nothing about how that cycle came to exist.


Privacy

The technical account of what the in-app browser does, what it refuses to do, and what the app sends over the network is on our trust page. The privacy policy remains the authoritative text.

What does NotAfter actually send to your servers?

When you open the app, it downloads two small public files: updated form-matching rules, at most once in any twenty hours, and a status file listing which provider portals are currently known to be working, at most once in any six hours. It also fetches one file that is not public, at most once in any twenty hours, after proving through Apple's App Attest that it is a genuine copy of NotAfter. A day in which you open the app several hours apart can therefore include a few status requests and one each of the others. You can also ask for the form rules yourself, in Settings, and that check, which fetches the third file too, runs when you tap it. The two public downloads carry nothing about you: no account (there is none), no device identifier, no certification data. The third carries the identifier of a random key your copy of the app made for that check. Our server keeps a record of the key and deletes it after 90 days unused; it identifies that copy of the app, not you. The server's access log records a shortened IP address, the time, the file requested, and the user-agent string your device's software sends. Our hosting provider deletes old entries on its own weekly schedule, within about 9 weeks, and its backups of our account can keep a copy for up to about two weeks more, so none is kept for longer than about 11 weeks. The full detail is in the privacy policy, which this page doesn't repeat but never contradicts.

While I'm on a provider's site, is NotAfter reading the page?

On one of the two screens, yes, and we'd rather tell you than have you find it.

On the assisted-fill browser, the one you reach from a submission, NotAfter checks the page each time it loads or its address changes, and again when you tap Fill. There's no timer. Each check asks the page a few short questions, such as whether a password box is showing or whether the provider is showing a message that blocks you. Only the answers come back to the app, plus, when the page is refused, what caused it. The page's text doesn't. Those checks do look at the page's content, and where our form rules list a blocking message for that provider, such as a maintenance notice, NotAfter reads the page's visible text, there on your device, to spot it. A page NotAfter recognizes as a sign-in page isn't checked at all. Every check that does run includes the password and unreadable-frame check described under "Assisted fill" above. What a check learns is used straight away to show you a warning banner, then discarded. The checks send nothing anywhere and keep nothing. A Fill does keep a few things, only on your device, and our Privacy Policy lists each one in §4 and §6.

On the Sync from Provider screen, nothing is checked or read on its own, not when a page loads and not on a timer. The only read there is Capture This Page, which you start yourself, and it's the one read on that screen that keeps what it finds, on your device only.

Does NotAfter use analytics, ads, or tracking SDKs?

No. There's no third-party analytics, no attribution, no advertising code of any kind in the app. We don't know which screens you open or which buttons you tap.


Billing, subscriptions, and refunds

How much does NotAfter Pro cost?

NotAfter Pro is sold as a subscription through the App Store, with a monthly option and an annual one. It renews automatically until you cancel. The price for your country and currency is shown on the paywall in the app, before you buy, straight from the App Store. We don't hand-type prices on this page, because a typed price goes stale and this one wouldn't.

How do I cancel my subscription?

Through Apple, not through NotAfter: on your device, go to Settings, tap your name, then Subscriptions, find NotAfter, and cancel there. Apple's own rule is that a cancellation has to be made at least 24 hours before the renewal date to stop the next charge; Apple's support pages are the current authority on that. We don't process payment and can't cancel it for you from our side.

Can I get a refund?

Refunds are handled entirely by Apple, through their own refund request process, since Apple processes the purchase and we never see your payment details. We can't issue a refund ourselves. If something about the app itself caused the problem, write to us anyway; we can't change Apple's decision, but we want to know and we'll help however we can.

  1. Go to reportaproblem.apple.com
  2. Sign in with your Apple Account
  3. Find the NotAfter purchase and choose Report a Problem

Restore Purchases isn't finding my subscription. What do I do?

Make sure you're signed in to the same Apple Account you subscribed with, then use Restore Purchases from Settings inside the app. If it still doesn't find your subscription, write to support@notafter.app with the approximate date you subscribed and we'll help you sort it out with Apple's own records.

Billing questions we can't answer

Charges, invoices, VAT/consumption tax on your receipt, Apple Account balance, and family sharing are all Apple's. reportaproblem.apple.com is the right door for all of them.


Reporting a problem

Something's not working. How do I report it?

There are two doors and either one is fine. In Settings, under About, tap "Report a problem". That opens a blank email to our support address, and it works whether or not you were in the middle of anything. Or, while you're on a provider's page in NotAfter's browser, look for "Report a Problem" in the toolbar. It appears once there's something to report about that session, and tapping it shows you the entire report before anything happens: you can edit or delete any part of it. Either way NotAfter hands the report to your own Mail app, addressed to our support inbox. Nothing sends automatically; you press Send yourself, the same way you'd send any other email.

What's actually in a problem report, and what's left out?

Included, always: your app version and device model, the iOS version, which version of NotAfter's form rules was in use, and the time of the check, which provider and page the report concerns, which form fields NotAfter could and couldn't find, and what happened during your most recent fill attempt.

Never included: your certificate image, any fee or money figure, your username or password, any credential of any kind, the course or activity title, or a web address. Nothing from the page can reach the report, because the record the report is built from never holds the page's text or anything you typed, only which fields were found and what happened.

If you'd rather just write to us directly, support@notafter.app always works, and you can describe what happened in your own words instead.

Can I just email you a screenshot of the problem?

Yes, that's often the fastest way for us to understand a UI issue. Please never send a screenshot of a login page, and if you're reporting a certificate-reading problem, we almost never need the certificate image itself to help.


Independence and accuracy

NotAfter is an independent app and is not affiliated with, endorsed by, sponsored by, authorized by, or certified by CompTIA, ISC2, EC-Council, or any other certification body. All certification names and marks are the property of their respective owners and are used here only to describe which certifications NotAfter works with. NotAfter does not use their logos and does not represent them.

NotAfter is a tracking and data-entry tool. It is not a substitute for your certification provider's published requirements, and it does not guarantee that your certification will be renewed. Your provider's portal and published policies are always authoritative for what you owe, by when, and how it must be reported. If you spot a disagreement between NotAfter and your provider, follow your provider and tell us.