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

# How to Get Access to Staging (OAuth 2.0)

export const WhatComesNext = ({children, href}) => <div className="mt-4">
    <a href={href} className="
        inline-flex items-center justify-center
        rounded-full
        bg-black text-white dark:bg-[#1f262b]
        px-5 py-2.5 text-sm font-medium
        no-underline border-0
        hover:bg-[#ffe6ea] dark:hover:bg-[#2b1f23]
        hover:text-black
        transition-colors
      ">
      {children} →
    </a>
  </div>;

export const RememberCallout = ({title, children, icon = "🪢"}) => <div style={{
  backgroundColor: 'var(--recommended-bg)',
  borderLeft: '4px solid #f63b92',
  borderRadius: '10px',
  padding: '18px 22px',
  marginBottom: '20px',
  boxShadow: '1px 1px 3px rgba(0,0,0,0.06)'
}}>
    <div style={{
  display: 'flex',
  alignItems: 'flex-start',
  gap: '14px'
}}>
      <span style={{
  fontSize: '22px',
  lineHeight: '1',
  flexShrink: 0
}}>
        {icon}
      </span>
      <div>
        {title && <div style={{
  fontSize: '16px',
  fontWeight: 600,
  color: 'var(--recommended-title)',
  marginBottom: '6px'
}}>
            {title}
          </div>}
        <div style={{
  fontSize: '14px',
  lineHeight: 1.65
}}>
          {children}
        </div>
      </div>
    </div>
  </div>;

export const NoteCallout = ({title, children, icon = "💡"}) => <div style={{
  backgroundColor: 'var(--recommended-bg)',
  borderLeft: '4px solid #3beaf6',
  borderRadius: '10px',
  padding: '18px 22px',
  marginBottom: '20px',
  boxShadow: '1px 1px 3px rgba(0,0,0,0.06)'
}}>
    <div style={{
  display: 'flex',
  alignItems: 'flex-start',
  gap: '14px'
}}>
      <span style={{
  fontSize: '22px',
  lineHeight: '1',
  flexShrink: 0
}}>
        {icon}
      </span>
      <div>
        {title && <div style={{
  fontSize: '16px',
  fontWeight: 600,
  color: 'var(--recommended-title)',
  marginBottom: '6px'
}}>
            {title}
          </div>}
        <div style={{
  fontSize: '14px',
  lineHeight: 1.65
}}>
          {children}
        </div>
      </div>
    </div>
  </div>;

export const RecommendedCallout = ({title, children, icon = "⭐"}) => <div style={{
  backgroundColor: 'var(--recommended-bg)',
  borderLeft: '4px solid #f8f1ac',
  borderRadius: '10px',
  padding: '18px 22px',
  marginBottom: '20px',
  boxShadow: '1px 1px 3px rgba(0,0,0,0.06)'
}}>
    <div style={{
  display: 'flex',
  alignItems: 'flex-start',
  gap: '14px'
}}>
      <span style={{
  fontSize: '22px',
  lineHeight: '1',
  flexShrink: 0
}}>
        {icon}
      </span>
      <div>
        {title && <div style={{
  fontSize: '16px',
  fontWeight: 600,
  color: 'var(--recommended-title)',
  marginBottom: '6px'
}}>
            {title}
          </div>}
        <div style={{
  fontSize: '14px',
  lineHeight: 1.65
}}>
          {children}
        </div>
      </div>
    </div>
  </div>;

<RecommendedCallout title="Recommended Workflow">
  This guide applies **only to Pleo Partners**. All partner integrations must use **OAuth 2.0** as their authentication method.
</RecommendedCallout>

Follow these steps to gain access to the **Pleo Staging environment** as a Pleo Partner and verify that you can log in successfully.

Staging access is a required first step before registering your integration and using Pleo’s APIs with OAuth 2.0.

## Prerequisites

Before you begin, make sure you have:

* A company or organisation intending to build an integration with Pleo
* A company email address to register with Pleo
* A secure place to store access credentials

This guide assumes:

* You are onboarding as a **Pleo Partner**
* You do not yet have Staging credentials

## Steps

### 1. Request Pleo Partner API Access (Partner Onboarding)

* You complete the [**Pleo Partner API Access Request**](https://forms.gle/ZW1Xp5jqwKWVmK9K9) form to register **your integration** intent.
* You provide details about:
  * Your company or organisation
  * Your intended ERP or Accounting System that you want to integrate with Pleo
  * Planned API usage

### 2. Review and Approval

* Pleo reviews your partner request to ensure technical and security alignment.

### 3. Developer Partner Registration

Complete the **Developer Partner Registration** form sent by Pleo and supply your integration details based on your use case:

* [You're managing the full token lifecycle](/docs/current/how-tos/oauth/how-to-register-an-oauth-client#1-provide-registration-data) in Staging
* [You're using Postman to handle the token lifecycle](/docs/current/how-tos/oauth-postman/how-to-register-an-oauth-client-postman) in Staging

<NoteCallout title="Good to Know">
  You don’t need a fully functional integration to get started.\
  Pleo can register a placeholder OAuth 2.0 client so you can obtain credentials and begin testing in Staging.
</NoteCallout>

### 4. Receive Staging Credentials

* Pleo creates a Staging company populated with **dummy data** for testing and development.
* Pleo provides your **Staging login credentials** securely via 1Password.
* Pleo provides your **OAuth 2.0 client credentials** (**Client ID** and **Client Secret**) via 1Password.

### 5. Verify Staging Credentials

* You retrieve and securely store your login details within **7 days** of notification.
* You log in at [https://app.staging.pleo.io/login](https://app.staging.pleo.io/login) using the credentials provided.
* You confirm that you can access the dashboard, see pre-loaded test data, and navigate the main sections of the Staging interface.

## Result

After completing these steps:

* You have access to the Pleo Staging Environment as a Pleo Partner and can explore the pre-loaded test data.
* You have **registered your OAuth 2.0 client** and have received your **Client ID** and **Client Secret**.
* You are **not yet ready for API testing**. You need to follow the rest of the OAuth 2.0 Setup Workflow Guide to make successful API calls.

<RememberCallout title="Remember">
  The `Authorization: Bearer <token>` header must contain a valid OAuth 2.0 **access token** issued by Pleo.\
  This is **not** the Client Secret and cannot be used until the OAuth 2.0 workflow has been completed.
</RememberCallout>

## What Comes Next?

<WhatComesNext href="/docs/current/guides/environment-access/staging-oauth-workflow#2-complete-oauth-2-0-setup">
  Go back to the OAuth 2.0 Access to Staging Workflow Guide
</WhatComesNext>

***

<div className="text-xs uppercase" style={{ fontVariant: 'small-caps' }}>
  this how-to is part of:
</div>

<div className="mt-4 flex flex-wrap gap-2">
  <a
    href="/docs/current/guides/environment-access/staging-oauth-workflow"
    className="inline-flex items-center rounded-full border border-gray-300 dark:border-gray-600 
px-3 py-1 text-xs font-medium 
bg-white dark:bg-[#1f262b] text-black dark:text-white
hover:bg-gray-100 dark:hover:bg-[#2b2f33]
transition-colors"
  >
    OAuth 2.0 Access to Staging Workflow Guide
  </a>

  <a
    href="/docs/current/guides/oauth-workflow-guide"
    className="inline-flex items-center rounded-full border border-gray-300 dark:border-gray-600 
px-3 py-1 text-xs font-medium 
bg-white dark:bg-[#1f262b] text-black dark:text-white
hover:bg-gray-100 dark:hover:bg-[#2b2f33]
transition-colors"
  >
    OAuth 2.0 Setup Workflow Guide (Manual Token Lifecycle)
  </a>

  <a
    href="/docs/current/guides/oauth-workflow-guide-postman"
    className="inline-flex items-center rounded-full border border-gray-300 dark:border-gray-600 
px-3 py-1 text-xs font-medium 
bg-white dark:bg-[#1f262b] text-black dark:text-white
hover:bg-gray-100 dark:hover:bg-[#2b2f33]
transition-colors"
  >
    OAuth 2.0 Setup with Postman Workflow Guide
  </a>
</div>

***
