> ## Documentation Index
> Fetch the complete documentation index at: https://docs.junojourney.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Learning Requests

> How to request a course, submit custom requests, track statuses, and understand approval flows.

export const RelatedPages = ({pages = []}) => {
  if (pages.length === 0) return null;
  return <>
      <br />
      <strong>Related articles</strong>
      <CardGroup cols={2}>
        {pages.map(page => <Card title={page.title} href={page.href} key={page.href} />)}
      </CardGroup>
    </>;
};

export const FeatureAvailability = ({module, feature}) => {
  const label = feature || module;
  return <Info title="Feature availability">
      {label ? <>This feature requires the <strong>{label}</strong> module. </> : <>This feature may not be enabled for your organization. </>}
      If you don't see it in Juno, contact your administrator.
    </Info>;
};

<FeatureAvailability module="LXP" />

## Overview

A **learning request** is how you spend your budget. Pick something to learn, submit a request, the right approvers (set by your company's policy) approve it, and the platform fulfills it — by issuing a voucher code, a virtual credit card, or reimbursing a receipt.

***

## Requesting a course

1. Open the **On-Demand Catalog** (`/catalog`).
2. Find the course (search bar, provider tile, or top-courses list).
3. Click **Request**.
4. Add a short justification if the policy requires one.
5. Submit — the first approver gets a notification.

Free content (no cost, no approval required) enrolls immediately and doesn't go through this flow.

***

## Custom requests

For content that isn't in the catalog — a conference, a niche course, an externally-purchased subscription — use **Submit Custom Request** from My Wallet or the catalog footer.

Provide:

* **URL** of the content
* **Title and description**
* **Estimated cost**
* **Why it matters** (justification)

The request follows the same policy-driven approval chain as a catalog request. Once it clears, your admin chooses how to fulfill it — voucher, card, reimbursement, or direct purchase.

***

## Approval flows

Who approves your request depends on the **Credit Policy** your company has configured. Common shapes:

* Direct manager only
* Direct manager → admin
* Skip-level manager → admin
* Department head → finance approver
* Multi-step chain for high-cost requests
* Auto-approval under a cost threshold

Your specific chain may be different — that's set by your admin per credit type, cost, role, or department. You'll always see the current approver and any remaining steps in the request dialog.

After all approvals are complete, an admin (or automation) handles fulfillment — issuing the voucher / card / processing the reimbursement.

<Note>
  You don't need to know the policy details — the request shows you what's pending and who's next. Admin configuration lives in [Budget & Credits (Admin)](/admin/budget-and-credits).
</Note>

***

## Request statuses

| Status                          | Meaning                                                    |
| ------------------------------- | ---------------------------------------------------------- |
| **Pending approval**            | Awaiting the current approver in the policy chain          |
| **Approved — pending purchase** | Admin will fulfill (voucher, card, or direct purchase)     |
| **Voucher generated**           | Code or card is ready — see your wallet                    |
| **Receipt uploaded**            | Awaiting admin approval of your reimbursement              |
| **Completed**                   | Fulfilled — voucher used, card used, or reimbursement paid |
| **Declined**                    | An approver denied — see the note for the reason           |

***

## Fulfillment types

Once approved, requests are fulfilled through one of three flows. The flow is picked for you based on the provider and your org's setup.

| Flow                      | When it's used                                                                                             | What you do                                                                          |
| ------------------------- | ---------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------ |
| **Provider voucher code** | Provider issues a one-time code (Udemy, Coursera, edX, OpenSesame, Orsys)                                  | Receive the code, redeem it on the provider's site, mark it used                     |
| **Virtual credit card**   | The platform issues a card you use at provider checkout (custom requests, providers without a code system) | Copy card details, pay at checkout — see [Vouchers (Credit Cards)](/budget/vouchers) |
| **Reimbursement**         | You pay out-of-pocket and submit a receipt                                                                 | Pay, upload receipt, await approval, get reimbursed                                  |

### Provider voucher code

After approval, the code appears on your home page and inside the request dialog. You'll also receive an email if email notifications are on.

To redeem:

1. Open the request dialog (from the home card or My Wallet).
2. Copy the code.
3. Click **Redeem on \[Provider]** to open the provider's site.
4. Enter the code at checkout.
5. Return and click **Mark as used**.

If a code fails (already used, expired, rejected), open the dialog and click **Report issue** — your admin can re-issue or convert it to a reimbursement.

### Reimbursement

When there's no voucher option:

1. Pay the provider out-of-pocket.
2. Open the request dialog and **upload your receipt** (PDF, JPG, or PNG).
3. Wait for admin review.
4. Get reimbursed via your org's standard expense process.

If your receipt is rejected (wrong amount, illegible), the request returns to "needs receipt" and you can re-upload.

### Virtual credit card

A short-lived card with a fixed limit issued to you for the approved purchase. Full detail in [Vouchers (Credit Cards)](/budget/vouchers).

***

## Subscription card vs. one-time purchase

When the request needs a virtual credit card, the admin sets it up as either:

* **One-time** — single charge. After a successful payment, the card locks and the front blurs in your dialog so it can't be reused by mistake.
* **Subscription** — recurring billing. The card stays active for ongoing charges (monthly SaaS, annual subscriptions).

You don't pick this — admin sets it based on the content. If you need to re-charge a card that was set up as one-time, contact your admin.

***

## Tracking your requests

Three places to see request state:

* **Home page** — pending and actionable requests appear as agent cards.
* **My Wallet** (top-right wallet icon) — full list, filter by status.
* **My Library** — once content is provisioned, it shows up here.

***

## Common questions

**Can I cancel a request I haven't acted on?** Yes — open the request dialog and click **Cancel request**. The budget returns to your wallet.

**What if I never used a voucher and forgot?** Admins can see "unused vouchers" on their Budget dashboard and will nudge you. Either redeem it or cancel to free up the budget.

**Does YouTube content go through this?** No — YouTube is free and opens directly. No request, no budget impact.

**What about subscription seats (Pluralsight, LinkedIn Learning, O'Reilly)?** Those are managed by your admin at the org level. You access them with your existing seat — no per-course request needed.

<RelatedPages
  pages={[
{ href: "/budget/my-budget", title: "My Budget" },
{ href: "/budget/vouchers", title: "Vouchers (Credit Cards)" },
{ href: "/learning/catalog", title: "Catalogs & Marketplace" },
{ href: "/learning/external-providers", title: "External Providers" },
{ href: "/admin/budget-and-credits", title: "Budget & Credits (Admin)" },
]}
/>
