# I didn't get my one-time code

The one-time code (OTP) is the 6-digit number we email you when you open the debtor portal. If it's not arriving, try these in order.

## How the code works (so the numbers below make sense)

* Each code is valid for **10 minutes**.
* You have up to **5 attempts** to enter a code before that code is locked out — after 5 wrong entries, request a fresh code.
* You can request **up to 5 new codes per hour** per session. Within that, requests are spaced — we cap re-issues at **3 per minute** per debtor, so wait a few seconds between clicks.

If you exceed the per-hour limit, the portal returns a `429` and the response includes a `Retry-After` header telling you how long to wait.

## Step 1 — Wait 60 seconds

The code can take up to a minute to arrive. Most arrive in seconds, but not always.

## Step 2 — Check spam

The email comes from `noreply@moderncollections.io`. Search your inbox and your spam / junk folder for it.

Add the sender to your safe-senders list to avoid future filtering.

## Step 3 — Confirm you opened the right magic link

Each magic link is tied to a specific account. If you have more than one notice from us, make sure you opened the right one — the email you'll receive the code at is the address on file for **that** account.

## Step 4 — Request a new code

If the code expired (more than 10 minutes old) or you've used up the 5 attempts on it:

1. Click **Send new code** on the portal page.
2. Wait a few seconds before clicking again — we limit how fast new codes can be requested.

The most recent code is the one to use. Older codes for the same session are invalidated when a new one is issued.

## Step 5 — Check the mail-server delay

Corporate inboxes sometimes hold or filter messages. If you're using a work email:

* Ask IT whether `moderncollections.io` is being filtered or quarantined.
* Try opening the magic link on a different device or network.

## Step 6 — Wrong email on file

If you opened the portal from a notice we sent to an address you no longer use, the code goes to that old address, not to a new one you type later.

If you can't get into the portal at all, [contact support](/troubleshooting/contact-support.md). Include:

* The original email address on file.
* The new email you want to use.
* Some proof you're the right person — an invoice number from the notice, the account number, etc.

## Common OTP issues

| Issue                   | Fix                                                                                              |
| ----------------------- | ------------------------------------------------------------------------------------------------ |
| "OTP expired"           | Request a new one — codes are good for 10 minutes                                                |
| "Invalid OTP"           | Make sure you're using the most recent code (older ones are invalidated)                         |
| "Too many OTP attempts" | You've used your 5 tries on this code. Wait for it to expire (or, if you can, request a new one) |
| "Too many OTP requests" | You've hit the per-hour cap (5 per hour). Wait the period given in the `Retry-After` header      |
| Code went to spam       | Mark "Not spam"; add `noreply@moderncollections.io` to safe senders                              |
| Wrong inbox             | Re-check the address on the original notice                                                      |

> **SMS codes are not currently available.** All one-time codes are sent by email. If you've seen older docs that mention SMS codes, ignore them — that channel is planned but not yet live.

## When to contact support

If you've tried all of the above and still can't get a code, [contact support](/troubleshooting/contact-support.md). We can:

* Verify your identity by other means.
* Update the email on file.
* Issue an out-of-band magic link.

## TODO

* Screenshot: portal OTP entry screen.
* Screenshot: example one-time-code email.

***

Last reviewed: 2026-05-24 by Support Lead.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://help.moderncollections.io/troubleshooting/didnt-receive-otp.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
